From 78ac29cb15316448687d38e3c6b10f7a78aa7086 Mon Sep 17 00:00:00 2001 From: agilob Date: Fri, 6 Nov 2015 20:53:26 +0000 Subject: [PATCH] Add static icons for tray menu logout and quit antis made us an icon for logout action and I reused cancel call icon as quit action in tray menu Refactored methods to change way how icons are loaded in widget.cpp to make the methods more flexible This should permanently fix #2491 --- img/others/logout-icon.svg | 78 ++++++++++++++++++++++++++++++++++++++ res.qrc | 1 + src/widget/widget.cpp | 22 +++++------ src/widget/widget.h | 4 +- 4 files changed, 92 insertions(+), 13 deletions(-) create mode 100644 img/others/logout-icon.svg diff --git a/img/others/logout-icon.svg b/img/others/logout-icon.svg new file mode 100644 index 000000000..3531ecfa2 --- /dev/null +++ b/img/others/logout-icon.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/res.qrc b/res.qrc index dbee6bc1e..e6d5d7084 100644 --- a/res.qrc +++ b/res.qrc @@ -120,5 +120,6 @@ img/login_logo.svg ui/notificationEdge/notificationEdge.css ui/loginScreen/loginScreen.css + img/others/logout-icon.svg diff --git a/src/widget/widget.cpp b/src/widget/widget.cpp index c4053f1ba..4df55c509 100644 --- a/src/widget/widget.cpp +++ b/src/widget/widget.cpp @@ -122,15 +122,15 @@ void Widget::init() icon_size = 15; statusOnline = new QAction(this); - statusOnline->setIcon(getStatusIcon(Status::Online, icon_size, icon_size)); + statusOnline->setIcon(prepareIcon(getStatusIconPath(Status::Online), icon_size, icon_size)); connect(statusOnline, &QAction::triggered, this, &Widget::setStatusOnline); statusAway = new QAction(this); - statusAway->setIcon(getStatusIcon(Status::Away, icon_size, icon_size)); + statusAway->setIcon(prepareIcon(getStatusIconPath(Status::Away), icon_size, icon_size)); connect(statusAway, &QAction::triggered, this, &Widget::setStatusAway); statusBusy = new QAction(this); - statusBusy->setIcon(getStatusIcon(Status::Busy, icon_size, icon_size)); + statusBusy->setIcon(prepareIcon(getStatusIconPath(Status::Busy), icon_size, icon_size)); connect(statusBusy, &QAction::triggered, this, &Widget::setStatusBusy); layout()->setContentsMargins(0, 0, 0, 0); @@ -563,7 +563,7 @@ void Widget::onBadProxyCore() void Widget::onStatusSet(Status status) { ui->statusButton->setProperty("status", getStatusTitle(status)); - ui->statusButton->setIcon(getStatusIcon(status, icon_size, icon_size)); + ui->statusButton->setIcon(prepareIcon(getStatusIconPath(status), icon_size, icon_size)); updateIcons(); } @@ -1657,12 +1657,12 @@ void Widget::onTryCreateTrayIcon() QStyle *style = qApp->style(); actionLogout = new QAction(tr("&Logout"), this); - actionLogout->setIcon(style->standardIcon(QStyle::SP_DialogResetButton)); + actionLogout->setIcon(prepareIcon("://img/others/logout-icon.svg", icon_size, icon_size)); connect(actionLogout, &QAction::triggered, profileForm, &ProfileForm::onLogoutClicked); actionQuit = new QAction(tr("&Exit"), this); actionQuit->setMenuRole(QAction::QuitRole); - actionQuit->setIcon(style->standardIcon(QStyle::SP_DialogDiscardButton)); + actionQuit->setIcon(prepareIcon("://ui/rejectCall/rejectCall.svg", icon_size, icon_size)); connect(actionQuit, &QAction::triggered, qApp, &QApplication::quit); trayMenu->addAction(statusOnline); @@ -1885,7 +1885,7 @@ QString Widget::getStatusIconPath(Status status) } } -inline QIcon Widget::getStatusIcon(Status status, uint32_t w, uint32_t h) +inline QIcon Widget::prepareIcon(QString path, uint32_t w, uint32_t h) { #ifdef Q_OS_LINUX @@ -1900,17 +1900,17 @@ inline QIcon Widget::getStatusIcon(Status status, uint32_t w, uint32_t h) { if (w > 0 && h > 0) { - return getStatusIconPixmap(status, w, h); + return getStatusIconPixmap(path, w, h); } } #endif - return QIcon(getStatusIconPath(status)); + return QIcon(path); } -QPixmap Widget::getStatusIconPixmap(Status status, uint32_t w, uint32_t h) +QPixmap Widget::getStatusIconPixmap(QString path, uint32_t w, uint32_t h) { QPixmap pix(w, h); - pix.load(getStatusIconPath(status)); + pix.load(path); return pix; } diff --git a/src/widget/widget.h b/src/widget/widget.h index 0d3a9ee29..6c08df259 100644 --- a/src/widget/widget.h +++ b/src/widget/widget.h @@ -92,8 +92,8 @@ public: void reloadTheme(); static QString getStatusIconPath(Status status); - static inline QIcon getStatusIcon(Status status, uint32_t w=0, uint32_t h=0); - static QPixmap getStatusIconPixmap(Status status, uint32_t w, uint32_t h); + static inline QIcon prepareIcon(QString path, uint32_t w=0, uint32_t h=0); + static QPixmap getStatusIconPixmap(QString path, uint32_t w, uint32_t h); static QString getStatusTitle(Status status); static Status getStatusFromString(QString status);