aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/statusicon
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/General/statusicon')
-rw-r--r--src/plugins/General/statusicon/qmmptrayicon.cpp7
-rw-r--r--src/plugins/General/statusicon/qmmptrayicon.h13
-rw-r--r--src/plugins/General/statusicon/statusicon.cpp28
-rw-r--r--src/plugins/General/statusicon/statusicon.h1
4 files changed, 34 insertions, 15 deletions
diff --git a/src/plugins/General/statusicon/qmmptrayicon.cpp b/src/plugins/General/statusicon/qmmptrayicon.cpp
index f0068bf34..2182e69aa 100644
--- a/src/plugins/General/statusicon/qmmptrayicon.cpp
+++ b/src/plugins/General/statusicon/qmmptrayicon.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2012 by Ilya Kotov *
+ * Copyright (C) 2008-2013 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -25,7 +25,9 @@
#include <qmmp/soundcore.h>
#include "qmmptrayicon.h"
+#ifdef Q_WS_X11
#include "statusiconpopupwidget.h"
+#endif
QmmpTrayIcon::QmmpTrayIcon(QObject *parent)
@@ -37,7 +39,7 @@ QmmpTrayIcon::QmmpTrayIcon(QObject *parent)
QmmpTrayIcon::~QmmpTrayIcon()
{
}
-
+#ifdef Q_WS_X11
void QmmpTrayIcon::showNiceToolTip(bool value)
{
m_showNiceToolTip = value;
@@ -84,3 +86,4 @@ void QmmpTrayIcon::showToolTip()
m_PopupWidget->showInfo(geometry().x(),geometry().y());
}
}
+#endif
diff --git a/src/plugins/General/statusicon/qmmptrayicon.h b/src/plugins/General/statusicon/qmmptrayicon.h
index 3ef0bd25b..37cabd967 100644
--- a/src/plugins/General/statusicon/qmmptrayicon.h
+++ b/src/plugins/General/statusicon/qmmptrayicon.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2012 by Ilya Kotov *
+ * Copyright (C) 2008-2013 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -25,10 +25,12 @@
class QEvent;
class QWheelEvent;
+#ifdef Q_WS_X11
class StatusIconPopupWidget;
+#endif
/**
- @author Ilya Kotov <forkotov02@hotmail.ru>
+ @author Ilya Kotov <forkotov02@hotmail.ru>
*/
class QmmpTrayIcon : public QSystemTrayIcon
{
@@ -37,17 +39,16 @@ public:
QmmpTrayIcon(QObject *parent = 0);
~QmmpTrayIcon();
+#ifdef Q_WS_X11
void showNiceToolTip(bool value);
-protected:
- bool event(QEvent *e);
-
private:
+ bool event(QEvent *e);
void wheelEvent(QWheelEvent *e);
void showToolTip();
bool m_showNiceToolTip;
QPointer<StatusIconPopupWidget> m_PopupWidget;
-
+#endif
};
#endif
diff --git a/src/plugins/General/statusicon/statusicon.cpp b/src/plugins/General/statusicon/statusicon.cpp
index a0875dd38..19d525c6d 100644
--- a/src/plugins/General/statusicon/statusicon.cpp
+++ b/src/plugins/General/statusicon/statusicon.cpp
@@ -27,11 +27,10 @@
#include <QEvent>
#include <QStyle>
#include <QApplication>
-
#include <qmmp/soundcore.h>
#include <qmmpui/mediaplayer.h>
#include <qmmpui/uihelper.h>
-
+#include <qmmpui/metadataformatter.h>
#include "qmmptrayicon.h"
#include "statusicon.h"
@@ -48,11 +47,14 @@ StatusIcon::StatusIcon(QObject *parent) : QObject(parent)
m_messageDelay = settings.value("message_delay", 2000).toInt();
m_hideToTray = settings.value("hide_on_close", false).toBool();
m_useStandardIcons = settings.value("use_standard_icons",false).toBool();
- m_tray->showNiceToolTip(settings.value("show_nicetooltip",true).toBool());
+ m_tooltip = settings.value("show_nicetooltip",true).toBool();
+#ifdef Q_WS_X11
+ m_tray->showNiceToolTip(m_tooltip);
+#endif
if(m_useStandardIcons)
m_tray->setIcon(QApplication::style ()->standardIcon(QStyle::SP_MediaStop));
else
- m_tray->setIcon ( QIcon(":/tray_stop.png"));
+ m_tray->setIcon(QIcon(":/tray_stop.png"));
m_tray->show();
settings.endGroup();
//actions
@@ -109,6 +111,9 @@ void StatusIcon::setState(Qmmp::State state)
m_tray->setIcon(QApplication::style ()->standardIcon(QStyle::SP_MediaStop));
else
m_tray->setIcon (QIcon(":/tray_stop.png"));
+#ifndef Q_WS_X11
+ m_tray->setToolTip("");
+#endif
break;
}
}
@@ -116,15 +121,24 @@ void StatusIcon::setState(Qmmp::State state)
void StatusIcon::showMetaData()
{
- QString message = m_core->metaData(Qmmp::ARTIST) + " - " + m_core->metaData(Qmmp::TITLE);
- if (message.startsWith (" - ") || message.endsWith (" - "))
- message.remove(" - ");
+ MetaDataFormatter f("%p%if(%p&%t, - ,)%t");
+ QString message = f.parse(m_core->metaData());
if (message.isEmpty())
message = m_core->metaData(Qmmp::URL).section('/',-1);
if (m_showMessage)
m_tray->showMessage (tr("Now Playing"), message,
QSystemTrayIcon::Information, m_messageDelay);
+#ifndef Q_WS_X11
+ if(m_tooltip)
+ {
+ MetaDataFormatter f("%p%if(%p&%t, - ,)%t");
+ QString message = f.parse(m_core->metaData());
+ if(message.isEmpty())
+ message = m_core->metaData(Qmmp::URL).section('/',-1);
+ m_tray->setToolTip(f.parse(m_core->metaData()));
+ }
+#endif
}
void StatusIcon::trayActivated(QSystemTrayIcon::ActivationReason reason)
diff --git a/src/plugins/General/statusicon/statusicon.h b/src/plugins/General/statusicon/statusicon.h
index 908bcec77..bd801a26c 100644
--- a/src/plugins/General/statusicon/statusicon.h
+++ b/src/plugins/General/statusicon/statusicon.h
@@ -53,6 +53,7 @@ private:
bool m_showMessage;
bool m_hideToTray;
bool m_useStandardIcons;
+ bool m_tooltip;
int m_messageDelay;
SoundCore *m_core;
MediaPlayer *m_player;