SVN commit 670282 by sebsauer: * prepare scriptmanager * duplicated code-- M +2 -2 krita/plugins/viewplugins/scripting/scripting.rc M +6 -15 krita/plugins/viewplugins/scripting/scriptingpart.cpp M +2 -14 kspread/plugins/scripting/ScriptingPart.cpp M +2 -2 kspread/plugins/scripting/scripting.rc M +1 -13 kword/plugins/scripting/KWScriptingPart.cpp M +2 -2 kword/plugins/scripting/scripting.rc M +13 -1 libs/kokross/KoScriptingGuiClient.cpp --- trunk/koffice/krita/plugins/viewplugins/scripting/scripting.rc #670281:670282 @@ -1,11 +1,11 @@ - + &Tools - + --- trunk/koffice/krita/plugins/viewplugins/scripting/scriptingpart.cpp #670281:670282 @@ -69,7 +69,7 @@ { public: KisView2* view; - KoScriptingGuiClient* guiclient; + QPointer< KoScriptingGuiClient > guiclient; QPointer< Scripting::Module > module; }; @@ -82,7 +82,7 @@ d->view = dynamic_cast< KisView2* >(parent); Q_ASSERT(d->view); - d->guiclient = new KoScriptingGuiClient( d->view, d->view ); + d->guiclient = new KoScriptingGuiClient( this, d->view ); //d->guiclient ->setXMLFile(locate("data","kritaplugins/scripting.rc"), true); //BEGIN TODO: understand why the ScriptGUIClient doesn't "link" its actions to the menu @@ -90,18 +90,6 @@ d->module = new Scripting::Module(d->view); - // Setup the actions Kross provides and Krita likes to have. - KAction* execaction = new KAction(i18n("Execute Script File..."), this); - actionCollection()->addAction("executescriptfile", execaction ); - connect(execaction, SIGNAL(triggered(bool)), d->guiclient, SLOT(slotShowExecuteScriptFile())); - - KAction* manageraction = new KAction(i18n("Script Manager..."), this); - actionCollection()->addAction("configurescripts", manageraction ); - connect(manageraction, SIGNAL(triggered(bool)), d->guiclient, SLOT(slotShowScriptManager())); - - QAction* scriptmenuaction = d->guiclient->action("scripts"); - actionCollection()->addAction("scripts", scriptmenuaction); - KoScriptingDockerFactory factory(d->view, d->guiclient); QDockWidget* dock = d->view->createDockWidget(&factory); Q_UNUSED(dock); @@ -140,7 +128,10 @@ { // kDebug() << "ScriptingPart::executionFinished" << endl; d->view->document()->setModified(true); - d->view->layerManager()->activeLayer()->setDirty(); + +//FIXME sebsauer, 20070601, who did remove it without providing an replacment? +//d->view->layerManager()->activeLayer()->setDirty(); + static_cast< Scripting::Progress* >( d->module->progress() )->progressDone(); QApplication::restoreOverrideCursor(); //d->module->deleteLater(); --- trunk/koffice/kspread/plugins/scripting/ScriptingPart.cpp #670281:670282 @@ -48,7 +48,7 @@ { public: KoScriptingGuiClient* guiclient; - ScriptingModule* module; + QPointer module; Private() : module(0) {} ~Private() {} @@ -68,21 +68,9 @@ // Create the Kross GUIClient which is the higher level to let // Kross deal with scripting code. - d->guiclient = new KoScriptingGuiClient(this, this); + d->guiclient = new KoScriptingGuiClient(this, view); //d->guiclient ->setXMLFile(locate("data","kspreadplugins/scripting.rc"), true); - // Setup the actions Kross provides and KSpread likes to have. - KAction* execaction = new KAction(i18n("Execute Script File..."), this); - actionCollection()->addAction("executescriptfile", execaction ); - connect(execaction, SIGNAL(triggered(bool)), d->guiclient, SLOT(slotShowExecuteScriptFile())); - - KAction* manageraction = new KAction(i18n("Script Manager..."), this); - actionCollection()->addAction("configurescripts", manageraction ); - connect(manageraction, SIGNAL(triggered(bool)), d->guiclient, SLOT(slotShowScriptManager())); - - QAction* scriptmenuaction = d->guiclient->action("scripts"); - actionCollection()->addAction("scripts", scriptmenuaction); - // Publish the ScriptingModule which offers access to KSpread internals. ScriptingModule* module = Kross::Manager::self().hasObject("KSpread") ? dynamic_cast< ScriptingModule* >( Kross::Manager::self().object("KSpread") ) --- trunk/koffice/kspread/plugins/scripting/scripting.rc #670281:670282 @@ -1,10 +1,10 @@ - + &Tools - + --- trunk/koffice/kword/plugins/scripting/KWScriptingPart.cpp #670281:670282 @@ -49,7 +49,7 @@ { public: KWView* view; - KoScriptingGuiClient* guiclient; + QPointer guiclient; Scripting::Module* module; Private() : module(0) {} ~Private() { delete module; } @@ -75,18 +75,6 @@ d->module = new Scripting::Module(); d->module->setView(d->view); - // Setup the actions Kross provides and KSpread likes to have. - KAction* execaction = new KAction(i18n("Execute Script File..."), this); - actionCollection()->addAction("executescriptfile", execaction); - connect(execaction, SIGNAL(triggered(bool)), d->guiclient, SLOT(slotShowExecuteScriptFile())); - - KAction* manageraction = new KAction(i18n("Script Manager..."), this); - actionCollection()->addAction("configurescripts", manageraction); - connect(manageraction, SIGNAL(triggered(bool)), d->guiclient, SLOT(slotShowScriptManager())); - - QAction* scriptmenuaction = d->guiclient->action("scripts"); - actionCollection()->addAction("scripts", scriptmenuaction); - connect(&Kross::Manager::self(), SIGNAL(started(Kross::Action*)), this, SLOT(started(Kross::Action*))); connect(&Kross::Manager::self(), SIGNAL(finished(Kross::Action*)), this, SLOT(finished(Kross::Action*))); --- trunk/koffice/kword/plugins/scripting/scripting.rc #670281:670282 @@ -1,10 +1,10 @@ - + &Tools - + --- trunk/koffice/libs/kokross/KoScriptingGuiClient.cpp #670281:670282 @@ -22,9 +22,10 @@ // qt //#include // kde +#include +#include //#include //#include -//#include // koffice //#include //#include @@ -44,6 +45,17 @@ KoScriptingGuiClient::KoScriptingGuiClient(KXMLGUIClient* guiclient, QObject* parent) : Kross::GUIClient(guiclient, parent), d(new Private()) { + KAction* execaction = new KAction(i18n("Execute Script File..."), this); + guiclient->actionCollection()->addAction("executescriptfile", execaction); + connect(execaction, SIGNAL(triggered(bool)), this, SLOT(slotShowExecuteScriptFile())); + + KAction* manageraction = new KAction(i18n("Script Manager..."), this); + guiclient->actionCollection()->addAction("scriptmanager", manageraction); + connect(manageraction, SIGNAL(triggered(bool)), this, SLOT(slotShowScriptManager())); + + QAction* scriptmenuaction = this->action("scripts"); + if( scriptmenuaction ) + guiclient->actionCollection()->addAction("scripts", scriptmenuaction); } KoScriptingGuiClient::~KoScriptingGuiClient()