enrich with info on how to ban domain and what else is allowed; make Close --> Cancel and Apply --> OK; FIXME: OK cb is not called.. :(

This commit is contained in:
Nikos Kouremenos 2006-01-19 13:52:02 +00:00
parent c9d98a9494
commit a8def93b99
3 changed files with 104 additions and 69 deletions

View File

@ -1651,11 +1651,16 @@ class DataFormWindow:
self.xml.signal_autoconnect(self)
self.window.show_all()
def on_data_form_window_destroy(self, widget):
def on_cancel_button_clicked(self, widget):
self.window.destroy()
def on_ok_button_clicked(self, widget):
'''NOTE: child class should implement this'''
pass
def on_close_button_clicked(self, widget):
self.window.destroy()
def on_data_form_window_destroy(self, widget):
'''NOTE: child class should implement this'''
pass
def on_checkbutton_toggled(self, widget, index):
self.config[index]['values'][0] = widget.get_active()
@ -1715,10 +1720,10 @@ class DataFormWindow:
widget.set_alignment(0.0, 0.5)
max = 4
elif ctype == 'jid-multi':
#TODO
#FIXME
widget = gtk.Label('')
elif ctype == 'jid-single':
#TODO
#FIXME
widget = gtk.Label('')
elif ctype == 'list-multi':
j = 0
@ -1782,7 +1787,28 @@ class DataFormWindow:
class ServiceRegistrationWindow(DataFormWindow):
'''Class for Service registration window:
Window that appears when we want to subscribe to a service'''
Window that appears when we want to subscribe to a service
if is_form we use DataFormWindow else we use service_registarion_window'''
def __init__(self, service, infos, account, is_form):
self.service = service
self.infos = infos
self.account = account
self.is_form = is_form
if self.is_form:
DataFormWindow.__init__(self, account, infos)
else:
self.xml = gtk.glade.XML(GTKGUI_GLADE, 'service_registration_window', APP)
self.window = self.xml.get_widget('service_registration_window')
if infos.has_key('registered'):
self.window.set_title(_('Edit %s' % service))
else:
self.window.set_title(_('Register to %s' % service))
self.xml.get_widget('label').set_text(infos['instructions'])
self.entries = {}
self.draw_table()
self.xml.signal_autoconnect(self)
self.window.show_all()
def on_cancel_button_clicked(self, widget):
self.window.destroy()
@ -1813,8 +1839,18 @@ class ServiceRegistrationWindow(DataFormWindow):
table.show_all()
def on_ok_button_clicked(self, widget):
'''When Ok button is clicked:
send registration info to the core'''
if self.is_form:
# We pressed OK button of the DataFormWindow
if self.infos.has_key('registered'):
del self.infos['registered']
else:
gajim.interface.roster.add_transport_to_roster(self.account,
self.service)
gajim.connections[self.account].register_agent(self.service, self.infos,
True) # True is for is_form
else:
# we pressed OK of service_registration_window
# send registration info to the core
for name in self.entries.keys():
self.infos[name] = self.entries[name].get_text().decode('utf-8')
if self.infos.has_key('instructions'):
@ -1825,37 +1861,9 @@ class ServiceRegistrationWindow(DataFormWindow):
gajim.interface.roster.add_transport_to_roster(self.account,
self.service)
gajim.connections[self.account].register_agent(self.service, self.infos)
self.window.destroy()
def on_apply_button_clicked(self, widget):
# We press apply button of the FormDataWindow
if self.infos.has_key('registered'):
del self.infos['registered']
else:
gajim.interface.roster.add_transport_to_roster(self.account,
self.service)
gajim.connections[self.account].register_agent(self.service, self.infos,
True) # True is for is_form
self.window.destroy()
def __init__(self, service, infos, account, is_form):
self.service = service
self.infos = infos
self.account = account
if is_form:
DataFormWindow.__init__(self, account, infos)
else:
self.xml = gtk.glade.XML(GTKGUI_GLADE, 'service_registration_window', APP)
self.window = self.xml.get_widget('service_registration_window')
if infos.has_key('registered'):
self.window.set_title(_('Edit %s' % service))
else:
self.window.set_title(_('Register to %s' % service))
self.xml.get_widget('label').set_text(infos['instructions'])
self.entries = {}
self.draw_table()
self.xml.signal_autoconnect(self)
self.window.show_all()
class GroupchatConfigWindow(DataFormWindow):
'''GroupchatConfigWindow class'''
@ -1890,12 +1898,14 @@ class GroupchatConfigWindow(DataFormWindow):
bb.pack_start(add_button)
self.remove_button[affiliation] = gtk.Button(stock = gtk.STOCK_REMOVE)
self.remove_button[affiliation].set_sensitive(False)
self.remove_button[affiliation].connect('clicked', self.on_remove_button_clicked, affiliation)
self.remove_button[affiliation].connect('clicked',
self.on_remove_button_clicked, affiliation)
bb.pack_start(self.remove_button[affiliation])
liststore = gtk.ListStore(str, str, str, str) # Jid, reason, nick, role
self.affiliation_treeview[affiliation] = gtk.TreeView(liststore)
self.affiliation_treeview[affiliation].connect('cursor-changed', self.on_affiliation_treeview_cursor_changed, affiliation)
self.affiliation_treeview[affiliation].connect('cursor-changed',
self.on_affiliation_treeview_cursor_changed, affiliation)
renderer = gtk.CellRendererText()
col = gtk.TreeViewColumn(_('JID'), renderer)
col.add_attribute(renderer, 'text', 0)
@ -1936,16 +1946,41 @@ class GroupchatConfigWindow(DataFormWindow):
def on_add_button_clicked(self, widget, affiliation):
if affiliation == 'outcast':
title = _('Banning...')
prompt = _('Whom do you want to ban? (JID, domain, ...)')
#You can move '\n' before user@domain if that line is TOO BIG
prompt = _('<b>Whom do you want to ban?</b>' '\n\n'
'Can be one of the following:' '\n'
'1. user@domain/resource (only that resource matches).' '\n'
'2. user@domain (any resource matches).' '\n'
'3. domain/resource (only that resource matches).' '\n'
'4. domain (the domain itself matches, as does any user@domain,' '\n'
'domain/resource, or address containing a subdomain.')
elif affiliation == 'member':
title = _('Adding Member')
prompt = _('Whom do you want to make a member? (JID, domain, ...)')
title = _('Adding Member...')
prompt = _('<b>Whom do you want to make a member?</b>' '\n\n'
'Can be one of the following:' '\n'
'1. user@domain/resource (only that resource matches).' '\n'
'2. user@domain (any resource matches).' '\n'
'3. domain/resource (only that resource matches).' '\n'
'4. domain (the domain itself matches, as does any user@domain,' '\n'
'domain/resource, or address containing a subdomain.')
elif affiliation == 'owner':
title = _('Adding Owner')
prompt = _('Whom do you want to make a owner? (JID, domain, ...)')
title = _('Adding Owner...')
prompt = _('<b>Whom do you want to make a owner?</b>' '\n\n'
'Can be one of the following:' '\n'
'1. user@domain/resource (only that resource matches).' '\n'
'2. user@domain (any resource matches).' '\n'
'3. domain/resource (only that resource matches).' '\n'
'4. domain (the domain itself matches, as does any user@domain,' '\n'
'domain/resource, or address containing a subdomain.')
else:
title = _('Adding Administrator')
prompt = _('Whom do you want to make an administrator? (JID, domain, ...)')
title = _('Adding Administrator...')
prompt = _('<b>Whom do you want to make an administrator?</b>' '\n\n'
'Can be one of the following:' '\n'
'1. user@domain/resource (only that resource matches).' '\n'
'2. user@domain (any resource matches).' '\n'
'3. domain/resource (only that resource matches).' '\n'
'4. domain (the domain itself matches, as does any user@domain,' '\n'
'domain/resource, or address containing a subdomain.')
instance = dialogs.InputDialog(title, prompt)
response = instance.get_response()
@ -1993,7 +2028,8 @@ class GroupchatConfigWindow(DataFormWindow):
def on_data_form_window_destroy(self, widget):
del gajim.interface.instances[self.account]['gc_config'][self.room_jid]
def on_apply_button_clicked(self, widget):
def on_ok_button_clicked(self, widget):
# We pressed OK button of the DataFormWindow
gajim.connections[self.account].send_gc_config(self.room_jid, self.config)
for affiliation in ('outcast', 'member', 'owner', 'admin'):
list = {}

View File

@ -602,7 +602,7 @@ ok_handler = None):
label = xml.get_widget('label')
self.input_entry = xml.get_widget('input_entry')
self.dialog.set_title(title)
label.set_text(label_str)
label.set_markup(label_str)
if input_str:
self.input_entry.set_text(input_str)
self.input_entry.select_region(0, -1) # select all

View File

@ -11135,7 +11135,7 @@ Static</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<signal name="destroy" handler="on_data_form_window_destroy" last_modification_time="Wed, 05 Oct 2005 08:52:41 GMT"/>
<signal name="destroy" handler="on_data_form_window_destroy" last_modification_time="Thu, 19 Jan 2006 12:55:13 GMT"/>
<child>
<widget class="GtkVBox" id="vbox68">
@ -11263,34 +11263,33 @@ Static</property>
</child>
<child>
<widget class="GtkHButtonBox" id="hbuttonbox17">
<widget class="GtkHButtonBox" id="hbuttonbox32">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<property name="spacing">10</property>
<property name="spacing">6</property>
<child>
<widget class="GtkButton" id="close_button">
<widget class="GtkButton" id="cancel_button">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-close</property>
<property name="label">gtk-cancel</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_close_button_clicked" last_modification_time="Wed, 20 Apr 2005 21:21:04 GMT"/>
<signal name="clicked" handler="on_cancel_button_clicked" last_modification_time="Thu, 19 Jan 2006 12:47:07 GMT"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="apply_button">
<widget class="GtkButton" id="ok_button">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-apply</property>
<property name="label">gtk-ok</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_apply_button_clicked" last_modification_time="Wed, 05 Oct 2005 08:56:12 GMT"/>
</widget>
</child>
</widget>
@ -11884,7 +11883,7 @@ Static</property>
<property name="visible">True</property>
<property name="label" translatable="yes"></property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>