[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [plasmate/terietor/porting] plasmate: Port the MetadataEditor
From: Antonis Tsiapaliokas <kok3rs () gmail ! com>
Date: 2014-03-22 13:12:48
Message-ID: E1WRLjE-00039w-97 () scm ! kde ! org
[Download RAW message or body]
Git commit af2acadb9db5b16ca9c139c017912c22dda59aea by Antonis Tsiapaliokas.
Committed on 21/03/2014 at 17:11.
Pushed by tsiapaliokas into branch 'terietor/porting'.
Port the MetadataEditor
M +2 -3 plasmate/CMakeLists.txt
M +27 -113 plasmate/editors/metadata/metadataeditor.cpp
M +4 -10 plasmate/editors/metadata/metadataeditor.h
http://commits.kde.org/plasmate/af2acadb9db5b16ca9c139c017912c22dda59aea
diff --git a/plasmate/CMakeLists.txt b/plasmate/CMakeLists.txt
index 10cfd83..8116572 100644
--- a/plasmate/CMakeLists.txt
+++ b/plasmate/CMakeLists.txt
@@ -14,7 +14,7 @@ add_feature_info(GIT_EXECUTABLE_FOUND "Git" "Distributed Revision \
Control System
set (PlasMate_SRC
editors/editpage.cpp
- #editors/metadata/metadataeditor.cpp
+ editors/metadata/metadataeditor.cpp
editors/imageviewer/imageloader.cpp
editors/imageviewer/imageviewer.cpp
#editors/text/texteditor.cpp
@@ -68,8 +68,7 @@ set (PlasMate_SRC
#endif (DEBUG_MODEL)
qt5_wrap_ui(PlasMate_SRC
- #startpage.ui
- #editors/metadata/metadata.ui
+ editors/metadata/metadata.ui
publisher/publisher.ui
#publisher/remoteinstaller/remoteinstaller.ui
editors/kconfigxt/kconfigxteditor.ui
diff --git a/plasmate/editors/metadata/metadataeditor.cpp \
b/plasmate/editors/metadata/metadataeditor.cpp index a8a744a..227b5f8 100644
--- a/plasmate/editors/metadata/metadataeditor.cpp
+++ b/plasmate/editors/metadata/metadataeditor.cpp
@@ -16,11 +16,14 @@ along with this program. If not, see \
<http://www.gnu.org/licenses/>.
*/
#include <QDir>
+#include <QDebug>
#include <QRegExpValidator>
+
+#include <KIconButton>
#include <KDesktopFile>
#include <KConfigGroup>
-#include <QDebug>
#include <KMessageWidget>
+#include <klocalizedstring.h>
#include <plasma/packagemetadata.h>
#include <plasma/plasma.h>
@@ -55,64 +58,48 @@ MetaDataEditor::~MetaDataEditor()
delete m_metadata;
}
-void MetaDataEditor::setFilename(const QString &filename)
+void MetaDataEditor::setFilename(const QString &filePath)
{
- m_filename = filename;
+ m_metadata->setFilePath(filePath);
}
const QString MetaDataEditor::filename()
{
- return m_filename;
+ return m_metadata->filePath();
}
-bool MetaDataEditor::isValidMetaData()
-{
- qDebug() << "readFile file" << m_filename;
-
- delete m_metadata;
- m_metadata = new Plasma::PackageMetadata(m_filename);
- return m_metadata->isValid();
-
-}
-
-
void MetaDataEditor::readFile()
{
- if (!this->isValidMetaData()) {
- qWarning() << "MetaData cannot read the file because the filename:" + \
m_filename + "is not valid.";
- return;
- }
-
m_view->name_edit->setText(m_metadata->name());
m_view->comment_edit->setText(m_metadata->description());
m_view->icon_button->setIcon(m_metadata->icon());
m_view->pluginname_edit->setText(m_metadata->pluginName());
- QString serviceType = m_metadata->serviceType();
+ const QString serviceType = m_metadata->serviceTypes().at(0);
initCatergories(serviceType);
m_view->type_combo->clear();
m_view->type_combo->setEnabled(false);
- if (serviceType == "Plasma/DataEngine") {
+ if (serviceType == QStringLiteral("Plasma/DataEngine")) {
m_view->type_combo->insertItem(0, i18n("Data Engine"));
- m_metadata->setServiceType("Plasma/DataEngine");
- } else if (serviceType == "Plasma/Theme") {
+ m_metadata->setServiceTypes(QStringList() << \
QStringLiteral("Plasma/DataEngine")); + } else if (serviceType == \
QStringLiteral("Plasma/Theme")) { m_view->type_combo->insertItem(0, i18n("Theme"));
- m_metadata->setServiceType("Plasma/Theme");
- } else if (serviceType == "Plasma/Runner") {
+ m_metadata->setServiceTypes(QStringList() << \
QStringLiteral("Plasma/Theme")); + } else if (serviceType == \
QStringLiteral("Plasma/Runner")) { m_view->type_combo->insertItem(0, \
i18n("Runner"));
- m_metadata->setServiceType("Plasma/Runner");
- } else if (serviceType == "KWin/WindowSwitcher") {
+ m_metadata->setServiceTypes(QStringList() << \
QStringLiteral("Plasma/Runner")); + } else if (serviceType == \
QStringLiteral("KWin/WindowSwitcher")) { \
m_view->type_combo->insertItem(0,i18n("Window Switcher"));
- m_metadata->setServiceType("KWin/WindowSwitcher");
- } else if (serviceType == "KWin/Script") {
+ m_metadata->setServiceTypes(QStringList() << \
QStringLiteral("KWin/WindowSwitcher")); + } else if (serviceType == \
QStringLiteral("KWin/Script")) { m_view->type_combo->insertItem(0, i18n("KWin \
Script"));
- m_metadata->setServiceType("KWin/Script");
- } else if (serviceType == "KWin/Effect") {
+ m_metadata->setServiceTypes(QStringList() << QStringLiteral("KWin/Script"));
+ } else if (serviceType == QStringLiteral("KWin/Effect")) {
m_view->type_combo->insertItem(0, i18n("KWin Effect"));
- m_metadata->setServiceType("KWin/Effect");
+ m_metadata->setServiceTypes(QStringList() << QStringLiteral("KWin/Effect"));
} else {
m_view->type_combo->insertItem(0, i18n("Applet"));
m_view->type_combo->insertItem(1, i18n("Popup Applet"));
@@ -155,95 +142,22 @@ const QString MetaDataEditor::api()
void MetaDataEditor::serviceTypeChanged()
{
- Plasma::ComponentTypes currentType;
-
- switch (m_view->type_combo->currentIndex()) {
- case 0:
- m_metadata->setServiceType("Plasma/Applet");
- currentType = Plasma::AppletComponent;
- break;
- case 1:
- m_metadata->setServiceType("Plasma/Applet,Plasma/PopupApplet");
- currentType = Plasma::AppletComponent;
- break;
- /*case 2: // only applet/popupapplet can be dynamically selected now
- m_metadata->setServiceType("Plasma/DataEngine");
- currentType = Plasma::DataEngineComponent;
- break;
- case 3:
- m_metadata->setServiceType("Plasma/Theme");
- m_view->api_combo->setEnabled(false);
- return;
- break;
- case 4:
- m_metadata->setServiceType("Plasma/Runner");
- currentType = Plasma::RunnerComponent;
- break;*/
- default:
- qWarning() << "Unknown service type" << currentType;
- return;
- }
-
m_view->api_combo->setEnabled(false); // disallow dynamic changing of api
- //FIXME: shouldn't need to do most of the stuff below anymore
- m_apis = Plasma::knownLanguages(currentType);
- m_apis.append(QString()); // Add empty string for native
-
- qDebug() << "Got m_apis " << m_apis;
- // Map to friendly names (TODO: fix in library)
+ QStringList apis;
+ apis << QStringLiteral("declarativeappletscript") << \
QStringLiteral("javascript");
//add api from the metadata.desktop inside the api
- KConfig filenamePath(m_filename);
- KConfigGroup metaFilePreferences(&filenamePath, "Desktop Entry");
- QString api = metaFilePreferences.readEntry("X-Plasma-API");
- QStringList apiName;
- apiName << formatApi(api, MetaDataEditor::uiApi);
m_view->label_16->setVisible(false);
m_view->api_combo->clear();
- m_view->api_combo->insertItems(0, apiName);
- if (m_view->api_combo->currentIndex() == -1 || apiName.first().isEmpty()) {
+ m_view->api_combo->insertItems(0, QStringList() << m_metadata->pluginApi());
+ if (m_view->api_combo->currentIndex() == -1 || \
m_metadata->pluginApi().isEmpty()) { m_view->label_16->setVisible(true);
m_view->api_combo->clear();
- m_view->api_combo->insertItems(0, m_apis);
+ m_view->api_combo->insertItems(0, apis);
m_view->api_combo->setEnabled(true);
}
}
-QString MetaDataEditor::formatApi(const QString &api, apiModes apiMode)
-{
- if (apiMode == MetaDataEditor::uiApi) {
- if (api == QString("dashboard")) {
- return QString("Dashboard");
- } else if (api == QString("javascript")) {
- return QString("Javascript");
- } else if (api == QString("ruby-script")) {
- return QString("Ruby");
- } else if (api == QString("webkit")) {
- return QString("Webkit");
- } else if (api == QString("python")) {
- return QString("Python");
- } else if (api == QString("declarativeappletscript")) {
- return QString("declarativeappletscript");
- }
- } else if (apiMode == MetaDataEditor::coreApi) {
- if (api == QString("Dashboard")) {
- return QString("dashboard");
- } else if (api == QString("Javascript")) {
- return QString("javascript");
- } else if (api == QString("Ruby")) {
- return QString("ruby-script");
- } else if (api == QString("Webkit")) {
- return QString("webkit");
- } else if (api == QString("Python")) {
- return QString("python");
- } else if (api == QString("declarativeappletscript")) {
- return QString("declarativeappletscript");
- }
- }
- qWarning() << "Unknown API " << api << apiMode;
- return QString(api);
-}
-
void MetaDataEditor::writeFile()
{
QString api = m_view->api_combo->currentText();
@@ -252,7 +166,7 @@ void MetaDataEditor::writeFile()
m_metadata->setIcon(m_view->icon_button->icon());
m_metadata->setCategory(m_categories[m_view->category_combo->currentIndex()]);
- m_metadata->setImplementationApi(formatApi(api, MetaDataEditor::coreApi));
+ m_metadata->setPluginApi(api);
m_metadata->setPluginName(m_view->pluginname_edit->text());
m_metadata->setVersion(m_view->version_edit->text());
m_metadata->setWebsite(m_view->website_edit->text());
@@ -261,7 +175,7 @@ void MetaDataEditor::writeFile()
m_metadata->setLicense(m_view->license_edit->text());
emit apiChanged();
- m_metadata->write(m_filename);
+ m_metadata->writeFile();
//TODO: alert the necessary components (eg. packagemodel) if plugin type/api is \
changed }
diff --git a/plasmate/editors/metadata/metadataeditor.h \
b/plasmate/editors/metadata/metadataeditor.h index 52c8b25..04166a0 100644
--- a/plasmate/editors/metadata/metadataeditor.h
+++ b/plasmate/editors/metadata/metadataeditor.h
@@ -21,6 +21,8 @@ along with this program. If not, see \
<http://www.gnu.org/licenses/>. #include <QWidget>
#include <QStringList>
+#include "metadatahandler.h"
+
namespace Ui
{
class MetaDataEditor;
@@ -39,16 +41,9 @@ public:
MetaDataEditor(QWidget *parent = 0);
~MetaDataEditor();
- enum apiModes {
- coreApi,
- uiApi
- };
-
- void setFilename(const QString &filename);
- QString formatApi(const QString &api, apiModes apiMode);
+ void setFilename(const QString &filePath);
const QString filename();
const QString api();
- bool isValidMetaData();
public slots:
void readFile();
void writeFile();
@@ -61,8 +56,7 @@ private slots:
private:
Ui::MetaDataEditor *m_view;
QString m_filename;
- Plasma::PackageMetadata *m_metadata;
- QStringList m_apis;
+ MetadataHandler *m_metadata;
QStringList m_categories;
void initCatergories(const QString& serviceType);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic