diff options
Diffstat (limited to 'src-qt5/src-cpp/plugins-desktop.cpp')
-rw-r--r-- | src-qt5/src-cpp/plugins-desktop.cpp | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src-qt5/src-cpp/plugins-desktop.cpp b/src-qt5/src-cpp/plugins-desktop.cpp index fdbd676d..edad2723 100644 --- a/src-qt5/src-cpp/plugins-desktop.cpp +++ b/src-qt5/src-cpp/plugins-desktop.cpp @@ -6,11 +6,15 @@ //=========================================== #include "plugins-desktop.h" +#include <LuminaXDG.h> + // ============ // DT PLUGIN // ============ DTPlugin::DTPlugin(){ - + pluginIcon = QIcon(); + gridSize = QSize(1,1); + panelPossible = false; } DTPlugin::~DTPlugin(){ @@ -22,8 +26,32 @@ bool DTPlugin::isValid(){ bool ok = data.contains("name") && data.contains("qml") && data.contains("description"); ok &= containsDefault("name"); ok &= containsDefault("description"); + ok &= containsDefault("data"); if(ok) { - QJsonObject tmp = data.value("qml").toObject(); + QJsonObject tmp = data.value("data").toObject(); + + QString possibleS = tmp.value("panel_possible").toString(); + if(!possibleS.isEmpty() and (possibleS == "yes" or possibleS == "true")) + panelPossible = true; + + QString gridS = tmp.value("grid_size").toString(); + if(!gridS.isEmpty()) { + QStringList gridList = gridS.split("x"); + if(gridList.size() == 2) { + int width = gridList[0].toInt(); + int height = gridList[1].toInt(); + if(width != 0 and height != 0) + gridSize = QSize(width, height); + } + } + + QString iconS = tmp.value("plugin_icon").toString(); + if(!iconS.isEmpty()) { + pluginIcon = LXDG::findIcon(iconS,""); + } + + tmp = data.value("qml").toObject(); + QStringList mustexist; QString exec = tmp.value("exec").toString(); if(exec.isEmpty() || !exec.endsWith(".qml")){ return false; } |