kexi
- kexi
- plugins
- scripting
- kexiscripting
22#include "kexiscriptpart.h"
23#include "kexiscriptdesignview.h"
25#include "kexiviewbase.h"
26#include "keximainwindow.h"
27#include "kexiproject.h"
29#include <kross/main/manager.h>
30#include <kross/main/scriptaction.h>
31#include <kross/main/scriptguiclient.h>
33#include <kgenericfactory.h>
34#include <kexipartitem.h>
35#include <kxmlguiclient.h>
36#include <kexidialogbase.h>
41class KexiScriptPart::Private
44 Kross::Api::ScriptGUIClient* scriptguiclient;
48 : KexiPart:: Part(parent, name, l)
51 d->scriptguiclient = 0;
57 = i18n( "Translate this word using only lowercase alphanumeric characters (a..z, 0..9). "
58 "Use '_' character instead of spaces. First character should be a..z character. "
59 "If you cannot use latin characters in your language, use english word.",
61 m_names[ "instanceCaption"] = i18n( "Script");
67 delete d->scriptguiclient;
76 kdWarning() << "KexiScriptPart::execute: Invalid item." << endl;
81 dialog-> setId( item->identifier() );
84 kdWarning() << "KexiScriptPart::execute: Failed to create a view." << endl;
88 Kross::Api::ScriptAction* scriptaction = view-> scriptAction();
91 const TQString dontAskAgainName = "askExecuteScript";
92 TDEConfig* config = TDEGlobal::config();
93 TQString dontask = config->readEntry(dontAskAgainName).lower();
95 bool exec = (dontask == "yes");
96 if( !exec && dontask != "no" ) {
97 exec = KMessageBox::warningContinueCancel(0,
98 i18n( "Do you want to execute the script \"%1\"?\n\nScripts obtained from unknown sources can contain dangerous code.").arg(scriptaction->text()),
99 i18n( "Execute Script?"), KGuiItem(i18n( "Execute"), "exec"),
100 dontAskAgainName, KMessageBox::Notify | KMessageBox::Dangerous
101 ) == KMessageBox::Continue;
106 d->scriptguiclient->executeScriptAction( scriptaction );
121 d->scriptguiclient = new Kross::Api::ScriptGUIClient( m_mainWin );
126 if(! Kross::Api::Manager::scriptManager()->hasChild( "KexiMainWindow")) {
127 Kross::Api::Manager::scriptManager()->addTQObject(m_mainWin, "KexiMainWindow");
132 TQPopupMenu* popup = m_mainWin->findPopupMenu( "tools");
134 TDEAction* execscriptaction = d->scriptguiclient->action( "executescriptfile");
136 execscriptaction->plug( popup );
137 TDEAction* configscriptaction = d->scriptguiclient->action( "configurescripts");
138 if(configscriptaction)
139 configscriptaction->plug( popup );
140 TDEAction* scriptmenuaction = d->scriptguiclient->action( "installedscripts");
142 scriptmenuaction->plug( popup );
159 createSharedAction(Kexi::DesignViewMode, i18n( "Configure Editor..."), "configure", 0, "script_config_editor");
164 TQString partname = item.name();
165 if( ! partname.isNull() ) {
166 KexiMainWindow *win = dialog->mainWin();
170 Kross::Api::ScriptActionCollection* collection = d->scriptguiclient->getActionCollection( "projectscripts");
172 collection = new Kross::Api::ScriptActionCollection( i18n( "Scripts"), d->scriptguiclient->actionCollection(), "projectscripts" );
173 d->scriptguiclient->addActionCollection( "projectscripts", collection);
176 const char* name = partname.latin1();
177 Kross::Api::ScriptAction::Ptr scriptaction = collection->action(name);
179 scriptaction = new Kross::Api::ScriptAction(partname);
180 collection->attach(scriptaction);
183 if(viewMode == Kexi::DesignViewMode) {
192 if (englishMessage== "Design of object \"%1\" has been modified.")
193 return i18n( "Design of script \"%1\" has been modified.");
194 if (englishMessage== "Object \"%1\" already exists.")
195 return i18n( "Script \"%1\" already exists.");
196 return englishMessage;
199K_EXPORT_COMPONENT_FACTORY( kexihandler_script, KGenericFactory<KexiScriptPart>( "kexihandler_script") )
201#include "kexiscriptpart.moc"
Base class for child window of Kexi's main application window.
virtual KexiProject * project()=0 Project data of currently opened project or NULL if no project here yet.
Information about a single object that can be instantiated using Kexi Part.
TDEAction * createSharedAction(int mode, const TQString &text, const TQString &pix_name, const TDEShortcut &cut, const char *name, const char *subclassName=0)
Part(TQObject *parent, const char *name, const TQStringList &)
TQMap< TQString, TQString > m_names
KexiDB::Connection * dbConnection() const
The KexiScriptDesignView class provides the KexiViewBase to manage script modules in the design-view.
Kross::Api::ScriptAction * scriptAction() const
virtual bool execute(KexiPart::Item *item, TQObject *sender=0) Implementation of the KexiPart::Part::execute method used to execute the passed item instance.
virtual ~KexiScriptPart() Destructor.
virtual KexiViewBase * createView(TQWidget *parent, KexiDialogBase *dialog, KexiPart::Item &item, int viewMode=Kexi::DesignViewMode, TQMap< TQString, TQString > *staticObjectArgs=0) Create a new view.
KexiScriptPart(TQObject *parent, const char *name, const TQStringList &args) Constructor.
virtual TQString i18nMessage(const TQCString &englishMessage) const
virtual void initPartActions() Initialize the part's actions.
virtual void initInstanceActions() Initialize the instance actions.
Base class for single view embeddable of in KexiDialogBase.
|