/* SPDX-FileCopyrightText: 2001 Waldo Bastian SPDX-License-Identifier: GPL-2.0-or-later */ #include "main.h" #include //Added by qt3to4: #include #include #include #include #include #include #include #include "mouse.h" #include "windows.h" #include "kwinoptions_settings.h" #include "kwinoptions_kdeglobals_settings.h" K_PLUGIN_FACTORY_DECLARATION(KWinOptionsFactory) class KFocusConfigStandalone : public KFocusConfig { Q_OBJECT public: KFocusConfigStandalone(QWidget* parent, const QVariantList &) : KFocusConfig(true, nullptr, parent) { initialize(new KWinOptionsSettings(this)); } }; class KMovingConfigStandalone : public KMovingConfig { Q_OBJECT public: KMovingConfigStandalone(QWidget* parent, const QVariantList &) : KMovingConfig(true, nullptr, parent) { initialize(new KWinOptionsSettings(this)); } }; class KAdvancedConfigStandalone : public KAdvancedConfig { Q_OBJECT public: KAdvancedConfigStandalone(QWidget* parent, const QVariantList &) : KAdvancedConfig(true, nullptr, nullptr, parent) { initialize(new KWinOptionsSettings(this), new KWinOptionsKDEGlobalsSettings(this)); } }; KWinOptions::KWinOptions(QWidget *parent, const QVariantList &) : KCModule(parent) { mSettings = new KWinOptionsSettings(this); QVBoxLayout *layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); tab = new QTabWidget(this); layout->addWidget(tab); mFocus = new KFocusConfig(false, mSettings, this); mFocus->setObjectName(QLatin1String("KWin Focus Config")); tab->addTab(mFocus, i18n("&Focus")); connect(mFocus, qOverload(&KCModule::changed), this, qOverload(&KCModule::changed)); connect(mFocus, qOverload(&KCModule::defaulted), this, qOverload(&KCModule::defaulted)); connect(this, &KCModule::defaultsIndicatorsVisibleChanged, mFocus, &KCModule::setDefaultsIndicatorsVisible); // Need to relay unmanagedWidgetDefaultState and unmanagedWidgetChangeState to wrapping KCModule connect(mFocus, &KFocusConfig::unmanagedWidgetDefaulted, this, &KWinOptions::unmanagedWidgetDefaultState); connect(mFocus, &KFocusConfig::unmanagedWidgetStateChanged, this, &KWinOptions::unmanagedWidgetChangeState); mTitleBarActions = new KTitleBarActionsConfig(false, mSettings, this); mTitleBarActions->setObjectName(QLatin1String("KWin TitleBar Actions")); tab->addTab(mTitleBarActions, i18n("Titlebar A&ctions")); connect(mTitleBarActions, qOverload(&KCModule::changed), this, qOverload(&KCModule::changed)); connect(mTitleBarActions, qOverload(&KCModule::defaulted), this, qOverload(&KCModule::defaulted)); connect(this, &KCModule::defaultsIndicatorsVisibleChanged, mTitleBarActions, &KCModule::setDefaultsIndicatorsVisible); mWindowActions = new KWindowActionsConfig(false, mSettings, this); mWindowActions->setObjectName(QLatin1String("KWin Window Actions")); tab->addTab(mWindowActions, i18n("W&indow Actions")); connect(mWindowActions, qOverload(&KCModule::changed), this, qOverload(&KCModule::changed)); connect(mWindowActions, qOverload(&KCModule::defaulted), this, qOverload(&KCModule::defaulted)); connect(this, &KCModule::defaultsIndicatorsVisibleChanged, mWindowActions, &KCModule::setDefaultsIndicatorsVisible); mMoving = new KMovingConfig(false, mSettings, this); mMoving->setObjectName(QLatin1String("KWin Moving")); tab->addTab(mMoving, i18n("Mo&vement")); connect(mMoving, qOverload(&KCModule::changed), this, qOverload(&KCModule::changed)); connect(mMoving, qOverload(&KCModule::defaulted), this, qOverload(&KCModule::defaulted)); connect(this, &KCModule::defaultsIndicatorsVisibleChanged, mMoving, &KCModule::setDefaultsIndicatorsVisible); mAdvanced = new KAdvancedConfig(false, mSettings, new KWinOptionsKDEGlobalsSettings(this), this); mAdvanced->setObjectName(QLatin1String("KWin Advanced")); tab->addTab(mAdvanced, i18n("Adva&nced")); connect(mAdvanced, qOverload(&KCModule::changed), this, qOverload(&KCModule::changed)); connect(mAdvanced, qOverload(&KCModule::defaulted), this, qOverload(&KCModule::defaulted)); connect(this, &KCModule::defaultsIndicatorsVisibleChanged, mAdvanced, &KCModule::setDefaultsIndicatorsVisible); KAboutData *about = new KAboutData(QStringLiteral("kcmkwinoptions"), i18n("Window Behavior Configuration Module"), QString(), QString(), KAboutLicense::GPL, i18n("(c) 1997 - 2002 KWin and KControl Authors")); about->addAuthor(i18n("Matthias Ettrich"), QString(), "ettrich@kde.org"); about->addAuthor(i18n("Waldo Bastian"), QString(), "bastian@kde.org"); about->addAuthor(i18n("Cristian Tibirna"), QString(), "tibirna@kde.org"); about->addAuthor(i18n("Matthias Kalle Dalheimer"), QString(), "kalle@kde.org"); about->addAuthor(i18n("Daniel Molkentin"), QString(), "molkentin@kde.org"); about->addAuthor(i18n("Wynn Wilkes"), QString(), "wynnw@caldera.com"); about->addAuthor(i18n("Pat Dowler"), QString(), "dowler@pt1B1106.FSH.UVic.CA"); about->addAuthor(i18n("Bernd Wuebben"), QString(), "wuebben@kde.org"); about->addAuthor(i18n("Matthias Hoelzer-Kluepfel"), QString(), "hoelzer@kde.org"); setAboutData(about); } void KWinOptions::load() { mTitleBarActions->load(); mWindowActions->load(); mMoving->load(); mAdvanced->load(); // mFocus is last because it may send unmanagedWidgetStateChanged // that need to have the final word mFocus->load(); } void KWinOptions::save() { mFocus->save(); mTitleBarActions->save(); mWindowActions->save(); mMoving->save(); mAdvanced->save(); emit KCModule::changed(false); // Send signal to all kwin instances QDBusMessage message = QDBusMessage::createSignal("/KWin", "org.kde.KWin", "reloadConfig"); QDBusConnection::sessionBus().send(message); } void KWinOptions::defaults() { mTitleBarActions->defaults(); mWindowActions->defaults(); mMoving->defaults(); mAdvanced->defaults(); // mFocus is last because it may send unmanagedWidgetDefaulted // that need to have the final word mFocus->defaults(); } QString KWinOptions::quickHelp() const { return i18n("

