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