DCOP can be called in several ways in Kommander. First is the console method
dcop kmdr-executor-@pid KommanderIf changeWidgetText myWidget “new text”
This assumes you are inside a Kommander file and have access to the special @pid which contains the process ID. In fact it is simpler to replace “kmdr-executor-@pid” with @dcopid. However, you can use this syntax (obviously without the specials) from the command line or any external script to alter the Kommander window.
Because Kommander does not have a full parser in it's Alpha stage, if you want to use the much faster internal DCOP from another application window (console DCOP is very slow) it is more complicated because you must give lots of information, including a prototype of the call. The above call would become:
@dcop(@dcopid, KommanderIf, “enableWidget(QString, bool)”, Widget, true)
At the time of this writing you should be aware that nesting DCOP calls inside script language structures (like bash) means that you must use console method calls. If you use internal DCOP all Kommander specials will be executed first and then the script will be executed.
There is a new simplified way to use DCOP inside Kommander using an object syntax. Let's say you want to change the text in a widget name @LineEdit1. It would look like this.
@LineEdit1.changeWidgetText(New text)
As you can see the new syntax is very easy, as well as consistent visually with function groups. All the DCOP reference here will use the new object syntax listed above. Please note that if you are referencing a widget using DCOP from another window or another application the first parameter will always be the widget name. All functions are listed here starting with the second parameter.
Returns the value of the specified global variable. When a script is run from within a Kommander window any (non-global) varaibles set in that script will cease to exist after the script completes and therfore will not be available to other script processes or in a new instance of the calling process. The global “scope” means the variable will exist for any process of the window until that window is closed. You may change these variables at any time with a new call to @setGlobal
.
Creates a variable that is global to the window process and assigns the value to it. This value can be retrieved with global(QString variableName) or set again.
This should be renamed setWidgetText and this name will probably be deprecated. This removes the text displayed int he widget and replaces it with the text supplied.
Enables or disables a widget.
Returns the text associated with the specified widget. This is not the same as the displayed text. It would be “@widgetText” or the text and/or scripting used to arrive at the displayed value.
This sets the Kommander Text default string. This is typically set to “@widgetText” to display what is entered into the widget. It is unlikely you will have much need for this, but if you do it is there. Applies to all widgets that can contain data.
Adds an item to a ListBox widget at the specified index. List index starts at zero. To add to the end of the list use -1.
This adds a list of strings all at once. The list should be delimited by EOL (\n - newlines). This is handy as you can use bash to derive the list rather easily. For instance, using @exec(ls -l ~/projects | grep kmdr) for items will give you a directory listing of Kommander files in your projects folder. List index starts at zero. Use -1 to add to the end of the list.
addUniqueItem will add an item to the end of the list only if it is unique.
Removes all items.
Removes the item at the specified index.
Returns the text of the item at the specified index.
Set the current (or selected) item to the index specified. Applies to ListBox and ComboBox widgets.
Checks/unchecks CheckBox or RadioButton widgets.
Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team