Image 01


Friedrich Pülz Bremen, Germany
Plasma Public Transport Timetables
Plasma 4 Extensions
App Runners

Plasma 4 Extensions 813 comments

Score 85.2%
Jan 17 2013
I fixed the autocompletion and made it better. It's now using another url (no html document, only contains infos about the suggested stops, so it produces less traffic.. just like de_db) :) Will be in the next version.
But de_db has more features, you should think about using it instead of de_fahrplaner. With de_db can see route infos about every departures/arrival, search for journeys, delays where available, .. Or is there something working better with fahrplaner? - Feb 08 2010
Yes, they changed something. But fortunately it's just a small change that requires an even smaller change in the script for imhd: The time previously had the format "", now it's "h:mm" or "hh:mm" (will check it now). So the next version will work again :) - Feb 07 2010
Right, that's not very intelligent ;) That option was used as timeout to request new data from the data engine, which now has the more intelligent update timeouts. That means, that the data engine doesn't always download new timetables, when an applet requests an update (only when it makes sense). I removed the option from the config dialog and hardcoded it to one minute, to make sure that duration values (eg. until departure) are updated.
Thanks :) And the config dialog got simpler, great. - Feb 05 2010
Yes, thanks. Both is already fixed :) I'll release the new version very soon. - Feb 04 2010
Good news :) Trolley buses do now work with sk_imhd (next version will come soon). I just needed to add the string "Trolleybus (Trackless trolley)" to the vehicle type string parser. The vehicle types have a seperate table in sk_imhd, I currently have the following types: "streetcar (tram)", "express bus", "night line - bus" and the trolley buses of course. Are there more types? - Feb 04 2010
Thanks, I moved the "#include <QGraphicsEffect>" into the Qt>=4.6-test.

The wrong diacritics are there because I passed the un-decoded HTML data to the script by mistake.. Fixed for the next version :)

And I now hardcoded the line numbers 200-220 in the script as being trolley buses. Do you know if these line numbers are used by other cities of sk_imhd?
Please tell me a stop where a trolley bus departs, so that I can check if it works (and if there's another possibility to know that the bus is actually a trolley bus).

And I'm glad that you like my applet :) - Feb 04 2010
You can now have multiple stops in one applet (with a little add-toolbutton). When clicking the top-left icon the current stop can be switched or the results of all stops can be shown together. To which stop a departure belongs can be seen from the route, at least if it's available for the used service provider.
The "Home stop" is still called home stop, because only that one is currently used for journey searches.. as home stop. But that will change, calling them all home stops. Then the journey search can take the first as home stop or the currently selected stop.

@takanowaka: There're no tabs now, but a space-saving menu button to switch between stops. It's shown after clicking the top-left icon, with some other buttons. I already wanted to add some more actions there, so that new feature had a good timing :) - Feb 03 2010
I changed some strings and haven't yet updated the .po file in KDE's SVN. That's why many translated strings aren't shown. But that is the right file. In the source archive for I've included a version with some updates but only the .mo file (to not make the archive too big). I'll finish the updates and upload them in the next days. - Feb 03 2010
Ok, it should now work with 0.6.5. - Jan 31 2010
The simplest solution would be to add the applet two times to your desktop. Each can show another stop. But the results could get mixed up between the two, there's some bug in the data engine, which I haven't found yet. But you can try that.
But I think you want to show the departures of both stops in one applet? I can add that. The stop name should then be shown in the additional informations for each departure, I think.

Und auch noch was auf Deutsch:
Schönen Sonntag! :) - Jan 31 2010
The first compile issue with KDE < 4.4 is already fixed :)

