Replace LOAD_ICON macro by a proper IconLoader::load method

This commit is contained in:
Sébastien Fourey 2023-04-03 15:34:51 +02:00
parent 5221075768
commit ec645c938d
14 changed files with 74 additions and 45 deletions

View File

@ -2,9 +2,13 @@
<qresource prefix="/">
<file>icons/bookmark-add.png</file>
<file>icons/bookmark-remove.png</file>
<file>icons/cancel.png</file>
<file>icons/close.png</file>
<file>icons/dark/bookmark-add.png</file>
<file>icons/dark/bookmark-remove.png</file>
<file>icons/dark/document-open.png</file>
<file>icons/dark/cancel.png</file>
<file>icons/dark/close.png</file>
<file>icons/dark/document-open.png</file>
<file>icons/dark/draw-arrow-down.png</file>
<file>icons/dark/draw-arrow-up.png</file>
<file>icons/dark/edit-clear.png</file>
@ -15,7 +19,6 @@
<file>icons/dark/list-add.png</file>
<file>icons/dark/list-remove.png</file>
<file>icons/dark/package_settings.png</file>
<file>icons/dark/process-stop.png</file>
<file>icons/dark/rename.png</file>
<file>icons/dark/selection_mode.png</file>
<file>icons/dark/system-run.png</file>
@ -36,7 +39,6 @@
<file>icons/list-add.png</file>
<file>icons/list-remove.png</file>
<file>icons/package_settings.png</file>
<file>icons/process-stop.png</file>
<file>icons/rename.png</file>
<file>icons/selection_mode.png</file>
<file>icons/system-run.png</file>

View File

@ -46,7 +46,7 @@ DialogSettings::DialogSettings(QWidget * parent) : QDialog(parent), ui(new Ui::D
setWindowIcon(parent->windowIcon());
adjustSize();
ui->pbUpdate->setIcon(LOAD_ICON("view-refresh"));
ui->pbUpdate->setIcon(IconLoader::load("view-refresh"));
ui->cbUpdatePeriodicity->addItem(tr("Never"), QVariant(INTERNET_NEVER_UPDATE_PERIODICITY));
ui->cbUpdatePeriodicity->addItem(tr("Daily"), QVariant(ONE_DAY_HOURS));

View File

@ -71,7 +71,7 @@ bool FileParameter::addTo(QWidget * widget, int row)
buttonText = fm.elidedText(QFileInfo(_value).fileName(), Qt::ElideRight, w);
}
_button = new QPushButton(buttonText, widget);
_button->setIcon(LOAD_ICON("document-open"));
_button->setIcon(IconLoader::load("document-open"));
_grid->addWidget(_label = new QLabel(_name, widget), row, 0, 1, 1);
setTextSelectable(_label);
_grid->addWidget(_button, row, 1, 1, 2);

View File

@ -63,7 +63,7 @@ bool FolderParameter::addTo(QWidget * widget, int row)
delete _button;
_button = new QPushButton(widget);
_button->setIcon(LOAD_ICON("folder"));
_button->setIcon(IconLoader::load("folder"));
_grid->addWidget(_label = new QLabel(_name, widget), row, 0, 1, 1);
setTextSelectable(_label);
_grid->addWidget(_button, row, 1, 1, 2);

View File

@ -79,7 +79,7 @@ bool TextParameter::addTo(QWidget * widget, int row)
_textEdit = nullptr;
_grid->addWidget(_lineEdit, row, 1, 1, 2);
#if QT_VERSION_GTE(5, 2, 0)
_updateAction = _lineEdit->addAction(LOAD_ICON("view-refresh"), QLineEdit::TrailingPosition);
_updateAction = _lineEdit->addAction(IconLoader::load("view-refresh"), QLineEdit::TrailingPosition);
#endif
}
connectEditor();

View File

@ -29,14 +29,32 @@
namespace GmicQt
{
QIcon IconLoader::getForDarkTheme(const QString & name)
QIcon IconLoader::getForDarkTheme(const char * name)
{
QPixmap pixmap(QString(":/icons/dark/%1.png").arg(name));
QPixmap pixmap(darkIconPath(name));
QIcon icon(pixmap);
icon.addPixmap(darkerPixmap(pixmap), QIcon::Disabled, QIcon::Off);
return icon;
}
QIcon IconLoader::load(const char * name)
{
if (Settings::darkThemeEnabled()) {
return getForDarkTheme(name);
} else {
return QIcon(QString(":/icons/%1.png").arg(name));
}
}
QIcon IconLoader::loadNoDarkened(const char * name)
{
if (Settings::darkThemeEnabled()) {
return QIcon(darkIconPath(name));
} else {
return QIcon(QString(":/icons/%1.png").arg(name));
}
}
QPixmap IconLoader::darkerPixmap(const QPixmap & pixmap)
{
QImage image = pixmap.toImage().convertToFormat(QImage::Format_ARGB32);
@ -56,4 +74,13 @@ QPixmap IconLoader::darkerPixmap(const QPixmap & pixmap)
return QPixmap::fromImage(image);
}
QString IconLoader::darkIconPath(const char * name)
{
QString darkPath = QString(":/icons/dark/%1.png").arg(name);
if (QFileInfo(darkPath).exists()) {
return darkPath;
}
return QString(":/icons/%1.png").arg(name); // Fallback
}
} // namespace GmicQt

