kcontrol: simply override settings based on form factor from workspaceoptions KCM

it is done for the window placement and "borderless maximized windows"
options, the form factor feature shall be like a profile - instead of
overriding config options with fallback from this and that config it shall
override all relevant options from hardcoded values and even act as reset

on a side note what the form factor option does is setup other options
via single combo box, individual config options can be tuned from other
KCM (such as kwincompositing)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2023-08-16 14:41:56 +03:00
parent 789d354b81
commit 27845ee910

View file

@ -90,7 +90,7 @@ void WorkspaceOptionsModule::save()
cg2.writeEntry("ThemeCacheKb", m_ui->themeCacheSize->value() * 1024); cg2.writeEntry("ThemeCacheKb", m_ui->themeCacheSize->value() * 1024);
} }
const bool isDesktop = m_ui->formFactor->currentIndex() == 0; const bool isDesktop = (m_ui->formFactor->currentIndex() == 0);
KConfigGroup winCg(m_kwinConfig, "Windows"); KConfigGroup winCg(m_kwinConfig, "Windows");
@ -102,81 +102,33 @@ void WorkspaceOptionsModule::save()
} }
winCg.sync(); winCg.sync();
KConfigGroup ownButtonsCg(m_ownConfig, "TitleBarButtons");
KConfigGroup ownPresentWindowsCg(m_ownConfig, "Effect-PresentWindows");
KConfigGroup ownCompositingCg(m_ownConfig, "Compositing");
KConfigGroup kwinStyleCg(m_kwinConfig, "Style"); KConfigGroup kwinStyleCg(m_kwinConfig, "Style");
KConfigGroup kwinPresentWindowsCg(m_kwinConfig, "Effect-PresentWindows"); KConfigGroup kwinPresentWindowsCg(m_kwinConfig, "Effect-PresentWindows");
KConfigGroup kwinCompositingCg(m_kwinConfig, "Compositing"); KConfigGroup kwinCompositingCg(m_kwinConfig, "Compositing");
static const QString desktopTitleBarButtonsLeft = "MS";
QString desktopTitleBarButtonsLeft = ownButtonsCg.readEntry("DesktopLeft", "MS"); static const QString desktopTitleBarButtonsRight = "HIAX";
QString desktopTitleBarButtonsRight = ownButtonsCg.readEntry("DesktopRight", "HIAX"); static const QString netbookTitleBarButtonsLeft = "MS";
static const QString netbookTitleBarButtonsRight = "HAX";
QString netbookTitleBarButtonsLeft = ownButtonsCg.readEntry("NetbookLeft", "MS"); static const int desktopPresentWindowsLayoutMode = 0;
QString netbookTitleBarButtonsRight = ownButtonsCg.readEntry("NetbookRight", "HAX"); static const int netbookPresentWindowsLayoutMode = 1;
static const bool desktopUnredirectFullscreen = true;
static const bool netbookUnredirectFullscreen = false;
int desktopPresentWindowsLayoutMode = 0;
int netbookPresentWindowsLayoutMode = 1;
bool desktopUnredirectFullscreen = ownCompositingCg.readEntry("DesktopUnredirectFullscreen", true);
bool netbookUnredirectFullscreen = ownCompositingCg.readEntry("NetbookUnredirectFullscreen", false);
if (m_currentlyIsDesktop) {
//save the user preferences on titlebar buttons
desktopTitleBarButtonsLeft = kwinStyleCg.readEntry("ButtonsOnLeft", "MS");
desktopTitleBarButtonsRight = kwinStyleCg.readEntry("ButtonsOnRight", "HIAX");
ownButtonsCg.writeEntry("DesktopLeft", desktopTitleBarButtonsLeft);
ownButtonsCg.writeEntry("DesktopRight", desktopTitleBarButtonsRight);
//Unredirect fullscreen
desktopUnredirectFullscreen = kwinCompositingCg.readEntry("UnredirectFullscreen", true);
ownCompositingCg.writeEntry("DesktopUnredirectFullscreen", desktopUnredirectFullscreen);
//desktop grid effect
desktopPresentWindowsLayoutMode = kwinPresentWindowsCg.readEntry("LayoutMode", 0);
ownPresentWindowsCg.writeEntry("DesktopLayoutMode", desktopPresentWindowsLayoutMode);
} else {
//save the user preferences on titlebar buttons
netbookTitleBarButtonsLeft = kwinStyleCg.readEntry("ButtonsOnLeft", "MS");
netbookTitleBarButtonsRight = kwinStyleCg.readEntry("ButtonsOnRight", "HAX");
ownButtonsCg.writeEntry("NetbookLeft", netbookTitleBarButtonsLeft);
ownButtonsCg.writeEntry("NetbookRight", netbookTitleBarButtonsRight);
//Unredirect fullscreen
netbookUnredirectFullscreen = kwinCompositingCg.readEntry("UnredirectFullscreen", true);
ownCompositingCg.writeEntry("NetbookUnredirectFullscreen", netbookUnredirectFullscreen);
//desktop grid effect
desktopPresentWindowsLayoutMode = kwinPresentWindowsCg.readEntry("LayoutMode", 0);
ownPresentWindowsCg.writeEntry("NetbookLayoutMode", desktopPresentWindowsLayoutMode);
}
ownButtonsCg.sync();
ownPresentWindowsCg.sync();
ownCompositingCg.sync();
kwinStyleCg.writeEntry("CustomButtonPositions", true); kwinStyleCg.writeEntry("CustomButtonPositions", true);
if (isDesktop) { if (isDesktop) {
//kill/enable the minimize button, unless configured differently
kwinStyleCg.writeEntry("ButtonsOnLeft", desktopTitleBarButtonsLeft); kwinStyleCg.writeEntry("ButtonsOnLeft", desktopTitleBarButtonsLeft);
kwinStyleCg.writeEntry("ButtonsOnRight", desktopTitleBarButtonsRight); kwinStyleCg.writeEntry("ButtonsOnRight", desktopTitleBarButtonsRight);
// enable unredirect fullscreen, unless configured differently
kwinCompositingCg.writeEntry("UnredirectFullscreen", desktopUnredirectFullscreen); kwinCompositingCg.writeEntry("UnredirectFullscreen", desktopUnredirectFullscreen);
//present windows mode
kwinPresentWindowsCg.writeEntry("LayoutMode", desktopPresentWindowsLayoutMode); kwinPresentWindowsCg.writeEntry("LayoutMode", desktopPresentWindowsLayoutMode);
} else { } else {
//kill/enable the minimize button, unless configured differently
kwinStyleCg.writeEntry("ButtonsOnLeft", netbookTitleBarButtonsLeft); kwinStyleCg.writeEntry("ButtonsOnLeft", netbookTitleBarButtonsLeft);
kwinStyleCg.writeEntry("ButtonsOnRight", netbookTitleBarButtonsRight); kwinStyleCg.writeEntry("ButtonsOnRight", netbookTitleBarButtonsRight);
// disable unredirect fullscreen, unless configured differently
kwinCompositingCg.writeEntry("UnredirectFullscreen", netbookUnredirectFullscreen); kwinCompositingCg.writeEntry("UnredirectFullscreen", netbookUnredirectFullscreen);
//present windows mode
kwinPresentWindowsCg.writeEntry("LayoutMode", netbookPresentWindowsLayoutMode); kwinPresentWindowsCg.writeEntry("LayoutMode", netbookPresentWindowsLayoutMode);
} }