Details about the improvements in 2.0
Changelog: 2008-05-13: As discussed via MSN about the various upcoming features, I'm creating here a central point of discussion. It's better than using tickets, as much stuff spans through more than one single area of development.
Account and Current Account
I'm sick and tired of Current Account and Account. Editing them to add or change an option or setting is a pain in the ass, so I cast my vote for a major redesign.
Here's my plan:
First we need to delete all methods and properties to get/set account settings from both Current Account and Account.
We should replace them with two QHash<QString,QVariant>: one for server/account/internal settings, and one for GUI (user changeable) settings. To access those, four methods should be implemented: one getter and one setter for each QHash.
When creating an Account class, all valid property names should be set by using two internal strings lists of valid property names (one for each qhash, too); then the get/set methods should reject invalid property names given to them as arguments (to avoid spelling errors and save precious bug fixing time).
Current Account contains some runtime-only properties, they could be 1) moved to Account but not loaded/saved, or 2) we could set up another QHash+getter+setter just for those settings.
Next, Current Account has to become the central point for interaction with the MSN server.
At the moment, adding/removing someone, or otherwise interacting with the Contact List and the Server, is implemented via a bunch of signal/slot or signal/signal associations down the tree to class Chat Master and then Msn Notification Connection to let it do the work. Try tracking down how a Contact Frame tells the server to block a contact![[br]]
For example: there could be methods like isContactInList( int list, QString handle ) / setContactInList( same args ) or addContact( QString handle ) / removeContact( same ) The only exceptions to the current mess are get/setStatus(), but you got the point, right?
With the library redesign we have to refactor CurrentAccount as well, and also create a central point (atm called KMessMsnSession). While I won't stop you messing with it, we may want to consider moving this to 2.1 or further. There are still many things to fix before a 2.0 can be released, and this list doesn't seam to get much shorter. Also consider using KConfigXT, which should also solve implementing getter/setter methods yourself. --vdboor
ALL UI FILES
Check the KDE HIG, verify compliance, correct issues.
UI of all settings pages
Remove the : at the end of all group names. Check that no punctuation is present at the end of labels, except for text input labels; they need to end with that ":".
Chat Window UI
The sidebar can stay as it is for some more time: we will see after the implementation of webcam sessions if a switch can be a good thing. At the moment, the most appreciated possibility for a redesign is a QStackedWidget with mutually-excluding tool bar buttons to control which of its pages is displayed.
