Revert "Merge pull request #5366 from nextcloud/bugfix/remove-mono-icons-setting"

This reverts commit 5c42da4de5, reversing
changes made to e4b2449030.

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2023-01-27 12:00:40 +01:00
parent e332929ffe
commit 68c785e25c
No known key found for this signature in database
GPG key ID: C839200C384636B0
8 changed files with 85 additions and 1 deletions

View file

@ -360,6 +360,9 @@ Application::Application(int &argc, char **argv)
setQuitOnLastWindowClosed(false); setQuitOnLastWindowClosed(false);
_theme->setSystrayUseMonoIcons(cfg.monoIcons());
connect(_theme, &Theme::systrayUseMonoIconsChanged, this, &Application::slotUseMonoIconsChanged);
// Setting up the gui class will allow tray notifications for the // Setting up the gui class will allow tray notifications for the
// setup that follows, like folder setup // setup that follows, like folder setup
_gui = new ownCloudGui(this); _gui = new ownCloudGui(this);
@ -568,6 +571,11 @@ void Application::setupLogging()
qCInfo(lcApplication) << "Arguments:" << qApp->arguments(); qCInfo(lcApplication) << "Arguments:" << qApp->arguments();
} }
void Application::slotUseMonoIconsChanged(bool)
{
_gui->slotComputeOverallSyncStatus();
}
void Application::slotParseMessage(const QString &msg, QObject *) void Application::slotParseMessage(const QString &msg, QObject *)
{ {
if (msg.startsWith(QLatin1String("MSG_PARSEOPTIONS:"))) { if (msg.startsWith(QLatin1String("MSG_PARSEOPTIONS:"))) {

View file

@ -100,6 +100,7 @@ signals:
protected slots: protected slots:
void slotParseMessage(const QString &, QObject *); void slotParseMessage(const QString &, QObject *);
void slotCheckConnection(); void slotCheckConnection();
void slotUseMonoIconsChanged(bool);
void slotCleanup(); void slotCleanup();
void slotAccountStateAdded(OCC::AccountState *accountState); void slotAccountStateAdded(OCC::AccountState *accountState);
void slotAccountStateRemoved(OCC::AccountState *accountState); void slotAccountStateRemoved(OCC::AccountState *accountState);

View file

@ -182,6 +182,7 @@ GeneralSettings::GeneralSettings(QWidget *parent)
//slotUpdateInfo(); //slotUpdateInfo();
// misc // misc
connect(_ui->monoIconsCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::saveMiscSettings);
connect(_ui->crashreporterCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::saveMiscSettings); connect(_ui->crashreporterCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::saveMiscSettings);
connect(_ui->newFolderLimitCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::saveMiscSettings); connect(_ui->newFolderLimitCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::saveMiscSettings);
connect(_ui->newFolderLimitSpinBox, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &GeneralSettings::saveMiscSettings); connect(_ui->newFolderLimitSpinBox, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &GeneralSettings::saveMiscSettings);
@ -215,6 +216,10 @@ GeneralSettings::GeneralSettings(QWidget *parent)
_ui->horizontalLayout_3->getContentsMargins(&m0, &m1, &m2, &m3); _ui->horizontalLayout_3->getContentsMargins(&m0, &m1, &m2, &m3);
_ui->horizontalLayout_3->setContentsMargins(0, m1, m2, m3); _ui->horizontalLayout_3->setContentsMargins(0, m1, m2, m3);
// OEM themes are not obliged to ship mono icons, so there
// is no point in offering an option
_ui->monoIconsCheckBox->setVisible(Theme::instance()->monoIconsAvailable());
connect(_ui->ignoredFilesButton, &QAbstractButton::clicked, this, &GeneralSettings::slotIgnoreFilesEditor); connect(_ui->ignoredFilesButton, &QAbstractButton::clicked, this, &GeneralSettings::slotIgnoreFilesEditor);
connect(_ui->debugArchiveButton, &QAbstractButton::clicked, this, &GeneralSettings::slotCreateDebugArchive); connect(_ui->debugArchiveButton, &QAbstractButton::clicked, this, &GeneralSettings::slotCreateDebugArchive);
@ -241,6 +246,7 @@ void GeneralSettings::loadMiscSettings()
{ {
QScopedValueRollback<bool> scope(_currentlyLoading, true); QScopedValueRollback<bool> scope(_currentlyLoading, true);
ConfigFile cfgFile; ConfigFile cfgFile;
_ui->monoIconsCheckBox->setChecked(cfgFile.monoIcons());
_ui->serverNotificationsCheckBox->setChecked(cfgFile.optionalServerNotifications()); _ui->serverNotificationsCheckBox->setChecked(cfgFile.optionalServerNotifications());
_ui->callNotificationsCheckBox->setEnabled(_ui->serverNotificationsCheckBox->isEnabled()); _ui->callNotificationsCheckBox->setEnabled(_ui->serverNotificationsCheckBox->isEnabled());
_ui->callNotificationsCheckBox->setChecked(cfgFile.showCallNotifications()); _ui->callNotificationsCheckBox->setChecked(cfgFile.showCallNotifications());
@ -250,6 +256,7 @@ void GeneralSettings::loadMiscSettings()
_ui->newFolderLimitCheckBox->setChecked(newFolderLimit.first); _ui->newFolderLimitCheckBox->setChecked(newFolderLimit.first);
_ui->newFolderLimitSpinBox->setValue(newFolderLimit.second); _ui->newFolderLimitSpinBox->setValue(newFolderLimit.second);
_ui->newExternalStorage->setChecked(cfgFile.confirmExternalStorage()); _ui->newExternalStorage->setChecked(cfgFile.confirmExternalStorage());
_ui->monoIconsCheckBox->setChecked(cfgFile.monoIcons());
} }
#if defined(BUILD_UPDATER) #if defined(BUILD_UPDATER)
@ -413,6 +420,9 @@ void GeneralSettings::saveMiscSettings()
if (_currentlyLoading) if (_currentlyLoading)
return; return;
ConfigFile cfgFile; ConfigFile cfgFile;
bool isChecked = _ui->monoIconsCheckBox->isChecked();
cfgFile.setMonoIcons(isChecked);
Theme::instance()->setSystrayUseMonoIcons(isChecked);
cfgFile.setCrashReporter(_ui->crashreporterCheckBox->isChecked()); cfgFile.setCrashReporter(_ui->crashreporterCheckBox->isChecked());
cfgFile.setNewBigFolderSizeLimit(_ui->newFolderLimitCheckBox->isChecked(), cfgFile.setNewBigFolderSizeLimit(_ui->newFolderLimitCheckBox->isChecked(),

View file

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>556</width> <width>556</width>
<height>573</height> <height>563</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -66,6 +66,16 @@
<string>General Settings</string> <string>General Settings</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="0">
<widget class="QCheckBox" name="monoIconsCheckBox">
<property name="toolTip">
<string>For System Tray</string>
</property>
<property name="text">
<string>Use &amp;Monochrome Icons</string>
</property>
</widget>
</item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QCheckBox" name="autostartCheckBox"> <widget class="QCheckBox" name="autostartCheckBox">
<property name="text"> <property name="text">
@ -333,6 +343,7 @@
<tabstops> <tabstops>
<tabstop>autostartCheckBox</tabstop> <tabstop>autostartCheckBox</tabstop>
<tabstop>serverNotificationsCheckBox</tabstop> <tabstop>serverNotificationsCheckBox</tabstop>
<tabstop>monoIconsCheckBox</tabstop>
<tabstop>ignoredFilesButton</tabstop> <tabstop>ignoredFilesButton</tabstop>
<tabstop>newFolderLimitCheckBox</tabstop> <tabstop>newFolderLimitCheckBox</tabstop>
<tabstop>newFolderLimitSpinBox</tabstop> <tabstop>newFolderLimitSpinBox</tabstop>

View file

@ -56,6 +56,7 @@ static constexpr char remotePollIntervalC[] = "remotePollInterval";
static constexpr char forceSyncIntervalC[] = "forceSyncInterval"; static constexpr char forceSyncIntervalC[] = "forceSyncInterval";
static constexpr char fullLocalDiscoveryIntervalC[] = "fullLocalDiscoveryInterval"; static constexpr char fullLocalDiscoveryIntervalC[] = "fullLocalDiscoveryInterval";
static constexpr char notificationRefreshIntervalC[] = "notificationRefreshInterval"; static constexpr char notificationRefreshIntervalC[] = "notificationRefreshInterval";
static constexpr char monoIconsC[] = "monoIcons";
static constexpr char promptDeleteC[] = "promptDeleteAllFiles"; static constexpr char promptDeleteC[] = "promptDeleteAllFiles";
static constexpr char crashReporterC[] = "crashReporter"; static constexpr char crashReporterC[] = "crashReporter";
static constexpr char optionalServerNotificationsC[] = "optionalServerNotifications"; static constexpr char optionalServerNotificationsC[] = "optionalServerNotifications";
@ -946,6 +947,23 @@ void ConfigFile::setPromptDeleteFiles(bool promptDeleteFiles)
settings.setValue(QLatin1String(promptDeleteC), promptDeleteFiles); settings.setValue(QLatin1String(promptDeleteC), promptDeleteFiles);
} }
bool ConfigFile::monoIcons() const
{
QSettings settings(configFile(), QSettings::IniFormat);
bool monoDefault = false; // On Mac we want bw by default
#ifdef Q_OS_MAC
// OEM themes are not obliged to ship mono icons
monoDefault = QByteArrayLiteral("Nextcloud") == QByteArrayLiteral(APPLICATION_NAME);
#endif
return settings.value(QLatin1String(monoIconsC), monoDefault).toBool();
}
void ConfigFile::setMonoIcons(bool useMonoIcons)
{
QSettings settings(configFile(), QSettings::IniFormat);
settings.setValue(QLatin1String(monoIconsC), useMonoIcons);
}
bool ConfigFile::crashReporter() const bool ConfigFile::crashReporter() const
{ {
QSettings settings(configFile(), QSettings::IniFormat); QSettings settings(configFile(), QSettings::IniFormat);

View file

@ -83,6 +83,9 @@ public:
*/ */
[[nodiscard]] std::chrono::milliseconds fullLocalDiscoveryInterval() const; [[nodiscard]] std::chrono::milliseconds fullLocalDiscoveryInterval() const;
[[nodiscard]] bool monoIcons() const;
void setMonoIcons(bool);
[[nodiscard]] bool promptDeleteFiles() const; [[nodiscard]] bool promptDeleteFiles() const;
void setPromptDeleteFiles(bool promptDeleteFiles); void setPromptDeleteFiles(bool promptDeleteFiles);

View file

@ -480,6 +480,23 @@ QString Theme::systrayIconFlavor(bool mono) const
return flavor; return flavor;
} }
void Theme::setSystrayUseMonoIcons(bool mono)
{
_mono = mono;
emit systrayUseMonoIconsChanged(mono);
}
bool Theme::systrayUseMonoIcons() const
{
return _mono;
}
bool Theme::monoIconsAvailable() const
{
QString themeDir = QString(Theme::themePrefix) + QString::fromLatin1("%1/").arg(Theme::instance()->systrayIconFlavor(true));
return QDir(themeDir).exists();
}
QString Theme::updateCheckUrl() const QString Theme::updateCheckUrl() const
{ {
return APPLICATION_UPDATE_URL; return APPLICATION_UPDATE_URL;

View file

@ -340,6 +340,21 @@ public:
*/ */
virtual QString aboutDetails() const; virtual QString aboutDetails() const;
/**
* Define if the systray icons should be using mono design
*/
void setSystrayUseMonoIcons(bool mono);
/**
* Retrieve wether to use mono icons for systray
*/
bool systrayUseMonoIcons() const;
/**
* Check if mono icons are available
*/
bool monoIconsAvailable() const;
/** /**
* @brief Where to check for new Updates. * @brief Where to check for new Updates.
*/ */
@ -597,6 +612,7 @@ protected:
Theme(); Theme();
signals: signals:
void systrayUseMonoIconsChanged(bool);
void systemPaletteChanged(const QPalette &palette); void systemPaletteChanged(const QPalette &palette);
void darkModeChanged(); void darkModeChanged();
void overrideServerUrlChanged(); void overrideServerUrlChanged();