File indexing completed on 2026-07-19 16:00:57
0001 /* 0002 SPDX-FileCopyrightText: 2004 Lubos Lunak <l.lunak@kde.org> 0003 SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> 0004 SPDX-FileCopyrightText: 2020 Ismael Asensio <isma.af@gmail.com> 0005 0006 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0007 */ 0008 0009 #include <QApplication> 0010 #include <QCommandLineParser> 0011 #include <QIcon> 0012 #include <QUuid> 0013 0014 #include <KCMultiDialog> 0015 #include <KLocalizedString> 0016 #include <KPluginMetaData> 0017 0018 int main(int argc, char *argv[]) 0019 { 0020 QApplication app(argc, argv); 0021 0022 KLocalizedString::setApplicationDomain("kcm_kwinrules"); 0023 0024 app.setAttribute(Qt::AA_UseHighDpiPixmaps, true); 0025 app.setApplicationName("kwin_rules_dialog"); 0026 app.setWindowIcon(QIcon::fromTheme("preferences-system-windows-actions")); 0027 app.setApplicationVersion("2.0"); 0028 app.setDesktopFileName(QStringLiteral("org.kde.kwin_rules_dialog")); 0029 0030 QCommandLineParser parser; 0031 parser.setApplicationDescription(i18n("KWinRules KCM launcher")); 0032 parser.addOption(QCommandLineOption("uuid", i18n("KWin id of the window for special window settings."), "uuid")); 0033 parser.addOption(QCommandLineOption("whole-app", i18n("Whether the settings should affect all windows of the application."))); 0034 parser.process(app); 0035 0036 const QUuid uuid = QUuid::fromString(parser.value("uuid")); 0037 const bool whole_app = parser.isSet("whole-app"); 0038 0039 if (uuid.isNull()) { 0040 printf("%s\n", qPrintable(i18n("This helper utility is not supposed to be called directly."))); 0041 return 1; 0042 } 0043 0044 app.setApplicationDisplayName((whole_app) ? i18nc("Window caption for the application wide rules dialog", "Edit Application-Specific Settings") 0045 : i18n("Edit Window-Specific Settings")); 0046 0047 QStringList kcm_args; 0048 kcm_args << QStringLiteral("uuid=%1").arg(uuid.toString()); 0049 if (whole_app) { 0050 kcm_args << QStringLiteral("whole-app"); 0051 } 0052 0053 KPluginMetaData pluginData = KPluginMetaData(QStringLiteral(KCMRULES_PLUGIN)); 0054 0055 KCMultiDialog *dialog = new KCMultiDialog; 0056 dialog->addModule(pluginData, kcm_args); 0057 dialog->setAttribute(Qt::WA_DeleteOnClose); 0058 dialog->show(); 0059 0060 app.setQuitOnLastWindowClosed(true); 0061 0062 return app.exec(); 0063 }