For the others.. Are you now using Qt 4.6? Then I will have to adjust things a bit to work with all combinations of KDE 4.3/4.4 and Qt 4.5/4.6. I mixed up the tests for Qt 4.6 and KDE 4.4 a bit.. - Jan 30 2010
Thanks, I have correct that for the next version. - Jan 30 2010
Great :)
It should also compile with older KDE versions, but I only have KDE 4.4 RC installed currently, so I couldn't test it..
Can you send me the compiler error messages, when trying to compile with KDE 4.3? Would be great :) - Jan 30 2010
@fixu: My first answer somehow vanished..
I already tried that site, but I couldn't find out how to create urls that point directly to their results site. The data engine fills in data like the stop name, date and time, etc. into a "raw url". And another problem is, that the site doesn't seem to have departure/arrival boards, which is a requirement for the applet. I could allow Journey-only-providers, when I have some time for it. But the applet is intended to show departure / arrival boards ;) - Jan 29 2010
Should work again in 0.6.4 :) - Jan 29 2010
Sorry, but I found the bug. The city name replacements weren't read correctly from the xml. Therefore it tried to use the url with "bratislava" instead of "ba"..
In the next version it will work again!

But the works for your stop even without the replacement (because "bratislava" is replaced by itself ;)). So you can use that for now. - Jan 29 2010
I just made an accessor for, but it only works for trains (in 168 stops). - Jan 20 2010
Sorry, but there are two big problems:

1. The site only provides static timetables for a single line and the whole day. So the data engine would need to download and parse one html page per line... Normally the data engine uses dynamic timetables, you can give a stop name and a time (and maybe other stuff like a date) and get a page with all departures from the stop, beginning at the given time.

2. The page uses, which makes it very problematic to get an url that directly points to the timetable. It's maybe easier with that site, because they only have static timetables, but useless anyways..

So sorry, that won't work. But I'm sure, that there are more sites providing public transport timetables for lille? Hopefully dynamic and without :) Normally those sites provide a form for input of the stop name and the date/time and other stuff. - Jan 20 2010
For me it works.. but sometimes not for the first time. The stop suggestions are a bit clumsy with Maybe I can improve it for the next version.
Did it work better with prior versions? - Jan 20 2010
exactly ;)

And there already is some french translation. And I don't know how complete it is. If you want to help translating, just ask at the french translation team (, the plasmoid is in playground). But I think you first want it to have some results for france? Maybe the de_db accessor can give you some results, at least for trains, so you can check that first. - Jan 20 2010
Unfortunately the site is using And I don't know how to construct an url directly to the site containing the timetable (if it's possible at all?). So if anyone knows how to do this, please tell me :) - Jan 20 2010
I found the "Selction" typo, but didn't see the "Avaible" one. Thanks! Must have been in a hurry while writing that method name ;) But it worked for me also with those typos..
I will now upload a new version, which uses Kross for scripting instead of QScriptEngine. Maybe that helps or at least prints some warnings.

@knilch: Is that your output with the kdebugdialog stuff checked? Then there must be something else preventing the kDebug()-output to be printed. But I don't know what.. - Jan 20 2010
Sorry, most debug messages are missing. Please run "kdebugdialog", type "plasm" in the search field and check plasmoidviewer and libplasma. This enables "KDE-Debug-Messages". You can uncheck everything afterwards. The program should be installed by default, I hope ;)

Then start plasmoidviewer again and you will hopefully see more interesting output.

Thanks! - Jan 18 2010
I think you both use Qt 4.5 with KDE 4.3?
That's the only thing I can think of being the problem. But I have no clue, what exactly the problem could be.. sorry.

Please try getting some output from "plasmoidviewer publictransport". - Jan 18 2010
Ok, the stops all work for me. You should at least get suggestions. That's weird.. Does anyone else have this problem?
It seems like the "db_de.js" file isn't installed or Qt sees some problems with it (but I don't think so, because for me it works). It could be because I'm using Qt 4.6, but I don't see where the problem could be..

The only idea I currently have is that you could reinstall the data engine. It tells you what files get installed. Make sure that "db_de.js" is listed (not only "db_de.xml").
If it's installed, try to run "plasmoidviewer publictransport" from a terminal (eg. Konsole). It should give some more information. Please try to put some letters into the stop field in the config and send me the output in the terminal.
When I have a better idea I'll let you know.

The LED is from the time were there was no stop suggestion. And for some providers there're still no suggestions. I think I will hide the LED for providers with suggestions. - Jan 18 2010
No, that's because the feature list was automatically generated based on the old regular-expression-xmls, but those aren't used anymore for There's now a script that does the parsing.
But I should add something to the script so that the feature list works again, thanks for the hint :)

