annotate cagou/plugins/plugin_wid_settings.py @ 406:03554ad70846

common (jidSelector): replace implitict_update mechanism by real-time update: instead of having the possibility to (de)activate implicit update, real time update of items is now done. For now only the notifications and opened chat items are updated in real time.
author Goffi <goffi@goffi.org>
date Wed, 12 Feb 2020 20:02:58 +0100
parents 1da3c379205b
children 3c9ba4a694ef
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
379
1da3c379205b fixed shebangs
Goffi <goffi@goffi.org>
parents: 378
diff changeset
1 #!/usr/bin/env python3
1da3c379205b fixed shebangs
Goffi <goffi@goffi.org>
parents: 378
diff changeset
2
70
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
3
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
4 # Cagou: desktop/mobile frontend for Salut à Toi XMPP client
378
4d660b252487 dates update
Goffi <goffi@goffi.org>
parents: 372
diff changeset
5 # Copyright (C) 2016-2020 Jérôme Poisson (goffi@goffi.org)
70
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
6
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
7 # This program is free software: you can redistribute it and/or modify
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
8 # it under the terms of the GNU Affero General Public License as published by
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
9 # the Free Software Foundation, either version 3 of the License, or
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
10 # (at your option) any later version.
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
11
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
12 # This program is distributed in the hope that it will be useful,
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
15 # GNU Affero General Public License for more details.
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
16
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
17 # You should have received a copy of the GNU Affero General Public License
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
19
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
20
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
21 from sat.core import log as logging
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
22 from sat.core.i18n import _
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
23 from sat.core.constants import Const as C
372
1481f09c9175 settings (android): don't expose autoconnect parameters:
Goffi <goffi@goffi.org>
parents: 371
diff changeset
24 from sat.tools.common import data_format
70
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
25 from sat_frontends.quick_frontend import quick_widgets
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
26 from kivy.uix.label import Label
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
27 from kivy.uix.widget import Widget
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
28 from cagou.core import cagou_widget
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
29 from cagou import G
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
30
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
31
372
1481f09c9175 settings (android): don't expose autoconnect parameters:
Goffi <goffi@goffi.org>
parents: 371
diff changeset
32 log = logging.getLogger(__name__)
1481f09c9175 settings (android): don't expose autoconnect parameters:
Goffi <goffi@goffi.org>
parents: 371
diff changeset
33
1481f09c9175 settings (android): don't expose autoconnect parameters:
Goffi <goffi@goffi.org>
parents: 371
diff changeset
34
70
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
35 PLUGIN_INFO = {
312
772c170b47a9 Python3 port:
Goffi <goffi@goffi.org>
parents: 286
diff changeset
36 "name": _("settings"),
286
4772ba26623f xmlui: many improvments:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
37 "main": "CagouSettings",
312
772c170b47a9 Python3 port:
Goffi <goffi@goffi.org>
parents: 286
diff changeset
38 "description": _("Cagou/SàT settings"),
772c170b47a9 Python3 port:
Goffi <goffi@goffi.org>
parents: 286
diff changeset
39 "icon_symbol": "wrench",
70
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
40 }
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
41
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
42
286
4772ba26623f xmlui: many improvments:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
43 class CagouSettings(quick_widgets.QuickWidget, cagou_widget.CagouWidget):
4772ba26623f xmlui: many improvments:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
44 # XXX: this class can't be called "Settings", because Kivy has already a class
4772ba26623f xmlui: many improvments:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
45 # of this name, and the kv there would apply
70
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
46
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
47 def __init__(self, host, target, profiles):
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
48 quick_widgets.QuickWidget.__init__(self, G.host, target, profiles)
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
49 cagou_widget.CagouWidget.__init__(self)
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
50 # the Widget() avoid CagouWidget header to be down at the beginning
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
51 # then up when the UI is loaded
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
52 self.loading_widget = Widget()
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
53 self.add_widget(self.loading_widget)
372
1481f09c9175 settings (android): don't expose autoconnect parameters:
Goffi <goffi@goffi.org>
parents: 371
diff changeset
54 extra = {}
1481f09c9175 settings (android): don't expose autoconnect parameters:
Goffi <goffi@goffi.org>
parents: 371
diff changeset
55 G.local_platform.updateParamsExtra(extra)
1481f09c9175 settings (android): don't expose autoconnect parameters:
Goffi <goffi@goffi.org>
parents: 371
diff changeset
56 G.host.bridge.getParamsUI(
1481f09c9175 settings (android): don't expose autoconnect parameters:
Goffi <goffi@goffi.org>
parents: 371
diff changeset
57 -1, C.APP_NAME, data_format.serialise(extra), self.profile,
1481f09c9175 settings (android): don't expose autoconnect parameters:
Goffi <goffi@goffi.org>
parents: 371
diff changeset
58 callback=self.getParamsUICb,
1481f09c9175 settings (android): don't expose autoconnect parameters:
Goffi <goffi@goffi.org>
parents: 371
diff changeset
59 errback=self.getParamsUIEb)
70
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
60
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
61 def changeWidget(self, widget):
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
62 self.clear_widgets([self.loading_widget])
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
63 del self.loading_widget
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
64 self.add_widget(widget)
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
65
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
66 def getParamsUICb(self, xmlui):
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
67 G.host.actionManager({"xmlui": xmlui}, ui_show_cb=self.changeWidget, profile=self.profile)
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
68
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
69 def getParamsUIEb(self, failure):
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
70 self.changeWidget(Label(
312
772c170b47a9 Python3 port:
Goffi <goffi@goffi.org>
parents: 286
diff changeset
71 text=_("Can't load parameters!"),
70
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
72 bold=True,
46b5f3ecf6a1 settings: settings widget plugin, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
73 color=(1,0,0,1)))
371
080b6cc17f53 settings: fixed wrong type for Note title when there is an error while getting XMLUI
Goffi <goffi@goffi.org>
parents: 312
diff changeset
74 G.host.showDialog("Can't load params UI", str(failure), "error")