Philipp Hörist pushed to branch master at gajim / gajim
Commits: 7b329e96 by Daniel Brötzmann at 2019-04-11T17:39:44Z Bookmarks: Dont unselect all bookmarks after clicking Remove
- - - - - 1e47cfaa by Daniel Brötzmann at 2019-04-11T17:39:52Z Bookmarks: Adapt to _ui scheme
- - - - - a717ec93 by Daniel Brötzmann at 2019-04-11T17:39:56Z Bookmarks: Add tooltips, connect mnemonics, rename autojoin
- - - - -
2 changed files:
- gajim/data/gui/manage_bookmarks_window.ui - gajim/gtk/bookmarks.py
Changes:
===================================== gajim/data/gui/manage_bookmarks_window.ui ===================================== @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- Generated with glade 3.22.1 --> <interface> - <requires lib="gtk+" version="3.18"/> + <requires lib="gtk+" version="3.20"/> <object class="GtkListStore" id="liststore1"> <columns> <!-- column-name item --> @@ -22,10 +22,7 @@ <object class="GtkBox"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="margin_left">18</property> - <property name="margin_right">18</property> - <property name="margin_top">18</property> - <property name="margin_bottom">18</property> + <property name="border_width">18</property> <property name="spacing">18</property> <child> <object class="GtkBox"> @@ -68,6 +65,7 @@ <object class="GtkToolButton" id="add_bookmark_button"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Add Bookmark</property> <property name="use_underline">True</property> <property name="icon_name">list-add-symbolic</property> <signal name="clicked" handler="on_add_bookmark_button_clicked" swapped="no"/> @@ -81,6 +79,7 @@ <object class="GtkToolButton" id="remove_bookmark_button"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Remove Bookmark</property> <property name="use_underline">True</property> <property name="icon_name">list-remove-symbolic</property> <signal name="clicked" handler="on_remove_bookmark_button_clicked" swapped="no"/> @@ -117,16 +116,16 @@ <object class="GtkGrid"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="margin_left">6</property> <property name="row_spacing">6</property> <property name="column_spacing">12</property> <child> - <object class="GtkLabel" id="label325"> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">end</property> - <property name="label" translatable="yes">Name</property> + <property name="label" translatable="yes">N_ame</property> <property name="use_underline">True</property> + <property name="mnemonic_widget">title_entry</property> <property name="xalign">0</property> <style> <class name="dim-label"/> @@ -153,13 +152,14 @@ </packing> </child> <child> - <object class="GtkLabel" id="label317"> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">end</property> <property name="margin_top">12</property> <property name="label" translatable="yes">_Server</property> <property name="use_underline">True</property> + <property name="mnemonic_widget">server_entry</property> <property name="xalign">0</property> <style> <class name="dim-label"/> @@ -184,13 +184,14 @@ </packing> </child> <child> - <object class="GtkLabel" id="label315"> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">end</property> <property name="margin_top">12</property> <property name="label" translatable="yes">_Nickname</property> <property name="use_underline">True</property> + <property name="mnemonic_widget">nick_entry</property> <property name="xalign">0</property> <style> <class name="dim-label"/> @@ -215,12 +216,13 @@ </packing> </child> <child> - <object class="GtkLabel" id="label316"> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">end</property> <property name="label" translatable="yes">Roo_m</property> <property name="use_underline">True</property> + <property name="mnemonic_widget">room_entry</property> <property name="xalign">0</property> <style> <class name="dim-label"/> @@ -244,12 +246,13 @@ </packing> </child> <child> - <object class="GtkLabel" id="label318"> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">end</property> <property name="label" translatable="yes">_Password</property> <property name="use_underline">True</property> + <property name="mnemonic_widget">pass_entry</property> <property name="xalign">0</property> <style> <class name="dim-label"/> @@ -301,7 +304,9 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">start</property> - <property name="label" translatable="yes">Auto Join</property> + <property name="label" translatable="yes">_Join Automatically</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">autojoin_checkbutton</property> </object> <packing> <property name="expand">False</property>
===================================== gajim/gtk/bookmarks.py ===================================== @@ -38,9 +38,9 @@ class Row(IntEnum):
class ManageBookmarksWindow: def __init__(self): - self.xml = get_builder('manage_bookmarks_window.ui') - self.window = self.xml.get_object('manage_bookmarks_window') - self.window.set_transient_for(app.interface.roster.window) + self._ui = get_builder('manage_bookmarks_window.ui') + self._ui.manage_bookmarks_window.set_transient_for( + app.interface.roster.window)
self.ignore_events = False
@@ -67,37 +67,27 @@ class ManageBookmarksWindow: bookmark.nick, bookmark.name])
- self.view = self.xml.get_object('bookmarks_treeview') - self.view.set_model(self.treestore) - self.view.expand_all() + self._ui.bookmarks_treeview.set_model(self.treestore) + self._ui.bookmarks_treeview.expand_all()
renderer = Gtk.CellRendererText() column = Gtk.TreeViewColumn('Bookmarks', renderer, text=Row.LABEL) - self.view.append_column(column) + self._ui.bookmarks_treeview.append_column(column)
- self.selection = self.view.get_selection() + self.selection = self._ui.bookmarks_treeview.get_selection() self.selection.connect('changed', self.bookmark_selected)
# Prepare input fields - self.title_entry = self.xml.get_object('title_entry') - self.title_entry.connect('changed', self.on_title_entry_changed) - self.nick_entry = self.xml.get_object('nick_entry') - self.nick_entry.connect('changed', self.on_nick_entry_changed) - self.server_entry = self.xml.get_object('server_entry') - self.server_entry.connect( + self._ui.title_entry.connect('changed', self.on_title_entry_changed) + self._ui.nick_entry.connect('changed', self.on_nick_entry_changed) + self._ui.server_entry.connect( 'focus-out-event', self.on_server_entry_focus_out) - self.room_entry = self.xml.get_object('room_entry') - self.room_entry_changed_id = self.room_entry.connect( + self.room_entry_changed_id = self._ui.room_entry.connect( 'changed', self.on_room_entry_changed) - self.pass_entry = self.xml.get_object('pass_entry') - self.pass_entry.connect('changed', self.on_pass_entry_changed) - self.autojoin_checkbutton = self.xml.get_object('autojoin_checkbutton') - self.settings_box = self.xml.get_object('settings_box') - self.remove_bookmark_button = self.xml.get_object( - 'remove_bookmark_button') - - self.xml.connect_signals(self) - self.window.show_all() + self._ui.pass_entry.connect('changed', self.on_pass_entry_changed) + + self._ui.connect_signals(self) + self._ui.manage_bookmarks_window.show_all() # select root iter first_iter = self.treestore.get_iter_first() if first_iter: @@ -105,7 +95,7 @@ class ManageBookmarksWindow:
def on_key_press_event(self, widget, event): if event.keyval == Gdk.KEY_Escape: - self.window.destroy() + self._ui.manage_bookmarks_window.destroy()
def on_add_bookmark_button_clicked(self, widget): """ @@ -132,8 +122,8 @@ class ManageBookmarksWindow: iter_ = self.treestore.append(add_to, [ account, label, '@', False, '', nick, label])
- self.view.expand_row(model.get_path(add_to), True) - self.view.set_cursor(model.get_path(iter_)) + self._ui.bookmarks_treeview.expand_row(model.get_path(add_to), True) + self._ui.bookmarks_treeview.set_cursor(model.get_path(iter_))
def on_remove_bookmark_button_clicked(self, widget): """ @@ -149,10 +139,9 @@ class ManageBookmarksWindow:
self.ignore_events = True model.remove(iter_) - self.selection.unselect_all() self.clear_fields() - self.set_sensitive_all(False) self.ignore_events = False + self.bookmark_selected(self.selection)
def check_valid_bookmark(self): """ @@ -164,8 +153,8 @@ class ManageBookmarksWindow: # Account data can't be changed return
- server = self.server_entry.get_text() - room = self.room_entry.get_text() + server = self._ui.server_entry.get_text() + room = self._ui.room_entry.get_text()
if server == '' or room == '': ErrorDialog( @@ -203,10 +192,10 @@ class ManageBookmarksWindow: bookmarks.append(bookmark) con.get_module('Bookmarks').bookmarks = bookmarks con.get_module('Bookmarks').store_bookmarks() - self.window.destroy() + self._ui.manage_bookmarks_window.destroy()
def on_cancel_button_clicked(self, widget): - self.window.destroy() + self._ui.manage_bookmarks_window.destroy()
def bookmark_selected(self, selection): """ @@ -230,7 +219,7 @@ class ManageBookmarksWindow: return
# Fill in the data for childs - self.title_entry.set_text(model[iter_][Row.ROOM_NAME]) + self._ui.title_entry.set_text(model[iter_][Row.ROOM_NAME]) room_jid = model[iter_][Row.ROOM_JID] room_jid_s = room_jid.split('@') if len(room_jid_s) == 1: @@ -238,12 +227,12 @@ class ManageBookmarksWindow: server = room_jid else: (room, server) = room_jid_s - self.room_entry.handler_block(self.room_entry_changed_id) - self.room_entry.set_text(room) - self.room_entry.handler_unblock(self.room_entry_changed_id) - self.server_entry.set_text(server) + self._ui.room_entry.handler_block(self.room_entry_changed_id) + self._ui.room_entry.set_text(room) + self._ui.room_entry.handler_unblock(self.room_entry_changed_id) + self._ui.server_entry.set_text(server)
- self.autojoin_checkbutton.set_active(model[iter_][Row.AUTOJOIN]) + self._ui.autojoin_checkbutton.set_active(model[iter_][Row.AUTOJOIN]) # sensitive only if auto join is checked
if model[iter_][Row.PASSWORD] is not None: @@ -252,14 +241,14 @@ class ManageBookmarksWindow: password = None
if password: - self.pass_entry.set_text(password) + self._ui.pass_entry.set_text(password) else: - self.pass_entry.set_text('') + self._ui.pass_entry.set_text('') nick = model[iter_][Row.NICK] if nick: - self.nick_entry.set_text(nick) + self._ui.nick_entry.set_text(nick) else: - self.nick_entry.set_text('') + self._ui.nick_entry.set_text('')
def on_title_entry_changed(self, widget): if self.ignore_events: @@ -268,22 +257,22 @@ class ManageBookmarksWindow: if iter_: # After removing a bookmark, we got nothing selected if model.iter_parent(iter_): # Don't clear the title field for account nodes - model[iter_][Row.ROOM_NAME] = self.title_entry.get_text() + model[iter_][Row.ROOM_NAME] = self._ui.title_entry.get_text()
def on_nick_entry_changed(self, widget): if self.ignore_events: return (model, iter_) = self.selection.get_selected() if iter_: - nick = self.nick_entry.get_text() + nick = self._ui.nick_entry.get_text() try: nick = helpers.parse_resource(nick) except helpers.InvalidFormat: ErrorDialog( _('Invalid nickname'), _('Character not allowed'), - transient_for=self.window) - self.nick_entry.set_text(model[iter_][Row.NICK]) + transient_for=self._ui.manage_bookmarks_window) + self._ui.nick_entry.set_text(model[iter_][Row.NICK]) return True model[iter_][Row.NICK] = nick
@@ -300,10 +289,10 @@ class ManageBookmarksWindow: ErrorDialog( _('Invalid server'), _('Character not allowed'), - transient_for=self.window) + transient_for=self._ui.manage_bookmarks_window) widget.set_text(server.replace('@', ''))
- room = self.room_entry.get_text().strip() + room = self._ui.room_entry.get_text().strip() if not room: return room_jid = room + '@' + server.strip() @@ -313,8 +302,9 @@ class ManageBookmarksWindow: ErrorDialog( _('Invalid server'), _('Character not allowed'), - transient_for=self.window) - self.server_entry.set_text(model[iter_][Row.ROOM_JID].split('@')[1]) + transient_for=self._ui.manage_bookmarks_window) + self._ui.server_entry.set_text( + model[iter_][Row.ROOM_JID].split('@')[1]) return True model[iter_][Row.ROOM_JID] = room_jid
@@ -331,9 +321,9 @@ class ManageBookmarksWindow: room, server = room.split('@', 1) widget.set_text(room) if server: - self.server_entry.set_text(server) - self.server_entry.grab_focus() - server = self.server_entry.get_text().strip() + self._ui.server_entry.set_text(server) + self._ui.server_entry.grab_focus() + server = self._ui.server_entry.get_text().strip() if not server: return room_jid = room.strip() + '@' + server @@ -343,7 +333,7 @@ class ManageBookmarksWindow: ErrorDialog( _('Invalid room'), _('Character not allowed'), - transient_for=self.window) + transient_for=self._ui.manage_bookmarks_window) return True model[iter_][Row.ROOM_JID] = room_jid
@@ -352,27 +342,27 @@ class ManageBookmarksWindow: return (model, iter_) = self.selection.get_selected() if iter_: - model[iter_][Row.PASSWORD] = self.pass_entry.get_text() + model[iter_][Row.PASSWORD] = self._ui.pass_entry.get_text()
def on_autojoin_checkbutton_toggled(self, widget, *args): if self.ignore_events: return (model, iter_) = self.selection.get_selected() if iter_: - model[iter_][Row.AUTOJOIN] = self.autojoin_checkbutton.get_active() + model[iter_][Row.AUTOJOIN] = self._ui.autojoin_checkbutton.get_active()
def clear_fields(self): widgets = [ - self.title_entry, self.nick_entry, self.room_entry, - self.server_entry, self.pass_entry] + self._ui.title_entry, self._ui.nick_entry, self._ui.room_entry, + self._ui.server_entry, self._ui.pass_entry] for field in widgets: field.set_text('') - self.autojoin_checkbutton.set_active(False) + self._ui.autojoin_checkbutton.set_active(False)
def set_sensitive_all(self, sensitive): widgets = [ - self.title_entry, self.nick_entry, self.room_entry, - self.server_entry, self.pass_entry, self.settings_box, - self.remove_bookmark_button] + self._ui.title_entry, self._ui.nick_entry, self._ui.room_entry, + self._ui.server_entry, self._ui.pass_entry, self._ui.settings_box, + self._ui.remove_bookmark_button] for field in widgets: field.set_sensitive(sensitive)
View it on GitLab: https://dev.gajim.org/gajim/gajim/compare/0dbcac4efebfa76db9bf2c4c68bf95859d...