View File

@ -30,19 +30,19 @@
#include "Settings.h"
class QString;
#define LOAD_ICON(NAME) (Settings::darkThemeEnabled() ? IconLoader::getForDarkTheme(NAME) : QIcon(":/icons/" NAME ".png"))
#define LOAD_ICON_NO_DARKENED(NAME) (Settings::darkThemeEnabled() ? QIcon(":/icons/dark/" NAME ".png") : QIcon(":/icons/" NAME ".png"))
namespace GmicQt
{
class IconLoader {
public:
IconLoader() = delete;
static QIcon getForDarkTheme(const QString & name);
static QIcon getForDarkTheme(const char * name);
static QIcon load(const char * name);
static QIcon loadNoDarkened(const char * name);
private:
static QPixmap darkerPixmap(const QPixmap & pixmap);
static QString darkIconPath(const char * name);
};
} // namespace GmicQt

View File

@ -252,22 +252,22 @@ MainWindow::~MainWindow()
void MainWindow::setIcons()
{
ui->tbTags->setIcon(LOAD_ICON("color-wheel"));
ui->tbRenameFave->setIcon(LOAD_ICON("rename"));
ui->pbSettings->setIcon(LOAD_ICON("package_settings"));
ui->pbFullscreen->setIcon(LOAD_ICON("view-fullscreen"));
ui->tbUpdateFilters->setIcon(LOAD_ICON_NO_DARKENED("view-refresh"));
ui->pbApply->setIcon(LOAD_ICON("system-run"));
ui->pbOk->setIcon(LOAD_ICON("insert-image"));
ui->tbResetParameters->setIcon(LOAD_ICON("view-refresh"));
ui->tbCopyCommand->setIcon(LOAD_ICON("edit-copy"));
ui->pbClose->setIcon(LOAD_ICON("close"));
ui->pbCancel->setIcon(LOAD_ICON("cancel"));
ui->tbAddFave->setIcon(LOAD_ICON("bookmark-add"));
ui->tbRemoveFave->setIcon(LOAD_ICON("bookmark-remove"));
ui->tbSelectionMode->setIcon(LOAD_ICON("selection_mode"));
_expandIcon = LOAD_ICON("draw-arrow-down");
_collapseIcon = LOAD_ICON("draw-arrow-up");
ui->tbTags->setIcon(IconLoader::load("color-wheel"));
ui->tbRenameFave->setIcon(IconLoader::load("rename"));
ui->pbSettings->setIcon(IconLoader::load("package_settings"));
ui->pbFullscreen->setIcon(IconLoader::load("view-fullscreen"));
ui->tbUpdateFilters->setIcon(IconLoader::loadNoDarkened("view-refresh"));
ui->pbApply->setIcon(IconLoader::load("system-run"));
ui->pbOk->setIcon(IconLoader::load("insert-image"));
ui->tbResetParameters->setIcon(IconLoader::load("view-refresh"));
ui->tbCopyCommand->setIcon(IconLoader::load("edit-copy"));
ui->pbClose->setIcon(IconLoader::load("close"));
ui->pbCancel->setIcon(IconLoader::load("cancel"));
ui->tbAddFave->setIcon(IconLoader::load("bookmark-add"));
ui->tbRemoveFave->setIcon(IconLoader::load("bookmark-remove"));
ui->tbSelectionMode->setIcon(IconLoader::load("selection_mode"));
_expandIcon = IconLoader::load("draw-arrow-down");
_collapseIcon = IconLoader::load("draw-arrow-up");
_expandCollapseIcon = &_expandIcon;
ui->tbExpandCollapse->setIcon(_expandIcon);
}

View File

@ -108,8 +108,8 @@ void Settings::load(UserInterfaceMode userInterfaceMode)
}
if (userInterfaceMode != UserInterfaceMode::Silent) {
AddIcon = LOAD_ICON("list-add");
RemoveIcon = LOAD_ICON("list-remove");
AddIcon = IconLoader::load("list-add");
RemoveIcon = IconLoader::load("list-remove");
}
QLocale locale;
GroupSeparator = locale.groupSeparator();

View File

