[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [krita/berger-scripting] krita/ui: add the script manager back
From: Cyrille Berger <cberger () cberger ! net>
Date: 2015-12-09 21:13:33
Message-ID: E1a6m3J-0005XC-Uq () scm ! kde ! org
[Download RAW message or body]
Git commit ae927b20dea4309b31f84e3d8953dd69c8e01feb by Cyrille Berger.
Committed on 09/12/2015 at 21:12.
Pushed by berger into branch 'berger-scripting'.
add the script manager back
M +1 -0 krita/ui/CMakeLists.txt
M +2 -5 krita/ui/KisMainWindow.cpp
M +9 -0 krita/ui/KisViewManager.cpp
M +3 -0 krita/ui/KisViewManager.h
A +82 -0 krita/ui/kis_script_manager.cpp [License: LGPL (v2+)]
A +48 -0 krita/ui/kis_script_manager.h [License: LGPL (v2+)]
http://commits.kde.org/krita/ae927b20dea4309b31f84e3d8953dd69c8e01feb
diff --git a/krita/ui/CMakeLists.txt b/krita/ui/CMakeLists.txt
index 4dd4084..2bbc7fc 100644
--- a/krita/ui/CMakeLists.txt
+++ b/krita/ui/CMakeLists.txt
@@ -121,6 +121,7 @@ set(kritaui_LIB_SRCS
kis_popup_palette.cpp
kis_png_converter.cpp
kis_preference_set_registry.cpp
+ kis_script_manager.cpp
kis_resource_server_provider.cpp
kis_selection_decoration.cc
kis_selection_manager.cc
diff --git a/krita/ui/KisMainWindow.cpp b/krita/ui/KisMainWindow.cpp
index 09d85c0..7990b9b 100644
--- a/krita/ui/KisMainWindow.cpp
+++ b/krita/ui/KisMainWindow.cpp
@@ -309,6 +309,8 @@ KisMainWindow::KisMainWindow()
QMetaObject::invokeMethod(this, "initializeGeometry", Qt::QueuedConnection);
+ KoPluginLoader::instance()->load("Krita/ViewPlugin", "Type == 'Service' and \
([X-Krita-Version] == 28)", KoPluginLoader::PluginsConfig(), d->viewManager); +
KoToolBoxFactory toolBoxFactory;
QDockWidget *toolbox = createDockWidget(&toolBoxFactory);
toolbox->setFeatures(QDockWidget::DockWidgetMovable | \
QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetClosable); @@ -360,11 \
+362,6 @@ KisMainWindow::KisMainWindow()
setAutoSaveSettings("krita", false);
- KoPluginLoader::instance()->load("Krita/ViewPlugin",
- "Type == 'Service' and ([X-Krita-Version] == \
28)",
- KoPluginLoader::PluginsConfig(),
- viewManager());
-
subWindowActivated();
updateWindowMenu();
diff --git a/krita/ui/KisViewManager.cpp b/krita/ui/KisViewManager.cpp
index b9b8446..c34a11b 100644
--- a/krita/ui/KisViewManager.cpp
+++ b/krita/ui/KisViewManager.cpp
@@ -125,6 +125,7 @@
#include "kra/kis_kra_loader.h"
#include "widgets/kis_floating_message.h"
#include "kis_signal_auto_connection.h"
+#include "kis_script_manager.h"
#include "kis_icon_utils.h"
@@ -239,6 +240,7 @@ public:
, guiUpdateCompressor(30, KisSignalCompressor::POSTPONE, _q)
, mirrorManager(_q)
, inputManager(_q)
+ , scriptManager(_q)
, actionAuthor(0)
{
}
@@ -285,6 +287,7 @@ public:
KisInputManager inputManager;
KisSignalAutoConnectionsStore viewConnections;
+ KisScriptManager scriptManager;
KSelectAction *actionAuthor; // Select action for author profile.
QByteArray canvasState;
@@ -722,6 +725,7 @@ void KisViewManager::setupManagers()
d->mirrorManager.setup(actionCollection());
+ d->scriptManager.setup(actionCollection());
}
void KisViewManager::updateGUI()
@@ -768,6 +772,11 @@ KisDocument *KisViewManager::document() const
return 0;
}
+KisScriptManager *KisViewManager::scriptManager() const
+{
+ return &d->scriptManager;
+}
+
int KisViewManager::viewCount() const
{
KisMainWindow *mw = qobject_cast<KisMainWindow*>(d->mainWindow);
diff --git a/krita/ui/KisViewManager.h b/krita/ui/KisViewManager.h
index 6d6b741..4a5e458 100644
--- a/krita/ui/KisViewManager.h
+++ b/krita/ui/KisViewManager.h
@@ -51,6 +51,7 @@ class KisUndoAdapter;
class KisZoomManager;
class KisPaintopBox;
class KisActionManager;
+class KisScriptManager;
class KisInputManager;
/**
@@ -162,6 +163,8 @@ public: // Krita specific interfaces
KisUndoAdapter *undoAdapter();
KisDocument *document() const;
+
+ KisScriptManager *scriptManager() const;
int viewCount() const;
diff --git a/krita/ui/kis_script_manager.cpp b/krita/ui/kis_script_manager.cpp
new file mode 100644
index 0000000..c8a3342
--- /dev/null
+++ b/krita/ui/kis_script_manager.cpp
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2014 Boudewijn Rempt <boud@valdyas.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "kis_script_manager.h"
+
+#include <klocale.h>
+#include <kactionmenu.h>
+#include <kactioncollection.h>
+
+#include "KisViewManager.h"
+
+struct KisScriptManager::Private {
+ Private()
+ : actionCollection(0)
+ , view(0)
+ , scriptMenu(0)
+ {
+ }
+
+ QHash<KisFilter*, QAction*> script2Action;
+
+ KActionCollection *actionCollection;
+ KisViewManager *view;
+ KActionMenu *scriptMenu;
+};
+
+
+KisScriptManager::KisScriptManager(KisViewManager *view)
+ : QObject(view)
+ , d(new Private())
+{
+ d->view = view;
+}
+
+KisScriptManager::~KisScriptManager()
+{
+ delete d;
+}
+
+
+void KisScriptManager::setup(KActionCollection * ac)
+{
+ d->actionCollection = ac;
+ d->scriptMenu = new KActionMenu(i18n("Scripts"),this);
+ d->actionCollection->addAction("scripting", d->scriptMenu);
+}
+
+void KisScriptManager::updateGUI()
+{
+ if (!d->view) return;
+
+// bool enable = false;
+
+// KisNodeSP activeNode = d->view->activeNode();
+// enable = activeNode && activeNode->hasEditablePaintDevice();
+
+// d->reapplyAction->setEnabled(enable);
+
+// foreach(KAction *action, d->script2Action.values()) {
+// action->setEnabled(enable);
+ // }
+}
+
+void KisScriptManager::addAction(QAction *action)
+{
+ d->scriptMenu->addAction(action);
+}
diff --git a/krita/ui/kis_script_manager.h b/krita/ui/kis_script_manager.h
new file mode 100644
index 0000000..615d653
--- /dev/null
+++ b/krita/ui/kis_script_manager.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2014 Boudewijn Rempt <boud@valdyas.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KIS_SCRIPT_MANAGER_H
+#define KIS_SCRIPT_MANAGER_H
+
+#include <QObject>
+
+#include <kritaui_export.h>
+
+class QAction;
+
+class KisViewManager;
+class KActionCollection;
+
+class KRITAUI_EXPORT KisScriptManager : public QObject
+{
+ Q_OBJECT
+public:
+ explicit KisScriptManager(KisViewManager * view);
+ ~KisScriptManager();
+
+ void setup(KActionCollection * ac);
+ void updateGUI();
+
+ void addAction(QAction *action);
+
+private:
+ struct Private;
+ Private * const d;
+};
+
+#endif // KIS_SCRIPT_MANAGER_H
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic