add minimize button to manage_bookmarks window. see #3034

This commit is contained in:
Yann Leboulanger 2007-06-13 20:24:04 +00:00
parent 7b05adc678
commit d2914f642b
6 changed files with 34 additions and 15 deletions

View File

@ -187,7 +187,6 @@ class Config:
'notification_avatar_width': [opt_int, 48], 'notification_avatar_width': [opt_int, 48],
'notification_avatar_height': [opt_int, 48], 'notification_avatar_height': [opt_int, 48],
'muc_highlight_words': [opt_str, '', _('A semicolon-separated list of words that will be highlighted in group chats.')], 'muc_highlight_words': [opt_str, '', _('A semicolon-separated list of words that will be highlighted in group chats.')],
'minimize_autojoined_rooms': [opt_bool, False, _('If True, autojoined bookmarked rooms will be minimized on startup.')],
'quit_on_roster_x_button': [opt_bool, False, _('If True, quits Gajim when X button of Window Manager is clicked. This setting is taken into account only if trayicon is used.')], 'quit_on_roster_x_button': [opt_bool, False, _('If True, quits Gajim when X button of Window Manager is clicked. This setting is taken into account only if trayicon is used.')],
'check_if_gajim_is_default': [opt_bool, True, _('If True, Gajim will check if it\'s the default jabber client on each startup.')], 'check_if_gajim_is_default': [opt_bool, True, _('If True, Gajim will check if it\'s the default jabber client on each startup.')],
'show_unread_tab_icon': [opt_bool, False, _('If True, Gajim will display an icon on each tab containing unread messages. Depending on the theme, this icon may be animated.')], 'show_unread_tab_icon': [opt_bool, False, _('If True, Gajim will display an icon on each tab containing unread messages. Depending on the theme, this icon may be animated.')],

View File

@ -1095,6 +1095,7 @@ class Connection(ConnectionHandlers):
iq4 = iq3.addChild(name = "conference") iq4 = iq3.addChild(name = "conference")
iq4.setAttr('jid', bm['jid']) iq4.setAttr('jid', bm['jid'])
iq4.setAttr('autojoin', bm['autojoin']) iq4.setAttr('autojoin', bm['autojoin'])
iq4.setAttr('minimize', bm['minimize'])
iq4.setAttr('name', bm['name']) iq4.setAttr('name', bm['name'])
# Only add optional elements if not empty # Only add optional elements if not empty
# Note: need to handle both None and '' as empty # Note: need to handle both None and '' as empty

View File

@ -1235,12 +1235,16 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco,
autojoin_val = conf.getAttr('autojoin') autojoin_val = conf.getAttr('autojoin')
if autojoin_val is None: # not there (it's optional) if autojoin_val is None: # not there (it's optional)
autojoin_val = False autojoin_val = False
minimize_val = conf.getAttr('minimize')
if minimize_val is None: # not there (it's optional)
minimize_val = False
print_status = conf.getTagData('print_status') print_status = conf.getTagData('print_status')
if not print_status: if not print_status:
print_status = conf.getTagData('show_status') print_status = conf.getTagData('show_status')
bm = {'name': conf.getAttr('name'), bm = {'name': conf.getAttr('name'),
'jid': conf.getAttr('jid'), 'jid': conf.getAttr('jid'),
'autojoin': autojoin_val, 'autojoin': autojoin_val,
'minimize': minimize_val,
'password': conf.getTagData('password'), 'password': conf.getTagData('password'),
'nick': conf.getTagData('nick'), 'nick': conf.getTagData('nick'),
'print_status': print_status} 'print_status': print_status}

View File

