1
0
mirror of https://github.com/KDE/latte-dock.git synced 2025-01-12 01:17:55 +03:00

user option for hiddenConfigWindowsAreDeleted

--when hidden configuration windows are deleted memory
consumption is improved and provides much lower values
--when hidden configuration windows are not deleted
memory consumption increases but their responsiveness
for hiding/showing is instantly
This commit is contained in:
Michail Vourlakos 2020-05-16 10:02:23 +03:00
parent 29b5c3e590
commit d6fc66a7a3
10 changed files with 380 additions and 317 deletions

View File

@ -28,6 +28,7 @@ const bool Preferences::BADGE3DSTYLE;
const bool Preferences::LAYOUTSINFORMATIONWINDOW;
const bool Preferences::AUTOSTART;
const bool Preferences::BORDERLESSMAXIMIZED;
const bool Preferences::HIDDENCONFIGURATIONWINDOWSAREDELETED;
const bool Preferences::METAPRESSFORAPPLAUNCHER;
const bool Preferences::METAHOLDFORBADGES;
const int Preferences::SCREENSDELAY;
@ -43,6 +44,7 @@ Preferences::Preferences(Preferences &&o)
layoutsInformationWindow(o.layoutsInformationWindow),
autostart(o.autostart),
borderlessMaximized(o.borderlessMaximized),
hiddenConfigurationWindowsAreDeleted(o.hiddenConfigurationWindowsAreDeleted),
metaPressForAppLauncher(o.metaPressForAppLauncher),
metaHoldForBadges(o.metaHoldForBadges),
mouseSensitivity(o.mouseSensitivity),
@ -56,6 +58,7 @@ Preferences::Preferences(const Preferences &o)
layoutsInformationWindow(o.layoutsInformationWindow),
autostart(o.autostart),
borderlessMaximized(o.borderlessMaximized),
hiddenConfigurationWindowsAreDeleted(o.hiddenConfigurationWindowsAreDeleted),
metaPressForAppLauncher(o.metaPressForAppLauncher),
metaHoldForBadges(o.metaHoldForBadges),
mouseSensitivity(o.mouseSensitivity),
@ -70,6 +73,7 @@ Preferences &Preferences::operator=(const Preferences &rhs)
layoutsInformationWindow = rhs.layoutsInformationWindow;
autostart = rhs.autostart;
borderlessMaximized = rhs.borderlessMaximized;
hiddenConfigurationWindowsAreDeleted = rhs.hiddenConfigurationWindowsAreDeleted;
metaPressForAppLauncher = rhs.metaPressForAppLauncher;
metaHoldForBadges = rhs.metaHoldForBadges;
mouseSensitivity = rhs.mouseSensitivity;
@ -85,6 +89,7 @@ Preferences &Preferences::operator=(Preferences &&rhs)
layoutsInformationWindow = rhs.layoutsInformationWindow;
autostart = rhs.autostart;
borderlessMaximized = rhs.borderlessMaximized;
hiddenConfigurationWindowsAreDeleted = rhs.hiddenConfigurationWindowsAreDeleted;
metaPressForAppLauncher = rhs.metaPressForAppLauncher;
metaHoldForBadges = rhs.metaHoldForBadges;
mouseSensitivity = rhs.mouseSensitivity;
@ -100,6 +105,7 @@ bool Preferences::operator==(const Preferences &rhs) const
&& (layoutsInformationWindow == rhs.layoutsInformationWindow)
&& (autostart == rhs.autostart)
&& (borderlessMaximized == rhs.borderlessMaximized)
&& (hiddenConfigurationWindowsAreDeleted == rhs.hiddenConfigurationWindowsAreDeleted)
&& (metaPressForAppLauncher == rhs.metaPressForAppLauncher)
&& (metaHoldForBadges == rhs.metaHoldForBadges)
&& (mouseSensitivity == rhs.mouseSensitivity)
@ -118,6 +124,7 @@ bool Preferences::inDefaultValues() const
&& (layoutsInformationWindow == LAYOUTSINFORMATIONWINDOW)
&& (autostart == AUTOSTART)
&& (borderlessMaximized == BORDERLESSMAXIMIZED)
&& (hiddenConfigurationWindowsAreDeleted == HIDDENCONFIGURATIONWINDOWSAREDELETED)
&& (metaPressForAppLauncher == METAPRESSFORAPPLAUNCHER)
&& (metaHoldForBadges == METAHOLDFORBADGES)
&& (mouseSensitivity == MOUSESENSITIVITY)
@ -131,6 +138,7 @@ void Preferences::setToDefaults()
layoutsInformationWindow = LAYOUTSINFORMATIONWINDOW;
autostart = AUTOSTART;
borderlessMaximized = BORDERLESSMAXIMIZED;
hiddenConfigurationWindowsAreDeleted = HIDDENCONFIGURATIONWINDOWSAREDELETED;
metaPressForAppLauncher = METAPRESSFORAPPLAUNCHER;
metaHoldForBadges = METAHOLDFORBADGES;
mouseSensitivity = MOUSESENSITIVITY;