Window Behavior

Here you can customize the way windows behave when being" " moved, resized or clicked on. You can also specify a focus policy as well as a placement" " policy for new windows.

" "

Please note that this configuration will not take effect if you do not use" " KWin as your window manager. If you do use a different window manager, please refer to its documentation" " for how to customize window behavior.

"); } KActionsOptions::KActionsOptions(QWidget *parent, const QVariantList &) : KCModule(parent) { mSettings = new KWinOptionsSettings(this); QVBoxLayout *layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); tab = new QTabWidget(this); layout->addWidget(tab); mTitleBarActions = new KTitleBarActionsConfig(false, mSettings, this); mTitleBarActions->setObjectName(QLatin1String("KWin TitleBar Actions")); tab->addTab(mTitleBarActions, i18n("&Titlebar Actions")); connect(mTitleBarActions, qOverload(&KCModule::changed), this, qOverload(&KCModule::changed)); connect(mTitleBarActions, qOverload(&KCModule::defaulted), this, qOverload(&KCModule::defaulted)); mWindowActions = new KWindowActionsConfig(false, mSettings, this); mWindowActions->setObjectName(QLatin1String("KWin Window Actions")); tab->addTab(mWindowActions, i18n("Window Actio&ns")); connect(mWindowActions, qOverload(&KCModule::changed), this, qOverload(&KCModule::changed)); connect(mWindowActions, qOverload(&KCModule::defaulted), this, qOverload(&KCModule::defaulted)); } void KActionsOptions::load() { mTitleBarActions->load(); mWindowActions->load(); } void KActionsOptions::save() { mTitleBarActions->save(); mWindowActions->save(); emit KCModule::changed(false); // Send signal to all kwin instances QDBusMessage message = QDBusMessage::createSignal("/KWin", "org.kde.KWin", "reloadConfig"); QDBusConnection::sessionBus().send(message); } void KActionsOptions::defaults() { mTitleBarActions->defaults(); mWindowActions->defaults(); } void KActionsOptions::moduleChanged(bool state) { emit KCModule::changed(state); } K_PLUGIN_FACTORY_DEFINITION(KWinOptionsFactory, registerPlugin("kwinactions"); registerPlugin("kwinfocus"); registerPlugin("kwinmoving"); registerPlugin("kwinadvanced"); registerPlugin("kwinoptions"); ) #include "main.moc"