@ -2486,8 +2486,9 @@ class ManageBookmarksWindow:
self.window = self.xml.get_widget('manage_bookmarks_window') self.window = self.xml.get_widget('manage_bookmarks_window')
self.window.set_transient_for(gajim.interface.roster.window) self.window.set_transient_for(gajim.interface.roster.window)
# Account-JID, RoomName, Room-JID, Autojoin, Passowrd, Nick, Show_Status # Account-JID, RoomName, Room-JID, Autojoin, Minimize, Passowrd, Nick,
self.treestore = gtk.TreeStore(str, str, str, bool, str, str, str) # Show_Status
self.treestore = gtk.TreeStore(str, str, str, bool, bool, str, str, str)
# Store bookmarks in treeview. # Store bookmarks in treeview.
for account in gajim.connections: for account in gajim.connections:
@ -2495,7 +2496,7 @@ class ManageBookmarksWindow:
continue continue
if gajim.connections[account].is_zeroconf: if gajim.connections[account].is_zeroconf:
continue continue
iter = self.treestore.append(None, [None, account,None, iter = self.treestore.append(None, [None, account, None, None,
None, None, None, None]) None, None, None, None])
for bookmark in gajim.connections[account].bookmarks: for bookmark in gajim.connections[account].bookmarks:
@ -2509,6 +2510,9 @@ class ManageBookmarksWindow:
autojoin = helpers.from_xs_boolean_to_python_boolean( autojoin = helpers.from_xs_boolean_to_python_boolean(
bookmark['autojoin']) bookmark['autojoin'])
minimize = helpers.from_xs_boolean_to_python_boolean(
bookmark['minimize'])
print_status = bookmark.get('print_status', '') print_status = bookmark.get('print_status', '')
if print_status not in ('', 'all', 'in_and_out', 'none'): if print_status not in ('', 'all', 'in_and_out', 'none'):
print_status = '' print_status = ''
@ -2517,6 +2521,7 @@ class ManageBookmarksWindow:
bookmark['name'], bookmark['name'],
bookmark['jid'], bookmark['jid'],
autojoin, autojoin,
minimize,
bookmark['password'], bookmark['password'],
bookmark['nick'], bookmark['nick'],
print_status ]) print_status ])
@ -2558,6 +2563,7 @@ class ManageBookmarksWindow:
self.pass_entry = self.xml.get_widget('pass_entry') self.pass_entry = self.xml.get_widget('pass_entry')
self.pass_entry.connect('changed', self.on_pass_entry_changed) self.pass_entry.connect('changed', self.on_pass_entry_changed)
self.autojoin_checkbutton = self.xml.get_widget('autojoin_checkbutton') self.autojoin_checkbutton = self.xml.get_widget('autojoin_checkbutton')
self.minimize_checkbutton = self.xml.get_widget('minimize_checkbutton')
self.xml.signal_autoconnect(self) self.xml.signal_autoconnect(self)
self.window.show_all() self.window.show_all()
@ -2652,10 +2658,12 @@ class ManageBookmarksWindow:
for bm in account.iterchildren(): for bm in account.iterchildren():
#Convert True/False/None to '1' or '0' #Convert True/False/None to '1' or '0'
autojoin = unicode(int(bm[3])) autojoin = unicode(int(bm[3]))
minimize = unicode(int(bm[4]))
#create the bookmark-dict #create the bookmark-dict
bmdict = { 'name': bm[1], 'jid': bm[2], 'autojoin': autojoin, bmdict = { 'name': bm[1], 'jid': bm[2], 'autojoin': autojoin,
'password': bm[4], 'nick': bm[5], 'print_status': bm[6]} 'minimize': minimize, 'password': bm[5], 'nick': bm[6],
'print_status': bm[7]}
gajim.connections[account_unicode].bookmarks.append(bmdict) gajim.connections[account_unicode].bookmarks.append(bmdict)
@ -2679,7 +2687,7 @@ class ManageBookmarksWindow:
widgets = [ self.title_entry, self.nick_entry, self.room_entry, widgets = [ self.title_entry, self.nick_entry, self.room_entry,
self.server_entry, self.pass_entry, self.autojoin_checkbutton, self.server_entry, self.pass_entry, self.autojoin_checkbutton,
self.print_status_combobox] self.minimize_checkbutton, self.print_status_combobox]
if model.iter_parent(iter): if model.iter_parent(iter):
# make the fields sensitive # make the fields sensitive
@ -2706,8 +2714,10 @@ class ManageBookmarksWindow:
self.server_entry.set_text(server) self.server_entry.set_text(server)
self.autojoin_checkbutton.set_active(model[iter][3]) self.autojoin_checkbutton.set_active(model[iter][3])
if model[iter][4] is not None: self.minimize_checkbutton.set_active(model[iter][4])
password = model[iter][4].decode('utf-8')
if model[iter][5] is not None:
password = model[iter][5].decode('utf-8')
else: else:
password = None password = None
@ -2722,7 +2732,7 @@ class ManageBookmarksWindow:
else: else:
self.nick_entry.set_text('') self.nick_entry.set_text('')
print_status = model[iter][6] print_status = model[iter][7]
opts = self.option_list.keys() opts = self.option_list.keys()
opts.sort() opts.sort()
self.print_status_combobox.set_active(opts.index(print_status)) self.print_status_combobox.set_active(opts.index(print_status))
@ -2737,7 +2747,7 @@ class ManageBookmarksWindow:
def on_nick_entry_changed(self, widget): def on_nick_entry_changed(self, widget):
(model, iter) = self.selection.get_selected() (model, iter) = self.selection.get_selected()
if iter: if iter:
model[iter][5] = self.nick_entry.get_text() model[iter][6] = self.nick_entry.get_text()
def on_server_entry_changed(self, widget): def on_server_entry_changed(self, widget):
(model, iter) = self.selection.get_selected() (model, iter) = self.selection.get_selected()
@ -2756,20 +2766,25 @@ class ManageBookmarksWindow:
def on_pass_entry_changed(self, widget): def on_pass_entry_changed(self, widget):
(model, iter) = self.selection.get_selected() (model, iter) = self.selection.get_selected()
if iter: if iter:
model[iter][4] = self.pass_entry.get_text() model[iter][5] = self.pass_entry.get_text()
def on_autojoin_checkbutton_toggled(self, widget): def on_autojoin_checkbutton_toggled(self, widget):
(model, iter) = self.selection.get_selected() (model, iter) = self.selection.get_selected()
if iter: if iter:
model[iter][3] = self.autojoin_checkbutton.get_active() model[iter][3] = self.autojoin_checkbutton.get_active()
def on_minimize_checkbutton_toggled(self, widget):
(model, iter) = self.selection.get_selected()
if iter:
model[iter][4] = self.minimize_checkbutton.get_active()
def on_print_status_combobox_changed(self, widget): def on_print_status_combobox_changed(self, widget):
active = widget.get_active() active = widget.get_active()
model = widget.get_model() model = widget.get_model()
print_status = model[active][1] print_status = model[active][1]
(model2, iter) = self.selection.get_selected() (model2, iter) = self.selection.get_selected()
if iter: if iter:
model2[iter][6] = print_status model2[iter][7] = print_status
def clear_fields(self): def clear_fields(self):
widgets = [ self.title_entry, self.nick_entry, self.room_entry, widgets = [ self.title_entry, self.nick_entry, self.room_entry,
@ -2777,6 +2792,7 @@ class ManageBookmarksWindow:
for field in widgets: for field in widgets:
field.set_text('') field.set_text('')
self.autojoin_checkbutton.set_active(False) self.autojoin_checkbutton.set_active(False)
self.minimize_checkbutton.set_active(False)
self.print_status_combobox.set_active(1) self.print_status_combobox.set_active(1)
class AccountCreationWizardWindow: class AccountCreationWizardWindow:

View File

@ -1311,8 +1311,7 @@ class Interface:
for bm in bms: for bm in bms:
if bm['autojoin'] in ('1', 'true'): if bm['autojoin'] in ('1', 'true'):
self.roster.join_gc_room(account, bm['jid'], bm['nick'], self.roster.join_gc_room(account, bm['jid'], bm['nick'],
bm['password'], bm['password'], minimize = bm['minimize'])
minimize = gajim.config.get('minimize_autojoined_rooms'))
def handle_event_file_send_error(self, account, array): def handle_event_file_send_error(self, account, array):
jid = array[0] jid = array[0]

View File

@ -3337,7 +3337,7 @@ class RosterWindow:
gajim.gc_connected[account][room_jid]: gajim.gc_connected[account][room_jid]:
continue continue
self.join_gc_room(account, room_jid, bm['nick'], bm['password'], self.join_gc_room(account, room_jid, bm['nick'], bm['password'],
minimize = gajim.config.get('minimize_autojoined_rooms')) minimize = bm['minimize'])
def get_status_message(self, show): def get_status_message(self, show):
if show in gajim.config.get_per('defaultstatusmsg'): if show in gajim.config.get_per('defaultstatusmsg'):