• Skip to content
  • Skip to link menu
KDE 4.3 API Reference
  • KDE API Reference
  • kdelibs
  • Sitemap
  • Contact Us
 

Kross

Kross::Action

Kross::Action Class Reference

The Action class is an abstract container to deal with scripts like a single standalone script file. More...

#include <action.h>

Inheritance diagram for Kross::Action:
QAction QScriptable Kross::ChildrenInterface Kross::ErrorInterface

List of all members.

Public Slots

void addQObject (QObject *obj, const QString &name=QString())
QVariant callFunction (const QString &name, const QVariantList &args=QVariantList())
QByteArray code () const
QString currentPath () const
QString description () const
QVariant evaluate (const QByteArray &code)
QString file () const
QStringList functionNames ()
QString iconName () const
QString interpreter () const
bool isEnabled () const
QString name () const
QVariant option (const QString &name, const QVariant &defaultvalue=QVariant())
QVariantMap options () const
QObject * qobject (const QString &name) const
QStringList qobjectNames () const
void setCode (const QByteArray &code)
void setDescription (const QString &description)
void setEnabled (bool enabled)
bool setFile (const QString &scriptfile)
void setIconName (const QString &iconname)
void setInterpreter (const QString &interpretername)
bool setOption (const QString &name, const QVariant &value)
int version () const

Signals

void dataChanged (Action *)
void finalized (Kross::Action *)
void finished (Kross::Action *)
void started (Kross::Action *)
void updated ()

Public Member Functions

 Action (QObject *parent, const QUrl &url)
 Action (QObject *parent, const QString &name, const QDir &packagepath=QDir())
void finalize ()
void fromDomElement (const QDomElement &element, const QStringList &searchPath)
void fromDomElement (const QDomElement &element)
bool initialize ()
bool isFinalized () const
Script * script () const
QDomElement toDomElement (const QStringList &searchPath) const
QDomElement toDomElement () const
virtual ~Action ()

Detailed Description

The Action class is an abstract container to deal with scripts like a single standalone script file.

Each action holds a reference to the matching Kross::Interpreter created Kross::Script instance.

The Manager takes care of handling the Action instances application by providing access to ActionCollection containers for those Action instances.

Once you've such a Action instance you're able to perform actions with it like executing scripting code.

Following sample shows "Hello World." executed with the python interpreter:

 # Create a new Kross::Action instance.
 Kross::Action* action = new Kross::Action(0,"MyFirstScript");
 # Set the interpreter we like to use. This could be e.g. "python", "ruby" or "kjs".
 action->setInterpreter("python");
 # Set the scripting code.
 action->setCode("print \"Hello World.\"");
 # Execute the scripting code.
 action->trigger();

Following sample demonstrates how to execute an external python script file. The script file itself is named "mytest.py" and contains:

 # this function got called from within C++
 def myfunction(args):
     print "Arguments are: %s" % args
 # Import the published QObject's
 import MyFirstQObject, MySecondQObject
 # Call a slot MyFirstQObject provides.
 MyFirstQObject.someSlot("Some string")
 # Set a property MySecondQObject provides.
 MySecondQObject.someProperty = "Other string"

Then you are able to load the script file, publish QObject instances and let the script do whatever it likes to do:

 # Publish a QObject instance for all Kross::Action instances.
 Kross::Manager::self().addObject(myqobject1, "MyFirstQObject")
 # Create a new Kross::Action instance.
 Kross::Action* action = new Kross::Action(0,"MySecondScript");
 # Publish a QObject instance only for the Kross::Action instance.
 action->addObject(myqobject2, "MySecondQObject");
 # Set the script file we like to execute.
 action->setFile("/home/myuser/mytest.py");
 # Execute the script file.
 action->trigger();
 # Call the "myfunction" defined in the "mytest.py" python script.
 QVariant result = action->callFunction("myfunction", QVariantList()<<"Arg");

Definition at line 94 of file action.h.


Constructor & Destructor Documentation

