Skip to content

Commit

Permalink
Introduce View Menu
Browse files Browse the repository at this point in the history
* Move user interface settings from the settings widget into the view menu.
* Add auo-restart prompt to make theme changes easy
  • Loading branch information
droidmonkey committed Jun 28, 2020
1 parent 1dd758c commit fa2e43d
Show file tree
Hide file tree
Showing 10 changed files with 203 additions and 135 deletions.
12 changes: 12 additions & 0 deletions src/gui/Application.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -315,3 +315,15 @@ bool Application::isDarkTheme() const
{
return m_darkTheme;
}

void Application::restart()
{
// Disable single instance
m_lockServer.close();
if (m_lockFile) {
m_lockFile->unlock();
delete m_lockFile;
}

exit(RESTART_EXITCODE);
}
4 changes: 4 additions & 0 deletions src/gui/Application.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ class OSEventFilter;
class QLockFile;
class QSocketNotifier;

constexpr int RESTART_EXITCODE = -1;

class Application : public QApplication
{
Q_OBJECT
Expand All @@ -47,6 +49,8 @@ class Application : public QApplication

bool sendFileNamesToRunningInstance(const QStringList& fileNames);

void restart();

signals:
void openFile(const QString& filename);
void anotherInstanceStarted();
Expand Down
25 changes: 0 additions & 25 deletions src/gui/ApplicationSettingsWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@ ApplicationSettingsWidget::ApplicationSettingsWidget(QWidget* parent)
connect(m_generalUi->autoSaveAfterEveryChangeCheckBox, SIGNAL(toggled(bool)), SLOT(autoSaveToggled(bool)));
connect(m_generalUi->hideWindowOnCopyCheckBox, SIGNAL(toggled(bool)), SLOT(hideWindowOnCopyCheckBoxToggled(bool)));
connect(m_generalUi->systrayShowCheckBox, SIGNAL(toggled(bool)), SLOT(systrayToggled(bool)));
connect(m_generalUi->toolbarHideCheckBox, SIGNAL(toggled(bool)), SLOT(toolbarSettingsToggled(bool)));
connect(m_generalUi->rememberLastDatabasesCheckBox, SIGNAL(toggled(bool)), SLOT(rememberDatabasesToggled(bool)));
connect(m_generalUi->resetSettingsButton, SIGNAL(clicked()), SLOT(resetSettings()));

Expand All @@ -126,7 +125,6 @@ ApplicationSettingsWidget::ApplicationSettingsWidget(QWidget* parent)
m_generalUi->faviconTimeoutSpinBox->installEventFilter(mouseWheelFilter);
m_generalUi->toolButtonStyleComboBox->installEventFilter(mouseWheelFilter);
m_generalUi->languageComboBox->installEventFilter(mouseWheelFilter);
m_generalUi->appThemeSelection->installEventFilter(mouseWheelFilter);

#ifdef WITH_XC_UPDATECHECK
connect(m_generalUi->checkForUpdatesOnStartupCheckBox, SIGNAL(toggled(bool)), SLOT(checkUpdatesToggled(bool)));
Expand Down Expand Up @@ -210,20 +208,9 @@ void ApplicationSettingsWidget::loadSettings()
m_generalUi->languageComboBox->setCurrentIndex(defaultIndex);
}

m_generalUi->previewHideCheckBox->setChecked(config()->get(Config::GUI_HidePreviewPanel).toBool());
m_generalUi->toolbarHideCheckBox->setChecked(config()->get(Config::GUI_HideToolbar).toBool());
toolbarSettingsToggled(m_generalUi->toolbarHideCheckBox->isChecked());
m_generalUi->toolbarMovableCheckBox->setChecked(config()->get(Config::GUI_MovableToolbar).toBool());
m_generalUi->monospaceNotesCheckBox->setChecked(config()->get(Config::GUI_MonospaceNotes).toBool());