Ah.. and the LED in the config dialog doesn't get green any longer. Maybe I'll add that again or I just remove it. The LED got green, when the stop "worked", ie. parsable results were received.

Please tell me the stop you're trying. Hm, or some stop that also doesn't work if you don't want to publish your home stop ;) Or does no stop work for you (eg. "Berlin")?

- Jan 18 2010
Did you try it with a version < 0.6 and did that work? Then there must be something wrong in the script, because the data from is now parsed by a script (to make it more flexible and easier to debug).
I tried some different stops in germany, all worked fine for me. Which stop did you try? When I can reproduce the error here I should be able to fix it :) - Jan 17 2010
Seems like the data engine wasn't updated? Either version 0.6.1 of the data engine wasn't installed or not loaded by plasma (kbuildsycoca4 should help.. or restart ;)). So please make sure, you have installed both the data engine and the applet in version 0.6.1.
That should help. If not, write again. Thanks :) - Jan 13 2010
It should build now again, thanks!
It was because of the use of setAssociatedApplicationUrls. Short before uploading I added two more calls to that method... but forgot to include the preprocessor switches, so that it will compile with KDE < ~4.3.80. Sorry.
Maybe writing a plugin for KDevelop that manages such things would save me some time ;) - Jan 12 2010
Great, thanks :) - Jan 09 2010
The bug you discovered comes from the filter method. It's because the maximum number of departures is sent with the request to the provider, while the filter is applied afterwards.. The applet sends a higher number of maximum departures to get enough departures, but sometimes the provider has a "maximum number for the maximum number of departures".. A solution would be to include the filter into the request where possible (I think that would be easier with JavaScript based services like vavrusa is using).

I wrote a comment to vavrusa's plasmoid page. Maybe his fetching algorithm can go into the publictransport data engine (would be great :)). And his plasmoid could co-exist as it's somewhat different, but using that same data engine. Thanks for telling me about his plasmoid, haven't found it until now ;) - Jan 06 2010
I now implemented a new option to set the size for the whole applet (font sizes, icon sizes..). It doesn't allow to set a font size directly, but it's a size factor that increases / decreases font sizes.
It's coming in the next version as a slider in the appearance config page. - Jan 06 2010
I dont't know if works with stuff in playground.. Probably not because playground-stuff is "meant" to have some bugs until it goes somewhere else ;) I don't know where publicTransport should go (I should ask that somewhere.. when I have some time).

But I had a look at your list and implemented some of the items:
- with sometimes it is shown that a train has a delay for more then 24 hours, which is definitely not the case.

I will look into this later.. For now a quick fix should help that disallows delays > 24 hours by subtracting 24 hours. I think that bug arises when it's around 0 o'clock. It's sometimes a bit hard to get the right times together from the HTML pages of the providers.

- It would be great, if it would be possible to ex/include by line number which departures are shown.

That's now implemented :) Including new settings dialog layout, new popup menu items and layout, ...

- It would be great, if it would be possible to monitor more than one stop at once in one view

That's a bit problematic currently because there's some bug with the data engine that causes problems when there is more than one viewer of the data (departures being displayed two times or in the wrong view..). When that's fixed I will start thinking about that again ;)

- It would be great if there could be tabs for different stops/ providers monitored at the same time.

Hm.. isn't this the same as the previous one?

- If there is only one line shown, "minutes" should be replaced with the minutes-sign " ' ".

I'm not sure if everyone would understand that sign (in every country). I could make it manually configurable through the config files. I think this would be a 'micro'-setting which I don't want to add to the config dialog. The info can also show "XX hour(s)", hm.. is there a sign for hours? Maybe the best option would be to automatically replace "minute"/"hour" with "min."/"h.", when the column is smaller than some value.

- It should be possible to adjust the collumns size

That's already possible, you just need to show the header (through the popup menu).

- It should be possibe to adjust the font size too.

The font size is somehow adjustable through KDE's global font size settings. I would say that's enough.. Do you have a use case for that? Maybe an option to display everything "very big" would eliminate the need for that option. "Very big", to use the applet as some big display panel.

