aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Ui/skinned')
-rw-r--r--src/plugins/Ui/skinned/CMakeLists.txt5
-rw-r--r--src/plugins/Ui/skinned/skinned.pro3
-rw-r--r--src/plugins/Ui/skinned/skinnedfactory.cpp19
3 files changed, 26 insertions, 1 deletions
diff --git a/src/plugins/Ui/skinned/CMakeLists.txt b/src/plugins/Ui/skinned/CMakeLists.txt
index 49982da4d..6fde5934f 100644
--- a/src/plugins/Ui/skinned/CMakeLists.txt
+++ b/src/plugins/Ui/skinned/CMakeLists.txt
@@ -5,6 +5,8 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmpui)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)
+SET(libskinned_DEFINES APP_NAME_SUFFIX="${APP_NAME_SUFFIX}")
+
# X11
include_directories(${X11_INCLUDE_DIRS})
link_directories(${X11_LIBRARY_DIRS})
@@ -97,7 +99,10 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
IF(X11_FOUND)
ADD_LIBRARY(skinned MODULE ${skinned_SRCS} ${skinned_UIS_H} ${skinned_RCC_SRCS} ${skinned_HDRS})
+SET_TARGET_PROPERTIES(skinned PROPERTIES COMPILE_DEFINITIONS "${libskinned_DEFINES}")
add_dependencies(skinned libqmmpui libqmmp)
target_link_libraries(skinned Qt5::Widgets Qt5::X11Extras libqmmpui libqmmp ${X11_LDFLAGS})
install(TARGETS skinned DESTINATION ${PLUGIN_DIR}/Ui)
+install(FILES DESTINATION share/qmmp${APP_NAME_SUFFIX}/images)
+install(FILES kwin.sh DESTINATION share/qmmp${APP_NAME_SUFFIX}/scripts)
ENDIF(X11_FOUND)
diff --git a/src/plugins/Ui/skinned/skinned.pro b/src/plugins/Ui/skinned/skinned.pro
index 554b414e3..c6ebfb3a0 100644
--- a/src/plugins/Ui/skinned/skinned.pro
+++ b/src/plugins/Ui/skinned/skinned.pro
@@ -122,7 +122,10 @@ RESOURCES = resources/resources.qrc \
LIBS += $$QMMPUI_LIB
unix {
+ DEFINES += APP_NAME_SUFFIX=\\\"$$APP_NAME_SUFFIX\\\"
target.path = $$PLUGIN_DIR/Ui
+ scripts.files = kwin.sh
+ scripts.path = $$DATA_DIR/qmmp$${APP_NAME_SUFFIX}/scripts
INSTALLS += target
PKGCONFIG += x11
DEFINES += QMMP_WS_X11
diff --git a/src/plugins/Ui/skinned/skinnedfactory.cpp b/src/plugins/Ui/skinned/skinnedfactory.cpp
index 3d9e91ed0..51acf87c1 100644
--- a/src/plugins/Ui/skinned/skinnedfactory.cpp
+++ b/src/plugins/Ui/skinned/skinnedfactory.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2011-2015 by Ilya Kotov *
+ * Copyright (C) 2011-2018 by Ilya Kotov *
* forkotov02@ya.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -20,6 +20,10 @@
#include <QtPlugin>
#include <QMessageBox>
+#include <QProcess>
+#include <QApplication>
+#include <QFile>
+#include <QFileInfo>
#include <qmmp/qmmpsettings.h>
#include "mainwindow.h"
#include "skinnedfactory.h"
@@ -35,6 +39,19 @@ UiProperties SkinnedFactory::properties() const
QObject *SkinnedFactory::SkinnedFactory::create()
{
+#ifdef QMMP_WS_X11
+ if(qgetenv("XDG_CURRENT_DESKTOP") == "KDE")
+ {
+ QString kwinScript = qApp->applicationFilePath () + "/../../share/qmmp" APP_NAME_SUFFIX "/scripts/kwin.sh";
+ if(!QFile::exists(kwinScript))
+ kwinScript = qApp->applicationDirPath() + "/../src/plugins/Ui/skinned/kwin.sh";
+ if(QFile::exists(kwinScript))
+ {
+ qDebug("SkinnedFactory: adding kwin rules...");
+ QProcess::execute(QString("sh %1").arg(QFileInfo(kwinScript).canonicalFilePath()));
+ }
+ }
+#endif
QmmpSettings::instance()->readEqSettings(EqSettings::EQ_BANDS_10);
return new MainWindow();
}