m_generalUi->appThemeSelection->clear();
m_generalUi->appThemeSelection->addItem(tr("Automatic"), "auto");
m_generalUi->appThemeSelection->addItem(tr("Light"), "light");
m_generalUi->appThemeSelection->addItem(tr("Dark"), "dark");
m_generalUi->appThemeSelection->addItem(tr("Classic (Platform-native)"), "classic");
m_generalUi->appThemeSelection->setCurrentIndex(
m_generalUi->appThemeSelection->findData(config()->get(Config::GUI_ApplicationTheme).toString()));

m_generalUi->toolButtonStyleComboBox->clear();
m_generalUi->toolButtonStyleComboBox->addItem(tr("Icon only"), Qt::ToolButtonIconOnly);
m_generalUi->toolButtonStyleComboBox->addItem(tr("Text only"), Qt::ToolButtonTextOnly);
Expand Down Expand Up @@ -338,14 +325,9 @@ void ApplicationSettingsWidget::saveSettings()
config()->set(Config::FaviconDownloadTimeout, m_generalUi->faviconTimeoutSpinBox->value());

config()->set(Config::GUI_Language, m_generalUi->languageComboBox->currentData().toString());
config()->set(Config::GUI_HidePreviewPanel, m_generalUi->previewHideCheckBox->isChecked());
config()->set(Config::GUI_HideToolbar, m_generalUi->toolbarHideCheckBox->isChecked());
config()->set(Config::GUI_MovableToolbar, m_generalUi->toolbarMovableCheckBox->isChecked());
config()->set(Config::GUI_MonospaceNotes, m_generalUi->monospaceNotesCheckBox->isChecked());

QString theme = m_generalUi->appThemeSelection->currentData().toString();
config()->set(Config::GUI_ApplicationTheme, theme);

config()->set(Config::GUI_ToolButtonStyle, m_generalUi->toolButtonStyleComboBox->currentData().toString());

config()->set(Config::GUI_ShowTrayIcon, m_generalUi->systrayShowCheckBox->isChecked());
Expand Down Expand Up @@ -481,13 +463,6 @@ void ApplicationSettingsWidget::systrayToggled(bool checked)
m_generalUi->systrayMinimizeToTrayCheckBox->setEnabled(checked);
}

void ApplicationSettingsWidget::toolbarSettingsToggled(bool checked)
{
m_generalUi->toolbarMovableCheckBox->setEnabled(!checked);
m_generalUi->toolButtonStyleComboBox->setEnabled(!checked);
m_generalUi->toolButtonStyleLabel->setEnabled(!checked);
}