Action::Action ( QObject *  parent,
const QString &  name,
const QDir &  packagepath = QDir() 
)

Constructor.

Parameters:
parent The parent QObject this Action is a child of.
name The unique name this Action has. It's used e.g. at the Manager to identify the Action. The name is accessible via QObject::objectName .
Deprecated:
since 4.3: pass search path to fromDomElement() and toDomElement()

Definition at line 116 of file action.cpp.

Action::Action ( QObject *  parent,
const QUrl &  url 
)

Constructor.

Parameters:
parent The parent QObject this Action is a child of.
url The URL should point to a valid scripting file. This Action will be filled with the content of the file (e.g. the file is read and code should return its content and it's also tried to determine the interpreter ). Remember to use QUrl c'tor explicitly. The name will be set to url.path()

Definition at line 127 of file action.cpp.

Action::~Action (  )  [virtual]

Destructor.

Definition at line 140 of file action.cpp.


Member Function Documentation

void Action::addQObject ( QObject *  obj,
const QString &  name = QString() 
) [slot]

Add a QObject instance to the action.

This instance will be published to scripts.

Definition at line 387 of file action.cpp.

QVariant Action::callFunction ( const QString &  name,
const QVariantList &  args = QVariantList() 
) [slot]

Call a function in the script.

Parameters:
name The name of the function which should be called.
args The optional list of arguments.

Definition at line 431 of file action.cpp.

QByteArray Action::code (  )  const [slot]
Returns:
the scriptcode this Action holds.

Definition at line 319 of file action.cpp.

QString Action::currentPath (  )  const [slot]
Returns:
the current path the script is running in or an empty string if there is no current path defined.

Definition at line 377 of file action.cpp.

void Kross::Action::dataChanged ( Action *   )  [signal]

This signal is emitted when the data of the Action is changed.

QString Action::description (  )  const [slot]
Returns:
the optional description for this Action.

Definition at line 282 of file action.cpp.

QVariant Action::evaluate ( const QByteArray &  code  )  [slot]

Evaluate some scripting code.

Example how this can be used:

 Kross::Action* a = new Kross::Action(0, "MyScript");
 a->setInterpreter("python");
 a->setCode("def myFunc(x): return x");
 a->execute();
 int three = a->evaluate("1+2").toInt(); // returns 3
 int nine = a->evaluate("myFunc(9)").toInt(); // returns 9
Parameters:
code The scripting code to evaluate.
Returns:
The return value of the evaluation.

Definition at line 440 of file action.cpp.

QString Action::file (  )  const [slot]
Returns:
the script file that should be executed.

Definition at line 352 of file action.cpp.

void Action::finalize (  ) 

Finalize the Script instance and frees any cached or still running executions.

Normally there is no need to call this function directly because the Action will take care of calling it if needed.

Definition at line 497 of file action.cpp.

void Kross::Action::finalized ( Kross::Action *   )  [signal]

This signal is emitted once a script finalized.

void Kross::Action::finished ( Kross::Action *   )  [signal]

This signal is emitted after the script got executed.

void Action::fromDomElement ( const QDomElement &  element,
const QStringList &  searchPath 
)

Method to read settings from the QDomElement element that contains details about e.g.

the displayed text, the file to execute or the used interpreter.

Parameters:
searchPath List of directories where to search the script if its path is relative First item is given the highest priority.

Definition at line 159 of file action.cpp.

void Action::fromDomElement ( const QDomElement &  element  ) 

Method to read settings from the QDomElement element that contains details about e.g.

the displayed text, the file to execute or the used interpreter.

Todo:
BIC merge

Definition at line 154 of file action.cpp.

QStringList Action::functionNames (  )  [slot]
Returns:
the list of functionnames.

Definition at line 422 of file action.cpp.

QString Action::iconName (  )  const [slot]

Return the name of the icon.

Definition at line 294 of file action.cpp.

bool Action::initialize (  ) 

Initialize the Script instance.

Normally there is no need to call this function directly because if will be called internally if needed (e.g. on execute ).

Returns:
true if the initialization was successful else false is returned.

Definition at line 449 of file action.cpp.

QString Action::interpreter (  )  const [slot]
Returns:
the name of the interpreter. Could be for example "python" or "ruby".

Definition at line 334 of file action.cpp.

bool Action::isEnabled (  )  const [slot]

Return true if this Action is enabled else false is returned.

Definition at line 307 of file action.cpp.

bool Action::isFinalized (  )  const
Returns:
true if the action is finalized, which means the action is currently not running.

Definition at line 505 of file action.cpp.

QString Action::name (  )  const [slot]
Returns:
the objectName for this Action.

Definition at line 272 of file action.cpp.

QVariant Action::option ( const QString &  name,
const QVariant &  defaultvalue = QVariant() 
) [slot]
Returns:
the value of the option defined with name . If there doesn't exist an option with such a name, the defaultvalue is returned.

Definition at line 402 of file action.cpp.

QVariantMap Action::options (  )  const [slot]
Returns:
a map of options this Action defines. The options are returned call-by-ref, so you are able to manipulate them.

Definition at line 382 of file action.cpp.

QObject * Action::qobject ( const QString &  name  )  const [slot]
Returns:
the QObject with the object name name .

Definition at line 392 of file action.cpp.

QStringList Action::qobjectNames (  )  const [slot]
Returns:
a list of QObject object names.

Definition at line 397 of file action.cpp.

Kross::Script * Action::script (  )  const
Returns:
the Kross::Script implementation used by the scripting backend. This returns NULL until the action got triggered or if there was a error before that.

Normaly it shouldn't be necessary to deal with the scripting backend depending instance of a Kross::Script implementation since this Action class already decorates all the things needed. It may however be useful to provide additional interpreter dependent functionality.

Definition at line 267 of file action.cpp.

void Action::setCode ( const QByteArray &  code  )  [slot]

Set the scriptcode code this Action should execute.

Definition at line 324 of file action.cpp.

void Action::setDescription ( const QString &  description  )  [slot]

Set the optional description for this Action.

Definition at line 287 of file action.cpp.

void Action::setEnabled ( bool  enabled  )  [slot]

Set the enable state of this Action to enabled .

Definition at line 312 of file action.cpp.

bool Action::setFile ( const QString &  scriptfile  )  [slot]

Set the script file that should be executed.

Definition at line 357 of file action.cpp.

void Action::setIconName ( const QString &  iconname  )  [slot]

Set the name of the icon to iconname .

Definition at line 299 of file action.cpp.

void Action::setInterpreter ( const QString &  interpretername  )  [slot]

Set the name of the interpreter (javascript, python or ruby).

Definition at line 339 of file action.cpp.

bool Action::setOption ( const QString &  name,
const QVariant &  value 
) [slot]

Set the Interpreter::Option value.

Definition at line 410 of file action.cpp.

void Kross::Action::started ( Kross::Action *   )  [signal]

This signal is emitted before the script got executed.

QDomElement Action::toDomElement ( const QStringList &  searchPath  )  const
Returns:
a QDomElement that contains the settings like e.g. the displayed text, the file to execute or the used interpreter of this Action instance.
Parameters:
searchPath if given, find the closest directory containing the scriptfile and write relative filepath

Definition at line 218 of file action.cpp.

QDomElement Action::toDomElement (  )  const
Returns:
a QDomElement that contains the settings like e.g. the displayed text, the file to execute or the used interpreter of this Action instance.

Definition at line 213 of file action.cpp.

void Kross::Action::updated (  )  [signal]

This signal is emitted if the content of the Action was changed.

The ActionCollection instances this Action is a child of are connected with this signal to fire up their own updated signal if an Action of them was updated.

int Action::version (  )  const [slot]
Returns:
the version number this Action has. Per default 0 is returned.

Definition at line 277 of file action.cpp.


The documentation for this class was generated from the following files:
  • action.h
  • action.cpp

Kross

Skip menu "Kross"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.6.1
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal