Skip to content

Commit

Permalink
Merge pull request #5968 from nextcloud/bugfix/dark-mode-folder-wizar…
Browse files Browse the repository at this point in the history
…d-warning-color

Fix folder wizard warning color for local path in dark mode
  • Loading branch information
mgallien authored Sep 16, 2023
2 parents 1313427 + e6676ac commit 6ebc94f
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 5 deletions.
45 changes: 41 additions & 4 deletions src/gui/folderwizard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,21 @@

#include <cstdlib>

namespace
{
constexpr QColor darkWarnYellow(63, 63, 0);
constexpr QColor lightWarnYellow(255, 255, 192);

QPalette yellowWarnWidgetPalette(const QPalette &existingPalette)
{
const auto warnYellow = OCC::Theme::instance()->darkMode() ? darkWarnYellow : lightWarnYellow;
auto modifiedPalette = existingPalette;
modifiedPalette.setColor(QPalette::Window, warnYellow);
modifiedPalette.setColor(QPalette::Base, warnYellow);
return modifiedPalette;
}
}

namespace OCC {

QString FormatWarningsWizardPage::formatWarnings(const QStringList &warnings) const
Expand Down Expand Up @@ -162,10 +177,8 @@ void FolderWizardLocalPath::changeEvent(QEvent *e)

void FolderWizardLocalPath::changeStyle()
{
const auto warnYellow = Theme::isDarkColor(QGuiApplication::palette().base().color()) ? QColor(63, 63, 0) : QColor(255, 255, 192);
auto modifiedPalette = _ui.warnLabel->palette();
modifiedPalette.setColor(QPalette::Window, warnYellow);
_ui.warnLabel->setPalette(modifiedPalette);
const auto yellowWarnPalette = yellowWarnWidgetPalette(_ui.warnLabel->palette());
_ui.warnLabel->setPalette(yellowWarnPalette);
}

// =================================================================================
Expand All @@ -192,6 +205,8 @@ FolderWizardRemotePath::FolderWizardRemotePath(const AccountPtr &account)
_ui.folderTreeWidget->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
// Make sure that there will be a scrollbar when the contents is too wide
_ui.folderTreeWidget->header()->setStretchLastSection(false);

changeStyle();
}

void FolderWizardRemotePath::slotAddRemoteFolder()
Expand Down Expand Up @@ -523,6 +538,28 @@ void FolderWizardRemotePath::showWarn(const QString &msg) const
}
}

void FolderWizardRemotePath::changeEvent(QEvent *e)
{
switch (e->type()) {
case QEvent::StyleChange:
case QEvent::PaletteChange:
case QEvent::ThemeChange:
// Notify the other widgets (Dark-/Light-Mode switching)
changeStyle();
break;
default:
break;
}

FormatWarningsWizardPage::changeEvent(e);
}

void FolderWizardRemotePath::changeStyle()
{
const auto yellowWarnPalette = yellowWarnWidgetPalette(_ui.warnLabel->palette());
_ui.warnLabel->setPalette(yellowWarnPalette);
}

// ====================================================================================

FolderWizardSelectiveSync::FolderWizardSelectiveSync(const AccountPtr &account)
Expand Down
7 changes: 6 additions & 1 deletion src/gui/folderwizard.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ class FolderWizardRemotePath : public FormatWarningsWizardPage
void cleanupPage() override;

protected slots:

void showWarn(const QString & = QString()) const;
void slotAddRemoteFolder();
void slotCreateRemoteFolder(const QString &);
Expand All @@ -110,6 +109,12 @@ protected slots:
void slotLsColFolderEntry();
void slotTypedPathFound(const QStringList &subpaths);

protected:
void changeEvent(QEvent *) override;

private slots:
void changeStyle();

private:
LsColJob *runLsColJob(const QString &path);
void recursiveInsert(QTreeWidgetItem *parent, QStringList pathTrail, QString path);
Expand Down

0 comments on commit 6ebc94f

Please sign in to comment.