Ticket #253: patch_privacy_lists_02.diff

File patch_privacy_lists_02.diff, 43.4 KB (added by roidelapluie <roidelapluie@…>, 10 years ago)

Patch to add Window to lists. made with SVN 6508 (Trunk). DO NOT ADD THIS PATCH IN YOUR SVN: It's under developement and buggy (and it does nothing)!!!

  • src/roster_window.py

     
    582582                        gajim.interface.instances[account]['xml_console'] = \
    583583                                dialogs.XMLConsoleWindow(account)
    584584
     585        def on_privacy_lists_menuitem_activate(self, widget, account):
     586                dialogs.PrivacyListsWindow(account)
     587
    585588        def on_set_motd_menuitem_activate(self, widget, account):
    586589                server = gajim.config.get_per('accounts', account, 'hostname')
    587590                server += '/announce/motd'
     
    617620                send_single_message_menuitem = xml.get_widget(
    618621                        'send_single_message_menuitem')
    619622                xml_console_menuitem = xml.get_widget('xml_console_menuitem')
     623                privacy_lists_menuitem = xml.get_widget('privacy_lists_menuitem')
    620624                administrator_menuitem = xml.get_widget('administrator_menuitem')
    621625                send_server_message_menuitem = xml.get_widget(
    622626                        'send_server_message_menuitem')
     
    630634                xml_console_menuitem.connect('activate',
    631635                        self.on_xml_console_menuitem_activate, account)
    632636
     637                privacy_lists_menuitem.connect('activate',
     638                        self.on_privacy_lists_menuitem_activate, account)
     639
    633640                send_server_message_menuitem.connect('activate',
    634641                        self.on_send_server_message_menuitem_activate, account)
    635642
  • src/dialogs.py

     
    15571557                        # it's expanded!!
    15581558                        self.input_textview.grab_focus()
    15591559
     1560class PrivacyListsWindow:
     1561        def __init__(self, account):
     1562                self.account = account
     1563                this_class = self.__class__
     1564                self.xml = gtkgui_helpers.get_glade('privacy_lists_main_window.glade')
     1565                self.window = self.xml.get_widget('privacy_lists_main_window')
     1566                self.privacy_lists_add_list_button = \
     1567                        self.xml.get_widget('privacy_lists_add_list_button')
     1568                self.privacy_lists_refresh_button = \
     1569                        self.xml.get_widget('privacy_lists_refresh_button')
     1570                self.privacy_lists_list_combobox = \
     1571                        self.xml.get_widget('privacy_lists_list_combobox')
     1572               
     1573
     1574                self.privacy_lists_add_list_button.connect('clicked',
     1575                        self.on_privacy_lists_add_list_button_clicked)
     1576                self.privacy_lists_refresh_button.connect('clicked',
     1577                        self.on_privacy_lists_refresh_button_clicked, self.account)
     1578               
     1579                self.privacy_lists = []
     1580                self.privacy_lists_save = []
     1581               
     1582                def create_list_of_privacy_types(arg_value):
     1583                        if arg_value == False:
     1584                                return False
     1585                        else:
     1586                                for privacy_list in arg_value["lists"]:
     1587                                        #print "DEBUG: List found (%s)" % privacy_list
     1588                                        self.privacy_lists += [privacy_list]
     1589                                        #print "DEBUG: List Added (%s)" % privacy_list
     1590                                        self.draw_privacy_lists_in_combobox()
     1591                                       
     1592               
     1593               
     1594                gajim.connections[account].get_privacy_lists(create_list_of_privacy_types)
     1595                self.enabled = False
     1596               
     1597                if len(gajim.connections) > 1:
     1598                        title = _('Privacy Lists for %s') % self.account
     1599                else:
     1600                        title = _('Privacy Lists')
     1601               
     1602                self.window.set_title(title)
     1603               
     1604                self.window.show_all()
     1605               
     1606                self.xml.signal_autoconnect(self)
     1607
     1608        def on_privacy_lists_add_list_button_clicked(self, widget):
     1609                return True
     1610       
     1611        def on_privacy_lists_refresh_button_clicked(self, widget, account):
     1612                def create_list_of_privacy_types(arg_value):
     1613                        if arg_value == False:
     1614                                return False
     1615                        else:
     1616                                for privacy_list in arg_value["lists"]:
     1617                                        #print "DEBUG: List found (%s)" % privacy_list
     1618                                        self.privacy_lists += [privacy_list]
     1619                                        #print "DEBUG: List Added (%s)" % privacy_list
     1620                                        self.draw_privacy_lists_in_combobox()
     1621                gajim.connections[account].get_privacy_lists(
     1622                create_list_of_privacy_types)
     1623
     1624        def draw_privacy_lists_in_combobox(self):
     1625                #print 'DEBUG: %s list(s) in cache' % xrange(len(self.privacy_lists_save))
     1626                for remove_item in xrange(len(self.privacy_lists_save)):
     1627                        self.privacy_lists_list_combobox.remove_text(remove_item)
     1628                self.privacy_lists_save = []
     1629                #print 'DEBUG: %s new list(s)' % xrange(len(self.privacy_lists))
     1630                for add_item in self.privacy_lists:
     1631                        self.privacy_lists_list_combobox.append_text(add_item)
     1632                       
     1633                self.privacy_lists_save, self.privacy_lists = self.privacy_lists, []
     1634                #print 'DEBUG: list(s) %s' % self.privacy_lists_save
     1635
    15601636class InvitationReceivedDialog:
    15611637        def __init__(self, account, room_jid, contact_jid, password = None, comment = None):
    15621638
  • src/common/xmpp/features_nb.py

     
    190190                        cb(dict)
    191191                except:
    192192                        pass
    193                 cb(False)
    194         disp.SendAndCallForResponse(iq, _on_respons)
     193                        cb(False)
     194        disp.SendAndCallForResponse(iq, _on_response)
    195195
    196196def getPrivacyList(disp, listname, cb):
    197197        """ Requests specific privacy list listname. Returns list of XML nodes (rules)
  • src/common/connection.py

     
    333333                                        on_connect = self.on_connect_success,
    334334                                        on_connect_failure = self.connect_to_next_host)
    335335                        else:
    336                                 con = common.xmpp.NonBlockingClient(self._hostname, debug = [], caller = self,
     336                                con = common.xmpp.NonBlockingClient(self._hostname, debug = ['socket', 'dispatcher'], caller = self,
    337337                                        on_connect = self.on_connect_success,
    338338                                        on_connect_failure = self.connect_to_next_host)
    339339                        self.last_connection = con
     
    439439                if kill_core and self.connected > 1:
    440440                        self.disconnect(on_purpose = True)
    441441       
     442        def get_privacy_lists(self, cb):
     443                common.xmpp.features_nb.getPrivacyLists(self.connection, cb)
     444               
     445       
    442446        def build_privacy_rule(self, name, action):
    443447                '''Build a Privacy rule stanza for invisibility'''
    444448                iq = common.xmpp.Iq('set', common.xmpp.NS_PRIVACY, xmlns = '')
  • data/glade/privacy_lists_main_window.glade

     
     1<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
     2<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
     3
     4<glade-interface>
     5
     6<widget class="GtkWindow" id="privacy_lists_main_window">
     7  <property name="border_width">5</property>
     8  <property name="visible">True</property>
     9  <property name="title" translatable="yes">Privacy lists</property>
     10  <property name="type">GTK_WINDOW_TOPLEVEL</property>
     11  <property name="window_position">GTK_WIN_POS_NONE</property>
     12  <property name="modal">False</property>
     13  <property name="resizable">False</property>
     14  <property name="destroy_with_parent">False</property>
     15  <property name="decorated">True</property>
     16  <property name="skip_taskbar_hint">False</property>
     17  <property name="skip_pager_hint">False</property>
     18  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
     19  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
     20  <property name="focus_on_map">True</property>
     21  <property name="urgency_hint">False</property>
     22
     23  <child>
     24    <widget class="GtkVBox" id="vbox7">
     25      <property name="border_width">5</property>
     26      <property name="visible">True</property>
     27      <property name="homogeneous">False</property>
     28      <property name="spacing">4</property>
     29
     30      <child>
     31        <widget class="GtkHBox" id="hbox2954">
     32          <property name="visible">True</property>
     33          <property name="homogeneous">False</property>
     34          <property name="spacing">0</property>
     35
     36          <child>
     37            <widget class="GtkLabel" id="privacy_lists_lists_label">
     38              <property name="visible">True</property>
     39              <property name="label" translatable="yes">Lists:</property>
     40              <property name="use_underline">False</property>
     41              <property name="use_markup">False</property>
     42              <property name="justify">GTK_JUSTIFY_LEFT</property>
     43              <property name="wrap">False</property>
     44              <property name="selectable">False</property>
     45              <property name="xalign">0.5</property>
     46              <property name="yalign">0.5</property>
     47              <property name="xpad">0</property>
     48              <property name="ypad">0</property>
     49              <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
     50              <property name="width_chars">-1</property>
     51              <property name="single_line_mode">False</property>
     52              <property name="angle">0</property>
     53            </widget>
     54            <packing>
     55              <property name="padding">2</property>
     56              <property name="expand">False</property>
     57              <property name="fill">False</property>
     58            </packing>
     59          </child>
     60
     61          <child>
     62            <widget class="GtkComboBox" id="privacy_lists_list_combobox">
     63              <property name="border_width">2</property>
     64              <property name="visible">True</property>
     65              <property name="items" translatable="yes"></property>
     66              <property name="add_tearoffs">False</property>
     67              <property name="focus_on_click">True</property>
     68            </widget>
     69            <packing>
     70              <property name="padding">0</property>
     71              <property name="expand">False</property>
     72              <property name="fill">False</property>
     73            </packing>
     74          </child>
     75
     76          <child>
     77            <widget class="GtkButton" id="privacy_lists_add_list_button">
     78              <property name="border_width">2</property>
     79              <property name="visible">True</property>
     80              <property name="can_focus">True</property>
     81              <property name="label">gtk-new</property>
     82              <property name="use_stock">True</property>
     83              <property name="relief">GTK_RELIEF_NORMAL</property>
     84              <property name="focus_on_click">True</property>
     85            </widget>
     86            <packing>
     87              <property name="padding">0</property>
     88              <property name="expand">False</property>
     89              <property name="fill">False</property>
     90            </packing>
     91          </child>
     92
     93          <child>
     94            <widget class="GtkButton" id="privacy_lists_remove_list_button">
     95              <property name="border_width">2</property>
     96              <property name="visible">True</property>
     97              <property name="can_focus">True</property>
     98              <property name="label">gtk-delete</property>
     99              <property name="use_stock">True</property>
     100              <property name="relief">GTK_RELIEF_NORMAL</property>
     101              <property name="focus_on_click">True</property>
     102            </widget>
     103            <packing>
     104              <property name="padding">0</property>
     105              <property name="expand">False</property>
     106              <property name="fill">False</property>
     107            </packing>
     108          </child>
     109        </widget>
     110        <packing>
     111          <property name="padding">0</property>
     112          <property name="expand">False</property>
     113          <property name="fill">False</property>
     114        </packing>
     115      </child>
     116
     117      <child>
     118        <widget class="GtkHSeparator" id="hseparator2">
     119          <property name="visible">True</property>
     120        </widget>
     121        <packing>
     122          <property name="padding">0</property>
     123          <property name="expand">False</property>
     124          <property name="fill">False</property>
     125        </packing>
     126      </child>
     127
     128      <child>
     129        <widget class="GtkHBox" id="hbox2955">
     130          <property name="visible">True</property>
     131          <property name="homogeneous">False</property>
     132          <property name="spacing">0</property>
     133
     134          <child>
     135            <widget class="GtkScrolledWindow" id="scrolledwindow1">
     136              <property name="border_width">2</property>
     137              <property name="visible">True</property>
     138              <property name="can_focus">True</property>
     139              <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
     140              <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
     141              <property name="shadow_type">GTK_SHADOW_IN</property>
     142              <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
     143
     144              <child>
     145                <widget class="GtkTreeView" id="privacy_lists_rules_treeview">
     146                  <property name="visible">True</property>
     147                  <property name="can_focus">True</property>
     148                  <property name="headers_visible">False</property>
     149                  <property name="rules_hint">False</property>
     150                  <property name="reorderable">False</property>
     151                  <property name="enable_search">True</property>
     152                  <property name="fixed_height_mode">False</property>
     153                  <property name="hover_selection">False</property>
     154                  <property name="hover_expand">False</property>
     155                </widget>
     156              </child>
     157            </widget>
     158            <packing>
     159              <property name="padding">0</property>
     160              <property name="expand">True</property>
     161              <property name="fill">True</property>
     162            </packing>
     163          </child>
     164
     165          <child>
     166            <widget class="GtkVBox" id="vbox8">
     167              <property name="visible">True</property>
     168              <property name="homogeneous">False</property>
     169              <property name="spacing">0</property>
     170
     171              <child>
     172                <widget class="GtkButton" id="privacy_lists_clear_rules_button">
     173                  <property name="border_width">2</property>
     174                  <property name="visible">True</property>
     175                  <property name="can_focus">True</property>
     176                  <property name="label" translatable="yes">Clear</property>
     177                  <property name="use_underline">True</property>
     178                  <property name="relief">GTK_RELIEF_NORMAL</property>
     179                  <property name="focus_on_click">True</property>
     180                </widget>
     181                <packing>
     182                  <property name="padding">0</property>
     183                  <property name="expand">False</property>
     184                  <property name="fill">False</property>
     185                </packing>
     186              </child>
     187
     188              <child>
     189                <widget class="GtkCheckButton" id="privacy_lists_set_active_checkbutton1">
     190                  <property name="visible">True</property>
     191                  <property name="can_focus">True</property>
     192                  <property name="label" translatable="yes">Active</property>
     193                  <property name="use_underline">True</property>
     194                  <property name="relief">GTK_RELIEF_NORMAL</property>
     195                  <property name="focus_on_click">True</property>
     196                  <property name="active">False</property>
     197                  <property name="inconsistent">False</property>
     198                  <property name="draw_indicator">True</property>
     199                </widget>
     200                <packing>
     201                  <property name="padding">0</property>
     202                  <property name="expand">False</property>
     203                  <property name="fill">False</property>
     204                </packing>
     205              </child>
     206
     207              <child>
     208                <widget class="GtkCheckButton" id="privacy_lists_set_default_checkbutton">
     209                  <property name="visible">True</property>
     210                  <property name="can_focus">True</property>
     211                  <property name="label" translatable="yes">Default</property>
     212                  <property name="use_underline">True</property>
     213                  <property name="relief">GTK_RELIEF_NORMAL</property>
     214                  <property name="focus_on_click">True</property>
     215                  <property name="active">False</property>
     216                  <property name="inconsistent">False</property>
     217                  <property name="draw_indicator">True</property>
     218                </widget>
     219                <packing>
     220                  <property name="padding">0</property>
     221                  <property name="expand">False</property>
     222                  <property name="fill">False</property>
     223                </packing>
     224              </child>
     225            </widget>
     226            <packing>
     227              <property name="padding">0</property>
     228              <property name="expand">False</property>
     229              <property name="fill">False</property>
     230            </packing>
     231          </child>
     232        </widget>
     233        <packing>
     234          <property name="padding">0</property>
     235          <property name="expand">True</property>
     236          <property name="fill">True</property>
     237        </packing>
     238      </child>
     239
     240      <child>
     241        <widget class="GtkHBox" id="hbox2956">
     242          <property name="visible">True</property>
     243          <property name="homogeneous">False</property>
     244          <property name="spacing">0</property>
     245
     246          <child>
     247            <widget class="GtkLabel" id="privacy_lists_action_label">
     248              <property name="visible">True</property>
     249              <property name="label" translatable="yes">Action: </property>
     250              <property name="use_underline">False</property>
     251              <property name="use_markup">False</property>
     252              <property name="justify">GTK_JUSTIFY_LEFT</property>
     253              <property name="wrap">False</property>
     254              <property name="selectable">False</property>
     255              <property name="xalign">0.5</property>
     256              <property name="yalign">0.5</property>
     257              <property name="xpad">0</property>
     258              <property name="ypad">0</property>
     259              <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
     260              <property name="width_chars">-1</property>
     261              <property name="single_line_mode">False</property>
     262              <property name="angle">0</property>
     263            </widget>
     264            <packing>
     265              <property name="padding">2</property>
     266              <property name="expand">False</property>
     267              <property name="fill">False</property>
     268            </packing>
     269          </child>
     270
     271          <child>
     272            <widget class="GtkComboBox" id="privacy_lists_action_combobox">
     273              <property name="border_width">2</property>
     274              <property name="visible">True</property>
     275              <property name="items" translatable="yes">Allow
     276Block</property>
     277              <property name="add_tearoffs">False</property>
     278              <property name="focus_on_click">True</property>
     279            </widget>
     280            <packing>
     281              <property name="padding">0</property>
     282              <property name="expand">True</property>
     283              <property name="fill">True</property>
     284            </packing>
     285          </child>
     286        </widget>
     287        <packing>
     288          <property name="padding">0</property>
     289          <property name="expand">False</property>
     290          <property name="fill">False</property>
     291        </packing>
     292      </child>
     293
     294      <child>
     295        <widget class="GtkTable" id="table4">
     296          <property name="visible">True</property>
     297          <property name="n_rows">2</property>
     298          <property name="n_columns">2</property>
     299          <property name="homogeneous">False</property>
     300          <property name="row_spacing">0</property>
     301          <property name="column_spacing">0</property>
     302
     303          <child>
     304            <widget class="GtkCheckButton" id="privacy_lists_outgoing_presences_checkbutton">
     305              <property name="visible">True</property>
     306              <property name="can_focus">True</property>
     307              <property name="label" translatable="yes">Outgoing presences</property>
     308              <property name="use_underline">True</property>
     309              <property name="relief">GTK_RELIEF_NORMAL</property>
     310              <property name="focus_on_click">True</property>
     311              <property name="active">False</property>
     312              <property name="inconsistent">False</property>
     313              <property name="draw_indicator">True</property>
     314            </widget>
     315            <packing>
     316              <property name="left_attach">1</property>
     317              <property name="right_attach">2</property>
     318              <property name="top_attach">1</property>
     319              <property name="bottom_attach">2</property>
     320              <property name="x_options">fill</property>
     321              <property name="y_options"></property>
     322            </packing>
     323          </child>
     324
     325          <child>
     326            <widget class="GtkCheckButton" id="privacy_lists_incoming_queries_checkbutton">
     327              <property name="visible">True</property>
     328              <property name="can_focus">True</property>
     329              <property name="label" translatable="yes">Incoming queries</property>
     330              <property name="use_underline">True</property>
     331              <property name="relief">GTK_RELIEF_NORMAL</property>
     332              <property name="focus_on_click">True</property>
     333              <property name="active">False</property>
     334              <property name="inconsistent">False</property>
     335              <property name="draw_indicator">True</property>
     336            </widget>
     337            <packing>
     338              <property name="left_attach">0</property>
     339              <property name="right_attach">1</property>
     340              <property name="top_attach">1</property>
     341              <property name="bottom_attach">2</property>
     342              <property name="x_options">fill</property>
     343              <property name="y_options"></property>
     344            </packing>
     345          </child>
     346
     347          <child>
     348            <widget class="GtkCheckButton" id="privacy_lists_incoming_messages_checkbutton">
     349              <property name="visible">True</property>
     350              <property name="can_focus">True</property>
     351              <property name="label" translatable="yes">Incoming messages</property>
     352              <property name="use_underline">True</property>
     353              <property name="relief">GTK_RELIEF_NORMAL</property>
     354              <property name="focus_on_click">True</property>
     355              <property name="active">False</property>
     356              <property name="inconsistent">False</property>
     357              <property name="draw_indicator">True</property>
     358            </widget>
     359            <packing>
     360              <property name="left_attach">0</property>
     361              <property name="right_attach">1</property>
     362              <property name="top_attach">0</property>
     363              <property name="bottom_attach">1</property>
     364              <property name="y_options"></property>
     365            </packing>
     366          </child>
     367
     368          <child>
     369            <widget class="GtkCheckButton" id="privacy_lists_incoming_presences_checkbutton">
     370              <property name="visible">True</property>
     371              <property name="can_focus">True</property>
     372              <property name="label" translatable="yes">Incoming presences</property>
     373              <property name="use_underline">True</property>
     374              <property name="relief">GTK_RELIEF_NORMAL</property>
     375              <property name="focus_on_click">True</property>
     376              <property name="active">False</property>
     377              <property name="inconsistent">False</property>
     378              <property name="draw_indicator">True</property>
     379            </widget>
     380            <packing>
     381              <property name="left_attach">1</property>
     382              <property name="right_attach">2</property>
     383              <property name="top_attach">0</property>
     384              <property name="bottom_attach">1</property>
     385              <property name="y_options"></property>
     386            </packing>
     387          </child>
     388        </widget>
     389        <packing>
     390          <property name="padding">0</property>
     391          <property name="expand">True</property>
     392          <property name="fill">True</property>
     393        </packing>
     394      </child>
     395
     396      <child>
     397        <widget class="GtkFrame" id="">
     398          <property name="visible">True</property>
     399          <property name="label_xalign">0</property>
     400          <property name="label_yalign">0.5</property>
     401          <property name="shadow_type">GTK_SHADOW_NONE</property>
     402
     403          <child>
     404            <widget class="GtkAlignment" id="alignment2">
     405              <property name="visible">True</property>
     406              <property name="xalign">0.5</property>
     407              <property name="yalign">0.5</property>
     408              <property name="xscale">1</property>
     409              <property name="yscale">1</property>
     410              <property name="top_padding">0</property>
     411              <property name="bottom_padding">0</property>
     412              <property name="left_padding">12</property>
     413              <property name="right_padding">0</property>
     414
     415              <child>
     416                <widget class="GtkTable" id="table1">
     417                  <property name="visible">True</property>
     418                  <property name="n_rows">3</property>
     419                  <property name="n_columns">2</property>
     420                  <property name="homogeneous">False</property>
     421                  <property name="row_spacing">0</property>
     422                  <property name="column_spacing">0</property>
     423
     424                  <child>
     425                    <widget class="GtkScrolledWindow" id="scrolledwindow2">
     426                      <property name="visible">True</property>
     427                      <property name="can_focus">True</property>
     428                      <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
     429                      <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
     430                      <property name="shadow_type">GTK_SHADOW_IN</property>
     431                      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
     432
     433                      <child>
     434                        <widget class="GtkTreeView" id="privacy_lists_jabberid_treeview">
     435                          <property name="visible">True</property>
     436                          <property name="can_focus">True</property>
     437                          <property name="headers_visible">True</property>
     438                          <property name="rules_hint">False</property>
     439                          <property name="reorderable">False</property>
     440                          <property name="enable_search">True</property>
     441                          <property name="fixed_height_mode">False</property>
     442                          <property name="hover_selection">False</property>
     443                          <property name="hover_expand">False</property>
     444                        </widget>
     445                      </child>
     446                    </widget>
     447                    <packing>
     448                      <property name="left_attach">0</property>
     449                      <property name="right_attach">1</property>
     450                      <property name="top_attach">0</property>
     451                      <property name="bottom_attach">2</property>
     452                    </packing>
     453                  </child>
     454
     455                  <child>
     456                    <widget class="GtkButton" id="privacy_lists_jabberids_clear_buttons">
     457                      <property name="border_width">2</property>
     458                      <property name="visible">True</property>
     459                      <property name="can_focus">True</property>
     460                      <property name="label" translatable="yes">Clear</property>
     461                      <property name="use_underline">True</property>
     462                      <property name="relief">GTK_RELIEF_NORMAL</property>
     463                      <property name="focus_on_click">True</property>
     464                    </widget>
     465                    <packing>
     466                      <property name="left_attach">1</property>
     467                      <property name="right_attach">2</property>
     468                      <property name="top_attach">0</property>
     469                      <property name="bottom_attach">1</property>
     470                      <property name="x_options">fill</property>
     471                      <property name="y_options"></property>
     472                    </packing>
     473                  </child>
     474
     475                  <child>
     476                    <widget class="GtkButton" id="privacy_lists_remove_jabberids_button">
     477                      <property name="border_width">2</property>
     478                      <property name="visible">True</property>
     479                      <property name="can_focus">True</property>
     480                      <property name="label" translatable="yes">Delete</property>
     481                      <property name="use_underline">True</property>
     482                      <property name="relief">GTK_RELIEF_NORMAL</property>
     483                      <property name="focus_on_click">True</property>
     484                    </widget>
     485                    <packing>
     486                      <property name="left_attach">1</property>
     487                      <property name="right_attach">2</property>
     488                      <property name="top_attach">1</property>
     489                      <property name="bottom_attach">2</property>
     490                      <property name="x_options">fill</property>
     491                      <property name="y_options"></property>
     492                    </packing>
     493                  </child>
     494
     495                  <child>
     496                    <widget class="GtkEntry" id="privacy_lists_jabberids_entry">
     497                      <property name="visible">True</property>
     498                      <property name="can_focus">True</property>
     499                      <property name="editable">True</property>
     500                      <property name="visibility">True</property>
     501                      <property name="max_length">0</property>
     502                      <property name="text" translatable="yes"></property>
     503                      <property name="has_frame">True</property>
     504                      <property name="invisible_char">*</property>
     505                      <property name="activates_default">False</property>
     506                    </widget>
     507                    <packing>
     508                      <property name="left_attach">0</property>
     509                      <property name="right_attach">1</property>
     510                      <property name="top_attach">2</property>
     511                      <property name="bottom_attach">3</property>
     512                      <property name="x_padding">2</property>
     513                      <property name="y_padding">2</property>
     514                      <property name="y_options"></property>
     515                    </packing>
     516                  </child>
     517
     518                  <child>
     519                    <widget class="GtkButton" id="privacy_lists_jabberids_add_button">
     520                      <property name="border_width">2</property>
     521                      <property name="visible">True</property>
     522                      <property name="can_focus">True</property>
     523                      <property name="label" translatable="yes">Add</property>
     524                      <property name="use_underline">True</property>
     525                      <property name="relief">GTK_RELIEF_NORMAL</property>
     526                      <property name="focus_on_click">True</property>
     527                    </widget>
     528                    <packing>
     529                      <property name="left_attach">1</property>
     530                      <property name="right_attach">2</property>
     531                      <property name="top_attach">2</property>
     532                      <property name="bottom_attach">3</property>
     533                      <property name="x_options">fill</property>
     534                      <property name="y_options"></property>
     535                    </packing>
     536                  </child>
     537                </widget>
     538              </child>
     539            </widget>
     540          </child>
     541
     542          <child>
     543            <widget class="GtkLabel" id="privacy_lists_for_jabberids_label">
     544              <property name="visible">True</property>
     545              <property name="label" translatable="yes">&lt;b&gt;For JabberIDs:&lt;/b&gt;</property>
     546              <property name="use_underline">False</property>
     547              <property name="use_markup">True</property>
     548              <property name="justify">GTK_JUSTIFY_LEFT</property>
     549              <property name="wrap">False</property>
     550              <property name="selectable">False</property>
     551              <property name="xalign">0.5</property>
     552              <property name="yalign">0.5</property>
     553              <property name="xpad">0</property>
     554              <property name="ypad">2</property>
     555              <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
     556              <property name="width_chars">-1</property>
     557              <property name="single_line_mode">False</property>
     558              <property name="angle">0</property>
     559            </widget>
     560            <packing>
     561              <property name="type">label_item</property>
     562            </packing>
     563          </child>
     564        </widget>
     565        <packing>
     566          <property name="padding">0</property>
     567          <property name="expand">True</property>
     568          <property name="fill">True</property>
     569        </packing>
     570      </child>
     571
     572      <child>
     573        <widget class="GtkFrame" id="frame3">
     574          <property name="visible">True</property>
     575          <property name="label_xalign">0</property>
     576          <property name="label_yalign">0.5</property>
     577          <property name="shadow_type">GTK_SHADOW_NONE</property>
     578
     579          <child>
     580            <widget class="GtkAlignment" id="alignment3">
     581              <property name="visible">True</property>
     582              <property name="xalign">0.5</property>
     583              <property name="yalign">0.5</property>
     584              <property name="xscale">1</property>
     585              <property name="yscale">1</property>
     586              <property name="top_padding">0</property>
     587              <property name="bottom_padding">0</property>
     588              <property name="left_padding">12</property>
     589              <property name="right_padding">0</property>
     590
     591              <child>
     592                <widget class="GtkTable" id="table2">
     593                  <property name="visible">True</property>
     594                  <property name="n_rows">3</property>
     595                  <property name="n_columns">2</property>
     596                  <property name="homogeneous">False</property>
     597                  <property name="row_spacing">0</property>
     598                  <property name="column_spacing">0</property>
     599
     600                  <child>
     601                    <widget class="GtkScrolledWindow" id="scrolledwindow3">
     602                      <property name="border_width">2</property>
     603                      <property name="visible">True</property>
     604                      <property name="can_focus">True</property>
     605                      <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
     606                      <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
     607                      <property name="shadow_type">GTK_SHADOW_IN</property>
     608                      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
     609
     610                      <child>
     611                        <widget class="GtkTreeView" id="privacy_lists_groups_treeview">
     612                          <property name="visible">True</property>
     613                          <property name="can_focus">True</property>
     614                          <property name="headers_visible">True</property>
     615                          <property name="rules_hint">False</property>
     616                          <property name="reorderable">False</property>
     617                          <property name="enable_search">True</property>
     618                          <property name="fixed_height_mode">False</property>
     619                          <property name="hover_selection">False</property>
     620                          <property name="hover_expand">False</property>
     621                        </widget>
     622                      </child>
     623                    </widget>
     624                    <packing>
     625                      <property name="left_attach">0</property>
     626                      <property name="right_attach">1</property>
     627                      <property name="top_attach">0</property>
     628                      <property name="bottom_attach">2</property>
     629                    </packing>
     630                  </child>
     631
     632                  <child>
     633                    <widget class="GtkButton" id="privacy_lists_groups_clear_button">
     634                      <property name="border_width">2</property>
     635                      <property name="visible">True</property>
     636                      <property name="can_focus">True</property>
     637                      <property name="label" translatable="yes">Clear</property>
     638                      <property name="use_underline">True</property>
     639                      <property name="relief">GTK_RELIEF_NORMAL</property>
     640                      <property name="focus_on_click">True</property>
     641                    </widget>
     642                    <packing>
     643                      <property name="left_attach">1</property>
     644                      <property name="right_attach">2</property>
     645                      <property name="top_attach">0</property>
     646                      <property name="bottom_attach">1</property>
     647                      <property name="x_options">fill</property>
     648                      <property name="y_options"></property>
     649                    </packing>
     650                  </child>
     651
     652                  <child>
     653                    <widget class="GtkButton" id="privacy_lists_groups_remove_button">
     654                      <property name="border_width">2</property>
     655                      <property name="visible">True</property>
     656                      <property name="can_focus">True</property>
     657                      <property name="label" translatable="yes">Delete</property>
     658                      <property name="use_underline">True</property>
     659                      <property name="relief">GTK_RELIEF_NORMAL</property>
     660                      <property name="focus_on_click">True</property>
     661                    </widget>
     662                    <packing>
     663                      <property name="left_attach">1</property>
     664                      <property name="right_attach">2</property>
     665                      <property name="top_attach">1</property>
     666                      <property name="bottom_attach">2</property>
     667                      <property name="x_options">fill</property>
     668                      <property name="y_options"></property>
     669                    </packing>
     670                  </child>
     671
     672                  <child>
     673                    <widget class="GtkButton" id="privacy_lists_groups_add_button">
     674                      <property name="border_width">2</property>
     675                      <property name="visible">True</property>
     676                      <property name="can_focus">True</property>
     677                      <property name="label" translatable="yes">Add</property>
     678                      <property name="use_underline">True</property>
     679                      <property name="relief">GTK_RELIEF_NORMAL</property>
     680                      <property name="focus_on_click">True</property>
     681                    </widget>
     682                    <packing>
     683                      <property name="left_attach">1</property>
     684                      <property name="right_attach">2</property>
     685                      <property name="top_attach">2</property>
     686                      <property name="bottom_attach">3</property>
     687                      <property name="x_options">fill</property>
     688                      <property name="y_options"></property>
     689                    </packing>
     690                  </child>
     691
     692                  <child>
     693                    <widget class="GtkEntry" id="privacy_lists_groups_entry">
     694                      <property name="visible">True</property>
     695                      <property name="can_focus">True</property>
     696                      <property name="editable">True</property>
     697                      <property name="visibility">True</property>
     698                      <property name="max_length">0</property>
     699                      <property name="text" translatable="yes"></property>
     700                      <property name="has_frame">True</property>
     701                      <property name="invisible_char">*</property>
     702                      <property name="activates_default">False</property>
     703                    </widget>
     704                    <packing>
     705                      <property name="left_attach">0</property>
     706                      <property name="right_attach">1</property>
     707                      <property name="top_attach">2</property>
     708                      <property name="bottom_attach">3</property>
     709                      <property name="x_padding">2</property>
     710                      <property name="y_padding">2</property>
     711                      <property name="y_options"></property>
     712                    </packing>
     713                  </child>
     714                </widget>
     715              </child>
     716            </widget>
     717          </child>
     718
     719          <child>
     720            <widget class="GtkLabel" id="privacy_lists_for_groups_label">
     721              <property name="visible">True</property>
     722              <property name="label" translatable="yes">&lt;b&gt;For groups:&lt;/b&gt;</property>
     723              <property name="use_underline">False</property>
     724              <property name="use_markup">True</property>
     725              <property name="justify">GTK_JUSTIFY_LEFT</property>
     726              <property name="wrap">False</property>
     727              <property name="selectable">False</property>
     728              <property name="xalign">0.5</property>
     729              <property name="yalign">0.5</property>
     730              <property name="xpad">0</property>
     731              <property name="ypad">2</property>
     732              <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
     733              <property name="width_chars">-1</property>
     734              <property name="single_line_mode">False</property>
     735              <property name="angle">0</property>
     736            </widget>
     737            <packing>
     738              <property name="type">label_item</property>
     739            </packing>
     740          </child>
     741        </widget>
     742        <packing>
     743          <property name="padding">0</property>
     744          <property name="expand">True</property>
     745          <property name="fill">True</property>
     746        </packing>
     747      </child>
     748
     749      <child>
     750        <widget class="GtkFrame" id="frame4">
     751          <property name="visible">True</property>
     752          <property name="label_xalign">0</property>
     753          <property name="label_yalign">0.5</property>
     754          <property name="shadow_type">GTK_SHADOW_NONE</property>
     755
     756          <child>
     757            <widget class="GtkAlignment" id="alignment4">
     758              <property name="visible">True</property>
     759              <property name="xalign">0.5</property>
     760              <property name="yalign">0.5</property>
     761              <property name="xscale">1</property>
     762              <property name="yscale">1</property>
     763              <property name="top_padding">0</property>
     764              <property name="bottom_padding">0</property>
     765              <property name="left_padding">12</property>
     766              <property name="right_padding">0</property>
     767
     768              <child>
     769                <widget class="GtkTable" id="table3">
     770                  <property name="visible">True</property>
     771                  <property name="n_rows">2</property>
     772                  <property name="n_columns">2</property>
     773                  <property name="homogeneous">False</property>
     774                  <property name="row_spacing">0</property>
     775                  <property name="column_spacing">0</property>
     776
     777                  <child>
     778                    <widget class="GtkCheckButton" id="privacy_lists_from_checkbutton">
     779                      <property name="visible">True</property>
     780                      <property name="can_focus">True</property>
     781                      <property name="label" translatable="yes">From</property>
     782                      <property name="use_underline">True</property>
     783                      <property name="relief">GTK_RELIEF_NORMAL</property>
     784                      <property name="focus_on_click">True</property>
     785                      <property name="active">False</property>
     786                      <property name="inconsistent">False</property>
     787                      <property name="draw_indicator">True</property>
     788                    </widget>
     789                    <packing>
     790                      <property name="left_attach">0</property>
     791                      <property name="right_attach">1</property>
     792                      <property name="top_attach">1</property>
     793                      <property name="bottom_attach">2</property>
     794                      <property name="x_options">fill</property>
     795                      <property name="y_options"></property>
     796                    </packing>
     797                  </child>
     798
     799                  <child>
     800                    <widget class="GtkCheckButton" id="privacy_lists_to_checkbutton">
     801                      <property name="visible">True</property>
     802                      <property name="can_focus">True</property>
     803                      <property name="label" translatable="yes">To</property>
     804                      <property name="use_underline">True</property>
     805                      <property name="relief">GTK_RELIEF_NORMAL</property>
     806                      <property name="focus_on_click">True</property>
     807                      <property name="active">False</property>
     808                      <property name="inconsistent">False</property>
     809                      <property name="draw_indicator">True</property>
     810                    </widget>
     811                    <packing>
     812                      <property name="left_attach">1</property>
     813                      <property name="right_attach">2</property>
     814                      <property name="top_attach">0</property>
     815                      <property name="bottom_attach">1</property>
     816                    </packing>
     817                  </child>
     818
     819                  <child>
     820                    <widget class="GtkCheckButton" id="privacy_lists_both_checkbutton">
     821                      <property name="visible">True</property>
     822                      <property name="can_focus">True</property>
     823                      <property name="label" translatable="yes">Both</property>
     824                      <property name="use_underline">True</property>
     825                      <property name="relief">GTK_RELIEF_NORMAL</property>
     826                      <property name="focus_on_click">True</property>
     827                      <property name="active">False</property>
     828                      <property name="inconsistent">False</property>
     829                      <property name="draw_indicator">True</property>
     830                    </widget>
     831                    <packing>
     832                      <property name="left_attach">1</property>
     833                      <property name="right_attach">2</property>
     834                      <property name="top_attach">1</property>
     835                      <property name="bottom_attach">2</property>
     836                      <property name="y_options">expand</property>
     837                    </packing>
     838                  </child>
     839
     840                  <child>
     841                    <widget class="GtkCheckButton" id="privacy_lists_none_checkbutton">
     842                      <property name="visible">True</property>
     843                      <property name="can_focus">True</property>
     844                      <property name="label" translatable="yes">None</property>
     845                      <property name="use_underline">True</property>
     846                      <property name="relief">GTK_RELIEF_NORMAL</property>
     847                      <property name="focus_on_click">True</property>
     848                      <property name="active">False</property>
     849                      <property name="inconsistent">False</property>
     850                      <property name="draw_indicator">True</property>
     851                    </widget>
     852                    <packing>
     853                      <property name="left_attach">0</property>
     854                      <property name="right_attach">1</property>
     855                      <property name="top_attach">0</property>
     856                      <property name="bottom_attach">1</property>
     857                      <property name="y_options">expand</property>
     858                    </packing>
     859                  </child>
     860                </widget>
     861              </child>
     862            </widget>
     863          </child>
     864
     865          <child>
     866            <widget class="GtkLabel" id="privacy_lists_based_on_subscription_label">
     867              <property name="visible">True</property>
     868              <property name="label" translatable="yes">&lt;b&gt;Based on subscription:&lt;/b&gt;</property>
     869              <property name="use_underline">False</property>
     870              <property name="use_markup">True</property>
     871              <property name="justify">GTK_JUSTIFY_LEFT</property>
     872              <property name="wrap">False</property>
     873              <property name="selectable">False</property>
     874              <property name="xalign">0.5</property>
     875              <property name="yalign">0.5</property>
     876              <property name="xpad">0</property>
     877              <property name="ypad">0</property>
     878              <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
     879              <property name="width_chars">-1</property>
     880              <property name="single_line_mode">False</property>
     881              <property name="angle">0</property>
     882            </widget>
     883            <packing>
     884              <property name="type">label_item</property>
     885            </packing>
     886          </child>
     887        </widget>
     888        <packing>
     889          <property name="padding">0</property>
     890          <property name="expand">True</property>
     891          <property name="fill">True</property>
     892        </packing>
     893      </child>
     894
     895      <child>
     896        <widget class="GtkHBox" id="hbox2957">
     897          <property name="visible">True</property>
     898          <property name="homogeneous">True</property>
     899          <property name="spacing">0</property>
     900
     901          <child>
     902            <widget class="GtkButton" id="privacy_lists_refresh_button">
     903              <property name="visible">True</property>
     904              <property name="can_focus">True</property>
     905              <property name="label">gtk-refresh</property>
     906              <property name="use_stock">True</property>
     907              <property name="relief">GTK_RELIEF_NORMAL</property>
     908              <property name="focus_on_click">True</property>
     909            </widget>
     910            <packing>
     911              <property name="padding">0</property>
     912              <property name="expand">False</property>
     913              <property name="fill">False</property>
     914            </packing>
     915          </child>
     916
     917          <child>
     918            <widget class="GtkButton" id="privacy_lists_close_button">
     919              <property name="visible">True</property>
     920              <property name="can_focus">True</property>
     921              <property name="label">gtk-close</property>
     922              <property name="use_stock">True</property>
     923              <property name="relief">GTK_RELIEF_NORMAL</property>
     924              <property name="focus_on_click">True</property>
     925            </widget>
     926            <packing>
     927              <property name="padding">0</property>
     928              <property name="expand">False</property>
     929              <property name="fill">False</property>
     930            </packing>
     931          </child>
     932        </widget>
     933        <packing>
     934          <property name="padding">0</property>
     935          <property name="expand">True</property>
     936          <property name="fill">True</property>
     937        </packing>
     938      </child>
     939    </widget>
     940  </child>
     941</widget>
     942
     943</glade-interface>
  • data/glade/advanced_menuitem_menu.glade

     
    3131  </child>
    3232
    3333  <child>
     34    <widget class="GtkMenuItem" id="privacy_lists_menuitem">
     35      <property name="label" translatable="yes">_Privacy Lists</property>
     36      <property name="use_underline">True</property>
     37    </widget>
     38  </child>
     39
     40  <child>
    3441    <widget class="GtkSeparatorMenuItem" id="separator8">
    3542    </widget>
    3643  </child>