Gobby
=====

Blocker:

Critical:

Major:
  * Bug: User attribution copied when using copy & paste (#24)

Normal:
  * Improve the network handling on Win32 (#2)
  * Implement support for Zeroconf (#17)
  * A flag specifing if a document has changed (#25)
  * Request confirmations for unsaved documents (#26)
  * Switch to tabs newly opened (#27)
  * Chat command infrastructure (#31)

Minor:
  * Repaint of user colour incorrect (#22)

Trivial:

Enhancement:
  * Highlighting of own nickname in chat window (#6)
  * Multiple user lists (#12)
  * Auto indentation (#23)


24: Bug: User attribution copied when using copy & paste
--------------------------------------------------------
If somebody copies some text of another user on the host and pastes it then 
it will show up temporarily as own text, but it will get the other user's 
colour after the next redraw.

2: Improve the network handling on Win32
----------------------------------------
Opening large documents is ''really'' slow on the timer implementation in 
use on Win32. Currently the connection is polled every 400ms, which is 
certainly not optimal.

17: Implement support for Zeroconf
----------------------------------
''Zeroconf'' (also known as Apple Bonjour) is a technology to discover 
local network services. The Gobby host may announce itself as a network 
service which could be browsed by other clients on the local subnet. The 
listing and delisting is implemented with the use of multicast DNS and 
happens automatically. ''libobby'' contains an abstraction to the ''howl'' 
implementation of this protocol.

 * We need to add a linking exception for ''howl'' to ''libobby'' (#18).
 * We need a UI implementation of ''Zeroconf'' within ''Gobby's '' join 
dialog.
 * We need proper integration into the GUI main loop on Linux (possibly 
eliminating the necessity to start mDNSResponder prior to a ''howl'' using 
application).

25: A flag specifing if a document has changed
----------------------------------------------
A flag should be implemented which specifies if the document has changed 
since the last save. It should be reset when it is saved to disk and 
changed as soon as the first change (local and non-local) is received and 
put into the text buffer.

26: Request confirmations for unsaved documents
-----------------------------------------------
Gobby should request a confirmation if you want to quit it and still have 
unsaved documents (#25) open in the session. 

27: Switch to tabs newly opened
-------------------------------
The current selected document should be changed to the one newly opened 
when loading one from a file.

31: Chat command infrastructure
-------------------------------
Chat command infrastructure (like /me, /ignore, etc.)

''This is a stub and generated out of the old TODO located in the 
repository.''

22: Repaint of user colour incorrect
------------------------------------
If a user writes anything into a Gobby document, the background gets 
colourised with this users colour, but the operation is not performed 
immediately but with the next redraw of the cursor or the line or 
something.

6: Highlighting of own nickname in chat window
----------------------------------------------
Chat messages of others should be highlighted if the own nickname is 
mentioned in them.

12: Multiple user lists
-----------------------
Put a Gtk::Notebook around the user list and provide 4 user lists:

 * whole session: Display all users that are or were in the session since 
beginning
 * current session: Display all users that are currently in the session
 * whole document: Display all users that are or were subscribed to the 
selected document
 * current document: Display all users that are currently subscribed to the 
selected document

23: Auto indentation
--------------------
GtkSourceView seems to support auto indentation. Gobby should provide an 
option to enable or disable this feature.

