GTK 2.0 Porting Requirements
------------------------------

Use GConf for configuration files.
Switch to GConf for mud connection wizard?
Port Interface to Gnome2.0
GTK_DISABLE_DEPRECATED
GNOME_DISABLE_DEPRECATED
Port Windows to GTK 2.0                                                [done]

Port aliases/triggers to use gtk_treeview stuff.
Add double click to Plugins and MUD Connection Wizard.                 [done]

Requirements for version 1.0
----------------------------

Auto-mapper.          [started - plugin]
Autoreconnect plugin.                                                  [done]
Speedwalking (plugin?)                                                 [done]
Trigger editing.                                                       [done]
Password starring out.                                                 [done]
Record the size of the main window on shutdown and use that next boot. [done]
Decently optimised and speedy VT.                [Done for GTK2.0 platforms.]
Support for prompts that don't end in TELOPT EOR or TELOPT GA.         [done]
Socks 5 proxy support.                                                 [done]
Decent user manual.
Context sensitive help.
Add prefs item for help browser.                                       [done]
Port to GTK 2.0 and Gnome 2.0.
Roaming preferences.
ASync DNS where available.
Sanitise configure further- print out summary of options at end.
Fix Connecting via telnet bug.
Fix count.cpp leaking sockets.
gtk_button_new_with_label() -> add standard Ok, Close, Apply buttons for GTK1.0
Autograb username and password triggers for non-temporary MUD Connection Wizard connections.  (save last line of text received from MUD, first two presses of return trigger username/passwrod trigger saving to query user about after getting password trigger).  Do-able as plugin and main code.  More mainstream feature though.

Other Stuff
-----------

Create a macro/function for creating a new entry in the main GtkWindowTab
thing.


Fix the raise mudclient to top on new input for Windows.
Associate Windows close Window x thing with cancel the window.

Multiline prompt. - What's the best way to do this?  Have character that
client parses to a return for multilines or try and deal with multiple lines
from the MUD being a prompt.

MUD Connector MUD List: if no mudlist loaded have MUD List window generate
instructions (and/or a button to download and install the mudlist).

Aliases and Triggers
====================

Ability to export a set of triggers/aliases.
Ability to load a "Trigger/Alias Pack", for example numpad walking.


Select a number of aliases/triggers - ignore any selected system triggers.  Write only those
aliases to a file, including the groups they're in.  Don't write groups that contain no aliases.

When loading an alias pack, these aliases are merged into current aliases.  Conflicting names
are renamed with (x) after them.



Preferences
===========

System-Wide Preferences
-----------------------

Preferences that don't make sense on a connection by connection basis, such as
"Open Connection Wizard on Startup" and "Save Preferences to Central Store"
should be removed from connection-specific preferences and only present in
the global preferences.

Preferences->Edit Current Connection's Preferences: Global|{name_of_prefs}
           ->Edit Global Preferences

Plugin Preferences
------------------

Where possible plugins should store their preference data using the generic
Prefs::setPreference(char *, char *) function.  However, some plugins may
want to store some data that may be better suited to a separate file.  In this
case the file should be stored in:

  $HOME/.papaya/plugin-data/{plugin_name}/

Saving Preferences
------------------

If use roaming profile is enabled in the global preferences, then saving and
loading of preferences is done differently.

  1) Save preferences locally as is done currently.
  2) Connect to the repositry and see if the data stored there has changed
     since this client last loaded them.
  3) If changes have been made ask the user if they want to overwrite them,
     or load them.
  4) If the user chooses to overwrite, overwrite.
  5) If the user chooses to load them, load them, then ask the user if they
     want to revert to the ones they chose, or keep these.
  6) Save the chosen preferences to the repositry.

If "periodically check for roaming profile changes" is checked, check hourly
for changes to the repositry, and if they're found go to step 3.

Saving and loading to the repositry should use existing tools (scp/ftp) and
there should be a link to instructions on how to set up passwordless login
for both these services.

When writing to the repositry, a lock file should be created and this file
should be checked for before trying to write to it.  The lock file should be
removed after writing has completed.