void ApplicationSettingsWidget::rememberDatabasesToggled(bool checked)
{
if (!checked) {
Expand Down
1 change: 0 additions & 1 deletion src/gui/ApplicationSettingsWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ private slots:
void autoSaveToggled(bool checked);
void hideWindowOnCopyCheckBoxToggled(bool checked);
void systrayToggled(bool checked);
void toolbarSettingsToggled(bool checked);
void rememberDatabasesToggled(bool checked);
void checkUpdatesToggled(bool checked);

Expand Down
148 changes: 40 additions & 108 deletions src/gui/ApplicationSettingsWidgetGeneral.ui
Original file line number Diff line number Diff line change
Expand Up @@ -307,13 +307,6 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="previewHideCheckBox">
<property name="text">
<string>Hide the entry preview panel</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="minimizeOnOpenUrlCheckBox">
<property name="text">
Expand Down Expand Up @@ -460,8 +453,8 @@
<property name="horizontalSpacing">
<number>10</number>
</property>
<item row="0" column="1">
<widget class="QComboBox" name="appThemeSelection">
<item row="1" column="1">
<widget class="QComboBox" name="toolButtonStyleComboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
Expand All @@ -472,51 +465,30 @@
<enum>Qt::StrongFocus</enum>
</property>
<property name="accessibleName">
<string>Application Theme Selection</string>
</property>
</widget>
</item>
<item row="0" column="3">
<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>
<string>Toolbar button style</string>
</property>
</spacer>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label">
<property name="text">
<string>(restart program to activate)</string>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="languageLabel_3">
<property name="text">
<string>(restart program to activate)</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="appThemeLabel">
<property name="text">
<string>Application theme:</string>
<widget class="QCheckBox" name="toolbarMovableCheckBox">
<property name="enabled">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="buddy">
<cstring>appThemeSelection</cstring>
<property name="text">
<string>Movable toolbar</string>
</property>
</widget>
</item>
<item row="1" column="1">
<item row="0" column="1">
<widget class="QComboBox" name="languageComboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
Expand All @@ -532,7 +504,7 @@
</property>
</widget>
</item>
<item row="1" column="0">
<item row="0" column="0">
<widget class="QLabel" name="languageLabel_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
Expand All @@ -551,7 +523,27 @@
</property>
</widget>
</item>
<item row="2" column="0">
<item row="0" column="2">
<widget class="QLabel" name="languageLabel_3">
<property name="text">
<string>(restart program to activate)</string>
</property>
</widget>
</item>
<item row="0" column="3">
<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 row="1" column="0">
<widget class="QLabel" name="toolButtonStyleLabel">
<property name="enabled">
<bool>true</bool>
Expand All @@ -576,66 +568,8 @@
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="toolButtonStyleComboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="accessibleName">
<string>Toolbar button style</string>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_5">
<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>
<widget class="QCheckBox" name="toolbarHideCheckBox">
<property name="text">
<string>Hide toolbar</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="toolbarMovableCheckBox">
<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="text">
<string>Movable toolbar</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="monospaceNotesCheckBox">
<property name="text">
Expand Down Expand Up @@ -1102,20 +1036,18 @@
<tabstop>autoReloadOnChangeCheckBox</tabstop>
<tabstop>useAtomicSavesCheckBox</tabstop>
<tabstop>useGroupIconOnEntryCreationCheckBox</tabstop>
<tabstop>previewHideCheckBox</tabstop>
<tabstop>minimizeOnOpenUrlCheckBox</tabstop>
<tabstop>hideWindowOnCopyCheckBox</tabstop>
<tabstop>minimizeOnCopyRadioButton</tabstop>
<tabstop>dropToBackgroundOnCopyRadioButton</tabstop>
<tabstop>faviconTimeoutSpinBox</tabstop>
<tabstop>appThemeSelection</tabstop>
<tabstop>languageComboBox</tabstop>
<tabstop>toolButtonStyleComboBox</tabstop>
<tabstop>toolbarHideCheckBox</tabstop>
<tabstop>toolbarMovableCheckBox</tabstop>
<tabstop>monospaceNotesCheckBox</tabstop>
<tabstop>toolbarMovableCheckBox</tabstop>
<tabstop>minimizeOnCloseCheckBox</tabstop>
<tabstop>systrayShowCheckBox</tabstop>
<tabstop>trayIconAppearance</tabstop>
<tabstop>systrayMinimizeToTrayCheckBox</tabstop>
<tabstop>resetSettingsButton</tabstop>
<tabstop>autoTypeEntryTitleMatchCheckBox</tabstop>
Expand Down
6 changes: 6 additions & 0 deletions src/gui/EntryPreviewWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,12 @@ EntryPreviewWidget::EntryPreviewWidget(QWidget* parent)
connect(m_ui->entryTabWidget, SIGNAL(tabBarClicked(int)), SLOT(updateTabIndexes()), Qt::QueuedConnection);
connect(&m_totpTimer, SIGNAL(timeout()), SLOT(updateTotpLabel()));

connect(config(), &Config::changed, this, [this](Config::ConfigKey key) {
if (key == Config::GUI_HidePreviewPanel) {
setVisible(!config()->get(Config::GUI_HidePreviewPanel).toBool());
}
});

// Group
m_ui->groupCloseButton->setIcon(resources()->icon("dialog-close"));
connect(m_ui->groupCloseButton, SIGNAL(clicked()), SLOT(hide()));
Expand Down
Loading

0 comments on commit fa2e43d

Please sign in to comment.