Skip to content

Commit

Permalink
plugin-customcommand: Default to icon theme folder for icon
Browse files Browse the repository at this point in the history
  • Loading branch information
isf63 committed Nov 17, 2023
1 parent 881d9df commit 084838e
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion plugin-customcommand/lxqtcustomcommandconfiguration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include <QDialogButtonBox>
#include <QFileDialog>
#include <QFontDialog>
#include <QStandardPaths>

LXQtCustomCommandConfiguration::LXQtCustomCommandConfiguration(PluginSettings *settings, QWidget *parent) :
LXQtPanelPluginConfigDialog(settings, parent),
Expand Down Expand Up @@ -144,7 +145,24 @@ void LXQtCustomCommandConfiguration::iconLineEditChanged(QString icon)

void LXQtCustomCommandConfiguration::iconBrowseButtonClicked()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Select Icon File"), QString(), tr("Images (*.png *.svg *.xpm *.jpg)"));
// prefer the icon theme folder
QString iconDir;
QString iconThemeName = QIcon::themeName();
const auto icons = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation,
QStringLiteral("icons"),
QStandardPaths::LocateDirectory);

for (const auto& icon : icons)
{
QString iconThemeFolder = icon + QLatin1String("/") + iconThemeName;
if (QDir(iconThemeFolder).exists() && QFileInfo(iconThemeFolder).permission(QFileDevice::ReadUser))
{
iconDir = iconThemeFolder;
break;
}
}

QString fileName = QFileDialog::getOpenFileName(this, tr("Select Icon File"), iconDir, tr("Images (*.png *.svg *.xpm *.jpg)"));
ui->iconLineEdit->setText(fileName);
}

Expand Down

0 comments on commit 084838e

Please sign in to comment.