annotate frontends/src/wix/main_window.py @ 1197:69ffe61240eb

wix: Avoid setting a bad icon 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.
author Olly Betts <olly@survex.com>
date Tue, 09 Sep 2014 18:51:35 -0400
parents 75025461141f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
goffi@necton2
parents:
diff changeset
1 #!/usr/bin/python
goffi@necton2
parents:
diff changeset
2 # -*- coding: utf-8 -*-
goffi@necton2
parents:
diff changeset
3
609
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 587
diff changeset
4 # wix: a SAT frontend
811
1fe00f0c9a91 dates update
Goffi <goffi@goffi.org>
parents: 807
diff changeset
5 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Jérôme Poisson (goffi@goffi.org)
0
goffi@necton2
parents:
diff changeset
6
609
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 587
diff changeset
7 # This program is free software: you can redistribute it and/or modify
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 587
diff changeset
8 # it under the terms of the GNU Affero General Public License as published by
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 587
diff changeset
9 # the Free Software Foundation, either version 3 of the License, or
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 587
diff changeset
10 # (at your option) any later version.
0
goffi@necton2
parents:
diff changeset
11
609
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 587
diff changeset
12 # This program is distributed in the hope that it will be useful,
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 587
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 587
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 587
diff changeset
15 # GNU Affero General Public License for more details.
0
goffi@necton2
parents:
diff changeset
16
609
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 587
diff changeset
17 # You should have received a copy of the GNU Affero General Public License
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 587
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
0
goffi@necton2
parents:
diff changeset
19
goffi@necton2
parents:
diff changeset
20
771
bfabeedbf32e core: i18n refactoring:
Goffi <goffi@goffi.org>
parents: 759
diff changeset
21 from sat.core.i18n import _
1093
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
22 from sat_frontends.wix.constants import Const as C
227
533507bb4e32 distutils wix installation
Goffi <goffi@goffi.org>
parents: 225
diff changeset
23 from sat_frontends.quick_frontend.quick_chat_list import QuickChatList
533507bb4e32 distutils wix installation
Goffi <goffi@goffi.org>
parents: 225
diff changeset
24 from sat_frontends.quick_frontend.quick_app import QuickApp
0
goffi@necton2
parents:
diff changeset
25 import wx
227
533507bb4e32 distutils wix installation
Goffi <goffi@goffi.org>
parents: 225
diff changeset
26 from sat_frontends.wix.contact_list import ContactList
533507bb4e32 distutils wix installation
Goffi <goffi@goffi.org>
parents: 225
diff changeset
27 from sat_frontends.wix.chat import Chat
1106
e2e1e27a3680 frontends: XMLUI refactoring + dialogs:
Goffi <goffi@goffi.org>
parents: 1103
diff changeset
28 from sat_frontends.wix import xmlui
227
533507bb4e32 distutils wix installation
Goffi <goffi@goffi.org>
parents: 225
diff changeset
29 from sat_frontends.wix.profile import Profile
533507bb4e32 distutils wix installation
Goffi <goffi@goffi.org>
parents: 225
diff changeset
30 from sat_frontends.wix.profile_manager import ProfileManager
0
goffi@necton2
parents:
diff changeset
31 import os.path
1139
75025461141f move sat.tools.jid to sat_frontends.tools.jid
souliane <souliane@mailoo.org>
parents: 1106
diff changeset
32 from sat_frontends.tools.jid import JID
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
33 from sat.core.log import getLogger
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
34 log = getLogger(__name__)
736
6246eb6d64a0 frontends: define the constants with classes and inheritance instance of using __builtin__
souliane <souliane@mailoo.org>
parents: 688
diff changeset
35 from sat_frontends.wix.constants import Const
0
goffi@necton2
parents:
diff changeset
36
51
8c67ea98ab91 frontend improved to take into account new SàT features
Goffi <goffi@goffi.org>
parents: 42
diff changeset
37 idCONNECT,\
8c67ea98ab91 frontend improved to take into account new SàT features
Goffi <goffi@goffi.org>
parents: 42
diff changeset
38 idDISCONNECT,\
8c67ea98ab91 frontend improved to take into account new SàT features
Goffi <goffi@goffi.org>
parents: 42
diff changeset
39 idEXIT,\
191
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
40 idABOUT,\
51
8c67ea98ab91 frontend improved to take into account new SàT features
Goffi <goffi@goffi.org>
parents: 42
diff changeset
41 idPARAM,\
8c67ea98ab91 frontend improved to take into account new SàT features
Goffi <goffi@goffi.org>
parents: 42
diff changeset
42 idSHOW_PROFILE,\
72
f271fff3a713 MUC implementation: first draft
Goffi <goffi@goffi.org>
parents: 70
diff changeset
43 idJOIN_ROOM,\
987
3a96920c07b7 core, frontends: unify the roster management UIs in sat/stdui/ui_contact_list.py
souliane <souliane@mailoo.org>
parents: 939
diff changeset
44 = range(7)
0
goffi@necton2
parents:
diff changeset
45
goffi@necton2
parents:
diff changeset
46 class ChatList(QuickChatList):
goffi@necton2
parents:
diff changeset
47 """This class manage the list of chat windows"""
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
48
51
8c67ea98ab91 frontend improved to take into account new SàT features
Goffi <goffi@goffi.org>
parents: 42
diff changeset
49 def createChat(self, target):
8c67ea98ab91 frontend improved to take into account new SàT features
Goffi <goffi@goffi.org>
parents: 42
diff changeset
50 return Chat(target, self.host)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
51
0
goffi@necton2
parents:
diff changeset
52 class MainWindow(wx.Frame, QuickApp):
goffi@necton2
parents:
diff changeset
53 """main app window"""
goffi@necton2
parents:
diff changeset
54
goffi@necton2
parents:
diff changeset
55 def __init__(self):
366
0806a65a5fa9 wix: updated paths to use media_dir
Goffi <goffi@goffi.org>
parents: 228
diff changeset
56 QuickApp.__init__(self)
796
46aa5ada61bf core, frontends: XMLUI refactoring:
Goffi <goffi@goffi.org>
parents: 777
diff changeset
57 wx.Frame.__init__(self,None, title="SàT Wix", size=(350,500))
0
goffi@necton2
parents:
diff changeset
58
68
9b842086d915 multiple profiles update
Goffi <goffi@goffi.org>
parents: 67
diff changeset
59 #sizer
9b842086d915 multiple profiles update
Goffi <goffi@goffi.org>
parents: 67
diff changeset
60 self.sizer = wx.BoxSizer(wx.VERTICAL)
9b842086d915 multiple profiles update
Goffi <goffi@goffi.org>
parents: 67
diff changeset
61 self.SetSizer(self.sizer)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
62
0
goffi@necton2
parents:
diff changeset
63 #Frame elements
501
e9634d2e7b38 core, quick_frontend, primitivus, wix: Contacts List refactoring phase 1:
Goffi <goffi@goffi.org>
parents: 491
diff changeset
64 self.contact_list = ContactList(self, self)
e9634d2e7b38 core, quick_frontend, primitivus, wix: Contacts List refactoring phase 1:
Goffi <goffi@goffi.org>
parents: 491
diff changeset
65 self.contact_list.registerActivatedCB(self.onContactActivated)
e9634d2e7b38 core, quick_frontend, primitivus, wix: Contacts List refactoring phase 1:
Goffi <goffi@goffi.org>
parents: 491
diff changeset
66 self.contact_list.Hide()
e9634d2e7b38 core, quick_frontend, primitivus, wix: Contacts List refactoring phase 1:
Goffi <goffi@goffi.org>
parents: 491
diff changeset
67 self.sizer.Add(self.contact_list, 1, flag=wx.EXPAND)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
68
0
goffi@necton2
parents:
diff changeset
69 self.chat_wins=ChatList(self)
goffi@necton2
parents:
diff changeset
70 self.CreateStatusBar()
goffi@necton2
parents:
diff changeset
71
goffi@necton2
parents:
diff changeset
72 #ToolBar
goffi@necton2
parents:
diff changeset
73 self.tools=self.CreateToolBar()
736
6246eb6d64a0 frontends: define the constants with classes and inheritance instance of using __builtin__
souliane <souliane@mailoo.org>
parents: 688
diff changeset
74 self.statusBox = wx.ComboBox(self.tools, -1, "Online", choices=[status[1] for status in Const.PRESENCE],
0
goffi@necton2
parents:
diff changeset
75 style=wx.CB_DROPDOWN | wx.CB_READONLY)
goffi@necton2
parents:
diff changeset
76 self.tools.AddControl(self.statusBox)
goffi@necton2
parents:
diff changeset
77 self.tools.AddSeparator()
737
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
78 self.statusTxt = wx.TextCtrl(self.tools, -1, style=wx.TE_PROCESS_ENTER)
0
goffi@necton2
parents:
diff changeset
79 self.tools.AddControl(self.statusTxt)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
80 self.Bind(wx.EVT_COMBOBOX, self.onStatusChange, self.statusBox)
0
goffi@necton2
parents:
diff changeset
81 self.Bind(wx.EVT_TEXT_ENTER, self.onStatusChange, self.statusTxt)
goffi@necton2
parents:
diff changeset
82 self.tools.Disable()
366
0806a65a5fa9 wix: updated paths to use media_dir
Goffi <goffi@goffi.org>
parents: 228
diff changeset
83
11
37153f3a3dc1 wix: Tray Icon
Goffi <goffi@goffi.org>
parents: 1
diff changeset
84 #tray icon
679
59c9a7ff903d wix, misc: use picture of dimension 32x32 for tray icon + better PEP-8 compliance
souliane <souliane@mailoo.org>
parents: 653
diff changeset
85 ticon = wx.Icon(os.path.join(self.media_dir, 'icons/crystal/32/tray_icon.xpm'), wx.BITMAP_TYPE_XPM)
11
37153f3a3dc1 wix: Tray Icon
Goffi <goffi@goffi.org>
parents: 1
diff changeset
86 self.tray_icon = wx.TaskBarIcon()
1197
69ffe61240eb wix: Avoid setting a bad icon
Olly Betts <olly@survex.com>
parents: 1139
diff changeset
87 if ticon.IsOk():
69ffe61240eb wix: Avoid setting a bad icon
Olly Betts <olly@survex.com>
parents: 1139
diff changeset
88 self.tray_icon.SetIcon(ticon, _("Wix jabber client"))
11
37153f3a3dc1 wix: Tray Icon
Goffi <goffi@goffi.org>
parents: 1
diff changeset
89 wx.EVT_TASKBAR_LEFT_UP(self.tray_icon, self.onTrayClick)
37153f3a3dc1 wix: Tray Icon
Goffi <goffi@goffi.org>
parents: 1
diff changeset
90
0
goffi@necton2
parents:
diff changeset
91
goffi@necton2
parents:
diff changeset
92 #events
goffi@necton2
parents:
diff changeset
93 self.Bind(wx.EVT_CLOSE, self.onClose, self)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
94
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
95
68
9b842086d915 multiple profiles update
Goffi <goffi@goffi.org>
parents: 67
diff changeset
96 #profile panel
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
97 self.profile_pan = ProfileManager(self)
68
9b842086d915 multiple profiles update
Goffi <goffi@goffi.org>
parents: 67
diff changeset
98 self.sizer.Add(self.profile_pan, 1, flag=wx.EXPAND)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
99
119
ded2431cea5a Primitivus: chat window / text sending.
Goffi <goffi@goffi.org>
parents: 105
diff changeset
100 self.postInit()
ded2431cea5a Primitivus: chat window / text sending.
Goffi <goffi@goffi.org>
parents: 105
diff changeset
101
0
goffi@necton2
parents:
diff changeset
102 self.Show()
goffi@necton2
parents:
diff changeset
103
1035
c4c14480715a wix: update the connection mechanism to ask for non empty profile passwords
souliane <souliane@mailoo.org>
parents: 1011
diff changeset
104 def plug_profile_1(self, profile_key='@DEFAULT@'):
68
9b842086d915 multiple profiles update
Goffi <goffi@goffi.org>
parents: 67
diff changeset
105 """Hide profile panel then plug profile"""
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
106 log.debug (_('plugin profile %s' % profile_key))
68
9b842086d915 multiple profiles update
Goffi <goffi@goffi.org>
parents: 67
diff changeset
107 self.profile_pan.Hide()
501
e9634d2e7b38 core, quick_frontend, primitivus, wix: Contacts List refactoring phase 1:
Goffi <goffi@goffi.org>
parents: 491
diff changeset
108 self.contact_list.Show()
68
9b842086d915 multiple profiles update
Goffi <goffi@goffi.org>
parents: 67
diff changeset
109 self.sizer.Layout()
1035
c4c14480715a wix: update the connection mechanism to ask for non empty profile passwords
souliane <souliane@mailoo.org>
parents: 1011
diff changeset
110 super(MainWindow, self).plug_profile_1(profile_key)
1093
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
111 #menus
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
112 self.createMenus()
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
113
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
114 def addMenus(self, menubar, type_, menu_data=None):
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
115 """Add cached menus to instance
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
116 @param menu: wx.MenuBar instance
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
117 @param type_: menu type like is sat.core.sat_main.importMenu
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
118 @param menu_data: data to send with these menus
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
119
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
120 """
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
121 menus = self.profiles[self.profile]['menus'].get(type_,[])
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
122 for id_, path, path_i18n in menus:
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
123 if len(path) != 2:
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
124 raise NotImplementedError("Menu with a path != 2 are not implemented yet")
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
125 category = path_i18n[0] # TODO: manage path with more than 2 levels
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
126 name = path_i18n[1]
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
127 menu_idx = menubar.FindMenu(category)
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
128 current_menu = None
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
129 if menu_idx == wx.NOT_FOUND:
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
130 #the menu is new, we create it
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
131 current_menu = wx.Menu()
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
132 menubar.Append(current_menu, category)
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
133 else:
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
134 current_menu = menubar.GetMenu(menu_idx)
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
135 assert(current_menu != None)
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
136 item_id = wx.NewId()
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
137 help_string = self.bridge.getMenuHelp(id_, '')
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
138 current_menu.Append(item_id, name, help=help_string)
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
139 #now we register the event
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
140 def event_answer(e, id_=id_):
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
141 self.launchAction(id_, menu_data, profile_key = self.profile)
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
142
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
143 wx.EVT_MENU(menubar.Parent, item_id, event_answer)
68
9b842086d915 multiple profiles update
Goffi <goffi@goffi.org>
parents: 67
diff changeset
144
0
goffi@necton2
parents:
diff changeset
145 def createMenus(self):
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
146 log.info(_("Creating menus"))
0
goffi@necton2
parents:
diff changeset
147 connectMenu = wx.Menu()
70
Goffi <goffi@goffi.org>
parents: 68
diff changeset
148 connectMenu.Append(idCONNECT, _("&Connect CTRL-c"),_(" Connect to the server"))
Goffi <goffi@goffi.org>
parents: 68
diff changeset
149 connectMenu.Append(idDISCONNECT, _("&Disconnect CTRL-d"),_(" Disconnect from the server"))
Goffi <goffi@goffi.org>
parents: 68
diff changeset
150 connectMenu.Append(idPARAM,_("&Parameters"),_(" Configure the program"))
0
goffi@necton2
parents:
diff changeset
151 connectMenu.AppendSeparator()
736
6246eb6d64a0 frontends: define the constants with classes and inheritance instance of using __builtin__
souliane <souliane@mailoo.org>
parents: 688
diff changeset
152 connectMenu.Append(idABOUT, _("A&bout"), _(" About %s") % Const.APP_NAME)
70
Goffi <goffi@goffi.org>
parents: 68
diff changeset
153 connectMenu.Append(idEXIT,_("E&xit"),_(" Terminate the program"))
0
goffi@necton2
parents:
diff changeset
154 contactMenu = wx.Menu()
25
53e921c8a357 new plugin: gateways plugin, and first implementation of findGateways
Goffi <goffi@goffi.org>
parents: 23
diff changeset
155 communicationMenu = wx.Menu()
72
f271fff3a713 MUC implementation: first draft
Goffi <goffi@goffi.org>
parents: 70
diff changeset
156 communicationMenu.Append(idJOIN_ROOM, _("&Join Room"),_(" Join a Multi-User Chat room"))
68
9b842086d915 multiple profiles update
Goffi <goffi@goffi.org>
parents: 67
diff changeset
157 self.menuBar = wx.MenuBar()
70
Goffi <goffi@goffi.org>
parents: 68
diff changeset
158 self.menuBar.Append(connectMenu,_("&General"))
Goffi <goffi@goffi.org>
parents: 68
diff changeset
159 self.menuBar.Append(contactMenu,_("&Contacts"))
Goffi <goffi@goffi.org>
parents: 68
diff changeset
160 self.menuBar.Append(communicationMenu,_("&Communication"))
68
9b842086d915 multiple profiles update
Goffi <goffi@goffi.org>
parents: 67
diff changeset
161 self.SetMenuBar(self.menuBar)
0
goffi@necton2
parents:
diff changeset
162
101
783e9d6980ec Couchsurfing plugin: first draft
Goffi <goffi@goffi.org>
parents: 91
diff changeset
163 #additionals menus
783e9d6980ec Couchsurfing plugin: first draft
Goffi <goffi@goffi.org>
parents: 91
diff changeset
164 #FIXME: do this in a more generic way (in quickapp)
1093
11e2bb20e896 core, frontends (menus): MENU_ROOM and MENU_SINGLE are now managed
Goffi <goffi@goffi.org>
parents: 1063
diff changeset
165 self.addMenus(self.menuBar, C.MENU_GLOBAL)
101
783e9d6980ec Couchsurfing plugin: first draft
Goffi <goffi@goffi.org>
parents: 91
diff changeset
166
987
3a96920c07b7 core, frontends: unify the roster management UIs in sat/stdui/ui_contact_list.py
souliane <souliane@mailoo.org>
parents: 939
diff changeset
167 # menu items that should be displayed after the automatically added ones
3a96920c07b7 core, frontends: unify the roster management UIs in sat/stdui/ui_contact_list.py
souliane <souliane@mailoo.org>
parents: 939
diff changeset
168 contactMenu.AppendSeparator()
3a96920c07b7 core, frontends: unify the roster management UIs in sat/stdui/ui_contact_list.py
souliane <souliane@mailoo.org>
parents: 939
diff changeset
169 contactMenu.Append(idSHOW_PROFILE, _("&Show profile"), _(" Show contact's profile"))
101
783e9d6980ec Couchsurfing plugin: first draft
Goffi <goffi@goffi.org>
parents: 91
diff changeset
170
0
goffi@necton2
parents:
diff changeset
171 #events
goffi@necton2
parents:
diff changeset
172 wx.EVT_MENU(self, idCONNECT, self.onConnectRequest)
1
a06a151fc31f Disconnect first draft
Goffi <goffi@goffi.org>
parents: 0
diff changeset
173 wx.EVT_MENU(self, idDISCONNECT, self.onDisconnectRequest)
0
goffi@necton2
parents:
diff changeset
174 wx.EVT_MENU(self, idPARAM, self.onParam)
191
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
175 wx.EVT_MENU(self, idABOUT, self.onAbout)
0
goffi@necton2
parents:
diff changeset
176 wx.EVT_MENU(self, idEXIT, self.onExit)
42
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
177 wx.EVT_MENU(self, idSHOW_PROFILE, self.onShowProfile)
72
f271fff3a713 MUC implementation: first draft
Goffi <goffi@goffi.org>
parents: 70
diff changeset
178 wx.EVT_MENU(self, idJOIN_ROOM, self.onJoinRoom)
0
goffi@necton2
parents:
diff changeset
179
1103
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
180 def newMessageHandler(self, from_jid, to_jid, msg, _type, extra, profile):
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
181 QuickApp.newMessageHandler(self, from_jid, to_jid, msg, _type, extra, profile)
0
goffi@necton2
parents:
diff changeset
182
goffi@necton2
parents:
diff changeset
183 def showAlert(self, message):
goffi@necton2
parents:
diff changeset
184 # TODO: place this in a separate class
goffi@necton2
parents:
diff changeset
185 popup=wx.PopupWindow(self)
goffi@necton2
parents:
diff changeset
186 ### following code come from wxpython demo
goffi@necton2
parents:
diff changeset
187 popup.SetBackgroundColour("CADET BLUE")
goffi@necton2
parents:
diff changeset
188 st = wx.StaticText(popup, -1, message, pos=(10,10))
goffi@necton2
parents:
diff changeset
189 sz = st.GetBestSize()
goffi@necton2
parents:
diff changeset
190 popup.SetSize( (sz.width+20, sz.height+20) )
goffi@necton2
parents:
diff changeset
191 x=(wx.DisplaySize()[0]-popup.GetSize()[0])/2
goffi@necton2
parents:
diff changeset
192 popup.SetPosition((x,0))
goffi@necton2
parents:
diff changeset
193 popup.Show()
goffi@necton2
parents:
diff changeset
194 wx.CallLater(5000,popup.Destroy)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
195
1106
e2e1e27a3680 frontends: XMLUI refactoring + dialogs:
Goffi <goffi@goffi.org>
parents: 1103
diff changeset
196 def showDialog(self, message, title="", type_="info", answer_cb = None, answer_data = None):
e2e1e27a3680 frontends: XMLUI refactoring + dialogs:
Goffi <goffi@goffi.org>
parents: 1103
diff changeset
197 if type_ == 'info':
0
goffi@necton2
parents:
diff changeset
198 flags = wx.OK | wx.ICON_INFORMATION
1106
e2e1e27a3680 frontends: XMLUI refactoring + dialogs:
Goffi <goffi@goffi.org>
parents: 1103
diff changeset
199 elif type_ == 'error':
0
goffi@necton2
parents:
diff changeset
200 flags = wx.OK | wx.ICON_ERROR
1106
e2e1e27a3680 frontends: XMLUI refactoring + dialogs:
Goffi <goffi@goffi.org>
parents: 1103
diff changeset
201 elif type_ == 'yes/no':
51
8c67ea98ab91 frontend improved to take into account new SàT features
Goffi <goffi@goffi.org>
parents: 42
diff changeset
202 flags = wx.YES_NO | wx.ICON_QUESTION
0
goffi@necton2
parents:
diff changeset
203 else:
goffi@necton2
parents:
diff changeset
204 flags = wx.OK | wx.ICON_INFORMATION
1106
e2e1e27a3680 frontends: XMLUI refactoring + dialogs:
Goffi <goffi@goffi.org>
parents: 1103
diff changeset
205 log.error(_('unmanaged dialog type: %s'), type_)
0
goffi@necton2
parents:
diff changeset
206 dlg = wx.MessageDialog(self, message, title, flags)
goffi@necton2
parents:
diff changeset
207 answer = dlg.ShowModal()
goffi@necton2
parents:
diff changeset
208 dlg.Destroy()
182
556c2bd7c344 Primitivus now implement showDialog + new "newAlert" bridge method to show a dialog from core
Goffi <goffi@goffi.org>
parents: 180
diff changeset
209 if answer_cb:
556c2bd7c344 Primitivus now implement showDialog + new "newAlert" bridge method to show a dialog from core
Goffi <goffi@goffi.org>
parents: 180
diff changeset
210 data = [answer_data] if answer_data else []
556c2bd7c344 Primitivus now implement showDialog + new "newAlert" bridge method to show a dialog from core
Goffi <goffi@goffi.org>
parents: 180
diff changeset
211 answer_cb(True if (answer == wx.ID_YES or answer == wx.ID_OK) else False, *data)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
212
737
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
213 def setStatusOnline(self, online=True, show="", statuses={}):
0
goffi@necton2
parents:
diff changeset
214 """enable/disable controls, must be called when local user online status change"""
goffi@necton2
parents:
diff changeset
215 if online:
736
6246eb6d64a0 frontends: define the constants with classes and inheritance instance of using __builtin__
souliane <souliane@mailoo.org>
parents: 688
diff changeset
216 self.SetStatusText(Const.msgONLINE)
0
goffi@necton2
parents:
diff changeset
217 self.tools.Enable()
737
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
218 try:
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
219 presence = [x for x in Const.PRESENCE if x[0] == show][0][1]
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
220 self.statusBox.SetValue(presence)
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
221 except (TypeError, IndexError):
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
222 pass
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
223 try:
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
224 self.statusTxt.SetValue(statuses['default'])
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
225 except (TypeError, KeyError):
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
226 pass
0
goffi@necton2
parents:
diff changeset
227 else:
736
6246eb6d64a0 frontends: define the constants with classes and inheritance instance of using __builtin__
souliane <souliane@mailoo.org>
parents: 688
diff changeset
228 self.SetStatusText(Const.msgOFFLINE)
0
goffi@necton2
parents:
diff changeset
229 self.tools.Disable()
goffi@necton2
parents:
diff changeset
230 return
goffi@necton2
parents:
diff changeset
231
759
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
232 def launchAction(self, callback_id, data=None, profile_key="@NONE@"):
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
233 """ Launch a dynamic action
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
234 @param callback_id: id of the action to launch
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
235 @param data: data needed only for certain actions
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
236 @param profile_key: %(doc_profile_key)s
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
237
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
238 """
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
239 if data is None:
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
240 data = dict()
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
241 def action_cb(data):
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
242 if not data:
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
243 # action was a one shot, nothing to do
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
244 pass
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
245 elif "xmlui" in data:
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
246 log.debug (_("XML user interface received"))
1106
e2e1e27a3680 frontends: XMLUI refactoring + dialogs:
Goffi <goffi@goffi.org>
parents: 1103
diff changeset
247 ui = xmlui.create(self, xml_data = data['xmlui'])
e2e1e27a3680 frontends: XMLUI refactoring + dialogs:
Goffi <goffi@goffi.org>
parents: 1103
diff changeset
248 ui.show()
1035
c4c14480715a wix: update the connection mechanism to ask for non empty profile passwords
souliane <souliane@mailoo.org>
parents: 1011
diff changeset
249 elif "authenticated_profile" in data:
c4c14480715a wix: update the connection mechanism to ask for non empty profile passwords
souliane <souliane@mailoo.org>
parents: 1011
diff changeset
250 assert("caller" in data)
c4c14480715a wix: update the connection mechanism to ask for non empty profile passwords
souliane <souliane@mailoo.org>
parents: 1011
diff changeset
251 if data["caller"] == "profile_manager":
c4c14480715a wix: update the connection mechanism to ask for non empty profile passwords
souliane <souliane@mailoo.org>
parents: 1011
diff changeset
252 assert(self.profile_pan.IsShown())
c4c14480715a wix: update the connection mechanism to ask for non empty profile passwords
souliane <souliane@mailoo.org>
parents: 1011
diff changeset
253 self.profile_pan.getXMPPParams(data['authenticated_profile'])
c4c14480715a wix: update the connection mechanism to ask for non empty profile passwords
souliane <souliane@mailoo.org>
parents: 1011
diff changeset
254 elif data["caller"] == "plug_profile":
c4c14480715a wix: update the connection mechanism to ask for non empty profile passwords
souliane <souliane@mailoo.org>
parents: 1011
diff changeset
255 self.plug_profile_1(data['authenticated_profile'])
c4c14480715a wix: update the connection mechanism to ask for non empty profile passwords
souliane <souliane@mailoo.org>
parents: 1011
diff changeset
256 else:
c4c14480715a wix: update the connection mechanism to ask for non empty profile passwords
souliane <souliane@mailoo.org>
parents: 1011
diff changeset
257 raise NotImplementedError
759
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
258 else:
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
259 dlg = wx.MessageDialog(self, _(u"Unmanaged action result"),
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
260 _('Error'),
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
261 wx.OK | wx.ICON_ERROR
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
262 )
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
263 dlg.ShowModal()
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
264 dlg.Destroy()
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
265 def action_eb(failure):
1063
6ec513ad92c2 frontends: async failures are more detailed (full class name + error message)
souliane <souliane@mailoo.org>
parents: 1060
diff changeset
266 dlg = wx.MessageDialog(self, failure.message,
6ec513ad92c2 frontends: async failures are more detailed (full class name + error message)
souliane <souliane@mailoo.org>
parents: 1060
diff changeset
267 failure.fullname,
759
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
268 wx.OK | wx.ICON_ERROR
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
269 )
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
270 dlg.ShowModal()
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
271 dlg.Destroy()
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
272
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
273 self.bridge.launchAction(callback_id, data, profile_key, callback=action_cb, errback=action_eb)
93bd868b8fb6 backend, frontends: callbacks refactoring:
Goffi <goffi@goffi.org>
parents: 755
diff changeset
274
1103
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
275 def askConfirmationHandler(self, confirmation_id, confirmation_type, data, profile):
0
goffi@necton2
parents:
diff changeset
276 #TODO: refactor this in QuickApp
538
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
277 if not self.check_profile(profile):
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
278 return
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
279 log.debug (_("Confirmation asked"))
0
goffi@necton2
parents:
diff changeset
280 answer_data={}
538
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
281 if confirmation_type == "FILE_TRANSFER":
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
282 log.debug (_("File transfer confirmation asked"))
70
Goffi <goffi@goffi.org>
parents: 68
diff changeset
283 dlg = wx.MessageDialog(self, _("The contact %(jid)s wants to send you the file %(filename)s\nDo you accept ?") % {'jid':data["from"], 'filename':data["filename"]},
Goffi <goffi@goffi.org>
parents: 68
diff changeset
284 _('File Request'),
0
goffi@necton2
parents:
diff changeset
285 wx.YES_NO | wx.ICON_QUESTION
goffi@necton2
parents:
diff changeset
286 )
goffi@necton2
parents:
diff changeset
287 answer=dlg.ShowModal()
goffi@necton2
parents:
diff changeset
288 if answer==wx.ID_YES:
70
Goffi <goffi@goffi.org>
parents: 68
diff changeset
289 filename = wx.FileSelector(_("Where do you want to save the file ?"), flags = wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)
0
goffi@necton2
parents:
diff changeset
290 if filename:
goffi@necton2
parents:
diff changeset
291 answer_data["dest_path"] = filename
538
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
292 self.bridge.confirmationAnswer(confirmation_id, True, answer_data, profile)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
293 self.waitProgress(confirmation_id, _("File Transfer"), _("Copying %s") % os.path.basename(filename), profile)
0
goffi@necton2
parents:
diff changeset
294 else:
goffi@necton2
parents:
diff changeset
295 answer = wx.ID_NO
goffi@necton2
parents:
diff changeset
296 if answer==wx.ID_NO:
538
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
297 self.bridge.confirmationAnswer(confirmation_id, False, answer_data, profile)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
298
22
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
299 dlg.Destroy()
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
300
538
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
301 elif confirmation_type == "YES/NO":
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
302 log.debug (_("Yes/No confirmation asked"))
22
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
303 dlg = wx.MessageDialog(self, data["message"],
70
Goffi <goffi@goffi.org>
parents: 68
diff changeset
304 _('Confirmation'),
22
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
305 wx.YES_NO | wx.ICON_QUESTION
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
306 )
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
307 answer=dlg.ShowModal()
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
308 if answer==wx.ID_YES:
538
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
309 self.bridge.confirmationAnswer(confirmation_id, True, {}, profile)
22
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
310 if answer==wx.ID_NO:
538
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
311 self.bridge.confirmationAnswer(confirmation_id, False, {}, profile)
0
goffi@necton2
parents:
diff changeset
312
goffi@necton2
parents:
diff changeset
313 dlg.Destroy()
goffi@necton2
parents:
diff changeset
314
1103
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
315 def actionResultHandler(self, type_, id_, data, profile):
538
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
316 if not self.check_profile(profile):
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
317 return
1103
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
318 log.debug (_("actionResult: type_ = [%(type_)s] id_ = [%(id_)s] data = [%(data)s]") % {'type_':type_, 'id_':id_, 'data':data})
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
319 if not id_ in self.current_action_ids:
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
320 log.debug (_('unknown id_, ignoring'))
51
8c67ea98ab91 frontend improved to take into account new SàT features
Goffi <goffi@goffi.org>
parents: 42
diff changeset
321 return
1103
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
322 if type_ == "SUPPRESS":
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
323 self.current_action_ids.remove(id_)
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
324 elif type_ == "SUCCESS":
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
325 self.current_action_ids.remove(id_)
22
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
326 dlg = wx.MessageDialog(self, data["message"],
70
Goffi <goffi@goffi.org>
parents: 68
diff changeset
327 _('Success'),
22
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
328 wx.OK | wx.ICON_INFORMATION
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
329 )
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
330 dlg.ShowModal()
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
331 dlg.Destroy()
1103
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
332 elif type_ == "ERROR":
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
333 self.current_action_ids.remove(id_)
22
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
334 dlg = wx.MessageDialog(self, data["message"],
70
Goffi <goffi@goffi.org>
parents: 68
diff changeset
335 _('Error'),
22
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
336 wx.OK | wx.ICON_ERROR
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
337 )
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
338 dlg.ShowModal()
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
339 dlg.Destroy()
1103
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
340 elif type_ == "XMLUI":
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
341 self.current_action_ids.remove(id_)
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
342 log.debug (_("XML user interface received"))
91
39c672544593 Tarot: bidding phase
Goffi <goffi@goffi.org>
parents: 90
diff changeset
343 misc = {}
39c672544593 Tarot: bidding phase
Goffi <goffi@goffi.org>
parents: 90
diff changeset
344 #FIXME FIXME FIXME: must clean all this crap !
39c672544593 Tarot: bidding phase
Goffi <goffi@goffi.org>
parents: 90
diff changeset
345 title = _('Form')
1103
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
346 if data['type_'] == _('registration'):
103
6be927a465ed XMLUI refactoring, step 1
Goffi <goffi@goffi.org>
parents: 102
diff changeset
347 title = _('Registration')
91
39c672544593 Tarot: bidding phase
Goffi <goffi@goffi.org>
parents: 90
diff changeset
348 misc['target'] = data['target']
39c672544593 Tarot: bidding phase
Goffi <goffi@goffi.org>
parents: 90
diff changeset
349 misc['action_back'] = self.bridge.gatewayRegister
1106
e2e1e27a3680 frontends: XMLUI refactoring + dialogs:
Goffi <goffi@goffi.org>
parents: 1103
diff changeset
350 xmlui.create(self, title=title, xml_data = data['xml'], misc = misc)
1103
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
351 elif type_ == "RESULT":
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
352 self.current_action_ids.remove(id_)
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
353 if self.current_action_ids_cb.has_key(id_):
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
354 callback = self.current_action_ids_cb[id_]
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
355 del self.current_action_ids_cb[id_]
42
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
356 callback(data)
1103
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
357 elif type_ == "DICT_DICT":
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
358 self.current_action_ids.remove(id_)
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
359 if self.current_action_ids_cb.has_key(id_):
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
360 callback = self.current_action_ids_cb[id_]
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
361 del self.current_action_ids_cb[id_]
42
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
362 callback(data)
22
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
363 else:
1103
a096b8579a3c frontends: signals are managed in a more generic way
Goffi <goffi@goffi.org>
parents: 1093
diff changeset
364 log.error (_("FIXME FIXME FIXME: type_ [%s] not implemented") % type_)
22
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
365 raise NotImplementedError
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
366
bb72c29f3432 added action cb mechanism for buttons. Tested with a temporary new user registration button.
Goffi <goffi@goffi.org>
parents: 18
diff changeset
367
0
goffi@necton2
parents:
diff changeset
368
538
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
369 def progressCB(self, progress_id, title, message, profile):
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
370 data = self.bridge.getProgress(progress_id, profile)
0
goffi@necton2
parents:
diff changeset
371 if data:
goffi@necton2
parents:
diff changeset
372 if not self.pbar:
goffi@necton2
parents:
diff changeset
373 #first answer, we must construct the bar
180
fdb961f27ae9 Primitivus: file sending and progress management
Goffi <goffi@goffi.org>
parents: 120
diff changeset
374 self.pbar = wx.ProgressDialog(title, message, float(data['size']), None,
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
375 wx.PD_SMOOTH | wx.PD_ELAPSED_TIME | wx.PD_ESTIMATED_TIME | wx.PD_REMAINING_TIME)
180
fdb961f27ae9 Primitivus: file sending and progress management
Goffi <goffi@goffi.org>
parents: 120
diff changeset
376 self.pbar.finish_value = float(data['size'])
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
377
0
goffi@necton2
parents:
diff changeset
378 self.pbar.Update(int(data['position']))
goffi@necton2
parents:
diff changeset
379 elif self.pbar:
goffi@necton2
parents:
diff changeset
380 self.pbar.Update(self.pbar.finish_value)
goffi@necton2
parents:
diff changeset
381 return
goffi@necton2
parents:
diff changeset
382
538
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
383 wx.CallLater(10, self.progressCB, progress_id, title, message, profile)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
384
538
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
385 def waitProgress (self, progress_id, title, message, profile):
0
goffi@necton2
parents:
diff changeset
386 self.pbar = None
538
2c4016921403 core, frontends, bridgen plugins: fixed methods which were unproperly managing multi-profiles
Goffi <goffi@goffi.org>
parents: 513
diff changeset
387 wx.CallLater(10, self.progressCB, progress_id, title, message, profile)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
388
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
389
0
goffi@necton2
parents:
diff changeset
390
goffi@necton2
parents:
diff changeset
391 ### events ###
goffi@necton2
parents:
diff changeset
392
goffi@necton2
parents:
diff changeset
393 def onContactActivated(self, jid):
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
394 log.debug (_("onContactActivated: %s"), jid)
688
f7878ad3c846 tools: renamed tools.jid.JID attribute "short" to "bare"
souliane <souliane@mailoo.org>
parents: 679
diff changeset
395 if self.chat_wins[jid.bare].IsShown():
f7878ad3c846 tools: renamed tools.jid.JID attribute "short" to "bare"
souliane <souliane@mailoo.org>
parents: 679
diff changeset
396 self.chat_wins[jid.bare].Hide()
0
goffi@necton2
parents:
diff changeset
397 else:
688
f7878ad3c846 tools: renamed tools.jid.JID attribute "short" to "bare"
souliane <souliane@mailoo.org>
parents: 679
diff changeset
398 self.chat_wins[jid.bare].Show()
0
goffi@necton2
parents:
diff changeset
399
goffi@necton2
parents:
diff changeset
400 def onConnectRequest(self, e):
1060
aa15453ec54d core (xmpp), stdui (profile_manager), bridge, frontends: raise an exception if the XMPP connection failed instead of sending a signal
souliane <souliane@mailoo.org>
parents: 1059
diff changeset
401 QuickApp.asyncConnect(self, self.profile)
0
goffi@necton2
parents:
diff changeset
402
1
a06a151fc31f Disconnect first draft
Goffi <goffi@goffi.org>
parents: 0
diff changeset
403 def onDisconnectRequest(self, e):
68
9b842086d915 multiple profiles update
Goffi <goffi@goffi.org>
parents: 67
diff changeset
404 self.bridge.disconnect(self.profile)
1
a06a151fc31f Disconnect first draft
Goffi <goffi@goffi.org>
parents: 0
diff changeset
405
0
goffi@necton2
parents:
diff changeset
406 def __updateStatus(self):
737
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
407 show = [x for x in Const.PRESENCE if x[1] == self.statusBox.GetValue()][0][0]
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
408 status = self.statusTxt.GetValue()
378af36155c2 frontends: set and retrieve your own presence and status
souliane <souliane@mailoo.org>
parents: 736
diff changeset
409 self.bridge.setPresence(show=show, statuses={'default': status}, profile_key=self.profile) #FIXME: manage multilingual statuses
0
goffi@necton2
parents:
diff changeset
410
goffi@necton2
parents:
diff changeset
411 def onStatusChange(self, e):
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
412 log.debug(_("Status change request"))
0
goffi@necton2
parents:
diff changeset
413 self.__updateStatus()
goffi@necton2
parents:
diff changeset
414
goffi@necton2
parents:
diff changeset
415 def onParam(self, e):
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
416 log.debug(_("Param request"))
796
46aa5ada61bf core, frontends: XMLUI refactoring:
Goffi <goffi@goffi.org>
parents: 777
diff changeset
417 def success(params):
1106
e2e1e27a3680 frontends: XMLUI refactoring + dialogs:
Goffi <goffi@goffi.org>
parents: 1103
diff changeset
418 xmlui.create(self, xml_data=params, title=_("Configuration"))
796
46aa5ada61bf core, frontends: XMLUI refactoring:
Goffi <goffi@goffi.org>
parents: 777
diff changeset
419
46aa5ada61bf core, frontends: XMLUI refactoring:
Goffi <goffi@goffi.org>
parents: 777
diff changeset
420 def failure(error):
1063
6ec513ad92c2 frontends: async failures are more detailed (full class name + error message)
souliane <souliane@mailoo.org>
parents: 1060
diff changeset
421 dlg = wx.MessageDialog(self, error.message,
6ec513ad92c2 frontends: async failures are more detailed (full class name + error message)
souliane <souliane@mailoo.org>
parents: 1060
diff changeset
422 error.fullname,
796
46aa5ada61bf core, frontends: XMLUI refactoring:
Goffi <goffi@goffi.org>
parents: 777
diff changeset
423 wx.OK | wx.ICON_ERROR
46aa5ada61bf core, frontends: XMLUI refactoring:
Goffi <goffi@goffi.org>
parents: 777
diff changeset
424 )
46aa5ada61bf core, frontends: XMLUI refactoring:
Goffi <goffi@goffi.org>
parents: 777
diff changeset
425 dlg.ShowModal()
46aa5ada61bf core, frontends: XMLUI refactoring:
Goffi <goffi@goffi.org>
parents: 777
diff changeset
426 dlg.Destroy()
46aa5ada61bf core, frontends: XMLUI refactoring:
Goffi <goffi@goffi.org>
parents: 777
diff changeset
427 self.bridge.getParamsUI(app=Const.APP_NAME, profile_key=self.profile, callback=success, errback=failure)
0
goffi@necton2
parents:
diff changeset
428
191
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
429 def onAbout(self, e):
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
430 about = wx.AboutDialogInfo()
736
6246eb6d64a0 frontends: define the constants with classes and inheritance instance of using __builtin__
souliane <souliane@mailoo.org>
parents: 688
diff changeset
431 about.SetName(Const.APP_NAME)
191
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
432 about.SetVersion (unicode(self.bridge.getVersion()))
811
1fe00f0c9a91 dates update
Goffi <goffi@goffi.org>
parents: 807
diff changeset
433 about.SetCopyright(u"(C) 2009, 2010, 2011, 2012, 2013, 2014 Jérôme Poisson aka Goffi")
191
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
434 about.SetDescription( _(u"%(name)s is a SàT (Salut à Toi) frontend\n"+
736
6246eb6d64a0 frontends: define the constants with classes and inheritance instance of using __builtin__
souliane <souliane@mailoo.org>
parents: 688
diff changeset
435 u"%(name)s is based on WxPython, and is the standard graphic interface of SàT") % {'name': Const.APP_NAME})
191
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
436 about.SetWebSite(("http://www.goffi.org", "Goffi's non-hebdo (french)"))
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
437 about.SetDevelopers([ "Goffi (Jérôme Poisson)"])
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
438 try:
736
6246eb6d64a0 frontends: define the constants with classes and inheritance instance of using __builtin__
souliane <souliane@mailoo.org>
parents: 688
diff changeset
439 with open(Const.LICENCE_PATH, "r") as licence:
191
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
440 about.SetLicence(''.join(licence.readlines()))
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
441 except:
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
442 pass
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
443
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
444 wx.AboutBox(about)
1438a1337732 About added/updated for Wix & Jp
Goffi <goffi@goffi.org>
parents: 185
diff changeset
445
0
goffi@necton2
parents:
diff changeset
446 def onExit(self, e):
goffi@necton2
parents:
diff changeset
447 self.Close()
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
448
42
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
449 def onShowProfile(self, e):
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
450 log.debug(_("Show contact's profile request"))
501
e9634d2e7b38 core, quick_frontend, primitivus, wix: Contacts List refactoring phase 1:
Goffi <goffi@goffi.org>
parents: 491
diff changeset
451 target = self.contact_list.getSelection()
42
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
452 if not target:
70
Goffi <goffi@goffi.org>
parents: 68
diff changeset
453 dlg = wx.MessageDialog(self, _("You haven't selected any contact !"),
Goffi <goffi@goffi.org>
parents: 68
diff changeset
454 _('Error'),
42
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
455 wx.OK | wx.ICON_ERROR
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
456 )
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
457 dlg.ShowModal()
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
458 dlg.Destroy()
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
459 return
939
01342bfe9f41 wix: fixed onShowProfile
Goffi <goffi@goffi.org>
parents: 907
diff changeset
460 _id = self.bridge.getCard(target.bare, self.profile)
491
1e4731f1e1d7 wix: renamed id variable to avoid reserved name
Goffi <goffi@goffi.org>
parents: 480
diff changeset
461 self.current_action_ids.add(_id)
1e4731f1e1d7 wix: renamed id variable to avoid reserved name
Goffi <goffi@goffi.org>
parents: 480
diff changeset
462 self.current_action_ids_cb[_id] = self.onProfileReceived
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
463
42
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
464 def onProfileReceived(self, data):
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
465 """Called when a profile is received"""
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
466 log.debug (_('Profile received: [%s]') % data)
939
01342bfe9f41 wix: fixed onShowProfile
Goffi <goffi@goffi.org>
parents: 907
diff changeset
467 Profile(self, data)
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
468
72
f271fff3a713 MUC implementation: first draft
Goffi <goffi@goffi.org>
parents: 70
diff changeset
469 def onJoinRoom(self, e):
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
470 log.warning('FIXME: temporary menu, must be improved')
80
9681f18d06bd wix: basic dialog to join MUC room, jid node is now displayed in conversations instead of full jid
Goffi <goffi@goffi.org>
parents: 75
diff changeset
471 #TODO: a proper MUC room joining dialog with nickname etc
9681f18d06bd wix: basic dialog to join MUC room, jid node is now displayed in conversations instead of full jid
Goffi <goffi@goffi.org>
parents: 75
diff changeset
472 dlg = wx.TextEntryDialog(
9681f18d06bd wix: basic dialog to join MUC room, jid node is now displayed in conversations instead of full jid
Goffi <goffi@goffi.org>
parents: 75
diff changeset
473 self, _("Please enter MUC's JID"),
204
b2e1a13ed596 misc minors fixed before release
Goffi <goffi@goffi.org>
parents: 191
diff changeset
474 #_('Entering a MUC room'), 'test@conference.necton2.int')
b2e1a13ed596 misc minors fixed before release
Goffi <goffi@goffi.org>
parents: 191
diff changeset
475 _('Entering a MUC room'), 'room@muc_service.server.tld')
80
9681f18d06bd wix: basic dialog to join MUC room, jid node is now displayed in conversations instead of full jid
Goffi <goffi@goffi.org>
parents: 75
diff changeset
476 if dlg.ShowModal() == wx.ID_OK:
9681f18d06bd wix: basic dialog to join MUC room, jid node is now displayed in conversations instead of full jid
Goffi <goffi@goffi.org>
parents: 75
diff changeset
477 room_jid=JID(dlg.GetValue())
9681f18d06bd wix: basic dialog to join MUC room, jid node is now displayed in conversations instead of full jid
Goffi <goffi@goffi.org>
parents: 75
diff changeset
478 if room_jid.is_valid():
405
10b4f577d0c0 MUC update to follow wokkel's MUC branch update
Goffi <goffi@goffi.org>
parents: 391
diff changeset
479 self.bridge.joinMUC(room_jid, self.profiles[self.profile]['whoami'].node, {}, self.profile)
80
9681f18d06bd wix: basic dialog to join MUC room, jid node is now displayed in conversations instead of full jid
Goffi <goffi@goffi.org>
parents: 75
diff changeset
480 else:
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
481 log.error (_("'%s' is an invalid JID !"), room_jid)
42
874de3020e1c Initial VCard (XEP-0054) support + misc fixes
Goffi <goffi@goffi.org>
parents: 38
diff changeset
482
0
goffi@necton2
parents:
diff changeset
483 def onClose(self, e):
183
9ee4a1d0d7fb Added auto(dis)connect params + misc
Goffi <goffi@goffi.org>
parents: 182
diff changeset
484 QuickApp.onExit(self)
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
485 log.info(_("Exiting..."))
183
9ee4a1d0d7fb Added auto(dis)connect params + misc
Goffi <goffi@goffi.org>
parents: 182
diff changeset
486 for win in self.chat_wins:
9ee4a1d0d7fb Added auto(dis)connect params + misc
Goffi <goffi@goffi.org>
parents: 182
diff changeset
487 self.chat_wins[win].Destroy()
628
42ee0b0b0a15 wix: fixed application quitting (fix bug 25)
Goffi <goffi@goffi.org>
parents: 609
diff changeset
488 self.tray_icon.Destroy()
0
goffi@necton2
parents:
diff changeset
489 e.Skip()
11
37153f3a3dc1 wix: Tray Icon
Goffi <goffi@goffi.org>
parents: 1
diff changeset
490
37153f3a3dc1 wix: Tray Icon
Goffi <goffi@goffi.org>
parents: 1
diff changeset
491 def onTrayClick(self, e):
1011
5a6354ff468c wix: use of new logging system
Goffi <goffi@goffi.org>
parents: 987
diff changeset
492 log.debug(_("Tray Click"))
11
37153f3a3dc1 wix: Tray Icon
Goffi <goffi@goffi.org>
parents: 1
diff changeset
493 if self.IsShown():
37153f3a3dc1 wix: Tray Icon
Goffi <goffi@goffi.org>
parents: 1
diff changeset
494 self.Hide()
37153f3a3dc1 wix: Tray Icon
Goffi <goffi@goffi.org>
parents: 1
diff changeset
495 else:
37153f3a3dc1 wix: Tray Icon
Goffi <goffi@goffi.org>
parents: 1
diff changeset
496 self.Show()
37153f3a3dc1 wix: Tray Icon
Goffi <goffi@goffi.org>
parents: 1
diff changeset
497 self.Raise()
37153f3a3dc1 wix: Tray Icon
Goffi <goffi@goffi.org>
parents: 1
diff changeset
498 e.Skip()