
Changelog of plasma-applet-publictransport

0.10 - Final
- Global CMakeLists.txt to build and install everything in one run
- Fix backgrounds of journey items with a positive/negative rating (they faded to black instead of transparent)
- Fix crash when resizing the widget when not in departure view
- Fix applet collapsing to popup icon in desktop after restart
- Fix double request of departures
- Use custom font also for route stop text items (if too small it uses KGlobalSettings::smallestReadableFont)
- Correct height of departure/journey graphics items (with bigger fonts sometimes a second line wasn't shown)
- Show popup when starting a journey search or showing the journey list (if the applet is in a panel)
- Add a journey menu, used in several places, with an entry to start a new journey search, entries for favorite/recent journeys and an entry to configure those journeys (in a dialog)
- Add journey button to the title of the applet (on the left of the filter button), which shows the new journey menu

0.10 - RC 2
- Fix link errors
- Fix memory leaks
- Fix applet collapsing to popup icon in desktop
- Add the possibility to put the applet into the notification area (systemtray).
- Add monochrome vehicle type icons, used for the popup icon
- The popup icon now visualizes the time until the departure of the currently shown vehicle by fading it in radially like a clock (completely half-transparent => departure in 60 or more minutes, completely opaque => departure is now, 1/2 opaque => departure in 30 minutes, etc.)
- Use of KPixmapCache for vehicle type icons
- Improve drawing performance alot
  - Don't draw a complete background gradient for departure/journey items; draw solid color background(s) and then draw fade out gradients at the left/right
  - Hide route items if the containing departure/journey item isn't expanded
  - Store a pointer to the DepartureModel in RouteStopTextGraphicsItem, to get it's RouteStopFlags (used for drawing)
- Don't rearrange route stop items if the route item isn't visible (not expanded)
- Better layout adjustments for small sizes
- Change applet tooltip according to current departure group in popup icon
- Shorter alarm names, alarm names in notifications
- Nicer alarm background
- Fix color groups and route time display for arrivals

0.10 - RC 1
Highlights: New filter/alarm UI, Context menus for journey/departure route stops, highlight stops, show intermediate departure list, alarms in journey view, colorized departure groups, quick&easy filtering by color groups, show stops in marble using OpenStreetMap, use of QStateMachine

- Replace state flags with a QStateMachine (states for views like departures, journeys, journey search, ...; states for data status like waiting, valid, invalid; states for the network status).
- Add a context menu to route stop items. There are currently four entries: Create a filter for departures via that stop, show an intermediate departure list for that stop, highlight a stop (also highlights departures/arrivals via that stop) and copy stop name to clipboard.
- New context menu entries for journey route stops (copy stop name to clipboard, add/remove an alarm for the journey, ie. the first sub-journey)
- New context menu entries for departure items: "Route Stops", with entries for each route stop (and sub entries which are the same as shown in context menus of route stop items) and "Unhighlight All Stops" (only shown if a stop is currently highighted)
- New filter configuration UI with better space usage
- New alarm configuration UI (almost the same as the filter UI)
- Possible to choose multiple filter configurations per stop (AND combined)
- Remove "Enable Filters" setting, to disable filters, disable all filter configurations
- Connections between filters and stops get now stored with the filter settings (a list of stops affected by the filter, previously the name of the filter was stored with the stop settings)
- Filters get now stored in config groups named "filterConfig_X", not "filterConfig_[NAME]" (the names get now stored inside the filter config groups)
- Group departures by direction automatically (can be disabled in the appearance settings)
- Departure groups are visualized by different background colors (each direction always gets the same group color, colors are used from a list of selected oxygen colors)
- When departure groups are enabled, they are shown in the filter menu, to quickly filter out departures into a specific direction (or to use as a legend for the departure groups)
- Show stops in marble using updated OpenStreetMap data engine (context menu of route items, only shown if the openstreetmap data engine is installed)
- Show time in minutes from the first stop in route stops (and the actual time in it's tooltip)
- Show alarms in journey view (matching the first journey part)
- Show alarm icons in departure and journey view
- Use different icons for special route stops (home stop -> "go-home", origin -> "flag-red", target -> "flag-green", highlighted -> "flag-blue")
- Draw an arrow at the end of the route line in route items
- Ask for a name for new filter configurations
- Move departureinfo.h/.cpp, filter.h/.cpp, filterwidget.h/.cpp and some parts of global.h/.cpp from the applet to libpublictransporthelper (because class FilterSettings gets now use in StopSettingsWidget/StopSettingsDialog, instead of only a QString with the name of the filter configuration)
- New unit tests for the applet
- Don't display too many route stop items (omit some if there's not enough space)
- Show delay information for journeys again (was missing since the porting to QGraphicsWidget)
- Elide too long filter names when shown in the filter button
- Fix departures not being removed and flashing all the time by making DepartureModel::removeLeavingDepartures a slot
- Fix alarm settings writing (the number of alarms was stored per applet, but the alarm settings globally)
- Fix crashes with context menus of deleted route stop items
- Fix intermediate departure list action, didn't work when another intermediate departure list was requested while already in intermediate departure list state

0.10 - Beta 8
- Make leaving departures animate before being removed from the list

0.10 - Beta 6
- Port JourneySearchSuggestionWidget from a proxied QTreeView to a Plasma::ScrollWidget and add a class JourneySearchSuggestionItem, representing a single suggestion.
- Drop unused HtmlDelegate class, JourneySearchSuggestionWidget was the last class using it.
- Add a context menu to intermediate stops in journey route items. Currently contains one entry to search for Journeys to that stop. Can be handy to get some earlier connections to that intermediate stop, so that one has more time to change the vehicle.
- Draw the "public-transport-stop"-icons instead of a simple circles for route stop items (but not for the small intermediate stops).
- Add a QGraphicsDropShadowEffect to RouteStopMarkerGraphicsItem.
- Make padding in TimetableWidget/JourneyWidget smaller and adjust to the size factor defined in the settings dialog.
- New layout for multiple vehicle icons in the popup icon.
- Reduce number of needed preprocessor switches for KDE 4.5 support.

0.10 - Beta 5
- Make TimetableWidget show "from" for arrival lists and "to" for departure lists.
- Make compilable with KDE 4.5 again (tested on fedora 14).

0.10 - Beta 4
- Replaced the QWidget based treeviews used to show the departure/arrival/journey timetables with new QGraphicsWidgets, named TimetableWidget and JourneyTimetableWidget. These graphics widgets are derived from Plasma::ScrollWidget, to enable nice scrolling animations. The TimetableWidget/JourneyTimetableWidget classes offer the same functionality as the previous treeviews, except for headers and header column resizing (is now done automatically, the journey view doesn't use columns now) and moving/sorting (not really needed?). It allows more flexible animations, eg. a custom easing curve for the expand/collapse animation.
- Routes are now drawn as line with markers at the stop positions. For each marker the stop name is drawn rotated to fit multiple stop names (using the smallest readable font as configured in KDEs settings). Uses QPainterPath to draw the text better readable than with QPainter::drawText. This new route item takes much less space than the previous simple route stop list. The end of the exact route (if any) is visualized by adding multiple smaller stop markers after the last exact stop. The route item offers nice animations.
- Journey routes are now also represented by a new nice QGraphicsWidget, showing a vertical timeline.
- The only thing using HtmlDelegate in the applet is now the JourneySearchSuggestionWidget, still needs to be converted to a QGraphicsWidget.
- Dropped PublicTransportTreeView and some functions in the PublicTransport class, which are no longer needed, because of the switch from QWidget to QGraphicsWidget.
- The title of the applet (the name of the used stop) now gets elided if neccessary, allowing smaller applet sizes without painting outside of the applet.
- The icon shown in panels now shows a vehicle icon for the next departure(s) with the minutes until the departure. The transport line string is drawn into the vehicle type SVG for local public transport. The drawing code comes from the GraphicalTimetableLine applet.
- Scrolling the mouse wheel on the icon in a panel cycles through the first few departures and the next alarm departure, if there is one (with nice animations).
- Made the icon showing an alarm departure look consistant with the other new icon appearances.

0.10 - Beta 3
- Fixed mapping of new departures from the data engine to displayed departures in the applet (it didn't compare the target string). This caused filters to be run on one departure, while another one got falsely removed.
- Fixed the duration display for journey searches.
- Changed the filter widgets from IconWidget + Label to ToolButton. This means, that now the text can also be clicked.
- Changed the X-KDE-PluginInfo-Website in the .desktop file to point to the PublicTransport UserBase page.

0.10 - Beta 1
- The filter label now also uses the selected font from the settings.
- The title for the journey search is now correctly set to "From A to B", instead of just "Journeys".
- Removed the flag icons, now using the ones used by the locale settings in systemsettings. This also fixes packaging conflicts with other packages that install icons with the same names.
- Code cleanup: new classes TitleWidget, JourneySearchSuggestionWidget with code that was previously inside the main PublicTransport applet class
- Moved some stuff into a separate library: publictransporthelper. It contains classes that can be used by applets/runners for easy configuration dialog creation. All classes in that new library got d-pointers and are more flexible now.

0.9
- Fixed a crash, that occured sometimes after an update with changed data (eg. a delayed departure no longer being delayed). Cause: Items could be deleted without notifying the model.
- Show which filter is currently active if any. The filter can also be enabled/disabled or changed by clicking the new filter icon.
- Created models for locations and service providers instead of using QStandardItemModels for easier reuse (eg. by the runner) and cleaner code.
- Disabled the use of KCategoryView for the service provider combobox, because it's not really useful as there is the possibility to filter it using the location combobox. And the categorized view causes some problems.
- Added a button in the service provider info dialog to open the service provider in TimetableMate.

0.8.3
- Added KUIT to all i18n calls, more context strings, fixes (title capitalization, had some contexts as strings...)
- Added KUIT to .ui strings. Especially whatsthis-strings are now much easier to read.
- Fixed coloring of keywords in keyword suggestion items for the journey search view.
- BugFix: When reading the settings the first old alarm could be read again although it has been removed.
- BugFix: When no alarm is selected in the alarm settings page the alarm-type and affected-stops-combo boxes weren't set disabled and changing them caused a crash.

0.8.2
- BugFix: The filter job of the worker thread didn't protect the use of a member variable with the mutex. It also marked departures as newly unfiltered also if they shouldn't be visible because of the first departure settings.
- Recently used journey searches are now also suggested when only the stop name matches. Previously the stop name and all other keywords had to match.
- Fixed journey search suggestions to appear on each edit. Previously not all suggestions were added (eg. "30 minutes later") when for example a recently used stop was clicked.
- Fixed stop suggestions in journey search when the search line is emtpy (the stop name wasn't inserted).

0.8.1
- The departure/journey views now show a message if they don't contain any items (like "waiting for departures..."). If filters are enabled and departure data is fetched it shows a hint that filters are enabled.
- Alarms do now blink 5 times when fired (in each affected row).
- The blur effect for the overlay widget is no longer animated if the applet is too big.
- Fixed many (all?) krazy warnings.
- Error messages are no longer shown in popup dialogs but directly inside the departure view and only if the departure list is empty.
- Removed the upper limit (5) of stop settings.
- BugFix: Automatically generated alarms that get directly fired are now also removed from the alarm list.
- BugFix: Fixed a crash when changing the filter configuration while alarms are active.
- BugFix: Fixed possible crash when changing the filter configuration. If an item should be added to the model but already is in it, the model now returns a pointer to the existing item rather than NULL.

0.8
Highlights: Syntax highlighted journey search, easy journey search string "construction" with suggestions, nicer journey search view.

- Added a button to start the journey search to the journey search view.
- Recent journey searches are now also shown in the journey search suggestions view (maximally five). The treeview now also uses the HTML delegate with a transparent background.
- Extended the (plasma-) HTML delgate to draw nice focus backgrounds.
- Added items to the journey search suggestions view to add/remove keywords to/from the journey search line, eg. add "in 5/15/30 minutes" / "tomorrow at 6:00" or to change them, eg. "30/60 minutes later/earlier".
- Hover effect for the departure/journey view and the journey search suggestion view.
- Fadeout for the journey search line (left and right).
- Clear button for the journey search line, without letting the cursor go under the clear button.
- Descriptions for journey search keywords (shown in the add/remove items).
- New journey search syntax highlighter.
- New line edit derived from KLineEdit, that uses the journey search syntax highlighter and draws highlighted text using QTextDocument.
- Tooltip not showing on desktop or when the popup is shown.
- Now using KInputDialog to get names for filter configurations, haven't found that class earlier.
- Less memory consumption: All widgets were created at startup, also widgets for eg. searching for journeys. They are now created when needed and deleted afterwards.
- Better fading between views, using a single animation object, that fades out a pixmap of the old appearance.
- Sorting by arrival and duration now works as expected for the journey view.
- Better column resizing behavior, to avoid having a horizontal scrollbar shown (by adjusting the size of the last column).
- Better journey rating: It's computed by duration (75%) and needed changes (25%) and has some special cases. The colors are now more visible (smaller fade out areas).
- BugFix: Correct layout at startup. Previously the layout was a bit wrong until the first departures were shown.
- Fixed install.sh.

0.8 Beta 1
Highlights: Alarm settings page, recurring alarms, journey rating by duration, much faster updates (by using custom models and a worker thread), better error messages.

- New settings page for alarms: Alarms can be defined using a filter, all departures that match the filter automatically get an alarm. Recurring alarms are now also possible, others get deleted once they're fired. Alarms can still be used as before using the context menu, which now generates a one time alarm filter. Generated alarms can be removed using the context menu as long as the alarm doesn't get changed. Alarms won't get lost anymore on logout.
- New filter types for the alarm filter: Filter by departure time and by day of week. So you can now tell the applet to create an alarm for specific departures, eg. line 6, every workday at 6:00.
- Worker thread for reading data from the data engine, filtering departures and checking for alarms. Previously those stuff could take a long time when very many departures are displayed (I measured 3 seconds for 100 departures for each update, but updates are now also much faster, because departures are now only updated when they have changed).
- The applet won't show more departures than set in the settings, but the data engine now requests as much departures as possible. With enabled filters the chances are now higher to reach the maximum departure count.
- New custom model for departures. It uses a timer which is aligned to minute. Each full minute the remaining time values are updated (previously everything was updated), old departures are removed and the next alarm is checked (previously one QTimer for each alarm). New departures are correctly sorted. Departures/Journeys are accessible through a uint hash value, so finding an item in the model is now much faster.
- Journeys now get rated, currently only by it's duration. The shortest journeys get a green background, the longest get a red one (at least with the default KDE color scheme ;)).
- The info column of the journey view now shows the duration and the needed changes. The start and target stop names are now displayed in the title.
- More meaningful error messages are now displayed if eg. the server isn't available. An ok button can be pressed to retry downloading. Checks network status using the "network" data engine.
- The route item of departures is now automatically expanded.
- Obsolete AlarmTimer class removed.
- Seperate class for parsing the journey search string.
- Put OverlayWidget into a seperate file.
- Moved the custom QTreeView and QHeaderView subclasses to a seperate file.
- For unknown vehicle types the icon from the settings is now also shown in the departure list.
- BugFix: The title label's font size didn't change when the size factor was changed in the settings.
- The indentation in the departure view is now also affected by size factor changes.
- BugFix: When changing the first departure setting to "at custom time" the input field wasn't enabled.
- Fixed text color of route itmes, they were always dark gray, hardly readable in dark themes.
- Fixed not working "Filter Uses" tab. Stop settings got mapped to the wrong combo boxes to change their filter configuration.
- For KDE 4.3 the KCategoryView now isn't used for the service provider model, because that had problems.
- Moved ~2000 lines of code out of publictransport.cpp.

0.7
- Better line breaking for the departure column and less unneeded "regexp'ing from/to html".
- Alternating row colors for the departure view with a gradient (one brush for a departure item and all it's children).
- For departures with an alarm a special background is now drawn again, but this time also for all children.
- The first column can no longer be moved and other columns can no longer be moved to visual index 0. Otherwise the child items aren't spanned over the whole row (QTreeView currently only allows the first column to be spanned over all columns).
- Changed the background hint back from TranslucentBackground to StandardBackground.
- The text color for delayed departures or departures on schedule is now the themes text color, tinted to red/green. Previously it just used red/green/darkred/darkgreen, which wasn't working good with all themes.
- Less confusing departure time display for delayed departures: Display predicted departure (scheduled departure + delay) and show delay in format "(+X)" if any. Previously it showed this: "[predicted-departure] Minutes + [delay] Minutes". This also removes the doubled "Minutes" text.
- BugFix: When changing the number of lines per row the result wasn't always directly visible, because the size hints of the items aren't always updated. Now the complete model is rebuild with the new lines per row settings (without requesting data again from the data engine).
- BugFix: Newly added stop settings had bad defaults for settings in the details of the stop settings dialog (alarm time, time of first departure, ...).
- BugFix: The feature list of the current service provider wasn't updated, when the current stop was changed. Therefore for example "Search for Journeys..." could show up in the context menu although it's not supported by the service provider.
- BugFix: The "action buttons" overlay showed a button to display arrivals even if they aren't supported by the service provider.

0.7 Beta 5
- The location/service provider combo boxes now use a not plasma themed (HTML-) delegate.
- The service provider combo box now uses KCategorizedView to display the providers categorized by location.
- The departure view now doesn't draw frames for each departure. Instead it draws lines between them. Previously the drawing didn't work well with some themes and when columns were moved.
- The background of the applet is now more transparent. The departure (tree-) view has no background anymore. For light themes now halos are drawn instead of shadows.
- New appearance config option: Draw shadows or not.
- Better fade out rect calculation, removed right margin for items in the departure view.
- The header view now looks more like plasma.
- The departure view now fades out on bottom and (if the header is hidden) on top (by overriding drawRow() of QTreeView).
- Nicer context menu with separators and a modified "run associated application"-action with the appropriate browser icon.
- The "Update Timetable" action now updates the journey view if it's currently shown (not the depature view).
- Instead of saving the header section positions and sizes in seperate config keys the whole header state is now stored in one key (using saveState(), restoreState()).
- Features of service providers are now also translated in the combo box.
- BugFix: Showing/hiding the header when a journey list is shown now doesn't switch to departure view.
- BugFix: "Duration" and "Changes" items in journey view were deleted on update, "Pricing" got duplicated with each update.
- BugFix: The route item in journey view got expanded with each update (not only when it's added to the list).
- Fixed a possible crash on startup.
- Code cleanups.

0.7 Beta 4
- Stops and filters are now shared between all publicTransport applets. Old non-globally stored settings will be moved to the global config.
- Made the "First Departure" and "Alarm Time" settings settable independently for each stop and moved them into the details of the stop settings dialog.
- Show "Switch current stop" action only if there is more than one stop setting.
- Show "Show Arrivals" action only if that's supported by the service provider.
- BugFix: The "Show Arrival list" radio button in the settings dialog was always disabled.
- New Filter: Filter by intermediate stops (via). This can be used for example instead of multiple target filters, if you want to only show departures in one direction. Then the target column can be hidden without showing ambigous information.
- BugFix: Filter variants were overwritten with a random variant when the filter was opened.
- Column sizes and positions are now stored on exit.
- The courtesy label now gets broken into two lines if the applet is too slim. The applet's minimal width is then set so that the label fits into it. Previously the label could exceed the size of the applet (and with it all other controls, eg. the departure view).
- BugFix: When showing/hiding the header or the target column with the context menu, the settings weren't saved.
- BugFix: The hide column target was only stored if it wasn't changed.

0.7 Beta 3
- Fixed storing of filter configurations with only one filter and only one constraint.
- Fixed the default constraint for new vehicle type filters to have "Unknown" checked. Previously there were no checked item, which could confuse users, because the combobox doesn't allow that all items get unchecked.
- Changed the "Switch Filter Configuration" context menu item. It's now named "Filter" and contains a checkbox to enable/disable filters, the filter configurations are separated by a title item.
- Added an option to enable/disable all filters, therefore the ShowAll filter action is now removed.
- Added a new tab to the filter settings page, which lists all stop settings and the used filter configurations to quickly change them.
- Fixed journey view: all results were written into one item. Cause: The hash wasn't generated for journey items, therefore an empty string was used as hash for all journey items.
- Added a what's this text to the stop list of the stop config dialog and changed the labels of additional stops from "Additional Stop X" to "Combined Stop X".

0.7 Beta 2
- Fixed storing of the selected city (for service providers requiring a city value).
- Enabled word wrap for the stop settings overview.
- Saved some lines of code by putting some code of the update departure/journey item method into another method.
- Fixed "first departure at custom time" mode: It filtered out items before the current time instead of filtering them out if they're before the custom time.
- The stop settings dialog now doesn't allow to accept empty stop names. It is now also better in setting widget values from incomplete stop settings.
- Replaced the "Find Stops Near You..." button in the stop settings dialog with a KDialog user button and relabled it to "Nearby Stops...". That should make it clear to the user that that may change all values in the dialog, not only the stop name.
- The stop settings dialog now uses a details widget, which contains the filter configuration selector and the button to install additional service providers. The header labels are removed to make the dialog even smaller ;)
- Fixed a bug with the dynamic widget list widget.
- Fixed a bug that prevented the notification of errors in the data engine (mixed up two parameters..).
- Code cleanups.
- Changed the names of the service providers to the companies behind.
- Fixed the sorting of service providers (international always at the end).
- BugFix: Don't try to select the default service provider if "Show All Service Providers" is selected. Previously this selected a title element = no valid service provider. Now it just stays at the last selected service provider.

0.7 Beta 1
- Revamped stop selection config, more like the weather applet with stop settings in a separate dialog. Can now contain multiple stop lists. The user can then switch between those stop lists and all departures for the stops in the current list are combined. In other words: publicTransport now supports switching between multiple stops AND combining departures of near stops.
- Different filter config for each stop ('default' by default ;)). Changing the filter config in the filter config page now doesn't change the currently used filter config, but opens it for editing. No need to save filter configs, they're now saved by accepting the config dialog.
- Revamped filter config, new filters, easier setup, more flexible.
- Switching between multiple stops is now done through the main applets context menu entry "Switch Current Stop", it shows a submenu with radio items for all defined stop settings.
- New classes for settings that replace the old PublicTransportSettings class, which needed a pointer to the applet and was crowded. Those new classes are: Settings (to store settings in), SettingsIO (static methods for reading/writing Settings), SettingsUiManager (manages the config dialog), StopFinder (searches near stops using OSM, validates them with the publicTransport engine).
- Moved context menu items which aren't contextual for departure/arrival items away from the departure view's context menu to the main applet's context menu.
- The size slider in the appearance config page now looks like the one of the folder view applet.
- All stop names from openstreetmap are now send to the service provider to find a matching stop name.
- Service providers are now sorted by their names (were previously sorted by country code).
- The config dialog now uses a QSortFilterProxyModel to filter the service provider model (only show items for the currently selected location). This way the service provider model doesn't need to be reconstructed each time the location changes.
- Created a base class for widgets that can dynamically add/remove child widgets and provides add/remove buttons. That class is used for the stop settings overview, in the stop settings dialog and in the filter settings (here it has two levels: multiple filters can contain multiple constraints).
- Created a subclass of KComboBox: CheckComboBox. When no or only one item is checked it is displayed normally. When multiple items are checked all icons of those items are painted and a "checked count / total count" text. It also elides icons if they don't fit into the combo box. It's used for the filter by vehicle type.
- Fixed install with custom prefix for /accessorInfos (dataEngine) and /kbflags (applet).
- BugFix: The currently used stops weren't set when opening the config dialog again.
- BugFix: Updating departure items took too much CPU.
- BugFix: The settings dialog now uses only one HtmlDelegate to paint the items of the locations/service providers comboboxes.

0.6.10
- The applet now uses a new data engine (from me ;), optional) "openstreetmap" (also in playground in KDEs SVN), to get stop names near the user. The geolocation data engine is used to get values for where the user is (latitude, longitude). Initial values can be set this way (country, default accessor, city/stop) when adding another publictransport applet. There's also a new button to automatically fill in all values in the stop selection page (a dialog box is shown to choose a stop). Could be useful when you're on a journey and want to set the stop to the currently nearest stop. The new stop name is then checked at the service provider and the completer pops up (if only the city is missing it is added to the stop name in one if these ways: "stop city", "stop, city" or "city stop"). If the accuracy of the user's position is low (eg. with IP based geolocation), a larger area is searched for stop names. The data engine reports openstreetmap data while downloading.
- When changing the service provider, the stop autocompleter now pops up with stop names from the new service provider. This should make sure, that the user doesn't just change the service provider and expect the stop name to be still valid.
- Nicer icons: They're only using oxygen colors now.
- Fixed license (COPYING files)
- BugFix: Finished alarm timers crashed the applet.

0.6.9
- Targets/Origins can now be filtered using wildcards/regular expressions.
- The old RegExp-Accessors (without script file) can now also parse stop weights.
- BugFix: Stop suggestions didn't work for de_fahrplaner. It's now using another url for stop suggestions, like de_db (same system), with stop weights.
- BugFix: sk_imhd didn't work because the web site has changed the time format from "h.mm" to "hh:mm". The time parsing is now more flexible and tries other time formats if the one specified in the script doesn't work.

0.6.8
- Moved the credits label to the bottom (like in the weather applet). It's now also translatable.
- Better title layout (stop names), especially with multiple or long stop names.
- Better image quality when the applet is rotated.
- Sub-items in the departure/arrival-treeview can now be expanded/collapsed with a single/double click on the whole item (currently only useful for the route information item).
- Changed the advanced config page: The update timeout option is gone, timeouts are managed by the data engine; Better layout.
- Removed the layout hack for the info label that is now on the bottom of the applet.
- Less CPU usage when updating the timetable data in the applet. A hash is created and stored for each new timetable item to quickly find it in the model.
- BugFix: The tooltip didn't show the next departure of all currently activated stops.
- BugFix: Showing only results of the nth stop didn't work for n > 0 (all but the first stop).
- BugFix: When automatic updates are disabled the shown departures/journeys are now updated every minute based on the available timetable data (instead of requesting new data). Previously there were no updates at all (without auto updates) and the durations until departure weren't updated.
- BugFix: Fixed the main layout of the applet, it expanded over the size of the applet after some time.
- BugFix: The departure/arrival list is now trimmed to maximally contain "maximum departures" items again. This now also works for multiple stops.
- BugFix: The info label didn't show the latest update time when multiple stops were used. It just showed the last update time of the stop for that results went in from the data engine at last.
- BugFix: Fixed the used home stop for journey searches to be the first in the list of stops.

0.6.7
- BugFix: The applet now stores departures seperately for each stop. Previously only one departure list was used for all stops, old departures weren't cleared when new data arrived and the list of departures grew.
- The credit tooltip now isn't shown when no credit info is given in the accessor info xml (<credit> tag). The <credit> tag should only be included in accessor info xmls if the service provider has permitted it's use in publicTransport.
- Additional information is now shown/hidden with single/double click depending on KDEs global settings.

0.6.6
New features: Multiple stops in one applet

- Multiple stops can now be used in a single applet. It shows the departures/arrivals for all stops or just for one of them at a time. The currently shown stop(s) can be switched by clicking the icon in the top-left. New stops can easily be added with an unobtrusive tool button. All stop edit fields have autocompletion.
- Fixed another memory leak in the applet (not deleted widgets, when not currently in a layout).

0.6.5
- Fixed memory leaks in the applet:
    - The HtmlDelegate used for the timetable TreeView wasn't deleted.
    - The models for the timetable data in the applet (departures/arrivals and journeys) weren't deleted.
    - AlarmTimer objects weren't always deleted.
    - The HtmlDelegate::paint() method created new Plasma::FrameSvg objects in each call, without deleting them.
    - PublicTransportSettings::m_dataSourceTester wasn't deleted.
    - Some widgets weren't deleted.
    - Some context menu actions weren't deleted.

- Fixed a compile issue with KDE 4.3.

0.6.4
New features: Action buttons shown on click on the top-left icon, more credit infos.

- Clicking the icon on the top-left of the applet now shows some action buttons and blurs the other widgets in the applet (for Qt < 4.6 there's no blur, but a semi-transparent background-colored overlay). The actions are currently: Search journeys and switch beween departures/arrivals (when journeys are shown it's go back to the departure/arrival list).
- Added some animations (fading between the different views).
- The info label now doesn't fade out on the right (setting word wrap to true, so that Plasma doesn't fade the text out on the right, manually setting the label's size fixed to it's size hint, because with QSizePolicy::Maximum and word wrap on and HTML formatted text in it, it's size gets too big).
- The default font size of the info label is now set to KGlobalSettings::smallestReadableFont().
- More credit information is now shown as a tooltip of the info label (top-right corner of the applet).

0.6.3
New features: Filter Configurations; Recent journey searches; KCompletion for stop name completion.

- Added a link to the used script file to the accessor info dialog.
- Recent journey searches are now stored and can be accessed via a tool button in the journey search view.
- Added "Filter Configurations". There can be multiple filter configurations, each containing another set of values for the filter settings (filtered vehicle types / lines / targets). Filter configurations can be configured in the config dialog. They can also be switched with the context menu.
- Journey results are now closed when the popup is shown/hidden.
- Improved completion using KCompletion manually (should write something like a KSyntaxCompletion).
- The link to the service provider home page in the top right edge of the applet does now work (by preventing plasma from filtering mouse press events to drag the applet, unregisterAsDragHandle() doesn't work for labels somehow..). The link now uses the url in the <url> tag of the accessor info xml, instead of the <shortUrl>, which is used as text for the link.
- Adjusted the layout of the applets title line, so that the info label on the right doesn't grow larger than needed. The title label that displays the current stop name doesn't get wrapped needlessly now.
- KCompletion for the stop field in the settings dialog (with stop weights).
- Removed the "journey to / from home stop" config option from the config dialog. This can be selected by using different keywords in the journey search line ("to" / "from").
- Translation fixes.
- Some code cleanup / fixes.

0.6.2
- The route information item in journey mode is now automatically expanded (but the journey items still need to get expanded manually, ie. "Show Additional Information").
- Added dates to the departure/arrival-columns if it's not today. It uses "tomorrow" or the weekday names if the departure/arrival is in <= 6 days.
- Now using KLocale::prettyFormatDuration() for duration formatting.
- Changed the journey search: The (no-plasma-widget) date/time input is removed, the date and/or time can now be given in the journey search line. It uses a special syntax after the stop name: "at", followed by the time and/or date or "in X min(s)/minute(s)". Before the "at" there can be "arr(iving)" or "dep(arting)" to search for journeys arriving/departing at the given time. You can also use "today", "tommorow" and "now". Before the stop name there can be either "from" or "to" or nothing (equals "to"), to get journeys from or to the given stop. There's also some autocompletion for this syntax and an explaining tooltip. It's also localizable.
- You can now press the Up/Down keys when the journey search line is focused to select another suggested stop.
- When journey searches aren't supported by the current service provider, the applet now shows an info message, when the user tries to search for journeys. Previously it just found nothing.

0.6:
New features: Using associated application url (KDE 4.4).

- The applet now sets the url that was used to request the latest timetable from the provider as associated application url (new in KDE 4.4 and only used when compiled with KDE 4.4). This means that you can just click the (new) button and your default browser opens the timetable that's currently shown in the applet.
- Added a new "vehicle type": Feet (by feet). This is used by some providers when searching for journeys. A new icon is also added.
- The sorting of stop suggestions from providers is now used as is. Previously the sorting was messed up (because the stops where only stored in a QHash as keys with it's IDs as values).

0.5.5:
New features: Change the size of the applet (font/icon sizes), initial GHNS support, filter by line, better context menu, date and time input for journey search.

- Added GHNS-support. A repository has been created at newstuff.kde.org (thanks to Josef Spillner). There is a new popup menu button in the config dialog. You can download (accessor info xmls for) new service providers or install them from a local file. Maybe I can add an upload-function, otherwise new entries can be sent to me, so that I can add them to the newstuff-repository. Unfortunatly the download doesn't work as expected for now and I doesn't know what's wrong..
- Added binary translations for germany to the source archive. Will be installed with the applet.
- Added the possibility to filter by lines (in the same way as with directions, including context menu entries).
- Better layout for the context menu, filter entries are now grouped in two submenu. One to add filters and one to remove filters.
- Added a popup menu entry to switch to the journey search mode to make this feature more visible to users. Previously it was only accessible by clicking the icon on the top left of the applet.
- Added date and time input to the journey search.
- Added an option to the appearance config page to set a global size factor for the applet (using a slider). This option increases / decreases the font and icon sizes. This way you can now use the applet as a big display panel on the whole screen :) Or you can make the applet very very small if you want. I also added bigger versions of the vehicle type icons.
- Now using standard icon installation method (kde4_install_icons in cmake). You now have to take care of the installation prefix, so use "cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ." instead of just "cmake ." (see README). This way it also works with other prefixes than "/usr" and all icons are installed with one command.

0.5.4:
Bugfix-release.

Fixes:
    - Added a signal-slot-connection in qt designer to enable the QTimeEdit for a custom first departure time, when the accompanying radio button is checked.
    - Fixed strings overlapping the lower border in the departure / arrival list for some fonts. For example "DejaVu Sans" now works better with two lines per row.
    - In the location combobox in the config dialog there is now an item at the bottom, showing all errornous accessor info XMLs. Previously it just showed a test error message with no connection to the data engine.

0.5.3
Bugfix-release.

Fixes:
    - Fixed tooltip text to use "arrival at" instead of "departure from" when an arrival board is shown.
    - Fixed city selection when opening the config dialog.
    - Added a stop validity check when the city changes (for correct LED display).
    - Fixed the link text for the "data by"-link in the title of the applet (was wrong for service providers with a seperate city value).
    - Added a handler for themeChanged signals, which sets all colors, fonts and svgs of the new plasma theme.
    - Fixed the text color of items in the locations- and service providers-combobox, now using plasma theme- / global KDE-colors.
    - Fixed the frame svg that is drawn as background for each departure / arrival and in the config comboboxes (location and service provider). It now only uses "widgets/frame" when it's available in the current theme (currently it's only the air theme I think). Otherwise it uses "widgets/tooltip".

0.5.2
New vehicle types: Metro, trolley bus, ferry, plane.
Simpler configuration.

- Added vehicle type "ferry" with icon and enabled ferry-data on de_db.
- Added vehicle type "plane" with icon and added an accesor info xml for flightstats.com (with stop autocompletion, delay, journey news, ..)
- Added vehicle type "metro" and "trolleybus" (with icons)
- Added filters for the new vehicle types, unknown vehicle types can now also be hidden.
- Changed the config dialog again: Theres now a location field ("international", "germany", "austria", ...), to filter the available service providers. On first start the global KDE locale country is used. Some settings are moved to an advanced section in a tab view.
- Added kbflags-icons (copied from translatoid) for the new location field (somehow there are no default KDE flag icons?).

Fixes:
    - The city list is now sorted in the config dialog combo box for city input (only for service providers that need a seperate city input).
    - Fixed an error with stop autocompletion. It showed always all downloaded stop names, that are stored for stop name to stop id conversion. Now it shows only the suggestions that has been downloaded for the last given stop name. So it's now more usable.
    - The journey data source is now disconnected from the data engine when the user returns to the departure / arrival view.

0.5.1
Fixes:
    - Fixed the tab order in the config dialogs.

0.5
- Added APIDOX documentation
- Changed "Filter out trams" to "Hide trams" (also for other vehicle types)
- Changed the layout of the configuration dialog. The time of the first departure can now be set either relative to the current time or to a custom time. In the "accessor info"-dialog there is now a link to the source XML file of the accessor.

Fixes:
    - Added missing icon files to the CMakeLists.txt of the "publictransport-icons"-directory. Train icons were missing (and "vehicletype-sbahn" was my old name for "vehicletype-train-interurban").
    - Fixed titel capitalization in the config dialogs (thanks to Panagiotis Papadopoulos)

0.4.8
- Added a journey search mode, where you can search for journeys from or to your "home stop". The accessors in the data engine can now have a new regExp for parsing journey sites. The db.de-accessor parses departures, arrivals, used types of vehicles, needed changes and pricing. The sbb.ch-accessor also supports this new feature (sbb.ch is very similiar to db.de).
- The journey search input has autocompletion. An autocompletion list is shown in the whole applet when typing a new target stop.
- Added an option to hide the header of the tree view or just the target / origin column. This can be useful to create a minimalistic design or if the applet has little space.
- Changed the design of the title, containing the stop name, last updated and a link to the service provider. New is an icon on the left.
- The new icon in the top left corner of the applet is clickable, to change between departure/arrival list and journey search / journey list. The icon also indicates the status of data receiving and gets painted disabled when there was an error.
- The predicted departure / arrival (with delay added) time is now shown in the departure / arrival column. It's tinted red, if it's delayed (green, if on schedule; default color, if no information is available). The original departure / arrival time is shown in the additional information.
- Changed the sub-items in the tree view to span the whole row.
- The font family can now be changed.
- Seperated all settings related code from the applet class.
- Added state flags to the applet, to make it easier to keep track of the applets current state (Valid data received? Data requested? What is currently shown in the applet (departure/arrival list, journey search, journey list)? Is the config dialog shown?). Methods are called when states get set or unset.

Fixes:
    - Fixed "resize to contents" of the columns by putting the html-formatted data into an extra data role and setting the items text to plain text.
    - The "busy widget" is now shown when data was requested until an answer comes in.

0.4.7
- Added a "Show all vehicle types" context menu entry. It's only shown if there are filtered vehicle types.
- Added AUTHORS and INSTALL files, changed README files

Fixes:
    - "Applet needs config"-message isn't shown anymore when there are downloaded departures / arrivals and then a parsing error occured (most probably because of a lost network connection).
    - The "popup-icon-information" about the next alarm is now also displayed if there is an inactive (already fired) alarm first.
    - The model of the tree view is now updated without network connection (so remaining minutes get updated and old departures / arrivals are filtered out).
    - The service provider link is now displayed again (wasn't in 0.4.6).
    - Fixed a crash in geometryChanged()

0.4.6
- Added config options for "time of first departure" and "maximum number of departures". You may want to set the time of the first departure to the time you need to walk to the stop.
- Added a context menu for the treeview. Items for setting/removing alarms, adding/removing targets to/from the filter, hide by vehicle type, expand/collapse items. With this menu it's much easier to change the filter settings and you don't have to write the targets / origins exactly as they appear in the tree view.
- Added alarms, can be set with a new "set/remove alarm for departure" context menu. The alarm is shown using KNotification (couldn't get the dbus method 'scheduleMessage()' of kalarm to work, I'm just getting false as result). It's also possible to change the time when the alarm is fired in the config dialog (in minutes before the departure).
- The service provider combo box now also uses the delegate for html text that is used by the main tree view. For each service provider it's features are also displayed.
- Added sorting and group titles for countries to the service provider combo box
- Added Plasma::FrameSvg drawing to the html delegate.
- Added "What's This" entries to the config dialog.
- Added possibility to change between departures and arrivals (config options only shown if supported by service provider).
- Added icon in the tree view for departures / arrivals containing journey news.
- Further shortened the remaining time string. If the departure/arrival is "on schedule" the departure time painted in dark green.
- If an alarm is pending, the popup icon of the applet displays in how many minutes the next alarm will be fired
- The departure / arrival list now isn't cleared, when the document can't be downloaded or the downloaded document can't be parsed. Departures / arrivals in the past get filtered out. So you can set the maximum number of departures high to have departures displayed for a longer time without network connection.
- Changed "direction" to "target" / "origin".
- Code cleanups.

Fixes:
    - Sorting now includes delays.
    - Delayed departures are now displayed until the predicted departure time (=departure+delay) has passed.
    - Departure items can now be expanded/collapsed with a double click anywhere in a row.
    - The moving buttons of the train type filter selector are now enabled if an item is selected.

0.4.5
- Parse and use stop ID when available instead of stop name (eliminates some ambiguities of stop names)
- Wrote a delegate to paint html-text in the treeview, added the possibility to change the lines per row, used code from the tasks plasmoid for drawing the text with fading out lines and text / icon shadow (theres a little problem with the fading out lines, I don't know how to get QTextDocument to make the last text line infinitly long, so that it can fade out. But I have some little workarounds)
- Delays are now colored red using the new html delegate
- The departure list is now updated instead of clearing and newly filling it each time. Old departures get removed, already existing ones get updated and new ones are added. This way expanded items stay expanded when updating.
- Improved the automatic column resizing
- Added an info dialog for the service providers, displaying their name and version, author, url, description and a feature list.
- Now using the favicons-dataengine to get favicons of the service providers when available
- Added other train icons

- Fixes:
    - Added recheck of the stop name when the service provider changes (for correct led)
    - Wrong green led in config dialog
    - The tooltip now shows the first not filtered departure (previously it showed filtered departures)

0.4.4
- Made strings for remaining minutes shorter
- Changed the header-resizing of the tree view. Columns "line" and "departure" stay as set by the user, "direction" will shrink/grow as needed.
- Placed a link to the service provider in the plasmoid
- Changed the UI for filtering vehicle types to use KActionSelector instead of many checkboxes

- Fixes:
    - Tree view is no longer editable.

0.4.3   (19.06.2009)
- Added filtering possibilities for subways/trains
- Fixed filtering by line, so that trains with high numbers (e.g. "RE 28324") are not filtered. I restricted filtering by line to trams/buses/subways/interurban trains (max line number is 999).
- Added initial delay/"journey news" and platform parsing for db.de. You can see this info by double clicking on a row in the TreeView. The platform should be shown where available. The delays may show up correctly.. Need to test that (and need to find delays to test). At least it parses "on schedule"/"no info available" correctly.

0.4.2   (18.06.2009)
- Added icons for vehicle types
- Added a CMakeList.txt in the icons folder in the sources archive. It will install the icons needed by the plasmoid. There is also a README.
- Added the possibility to only have one input field for accessors (not city and stop but one field containing both). For some accessors there is now only one field.
- Added a KLed to the config dialog that shines green when the entered stop is valid (so you will get a departure board)
- The data origin is now displayed in the plasmoid
- Added COPYING files containing the GPL license

0.4.1   (17.06.2009)
- Fixed the text color in the TreeView to use Plasma::Theme::TextColor

0.4   (17.06.2009)
- Now using a TreeView instead of an HTML-label. You can sort it as you want by clicking the headers and rearrange the columns by dragging the headers.
- When a stop name is ambigous the data engine parses the possible stop names. The applet uses these for autocompletion of the stop field in the config dialog. (Currently only for db.de)

0.3.5   (16.06.2009)
- Readded filters (when creating the data engine I didn't port all functionality, and then forgot to do so.. until now)
- Improved color handling (now using plasma-theme-colors), no more "extra background-rects"

0.3   (12.06.2009)
- The plasmoid now uses a newly created data engine.
- Added support for "Rhein-Neckar"-region (by Martin Gräßlin), bvg.de (Berlin), imhd.sk (Bratislava in Slovakia)

0.2.2   (05.06.2009)
- Fixed an issue with the popup, the timetable was very small in the popup
- Fixed an issue with fahrplaner.de, I had some wrong characters in the URL

0.2.1   (05.06.2009)
- Added support for vvs.de for Stuttgart and surroundings
- Improved the tooltip (now it shows the next departure)
- Made the applet draggable by clicking on the timetable (found registerAsDragHandle)
- The text is no longer drawn outside of the applet if it's too big
- Improved the look (v-align on top, transparent alternating row backgrounds)

0.2   (04.06.2009)
- Wrote a new class "TimetableAccessor" which can be derived to add support for another site / server.
- Now I have two such accessors: One for "Niedersachen, Bremen" (through fahrplaner.de) and one for "Rhein-Main" (rmv.de).
- On rmv.de I found a Yahoo-Widget and could read it's source code. Great :) The data from the server is in XML format (which makes it smaller and easier to parse).

0.1   (03.06.2009)
- Initial version, works for Niedersachsen/Bremen.