View File

@ -35,6 +35,7 @@ public:
static const bool LAYOUTSINFORMATIONWINDOW = true;
static const bool AUTOSTART = true;
static const bool BORDERLESSMAXIMIZED = false;
static const bool HIDDENCONFIGURATIONWINDOWSAREDELETED = true;
static const bool METAPRESSFORAPPLAUNCHER = false;
static const bool METAHOLDFORBADGES = true;
static const int SCREENSDELAY = 2500;
@ -50,6 +51,7 @@ public:
bool layoutsInformationWindow{LAYOUTSINFORMATIONWINDOW};
bool autostart{AUTOSTART};
bool borderlessMaximized{BORDERLESSMAXIMIZED};
bool hiddenConfigurationWindowsAreDeleted{HIDDENCONFIGURATIONWINDOWSAREDELETED};
bool metaPressForAppLauncher{METAPRESSFORAPPLAUNCHER};
bool metaHoldForBadges{METAHOLDFORBADGES};
int screensDelay{SCREENSDELAY};

View File

@ -29,7 +29,7 @@
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<widget class="QWidget" name="layoutsTab">
<attribute name="title">
@ -505,7 +505,7 @@
<x>0</x>
<y>0</y>
<width>931</width>
<height>375</height>
<height>402</height>
</rect>
</property>
<property name="sizePolicy">
@ -517,142 +517,7 @@
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QGridLayout" name="preferencesGridLayout" columnstretch="5,8">
<item row="15" column="1">
<layout class="QHBoxLayout" name="plasmaThemeRowLayout">
<item>
<widget class="QSpinBox" name="outlineSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>70</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>110</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Outline width used from background to draw its borders</string>
</property>
<property name="suffix">
<string> px.</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>20</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="outlineLbl">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Outline width used from background to draw its borders</string>
</property>
<property name="text">
<string>outline width </string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_16">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="noBordersForMaximizedChkBox">
<property name="toolTip">
<string>Activate support for borderless maximized windows between different layouts</string>
</property>
<property name="text">
<string>Support borderless maximized windows in different layouts</string>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QCheckBox" name="metaPressChkBox">
<property name="toolTip">
<string>Forward ⌘ press from KWin to Latte in order to activate Application Launcher. It is suggested to disable that option if you remove Latte.</string>
</property>
<property name="text">
<string>Press ⌘ to activate Application Launcher</string>
</property>
</widget>
</item>
<item row="14" column="1">
<spacer name="verticalSpacer_11">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="1">
<widget class="QCheckBox" name="autostartChkBox">
<property name="toolTip">
<string>Start the application automatically after each relogin</string>
</property>
<property name="text">
<string>Enable autostart during startup</string>
</property>
</widget>
</item>
<item row="3" column="1">
<spacer name="verticalSpacer_6">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="9" column="1">
<item row="10" column="1">
<widget class="QCheckBox" name="metaPressHoldChkBox">
<property name="toolTip">
<string>Press and hold ⌘ to show shortcuts badges for applets and tasks</string>
@ -662,8 +527,107 @@
</property>
</widget>
</item>
<item row="12" column="1">
<spacer name="verticalSpacer_9">
<item row="12" column="0">
<layout class="QHBoxLayout" name="parabolicHeaderRowLayout">
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="parabolicEffectLbl">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Parabolic Effect:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="16" column="0">
<layout class="QHBoxLayout" name="plasmaThemeHeaderRowLayout">
<item>
<spacer name="horizontalSpacer_10">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="plasmaLbl">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Plasma Theme:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="0">
<layout class="QHBoxLayout" name="behaviorHeaderRowLayout">
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="behaviorLbl">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Behavior:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="8" column="1">
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
@ -678,7 +642,7 @@
</property>
</spacer>
</item>
<item row="13" column="1">
<item row="14" column="1">
<layout class="QHBoxLayout" name="screenDelayRowLayout">
<item>
<widget class="QSpinBox" name="screenTrackerSpinBox">
@ -762,33 +726,7 @@ This tracker is used in order to not lose any screen related update.</string>
</item>
</layout>
</item>
<item row="2" column="1">
<widget class="QCheckBox" name="infoWindowChkBox">
<property name="toolTip">
<string>Provide visual feedback when layouts are activated automatically</string>
</property>
<property name="text">
<string>Show informative window for layouts automatic activation</string>
</property>
</widget>
</item>
<item row="7" column="1">
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="10" column="1">
<item row="11" column="1">
<spacer name="verticalSpacer_8">
<property name="orientation">
<enum>Qt::Vertical</enum>
@ -804,14 +742,96 @@ This tracker is used in order to not lose any screen related update.</string>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="badges3DStyleChkBox">
<property name="text">
<string>Use 3D style for notification and shortcut badges</string>
<item row="16" column="1">
<layout class="QHBoxLayout" name="plasmaThemeRowLayout">
<item>
<widget class="QSpinBox" name="outlineSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>70</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>110</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Outline width used from background to draw its borders</string>
</property>
<property name="suffix">
<string> px.</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>20</number>
</property>
</widget>
</item>
<item row="11" column="1">
<item>
<widget class="QLabel" name="outlineLbl">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Outline width used from background to draw its borders</string>
</property>
<property name="text">
<string>outline width </string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_16">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="3" column="1">
<spacer name="verticalSpacer_6">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="12" column="1">
<layout class="QHBoxLayout" name="mouseSensitivityRowLayout">
<item>
<widget class="QToolButton" name="lowSensitivityBtn">
@ -895,127 +915,7 @@ This tracker is used in order to not lose any screen related update.</string>
</item>
</layout>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout" name="apperanceHeaderRowLayout">
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="appearanceLbl">
<property name="text">
<string>Appearance:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="0">
<layout class="QHBoxLayout" name="behaviorHeaderRowLayout">
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="behaviorLbl">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Behavior:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="8" column="0">
<layout class="QHBoxLayout" name="actionsHeaderRowLayout">
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="actionsLbl">
<property name="text">
<string>Actions:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="11" column="0">
<layout class="QHBoxLayout" name="parabolicHeaderRowLayout">
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="parabolicEffectLbl">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Parabolic Effect:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="13" column="0">
<item row="14" column="0">
<layout class="QHBoxLayout" name="screensHeaderRowLayout">
<item>
<spacer name="horizontalSpacer_8">
@ -1048,10 +948,20 @@ This tracker is used in order to not lose any screen related update.</string>
</item>
</layout>
</item>
<item row="15" column="0">
<layout class="QHBoxLayout" name="plasmaThemeHeaderRowLayout">
<item row="2" column="1">
<widget class="QCheckBox" name="infoWindowChkBox">
<property name="toolTip">
<string>Provide visual feedback when layouts are activated automatically</string>
</property>
<property name="text">
<string>Show informative window for layouts automatic activation</string>
</property>
</widget>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout" name="apperanceHeaderRowLayout">
<item>
<spacer name="horizontalSpacer_10">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -1064,15 +974,9 @@ This tracker is used in order to not lose any screen related update.</string>
</spacer>
</item>
<item>
<widget class="QLabel" name="plasmaLbl">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<widget class="QLabel" name="appearanceLbl">
<property name="text">
<string>Plasma Theme:</string>
<string>Appearance:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
@ -1081,6 +985,112 @@ This tracker is used in order to not lose any screen related update.</string>
</item>
</layout>
</item>
<item row="15" column="1">
<spacer name="verticalSpacer_11">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="badges3DStyleChkBox">
<property name="text">
<string>Use 3D style for notification and shortcut badges</string>
</property>
</widget>
</item>
<item row="9" column="0">
<layout class="QHBoxLayout" name="actionsHeaderRowLayout">
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="actionsLbl">
<property name="text">
<string>Actions:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="13" column="1">
<spacer name="verticalSpacer_9">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="6" column="1">
<widget class="QCheckBox" name="noBordersForMaximizedChkBox">
<property name="toolTip">
<string>Activate support for borderless maximized windows between different layouts</string>
</property>
<property name="text">
<string>Support borderless maximized windows in different layouts</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QCheckBox" name="autostartChkBox">
<property name="toolTip">
<string>Start the application automatically after each relogin</string>
</property>
<property name="text">
<string>Enable autostart during startup</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QCheckBox" name="metaPressChkBox">
<property name="toolTip">
<string>Forward ⌘ press from KWin to Latte in order to activate Application Launcher. It is suggested to disable that option if you remove Latte.</string>
</property>
<property name="text">
<string>Press ⌘ to activate Application Launcher</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="hiddenConfigsAreDeletedChk">
<property name="toolTip">
<string>Memory consumption is deleted when hidden configuration windows are deleted. On the other hand if you disable that option the configuration windows responsiveness during showing and hiding is flawlessly.</string>
</property>
<property name="text">
<string>Hidden configuration windows are deleted for memory efficiency</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>

