[triggers] Update GUI

This commit is contained in:
Daniel Brötzmann
2018-10-15 23:16:00 +02:00
committed by Yann Leboulanger
parent 1d6a80fa69
commit 26f24fcd81
2 changed files with 861 additions and 757 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -56,7 +56,7 @@ except ImportError:
class Triggers(GajimPlugin): class Triggers(GajimPlugin):
@log_calls('TriggersPlugin') @log_calls('TriggersPlugin')
def init(self): def init(self):
self.description = _('Configure Gajim\'s behaviour for each contact') self.description = _('Configure Gajim\'s behaviour with conditions for each contact')
self.config_dialog = TriggersPluginConfigDialog(self) self.config_dialog = TriggersPluginConfigDialog(self)
self.config_default_values = {} self.config_default_values = {}
@@ -297,22 +297,22 @@ class TriggersPluginConfigDialog(GajimPluginConfigDialog):
self.xml = Gtk.Builder() self.xml = Gtk.Builder()
self.xml.set_translation_domain('gajim_plugins') self.xml.set_translation_domain('gajim_plugins')
self.xml.add_objects_from_file(self.GTK_BUILDER_FILE_PATH, self.xml.add_objects_from_file(self.GTK_BUILDER_FILE_PATH,
['vbox', 'liststore1', 'liststore2']) ['plugin_box', 'liststore1', 'liststore2'])
vbox = self.xml.get_object('vbox') plugin_box = self.xml.get_object('plugin_box')
self.get_child().pack_start(vbox, True, True, 0) self.get_child().pack_start(plugin_box, True, True, 0)
self.xml.connect_signals(self) self.xml.connect_signals(self)
self.connect('hide', self.on_hide) self.connect('hide', self.on_hide)
def on_run(self): def on_run(self):
# fill window # fill window
for w in ('conditions_treeview', 'config_vbox', 'event_combobox', for w in ('conditions_treeview', 'config_box', 'event_combobox',
'recipient_type_combobox', 'recipient_list_entry', 'delete_button', 'recipient_type_combobox', 'recipient_list_entry', 'delete_button',
'status_hbox', 'use_sound_cb', 'disable_sound_cb', 'use_popup_cb', 'use_sound_cb', 'disable_sound_cb', 'use_popup_cb',
'disable_popup_cb', 'use_auto_open_cb', 'disable_auto_open_cb', 'disable_popup_cb', 'use_auto_open_cb', 'disable_auto_open_cb',
'use_systray_cb', 'disable_systray_cb', 'use_roster_cb', 'use_systray_cb', 'disable_systray_cb', 'use_roster_cb',
'disable_roster_cb', 'tab_opened_cb', 'not_tab_opened_cb', 'focus_hbox', 'disable_roster_cb', 'tab_opened_cb', 'not_tab_opened_cb',
'has_focus_cb', 'not_has_focus_cb', 'sound_entry', 'sound_file_hbox', 'has_focus_cb', 'not_has_focus_cb', 'sound_entry', 'sound_file_box',
'up_button', 'down_button', 'run_command_cb', 'command_entry', 'up_button', 'down_button', 'run_command_cb', 'command_entry',
'one_shot_cb', 'use_urgency_hint_cb', 'disable_urgency_hint_cb'): 'one_shot_cb', 'use_urgency_hint_cb', 'disable_urgency_hint_cb'):
self.__dict__[w] = self.xml.get_object(w) self.__dict__[w] = self.xml.get_object(w)
@@ -322,15 +322,13 @@ class TriggersPluginConfigDialog(GajimPluginConfigDialog):
self.config[int(n)] = self.plugin.config[n] self.config[int(n)] = self.plugin.config[n]
# Contains status checkboxes # Contains status checkboxes
childs = self.status_hbox.get_children() self.all_status_rb = self.xml.get_object('all_status_rb')
self.special_status_rb = self.xml.get_object('special_status_rb')
self.all_status_rb = childs[0] self.online_cb = self.xml.get_object('online_cb')
self.special_status_rb = childs[1] self.away_cb = self.xml.get_object('away_cb')
self.online_cb = childs[2] self.xa_cb = self.xml.get_object('xa_cb')
self.away_cb = childs[3] self.dnd_cb = self.xml.get_object('dnd_cb')
self.xa_cb = childs[4] self.invisible_cb = self.xml.get_object('invisible_cb')
self.dnd_cb = childs[5]
self.invisible_cb = childs[6]
if not self.conditions_treeview.get_column(0): if not self.conditions_treeview.get_column(0):
# window never opened # window never opened
@@ -369,7 +367,7 @@ class TriggersPluginConfigDialog(GajimPluginConfigDialog):
# No rule selected at init time # No rule selected at init time
self.conditions_treeview.get_selection().unselect_all() self.conditions_treeview.get_selection().unselect_all()
self.active_num = -1 self.active_num = -1
self.config_vbox.set_sensitive(False) self.config_box.set_sensitive(False)
self.delete_button.set_sensitive(False) self.delete_button.set_sensitive(False)
self.down_button.set_sensitive(False) self.down_button.set_sensitive(False)
self.up_button.set_sensitive(False) self.up_button.set_sensitive(False)
@@ -411,6 +409,7 @@ class TriggersPluginConfigDialog(GajimPluginConfigDialog):
self.__dict__[v + '_cb'].set_active(True) self.__dict__[v + '_cb'].set_active(True)
else: else:
self.__dict__[v + '_cb'].set_active(False) self.__dict__[v + '_cb'].set_active(False)
self.on_status_radiobutton_toggled(self.all_status_rb) self.on_status_radiobutton_toggled(self.all_status_rb)
# tab_opened # tab_opened
@@ -483,12 +482,12 @@ class TriggersPluginConfigDialog(GajimPluginConfigDialog):
if self.all_status_rb.get_active(): if self.all_status_rb.get_active():
status = '' status = ''
else: else:
status = _('when I am ') status = _('and I am: ')
for st in ('online', 'away', 'xa', 'dnd', 'invisible'): for st in ('online', 'away', 'xa', 'dnd', 'invisible'):
if self.__dict__[st + '_cb'].get_active(): if self.__dict__[st + '_cb'].get_active():
status += helpers.get_uf_show(st) + ' ' status += helpers.get_uf_show(st) + ', '
model[iter_][1] = "When %s for %s %s %s" % (event, recipient_type, model[iter_][1] = _("When event: %s for category: %s %s %s") % (event,
recipient, status) recipient_type, recipient, status)
def on_conditions_treeview_cursor_changed(self, widget): def on_conditions_treeview_cursor_changed(self, widget):
(model, iter_) = widget.get_selection().get_selected() (model, iter_) = widget.get_selection().get_selected()
@@ -496,23 +495,23 @@ class TriggersPluginConfigDialog(GajimPluginConfigDialog):
self.active_num = '' self.active_num = ''
return return
self.active_num = model[iter_][0] self.active_num = model[iter_][0]
if self.active_num == '0': if self.active_num == 0:
self.up_button.set_sensitive(False) self.up_button.set_sensitive(False)
else: else:
self.up_button.set_sensitive(True) self.up_button.set_sensitive(True)
max = self.conditions_treeview.get_model().iter_n_children(None) _max = self.conditions_treeview.get_model().iter_n_children(None)
if self.active_num == max - 1: if self.active_num == _max - 1:
self.down_button.set_sensitive(False) self.down_button.set_sensitive(False)
else: else:
self.down_button.set_sensitive(True) self.down_button.set_sensitive(True)
self.initiate_rule_state() self.initiate_rule_state()
self.config_vbox.set_sensitive(True) self.config_box.set_sensitive(True)
self.delete_button.set_sensitive(True) self.delete_button.set_sensitive(True)
def on_new_button_clicked(self, widget): def on_new_button_clicked(self, widget):
model = self.conditions_treeview.get_model() model = self.conditions_treeview.get_model()
num = self.conditions_treeview.get_model().iter_n_children(None) num = self.conditions_treeview.get_model().iter_n_children(None)
self.config[num] = {'event': '', 'recipient_type': 'all', self.config[num] = {'event': 'message_received', 'recipient_type': 'all',
'recipients': '', 'status': 'all', 'tab_opened': 'both', 'recipients': '', 'status': 'all', 'tab_opened': 'both',
'has_focus': 'both', 'sound': '', 'sound_file': '', 'popup': '', 'has_focus': 'both', 'sound': '', 'sound_file': '', 'popup': '',
'auto_open': '', 'run_command': False, 'command': '', 'systray': '', 'auto_open': '', 'run_command': False, 'command': '', 'systray': '',
@@ -522,7 +521,7 @@ class TriggersPluginConfigDialog(GajimPluginConfigDialog):
self.conditions_treeview.set_cursor(path) self.conditions_treeview.set_cursor(path)
self.active_num = num self.active_num = num
self.set_treeview_string() self.set_treeview_string()
self.config_vbox.set_sensitive(True) self.config_box.set_sensitive(True)
def on_delete_button_clicked(self, widget): def on_delete_button_clicked(self, widget):
(model, iter_) = self.conditions_treeview.get_selection().get_selected() (model, iter_) = self.conditions_treeview.get_selection().get_selected()
@@ -539,7 +538,7 @@ class TriggersPluginConfigDialog(GajimPluginConfigDialog):
model.remove(iter_) model.remove(iter_)
del self.config[num] del self.config[num]
self.active_num = '' self.active_num = ''
self.config_vbox.set_sensitive(False) self.config_box.set_sensitive(False)
self.delete_button.set_sensitive(False) self.delete_button.set_sensitive(False)
self.up_button.set_sensitive(False) self.up_button.set_sensitive(False)
self.down_button.set_sensitive(False) self.down_button.set_sensitive(False)
@@ -596,9 +595,9 @@ class TriggersPluginConfigDialog(GajimPluginConfigDialog):
self.recipient_type_combobox.get_active()] self.recipient_type_combobox.get_active()]
self.config[self.active_num]['recipient_type'] = recipient_type self.config[self.active_num]['recipient_type'] = recipient_type
if recipient_type == 'all': if recipient_type == 'all':
self.recipient_list_entry.hide() self.recipient_list_entry.set_sensitive(False)
else: else:
self.recipient_list_entry.show() self.recipient_list_entry.set_sensitive(True)
self.set_treeview_string() self.set_treeview_string()
def on_recipient_list_entry_changed(self, widget): def on_recipient_list_entry_changed(self, widget):
@@ -625,19 +624,18 @@ class TriggersPluginConfigDialog(GajimPluginConfigDialog):
if self.active_num < 0: if self.active_num < 0:
return return
if self.all_status_rb.get_active(): if self.all_status_rb.get_active():
self.xml.get_object('status_expander').set_expanded(False)
self.config[self.active_num]['status'] = 'all' self.config[self.active_num]['status'] = 'all'
# 'All status' clicked # 'All status' clicked
for st in ('online', 'away', 'xa', 'dnd', 'invisible'): for st in ('online', 'away', 'xa', 'dnd', 'invisible'):
self.__dict__[st + '_cb'].hide() self.__dict__[st + '_cb'].set_sensitive(False)
self.special_status_rb.show()
else: else:
self.xml.get_object('status_expander').set_expanded(True)
self.set_status_config() self.set_status_config()
# 'special status' clicked # 'special status' clicked
for st in ('online', 'away', 'xa', 'dnd', 'invisible'): for st in ('online', 'away', 'xa', 'dnd', 'invisible'):
self.__dict__[st + '_cb'].show() self.__dict__[st + '_cb'].set_sensitive(True)
self.special_status_rb.hide()
self.set_treeview_string() self.set_treeview_string()
def on_status_cb_toggled(self, widget): def on_status_cb_toggled(self, widget):
@@ -650,13 +648,15 @@ class TriggersPluginConfigDialog(GajimPluginConfigDialog):
if self.active_num < 0: if self.active_num < 0:
return return
if self.tab_opened_cb.get_active(): if self.tab_opened_cb.get_active():
self.focus_hbox.set_sensitive(True) self.has_focus_cb.set_sensitive(True)
self.not_has_focus_cb.set_sensitive(True)
if self.not_tab_opened_cb.get_active(): if self.not_tab_opened_cb.get_active():
self.config[self.active_num]['tab_opened'] = 'both' self.config[self.active_num]['tab_opened'] = 'both'
else: else:
self.config[self.active_num]['tab_opened'] = 'yes' self.config[self.active_num]['tab_opened'] = 'yes'
else: else:
self.focus_hbox.set_sensitive(False) self.has_focus_cb.set_sensitive(False)
self.not_has_focus_cb.set_sensitive(False)
self.not_tab_opened_cb.set_active(True) self.not_tab_opened_cb.set_active(True)
self.config[self.active_num]['tab_opened'] = 'no' self.config[self.active_num]['tab_opened'] = 'no'
@@ -720,9 +720,9 @@ class TriggersPluginConfigDialog(GajimPluginConfigDialog):
def on_use_sound_cb_toggled(self, widget): def on_use_sound_cb_toggled(self, widget):
self.on_use_it_toggled(widget, self.disable_sound_cb, 'sound') self.on_use_it_toggled(widget, self.disable_sound_cb, 'sound')
if widget.get_active(): if widget.get_active():
self.sound_file_hbox.set_sensitive(True) self.sound_file_box.set_sensitive(True)
else: else:
self.sound_file_hbox.set_sensitive(False) self.sound_file_box.set_sensitive(False)
def on_browse_for_sounds_button_clicked(self, widget, data=None): def on_browse_for_sounds_button_clicked(self, widget, data=None):
if NEW_FILECHOOSER: if NEW_FILECHOOSER: