Philipp Hörist pushed to branch master at gajim / gajim

Commits:

2 changed files:

Changes:

  • gajim/data/gui/manage_bookmarks_window.ui
    1 1
     <?xml version="1.0" encoding="UTF-8"?>
    
    2 2
     <!-- Generated with glade 3.22.1 -->
    
    3 3
     <interface>
    
    4
    -  <requires lib="gtk+" version="3.18"/>
    
    4
    +  <requires lib="gtk+" version="3.20"/>
    
    5 5
       <object class="GtkListStore" id="liststore1">
    
    6 6
         <columns>
    
    7 7
           <!-- column-name item -->
    
    ... ... @@ -22,10 +22,7 @@
    22 22
           <object class="GtkBox">
    
    23 23
             <property name="visible">True</property>
    
    24 24
             <property name="can_focus">False</property>
    
    25
    -        <property name="margin_left">18</property>
    
    26
    -        <property name="margin_right">18</property>
    
    27
    -        <property name="margin_top">18</property>
    
    28
    -        <property name="margin_bottom">18</property>
    
    25
    +        <property name="border_width">18</property>
    
    29 26
             <property name="spacing">18</property>
    
    30 27
             <child>
    
    31 28
               <object class="GtkBox">
    
    ... ... @@ -68,6 +65,7 @@
    68 65
                       <object class="GtkToolButton" id="add_bookmark_button">
    
    69 66
                         <property name="visible">True</property>
    
    70 67
                         <property name="can_focus">False</property>
    
    68
    +                    <property name="tooltip_text" translatable="yes">Add Bookmark</property>
    
    71 69
                         <property name="use_underline">True</property>
    
    72 70
                         <property name="icon_name">list-add-symbolic</property>
    
    73 71
                         <signal name="clicked" handler="on_add_bookmark_button_clicked" swapped="no"/>
    
    ... ... @@ -81,6 +79,7 @@
    81 79
                       <object class="GtkToolButton" id="remove_bookmark_button">
    
    82 80
                         <property name="visible">True</property>
    
    83 81
                         <property name="can_focus">False</property>
    
    82
    +                    <property name="tooltip_text" translatable="yes">Remove Bookmark</property>
    
    84 83
                         <property name="use_underline">True</property>
    
    85 84
                         <property name="icon_name">list-remove-symbolic</property>
    
    86 85
                         <signal name="clicked" handler="on_remove_bookmark_button_clicked" swapped="no"/>
    
    ... ... @@ -117,16 +116,16 @@
    117 116
                   <object class="GtkGrid">
    
    118 117
                     <property name="visible">True</property>
    
    119 118
                     <property name="can_focus">False</property>
    
    120
    -                <property name="margin_left">6</property>
    
    121 119
                     <property name="row_spacing">6</property>
    
    122 120
                     <property name="column_spacing">12</property>
    
    123 121
                     <child>
    
    124
    -                  <object class="GtkLabel" id="label325">
    
    122
    +                  <object class="GtkLabel">
    
    125 123
                         <property name="visible">True</property>
    
    126 124
                         <property name="can_focus">False</property>
    
    127 125
                         <property name="halign">end</property>
    
    128
    -                    <property name="label" translatable="yes">Name</property>
    
    126
    +                    <property name="label" translatable="yes">N_ame</property>
    
    129 127
                         <property name="use_underline">True</property>
    
    128
    +                    <property name="mnemonic_widget">title_entry</property>
    
    130 129
                         <property name="xalign">0</property>
    
    131 130
                         <style>
    
    132 131
                           <class name="dim-label"/>
    
    ... ... @@ -153,13 +152,14 @@
    153 152
                       </packing>
    
    154 153
                     </child>
    
    155 154
                     <child>
    
    156
    -                  <object class="GtkLabel" id="label317">
    
    155
    +                  <object class="GtkLabel">
    
    157 156
                         <property name="visible">True</property>
    
    158 157
                         <property name="can_focus">False</property>
    
    159 158
                         <property name="halign">end</property>
    
    160 159
                         <property name="margin_top">12</property>
    
    161 160
                         <property name="label" translatable="yes">_Server</property>
    
    162 161
                         <property name="use_underline">True</property>
    
    162
    +                    <property name="mnemonic_widget">server_entry</property>
    
    163 163
                         <property name="xalign">0</property>
    
    164 164
                         <style>
    
    165 165
                           <class name="dim-label"/>
    
    ... ... @@ -184,13 +184,14 @@
    184 184
                       </packing>
    
    185 185
                     </child>
    
    186 186
                     <child>
    
    187
    -                  <object class="GtkLabel" id="label315">
    
    187
    +                  <object class="GtkLabel">
    
    188 188
                         <property name="visible">True</property>
    
    189 189
                         <property name="can_focus">False</property>
    
    190 190
                         <property name="halign">end</property>
    
    191 191
                         <property name="margin_top">12</property>
    
    192 192
                         <property name="label" translatable="yes">_Nickname</property>
    
    193 193
                         <property name="use_underline">True</property>
    
    194
    +                    <property name="mnemonic_widget">nick_entry</property>
    
    194 195
                         <property name="xalign">0</property>
    
    195 196
                         <style>
    
    196 197
                           <class name="dim-label"/>
    
    ... ... @@ -215,12 +216,13 @@
    215 216
                       </packing>
    
    216 217
                     </child>
    
    217 218
                     <child>
    
    218
    -                  <object class="GtkLabel" id="label316">
    
    219
    +                  <object class="GtkLabel">
    
    219 220
                         <property name="visible">True</property>
    
    220 221
                         <property name="can_focus">False</property>
    
    221 222
                         <property name="halign">end</property>
    
    222 223
                         <property name="label" translatable="yes">Roo_m</property>
    
    223 224
                         <property name="use_underline">True</property>
    
    225
    +                    <property name="mnemonic_widget">room_entry</property>
    
    224 226
                         <property name="xalign">0</property>
    
    225 227
                         <style>
    
    226 228
                           <class name="dim-label"/>
    
    ... ... @@ -244,12 +246,13 @@
    244 246
                       </packing>
    
    245 247
                     </child>
    
    246 248
                     <child>
    
    247
    -                  <object class="GtkLabel" id="label318">
    
    249
    +                  <object class="GtkLabel">
    
    248 250
                         <property name="visible">True</property>
    
    249 251
                         <property name="can_focus">False</property>
    
    250 252
                         <property name="halign">end</property>
    
    251 253
                         <property name="label" translatable="yes">_Password</property>
    
    252 254
                         <property name="use_underline">True</property>
    
    255
    +                    <property name="mnemonic_widget">pass_entry</property>
    
    253 256
                         <property name="xalign">0</property>
    
    254 257
                         <style>
    
    255 258
                           <class name="dim-label"/>
    
    ... ... @@ -301,7 +304,9 @@
    301 304
                                 <property name="visible">True</property>
    
    302 305
                                 <property name="can_focus">False</property>
    
    303 306
                                 <property name="halign">start</property>
    
    304
    -                            <property name="label" translatable="yes">Auto Join</property>
    
    307
    +                            <property name="label" translatable="yes">_Join Automatically</property>
    
    308
    +                            <property name="use_underline">True</property>
    
    309
    +                            <property name="mnemonic_widget">autojoin_checkbutton</property>
    
    305 310
                               </object>
    
    306 311
                               <packing>
    
    307 312
                                 <property name="expand">False</property>
    

  • gajim/gtk/bookmarks.py
    ... ... @@ -38,9 +38,9 @@ class Row(IntEnum):
    38 38
     
    
    39 39
     class ManageBookmarksWindow:
    
    40 40
         def __init__(self):
    
    41
    -        self.xml = get_builder('manage_bookmarks_window.ui')
    
    42
    -        self.window = self.xml.get_object('manage_bookmarks_window')
    
    43
    -        self.window.set_transient_for(app.interface.roster.window)
    
    41
    +        self._ui = get_builder('manage_bookmarks_window.ui')
    
    42
    +        self._ui.manage_bookmarks_window.set_transient_for(
    
    43
    +            app.interface.roster.window)
    
    44 44
     
    
    45 45
             self.ignore_events = False
    
    46 46
     
    
    ... ... @@ -67,37 +67,27 @@ class ManageBookmarksWindow:
    67 67
                                                   bookmark.nick,
    
    68 68
                                                   bookmark.name])
    
    69 69
     
    
    70
    -        self.view = self.xml.get_object('bookmarks_treeview')
    
    71
    -        self.view.set_model(self.treestore)
    
    72
    -        self.view.expand_all()
    
    70
    +        self._ui.bookmarks_treeview.set_model(self.treestore)
    
    71
    +        self._ui.bookmarks_treeview.expand_all()
    
    73 72
     
    
    74 73
             renderer = Gtk.CellRendererText()
    
    75 74
             column = Gtk.TreeViewColumn('Bookmarks', renderer, text=Row.LABEL)
    
    76
    -        self.view.append_column(column)
    
    75
    +        self._ui.bookmarks_treeview.append_column(column)
    
    77 76
     
    
    78
    -        self.selection = self.view.get_selection()
    
    77
    +        self.selection = self._ui.bookmarks_treeview.get_selection()
    
    79 78
             self.selection.connect('changed', self.bookmark_selected)
    
    80 79
     
    
    81 80
             # Prepare input fields
    
    82
    -        self.title_entry = self.xml.get_object('title_entry')
    
    83
    -        self.title_entry.connect('changed', self.on_title_entry_changed)
    
    84
    -        self.nick_entry = self.xml.get_object('nick_entry')
    
    85
    -        self.nick_entry.connect('changed', self.on_nick_entry_changed)
    
    86
    -        self.server_entry = self.xml.get_object('server_entry')
    
    87
    -        self.server_entry.connect(
    
    81
    +        self._ui.title_entry.connect('changed', self.on_title_entry_changed)
    
    82
    +        self._ui.nick_entry.connect('changed', self.on_nick_entry_changed)
    
    83
    +        self._ui.server_entry.connect(
    
    88 84
                 'focus-out-event', self.on_server_entry_focus_out)
    
    89
    -        self.room_entry = self.xml.get_object('room_entry')
    
    90
    -        self.room_entry_changed_id = self.room_entry.connect(
    
    85
    +        self.room_entry_changed_id = self._ui.room_entry.connect(
    
    91 86
                 'changed', self.on_room_entry_changed)
    
    92
    -        self.pass_entry = self.xml.get_object('pass_entry')
    
    93
    -        self.pass_entry.connect('changed', self.on_pass_entry_changed)
    
    94
    -        self.autojoin_checkbutton = self.xml.get_object('autojoin_checkbutton')
    
    95
    -        self.settings_box = self.xml.get_object('settings_box')
    
    96
    -        self.remove_bookmark_button = self.xml.get_object(
    
    97
    -            'remove_bookmark_button')
    
    98
    -
    
    99
    -        self.xml.connect_signals(self)
    
    100
    -        self.window.show_all()
    
    87
    +        self._ui.pass_entry.connect('changed', self.on_pass_entry_changed)
    
    88
    +
    
    89
    +        self._ui.connect_signals(self)
    
    90
    +        self._ui.manage_bookmarks_window.show_all()
    
    101 91
             # select root iter
    
    102 92
             first_iter = self.treestore.get_iter_first()
    
    103 93
             if first_iter:
    
    ... ... @@ -105,7 +95,7 @@ class ManageBookmarksWindow:
    105 95
     
    
    106 96
         def on_key_press_event(self, widget, event):
    
    107 97
             if event.keyval == Gdk.KEY_Escape:
    
    108
    -            self.window.destroy()
    
    98
    +            self._ui.manage_bookmarks_window.destroy()
    
    109 99
     
    
    110 100
         def on_add_bookmark_button_clicked(self, widget):
    
    111 101
             """
    
    ... ... @@ -132,8 +122,8 @@ class ManageBookmarksWindow:
    132 122
             iter_ = self.treestore.append(add_to, [
    
    133 123
                 account, label, '@', False, '', nick, label])
    
    134 124
     
    
    135
    -        self.view.expand_row(model.get_path(add_to), True)
    
    136
    -        self.view.set_cursor(model.get_path(iter_))
    
    125
    +        self._ui.bookmarks_treeview.expand_row(model.get_path(add_to), True)
    
    126
    +        self._ui.bookmarks_treeview.set_cursor(model.get_path(iter_))
    
    137 127
     
    
    138 128
         def on_remove_bookmark_button_clicked(self, widget):
    
    139 129
             """
    
    ... ... @@ -149,10 +139,9 @@ class ManageBookmarksWindow:
    149 139
     
    
    150 140
             self.ignore_events = True
    
    151 141
             model.remove(iter_)
    
    152
    -        self.selection.unselect_all()
    
    153 142
             self.clear_fields()
    
    154
    -        self.set_sensitive_all(False)
    
    155 143
             self.ignore_events = False
    
    144
    +        self.bookmark_selected(self.selection)
    
    156 145
     
    
    157 146
         def check_valid_bookmark(self):
    
    158 147
             """
    
    ... ... @@ -164,8 +153,8 @@ class ManageBookmarksWindow:
    164 153
                 # Account data can't be changed
    
    165 154
                 return
    
    166 155
     
    
    167
    -        server = self.server_entry.get_text()
    
    168
    -        room = self.room_entry.get_text()
    
    156
    +        server = self._ui.server_entry.get_text()
    
    157
    +        room = self._ui.room_entry.get_text()
    
    169 158
     
    
    170 159
             if server == '' or room == '':
    
    171 160
                 ErrorDialog(
    
    ... ... @@ -203,10 +192,10 @@ class ManageBookmarksWindow:
    203 192
                     bookmarks.append(bookmark)
    
    204 193
                 con.get_module('Bookmarks').bookmarks = bookmarks
    
    205 194
                 con.get_module('Bookmarks').store_bookmarks()
    
    206
    -        self.window.destroy()
    
    195
    +        self._ui.manage_bookmarks_window.destroy()
    
    207 196
     
    
    208 197
         def on_cancel_button_clicked(self, widget):
    
    209
    -        self.window.destroy()
    
    198
    +        self._ui.manage_bookmarks_window.destroy()
    
    210 199
     
    
    211 200
         def bookmark_selected(self, selection):
    
    212 201
             """
    
    ... ... @@ -230,7 +219,7 @@ class ManageBookmarksWindow:
    230 219
                 return
    
    231 220
     
    
    232 221
             # Fill in the data for childs
    
    233
    -        self.title_entry.set_text(model[iter_][Row.ROOM_NAME])
    
    222
    +        self._ui.title_entry.set_text(model[iter_][Row.ROOM_NAME])
    
    234 223
             room_jid = model[iter_][Row.ROOM_JID]
    
    235 224
             room_jid_s = room_jid.split('@')
    
    236 225
             if len(room_jid_s) == 1:
    
    ... ... @@ -238,12 +227,12 @@ class ManageBookmarksWindow:
    238 227
                 server = room_jid
    
    239 228
             else:
    
    240 229
                 (room, server) = room_jid_s
    
    241
    -        self.room_entry.handler_block(self.room_entry_changed_id)
    
    242
    -        self.room_entry.set_text(room)
    
    243
    -        self.room_entry.handler_unblock(self.room_entry_changed_id)
    
    244
    -        self.server_entry.set_text(server)
    
    230
    +        self._ui.room_entry.handler_block(self.room_entry_changed_id)
    
    231
    +        self._ui.room_entry.set_text(room)
    
    232
    +        self._ui.room_entry.handler_unblock(self.room_entry_changed_id)
    
    233
    +        self._ui.server_entry.set_text(server)
    
    245 234
     
    
    246
    -        self.autojoin_checkbutton.set_active(model[iter_][Row.AUTOJOIN])
    
    235
    +        self._ui.autojoin_checkbutton.set_active(model[iter_][Row.AUTOJOIN])
    
    247 236
             # sensitive only if auto join is checked
    
    248 237
     
    
    249 238
             if model[iter_][Row.PASSWORD] is not None:
    
    ... ... @@ -252,14 +241,14 @@ class ManageBookmarksWindow:
    252 241
                 password = None
    
    253 242
     
    
    254 243
             if password:
    
    255
    -            self.pass_entry.set_text(password)
    
    244
    +            self._ui.pass_entry.set_text(password)
    
    256 245
             else:
    
    257
    -            self.pass_entry.set_text('')
    
    246
    +            self._ui.pass_entry.set_text('')
    
    258 247
             nick = model[iter_][Row.NICK]
    
    259 248
             if nick:
    
    260
    -            self.nick_entry.set_text(nick)
    
    249
    +            self._ui.nick_entry.set_text(nick)
    
    261 250
             else:
    
    262
    -            self.nick_entry.set_text('')
    
    251
    +            self._ui.nick_entry.set_text('')
    
    263 252
     
    
    264 253
         def on_title_entry_changed(self, widget):
    
    265 254
             if self.ignore_events:
    
    ... ... @@ -268,22 +257,22 @@ class ManageBookmarksWindow:
    268 257
             if iter_:  # After removing a bookmark, we got nothing selected
    
    269 258
                 if model.iter_parent(iter_):
    
    270 259
                     # Don't clear the title field for account nodes
    
    271
    -                model[iter_][Row.ROOM_NAME] = self.title_entry.get_text()
    
    260
    +                model[iter_][Row.ROOM_NAME] = self._ui.title_entry.get_text()
    
    272 261
     
    
    273 262
         def on_nick_entry_changed(self, widget):
    
    274 263
             if self.ignore_events:
    
    275 264
                 return
    
    276 265
             (model, iter_) = self.selection.get_selected()
    
    277 266
             if iter_:
    
    278
    -            nick = self.nick_entry.get_text()
    
    267
    +            nick = self._ui.nick_entry.get_text()
    
    279 268
                 try:
    
    280 269
                     nick = helpers.parse_resource(nick)
    
    281 270
                 except helpers.InvalidFormat:
    
    282 271
                     ErrorDialog(
    
    283 272
                         _('Invalid nickname'),
    
    284 273
                         _('Character not allowed'),
    
    285
    -                    transient_for=self.window)
    
    286
    -                self.nick_entry.set_text(model[iter_][Row.NICK])
    
    274
    +                    transient_for=self._ui.manage_bookmarks_window)
    
    275
    +                self._ui.nick_entry.set_text(model[iter_][Row.NICK])
    
    287 276
                     return True
    
    288 277
                 model[iter_][Row.NICK] = nick
    
    289 278
     
    
    ... ... @@ -300,10 +289,10 @@ class ManageBookmarksWindow:
    300 289
                 ErrorDialog(
    
    301 290
                     _('Invalid server'),
    
    302 291
                     _('Character not allowed'),
    
    303
    -                transient_for=self.window)
    
    292
    +                transient_for=self._ui.manage_bookmarks_window)
    
    304 293
                 widget.set_text(server.replace('@', ''))
    
    305 294
     
    
    306
    -        room = self.room_entry.get_text().strip()
    
    295
    +        room = self._ui.room_entry.get_text().strip()
    
    307 296
             if not room:
    
    308 297
                 return
    
    309 298
             room_jid = room + '@' + server.strip()
    
    ... ... @@ -313,8 +302,9 @@ class ManageBookmarksWindow:
    313 302
                 ErrorDialog(
    
    314 303
                     _('Invalid server'),
    
    315 304
                     _('Character not allowed'),
    
    316
    -                transient_for=self.window)
    
    317
    -            self.server_entry.set_text(model[iter_][Row.ROOM_JID].split('@')[1])
    
    305
    +                transient_for=self._ui.manage_bookmarks_window)
    
    306
    +            self._ui.server_entry.set_text(
    
    307
    +                model[iter_][Row.ROOM_JID].split('@')[1])
    
    318 308
                 return True
    
    319 309
             model[iter_][Row.ROOM_JID] = room_jid
    
    320 310
     
    
    ... ... @@ -331,9 +321,9 @@ class ManageBookmarksWindow:
    331 321
                 room, server = room.split('@', 1)
    
    332 322
                 widget.set_text(room)
    
    333 323
                 if server:
    
    334
    -                self.server_entry.set_text(server)
    
    335
    -            self.server_entry.grab_focus()
    
    336
    -        server = self.server_entry.get_text().strip()
    
    324
    +                self._ui.server_entry.set_text(server)
    
    325
    +            self._ui.server_entry.grab_focus()
    
    326
    +        server = self._ui.server_entry.get_text().strip()
    
    337 327
             if not server:
    
    338 328
                 return
    
    339 329
             room_jid = room.strip() + '@' + server
    
    ... ... @@ -343,7 +333,7 @@ class ManageBookmarksWindow:
    343 333
                 ErrorDialog(
    
    344 334
                     _('Invalid room'),
    
    345 335
                     _('Character not allowed'),
    
    346
    -                transient_for=self.window)
    
    336
    +                transient_for=self._ui.manage_bookmarks_window)
    
    347 337
                 return True
    
    348 338
             model[iter_][Row.ROOM_JID] = room_jid
    
    349 339
     
    
    ... ... @@ -352,27 +342,27 @@ class ManageBookmarksWindow:
    352 342
                 return
    
    353 343
             (model, iter_) = self.selection.get_selected()
    
    354 344
             if iter_:
    
    355
    -            model[iter_][Row.PASSWORD] = self.pass_entry.get_text()
    
    345
    +            model[iter_][Row.PASSWORD] = self._ui.pass_entry.get_text()
    
    356 346
     
    
    357 347
         def on_autojoin_checkbutton_toggled(self, widget, *args):
    
    358 348
             if self.ignore_events:
    
    359 349
                 return
    
    360 350
             (model, iter_) = self.selection.get_selected()
    
    361 351
             if iter_:
    
    362
    -            model[iter_][Row.AUTOJOIN] = self.autojoin_checkbutton.get_active()
    
    352
    +            model[iter_][Row.AUTOJOIN] = self._ui.autojoin_checkbutton.get_active()
    
    363 353
     
    
    364 354
         def clear_fields(self):
    
    365 355
             widgets = [
    
    366
    -            self.title_entry, self.nick_entry, self.room_entry,
    
    367
    -            self.server_entry, self.pass_entry]
    
    356
    +            self._ui.title_entry, self._ui.nick_entry, self._ui.room_entry,
    
    357
    +            self._ui.server_entry, self._ui.pass_entry]
    
    368 358
             for field in widgets:
    
    369 359
                 field.set_text('')
    
    370
    -        self.autojoin_checkbutton.set_active(False)
    
    360
    +        self._ui.autojoin_checkbutton.set_active(False)
    
    371 361
     
    
    372 362
         def set_sensitive_all(self, sensitive):
    
    373 363
             widgets = [
    
    374
    -            self.title_entry, self.nick_entry, self.room_entry,
    
    375
    -            self.server_entry, self.pass_entry, self.settings_box,
    
    376
    -            self.remove_bookmark_button]
    
    364
    +            self._ui.title_entry, self._ui.nick_entry, self._ui.room_entry,
    
    365
    +            self._ui.server_entry, self._ui.pass_entry, self._ui.settings_box,
    
    366
    +            self._ui.remove_bookmark_button]
    
    377 367
             for field in widgets:
    
    378 368
                 field.set_sensitive(sensitive)