diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-11-14 12:58:30 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-12-16 11:15:08 +0100 |
commit | 8e76ca0429db552cbf6f51dadd5467a1bc899027 (patch) | |
tree | 1119ac3a164e86e78bd40451cf00efa0ae054798 | |
parent | 54f2571a00632e9813b9fabb447c7cc80f74ad29 (diff) |
Qt: Go back to using QIcon functionality for scaling
-rw-r--r-- | src/qt/networkstyle.cpp | 58 | ||||
-rw-r--r-- | src/qt/networkstyle.h | 6 | ||||
-rw-r--r-- | src/qt/splashscreen.cpp | 3 |
3 files changed, 20 insertions, 47 deletions
diff --git a/src/qt/networkstyle.cpp b/src/qt/networkstyle.cpp index b8112799df..3762b84842 100644 --- a/src/qt/networkstyle.cpp +++ b/src/qt/networkstyle.cpp @@ -24,52 +24,13 @@ static const unsigned network_styles_count = sizeof(network_styles)/sizeof(*netw // titleAddText needs to be const char* for tr() NetworkStyle::NetworkStyle(const QString &appName, const int iconColorHueShift, const int iconColorSaturationReduction, const char *titleAddText): appName(appName), - iconColorHueShift(iconColorHueShift), - iconColorSaturationReduction(iconColorSaturationReduction), titleAddText(qApp->translate("SplashScreen", titleAddText)) { -} - -const NetworkStyle *NetworkStyle::instantiate(const QString &networkId) -{ - for (unsigned x=0; x<network_styles_count; ++x) - { - if (networkId == network_styles[x].networkId) - { - return new NetworkStyle( - network_styles[x].appName, - network_styles[x].iconColorHueShift, - network_styles[x].iconColorSaturationReduction, - network_styles[x].titleAddText); - } - } - return 0; -} - -QIcon NetworkStyle::getAppIcon() const -{ - return getAppIcon(QSize(256,256)); -} - -QIcon NetworkStyle::getAppIcon(const QSize size) const -{ // load pixmap QPixmap pixmap(":/icons/bitcoin"); - if(pixmap.size().width() != size.width() && pixmap.size().height() != size.height()) - { - QPixmap scaledPixmap = pixmap.scaled(size, Qt::KeepAspectRatio); - if(!scaledPixmap.isNull()) - { - pixmap = scaledPixmap; - } - } - if(iconColorHueShift != 0 && iconColorSaturationReduction != 0) { - // copy the pixmap because on linux the original pixmap will be affected - pixmap = pixmap.copy(); - // generate QImage from QPixmap QImage img = pixmap.toImage(); @@ -110,6 +71,21 @@ QIcon NetworkStyle::getAppIcon(const QSize size) const pixmap.convertFromImage(img); } - QIcon icon(pixmap); - return icon; + appIcon = QIcon(pixmap); +} + +const NetworkStyle *NetworkStyle::instantiate(const QString &networkId) +{ + for (unsigned x=0; x<network_styles_count; ++x) + { + if (networkId == network_styles[x].networkId) + { + return new NetworkStyle( + network_styles[x].appName, + network_styles[x].iconColorHueShift, + network_styles[x].iconColorSaturationReduction, + network_styles[x].titleAddText); + } + } + return 0; } diff --git a/src/qt/networkstyle.h b/src/qt/networkstyle.h index 2bfb3c1d55..3e3332cd8b 100644 --- a/src/qt/networkstyle.h +++ b/src/qt/networkstyle.h @@ -17,16 +17,14 @@ public: static const NetworkStyle *instantiate(const QString &networkId); const QString &getAppName() const { return appName; } + const QIcon &getAppIcon() const { return appIcon; } const QString &getTitleAddText() const { return titleAddText; } - QIcon getAppIcon() const; - QIcon getAppIcon(const QSize size) const; private: NetworkStyle(const QString &appName, const int iconColorHueShift, const int iconColorSaturationReduction, const char *titleAddText); QString appName; - int iconColorHueShift; - int iconColorSaturationReduction; + QIcon appIcon; QString titleAddText; }; diff --git a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp index bfc69636bb..378d79c1e1 100644 --- a/src/qt/splashscreen.cpp +++ b/src/qt/splashscreen.cpp @@ -67,8 +67,7 @@ SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle) QRect rectIcon(QPoint(-150,-122), QSize(430,430)); const QSize requiredSize(1024,1024); - QIcon appIcon = networkStyle->getAppIcon(requiredSize); - QPixmap icon(appIcon.pixmap(requiredSize)); + QPixmap icon(networkStyle->getAppIcon().pixmap(requiredSize)); pixPaint.drawPixmap(rectIcon, icon); |