kEY (by Lubos)
==============
* = not done, will be either done by WS, or should be at least discussed first with WS
+ = not done, I don't plan on doing it that soon
    - in other words, these should be the best ones for you if you want to help
! = like +, but they should be relatively simple
    - in other words, these should be the best if you want to get started with the code
/ = work in progress
? = should it be done?
% = should be probably done later, during cleanups and preparations for being stable
. = done, remove when DESIGN is updated
X = rejected

- SERVICE: Complete settings service
  . per-setting group helper class for complex settings, where needed for ipv4 config write
    . take out hacks in Connection to hash WPA keys there
    . take out hacks in KConfigToService to add groups needed by NM
  . Signal updated connections on the bus when ours are edited
  . Implement RemoveConnection
  / wireless security
    . WEP
    / WPA-PSK (needs extending with specific crypto alg options, and anything WPA2 requires)
    * LEAP
    / WPA-EAP
      * TTLS requires that the certs are decrypted in the service and sent to NM, see libnm-util
    * Dynamic WEP (802.1x)
  + also for 802.1x
    * Add system cert path property to UI and schema for 802.1x
  . Create Connection.Secrets objects and do lazy secret loading. Change configxml classes to not read wallet on start
    . Show connection UI to get secrets on demand if the wallet does not contain them or if the
      daemon requested new secrets
    . Add helper binary (like a mini-kcmshell) that InterfaceGroup can start if the kcm is not already running.
      This should accept the same args as InterfaceGroup currently sends to kcmshell via dbus on the comand line,
      show the appropriate connectionpreferences subclass and write the result out like connectioneditor does.
    . write LastUsed to knetworkmanagerrc on successful connection activation
    / Watch the active connections in the connection editor and update its UI contents
  . Store SeenBSSIDs in wireless connections
  * Shutdown the service on timeout when the applet is removed, not immediately, to allow for plasma reconfigures.
  * Enhance error reporting.  When a connection attempt fails on a wifi connection that has been used in the past, prompt "This failure may have occurred due to temporary wireless interference, or the connection settings may have changed.".  When a failure occurs on a new wifi connection, change to "the connection settings may be incorrect".
  * Loggable notifications (#144819)
  * Internet connection sharing (#169298)

- CONFIG: Implement control module
  . Write a nice class to turn a QDateTime into "3 minutes ago", "5 hours ago" instead of using KLocale::formatDate(), or extend KLocale with formatDateRelative(QDateTime in, QDateTime relativeTo)
  . Add UI for selecting cellular connection type,
    . detect and disable for existing connections
  X Replace Ok button with Close in main connectioneditor, or implement storage of changed/added connection settings in temp files until the Ok button is clicked, and enable deleting temp files if Cancel is clicked
  . Edit on double click existing entry
  . Show header in connection list, people don't understand "Auto eth0 never" / Complete most settings widgets' complex (non-KConfigSkeleton-managed) UI plumbing and reimplemented save routines
    ! Static IP addresses
  + Option to display system-provided connections and import them so they can be edited (probably depends on PolicyKit)
  . Show the ScanWidget from widgets developed by CB
    * Fix the ScanWidget's appearance
  / Clean out wireless security settings when editing a connection and changing the wireless security type.
  . Ensure that autoconnect is not broken by automatically serialising unused wireless security widgets to the connection    config file and thereby creating an invalid conneciton
  / VPN
    * Complete VPNC
    - VPNC - write config file for vpnc binary when creating a connection
    * VPN connection import/export (#146159)
      * Import cisco .pcf files (#182984)
    * Support pw protected keys (#150680)
    * Support PPTP (#174439)
    * Option to bind VPN connection to real connection
  * Merge APs into networks in the ScanWidget
  X Autonumber new connections
  * Option to not store secrets in wallet (#140332)
  * Option to not store secrets at all (#163551)
  * Option to not store some secrets (eg one use pin) (#149759)
  * Remove passwords from config file/wallet on storage type switch (#149030)
  ! Make IP and DNS entry consistent (same widgets or at least same input filter)

- APPLET: Make sure system tray+engine does what we need
  * Popup menu
    / Connection List
       / Two possible connection list display styles
         / List connections appropriate to currently active hardware
           / Update based on hardware and AP changes
           + Extend to profiles
         + a list of all currently seen APs (like trad applet). Use ScrollWidget? (4.3+ only)
       / Group connections by device (or by device type if connection could be activated on >1 device)
         / Item contents
           . Name
           . Type
           / Extended information (System/user connection; IP config; pppStats bytes up/down stats (FEATURE) etc)
           . Activate button
            X Prompt for which interface if multiple - solved differently in monolithic 
         / Wireless connection item
           . Signal strength
           * Hide strength meter and security icon on disconnect
         / Cellular connection item
           / Signal strength
           * UMTS/GPRS
           * Network name
         / VPN connections - group without interface.  Can be activated on single active connection
           or on the connection owning the default route.  Drag and drop to activate on another
           connection
         / Remove connections that are active from the connection list, they are shown on the
           InterfaceItem
         . Wireless interface groups should maintain a merged WirelessEnvironment for all interfaces' environments,
           for maintaining its appropriate connection list.
         / Wireless network items for unconfigured networks that launch the connection editor
           / Show correct wireless security for the AP
         . Show/hide of InterfaceGroups' extenderitems currently leaves big whitespace in the popup, they should be removed from the popup when not shown.
         * CDMA Group
        / Disconnect button
    . Connection editor
    . Flight mode toggle
    * Disconnected toggle (#178641)
    . Hardware wifi switch indicator
    + Adhoc network connections
    * On-the-fly connections for GSM
  . Tooltips
    * Configurable like Kopete (#132151)
    * Detailed tooltips on Interface groups in the popup
    * Specific tooltips on encryption icons
  / Show network status in tray icon
    % Option to have one icon per device, (like in Windows, hschaa's request)
    / Show network interface's status that is most important to the
      user when showing single icon
      * Show wireless signal strength
    . Animation during connection state
    * Icon is too small when the plasmoid is in a larger panel
    * Network activity LEDs (#148095)
    * Show lock in tray icon (#160365)
  * Remember wireless/networking state between sessions (#181488)
  *  Reuse same notification when a connection is being brought up (#132000)
  * Detect when NM 0.7 Solid backend not loaded
  . Guarantee fit when on small res (840x480)

- Update Solid
  * Pass the reason arg in org.freedesktop.NetworkManager.Device.StateChanged through, so the applet can use it for error reporting
  % Implement ModemManager and any new VPNManager, if appropriate, in Solid, else in applet

- Rename libraries ...private



Icons & Artwork:

- wireless network connected, actions/network-wireless-connect
- wireless network disconnected, actions/network-wireless-disconnect
- network-wired-connected
- strength-showing wireless SVG for Plasma:
    - 3 - 4 elements showing signal strength
    - 3 connection stages

- wired network connected
- wired network disconnected
    - 3 connection stages

- mobile broadband (3g / umts) connected
- mobile broadband (3g / umts) disconnected
    - 3 - 4 elements showing signal strength
    - 3 connection stages

- network-connect (action) (independant from device)
- network-disconnect (action) (independant from device)

- VPN


snippet for http://techbase.kde.org/Projects/Oxygen/Missing_Icons :

||plasma||networkmanager|| network-wireless.svg || panel "icon" for plasma, shows a wireless connection, and 3 - 4 steps of signal strength, 3 steps for connection stages, ad-hoc connection mode ||<span style="color: red">No</span>||
|-----
||plasma||networkmanager|| network-wired.svg || panel "icon" for plasma, shows a connected or disconnected wired network device, 3 steps for connection stages||<span style="color: red">No</span>||
|-----
||plasma||networkmanager|| network-mobile.svg || panel "icon" for plasma, shows a connected or disconnected mobile broadband device and 3 - 4 steps of signal strength, 3 steps for connection stages ||<span style="color: red">No</span>||
|-----
||plasma||networkmanager|| network-VPN.svg || panel "icon" for plasma, shows a connected or disconnected VPN connection, 3 steps for connection stages ||<span style="color: red">No</span>||
|-----
||plasma||networkmanager|| actions/network-connect || icon to be used on "connect to this network" buttons ||<span style="color: red">No</span>||
|-----
||plasma||networkmanager|| actions/network-disconnect || icon to be used on "disconnect from this network" buttons ||<span style="color: red">No</span>||
|-----

