@ -71,6 +71,7 @@
@@ -71,6 +71,7 @@
# include <QList>
# include <QDesktopServices>
# include <QProcess>
# include <QSvgRenderer>
# include <QWindow>
# include <tox/tox.h>
@ -119,14 +120,16 @@ void Widget::init()
@@ -119,14 +120,16 @@ void Widget::init()
offlineMsgTimer - > start ( 15000 ) ;
statusOnline = new QAction ( this ) ;
statusOnline - > setIcon ( getStatusIcon ( Status : : Online , 10 , 10 ) ) ;
connect ( statusOnline , SIGNAL ( triggered ( ) ) , this , SLOT ( setStatusOnline ( ) ) ) ;
statusOnline - > setIcon ( getStatusIcon ( Status : : Online , 50 , 50 ) ) ;
connect ( statusOnline , & QAction : : triggered , this , & Widget : : setStatusOnline ) ;
statusAway = new QAction ( this ) ;
statusAway - > setIcon ( getStatusIcon ( Status : : Away , 10 , 10 ) ) ;
connect ( statusAway , SIGNAL ( triggered ( ) ) , this , SLOT ( setStatusAway ( ) ) ) ;
statusAway - > setIcon ( getStatusIcon ( Status : : Away , 50 , 50 ) ) ;
connect ( statusAway , & QAction : : triggered , this , & Widget : : setStatusAway ) ;
statusBusy = new QAction ( this ) ;
statusBusy - > setIcon ( getStatusIcon ( Status : : Busy , 10 , 1 0) ) ;
connect ( statusBusy , SIGNAL ( triggered ( ) ) , this , SLOT ( setStatusBusy ( ) ) ) ;
statusBusy - > setIcon ( getStatusIcon ( Status : : Busy , 50 , 5 0) ) ;
connect ( statusBusy , & QAction : : triggered , this , & Widget : : setStatusBusy ) ;
layout ( ) - > setContentsMargins ( 0 , 0 , 0 , 0 ) ;
ui - > friendList - > setStyleSheet ( Style : : resolve ( Style : : getStylesheet ( " :ui/friendList/friendList.css " ) ) ) ;
@ -412,7 +415,16 @@ void Widget::updateIcons()
@@ -412,7 +415,16 @@ void Widget::updateIcons()
if ( ico . isNull ( ) )
{
QString color = Settings : : getInstance ( ) . getLightTrayIcon ( ) ? " light " : " dark " ;
ico = QIcon ( " :img/taskbar/ " + color + " /taskbar_ " + status + " .svg " ) ;
QString path = " :img/taskbar/ " + color + " /taskbar_ " + status + " .svg " ;
QSvgRenderer renderer ( path ) ;
// Prepare a QImage with desired characteritisc
QImage image ( 250 , 250 , QImage : : Format_ARGB32_Premultiplied ) ;
QPainter painter ( & image ) ;
renderer . render ( & painter ) ;
ico = QIcon ( QPixmap : : fromImage ( image ) ) ;
}
setWindowIcon ( ico ) ;
@ -1682,12 +1694,14 @@ void Widget::onTryCreateTrayIcon()
@@ -1682,12 +1694,14 @@ void Widget::onTryCreateTrayIcon()
{
if ( QSystemTrayIcon : : isSystemTrayAvailable ( ) )
{
icon = new SystemTrayIcon ;
icon = new SystemTrayIcon ( this ) ;
updateIcons ( ) ;
trayMenu = new QMenu ;
actionQuit = new QAction ( tr ( " &Quit " ) , this ) ;
connect ( actionQuit , SIGNAL ( triggered ( ) ) , qApp , SLOT ( quit ( ) ) ) ;
trayMenu = new QMenu ( this ) ;
QStyle * style = qApp - > style ( ) ;
actionQuit = new QAction ( tr ( " &Exit " ) , this ) ;
actionQuit - > setShortcut ( QKeySequence : : Quit ) ; // system default quit shorcut
actionQuit - > setIcon ( style - > standardIcon ( QStyle : : SP_DialogCloseButton ) ) ; // system default exit icon
connect ( actionQuit , & QAction : : triggered , qApp , & QApplication : : quit ) ;
trayMenu - > addAction ( statusOnline ) ;
trayMenu - > addAction ( statusAway ) ;
@ -1696,8 +1710,7 @@ void Widget::onTryCreateTrayIcon()
@@ -1696,8 +1710,7 @@ void Widget::onTryCreateTrayIcon()
trayMenu - > addAction ( actionQuit ) ;
icon - > setContextMenu ( trayMenu ) ;
connect ( icon , SIGNAL ( activated ( QSystemTrayIcon : : ActivationReason ) ) ,
this , SLOT ( onIconClick ( QSystemTrayIcon : : ActivationReason ) ) ) ;
connect ( icon , & SystemTrayIcon : : activated , this , & Widget : : onIconClick ) ;
if ( Settings : : getInstance ( ) . getShowSystemTray ( ) )
{
@ -1909,12 +1922,9 @@ QString Widget::getStatusIconPath(Status status)
@@ -1909,12 +1922,9 @@ QString Widget::getStatusIconPath(Status status)
}
}
inline QIcon Widget : : getStatusIcon ( Status status , uint32_t w /*=0*/ , uint32_t h /*=0*/ )
inline QIcon Widget : : getStatusIcon ( Status status , uint32_t , uint32_t )
{
if ( w > 0 & & h > 0 )
return getStatusIconPixmap ( status , w , h ) ;
else
return QIcon ( getStatusIconPath ( status ) ) ;
return QIcon ( getStatusIconPath ( status ) ) ;
}
QPixmap Widget : : getStatusIconPixmap ( Status status , uint32_t w , uint32_t h )