[Kommander-devel] Recent Kommander developments

Eric Laffoon eric at kdewebdev.org
Thu Jan 17 02:45:32 EST 2008


Hi all,
Andras has been making a few commits to Kommander in svn as I have been using 
it with the database plugin to develop an in house application. Currently 
there are a lot of new features which I will be announcing on the user list. 
We will be releasing 1.3 soon, but for now you need SVN to see the latest 
improvements and fixes. Testing would be nice and I'm also looking for 
developer involvement. We do need to get a KDE4 version ready ASAP and we 
have nobody to actively work on that. I'm familiar with the code, but not the 
most productive C++ programmer and don't have the time what with my business 
expansion. I'd also like to sponsor a developer, but I'm not in a position to 
be comfortable with that right now. If anyone on the list is interested in 
helping with docs, fine tuning or C++ coding let me know.

Here are some of the things you can look at now. For one there is a new module 
in KDE SVN for our plugins which have a revised architecture to make them 
less fragile.
svn.kde.org/home/kde/trunk/playground/devtools/kommander-plugins
Along with the hk_classes plugin there is HTTP, capable of HTTPS and password 
protected areas and a new KParts loader. Matthias Wieser had submitted a 
KParts creation patch that never got in, but we will be looking at adding 
code for this too.

New functionality, let me try to remember it all...
* Table.Selection - returns 4 parameters as Self.Item(0)-Self.Item(3) which 
address a range of cells. So now you can detect range with functions.
* DatePicker widget added
* execute method added to buttons for slot
*passing paramters back and forth between scripts...
widget1:
mydata = ScriptObject.execute(3,4)
ScriptObject:
x = str_toint(Self.Item(0))*str_toint(Self.Item(1))
return(x)
//returns 12
* createWidget(name, type, parent) - now possible to create on the fly, but 
make sure you have some layout preparation
createWidget("DatePicker1", "DatePicker", "Form1") 
DatePicker1.show()
* assign variable name to widgets...
* Table.setCellWidget(row, col, widget)
for i=0 to 5 do
  var = "Combo"+i
  createWidget(var, "ComboBox", "Table1")
  Table1.setCellWidget(i, 3, var)
  y = 0
  for x=1 to 10 do
    y = y +"\n"+ x
  end
  var.insertItems(y, 0 )
end
* directly call preconfigured slots!
slot()
slot(QString)
slot(QString, QString)
slot(bool)
slot(int)
slot(int,int)
slot(int,int,int)
slot(int,int,int,int)
of course like Table1.slot(int,int,int,int)
This opens up a huge number of new things you can do with tables, text edit 
and tree/detail to name a few. For instance I load tables with setText and 
have to rename columns and deal with formatting, but even just removing and 
replacing data it's easy to add Table1.adjustColumn(0) to optimize display.

If you haven't played with the new parser it's very nice. It gives you the 
same functionalit as the @ functions with some additions, plus you can nest 
if and for loops and call break, exit and return(). It is still very lean and 
very fast and can be managed with point and click by users in the function 
browser. However now you can clean up long statements with variables. I've 
managed to find I hope most of the bugs in it. The editor is extensible with 
Kommander developed tools too. There are also approaching several hundred 
apps on kde-apps.org using Kommander. I hope to get some developer help to 
make it better and prepare for a KDE4 version.
-- 
Eric Laffoon
Project Lead - kdewebdev module


More information about the Kommander-devel mailing list