This refactoring allow primitivus to manage correctly several profiles at once, with various other improvments:
- profile_manager can now plug several profiles at once, requesting password when needed. No more profile plug specific method is used anymore in backend, instead a "validated" key is used in actions
- Primitivus widget are now based on a common "PrimitivusWidget" classe which mainly manage the decoration so far
- all widgets are treated in the same way (contactList, Chat, Progress, etc), no more chat_wins specific behaviour
- widgets are created in a dedicated manager, with facilities to react on new widget creation or other events
- quick_frontend introduce a new QuickWidget class, which aims to be as generic and flexible as possible. It can manage several targets (jids or something else), and several profiles
- each widget class return a Hash according to its target. For example if given a target jid and a profile, a widget class return a hash like (target.bare, profile), the same widget will be used for all resources of the same jid
- better management of CHAT_GROUP mode for Chat widgets
- some code moved from Primitivus to QuickFrontend, the final goal is to have most non backend code in QuickFrontend, and just graphic code in subclasses
- no more (un)escapePrivate/PRIVATE_PREFIX
- contactList improved a lot: entities not in roster and special entities (private MUC conversations) are better managed
- resources can be displayed in Primitivus, and their status messages
- profiles are managed in QuickFrontend with dedicated managers
This is work in progress, other frontends are broken. Urwid SàText need to be updated. Most of features of Primitivus should work as before (or in a better way ;))
From 6fb18309a1d971235c0c3d568704fd91809d2d6e Mon Sep 17 00:00:00 2001
The code tries to load an icon from 'icons/crystal/32/tray_icon.xpm'
(relative to self.media_dir), which is part of sat_media, released
independently by upstream and not yet part of Debian.
It then tries to set this invalid icon. With wxPython 2.8 these
issues get quietly ignored, but wxPython 3.0 reports them. As a
simple workaround I've just added a check that the icon is valid
before setting it, so now you get a messagebox about the icon file
not being found and then the app starts.
Obviously it would be better to package sat_media so that the icon is
available on the system.
- ctrl f + 1 (or m) to focus menu
- ctrl f + 2 (or b) to focus body
- ctrl f + 3 (or n) to focus notifications bar
- ctrl f + 4 (or e) to focus edit bar
current behavious is temporary and will need to be rethinked a bit: if FOCUS_SWITCH is pressed, the focus change on top widget, if FOCUS_UP/DOWN is pressed, focus will throught contact list.
- new config module manage configuration
- if any configuration error happen, config parsing is stopped, and a popup appear + a log error
- key can be changed with key_[action_name] = [shortcut]
- early popup (popup happening before main widget is built, e.g. in profile manager) are managed
- ":presence " and ":status " open a dialog (like if you type it without the trailing space)
- you need to type ":presence online" to directly reset your presence (was done with ":presence " before)
- there's no more way to directly set an empty status (you now do it via the dialog)
- there are now XMLUIPanel and XMLUIDialog both inheriting from XMLUIBase
- following dialogs are managed:
- MessageDialog
- NoteDialog
- ConfirmDialog
- FileDialog
- XMLUI creation is now made using xmlui.create(...) instead of instanciating directly XMLUI
- classes must be registed in frontends
- "parent" attribute renamed to "_xmlui_parent" to avoid name conflicts with frontends toolkits
- fix bug 3
- modify "Connection" params:
- rename "Server" to "Force server" and "Port" to "Force port"
- set the default value to empty string for both