- It would be very useful, if it would be possible not only to monitor a stop, but to search for connections and also provide this functionality to Krunner.

You can already search for connections (journeys) from the "home" stop by clicking the icon on the top left of the applet. I added an entry to the popup menu for the next version to make that feature more visible. The feature is still a bit limited, you can only view the next few departures to other stops. I should add a time selection. Providing the functionality to KRunner is a great idea!

- It would be useful, if the widget would provide access to maps of the surroundings (via Google-Maps or Openstreetmap) or even station maps (Deutsche Bahn and may be others offer this).

That's somewhat more complicated, than I currently have time. Maybe later..

- It would be useful, if the widget provided the information about a certain train (stops and when) and allow to monitor a single train and give a notification, if this train is going to be late.

The monitoring could be integrated with the alarm feature (notify when the delay of a departure with an alarm changes). To get the stops of a train will need some more regexp-magic and of course the data must be provided by the HTML-pages. But that would indeed be useful :)

Thanks for those ideas / wishes! Very nice. I will upload an updated version of the applet soon. - Jan 04 2010
Yes :) Here it is:

<regExp><![CDATA[(?:<tr class="[^"]*">\s*<td class="datedt">)([0-9]{1,2})(?::)([0-9]{2})(?:</td><td>[^<]*</td><td class="[^"]*">.*</td><td class="[^"]*">.*</td><td><img src="[^"]*" alt=")([^"]*)(?:" title="[^"]*" />\s*<a href="[^"]*" title="[^\(]*\([^>]*>>\s)([^\)]*)(?:\)"[^>]*>)([^<]*)(?:</a>\s*)(?:<img [^>]*>\s*)?(?:</td>\s*</tr>)]]></regExp>
<infos> [same as before] </infos>

Hopefully the code isn't changed by the BBCode-formatting here. - Nov 04 2009
Ok, fixed ;) Faster than I thought it would take.
There were another problem with the "Notes" column containing an "X" for Prague. But now it works.
I will get the next version ready soon, hopefully. There are currently some other things I need to fix in my development version.
So stay tuned ;) - Nov 02 2009
I tested it and think that I found out what's wrong there. The regular expression didn't match anything for Prague, but the parsed web site had some departures in it. So the regular expression is wrong here. I think it's because there are links to "Timetables in PDF" in the connection column of the departures web site for Prague (maybe they added that after I wrote the regexp or I didn't test Prague..). So the regexp should be less restrictive and allow more stuff in that column. I'll try to fix that later (ASAP ;)).
Thanks for reporting the bug!
- Nov 02 2009
Ah, did the error message come from the plasmoid itself ('s graphical representation)? Maybe it helps if you start the plasmoid with plasmoidviewer like this
> plasmoidviewer publictransport
in a terminal. You then get some more messages in the terminal, maybe something helpful. - Nov 02 2009
without looking at the xml-file with the regexps I can't say what's going wrong. So yes, please send it to me :)
It's very easy to get some errors into the regexps if you're new to it.
I'll try to improve the error messages, once I know where the error was.. And once I find some time for it ;)
Thanks for you're work so far! Great to have a new country/city supported (when it works, hopefully soon). - Nov 02 2009

Plasma 4 Extensions 14 comments

Score 50.0%
Jan 01 2010
yes, I should contact some KDE person to move the data engine out of playground. I have little time currently, too, because of the end of the semester ;)
But I have played a little bit with the script engine stuff and have implemented a new "accessor" type, that uses a script to do the actual parsing (just like you did). It does work for one of the simplest providers now :) Great idea to use scripts here.
So the next step is to move the data engine to kde-review, I think (never done that before). After contacting someone of course. - Jan 07 2010
Hi vavrusa!
I'm the developer of publicTransport and I would also like to combine the power of our both plasmoids :) Or better: Your timetable/journey fetching code with the public transport data engine.
I tried to design publicTransport mostly independent of the method used to fetch the data. I could add another level of abstraction to the timetable accessor classes, if that's needed (haven't looked at your sources for now). Having your fetching algorithm inside the publicTransport-Data engine would be great, I think. And: Both plasmoids could use it. Hm.. Are you already using a data engine?
The RegExp-Code to get departures could also be replaced with JavaScript based services where needed.
What do you think? - Jan 06 2010

