*** 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 TDEGlobalSettings::singleClick()
+make change of TDEGlobalSettings::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 'tdeconfigdialog.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:
+create WATools
+create int WATools::quality(iface)
+create char* WATools::devices() [preferred]
+function to get gateway address from 'route'
+make wlassistant usable with cafes (login pages):
+	if ping_gateway ok: isConnected=true, isInternet=false.
+	show grayed out connectedIcon.
+	add 'isInternet' NetListViewItem property - set to 'true' when google reached.
+	quietly ping in the bg - if internet reached -> isInternet=true -> redraw change '?' to '->', change
+rewrite function to get gateway address to parse DHCP client files, so 'route' output is the last resort. (fast VS very slow).
+detect if connected AFTER scanning and showing network list. Otherwise it takes too long before something shows up.
+add paths to DHCP files with lease info to WAConfig, so user can modify them by hand-editing config file when necessary.
+create WATools::ap, WATools::ifname, WATools::setIfname, WATools::txpower
+review 'timerConnectionCheck' occurences. Make it work regardless of connectedItem presence (to detect if connected from an outside app)
+change QTimer::singleShot(...,..., SLOT(checkConnectionStatus()) ) to an timer object so it can be stopped at scan/disconnect -> this fixes 'wlassistant crashes when pressing 'scan' a lot' bug.
+set config groups
+create README with usage hints
+change 'restricted' to 'shared key'
+change 'open' to 'open system'
+change 'connect from selected network' to 'connect to connected network'
+add Portugese Brazilian translation (by Daniel Nascimento)
+add Polish description to .desktop file (Comment[pl])

*** 0.5.4a TODO:
+remove setIfname and ifname from WATools, get it from argument of each function.
+don't check for active connection when no scan results.
+change linux/socket.h to sys/socket.h in watools.cpp
+fix 'no scan results' problem
+make WATools::txpower return -1 if radio is disabled.
+add spanish translation by mariodebian

*** 0.5.5 TODO:
+add 'ASCII' checkbox for WEP key field. (prepends "s:")
+change "Checking radio..." and "ok"/not ok to "Radio OK" or "Radio not ok".
+apply patch for config.in.in (by Sheldon Lee-Wen)
+version in title
+?review WATools and fix crash reason.
+add QStringList dependancy to WATools, update functions to utilize it.
+get we_version from iw_something_kernel_we function, cache it. (watools)
+migrate to bksys/scons
+detect paths to .pid and .info files. It's too hard to figure it out by the users. Fixes "can't switch network" bug.
+no console output if radio ok.
+add missing i18n (wlassistant.cpp, line 382
+make kernel socket number static. open when needed, reuse later. Create WATools::cleanup.
+normalize quality returned by scan results.


*** 0.5.6 TODO:
+skip channel setting if not supported
+wait a bit before connection state checking
+per-network option to run user-specified commands after/before (dis)connecting.
+option to auto connect on startup

*** 0.5.7 TODO:
+hide WEP key in stdout and edit dialogs
+AP grouping
+horiz. center 'secured' icon
+fix bug: connected item NOT highlighted, when AP is "any"
+experimental WPA-PSK support:
+	get WPA settings from scanning
+	WPA support in connection wizard and edit dialog
+	WPA config file generator
+	wpa_supplicant status monitoring using wpa_cli
+	WPA driver detection
+	Show error when trying to connect to WPA-protected net and wpa_supplicant is not available.
+change "Group APs with same ESSID" label
+remove "...supported by iwconfig..." label (WEP key, wizard)
+fix dhclient association not being recognized -> ping to verify connection ONLY with manual settings.
+fix regression from 0.5.5: dhclient fails to connect
+don't check for connection while wizard is running.
+implement WATools::setUp/isUp using ioctl, no more ifconfig calls and output parsing
+implement WATools::doRequest/doWirelessRequest to minimize code duplication
+don't resolve names when getting gateway from route (faster)
+fix crash when "Active connection found." for AP=any
+remove all "ifup" action instances
+define and use global WA_CONNECTION_CHECK_INTERVAL
+define and use WA_TX_THRESHOLD in WATools
+remove gateway detection code
+fix "Group Access Points..." label capitalization
+adapt NetListViewItem to new connection status checking
+fix: background check not disabled when connecting on startup.
+remove redundant actions in netparams.h
+fix flags operators
+show channel of best AP if they're grouped
+run wpa_supplicant detached. Monitor using wpa_cli
+don't check status when reconnection dialog is open
+remove wlassistantwpa file on disconnection
+detect running DHCP client when connection detected on startup ( get NetParams.dhcp from setParamsFromConfig? )
+run setParamsFromItem before auto connecting (to properly set encryption settings)
+update Polish translation (help from riklaunim)
+remove default gateway upon disconnection if not managed by DHCP client (add "route_del" action)
+new connection detection. Incremental, in WATools, no more pings. Removed isConnected in wlasssistant.*
+remove cluttering borders in user interface & more
+review possible iwlist scan outputs for WPA/WPA2-PSK
+review/fix bugs on sf formus
+TEST TEST TEST

*** 0.5.8 TODO:
-Drop dependancy on ifconfig and route
-	replace "ifconfig_manual" with new WATools functions.
-	replace 'route' calls with ioctls SIOCADDRT and SIOCDELRT
-review netConnect function.
-fix keyboard navigation (enter should connect, not quit!)
-UI polish
-checkbox "Connect now!" in the last page of wizard
-meaningful messages about possible wpa_supplicant errors
-check for iwlib in configure script
-if connection lost and user wants to reconnect: disconnect and then scan before connecting to check if network is still available.
-real system tray support
-change "Quit upon successful connection" checkbox to "Minimize to system tray on successful connection"

*** 0.5.9 TODO:
-integrade kvpnc via dcop ( profiles(), setProfile(), doConnect(), doDisconnect() )
-fix all outstanding bugs
-update as many translations as possible
-make WPA-PSK support rock-stable
-code cleanup
-update/create WhatsThis and tooltips

*** 0.6.0 TODO:
-DCOP interface
-passive popups

0.6.9 TODO:
-preliminary support for wlan-ng

*** 0.7.0 TODO:
-wlan-ng support



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


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

*** GENERAL ***

+ 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 - allow 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)

- 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 'REMOVE ME' code!!!          ***
*********************************************************