@ -45,15 +45,15 @@ SourcesWidget::SourcesWidget(QWidget * parent) : QWidget(parent), ui(new Ui::Sou
{
ui->setupUi(this);
ui->tbUp->setIcon(LOAD_ICON("draw-arrow-up"));
ui->tbUp->setIcon(IconLoader::load("draw-arrow-up"));
ui->tbUp->setToolTip(tr("Move source up"));
ui->tbDown->setIcon(LOAD_ICON("draw-arrow-down"));
ui->tbDown->setIcon(IconLoader::load("draw-arrow-down"));
ui->tbDown->setToolTip(tr("Move source down"));
ui->tbTrash->setIcon(LOAD_ICON("user-trash"));
ui->tbTrash->setIcon(IconLoader::load("user-trash"));
ui->tbTrash->setToolTip(tr("Remove source"));
ui->tbOpen->setIcon(LOAD_ICON("folder"));
ui->tbOpen->setIcon(IconLoader::load("folder"));
ui->tbOpen->setToolTip(tr("Add local file (dialog)"));
ui->tbReset->setIcon(LOAD_ICON("view-refresh"));
ui->tbReset->setIcon(IconLoader::load("view-refresh"));
ui->tbReset->setToolTip(tr("Reset filter sources"));
connect(ui->tbOpen, &QPushButton::clicked, this, &SourcesWidget::onOpenFile);
connect(ui->tbNew, &QPushButton::clicked, this, &SourcesWidget::onAddNew);

View File

@ -57,7 +57,7 @@ InOutPanel::InOutPanel(QWidget * parent) : QWidget(parent), ui(new Ui::InOutPane
ui->setupUi(this);
ui->topLabel->setStyleSheet("QLabel { font-weight: bold }");
ui->tbReset->setIcon(LOAD_ICON("view-refresh"));
ui->tbReset->setIcon(IconLoader::load("view-refresh"));
ui->inputLayers->setToolTip(tr("Input layers"));
@ -159,7 +159,7 @@ void InOutPanel::onResetButtonClicked()
void InOutPanel::setDarkTheme()
{
ui->tbReset->setIcon(LOAD_ICON("view-refresh"));
ui->tbReset->setIcon(IconLoader::load("view-refresh"));
}
void InOutPanel::setDefaultInputMode()

View File

@ -48,7 +48,7 @@ ProgressInfoWidget::ProgressInfoWidget(QWidget * parent) : QWidget(parent), ui(n
_growing = true;
setWindowTitle(tr("G'MIC-Qt Plug-in progression"));
ui->progressBar->setRange(0, 100);
ui->tbCancel->setIcon(LOAD_ICON("cancel"));
ui->tbCancel->setIcon(IconLoader::load("cancel"));
ui->tbCancel->setToolTip(tr("Abort"));
connect(&_timer, &QTimer::timeout, this, &ProgressInfoWidget::onTimeOut);
connect(ui->tbCancel, &QToolButton::clicked, this, &ProgressInfoWidget::cancel);

View File

@ -43,8 +43,8 @@ namespace GmicQt
SearchFieldWidget::SearchFieldWidget(QWidget * parent) : QWidget(parent), ui(new Ui::SearchFieldWidget)
{
ui->setupUi(this);
_clearIcon = LOAD_ICON("edit-clear");
_findIcon = LOAD_ICON("edit-find");
_clearIcon = IconLoader::load("edit-clear");
_findIcon = IconLoader::load("edit-find");
_empty = true;
#if QT_VERSION_GTE(5, 2, 0)
@ -53,7 +53,7 @@ SearchFieldWidget::SearchFieldWidget(QWidget * parent) : QWidget(parent), ui(new
hbox->setContentsMargins(0, 0, 0, 0);
hbox->setSpacing(0);
hbox->addWidget(_lineEdit = new QLineEdit(this));
_action = _lineEdit->addAction(LOAD_ICON("edit-find"), QLineEdit::TrailingPosition);
_action = _lineEdit->addAction(IconLoader::load("edit-find"), QLineEdit::TrailingPosition);
connect(_action, &QAction::triggered, _lineEdit, &QLineEdit::clear);
}
#else

View File

@ -55,9 +55,9 @@ ZoomLevelSelector::ZoomLevelSelector(QWidget * parent) : QWidget(parent), ui(new
ui->tbZoomOut->setToolTip(tr("Zoom out"));
ui->tbZoomReset->setToolTip(tr("Reset zoom"));
ui->tbZoomIn->setIcon(LOAD_ICON("zoom-in"));
ui->tbZoomOut->setIcon(LOAD_ICON("zoom-out"));
ui->tbZoomReset->setIcon(LOAD_ICON("view-refresh"));
ui->tbZoomIn->setIcon(IconLoader::load("zoom-in"));
ui->tbZoomOut->setIcon(IconLoader::load("zoom-out"));
ui->tbZoomReset->setIcon(IconLoader::load("view-refresh"));
connect(ui->comboBox->lineEdit(), &QLineEdit::editingFinished, this, &ZoomLevelSelector::onComboBoxEditingFinished);
connect(ui->comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &ZoomLevelSelector::onComboIndexChanged);