diff options
Diffstat (limited to 'src/plugins/General/statusicon/qmmptrayicon.cpp')
| -rw-r--r-- | src/plugins/General/statusicon/qmmptrayicon.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/plugins/General/statusicon/qmmptrayicon.cpp b/src/plugins/General/statusicon/qmmptrayicon.cpp index 21038749e..ad6f03906 100644 --- a/src/plugins/General/statusicon/qmmptrayicon.cpp +++ b/src/plugins/General/statusicon/qmmptrayicon.cpp @@ -20,10 +20,13 @@ #include <QEvent> #include <QWheelEvent> +#include <QMouseEvent> #include <qmmp/soundcore.h> #include "qmmptrayicon.h" +#include <statusiconpopupwidget.h> + QmmpTrayIcon::QmmpTrayIcon(QObject *parent) : QSystemTrayIcon(parent) @@ -35,6 +38,26 @@ QmmpTrayIcon::~QmmpTrayIcon() { } +void QmmpTrayIcon::showNiceToolTip(bool value) +{ + m_showNiceToolTip = value; +} + +void QmmpTrayIcon::setNiceToolTipDelay(int value) +{ + m_niceToolTipDelay = value; +} + +void QmmpTrayIcon::setNiceToolTipOpacity(qreal value) +{ + m_niceToolTipOpacity = value; +} + +void QmmpTrayIcon::setSplitFileName(bool value) +{ + m_splitFileName = value; +} + bool QmmpTrayIcon::event(QEvent *e) { if (e->type() == QEvent::Wheel ) @@ -43,6 +66,12 @@ bool QmmpTrayIcon::event(QEvent *e) e->accept(); return TRUE; } + if (e->type() == QEvent::ToolTip) + { + showToolTip(); + e->accept(); + return TRUE; + } return QSystemTrayIcon::event(e); } @@ -56,4 +85,18 @@ void QmmpTrayIcon::wheelEvent(QWheelEvent *e) volume = qMin(volume,100); core->setVolume(volume - qMax(balance,0)*volume/100, volume + qMin(balance,0)*volume/100); + +} + +void QmmpTrayIcon::showToolTip() +{ + if(m_showNiceToolTip) + { + if(m_PopupWidget.isNull()) + { + m_PopupWidget = new StatusIconPopupWidget(); + } + m_PopupWidget->setWindowOpacity(m_niceToolTipOpacity); + m_PopupWidget->showInfo(geometry().x(),geometry().y(),m_niceToolTipDelay,m_splitFileName); + } } |