View File

@ -83,8 +83,13 @@ void TabPreferences::initUi()
emit dataChanged();
});
connect(m_ui->metaPressChkBox, &QCheckBox::stateChanged, this, [&]() {
m_preferences.metaPressForAppLauncher = m_ui->metaPressChkBox->isChecked();
connect(m_ui->screenTrackerSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), [ = ](int i) {
m_preferences.screensDelay = m_ui->screenTrackerSpinBox->value();
emit dataChanged();
});
connect(m_ui->hiddenConfigsAreDeletedChk, &QCheckBox::stateChanged, this, [&]() {
m_preferences.hiddenConfigurationWindowsAreDeleted = m_ui->hiddenConfigsAreDeletedChk->isChecked();
emit dataChanged();
});
@ -109,6 +114,7 @@ void TabPreferences::initSettings()
o_preferences.autostart = m_corona->universalSettings()->autostart();
o_preferences.badgeStyle3D = m_corona->universalSettings()->badges3DStyle();
o_preferences.layoutsInformationWindow = m_corona->universalSettings()->showInfoWindow();
o_preferences.hiddenConfigurationWindowsAreDeleted = m_corona->universalSettings()->hiddenConfigurationWindowsAreDeleted();
o_preferences.metaPressForAppLauncher = m_corona->universalSettings()->kwin_metaForwardedToLatte();
o_preferences.metaHoldForBadges = m_corona->universalSettings()->metaPressAndHoldEnabled();
o_preferences.borderlessMaximized = m_corona->universalSettings()->canDisableBorders();
@ -127,6 +133,7 @@ void TabPreferences::updateUi()
m_ui->autostartChkBox->setChecked(m_preferences.autostart);
m_ui->badges3DStyleChkBox->setChecked(m_preferences.badgeStyle3D);
m_ui->infoWindowChkBox->setChecked(m_preferences.layoutsInformationWindow);
m_ui->hiddenConfigsAreDeletedChk->setChecked(m_preferences.hiddenConfigurationWindowsAreDeleted);
m_ui->metaPressChkBox->setChecked(m_preferences.metaPressForAppLauncher);
m_ui->metaPressHoldChkBox->setChecked(m_preferences.metaHoldForBadges);
m_ui->noBordersForMaximizedChkBox->setChecked(m_preferences.borderlessMaximized);
@ -171,6 +178,7 @@ void TabPreferences::save()
m_corona->universalSettings()->setSensitivity(m_preferences.mouseSensitivity);
m_corona->universalSettings()->setAutostart(m_preferences.autostart);
m_corona->universalSettings()->setBadges3DStyle(m_preferences.badgeStyle3D);
m_corona->universalSettings()->setHiddenConfigurationWindowsAreDeleted(m_preferences.hiddenConfigurationWindowsAreDeleted);
m_corona->universalSettings()->kwin_forwardMetaToLatte(m_preferences.metaPressForAppLauncher);
m_corona->universalSettings()->setMetaPressAndHoldEnabled(m_preferences.metaHoldForBadges);
m_corona->universalSettings()->setShowInfoWindow(m_preferences.layoutsInformationWindow);

View File

@ -57,6 +57,7 @@ UniversalSettings::UniversalSettings(KSharedConfig::Ptr config, QObject *parent)
connect(this, &UniversalSettings::lastNonAssignedLayoutNameChanged, this, &UniversalSettings::saveConfig);
connect(this, &UniversalSettings::launchersChanged, this, &UniversalSettings::saveConfig);
connect(this, &UniversalSettings::layoutsMemoryUsageChanged, this, &UniversalSettings::saveConfig);
connect(this, &UniversalSettings::hiddenConfigurationWindowsAreDeletedChanged, this, &UniversalSettings::saveConfig);
connect(this, &UniversalSettings::metaPressAndHoldEnabledChanged, this, &UniversalSettings::saveConfig);
connect(this, &UniversalSettings::sensitivityChanged, this, &UniversalSettings::saveConfig);
connect(this, &UniversalSettings::screenTrackerIntervalChanged, this, &UniversalSettings::saveConfig);
@ -394,6 +395,20 @@ void UniversalSettings::recoverKWinOptions()
m_kwinBorderlessMaximizedWindows = (output == "true");
}
bool UniversalSettings::hiddenConfigurationWindowsAreDeleted() const
{
return m_hiddenConfigurationWindowsAreDeleted;
}
void UniversalSettings::setHiddenConfigurationWindowsAreDeleted(bool enabled)
{
if (m_hiddenConfigurationWindowsAreDeleted == enabled) {
return;
}
m_hiddenConfigurationWindowsAreDeleted = enabled;
emit hiddenConfigurationWindowsAreDeletedChanged();
}
bool UniversalSettings::metaPressAndHoldEnabled() const
{
@ -485,6 +500,7 @@ void UniversalSettings::loadConfig()
m_currentLayoutName = m_universalGroup.readEntry("currentLayout", QString());
m_lastNonAssignedLayoutName = m_universalGroup.readEntry("lastNonAssignedLayout", QString());
m_launchers = m_universalGroup.readEntry("launchers", QStringList());
m_hiddenConfigurationWindowsAreDeleted = m_universalGroup.readEntry("hiddenConfigurationWindowsAreDeleted", true);
m_metaPressAndHoldEnabled = m_universalGroup.readEntry("metaPressAndHoldEnabled", true);
m_screenTrackerInterval = m_universalGroup.readEntry("screenTrackerInterval", 2500);
m_showInfoWindow = m_universalGroup.readEntry("showInfoWindow", true);
@ -502,6 +518,7 @@ void UniversalSettings::saveConfig()
m_universalGroup.writeEntry("currentLayout", m_currentLayoutName);
m_universalGroup.writeEntry("lastNonAssignedLayout", m_lastNonAssignedLayoutName);
m_universalGroup.writeEntry("launchers", m_launchers);
m_universalGroup.writeEntry("hiddenConfigurationWindowsAreDeleted", m_hiddenConfigurationWindowsAreDeleted);
m_universalGroup.writeEntry("metaPressAndHoldEnabled", m_metaPressAndHoldEnabled);
m_universalGroup.writeEntry("screenTrackerInterval", m_screenTrackerInterval);
m_universalGroup.writeEntry("showInfoWindow", m_showInfoWindow);

View File

@ -57,6 +57,7 @@ class UniversalSettings : public QObject
Q_PROPERTY(bool autostart READ autostart WRITE setAutostart NOTIFY autostartChanged)
Q_PROPERTY(bool badges3DStyle READ badges3DStyle WRITE setBadges3DStyle NOTIFY badges3DStyleChanged)
Q_PROPERTY(bool colorsScriptIsPresent READ colorsScriptIsPresent NOTIFY colorsScriptIsPresentChanged)
Q_PROPERTY(bool hiddenConfigurationWindowsAreDeleted READ hiddenConfigurationWindowsAreDeleted WRITE setHiddenConfigurationWindowsAreDeleted NOTIFY hiddenConfigurationWindowsAreDeletedChanged)
Q_PROPERTY(bool showInfoWindow READ showInfoWindow WRITE setShowInfoWindow NOTIFY showInfoWindowChanged)
Q_PROPERTY(QString currentLayoutName READ currentLayoutName WRITE setCurrentLayoutName NOTIFY currentLayoutNameChanged)
@ -90,6 +91,9 @@ public:
bool kwin_borderlessMaximizedWindowsEnabled() const;
void kwin_setDisabledMaximizedBorders(bool disable);
bool hiddenConfigurationWindowsAreDeleted() const;
void setHiddenConfigurationWindowsAreDeleted(bool enabled);
bool metaPressAndHoldEnabled() const;
void setMetaPressAndHoldEnabled(bool enabled);
@ -133,6 +137,7 @@ signals:
void colorsScriptIsPresentChanged();
void currentLayoutNameChanged();
void downloadWindowSizeChanged();
void hiddenConfigurationWindowsAreDeletedChanged();
void lastNonAssignedLayoutNameChanged();
void layoutsColumnWidthsChanged();
void layoutsWindowSizeChanged();
@ -168,6 +173,7 @@ private:
bool m_badges3DStyle{false};
bool m_canDisableBorders{false};
bool m_colorsScriptIsPresent{false};
bool m_hiddenConfigurationWindowsAreDeleted{true};
bool m_metaPressAndHoldEnabled{true};
bool m_showInfoWindow{true};

View File

@ -107,6 +107,7 @@ PrimaryConfigView::PrimaryConfigView(Plasma::Containment *containment, Latte::Vi
syncSlideEffect();
});
connections << connect(m_latteView, &View::hiddenConfigurationWindowsAreDeletedChanged, this, &PrimaryConfigView::onHiddenConfigurationWindowsAreDeletedChanged);
connections << connect(m_latteView->visibility(), &VisibilityManager::modeChanged, this, &PrimaryConfigView::syncGeometry);
connections << connect(containment, &Plasma::Containment::immutabilityChanged, this, &PrimaryConfigView::immutabilityChanged);
@ -213,7 +214,7 @@ void PrimaryConfigView::showSecondaryWindow()
if (!m_secConfigView) {
m_secConfigView = new SecondaryConfigView(m_latteView, this);
m_secConfigView->init();
} else if (m_secConfigView && !m_latteView->hiddenConfigWindowsAreDeleted() && !m_secConfigView->isVisible()){
} else if (m_secConfigView && !m_latteView->hiddenConfigurationWindowsAreDeleted() && !m_secConfigView->isVisible()){
m_secConfigView->show();
}
}
@ -221,7 +222,7 @@ void PrimaryConfigView::showSecondaryWindow()
void PrimaryConfigView::hideSecondaryWindow()
{
if (m_secConfigView) {
if (m_latteView->hiddenConfigWindowsAreDeleted()) {
if (m_latteView->hiddenConfigurationWindowsAreDeleted()) {
auto secWindow = m_secConfigView;
m_secConfigView = nullptr;
secWindow->deleteLater();
@ -238,6 +239,13 @@ void PrimaryConfigView::hideSecondaryWindow()
}
}
void PrimaryConfigView::onHiddenConfigurationWindowsAreDeletedChanged()
{
if (m_latteView && m_latteView->hiddenConfigurationWindowsAreDeleted() && !isVisible()) {
deleteLater();
}
}
void PrimaryConfigView::updateAvailableScreenGeometry(View *origin)
{
int currentScrId = m_latteView->positioner()->currentScreenId();
@ -440,7 +448,7 @@ void PrimaryConfigView::hideEvent(QHideEvent *ev)
m_latteView->layout()->recreateView(m_latteView->containment());
}
if (m_latteView->hiddenConfigWindowsAreDeleted()) {
if (m_latteView->hiddenConfigurationWindowsAreDeleted()) {
deleteLater();
} else {
setVisible(false);

View File

@ -129,6 +129,7 @@ protected:
private slots:
void immutabilityChanged(Plasma::Types::ImmutabilityType type);
void onHiddenConfigurationWindowsAreDeletedChanged();
void updateAvailableScreenGeometry(View *origin = nullptr);
void updateEnabledBorders();
void updateShowInlineProperties();

View File

@ -294,6 +294,8 @@ void View::init(Plasma::Containment *plasma_containment)
});
connect(m_corona->indicatorFactory(), &Latte::Indicator::Factory::indicatorRemoved, this, &View::indicatorPluginRemoved);
connect(m_corona->universalSettings(), &Latte::UniversalSettings::hiddenConfigurationWindowsAreDeletedChanged,
this, &View::hiddenConfigurationWindowsAreDeletedChanged);
//! Assign app interfaces in be accessible through containment graphic item
QQuickItem *containmentGraphicItem = qobject_cast<QQuickItem *>(plasma_containment->property("_plasma_graphicObject").value<QObject *>());
@ -332,9 +334,9 @@ void View::reloadSource()
}
}
bool View::hiddenConfigWindowsAreDeleted() const
bool View::hiddenConfigurationWindowsAreDeleted() const
{
return false;
return m_corona->universalSettings()->hiddenConfigurationWindowsAreDeleted();
}
bool View::inDelete() const
@ -429,7 +431,7 @@ bool View::settingsWindowIsShown()
{
auto cview = qobject_cast<ViewPart::PrimaryConfigView *>(m_configView);
if (hiddenConfigWindowsAreDeleted()) {
if (hiddenConfigurationWindowsAreDeleted()) {
return (cview != nullptr);
} else if (cview) {
return cview->isVisible();
@ -1247,7 +1249,7 @@ void View::configViewShownFor(Latte::View *view)
auto configDialog = qobject_cast<ViewPart::PrimaryConfigView *>(m_configView);
if (configDialog) {
if (hiddenConfigWindowsAreDeleted()) {
if (hiddenConfigurationWindowsAreDeleted()) {
configDialog->deleteLater();
} else if (configDialog->isVisible()) {
configDialog->hideConfigWindow();

View File

@ -145,7 +145,7 @@ public:
bool inDelete() const;
bool inReadyState() const;
bool hiddenConfigWindowsAreDeleted() const;
bool hiddenConfigurationWindowsAreDeleted() const;
bool onPrimary() const;
void setOnPrimary(bool flag);
@ -302,6 +302,7 @@ signals:
void widthChanged();
void headThicknessGapChanged();
void heightChanged();
void hiddenConfigurationWindowsAreDeletedChanged();
void inEditModeChanged();
void indicatorChanged();
void inSettingsAdvancedModeChanged();