Philipp Hörist pushed to branch master at gajim / gajim
Commits: 746c4987 by lovetox at 2020-08-12T17:31:01+02:00 Preferences: Remove status message settings
Adding/Removing presets is now in the status change dialog available
- - - - - 2f57f62d by lovetox at 2020-08-12T17:34:15+02:00 Config: Remove obsolete default values
- - - - - d9b60f8e by lovetox at 2020-08-12T18:11:49+02:00 StatusChange: Show dialog correctly on sign-in/out
Also fix some layout issues
- - - - -
5 changed files:
- gajim/common/config.py - gajim/data/gui/preferences_window.ui - gajim/data/gui/status_change_window.ui - gajim/gtk/preferences.py - gajim/gtk/status_change.py
Changes:
===================================== gajim/common/config.py ===================================== @@ -370,12 +370,6 @@ class Config: _('Working'): [_('I'm working.'), 'working', 'other', '', '', ''], _('Phone'): [_('I'm on the phone.'), 'talking', 'on_the_phone', '', '', ''], _('Out'): [_('I'm out enjoying life.'), 'relaxing', 'going_out', '', '', ''], - '_last_online': ['', '', '', '', '', ''], - '_last_chat': ['', '', '', '', '', ''], - '_last_away': ['', '', '', '', '', ''], - '_last_xa': ['', '', '', '', '', ''], - '_last_dnd': ['', '', '', '', '', ''], - '_last_offline': ['', '', '', '', '', ''], }
soundevents_default = {
===================================== gajim/data/gui/preferences_window.ui ===================================== @@ -1575,148 +1575,7 @@ $T will be replaced by auto-not-available timeout.</property> </packing> </child> <child> - <object class="GtkFrame"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label_xalign">0</property> - <property name="shadow_type">none</property> - <child> - <object class="GtkGrid"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="margin_top">6</property> - <property name="row_spacing">6</property> - <property name="column_spacing">12</property> - <child> - <object class="GtkScrolledWindow" id="scrolledwindow1"> - <property name="height_request">250</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hexpand">True</property> - <property name="vexpand">True</property> - <property name="shadow_type">in</property> - <child> - <object class="GtkTreeView" id="msg_treeview"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="model">status_message_liststore</property> - <property name="headers_visible">False</property> - <property name="search_column">0</property> - <signal name="cursor-changed" handler="on_msg_treeview_cursor_changed" swapped="no"/> - <signal name="key-press-event" handler="on_msg_treeview_key_press_event" swapped="no"/> - <child internal-child="selection"> - <object class="GtkTreeSelection"/> - </child> - </object> - </child> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> - </packing> - </child> - <child> - <object class="GtkScrolledWindow" id="scrolledwindow2"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hexpand">True</property> - <property name="hscrollbar_policy">never</property> - <property name="vscrollbar_policy">never</property> - <property name="shadow_type">in</property> - <child> - <object class="GtkTextView" id="msg_textview"> - <property name="height_request">21</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="wrap_mode">word</property> - </object> - </child> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> - </packing> - </child> - <child> - <object class="GtkButtonBox"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">start</property> - <property name="valign">start</property> - <property name="orientation">vertical</property> - <property name="spacing">12</property> - <property name="layout_style">start</property> - <child> - <object class="GtkButton" id="new_msg_button"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="receives_default">False</property> - <signal name="clicked" handler="on_new_msg_button_clicked" swapped="no"/> - <child> - <object class="GtkImage" id="status-message-add"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="icon_name">list-add-symbolic</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkButton" id="delete_msg_button"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="receives_default">False</property> - <signal name="clicked" handler="on_delete_msg_button_clicked" swapped="no"/> - <child> - <object class="GtkImage" id="status-message-remove"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="icon_name">list-remove-symbolic</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> - </packing> - </child> - <child> - <placeholder/> - </child> - </object> - </child> - <child type="label"> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Preset Status Messages</property> - <property name="use_markup">True</property> - <style> - <class name="bold"/> - <class name="margin-top6"/> - </style> - </object> - </child> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">2</property> - </packing> + <placeholder/> </child> </object> <packing>
===================================== gajim/data/gui/status_change_window.ui ===================================== @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.36.0 --> +<!-- Generated with glade 3.22.1 --> <interface> <requires lib="gtk+" version="3.22"/> <object class="GtkPopover" id="preset_popover"> @@ -116,7 +116,7 @@ </packing> </child> <child> - <object class="GtkGrid"> + <object class="GtkGrid" id="pep_grid"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">center</property>
===================================== gajim/gtk/preferences.py ===================================== @@ -270,17 +270,6 @@ class Preferences(Gtk.ApplicationWindow): st = app.config.get('ask_offline_status') self._ui.prompt_offline_status_message_checkbutton.set_active(st)
- # Status messages - renderer = Gtk.CellRendererText() - renderer.connect('edited', self.on_msg_cell_edited) - renderer.set_property('editable', True) - col = Gtk.TreeViewColumn('name', renderer, text=0) - self._ui.msg_treeview.append_column(col) - self.fill_msg_treeview() - - buf = self._ui.msg_textview.get_buffer() - buf.connect('end-user-action', self.on_msg_textview_changed) - ### Style tab ### # Themes self.changed_id = self._ui.theme_combobox.connect( @@ -427,11 +416,6 @@ class Preferences(Gtk.ApplicationWindow): self._ui.connect_signals(self) self.connect('key-press-event', self._on_key_press)
- self._ui.msg_treeview.get_model().connect('row-changed', - self.on_msg_treemodel_row_changed) - self._ui.msg_treeview.get_model().connect('row-deleted', - self.on_msg_treemodel_row_deleted) - self.sounds_preferences = None self.theme_preferences = None
@@ -687,111 +671,6 @@ class Preferences(Gtk.ApplicationWindow): def on_prompt_offline_status_message_checkbutton_toggled(self, widget): self.on_checkbutton_toggled(widget, 'ask_offline_status')
- def save_status_messages(self, model): - for msg in app.config.get_per('statusmsg'): - app.config.del_per('statusmsg', msg) - iter_ = model.get_iter_first() - while iter_: - val = model[iter_][0] - if model[iter_][1]: # We have a preset message - if not val: # No title, use message text for title - val = model[iter_][1] - app.config.add_per('statusmsg', val) - msg = helpers.to_one_line(model[iter_][1]) - app.config.set_per('statusmsg', val, 'message', msg) - i = 2 - # Store mood / activity - for subname in ('activity', 'subactivity', 'activity_text', - 'mood', 'mood_text'): - val2 = model[iter_][i] - if not val2: - val2 = '' - app.config.set_per('statusmsg', val, subname, val2) - i += 1 - iter_ = model.iter_next(iter_) - - def on_msg_treemodel_row_changed(self, model, path, iter_): - self.save_status_messages(model) - - def on_msg_treemodel_row_deleted(self, model, path): - self.save_status_messages(model) - - def fill_msg_treeview(self): - self._ui.delete_msg_button.set_sensitive(False) - model = self._ui.msg_treeview.get_model() - model.clear() - preset_status = [] - for msg_name in app.config.get_per('statusmsg'): - if msg_name.startswith('_last_'): - continue - preset_status.append(msg_name) - preset_status.sort() - for msg_name in preset_status: - msg_text = app.config.get_per('statusmsg', msg_name, 'message') - msg_text = helpers.from_one_line(msg_text) - activity = app.config.get_per('statusmsg', msg_name, 'activity') - subactivity = app.config.get_per('statusmsg', msg_name, - 'subactivity') - activity_text = app.config.get_per('statusmsg', msg_name, - 'activity_text') - mood = app.config.get_per('statusmsg', msg_name, 'mood') - mood_text = app.config.get_per('statusmsg', msg_name, 'mood_text') - iter_ = model.append() - model.set(iter_, 0, msg_name, 1, msg_text, 2, activity, 3, - subactivity, 4, activity_text, 5, mood, 6, mood_text) - - def on_msg_cell_edited(self, cell, row, new_text): - model = self._ui.msg_treeview.get_model() - iter_ = model.get_iter_from_string(row) - model.set_value(iter_, 0, new_text) - - def on_msg_treeview_cursor_changed(self, widget, data=None): - sel = self._ui.msg_treeview.get_selection() - if not sel: - return - (model, iter_) = sel.get_selected() - if not iter_: - return - self._ui.delete_msg_button.set_sensitive(True) - buf = self._ui.msg_textview.get_buffer() - msg = model[iter_][1] - buf.set_text(msg) - - def on_new_msg_button_clicked(self, widget, data=None): - model = self._ui.msg_treeview.get_model() - iter_ = model.append() - model.set( - iter_, 0, _('status message title'), 1, - _('status message text')) - self._ui.msg_treeview.set_cursor(model.get_path(iter_)) - - def on_delete_msg_button_clicked(self, widget, data=None): - sel = self._ui.msg_treeview.get_selection() - if not sel: - return - (model, iter_) = sel.get_selected() - if not iter_: - return - buf = self._ui.msg_textview.get_buffer() - model.remove(iter_) - buf.set_text('') - self._ui.delete_msg_button.set_sensitive(False) - - def on_msg_textview_changed(self, widget, data=None): - sel = self._ui.msg_treeview.get_selection() - if not sel: - return - (model, iter_) = sel.get_selected() - if not iter_: - return - buf = self._ui.msg_textview.get_buffer() - first_iter, end_iter = buf.get_bounds() - model.set_value(iter_, 1, buf.get_text(first_iter, end_iter, True)) - - def on_msg_treeview_key_press_event(self, widget, event): - if event.keyval == Gdk.KEY_Delete: - self.on_delete_msg_button_clicked(widget) - ### Style ### @staticmethod def on_theme_combobox_changed(combobox):
===================================== gajim/gtk/status_change.py ===================================== @@ -57,6 +57,7 @@ class StatusChange(Gtk.ApplicationWindow, TimeoutWindow): self.set_name('StatusChange') self.set_application(app.app) self.set_position(Gtk.WindowPosition.CENTER) + self.set_default_size(400, 350) self.set_show_menubar(False) self.set_transient_for(app.interface.roster.window) self.title_text = _('Status Message') # TimeoutWindow @@ -96,14 +97,8 @@ class StatusChange(Gtk.ApplicationWindow, TimeoutWindow): self._draw_mood() self._init_moods() else: - self._ui.activity_label.set_no_show_all(True) - self._ui.activity_button.set_no_show_all(True) - self._ui.mood_label.set_no_show_all(True) - self._ui.mood_button.set_no_show_all(True) - self._ui.activity_label.hide() - self._ui.activity_button.hide() - self._ui.mood_label.hide() - self._ui.mood_button.hide() + self._ui.pep_grid.set_no_show_all(True) + self._ui.pep_grid.hide()
self._message_buffer.connect('changed', self._stop_timeout) self.connect('key-press-event', self._on_key_press) @@ -161,7 +156,7 @@ class StatusChange(Gtk.ApplicationWindow, TimeoutWindow): activities = [] subactivities = [] moods = [] - for account in app.get_connected_accounts(): + for account in app.connections: status_messages.append(app.connections[account].status_message) activity_data = app.connections[account].pep.get( PEPEventType.ACTIVITY)
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/3069253637125bcafa4fefc58390ec04...