From 8f368c3ee5f79a984d287f006fba8806c3f64f85 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 1 Oct 2013 10:45:38 +0000 Subject: status icon plugin: fixed win32 support git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3731 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/General/statusicon/qmmptrayicon.cpp | 7 +++++-- src/plugins/General/statusicon/qmmptrayicon.h | 13 ++++++------ src/plugins/General/statusicon/statusicon.cpp | 28 ++++++++++++++++++------- src/plugins/General/statusicon/statusicon.h | 1 + 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 #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 + @author Ilya Kotov */ 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 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 #include #include - #include #include #include - +#include #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; -- cgit v1.2.3-13-gbd6f