diff --git a/CMakeLists.txt b/CMakeLists.txt index e1298ba..1af7d0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ set(KF_MIN_VERSION "5.68.0") project("WallpaperEngineKde") +add_definitions(-DQML_LIB="${QML_LIB}") set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY true) set(CMAKE_POSITION_INDEPENDENT_CODE ON) if(NOT OpenGL_GL_PREFERENCE) diff --git a/plugin/contents/pyext.py b/plugin/contents/pyext.py old mode 100644 new mode 100755 diff --git a/plugin/contents/ui/Pyext.qml b/plugin/contents/ui/Pyext.qml index 1a48f5e..7db2480 100644 --- a/plugin/contents/ui/Pyext.qml +++ b/plugin/contents/ui/Pyext.qml @@ -15,7 +15,8 @@ Item { "[ -f /usr/share/$EXT ] && WKD=/usr/share/$EXT", "[ -f \"$HOME/.local/share/$EXT\" ] && WKD=\"$HOME/.local/share/$EXT\"", "[ -f \"$XDG_DATA_HOME/$EXT\" ] && WKD=\"$XDG_DATA_HOME/$EXT\"", - `exec python3 "$WKD" "${ws_server.url}"` + "[ -f \"NIX_STORE_PACKAGE_PATH/share/$EXT\" ] && WKD=\"NIX_STORE_PACKAGE_PATH/share/$EXT\"", + `"$WKD" "${ws_server.url}"` ].join("\n"); return sh; } diff --git a/src/plugin.cpp b/src/plugin.cpp index 4bc817e..a98cb4a 100644 --- a/src/plugin.cpp +++ b/src/plugin.cpp @@ -14,6 +14,18 @@ class Port : public QQmlExtensionPlugin { Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) public: + void initializeEngine(QQmlEngine *engine, const char *uri) override { + if (strcmp(uri, "com.github.catsout.wallpaperEngineKde") != 0) return; + if (!engine) return; + + QString pathList = QML_LIB; + QStringList paths = pathList.split(':', Qt::SkipEmptyParts); + for (const QString &path : paths) { + engine->addImportPath(path); + } + + QQmlExtensionPlugin::initializeEngine(engine, uri); + } void registerTypes(const char* uri) override { if (strcmp(uri, "com.github.catsout.wallpaperEngineKde") != 0) return; qmlRegisterType(uri, WPVer[0], WPVer[1], "PluginInfo");