*** 0.3.5 TODO:
+Generic parsing function
+WEP key config input validator
+WEP Keys config
+WEP Selection dialog
+Key setting (iwconfig)
+Add "key off" arguments when connecting to unencrypted netw.
+RadioButtons OPEN / RESTRICTED
+getVal -> if no endstr specified, parse till QString::length()
+getVal -> if no startstr specified, parse from the beginning
+set/improve TAB order for ui files


*** 0.3.6 TODO:
+sensible column widths
+encrypted? icon in netList
+graphical link quality
+find a nice icon for link quality
+add statusbar info if ad-hoc and/or encrypted skipped.
+automatically use WEP key if name matches ESSID (bool autoKey)
+default mode ui (defaultMode)


*** 0.3.7 TODO:
+fix sort order when scanned
+fix wrong device detection if more than 1 present (maybe regexp (^[a-zA-Z]{3,4}\\d$)
+fix: disable 'detect' & 'configure...' button when connecting
+change mode to Managed before scanning
+change quality calculation method.
+add channel column & config (thanks to Michael Long)


*** 0.3.8 TODO:
+make all columns resizable
+'name-essid matching case-sensitive' option
+show frequency if channel not available. (no other adjustments needed)
+reimplement NetListViewItem::width(...)
+proper column width setting taking scrollbars into account
+remove "Auto mode" - causes only problems.
+honor single click (option)
+quit upon successful connection (option)
*** HEY! Now you can connect with just ONE click! ***
+while getting quality, first try to find "Quality:" and calculate if not found, estimate if no noise level reported.
+move WEP stuff in netConnect() to a separate function (getWepKey())
+support for .pid files
+manual (not DHCP) config possibility
+option to run custom command upon connection
+connectionOk() function
+icon

*** 0.3.8a (BUGFIX RELEASE) TODO:
+quality detection: support "Quality=" and "Noise level=" (maybe additional 'int offset' parameter?)
+masterToManaged flag to be on for orinoco_cs driver -> set as default for all cards.
+fix handling of ESSIDs with space
+proper error-handling in runCommand(...)
+install waconfig.kcfg to $KDE/share/config.kcfg/ (sf)
+fix path detection (skip /mnt etc)
+code cleanup: error messages to be called from within runCommand(...)

*** 0.3.9 TODO:
+dhclient support
+terminate process button



*** 0.5.0 TODO:
+hide device combo if only one found
+rewrite device detection (2.6 kernel only)
+path detection on startup. No more manual configuration.
+path detection upon WACommands initialization ( 'init()' function )
+.desktop file: 'Exec=sudo wlassistant'
+remove Ad-Hoc support
+remove Ad-Hoc code
+remove GUI for options:
+	scan upon startup
+	skip ad-hoc
+	skip encrypted
+net params read/write to config framework
+paint "<hidden>" in italics.
+first time connection wizard
+wizard: don't ask if WEP is needed, get it from NetParams (which gets it from selected item in the list view)
+debugging code! (stdout) (std::cout << "ERROR MSG")
+code cleanup: forward declarations ('class') in headers
+support for <hidden> ESSIDs (modify wizard dialog, additional page)
+rewrite runCommand(...) function
+manual DNS setup ( 'setDNS()' function )
+new, detailed description on KDE-Apps.org

*** 0.5.1 TODO:
+add 'wasHiddenEssid' and 'wasWep' booleans as part of NetParams for change monitoring.
+NetParams change monitoring & actions.
+move to i18n(..) strings
+refine ui (as suggested by Stephan Binner)
+dialog: edit connection
+error handling: connecting failed? Ask if the user wishes to review network parameters.
+"Settings Updated." status bar message.
+fix newly hidden essid handling
+try to kill both dhcpcd AND dhclient, regardless of current DHCP client, in case e.g. dhclient is running but wlassistant defaults to dhcpcd when it's available
+Check if radio on and ask if should be turned on if necessary (before scanning).
+Get channel from list, not config.
+column widths still are wrong sometimes.
+change scan results parsing to use QRegExp, adapt to wireless-tools-27 (e.g. always get channel #, etc)
+function to get ESSID of network connected to
+write essid of network connected to in bold letters (new setConnected() function of NetListViewItem, private bool mConnected)
+change connectedNetwork when interface changes.
+dynamic quality updating for connected network.
+revise/rewrite paintCell function, reduce flicker.
+'disconnect' button/option in the context menu (when appropriate)
+option to reconnect to currently connected network.
+cvs repository

*** 0.5.1a TODO:
+fix: don't set network as connected if link quality=0.
+fix column width calculation (last time hopefully. Was using wrong font metrics for connectedItem)
+bring back the 'AP' column.
+fix: tab order in "Edit settings..." dialog.
+remove wlassistant.rc file, update Makefile.am accordingly.
+fix action taken when clicking on connectedItem when its network is not configured.
+create 'itemAction()' function to run config/connect/disconnect/reconnect/etc after single click depending on item's status.

*** 0.5.2 TODO:
+icon marking connected network.
+fix crash on startup/scan.
+reduce flicker when populating netList.
+report 1/2 STAR *only if* link quality is 1+
+workaround to fix problems with some drivers wrongly reporting that interface is connected when it is not.
+connection status monitoring + actions.
+review netReconnect and netDisconnect functions.
+function to check if radio is physically turned off (with a switch on a laptop) if no scan results.
+fix overusing of cache
+'Do not ask again' checkboxes. (Conn lost, reconnect?, Conn failed, review settings?,...)

*** 0.5.2a-c:
+when detecting active connection: ping prints some errors on stdout, not stderr. :| Try to catch them.
+only check for active connection if there was none before scan.

*** 0.5.2d TODO:
+wait 1sec(1.5?) after killing dhcp client to make sure it quits.
+don't ifdown immediately after connection check fails.
+revert default action of connected item to disconnect.

*** 0.5.2e TODO:
+BUG REPORTED: dhclient doesn't get killed when connection fails.
+other fixes

*** 0.5.3 TODO:
+'Connect' button caption change when currentItem is selected.
+Connect the 'connect' button to itemAction().
+get mouse behaviour from KGlobalSettings::singleClick()
+make change of KGlobalSettings::singleClick() immediately apply in wlassistant.
+remove "Honor KDE single click" UI.
+connect signals/slots in wlassistant.cpp, not in the .ui files.
+remove "Honor KDE single click" from kcfg.
+remove 'netReconnect()' function, replacing with 'netConnect()' does the job.
+rework the config gui - replace netList&statusBar with config options (use WidgetStack, 'Settings' toggle-button).
+	gui for 'Quit upon successful connection'
+	gui for "Enable All Messages" option (KMessageBox::enableAllMessages()) ToolTip/WhatsThis: "Enable all messages which have been turned off with the 'Don't Show Again' feature."
+drop 'kconfigdialog.h' dependancy.
+remvoe showCfgDlg()
+reimplement 'close()' to save settings on quit.
+add timeout to dhclient & dhcpcd (not command line args), GUI
+when process running: change 'Close' button to 'Stop'. Pressing it should kill any running process.
+save last used interface in config.
+Formatting in message boxes.
+change button 'close' to 'stop' only if process runs longer than ca 1.5sec.
+change 'Settings' to 'Options' (application options).
+add 'What's This'help & tooltips.
+improve keyboard navigation (accels, tabs etc)

*** 0.5.4 TODO:
-add advanced option to show ALL interfaces, not only ones detected as 'wireless' (do not quit if no wireless ifaces found, so the user has the chance to activate this option. Move device detection from init() to a separate function.
-if connection lost and user wants to reconnect: disconnect and then scan before connecting to check if network is still available.
-make wlassistant usable with cafes (login pages):
-	per-network option not to ping internet
-	show '?' icon instead of '->'
-	modify items 'conected' property to handle 3 states (connected, not connected, unknown)
-	quietly ping in the bg - if internet reached - change '?' to '->', change 'connected' property.

*** 0.5.5 TODO:
-wizard/edit dialog input verification
-function to add line to sudoers: (like '%wifi  ALL=NOPASSWD: /opt/kde/bin/wlassistant')
-add tryTerminate() to process timeout handling

?modify isConnected function to let user know if its an AP problem, not clients.
?txpower setting.

*** 0.5.6 TODO:
-function to convert lease received via DHCP to 'Manual Config' settings.
-	parse /var/state/dhcp/dhclient.leases (dhclient)
-	parse /etc/dhcpc/dhcpcd-<interface>.info (dhcpcd)
-	update NetParams string, so when the user switches to "Manual" all is ready and no user input is needed (most cases).

*** 0.6.0 TODO:
-wlan-ng support
-wpa support

*** 0.7.0 TODO:
-DCOP interface


*** I'm really bored TODO:
-About dialog
-Help


***************************************************************************************
***                                      IDEAS                                      ***
***************************************************************************************

- Keep user actions in a StringList, offer actions based on behavior patterns.

- preferrence system: ( '--auto' parameter)
-	at least 1 network must be known
-	if only 1 known network present - try to connect
-	more than 1 known network present - try to connect to one with highest NetScore, then next, next, etc.

- Replace "Link Quality" with "Reliance" taking NetScore (name?) into consideration.
- NetScore calculation (draft):
-	Selected: +2
-	Connected: +1
-	Connection failed: -1
-	points added only if next highest NetScore is lower by no more that 7pts

+ Do not show interface combo if only one interface found
+- detect paths
+	- pidof, ifconfig, iwconfig, iwlist, dhcpcd/dhclient

+ no UI for path selection
+ wizard with net params config (auto/manual, DNS etc, ESSID if needed) for unknown APs. Returns config string (AP::ESSID::NetScore::<parameters>).
+ NetParams structure
+ save settings to AP (but also store ESSID)
- if more that one AP with same ESSID - use settings for all APs.

- on scanning:
-	if more that one AP with same ESSID - show a single entry

- on connecting: 
+	if AP & ESSID match - connect.
+	if match, but ENCRYPTION setting changed - disable enc/ask to enable.
-	if AP matches, ESSID does not - ask if settings for AP should be used, change ESSID in config
-	if only ESSID matches - ask. 
+	if none match - ask.(show 1st connection wizard)
+	ping to make sure connection ok
-	wait 15s, ping, if ok - recalculate success NetScore

- tray icon menu:
-	<some statistics>
-	-----------------------
-	disconnect (if connected)
-	reconnect (if connected)
-	connect (use preferred)
-       -----------------------
-	connect to -> ...
-	-----------------------
-	quit

- connection monitoring:
+	ping every 10/15/20s (?). if connection down:
-		reconnect (if AP still found)
-		connect to different AP same ESSID (if present)
-		connect to known network with highest NetScore
-		popup main win to select new network if any present, but none known
-		popup error message if no network found. disconnect.

+ RMB on network entry:
+	connect
+	disconnect
+	reconnect
+	edit settings... (if network known)
+	forget settings...


*********************************************************
*** ALWAYS CHANGE VERSION REQUIREMENTS IN UI FILES!!! ***
***  ALWAYS CHANGE VERSION IN PACKAGE INFORMATION!!!  ***
***           ALWAYS CHECK .desktop FILE!!!           ***
*********************************************************