aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/statusicon/qmmptrayicon.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/General/statusicon/qmmptrayicon.cpp')
-rw-r--r--src/plugins/General/statusicon/qmmptrayicon.cpp43
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);
+ }
}