annotate TODO @ 12007:8724718d387f

[gaim-migrate @ 14300] Further updates to gg from Bartosz Oler. This makes the login and token retrieval processes asynchronous. There are also some encoding fixes and various cleanups. There are some changes from me to make it work on win32. committer: Tailor Script <tailor@pidgin.im>
author Daniel Atallah <daniel.atallah@gmail.com>
date Tue, 08 Nov 2005 19:45:09 +0000
parents 99548d90257e
children 134e570b3688
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10881
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
1 * conversation api {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
2 * need to handle: {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
3 * unnamed chats
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
4 * chats with the same name as a buddy
11451
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
5 * this should be working now, but it needs to be kept in mind when (re-)designing
10881
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
6 * jabber Messages (one off messages vrs a conversation with a backlog)
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
7 * multiple conversations with a single buddy (jabber, with thread tag)
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
8 * bugs
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
9 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
10 * notes: {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
11 * (12:58:39) Robot101: user list always|auto|never
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
12 * topic only where supported by the protocol
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
13 * how do we log this? {{{
11451
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
14 * rlaager's (NEW) proposal: {{{
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
15 * each conversation has 1 or more logs associated with it.
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
16 * when someone joins, a new log is opened
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
17 * file based loggers should try to use hard-links in a smart way
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
18 to avoid duplicating data on disk as much as possible...
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
19 * this needs to be designed in such a way that a database logger
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
20 can handle it w/o duplication...
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
21 * TO SOLVE THESE CONCERNS, a link and/or copy function callback
99548d90257e [gaim-migrate @ 13690]
Richard Laager <rlaager@wiktel.com>
parents: 11415
diff changeset
22 will likely need to be added
10881
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
23 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
24 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
25 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
26 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
27 * buddy list {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
28 * we have not committed any gobjectification, so this is not a blocker for 2.0.0 until we do.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
29 * if we do, it is only a blocker to the extent that gaim needs to run. That is, we do not
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
30 *necessarily* have to gobjectifiy everything as long as we preserve functionality.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
31 * That being said, my understanding of the signals mess says that it is probly more work to
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
32 try to do this in stages than to start it or not start it.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
33 * This would require some sort of signal aggregation, as gobject signals are unique to the instance.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
34 * one way to do this would be to emit the signals from a non-descript buddy object. this would
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
35 most closely mimic the current functionality
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
36 * a second way would be to actually try to aggregate them in some way. I really don't know how
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
37 possible this is, but it would allow us to do things like set a pounce on everyone in a group
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
38 or define sounds on a per-group basis.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
39 * we could look at replacing the UI ops with signals/call backs
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
40 * bugs
11415
66fe476474ec [gaim-migrate @ 13652]
Luke Schierer <lschiere@pidgin.im>
parents: 10891
diff changeset
41 * buddy shows as group on add until gaim restart
66fe476474ec [gaim-migrate @ 13652]
Luke Schierer <lschiere@pidgin.im>
parents: 10891
diff changeset
42 * buddy shows as online when offline
66fe476474ec [gaim-migrate @ 13652]
Luke Schierer <lschiere@pidgin.im>
parents: 10891
diff changeset
43 * buddy shows as offline when online
66fe476474ec [gaim-migrate @ 13652]
Luke Schierer <lschiere@pidgin.im>
parents: 10891
diff changeset
44 * wrong buddy given priority
66fe476474ec [gaim-migrate @ 13652]
Luke Schierer <lschiere@pidgin.im>
parents: 10891
diff changeset
45 * so on and so forth
10881
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
46 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
47 * build targets {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
48 * this is not a blocker
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
49 * we need build targets for libgaim, we need to test them, and make sure they work.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
50 * we ought to use our own build targets to build the executable itself.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
51 * due to the limitations of cvs, this cannot accompany moving files to other directories at this time.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
52 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
53 * status {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
54 * Sean's segment of the UI needs to be finished. We need to have support for the (new) default case
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
55 of one global status at all times. we currently do not, unless that happens to be "online/present"
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
56 * Tim's modifications to Sean's ui should be included to allow exceptions. refer to gaim-devel
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
57 archives for this.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
58 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
59 * account editor {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
60 * this is not a blocker for 2.0.0
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
61 * account editor is not intuitive, users do not find it.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
62 * Luke: my temptation is to get rid of this entirely, in favor of deryni's account menu. {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
63 * at this point, tools->accounts is only used for add/delete account, modify account, and
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
64 enable account.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
65 * most users do not have the 15+ accounts that some gaim developers do. a menu scales well for
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
66 anything from 2 to n, n "small" accounts.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
67 * this would allow ready access to the buddy icon stuff, and account actions could go here
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
68 * status is handled as per the new api, status stuff need not go here beyond enabled.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
69 * the account modify dialog is already too big. this would let us split it, for instance
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
70 buddy icon need not be in it this way. Similarly, alias need not be in it.
11415
66fe476474ec [gaim-migrate @ 13652]
Luke Schierer <lschiere@pidgin.im>
parents: 10891
diff changeset
71 * splitting the account modify dialog to tabs seems to work nicely. Still, I think
66fe476474ec [gaim-migrate @ 13652]
Luke Schierer <lschiere@pidgin.im>
parents: 10891
diff changeset
72 that the menu would be nicer.
10881
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
73 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
74 }}}
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
75 * Privacy {{{
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
76 * this is not a blocker for 2.0.0
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
77 * Privacy sucks. it doesn't handle many of the protocols in a way that users understand. notably
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
78 msn, but also yahoo, jabber, and icq.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
79 * We want to sync to the server as much as possible, entirely local-only privacy is not an option
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
80 except on protocols like irc that have no server-side.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
81 * We want to be as consistent across protocols as possible. this will require renaming things on
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
82 some protocols.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
83 * Bleeter suggests that we create a privacy.xml, remove privacy from blist.xml. He suggests
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
84 that each protocol define certain capabilities & defaults, with accounts.xml holding exceptions
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
85 to the defaults.
6982a276095a [gaim-migrate @ 12577]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
86 }}}
10885
12083e75627f [gaim-migrate @ 12583]
Luke Schierer <lschiere@pidgin.im>
parents: 10881
diff changeset
87 * Perl {{{
10886
0ece4cf68ea6 [gaim-migrate @ 12584]
Luke Schierer <lschiere@pidgin.im>
parents: 10885
diff changeset
88 * Block for 2.0.0 or remove perl:
11415
66fe476474ec [gaim-migrate @ 13652]
Luke Schierer <lschiere@pidgin.im>
parents: 10891
diff changeset
89 * Summer of Code seems to have largely solved this.
66fe476474ec [gaim-migrate @ 13652]
Luke Schierer <lschiere@pidgin.im>
parents: 10891
diff changeset
90 * Extended testing and resolving the inevitable bugs remains.
10886
0ece4cf68ea6 [gaim-migrate @ 12584]
Luke Schierer <lschiere@pidgin.im>
parents: 10885
diff changeset
91 * Test each call to make sure it actually works
0ece4cf68ea6 [gaim-migrate @ 12584]
Luke Schierer <lschiere@pidgin.im>
parents: 10885
diff changeset
92 * Make it work with G_MODULE_BIND_LOCAL
10885
12083e75627f [gaim-migrate @ 12583]
Luke Schierer <lschiere@pidgin.im>
parents: 10881
diff changeset
93 }}}
10891
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
94 * Prefs {{{
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
95 * this blocks for 2.0.0
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
96 * Prefs cannot stay as-is. the dialog is far too wide and not at all usable.
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
97 * The biggest problem is that each new plugin creates horizontal space. {{{
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
98 * I do not see it as a solution to remove the posability of plugin preferences.
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
99 * In the past, we had a separate plugin management dialog. People never found it,
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
100 and were often surprised to learn that gaim had plugins at all. I am unsure that
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
101 people find the current plugin page of preferences any more frequently, but I
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
102 *suspect* that it is the case. This leads to a conundrum, how do plugins
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
103 display preferences?
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
104 }}}
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
105 * Currently the window is, at my font size, 1129x505 (or should that be 505x1129?). It *should* fit
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
106 in 800x600 at worst, I'm unsure that 480x640 is a reasonable goal. still, this leaves us with
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
107 something either considerably wider or considerably taller than we are currently using (on any
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
108 given pane, the tabs force the width, not the contents). Further, taking "Message Text" as an
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
109 example, it has 3 preferences and a text area, each in its own category (the text area sharing a
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
110 category with 1 preference). obvious waste of space here. All 3 could clearly be uncategorised
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
111 without loss of meaning, categories only make sense for groups of preferences. It may even be
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
112 possible to combine this with "Conversations" entirely.
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
113 }}}
8175206faa3d [gaim-migrate @ 12599]
Luke Schierer <lschiere@pidgin.im>
parents: 10890
diff changeset
114