mirror of
https://github.com/KDE/latte-dock.git
synced 2025-03-01 00:58:24 +03:00
enable universal settings in Latte Settings Window
This commit is contained in:
parent
7b3892de7f
commit
22ef2280d2
@ -112,7 +112,6 @@ void DockConfigView::init()
|
||||
auto *dockCorona = qobject_cast<DockCorona *>(m_dockView->corona());
|
||||
|
||||
if (dockCorona) {
|
||||
rootContext()->setContextProperty(QStringLiteral("universalSettings"), dockCorona->universalSettings());
|
||||
rootContext()->setContextProperty(QStringLiteral("layoutManager"), dockCorona->layoutManager());
|
||||
}
|
||||
|
||||
|
@ -84,8 +84,6 @@ LatteConfigDialog::LatteConfigDialog(QWidget *parent, DockCorona *corona)
|
||||
connect(m_corona->layoutManager(), &LayoutManager::currentLayoutNameChanged, this, &LatteConfigDialog::layoutsChanged);
|
||||
connect(m_corona->layoutManager(), &LayoutManager::activeLayoutsChanged, this, &LatteConfigDialog::layoutsChanged);
|
||||
|
||||
loadLayouts();
|
||||
|
||||
QString iconsPath(m_corona->kPackage().path() + "../../plasmoids/org.kde.latte.containment/contents/icons/");
|
||||
|
||||
//!find the available colors
|
||||
@ -119,6 +117,20 @@ LatteConfigDialog::LatteConfigDialog(QWidget *parent, DockCorona *corona)
|
||||
ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(true);
|
||||
});
|
||||
|
||||
m_mouseSensitivityButtons = new QButtonGroup(this);
|
||||
m_mouseSensitivityButtons->addButton(ui->lowSensitivityBtn, Latte::Dock::LowSensitivity);
|
||||
m_mouseSensitivityButtons->addButton(ui->mediumSensitivityBtn, Latte::Dock::MediumSensitivity);
|
||||
m_mouseSensitivityButtons->addButton(ui->highSensitivityBtn, Latte::Dock::HighSensitivity);
|
||||
m_mouseSensitivityButtons->setExclusive(true);
|
||||
connect(m_mouseSensitivityButtons, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonPressed),
|
||||
[ = ](QAbstractButton * button) {
|
||||
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
|
||||
ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(true);
|
||||
});
|
||||
|
||||
|
||||
loadLayouts();
|
||||
|
||||
//! About Menu
|
||||
QMenuBar *menuBar = new QMenuBar(this);
|
||||
QMenuBar *rightAlignedMenuBar = new QMenuBar(menuBar);
|
||||
@ -150,6 +162,7 @@ LatteConfigDialog::~LatteConfigDialog()
|
||||
}
|
||||
|
||||
m_inMemoryButtons->deleteLater();
|
||||
m_mouseSensitivityButtons->deleteLater();
|
||||
|
||||
foreach (auto tempDir, m_tempDirectories) {
|
||||
QDir tDir(tempDir);
|
||||
@ -643,6 +656,17 @@ void LatteConfigDialog::loadLayouts()
|
||||
ui->multipleToolBtn->setChecked(true);
|
||||
}
|
||||
|
||||
ui->autostartChkBox->setChecked(m_corona->universalSettings()->autostart());
|
||||
ui->infoWindowChkBox->setChecked(m_corona->universalSettings()->showInfoWindow());
|
||||
|
||||
if (m_corona->universalSettings()->mouseSensitivity() == Dock::LowSensitivity) {
|
||||
ui->lowSensitivityBtn->setChecked(true);
|
||||
} else if (m_corona->universalSettings()->mouseSensitivity() == Dock::MediumSensitivity) {
|
||||
ui->mediumSensitivityBtn->setChecked(true);
|
||||
} else if (m_corona->universalSettings()->mouseSensitivity() == Dock::HighSensitivity) {
|
||||
ui->highSensitivityBtn->setChecked(true);
|
||||
}
|
||||
|
||||
//! there are broken layouts and the user must be informed!
|
||||
if (brokenLayouts.count() > 0) {
|
||||
auto msg = new QMessageBox(this);
|
||||
@ -855,6 +879,17 @@ bool LatteConfigDialog::saveAllChanges()
|
||||
return false;
|
||||
}
|
||||
|
||||
//! Update universal settings
|
||||
Latte::Dock::MouseSensitivity sensitivity = static_cast<Latte::Dock::MouseSensitivity>(m_mouseSensitivityButtons->checkedId());
|
||||
bool autostart = ui->autostartChkBox->isChecked();
|
||||
bool showInfoWindow = ui->infoWindowChkBox->isChecked();
|
||||
|
||||
m_corona->universalSettings()->setMouseSensitivity(sensitivity);
|
||||
m_corona->universalSettings()->setAutostart(autostart);
|
||||
m_corona->universalSettings()->setShowInfoWindow(showInfoWindow);
|
||||
|
||||
|
||||
//! Update Layouts
|
||||
QStringList knownActivities = activities();
|
||||
|
||||
QTemporaryDir layoutTempDir;
|
||||
|
@ -97,6 +97,7 @@ private:
|
||||
QStringList m_initLayoutPaths;
|
||||
|
||||
QButtonGroup *m_inMemoryButtons;
|
||||
QButtonGroup *m_mouseSensitivityButtons;
|
||||
|
||||
DockCorona *m_corona{nullptr};
|
||||
|
||||
|
@ -17,7 +17,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">
|
||||
@ -102,7 +102,7 @@
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderVisible">
|
||||
<bool>true</bool>
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="horizontalHeaderCascadingSectionResizes">
|
||||
<bool>true</bool>
|
||||
@ -591,6 +591,9 @@
|
||||
<property name="text">
|
||||
<string comment="low sensitivity">Low</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@ -607,10 +610,13 @@
|
||||
<property name="text">
|
||||
<string comment="medium sensitivity">Medium</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="highSensetivityBtn">
|
||||
<widget class="QToolButton" name="highSensitivityBtn">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
@ -623,6 +629,9 @@
|
||||
<property name="text">
|
||||
<string comment="high sensitivity">High</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
@ -1026,8 +1026,10 @@ bool LayoutManager::layoutIsAssigned(QString layoutName)
|
||||
|
||||
void LayoutManager::showLatteConfigDialog()
|
||||
{
|
||||
if (!m_latteConfigDialog)
|
||||
if (!m_latteConfigDialog) {
|
||||
m_latteConfigDialog = new LatteConfigDialog(nullptr, m_corona);
|
||||
m_latteConfigDialog->setAttribute(Qt::WA_DeleteOnClose);
|
||||
}
|
||||
|
||||
m_latteConfigDialog->show();
|
||||
|
||||
|
@ -33,6 +33,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::mouseSensitivityChanged, this, &UniversalSettings::saveConfig);
|
||||
connect(this, &UniversalSettings::showInfoWindowChanged, this, &UniversalSettings::saveConfig);
|
||||
connect(this, &UniversalSettings::versionChanged, this, &UniversalSettings::saveConfig);
|
||||
}
|
||||
@ -201,6 +202,21 @@ void UniversalSettings::setLayoutsMemoryUsage(Dock::LayoutsMemoryUsage layoutsMe
|
||||
emit layoutsMemoryUsageChanged();
|
||||
}
|
||||
|
||||
Dock::MouseSensitivity UniversalSettings::mouseSensitivity() const
|
||||
{
|
||||
return m_mouseSensitivity;
|
||||
}
|
||||
|
||||
void UniversalSettings::setMouseSensitivity(Dock::MouseSensitivity sensitivity)
|
||||
{
|
||||
if (m_mouseSensitivity == sensitivity) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_mouseSensitivity = sensitivity;
|
||||
emit mouseSensitivityChanged();
|
||||
}
|
||||
|
||||
void UniversalSettings::loadConfig()
|
||||
{
|
||||
m_version = m_universalGroup.readEntry("version", 1);
|
||||
@ -210,6 +226,7 @@ void UniversalSettings::loadConfig()
|
||||
m_launchers = m_universalGroup.readEntry("launchers", QStringList());
|
||||
m_showInfoWindow = m_universalGroup.readEntry("showInfoWindow", true);
|
||||
m_memoryUsage = static_cast<Dock::LayoutsMemoryUsage>(m_universalGroup.readEntry("memoryUsage", (int)Dock::SingleLayout));
|
||||
m_mouseSensitivity = static_cast<Dock::MouseSensitivity>(m_universalGroup.readEntry("mouseSensitivity", (int)Dock::HighSensitivity));
|
||||
}
|
||||
|
||||
void UniversalSettings::saveConfig()
|
||||
@ -221,6 +238,7 @@ void UniversalSettings::saveConfig()
|
||||
m_universalGroup.writeEntry("launchers", m_launchers);
|
||||
m_universalGroup.writeEntry("showInfoWindow", m_showInfoWindow);
|
||||
m_universalGroup.writeEntry("memoryUsage", (int)m_memoryUsage);
|
||||
m_universalGroup.writeEntry("mouseSensitivity", (int)m_mouseSensitivity);
|
||||
|
||||
m_universalGroup.sync();
|
||||
}
|
||||
|
@ -42,6 +42,8 @@ class UniversalSettings : public QObject {
|
||||
Q_PROPERTY(QString currentLayoutName READ currentLayoutName WRITE setCurrentLayoutName NOTIFY currentLayoutNameChanged)
|
||||
|
||||
Q_PROPERTY(QStringList launchers READ launchers WRITE setLaunchers NOTIFY launchersChanged)
|
||||
|
||||
Q_PROPERTY(Latte::Dock::MouseSensitivity mouseSensitivity READ mouseSensitivity WRITE setMouseSensitivity NOTIFY mouseSensitivityChanged)
|
||||
public:
|
||||
UniversalSettings(KSharedConfig::Ptr config, QObject *parent = nullptr);
|
||||
~UniversalSettings() override;
|
||||
@ -69,6 +71,9 @@ public:
|
||||
QStringList launchers() const;
|
||||
void setLaunchers(QStringList launcherList);
|
||||
|
||||
Dock::MouseSensitivity mouseSensitivity() const;
|
||||
void setMouseSensitivity(Dock::MouseSensitivity sensitivity);
|
||||
|
||||
signals:
|
||||
void autostartChanged();
|
||||
void currentLayoutNameChanged();
|
||||
@ -76,6 +81,7 @@ signals:
|
||||
void layoutsWindowSizeChanged();
|
||||
void launchersChanged();
|
||||
void layoutsMemoryUsageChanged();
|
||||
void mouseSensitivityChanged();
|
||||
void showInfoWindowChanged();
|
||||
void versionChanged();
|
||||
|
||||
@ -100,6 +106,7 @@ private:
|
||||
QSize m_layoutsWindowSize{700, 450};
|
||||
QStringList m_launchers;
|
||||
Dock::LayoutsMemoryUsage m_memoryUsage;
|
||||
Dock::MouseSensitivity m_mouseSensitivity{Dock::HighSensitivity};
|
||||
|
||||
KConfigGroup m_universalGroup;
|
||||
KSharedConfig::Ptr m_config;
|
||||
|
@ -117,6 +117,13 @@ public:
|
||||
MultipleLayouts /* multiple layouts are loaded on runtime,based on Activities and one central layout for the rest unassigned Activities */
|
||||
};
|
||||
Q_ENUM(LayoutsMemoryUsage)
|
||||
|
||||
enum MouseSensitivity {
|
||||
LowSensitivity = 0,
|
||||
MediumSensitivity,
|
||||
HighSensitivity
|
||||
};
|
||||
Q_ENUM(MouseSensitivity)
|
||||
};
|
||||
|
||||
}//end of namespace
|
||||
|
@ -143,16 +143,6 @@ PlasmaComponents.Page {
|
||||
text: i18n("Behavior")
|
||||
}
|
||||
|
||||
PlasmaComponents.CheckBox {
|
||||
Layout.leftMargin: units.smallSpacing * 2
|
||||
text: i18n("Enable autostart during startup")
|
||||
checked: universalSettings.autostart
|
||||
|
||||
onClicked: {
|
||||
universalSettings.autostart = checked;
|
||||
}
|
||||
}
|
||||
|
||||
PlasmaComponents.CheckBox {
|
||||
Layout.leftMargin: units.smallSpacing * 2
|
||||
text: i18n("Decrease applets size when it is needed")
|
||||
@ -190,17 +180,6 @@ PlasmaComponents.Page {
|
||||
}
|
||||
}
|
||||
|
||||
PlasmaComponents.CheckBox {
|
||||
Layout.leftMargin: units.smallSpacing * 2
|
||||
text: i18n("Show info for layouts automatic switching")
|
||||
checked: universalSettings.showInfoWindow
|
||||
tooltip: i18n("It shows a Latte specific info window")
|
||||
|
||||
onClicked: {
|
||||
universalSettings.showInfoWindow = checked;
|
||||
}
|
||||
}
|
||||
|
||||
PlasmaComponents.CheckBox {
|
||||
Layout.leftMargin: units.smallSpacing * 2
|
||||
text: i18n("Raise dock on desktop change")
|
||||
|
Loading…
x
Reference in New Issue
Block a user