Board 165 comments

Score 72.2%
Oct 31 2011
Corrected in 0.15 :) - Dec 05 2009
I think "KFilePlacesView" isn't recognized by KDE 4.2.x, but kfileplacesview.h is. But that file actually isn't needed, only kfileplacesmodel.h (don't know if KFilePlacesModel would work..).
It should now compile again with KDE 4.2. Please test :) - Nov 28 2009
I confused the versions a bit. First I thought 0.14.3 would be the next version. Then I renamed "everything" to 0.14.4, but forgot the directory inside the tarball. But everything is 0.14.4. Well it was, now it's - Nov 27 2009
Here it finally is:

Actually the KDE SC 4.3.75 (note the new terminology ;) SC = Software Compilation) wasn't the problem, but something in the XServer. However after installing fglrx openSuse 11.2 works again for me :) And it screencasts fluently. - Nov 26 2009
Hm, KButtonGroup::id() exists since 4.3. Without that function I can only guess what ID belongs to which button (at least I think so).
But it should work when I add the buttons in QtDesigner in the right order to the KButtonGroup..
For the next version and for KDE < 4.3 id<->button will be static and could easily get wrong. But I will care that I don't accidentally change the ordering of the buttons ;) - Nov 24 2009
Hm.. Exceptions (try.. catch) are disabled, so it won't compile.. I'm currently on openSuse 11.1, here it works.
You can safely remove all lines in that function "inline QDebug &operator <<(QDebug debug, ClueCell *cell)" (src/cells/cluecell.h, line 219) except for the last one beginning with return. (= remove lines 220 - 252)
Or try what the compiler says: "error: exception handling disabled, use -fexceptions to enable". But I don't know where the -fexceptions should go..

The next version won't contain this try..catch stuff. It was just a quick test while debugging ;) - Nov 24 2009

When there aren't any types shown in the filter box (only ", , ") I think it's because the MIME types aren't recognized yet. Running "kbuildsycoca4" should help. Maybe that also helps with the crossword thumb creator. Or restarting KDE. Maybe it had the old crosswordthumbcreator library loaded.

Second point:
When focusing the answer field with a mouse click (after the last character other than ' ') it now sets the cursor position to 0. So you can then start overwriting the answer.

Third point:
There was a small bug with clues without clue cells. Thanks, it's now fixed.

A screencast still isn't ready, because my opensuse 11.2 currently won't load with the current KDE trunk snapshot (4.3.75). So I'm again with KDE 4.3.3 ;) But the screencasting indeed works great now, fluent even with highest video quality.
Hopefully it works again next week with the next trunk snapshot. - Nov 22 2009
Playback is ok for other ogv-files.
I get a little better frame rate when I set high priority to recordmydesktop, only record a small area, set the worst video quality and then fix the ogv-video with kdenlive (there's a transcode profile called "fix ogg theora", that gives some more frames). But the resulting video is only a small and very blurry one, still not fluent.
I will try it again with openSuse 11.2 and stable KDE/Qt builds. Maybe ext4 makes a difference ;)
I also tried radeonhd and fglrx, same bad results. - Oct 30 2009
Maybe you know how to do screencasts right? I tried it but the resulting video played way too fast.. Even when I set the video quality very low and only choose a small area of the screen.
I also tried istanbul without success. - Oct 30 2009
Right that's too many settings menus.. I moved the "change theme" action to the settings menu inside the crossword tab and removed the double settings menu. - Oct 26 2009
Score 50.0%
Jan 30 2013
Score 80.0%
Apr 20 2010

Office Apps
by scribusdocs

Score 72.2%
Aug 23 2009

Full Icon Themes
by III

Score 59.2%
9   Jan 26 2011
Oxygen Refit Black

Full Icon Themes
by downdiagonal

Score 60.5%
9   Jan 26 2011

Plasma 4 Extensions
by tomatz

Score 67.1%
9   Jan 25 2011

Plasma 4 Extensions
by kubdat

Score 58.0%
9   Jan 25 2011