Set icon for "Open URL" action (Qt client)

This commit is contained in:
Mike Gelfand 2017-02-18 21:22:34 +03:00
parent bbc0d8c5e4
commit c77946e49a
7 changed files with 533 additions and 174 deletions

View File

@ -11,6 +11,7 @@
#include <QtGui>
#include <QCheckBox>
#include <QIcon>
#include <QPainter>
#include <QProxyStyle>
#include <QLabel>
#include <QFileDialog>
@ -85,6 +86,45 @@ MainWindow::getStockIcon (const QString& name, int fallback)
return icon;
}
QIcon
MainWindow::getStockIcon (const QString& name, int fallback, const QStringList& emblemNames)
{
QIcon baseIcon = getStockIcon (name, fallback);
if (baseIcon.isNull ())
return baseIcon;
QIcon emblemIcon;
for (const QString& emblemName: emblemNames)
{
emblemIcon = QIcon::fromTheme (emblemName);
if (!emblemIcon.isNull ())
break;
}
if (emblemIcon.isNull ())
return baseIcon;
QIcon icon;
for (const QSize& size: baseIcon.availableSizes ())
{
const QSize emblemSize = size / 2;
const QRect emblemRect = QStyle::alignedRect (layoutDirection (), Qt::AlignBottom | Qt::AlignRight, emblemSize, QRect (QPoint (0, 0), size));
QPixmap pixmap = baseIcon.pixmap (size);
QPixmap emblemPixmap = emblemIcon.pixmap (emblemSize);
{
QPainter painter(&pixmap);
painter.drawPixmap (emblemRect, emblemPixmap, emblemPixmap.rect ());
}
icon.addPixmap (pixmap);
}
return icon;
}
MainWindow::MainWindow (Session& session, Prefs& prefs, TorrentModel& model, bool minimized):
mySession (session),
myPrefs (prefs),
@ -112,16 +152,13 @@ MainWindow::MainWindow (Session& session, Prefs& prefs, TorrentModel& model, boo
ui.setupUi (this);
QStyle * style = this->style ();
int i = style->pixelMetric (QStyle::PM_SmallIconSize, 0, this);
const QSize smallIconSize (i, i);
ui.listView->setStyle (new ListViewProxyStyle);
ui.listView->setAttribute (Qt::WA_MacShowFocusRect, false);
// icons
ui.action_OpenFile->setIcon (getStockIcon (QLatin1String ("document-open"), QStyle::SP_DialogOpenButton));
ui.action_AddURL->setIcon (getStockIcon (QLatin1String ("document-open"), QStyle::SP_DialogOpenButton,
QStringList () << QLatin1String ("emblem-web") << QLatin1String ("applications-internet")));
ui.action_New->setIcon (getStockIcon (QLatin1String ("document-new"), QStyle::SP_DesktopIcon));
ui.action_Properties->setIcon (getStockIcon (QLatin1String ("document-properties"), QStyle::SP_DesktopIcon));
ui.action_OpenFolder->setIcon (getStockIcon (QLatin1String ("folder-open"), QStyle::SP_DirOpenIcon));

View File

@ -25,6 +25,7 @@
class QAction;
class QIcon;
class QMenu;
class QStringList;
class AboutDialog;
class AddData;
@ -87,6 +88,7 @@ class MainWindow: public QMainWindow
private:
QIcon getStockIcon (const QString&, int fallback = -1);
QIcon getStockIcon (const QString&, int fallback, const QStringList& emblemNames);
QSet<int> getSelectedTorrents (bool withMetadataOnly = false) const;
void updateNetworkIcon ();

View File

@ -71,8 +71,8 @@
<file>categories/16/preferences-system.png</file>
<file>categories/22/preferences-system.png</file>
<file>categories/24/preferences-system.png</file>
<file>emblems/16/emblem-important.icon</file>
<file>emblems/16/emblem-important.png</file>
<file>emblems/16/emblem-web.png</file>
<file>status/16/network-error.png</file>
<file>status/16/network-idle.png</file>
<file>status/16/network-receive.png</file>

View File

@ -1,84 +0,0 @@
[Icon Data]
DisplayName=Important
DisplayName[af]=Belangrik
DisplayName[am]=አስፈላጊ
DisplayName[ar]=مهمّ
DisplayName[az]=Vacib
DisplayName[be]=Важны
DisplayName[be@latin]=Važny
DisplayName[bg]=Важно
DisplayName[bn]=গুরুত্বপূর্ণ
DisplayName[bn_IN]=গুরুত্বপূর্ণ
DisplayName[bs]=Važno
DisplayName[ca]=Important
DisplayName[cs]=Důležité
DisplayName[cy]=Pwysig
DisplayName[da]=Vigtig
DisplayName[de]=Wichtig
DisplayName[dz]=གལ་ཅན།
DisplayName[el]=Σημαντικό
DisplayName[en_CA]=Important
DisplayName[en_GB]=Important
DisplayName[es]=Importante
DisplayName[et]=Tähtis
DisplayName[eu]=Garrantzitsua
DisplayName[fa]=مهم
DisplayName[fi]=Tärkeä
DisplayName[fr]=Important
DisplayName[fur]=Impuartant
DisplayName[ga]=Tábhachtach
DisplayName[gl]=Importante
DisplayName[gu]=મહત્વનુ
DisplayName[he]=חשוב
DisplayName[hi]=महत्वपूर्ण
DisplayName[hr]=Važno
DisplayName[hu]=Fontos
DisplayName[id]=Penting
DisplayName[is]=Mikilvægt
DisplayName[it]=Importante
DisplayName[ja]=重要
DisplayName[ka]=მნიშვნელოვანი
DisplayName[ko]=중요
DisplayName[li]=Wichtig
DisplayName[lt]=Svarbu
DisplayName[lv]=Svarīgs
DisplayName[mg]=Manan-danja
DisplayName[mk]=Важно
DisplayName[ml]=സുപ്രധാനമായ
DisplayName[mn]=Чухал
DisplayName[mr]=महत्वाचे
DisplayName[ms]=Penting
DisplayName[nb]=Viktig
DisplayName[ne]=महत्वपूर्ण
DisplayName[nl]=Belangrijk
DisplayName[nn]=Viktig
DisplayName[oc]=Important
DisplayName[or]=ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ
DisplayName[pa]=ਖਾਸ
DisplayName[pl]=Ważny
DisplayName[pt]=Importante
DisplayName[pt_BR]=Importante
DisplayName[ro]=Important
DisplayName[ru]=Важно
DisplayName[rw]=By'ingirakamaro
DisplayName[si]=වැදගත්
DisplayName[sk]=Dôležitý
DisplayName[sl]=Pomembno
DisplayName[sq]=I rëndësishëm
DisplayName[sr]=Важно
DisplayName[sr@Latn]=Važno
DisplayName[sv]=Viktig
DisplayName[ta]=முக்கியம்
DisplayName[te]=ముఖ్యమైన
DisplayName[th]=สำคัญ
DisplayName[tk]=Möhüm
DisplayName[tr]=Önemli
DisplayName[uk]=Важливе
DisplayName[vi]=Quan trọng
DisplayName[wa]=Impôrtant
DisplayName[xh]=Ibalulekile
DisplayName[zh_CN]=重要
DisplayName[zh_HK]=重要
DisplayName[zh_TW]=重要

Binary file not shown.

After

Width:  |  Height:  |  Size: 887 B

View File

@ -1,84 +0,0 @@
[Icon Data]
DisplayName=Important
DisplayName[af]=Belangrik
DisplayName[am]=አስፈላጊ
DisplayName[ar]=مهمّ
DisplayName[az]=Vacib
DisplayName[be]=Важны
DisplayName[be@latin]=Važny
DisplayName[bg]=Важно
DisplayName[bn]=গুরুত্বপূর্ণ
DisplayName[bn_IN]=গুরুত্বপূর্ণ
DisplayName[bs]=Važno
DisplayName[ca]=Important
DisplayName[cs]=Důležité
DisplayName[cy]=Pwysig
DisplayName[da]=Vigtig
DisplayName[de]=Wichtig
DisplayName[dz]=གལ་ཅན།
DisplayName[el]=Σημαντικό
DisplayName[en_CA]=Important
DisplayName[en_GB]=Important
DisplayName[es]=Importante
DisplayName[et]=Tähtis
DisplayName[eu]=Garrantzitsua
DisplayName[fa]=مهم
DisplayName[fi]=Tärkeä
DisplayName[fr]=Important
DisplayName[fur]=Impuartant
DisplayName[ga]=Tábhachtach
DisplayName[gl]=Importante
DisplayName[gu]=મહત્વનુ
DisplayName[he]=חשוב
DisplayName[hi]=महत्वपूर्ण
DisplayName[hr]=Važno
DisplayName[hu]=Fontos
DisplayName[id]=Penting
DisplayName[is]=Mikilvægt
DisplayName[it]=Importante
DisplayName[ja]=重要
DisplayName[ka]=მნიშვნელოვანი
DisplayName[ko]=중요
DisplayName[li]=Wichtig
DisplayName[lt]=Svarbu
DisplayName[lv]=Svarīgs
DisplayName[mg]=Manan-danja
DisplayName[mk]=Важно
DisplayName[ml]=സുപ്രധാനമായ
DisplayName[mn]=Чухал
DisplayName[mr]=महत्वाचे
DisplayName[ms]=Penting
DisplayName[nb]=Viktig
DisplayName[ne]=महत्वपूर्ण
DisplayName[nl]=Belangrijk
DisplayName[nn]=Viktig
DisplayName[oc]=Important
DisplayName[or]=ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ
DisplayName[pa]=ਖਾਸ
DisplayName[pl]=Ważny
DisplayName[pt]=Importante
DisplayName[pt_BR]=Importante
DisplayName[ro]=Important
DisplayName[ru]=Важно
DisplayName[rw]=By'ingirakamaro
DisplayName[si]=වැදගත්
DisplayName[sk]=Dôležitý
DisplayName[sl]=Pomembno
DisplayName[sq]=I rëndësishëm
DisplayName[sr]=Важно
DisplayName[sr@Latn]=Važno
DisplayName[sv]=Viktig
DisplayName[ta]=முக்கியம்
DisplayName[te]=ముఖ్యమైన
DisplayName[th]=สำคัญ
DisplayName[tk]=Möhüm
DisplayName[tr]=Önemli
DisplayName[uk]=Важливе
DisplayName[vi]=Quan trọng
DisplayName[wa]=Impôrtant
DisplayName[xh]=Ibalulekile
DisplayName[zh_CN]=重要
DisplayName[zh_HK]=重要
DisplayName[zh_TW]=重要

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 29 KiB