always off for muc roster's horizontal scrollbar
[psi.git] / TODO
blob86d2e18a86f5f21c9742ddc7d17d8e1b9e81f2fe
1 Required
2   XML Encryption
3   groupchat should log presence changes
4   gcuserview: proper sorting of contacts based on status / alphabetical (like ContactView)
5   server info:
6     show server version in tooltip
7     ssl information dialog (show cert and maybe connection info)
8   local contact settings:
9     checkboxes for accepting various things: messages; files; URLs; chats \
10       [each has a checkbox option: only from my contact list, or... only from this GROUP on my contact list]
11     be alerted when the contact changes status or comes online (etc)
12     option: ignore headline messages (die MSN)
13     annotations (notes about the user)
14     log history or not
15   activity log window
16     high level logging of connection status, presence changes, messages
17     timestamps
18     "find" feature
19   Richtext messages
20   revamp history system: ability to restore entire chats, show in normal order, not reverse
21   "properties" dialog (could be last entry in cvlist context) for setting groups and subscription, etc. \
22     it could also show client time / version
23   file downloading
24     nice dialog
25     after file received, there should be the options: "Open" and "Open folder"
26     put each received file into a folder for the contact (optional)
27     if a specific directory is chosen, the dialog should have a history of the most recent download \
28       folders (10 maybe?)
29   Advanced Alerts (sound, popups, etc)
30   Ignore list
31   plugin system
33 Important
34   'find' feature for chatdlg
35   checkbox to keep eventdlg open (both send and recv).  for send, it should reset the content after sending.
36   statussetdlg should automatically click ok in 10 seconds (unless you press a key)
37   ability to flag which accounts are affected by the mass status change button (should be in account context menu)
38   cv: group headings should have a better design than just a rectangle (gradient?)
39   add "Go to Website" and x:oob in presence
40   ability to do various iq requests to arbitrary jids:  version, time, info
41   multi-monitor support: windows should pop up on the same display as the main window?
42   merge all contacts into one column, rather than dividing by account
43   consolidated contacts
44   send contacts
45   save/load contacts (hint: use QCheckListItem for dialogs)
46     exporting
47       dialog for selecting contacts to export to file
48       write to file
49     importing
50       import a list from file
51       dialog for selecting contacts to import
52       tell the server about the new contacts
53       check for dups
54   offline animation (door slam)
55   chathistorydlg
56     a nice window to display chat history
57     maybe a menubar with some features like "save to file" ?
58     show/hide times
59     show/hide/rename other person (for privacy)
60   floating contacts (controlled by cvlist?)
61   full message archive dialog (tree/explorer view for choosing contacts on left, display area on the right).
62   Update all (mass user info check)
63   Detecting network connection status.  option to auto-connect when network is available.
64   startup argument to select profile
65   ability to execute a shell command on event
66   option to display (in realtime) the cvlist as 'flat', ie without groups
67   voice chat
68   option to launch on startup (platform dependent, good luck)
69   different color choices for different group types
70   transport-specific roster icons
71   deal with presence errors when subscribing
72   command line args?  psi.exe --psi-data dir
73   have separate status presets depending on the status type
75 Extra
76   ability to flag a contact or group to always be shown even if they would not be (due to visibility toggles)
77   allow eventdlg and chatdlg inputs to drag / drop URLs (in both directions)
78   translation packs for the Qt library itself??
79   check to see if app is already running when launched.  if it is, then:
80     ask if they really want to open it again
81     if they say yes, then disable auto-open for profiles
82   save presence changes to history?
83   win32: docking (all optional)
84     grapple to edge of screen, like ICQ for windows
85     auto hide: after a certain period of inactivity, "slide" the window off the screen
86     auto hide delay: time to wait before sliding off
87   right-click in chat/eventdlg should have options to paste your current URL or IP address
88   KDE-enhanced mode
89   "previous" button in the eventdlg?
90   Autoresponses?  (with general and customized texts)
91   auto close chat windows that are not in focus after so many minutes of inactivity
92   The Main Window's Icon should change when new messages arrive, just like the dock icon does.
93   Ability to filter messages based on words (maybe even shell command filters)
94   Ability to compose messages and send at a later specific date (or when you or the recipient go online)
95   option to autohide main roster window after a set period of time
96   supporting BOLD and ITALIC in jabber msges by using * and / like you do in newsgroups ..
97   Licq supports replacing some %<letter>s with information on the sender of the
98     message and other things. (There's a list below) IT supports these in
99     OnEvent, auto responses (check status), and utilities
100     For example: sound player "~/scripts/say", on message "%a has just sent you an I.C.Q. message"
101       %a - user alias
102       %e - email
103       %f - first name
104       %h - phone number
105       %i - user ip
106       %l - last name
107       %m - # pending messages
108       %n - full name
109       %o - last seen online
110       %O - online since
111       %p - user port
112       %s - full status
113       %S - abbreviated status
114       %u - uin
115       %w - webpage
116   Ability to specify an arbitrary time for chatdlgs to stay active (x minutes/hours/days)
117   "small mode" - put mainwin buttons (and toolbuttons) into the cvlist right-click
118   option to have sounds not play when XA (but still play when Away)
119   option to have mainwin/dock status follow a specific account rather than "best choice"
120   option to show status message in parenthesis to the right of the contact (like yahoo)
121   ability to "auto-reconnect" to a transport?
122   cv: let the user choose how the list is sorted
123   group ideas:
124     option: sort or not
125     choose order of groups and contacts with drag and drop
126     save order on the server
127     support empty groups that get removed on signoff
128   Have a way of marking some people as 'important' contacts, so they will always trigger sound
129   psuedo-chat support like Mirabilis ICQ / Licq (ie, split window, but still used like normal messages)
130   friendlier infodlg.  get rid of those lame tabs
131   cvlist sorting options
132     sort by group, online/offline split
133     sort by group, online/offline together
134     sort by group and by status
135     sort by group and alphanumerically
136     sort by status without groups
137     sort alphanumerically without groups
138       sort by online/offline
139       straight alphanumerical sort
140   cvlist select multiple?
141   right-clicking on status button should bring up a list of accounts, each with submenus that would set \
142     the status of the chosen account.
143   option to have psi remember your password for the running session
144   Remember last status when psi quits (even if improperly shut down).  restore this status when psi is run again?
145   if you get a msg from someone in a closed group, it should not expand the whole group
146   "diskless" mode
148 Bugs
149   connection timeouts are reported as "connection refused" (qt)
150   slowdown when receiving a chat message?  or a problem with QTextEdit debug messages?
152 Miscellaneous
153   properly sort cvlist accounts if one of them gets renamed
154   class Options: cpp'ify (reset, toXml, fromXml)
155   convert some of the preferences into their own classes (or lists), like fonts, colors, sounds, etc
156   'find' function in historydlg should show the found result in the center of 50 results, rather than the top
157   Check for libqssl without needing a restart?
158   replies should only close a window that it is associated with (use QGuardedPtr?)
159   don't allow send/recv of blank messages (all content is whitespace or empty)
160   allow blank password entry
161   don't prompt for password until actually connected.  reprompt if wrong??
162   proper dialog button order depending on platform
163   when entering a text string into "Server to browse", any whitespace before or after is not trimmed.  lots of \
164     fields like this should have some sort of auto-trim.
165   when opening a new chat window of a contact with pending events, the presence is logged to the chat window \
166     before the messages are, which have an earlier timestamp (looks weird)