diff --git a/data/data.qrc b/data/data.qrc
index 844c519e..d6ab1e56 100644
--- a/data/data.qrc
+++ b/data/data.qrc
@@ -6,8 +6,9 @@
schema/schema-3.sql
schema/device-schema.sql
style/strawberry.css
- misc/playing-tooltip.html
- misc/oauthsuccess.html
+ html/playing-tooltip-plain.html
+ html/playing-tooltip-table.html
+ html/oauthsuccess.html
pictures/strawberry.png
pictures/strawberry-faded.png
pictures/nomusic.png
diff --git a/data/misc/oauthsuccess.html b/data/html/oauthsuccess.html
similarity index 100%
rename from data/misc/oauthsuccess.html
rename to data/html/oauthsuccess.html
diff --git a/data/html/playing-tooltip-plain.html b/data/html/playing-tooltip-plain.html
new file mode 100644
index 00000000..1e893ec6
--- /dev/null
+++ b/data/html/playing-tooltip-plain.html
@@ -0,0 +1,8 @@
+
%appName
+
+%image
+%titleKey: %titleValue
+%artistKey: %artistValue
+%albumKey: %albumValue
+%lengthKey: %lengthValue
+
diff --git a/data/misc/playing-tooltip.html b/data/html/playing-tooltip-table.html
similarity index 100%
rename from data/misc/playing-tooltip.html
rename to data/html/playing-tooltip-table.html
diff --git a/src/core/qtsystemtrayicon.cpp b/src/core/qtsystemtrayicon.cpp
index 12233898..93c08220 100644
--- a/src/core/qtsystemtrayicon.cpp
+++ b/src/core/qtsystemtrayicon.cpp
@@ -26,14 +26,18 @@
#include
#include
#include
+#include
#include
#include
#include
#include
#include
+#include "core/logging.h"
+
#include "song.h"
#include "iconloader.h"
+#include "utilities.h"
#include "systemtrayicon.h"
#include "qtsystemtrayicon.h"
@@ -53,18 +57,29 @@ QtSystemTrayIcon::QtSystemTrayIcon(QObject *parent)
action_stop_after_this_track_(nullptr),
action_mute_(nullptr) {
+ app_name_[0] = app_name_[0].toUpper();
+
tray_->setIcon(normal_icon_);
tray_->installEventFilter(this);
ClearNowPlaying();
- QFile pattern_file(":/misc/playing-tooltip.html");
+#ifndef Q_OS_WIN
+ de_ = Utilities::DesktopEnvironment().toLower();
+ QFile pattern_file;
+ if (de_ == "kde") {
+ pattern_file.setFileName(":/html/playing-tooltip-plain.html");
+ }
+ else {
+ pattern_file.setFileName(":/html/playing-tooltip-table.html");
+ }
pattern_file.open(QIODevice::ReadOnly);
pattern_ = QString::fromLatin1(pattern_file.readAll());
+ pattern_file.close();
+
+#endif
connect(tray_, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), SLOT(Clicked(QSystemTrayIcon::ActivationReason)));
- app_name_[0] = app_name_[0].toUpper();
-
}
QtSystemTrayIcon::~QtSystemTrayIcon() {
@@ -223,36 +238,43 @@ void QtSystemTrayIcon::SetNowPlaying(const Song &song, const QString &image_path
#ifdef Q_OS_WIN
// Windows doesn't support HTML in tooltips, so just show something basic
tray_->setToolTip(song.PrettyTitleWithArtist());
- return;
-#endif
+#else
int columns = image_path == nullptr ? 1 : 2;
- QString clone = pattern_;
+ QString tooltip(pattern_);
- clone.replace("%columns" , QString::number(columns));
- clone.replace("%appName" , app_name_);
+ tooltip.replace("%columns" , QString::number(columns));
+ tooltip.replace("%appName" , app_name_);
- clone.replace("%titleKey" , tr("Title") % ":");
- clone.replace("%titleValue" , song.PrettyTitle().toHtmlEscaped());
- clone.replace("%artistKey" , tr("Artist") % ":");
- clone.replace("%artistValue", song.artist().toHtmlEscaped());
- clone.replace("%albumKey" , tr("Album") % ":");
- clone.replace("%albumValue" , song.album().toHtmlEscaped());
+ tooltip.replace("%titleKey" , tr("Title") % ":");
+ tooltip.replace("%titleValue" , song.PrettyTitle().toHtmlEscaped());
+ tooltip.replace("%artistKey" , tr("Artist") % ":");
+ tooltip.replace("%artistValue", song.artist().toHtmlEscaped());
+ tooltip.replace("%albumKey" , tr("Album") % ":");
+ tooltip.replace("%albumValue" , song.album().toHtmlEscaped());
- clone.replace("%lengthKey" , tr("Length") % ":");
- clone.replace("%lengthValue", song.PrettyLength().toHtmlEscaped());
+ tooltip.replace("%lengthKey" , tr("Length") % ":");
+ tooltip.replace("%lengthValue", song.PrettyLength().toHtmlEscaped());
- if(columns == 2) {
+ if (columns == 2) {
QString final_path = image_path.startsWith("file://") ? image_path.mid(7) : image_path;
- clone.replace("%image", " | ");
+ if (de_ == "kde") {
+ tooltip.replace("%image", "");
+ }
+ else {
+ tooltip.replace("%image", " | ");
+ }
}
else {
- clone.replace("%image", "");
+ tooltip.replace("%image | ", "");
+ tooltip.replace("%image", "");
}
// TODO: we should also repaint this
- tray_->setToolTip(clone);
+ tray_->setToolTip(tooltip);
+
+#endif
}
diff --git a/src/core/qtsystemtrayicon.h b/src/core/qtsystemtrayicon.h
index 1333deee..d53c5be6 100644
--- a/src/core/qtsystemtrayicon.h
+++ b/src/core/qtsystemtrayicon.h
@@ -27,6 +27,7 @@
#include
#include
+#include
#include
#include
#include
@@ -55,7 +56,7 @@ class QtSystemTrayIcon : public SystemTrayIcon {
void SetNowPlaying(const Song &song, const QString &image_path);
void ClearNowPlaying();
-protected:
+ protected:
// SystemTrayIcon
void UpdateIcon();
void SetPaused();
@@ -66,10 +67,10 @@ protected:
// QObject
bool eventFilter(QObject *, QEvent *);
-private slots:
+ private slots:
void Clicked(QSystemTrayIcon::ActivationReason);
-private:
+ private:
QSystemTrayIcon *tray_;
QMenu *menu_;
QString app_name_;
@@ -82,7 +83,11 @@ private:
QAction *action_stop_after_this_track_;
QAction *action_mute_;
+#ifndef Q_OS_WIN
+ QString de_;
QString pattern_;
+#endif
+
};
#endif // QTSYSTEMTRAYICON_H
diff --git a/src/internet/localredirectserver.cpp b/src/internet/localredirectserver.cpp
index ae1cb8ad..054039a1 100644
--- a/src/internet/localredirectserver.cpp
+++ b/src/internet/localredirectserver.cpp
@@ -68,7 +68,7 @@ void LocalRedirectServer::ReadyRead(QTcpSocket* socket, QByteArray buffer) {
void LocalRedirectServer::WriteTemplate(QTcpSocket* socket) const {
- QFile page_file(":/misc/oauthsuccess.html");
+ QFile page_file(":/html/oauthsuccess.html");
page_file.open(QIODevice::ReadOnly);
QString page_data = QString::fromUtf8(page_file.readAll());