diff --git a/src/core/Config.cpp b/src/core/Config.cpp
index 66591a851..4b5f5f461 100644
--- a/src/core/Config.cpp
+++ b/src/core/Config.cpp
@@ -187,6 +187,8 @@ void Config::init(const QString& fileName)
m_defaults.insert("security/resettouchidscreenlock", true);
m_defaults.insert("GUI/Language", "system");
m_defaults.insert("GUI/HideToolbar", false);
+ m_defaults.insert("GUI/MovableToolbar", false);
+ m_defaults.insert("GUI/ToolButtonStyle", Qt::ToolButtonIconOnly);
m_defaults.insert("GUI/ShowTrayIcon", false);
m_defaults.insert("GUI/DarkTrayIcon", false);
m_defaults.insert("GUI/MinimizeToTray", false);
diff --git a/src/gui/ApplicationSettingsWidget.cpp b/src/gui/ApplicationSettingsWidget.cpp
index a0293ce8d..ff03788c9 100644
--- a/src/gui/ApplicationSettingsWidget.cpp
+++ b/src/gui/ApplicationSettingsWidget.cpp
@@ -80,6 +80,7 @@ ApplicationSettingsWidget::ApplicationSettingsWidget(QWidget* parent)
connect(
m_generalUi->autoSaveAfterEveryChangeCheckBox, SIGNAL(toggled(bool)), this, SLOT(enableAutoSaveOnExit(bool)));
connect(m_generalUi->systrayShowCheckBox, SIGNAL(toggled(bool)), this, SLOT(enableSystray(bool)));
+ connect(m_generalUi->toolbarHideCheckBox, SIGNAL(toggled(bool)), this, SLOT(enableToolbarSettings(bool)));
connect(
m_secUi->clearClipboardCheckBox, SIGNAL(toggled(bool)), m_secUi->clearClipboardSpinBox, SLOT(setEnabled(bool)));
@@ -156,6 +157,19 @@ void ApplicationSettingsWidget::loadSettings()
m_generalUi->previewHideCheckBox->setChecked(config()->get("GUI/HidePreviewPanel").toBool());
m_generalUi->toolbarHideCheckBox->setChecked(config()->get("GUI/HideToolbar").toBool());
+ m_generalUi->toolbarMovableCheckBox->setChecked(config()->get("GUI/MovableToolbar").toBool());
+
+ m_generalUi->toolButtonStyleComboBox->clear();
+ m_generalUi->toolButtonStyleComboBox->addItem(tr("Icon only"), Qt::ToolButtonIconOnly);
+ m_generalUi->toolButtonStyleComboBox->addItem(tr("Text only"), Qt::ToolButtonTextOnly);
+ m_generalUi->toolButtonStyleComboBox->addItem(tr("Text beside icon"), Qt::ToolButtonTextBesideIcon);
+ m_generalUi->toolButtonStyleComboBox->addItem(tr("Text under icon"), Qt::ToolButtonTextUnderIcon);
+ m_generalUi->toolButtonStyleComboBox->addItem(tr("Follow style"), Qt::ToolButtonFollowStyle);
+ int toolButtonStyleIndex = m_generalUi->toolButtonStyleComboBox->findData(config()->get("GUI/ToolButtonStyle"));
+ if (toolButtonStyleIndex > 0) {
+ m_generalUi->toolButtonStyleComboBox->setCurrentIndex(toolButtonStyleIndex);
+ }
+
m_generalUi->systrayShowCheckBox->setChecked(config()->get("GUI/ShowTrayIcon").toBool());
m_generalUi->systrayDarkIconCheckBox->setChecked(config()->get("GUI/DarkTrayIcon").toBool());
m_generalUi->systrayMinimizeToTrayCheckBox->setChecked(config()->get("GUI/MinimizeToTray").toBool());
@@ -232,6 +246,11 @@ void ApplicationSettingsWidget::saveSettings()
config()->set("GUI/HidePreviewPanel", m_generalUi->previewHideCheckBox->isChecked());
config()->set("GUI/HideToolbar", m_generalUi->toolbarHideCheckBox->isChecked());
+ config()->set("GUI/MovableToolbar", m_generalUi->toolbarMovableCheckBox->isChecked());
+
+ int currentToolButtonStyleIndex = m_generalUi->toolButtonStyleComboBox->currentIndex();
+ config()->set("GUI/ToolButtonStyle", m_generalUi->toolButtonStyleComboBox->itemData(currentToolButtonStyleIndex).toString());
+
config()->set("GUI/ShowTrayIcon", m_generalUi->systrayShowCheckBox->isChecked());
config()->set("GUI/DarkTrayIcon", m_generalUi->systrayDarkIconCheckBox->isChecked());
config()->set("GUI/MinimizeToTray", m_generalUi->systrayMinimizeToTrayCheckBox->isChecked());
@@ -300,3 +319,11 @@ void ApplicationSettingsWidget::enableSystray(bool checked)
m_generalUi->systrayDarkIconCheckBox->setEnabled(checked);
m_generalUi->systrayMinimizeToTrayCheckBox->setEnabled(checked);
}
+
+void ApplicationSettingsWidget::enableToolbarSettings(bool checked)
+{
+ m_generalUi->toolbarMovableCheckBox->setEnabled(!checked);
+ m_generalUi->toolButtonStyleComboBox->setEnabled(!checked);
+ m_generalUi->toolButtonStyleLabel->setEnabled(!checked);
+}
+
diff --git a/src/gui/ApplicationSettingsWidget.h b/src/gui/ApplicationSettingsWidget.h
index f596b52c5..fb6208707 100644
--- a/src/gui/ApplicationSettingsWidget.h
+++ b/src/gui/ApplicationSettingsWidget.h
@@ -55,6 +55,7 @@ private slots:
void reject();
void enableAutoSaveOnExit(bool checked);
void enableSystray(bool checked);
+ void enableToolbarSettings(bool checked);
private:
QWidget* const m_secWidget;
diff --git a/src/gui/ApplicationSettingsWidgetGeneral.ui b/src/gui/ApplicationSettingsWidgetGeneral.ui
index f8e304cca..4826e09bf 100644
--- a/src/gui/ApplicationSettingsWidgetGeneral.ui
+++ b/src/gui/ApplicationSettingsWidgetGeneral.ui
@@ -7,7 +7,7 @@
0
0
684
- 842
+ 881
@@ -186,6 +186,100 @@
+ -
+
+
+ 0
+
+
+ QLayout::SetMaximumSize
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+ Movable toolbar
+
+
+
+
+
+ -
+
+
+ 15
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+ Button style
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+
+
+
-
diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp
index 263196447..2d9652d33 100644
--- a/src/gui/MainWindow.cpp
+++ b/src/gui/MainWindow.cpp
@@ -144,6 +144,7 @@ MainWindow::MainWindow()
m_countDefaultAttributes = m_ui->menuEntryCopyAttribute->actions().size();
restoreGeometry(config()->get("GUI/MainWindowGeometry").toByteArray());
+ restoreState(config()->get("GUI/MainWindowState").toByteArray());
#ifdef WITH_XC_BROWSER
m_ui->settingsWidget->addSettingsPage(new BrowserPlugin(m_ui->tabWidget));
#endif
@@ -826,6 +827,7 @@ void MainWindow::saveWindowInformation()
{
if (isVisible()) {
config()->set("GUI/MainWindowGeometry", saveGeometry());
+ config()->set("GUI/MainWindowState", saveState());
}
}
@@ -947,6 +949,13 @@ void MainWindow::applySettingsChanges()
#endif
m_ui->toolBar->setHidden(config()->get("GUI/HideToolbar").toBool());
+ m_ui->toolBar->setMovable(config()->get("GUI/MovableToolbar").toBool());
+
+ bool isOk = false;
+ const auto toolButtonStyle = static_cast(config()->get("GUI/ToolButtonStyle").toInt(&isOk));
+ if (isOk) {
+ m_ui->toolBar->setToolButtonStyle(toolButtonStyle);
+ }
updateTrayIcon();
}