enable universal settings in Latte Settings Window

pull/2/head
Michail Vourlakos 7 years ago
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…
Cancel
Save