Changeset a27b0c6


Ignore:
Timestamp:
09/24/2008 01:23:38 AM (16 years ago)
Author:
Andrew Resch <andrewresch@gmail.com>
Branches:
2.0.x, develop, extjs4-port, master
Children:
e32ce5
Parents:
af0bd0
Message:

Add the ability to add plugins from the plugins preference page (from
.eggs)
Add a rescan for plugins button to rescan the plugin folders

Location:
deluge
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • deluge/core/core.py

    raf0bd0 ra27b0c6  
    681681            self.export_add_torrent_file(os.path.split(target)[1], open(target, "rb").read(), None)
    682682
     683    def export_upload_plugin(self, filename, plugin_data):
     684        """This method is used to upload new plugins to the daemon.  It is used
     685        when connecting to the daemon remotely and installing a new plugin on
     686        the client side. 'plugin_data' is a xmlrpc.Binary object of the file data,
     687        ie, plugin_file.read()"""
     688       
     689        f = open(os.path.join(self.config["config_location"], "plugins", filename), "wb")
     690        f.write(plugin_data.data)
     691        f.close()
     692        component.get("PluginManager").scan_for_plugins()
     693   
     694    def export_rescan_plugins(self):
     695        """Rescans the plugin folders for new plugins"""
     696        component.get("PluginManager").scan_for_plugins()
     697           
    683698    ## Queueing functions ##
    684699    def export_queue_top(self, torrent_ids):
  • deluge/pluginmanagerbase.py

    raf0bd0 ra27b0c6  
    5050        self.config = deluge.configmanager.ConfigManager(config_file)
    5151
     52        # Create the plugins folder if it doesn't exist
     53        if not os.path.exists(os.path.join(deluge.configmanager.get_config_dir(), "plugins")):
     54            os.mkdir(os.path.join(deluge.configmanager.get_config_dir(), "plugins"))
     55           
    5256        # This is the entry we want to load..
    5357        self.entry_name = entry_name
  • deluge/ui/client.py

    raf0bd0 ra27b0c6  
    170170            "set_torrent_stop_ratio", "set_torrent_stop_at_ratio",
    171171            "set_torrent_remove_at_ratio", "set_torrent_move_on_completed",
    172             "set_torrent_move_on_completed_path", "add_torrent_magnets", "create_torrent"]
     172            "set_torrent_move_on_completed_path", "add_torrent_magnets",
     173            "create_torrent", "upload_plugin", "rescan_plugins"]
    173174
    174175    def __init__(self):
  • deluge/ui/gtkui/glade/preferences_dialog.glade

    raf0bd0 ra27b0c6  
    11<?xml version="1.0" encoding="UTF-8" standalone="no"?>
    22<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
    3 <!--Generated with glade3 3.4.5 on Sat Sep 13 18:01:11 2008 -->
     3<!--Generated with glade3 3.4.5 on Mon Sep 22 18:30:16 2008 -->
    44<glade-interface>
    55  <widget class="GtkDialog" id="pref_dialog">
     
    175175                                        <property name="n_columns">2</property>
    176176                                        <child>
    177                                           <widget class="GtkAlignment" id="alignment11">
     177                                          <widget class="GtkLabel" id="label19">
     178                                            <property name="visible">True</property>
     179                                            <property name="xalign">0</property>
     180                                            <property name="label" translatable="yes">Download to:</property>
     181                                          </widget>
     182                                          <packing>
     183                                            <property name="x_options">GTK_FILL</property>
     184                                          </packing>
     185                                        </child>
     186                                        <child>
     187                                          <widget class="GtkHBox" id="hbox8">
    178188                                            <property name="visible">True</property>
    179189                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    180                                             <child>
    181                                               <widget class="GtkHBox" id="hbox5">
    182                                                 <property name="visible">True</property>
     190                                            <property name="spacing">5</property>
     191                                            <child>
     192                                              <widget class="GtkFileChooserButton" id="download_path_button">
     193                                                <property name="visible">True</property>
     194                                                <property name="sensitive">False</property>
    183195                                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    184                                                 <property name="spacing">5</property>
    185                                                 <child>
    186                                                   <widget class="GtkFileChooserButton" id="folder_autoadd">
    187                                                     <property name="visible">True</property>
    188                                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    189                                                     <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
    190                                                   </widget>
    191                                                 </child>
    192                                                 <child>
    193                                                   <widget class="GtkEntry" id="entry_autoadd">
    194                                                     <property name="can_focus">True</property>
    195                                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    196                                                   </widget>
    197                                                   <packing>
    198                                                     <property name="position">1</property>
    199                                                   </packing>
    200                                                 </child>
    201                                               </widget>
     196                                                <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
     197                                                <property name="title" translatable="yes">Select A Folder</property>
     198                                              </widget>
     199                                            </child>
     200                                            <child>
     201                                              <widget class="GtkEntry" id="entry_download_path">
     202                                                <property name="can_focus">True</property>
     203                                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     204                                              </widget>
     205                                              <packing>
     206                                                <property name="position">1</property>
     207                                              </packing>
    202208                                            </child>
    203209                                          </widget>
     
    205211                                            <property name="left_attach">1</property>
    206212                                            <property name="right_attach">2</property>
    207                                             <property name="top_attach">3</property>
    208                                             <property name="bottom_attach">4</property>
    209                                           </packing>
    210                                         </child>
    211                                         <child>
    212                                           <widget class="GtkAlignment" id="alignment8">
    213                                             <property name="visible">True</property>
    214                                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    215                                             <child>
    216                                               <widget class="GtkHBox" id="hbox10">
    217                                                 <property name="visible">True</property>
    218                                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    219                                                 <property name="spacing">5</property>
    220                                                 <child>
    221                                                   <widget class="GtkFileChooserButton" id="torrent_files_button">
    222                                                     <property name="visible">True</property>
    223                                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    224                                                     <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
    225                                                     <property name="title" translatable="yes">Select A Folder</property>
    226                                                   </widget>
    227                                                 </child>
    228                                                 <child>
    229                                                   <widget class="GtkEntry" id="entry_torrents_path">
    230                                                     <property name="can_focus">True</property>
    231                                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    232                                                   </widget>
    233                                                   <packing>
    234                                                     <property name="position">1</property>
    235                                                   </packing>
    236                                                 </child>
    237                                               </widget>
    238                                             </child>
    239                                           </widget>
    240                                           <packing>
    241                                             <property name="left_attach">1</property>
    242                                             <property name="right_attach">2</property>
     213                                          </packing>
     214                                        </child>
     215                                        <child>
     216                                          <widget class="GtkCheckButton" id="chk_move_completed">
     217                                            <property name="visible">True</property>
     218                                            <property name="can_focus">True</property>
     219                                            <property name="label" translatable="yes">Move completed to:</property>
     220                                            <property name="response_id">0</property>
     221                                            <property name="draw_indicator">True</property>
     222                                            <signal name="toggled" handler="on_toggle"/>
     223                                          </widget>
     224                                          <packing>
     225                                            <property name="top_attach">1</property>
     226                                            <property name="bottom_attach">2</property>
     227                                            <property name="x_options">GTK_FILL</property>
     228                                          </packing>
     229                                        </child>
     230                                        <child>
     231                                          <widget class="GtkCheckButton" id="chk_copy_torrent_file">
     232                                            <property name="visible">True</property>
     233                                            <property name="can_focus">True</property>
     234                                            <property name="label" translatable="yes">Copy of .torrent files to:</property>
     235                                            <property name="response_id">0</property>
     236                                            <property name="draw_indicator">True</property>
     237                                            <signal name="toggled" handler="on_toggle"/>
     238                                          </widget>
     239                                          <packing>
    243240                                            <property name="top_attach">2</property>
    244241                                            <property name="bottom_attach">3</property>
    245                                           </packing>
    246                                         </child>
    247                                         <child>
    248                                           <widget class="GtkAlignment" id="alignment39">
    249                                             <property name="visible">True</property>
    250                                             <child>
    251                                               <widget class="GtkHBox" id="hbox13">
    252                                                 <property name="visible">True</property>
    253                                                 <property name="spacing">5</property>
    254                                                 <child>
    255                                                   <widget class="GtkFileChooserButton" id="move_completed_path_button">
    256                                                     <property name="visible">True</property>
    257                                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    258                                                     <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
    259                                                     <property name="title" translatable="yes">Select A Folder</property>
    260                                                   </widget>
    261                                                 </child>
    262                                                 <child>
    263                                                   <widget class="GtkEntry" id="entry_move_completed_path">
    264                                                     <property name="can_focus">True</property>
    265                                                   </widget>
    266                                                   <packing>
    267                                                     <property name="position">1</property>
    268                                                   </packing>
    269                                                 </child>
    270                                               </widget>
    271                                             </child>
    272                                           </widget>
    273                                           <packing>
    274                                             <property name="left_attach">1</property>
    275                                             <property name="right_attach">2</property>
    276                                             <property name="top_attach">1</property>
    277                                             <property name="bottom_attach">2</property>
     242                                            <property name="x_options">GTK_FILL</property>
    278243                                          </packing>
    279244                                        </child>
     
    295260                                        </child>
    296261                                        <child>
    297                                           <widget class="GtkCheckButton" id="chk_copy_torrent_file">
    298                                             <property name="visible">True</property>
    299                                             <property name="can_focus">True</property>
    300                                             <property name="label" translatable="yes">Copy of .torrent files to:</property>
    301                                             <property name="response_id">0</property>
    302                                             <property name="draw_indicator">True</property>
    303                                             <signal name="toggled" handler="on_toggle"/>
    304                                           </widget>
    305                                           <packing>
     262                                          <widget class="GtkAlignment" id="alignment39">
     263                                            <property name="visible">True</property>
     264                                            <child>
     265                                              <widget class="GtkHBox" id="hbox13">
     266                                                <property name="visible">True</property>
     267                                                <property name="spacing">5</property>
     268                                                <child>
     269                                                  <widget class="GtkFileChooserButton" id="move_completed_path_button">
     270                                                    <property name="visible">True</property>
     271                                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     272                                                    <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
     273                                                    <property name="title" translatable="yes">Select A Folder</property>
     274                                                  </widget>
     275                                                </child>
     276                                                <child>
     277                                                  <widget class="GtkEntry" id="entry_move_completed_path">
     278                                                    <property name="can_focus">True</property>
     279                                                  </widget>
     280                                                  <packing>
     281                                                    <property name="position">1</property>
     282                                                  </packing>
     283                                                </child>
     284                                              </widget>
     285                                            </child>
     286                                          </widget>
     287                                          <packing>
     288                                            <property name="left_attach">1</property>
     289                                            <property name="right_attach">2</property>
     290                                            <property name="top_attach">1</property>
     291                                            <property name="bottom_attach">2</property>
     292                                          </packing>
     293                                        </child>
     294                                        <child>
     295                                          <widget class="GtkAlignment" id="alignment8">
     296                                            <property name="visible">True</property>
     297                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     298                                            <child>
     299                                              <widget class="GtkHBox" id="hbox10">
     300                                                <property name="visible">True</property>
     301                                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     302                                                <property name="spacing">5</property>
     303                                                <child>
     304                                                  <widget class="GtkFileChooserButton" id="torrent_files_button">
     305                                                    <property name="visible">True</property>
     306                                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     307                                                    <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
     308                                                    <property name="title" translatable="yes">Select A Folder</property>
     309                                                  </widget>
     310                                                </child>
     311                                                <child>
     312                                                  <widget class="GtkEntry" id="entry_torrents_path">
     313                                                    <property name="can_focus">True</property>
     314                                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     315                                                  </widget>
     316                                                  <packing>
     317                                                    <property name="position">1</property>
     318                                                  </packing>
     319                                                </child>
     320                                              </widget>
     321                                            </child>
     322                                          </widget>
     323                                          <packing>
     324                                            <property name="left_attach">1</property>
     325                                            <property name="right_attach">2</property>
    306326                                            <property name="top_attach">2</property>
    307327                                            <property name="bottom_attach">3</property>
    308                                             <property name="x_options">GTK_FILL</property>
    309                                           </packing>
    310                                         </child>
    311                                         <child>
    312                                           <widget class="GtkCheckButton" id="chk_move_completed">
    313                                             <property name="visible">True</property>
    314                                             <property name="can_focus">True</property>
    315                                             <property name="label" translatable="yes">Move completed to:</property>
    316                                             <property name="response_id">0</property>
    317                                             <property name="draw_indicator">True</property>
    318                                             <signal name="toggled" handler="on_toggle"/>
    319                                           </widget>
    320                                           <packing>
    321                                             <property name="top_attach">1</property>
    322                                             <property name="bottom_attach">2</property>
    323                                             <property name="x_options">GTK_FILL</property>
    324                                           </packing>
    325                                         </child>
    326                                         <child>
    327                                           <widget class="GtkHBox" id="hbox8">
     328                                          </packing>
     329                                        </child>
     330                                        <child>
     331                                          <widget class="GtkAlignment" id="alignment11">
    328332                                            <property name="visible">True</property>
    329333                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    330                                             <property name="spacing">5</property>
    331                                             <child>
    332                                               <widget class="GtkFileChooserButton" id="download_path_button">
    333                                                 <property name="visible">True</property>
    334                                                 <property name="sensitive">False</property>
     334                                            <child>
     335                                              <widget class="GtkHBox" id="hbox5">
     336                                                <property name="visible">True</property>
    335337                                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    336                                                 <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
    337                                                 <property name="title" translatable="yes">Select A Folder</property>
    338                                               </widget>
    339                                             </child>
    340                                             <child>
    341                                               <widget class="GtkEntry" id="entry_download_path">
    342                                                 <property name="can_focus">True</property>
    343                                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    344                                               </widget>
    345                                               <packing>
    346                                                 <property name="position">1</property>
    347                                               </packing>
     338                                                <property name="spacing">5</property>
     339                                                <child>
     340                                                  <widget class="GtkFileChooserButton" id="folder_autoadd">
     341                                                    <property name="visible">True</property>
     342                                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     343                                                    <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
     344                                                  </widget>
     345                                                </child>
     346                                                <child>
     347                                                  <widget class="GtkEntry" id="entry_autoadd">
     348                                                    <property name="can_focus">True</property>
     349                                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     350                                                  </widget>
     351                                                  <packing>
     352                                                    <property name="position">1</property>
     353                                                  </packing>
     354                                                </child>
     355                                              </widget>
    348356                                            </child>
    349357                                          </widget>
     
    351359                                            <property name="left_attach">1</property>
    352360                                            <property name="right_attach">2</property>
    353                                           </packing>
    354                                         </child>
    355                                         <child>
    356                                           <widget class="GtkLabel" id="label19">
    357                                             <property name="visible">True</property>
    358                                             <property name="xalign">0</property>
    359                                             <property name="label" translatable="yes">Download to:</property>
    360                                           </widget>
    361                                           <packing>
    362                                             <property name="x_options">GTK_FILL</property>
     361                                            <property name="top_attach">3</property>
     362                                            <property name="bottom_attach">4</property>
    363363                                          </packing>
    364364                                        </child>
     
    944944                                        </child>
    945945                                        <child>
     946                                          <widget class="GtkCheckButton" id="chk_dht">
     947                                            <property name="visible">True</property>
     948                                            <property name="can_focus">True</property>
     949                                            <property name="tooltip" translatable="yes">Distributed hash table may improve the amount of active connections.</property>
     950                                            <property name="label" translatable="yes">DHT</property>
     951                                            <property name="use_underline">True</property>
     952                                            <property name="response_id">0</property>
     953                                            <property name="draw_indicator">True</property>
     954                                          </widget>
     955                                          <packing>
     956                                            <property name="left_attach">1</property>
     957                                            <property name="right_attach">2</property>
     958                                            <property name="top_attach">1</property>
     959                                            <property name="bottom_attach">2</property>
     960                                            <property name="x_options">GTK_FILL</property>
     961                                          </packing>
     962                                        </child>
     963                                        <child>
     964                                          <widget class="GtkCheckButton" id="chk_lsd">
     965                                            <property name="visible">True</property>
     966                                            <property name="can_focus">True</property>
     967                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     968                                            <property name="tooltip" translatable="yes">Local Service Discovery finds local peers on your network.</property>
     969                                            <property name="label" translatable="yes">LSD</property>
     970                                            <property name="response_id">0</property>
     971                                            <property name="draw_indicator">True</property>
     972                                          </widget>
     973                                          <packing>
     974                                            <property name="top_attach">1</property>
     975                                            <property name="bottom_attach">2</property>
     976                                            <property name="x_options">GTK_FILL</property>
     977                                          </packing>
     978                                        </child>
     979                                        <child>
     980                                          <widget class="GtkCheckButton" id="chk_utpex">
     981                                            <property name="visible">True</property>
     982                                            <property name="can_focus">True</property>
     983                                            <property name="tooltip" translatable="yes">Peer Exchange</property>
     984                                            <property name="label" translatable="yes">Peer Exchange</property>
     985                                            <property name="use_underline">True</property>
     986                                            <property name="response_id">0</property>
     987                                            <property name="active">True</property>
     988                                            <property name="draw_indicator">True</property>
     989                                          </widget>
     990                                          <packing>
     991                                            <property name="left_attach">2</property>
     992                                            <property name="right_attach">3</property>
     993                                            <property name="x_options">GTK_FILL</property>
     994                                          </packing>
     995                                        </child>
     996                                        <child>
     997                                          <widget class="GtkCheckButton" id="chk_natpmp">
     998                                            <property name="visible">True</property>
     999                                            <property name="can_focus">True</property>
     1000                                            <property name="tooltip" translatable="yes">NAT Port Mapping Protocol</property>
     1001                                            <property name="label" translatable="yes">NAT-PMP</property>
     1002                                            <property name="use_underline">True</property>
     1003                                            <property name="response_id">0</property>
     1004                                            <property name="active">True</property>
     1005                                            <property name="draw_indicator">True</property>
     1006                                          </widget>
     1007                                          <packing>
     1008                                            <property name="left_attach">1</property>
     1009                                            <property name="right_attach">2</property>
     1010                                            <property name="x_options">GTK_FILL</property>
     1011                                          </packing>
     1012                                        </child>
     1013                                        <child>
    9461014                                          <widget class="GtkCheckButton" id="chk_upnp">
    9471015                                            <property name="visible">True</property>
     
    9551023                                          </widget>
    9561024                                          <packing>
    957                                             <property name="x_options">GTK_FILL</property>
    958                                           </packing>
    959                                         </child>
    960                                         <child>
    961                                           <widget class="GtkCheckButton" id="chk_natpmp">
    962                                             <property name="visible">True</property>
    963                                             <property name="can_focus">True</property>
    964                                             <property name="tooltip" translatable="yes">NAT Port Mapping Protocol</property>
    965                                             <property name="label" translatable="yes">NAT-PMP</property>
    966                                             <property name="use_underline">True</property>
    967                                             <property name="response_id">0</property>
    968                                             <property name="active">True</property>
    969                                             <property name="draw_indicator">True</property>
    970                                           </widget>
    971                                           <packing>
    972                                             <property name="left_attach">1</property>
    973                                             <property name="right_attach">2</property>
    974                                             <property name="x_options">GTK_FILL</property>
    975                                           </packing>
    976                                         </child>
    977                                         <child>
    978                                           <widget class="GtkCheckButton" id="chk_utpex">
    979                                             <property name="visible">True</property>
    980                                             <property name="can_focus">True</property>
    981                                             <property name="tooltip" translatable="yes">Peer Exchange</property>
    982                                             <property name="label" translatable="yes">Peer Exchange</property>
    983                                             <property name="use_underline">True</property>
    984                                             <property name="response_id">0</property>
    985                                             <property name="active">True</property>
    986                                             <property name="draw_indicator">True</property>
    987                                           </widget>
    988                                           <packing>
    989                                             <property name="left_attach">2</property>
    990                                             <property name="right_attach">3</property>
    991                                             <property name="x_options">GTK_FILL</property>
    992                                           </packing>
    993                                         </child>
    994                                         <child>
    995                                           <widget class="GtkCheckButton" id="chk_lsd">
    996                                             <property name="visible">True</property>
    997                                             <property name="can_focus">True</property>
    998                                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    999                                             <property name="tooltip" translatable="yes">Local Service Discovery finds local peers on your network.</property>
    1000                                             <property name="label" translatable="yes">LSD</property>
    1001                                             <property name="response_id">0</property>
    1002                                             <property name="draw_indicator">True</property>
    1003                                           </widget>
    1004                                           <packing>
    1005                                             <property name="top_attach">1</property>
    1006                                             <property name="bottom_attach">2</property>
    1007                                             <property name="x_options">GTK_FILL</property>
    1008                                           </packing>
    1009                                         </child>
    1010                                         <child>
    1011                                           <widget class="GtkCheckButton" id="chk_dht">
    1012                                             <property name="visible">True</property>
    1013                                             <property name="can_focus">True</property>
    1014                                             <property name="tooltip" translatable="yes">Distributed hash table may improve the amount of active connections.</property>
    1015                                             <property name="label" translatable="yes">DHT</property>
    1016                                             <property name="use_underline">True</property>
    1017                                             <property name="response_id">0</property>
    1018                                             <property name="draw_indicator">True</property>
    1019                                           </widget>
    1020                                           <packing>
    1021                                             <property name="left_attach">1</property>
    1022                                             <property name="right_attach">2</property>
    1023                                             <property name="top_attach">1</property>
    1024                                             <property name="bottom_attach">2</property>
    10251025                                            <property name="x_options">GTK_FILL</property>
    10261026                                          </packing>
     
    12851285                                            <property name="column_spacing">15</property>
    12861286                                            <child>
    1287                                               <widget class="GtkSpinButton" id="spin_max_connections_per_second">
     1287                                              <widget class="GtkSpinButton" id="spin_max_upload_slots_global">
    12881288                                                <property name="visible">True</property>
    12891289                                                <property name="can_focus">True</property>
     1290                                                <property name="tooltip" translatable="yes">The maximum upload slots for all torrents.  Set -1 for unlimited.</property>
    12901291                                                <property name="xalign">1</property>
    1291                                                 <property name="adjustment">-1 -1 9999 1 10 10</property>
     1292                                                <property name="adjustment">-1 -1 9000 1 10 10</property>
     1293                                                <property name="climb_rate">1</property>
     1294                                                <property name="snap_to_ticks">True</property>
    12921295                                                <property name="numeric">True</property>
    12931296                                              </widget>
     
    12951298                                                <property name="left_attach">1</property>
    12961299                                                <property name="right_attach">2</property>
    1297                                                 <property name="top_attach">5</property>
    1298                                                 <property name="bottom_attach">6</property>
     1300                                                <property name="top_attach">1</property>
     1301                                                <property name="bottom_attach">2</property>
    12991302                                                <property name="x_options">GTK_FILL</property>
    13001303                                              </packing>
    13011304                                            </child>
    13021305                                            <child>
    1303                                               <widget class="GtkSpinButton" id="spin_max_half_open_connections">
     1306                                              <widget class="GtkSpinButton" id="spin_max_upload">
    13041307                                                <property name="visible">True</property>
    13051308                                                <property name="can_focus">True</property>
     1309                                                <property name="tooltip" translatable="yes">The maximum upload speed for all torrents.  Set -1 for unlimited.</property>
    13061310                                                <property name="xalign">1</property>
    1307                                                 <property name="adjustment">-1 -1 9999 1 10 10</property>
     1311                                                <property name="adjustment">-1 -1 9000 1 10 10</property>
     1312                                                <property name="climb_rate">1</property>
     1313                                                <property name="digits">1</property>
    13081314                                                <property name="numeric">True</property>
    13091315                                              </widget>
     
    13111317                                                <property name="left_attach">1</property>
    13121318                                                <property name="right_attach">2</property>
    1313                                                 <property name="top_attach">4</property>
    1314                                                 <property name="bottom_attach">5</property>
    1315                                                 <property name="x_options">GTK_FILL</property>
    1316                                               </packing>
    1317                                             </child>
    1318                                             <child>
    1319                                               <widget class="GtkLabel" id="label58">
    1320                                                 <property name="visible">True</property>
    1321                                                 <property name="xalign">0</property>
    1322                                                 <property name="label" translatable="yes">Maximum Connection Attempts per Second:</property>
    1323                                               </widget>
    1324                                               <packing>
    1325                                                 <property name="top_attach">5</property>
    1326                                                 <property name="bottom_attach">6</property>
    1327                                                 <property name="x_options">GTK_FILL</property>
    1328                                               </packing>
    1329                                             </child>
    1330                                             <child>
    1331                                               <widget class="GtkLabel" id="label57">
    1332                                                 <property name="visible">True</property>
    1333                                                 <property name="xalign">0</property>
    1334                                                 <property name="label" translatable="yes">Maximum Half-Open Connections:</property>
    1335                                               </widget>
    1336                                               <packing>
    1337                                                 <property name="top_attach">4</property>
    1338                                                 <property name="bottom_attach">5</property>
    1339                                                 <property name="x_options">GTK_FILL</property>
    1340                                               </packing>
    1341                                             </child>
    1342                                             <child>
    1343                                               <widget class="GtkLabel" id="label17">
    1344                                                 <property name="visible">True</property>
    1345                                                 <property name="tooltip" translatable="yes">The maximum upload speed for all torrents.  Set -1 for unlimited.</property>
    1346                                                 <property name="xalign">0</property>
    1347                                                 <property name="label" translatable="yes">Maximum Upload Speed (KiB/s):</property>
    1348                                               </widget>
    1349                                               <packing>
    13501319                                                <property name="top_attach">3</property>
    13511320                                                <property name="bottom_attach">4</property>
     
    13541323                                            </child>
    13551324                                            <child>
    1356                                               <widget class="GtkLabel" id="label16">
    1357                                                 <property name="visible">True</property>
    1358                                                 <property name="tooltip" translatable="yes">The maximum number of connections allowed.  Set -1 for unlimited.</property>
    1359                                                 <property name="xalign">0</property>
    1360                                                 <property name="label" translatable="yes">Maximum Connections:</property>
     1325                                              <widget class="GtkSpinButton" id="spin_max_download">
     1326                                                <property name="visible">True</property>
     1327                                                <property name="can_focus">True</property>
     1328                                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     1329                                                <property name="tooltip" translatable="yes">The maximum download speed for all torrents.  Set -1 for unlimited.</property>
     1330                                                <property name="xalign">1</property>
     1331                                                <property name="adjustment">-1 -1 9000 1 10 10</property>
     1332                                                <property name="climb_rate">1</property>
     1333                                                <property name="digits">1</property>
     1334                                                <property name="numeric">True</property>
    13611335                                              </widget>
    13621336                                              <packing>
     1337                                                <property name="left_attach">1</property>
     1338                                                <property name="right_attach">2</property>
     1339                                                <property name="top_attach">2</property>
     1340                                                <property name="bottom_attach">3</property>
    13631341                                                <property name="x_options">GTK_FILL</property>
    13641342                                              </packing>
    13651343                                            </child>
    13661344                                            <child>
    1367                                               <widget class="GtkLabel" id="label15">
    1368                                                 <property name="visible">True</property>
    1369                                                 <property name="tooltip" translatable="yes">The maximum upload speed for all torrents.  Set -1 for unlimited.</property>
     1345                                              <widget class="GtkLabel" id="label14">
     1346                                                <property name="visible">True</property>
     1347                                                <property name="tooltip" translatable="yes">The maximum download speed for all torrents.  Set -1 for unlimited.</property>
    13701348                                                <property name="xalign">0</property>
    1371                                                 <property name="label" translatable="yes">Maximum Upload Slots:</property>
     1349                                                <property name="label" translatable="yes">Maximum Download Speed (KiB/s):</property>
    13721350                                              </widget>
    13731351                                              <packing>
    1374                                                 <property name="top_attach">1</property>
    1375                                                 <property name="bottom_attach">2</property>
     1352                                                <property name="top_attach">2</property>
     1353                                                <property name="bottom_attach">3</property>
    13761354                                                <property name="x_options">GTK_FILL</property>
    13771355                                              </packing>
     
    13971375                                            </child>
    13981376                                            <child>
    1399                                               <widget class="GtkLabel" id="label14">
    1400                                                 <property name="visible">True</property>
    1401                                                 <property name="tooltip" translatable="yes">The maximum download speed for all torrents.  Set -1 for unlimited.</property>
     1377                                              <widget class="GtkLabel" id="label15">
     1378                                                <property name="visible">True</property>
     1379                                                <property name="tooltip" translatable="yes">The maximum upload speed for all torrents.  Set -1 for unlimited.</property>
    14021380                                                <property name="xalign">0</property>
    1403                                                 <property name="label" translatable="yes">Maximum Download Speed (KiB/s):</property>
     1381                                                <property name="label" translatable="yes">Maximum Upload Slots:</property>
    14041382                                              </widget>
    14051383                                              <packing>
    1406                                                 <property name="top_attach">2</property>
    1407                                                 <property name="bottom_attach">3</property>
     1384                                                <property name="top_attach">1</property>
     1385                                                <property name="bottom_attach">2</property>
    14081386                                                <property name="x_options">GTK_FILL</property>
    14091387                                              </packing>
    14101388                                            </child>
    14111389                                            <child>
    1412                                               <widget class="GtkSpinButton" id="spin_max_download">
    1413                                                 <property name="visible">True</property>
    1414                                                 <property name="can_focus">True</property>
    1415                                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    1416                                                 <property name="tooltip" translatable="yes">The maximum download speed for all torrents.  Set -1 for unlimited.</property>
    1417                                                 <property name="xalign">1</property>
    1418                                                 <property name="adjustment">-1 -1 9000 1 10 10</property>
    1419                                                 <property name="climb_rate">1</property>
    1420                                                 <property name="digits">1</property>
    1421                                                 <property name="numeric">True</property>
     1390                                              <widget class="GtkLabel" id="label16">
     1391                                                <property name="visible">True</property>
     1392                                                <property name="tooltip" translatable="yes">The maximum number of connections allowed.  Set -1 for unlimited.</property>
     1393                                                <property name="xalign">0</property>
     1394                                                <property name="label" translatable="yes">Maximum Connections:</property>
    14221395                                              </widget>
    14231396                                              <packing>
    1424                                                 <property name="left_attach">1</property>
    1425                                                 <property name="right_attach">2</property>
    1426                                                 <property name="top_attach">2</property>
    1427                                                 <property name="bottom_attach">3</property>
    14281397                                                <property name="x_options">GTK_FILL</property>
    14291398                                              </packing>
    14301399                                            </child>
    14311400                                            <child>
    1432                                               <widget class="GtkSpinButton" id="spin_max_upload">
    1433                                                 <property name="visible">True</property>
    1434                                                 <property name="can_focus">True</property>
     1401                                              <widget class="GtkLabel" id="label17">
     1402                                                <property name="visible">True</property>
    14351403                                                <property name="tooltip" translatable="yes">The maximum upload speed for all torrents.  Set -1 for unlimited.</property>
    1436                                                 <property name="xalign">1</property>
    1437                                                 <property name="adjustment">-1 -1 9000 1 10 10</property>
    1438                                                 <property name="climb_rate">1</property>
    1439                                                 <property name="digits">1</property>
    1440                                                 <property name="numeric">True</property>
     1404                                                <property name="xalign">0</property>
     1405                                                <property name="label" translatable="yes">Maximum Upload Speed (KiB/s):</property>
    14411406                                              </widget>
    14421407                                              <packing>
    1443                                                 <property name="left_attach">1</property>
    1444                                                 <property name="right_attach">2</property>
    14451408                                                <property name="top_attach">3</property>
    14461409                                                <property name="bottom_attach">4</property>
     
    14491412                                            </child>
    14501413                                            <child>
    1451                                               <widget class="GtkSpinButton" id="spin_max_upload_slots_global">
     1414                                              <widget class="GtkLabel" id="label57">
     1415                                                <property name="visible">True</property>
     1416                                                <property name="xalign">0</property>
     1417                                                <property name="label" translatable="yes">Maximum Half-Open Connections:</property>
     1418                                              </widget>
     1419                                              <packing>
     1420                                                <property name="top_attach">4</property>
     1421                                                <property name="bottom_attach">5</property>
     1422                                                <property name="x_options">GTK_FILL</property>
     1423                                              </packing>
     1424                                            </child>
     1425                                            <child>
     1426                                              <widget class="GtkLabel" id="label58">
     1427                                                <property name="visible">True</property>
     1428                                                <property name="xalign">0</property>
     1429                                                <property name="label" translatable="yes">Maximum Connection Attempts per Second:</property>
     1430                                              </widget>
     1431                                              <packing>
     1432                                                <property name="top_attach">5</property>
     1433                                                <property name="bottom_attach">6</property>
     1434                                                <property name="x_options">GTK_FILL</property>
     1435                                              </packing>
     1436                                            </child>
     1437                                            <child>
     1438                                              <widget class="GtkSpinButton" id="spin_max_half_open_connections">
    14521439                                                <property name="visible">True</property>
    14531440                                                <property name="can_focus">True</property>
    1454                                                 <property name="tooltip" translatable="yes">The maximum upload slots for all torrents.  Set -1 for unlimited.</property>
    14551441                                                <property name="xalign">1</property>
    1456                                                 <property name="adjustment">-1 -1 9000 1 10 10</property>
    1457                                                 <property name="climb_rate">1</property>
    1458                                                 <property name="snap_to_ticks">True</property>
     1442                                                <property name="adjustment">-1 -1 9999 1 10 10</property>
    14591443                                                <property name="numeric">True</property>
    14601444                                              </widget>
     
    14621446                                                <property name="left_attach">1</property>
    14631447                                                <property name="right_attach">2</property>
    1464                                                 <property name="top_attach">1</property>
    1465                                                 <property name="bottom_attach">2</property>
     1448                                                <property name="top_attach">4</property>
     1449                                                <property name="bottom_attach">5</property>
     1450                                                <property name="x_options">GTK_FILL</property>
     1451                                              </packing>
     1452                                            </child>
     1453                                            <child>
     1454                                              <widget class="GtkSpinButton" id="spin_max_connections_per_second">
     1455                                                <property name="visible">True</property>
     1456                                                <property name="can_focus">True</property>
     1457                                                <property name="xalign">1</property>
     1458                                                <property name="adjustment">-1 -1 9999 1 10 10</property>
     1459                                                <property name="numeric">True</property>
     1460                                              </widget>
     1461                                              <packing>
     1462                                                <property name="left_attach">1</property>
     1463                                                <property name="right_attach">2</property>
     1464                                                <property name="top_attach">5</property>
     1465                                                <property name="bottom_attach">6</property>
    14661466                                                <property name="x_options">GTK_FILL</property>
    14671467                                              </packing>
     
    15311531                                        <property name="column_spacing">15</property>
    15321532                                        <child>
     1533                                          <widget class="GtkSpinButton" id="spin_max_upload_per_torrent">
     1534                                            <property name="visible">True</property>
     1535                                            <property name="can_focus">True</property>
     1536                                            <property name="tooltip" translatable="yes">The maximum number of connections per torrent.  Set -1 for unlimited.</property>
     1537                                            <property name="xalign">1</property>
     1538                                            <property name="adjustment">-1 -1 9000 1 10 10</property>
     1539                                            <property name="digits">1</property>
     1540                                            <property name="numeric">True</property>
     1541                                          </widget>
     1542                                          <packing>
     1543                                            <property name="left_attach">1</property>
     1544                                            <property name="right_attach">2</property>
     1545                                            <property name="top_attach">3</property>
     1546                                            <property name="bottom_attach">4</property>
     1547                                            <property name="x_options">GTK_FILL</property>
     1548                                          </packing>
     1549                                        </child>
     1550                                        <child>
     1551                                          <widget class="GtkSpinButton" id="spin_max_download_per_torrent">
     1552                                            <property name="visible">True</property>
     1553                                            <property name="can_focus">True</property>
     1554                                            <property name="tooltip" translatable="yes">The maximum number of connections per torrent.  Set -1 for unlimited.</property>
     1555                                            <property name="xalign">1</property>
     1556                                            <property name="adjustment">-1 -1 9000 1 10 10</property>
     1557                                            <property name="digits">1</property>
     1558                                            <property name="numeric">True</property>
     1559                                          </widget>
     1560                                          <packing>
     1561                                            <property name="left_attach">1</property>
     1562                                            <property name="right_attach">2</property>
     1563                                            <property name="top_attach">2</property>
     1564                                            <property name="bottom_attach">3</property>
     1565                                            <property name="x_options">GTK_FILL</property>
     1566                                          </packing>
     1567                                        </child>
     1568                                        <child>
     1569                                          <widget class="GtkLabel" id="label32">
     1570                                            <property name="visible">True</property>
     1571                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     1572                                            <property name="xalign">0</property>
     1573                                            <property name="label" translatable="yes">Maximum Upload Speed (KiB/s):</property>
     1574                                          </widget>
     1575                                          <packing>
     1576                                            <property name="top_attach">3</property>
     1577                                            <property name="bottom_attach">4</property>
     1578                                            <property name="x_options">GTK_FILL</property>
     1579                                          </packing>
     1580                                        </child>
     1581                                        <child>
     1582                                          <widget class="GtkLabel" id="label31">
     1583                                            <property name="visible">True</property>
     1584                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     1585                                            <property name="xalign">0</property>
     1586                                            <property name="label" translatable="yes">Maximum Download Speed (KiB/s):</property>
     1587                                          </widget>
     1588                                          <packing>
     1589                                            <property name="top_attach">2</property>
     1590                                            <property name="bottom_attach">3</property>
     1591                                            <property name="x_options">GTK_FILL</property>
     1592                                          </packing>
     1593                                        </child>
     1594                                        <child>
     1595                                          <widget class="GtkLabel" id="label24">
     1596                                            <property name="visible">True</property>
     1597                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     1598                                            <property name="xalign">0</property>
     1599                                            <property name="label" translatable="yes">Maximum Upload Slots:</property>
     1600                                          </widget>
     1601                                          <packing>
     1602                                            <property name="top_attach">1</property>
     1603                                            <property name="bottom_attach">2</property>
     1604                                            <property name="x_options">GTK_FILL</property>
     1605                                          </packing>
     1606                                        </child>
     1607                                        <child>
     1608                                          <widget class="GtkLabel" id="label18">
     1609                                            <property name="visible">True</property>
     1610                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     1611                                            <property name="xalign">0</property>
     1612                                            <property name="label" translatable="yes">Maximum Connections:</property>
     1613                                          </widget>
     1614                                          <packing>
     1615                                            <property name="x_options">GTK_FILL</property>
     1616                                          </packing>
     1617                                        </child>
     1618                                        <child>
     1619                                          <widget class="GtkSpinButton" id="spin_max_connections_per_torrent">
     1620                                            <property name="visible">True</property>
     1621                                            <property name="can_focus">True</property>
     1622                                            <property name="tooltip" translatable="yes">The maximum number of connections per torrent.  Set -1 for unlimited.</property>
     1623                                            <property name="xalign">1</property>
     1624                                            <property name="adjustment">-1 -1 9000 1 10 10</property>
     1625                                            <property name="snap_to_ticks">True</property>
     1626                                            <property name="numeric">True</property>
     1627                                          </widget>
     1628                                          <packing>
     1629                                            <property name="left_attach">1</property>
     1630                                            <property name="right_attach">2</property>
     1631                                            <property name="x_options">GTK_FILL</property>
     1632                                          </packing>
     1633                                        </child>
     1634                                        <child>
    15331635                                          <widget class="GtkSpinButton" id="spin_max_upload_slots_per_torrent">
    15341636                                            <property name="visible">True</property>
     
    15461648                                            <property name="top_attach">1</property>
    15471649                                            <property name="bottom_attach">2</property>
    1548                                             <property name="x_options">GTK_FILL</property>
    1549                                           </packing>
    1550                                         </child>
    1551                                         <child>
    1552                                           <widget class="GtkSpinButton" id="spin_max_connections_per_torrent">
    1553                                             <property name="visible">True</property>
    1554                                             <property name="can_focus">True</property>
    1555                                             <property name="tooltip" translatable="yes">The maximum number of connections per torrent.  Set -1 for unlimited.</property>
    1556                                             <property name="xalign">1</property>
    1557                                             <property name="adjustment">-1 -1 9000 1 10 10</property>
    1558                                             <property name="snap_to_ticks">True</property>
    1559                                             <property name="numeric">True</property>
    1560                                           </widget>
    1561                                           <packing>
    1562                                             <property name="left_attach">1</property>
    1563                                             <property name="right_attach">2</property>
    1564                                             <property name="x_options">GTK_FILL</property>
    1565                                           </packing>
    1566                                         </child>
    1567                                         <child>
    1568                                           <widget class="GtkLabel" id="label18">
    1569                                             <property name="visible">True</property>
    1570                                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    1571                                             <property name="xalign">0</property>
    1572                                             <property name="label" translatable="yes">Maximum Connections:</property>
    1573                                           </widget>
    1574                                           <packing>
    1575                                             <property name="x_options">GTK_FILL</property>
    1576                                           </packing>
    1577                                         </child>
    1578                                         <child>
    1579                                           <widget class="GtkLabel" id="label24">
    1580                                             <property name="visible">True</property>
    1581                                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    1582                                             <property name="xalign">0</property>
    1583                                             <property name="label" translatable="yes">Maximum Upload Slots:</property>
    1584                                           </widget>
    1585                                           <packing>
    1586                                             <property name="top_attach">1</property>
    1587                                             <property name="bottom_attach">2</property>
    1588                                             <property name="x_options">GTK_FILL</property>
    1589                                           </packing>
    1590                                         </child>
    1591                                         <child>
    1592                                           <widget class="GtkLabel" id="label31">
    1593                                             <property name="visible">True</property>
    1594                                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    1595                                             <property name="xalign">0</property>
    1596                                             <property name="label" translatable="yes">Maximum Download Speed (KiB/s):</property>
    1597                                           </widget>
    1598                                           <packing>
    1599                                             <property name="top_attach">2</property>
    1600                                             <property name="bottom_attach">3</property>
    1601                                             <property name="x_options">GTK_FILL</property>
    1602                                           </packing>
    1603                                         </child>
    1604                                         <child>
    1605                                           <widget class="GtkLabel" id="label32">
    1606                                             <property name="visible">True</property>
    1607                                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    1608                                             <property name="xalign">0</property>
    1609                                             <property name="label" translatable="yes">Maximum Upload Speed (KiB/s):</property>
    1610                                           </widget>
    1611                                           <packing>
    1612                                             <property name="top_attach">3</property>
    1613                                             <property name="bottom_attach">4</property>
    1614                                             <property name="x_options">GTK_FILL</property>
    1615                                           </packing>
    1616                                         </child>
    1617                                         <child>
    1618                                           <widget class="GtkSpinButton" id="spin_max_download_per_torrent">
    1619                                             <property name="visible">True</property>
    1620                                             <property name="can_focus">True</property>
    1621                                             <property name="tooltip" translatable="yes">The maximum number of connections per torrent.  Set -1 for unlimited.</property>
    1622                                             <property name="xalign">1</property>
    1623                                             <property name="adjustment">-1 -1 9000 1 10 10</property>
    1624                                             <property name="digits">1</property>
    1625                                             <property name="numeric">True</property>
    1626                                           </widget>
    1627                                           <packing>
    1628                                             <property name="left_attach">1</property>
    1629                                             <property name="right_attach">2</property>
    1630                                             <property name="top_attach">2</property>
    1631                                             <property name="bottom_attach">3</property>
    1632                                             <property name="x_options">GTK_FILL</property>
    1633                                           </packing>
    1634                                         </child>
    1635                                         <child>
    1636                                           <widget class="GtkSpinButton" id="spin_max_upload_per_torrent">
    1637                                             <property name="visible">True</property>
    1638                                             <property name="can_focus">True</property>
    1639                                             <property name="tooltip" translatable="yes">The maximum number of connections per torrent.  Set -1 for unlimited.</property>
    1640                                             <property name="xalign">1</property>
    1641                                             <property name="adjustment">-1 -1 9000 1 10 10</property>
    1642                                             <property name="digits">1</property>
    1643                                             <property name="numeric">True</property>
    1644                                           </widget>
    1645                                           <packing>
    1646                                             <property name="left_attach">1</property>
    1647                                             <property name="right_attach">2</property>
    1648                                             <property name="top_attach">3</property>
    1649                                             <property name="bottom_attach">4</property>
    16501650                                            <property name="x_options">GTK_FILL</property>
    16511651                                          </packing>
     
    24772477                                                <property name="column_spacing">10</property>
    24782478                                                <child>
    2479                                                   <widget class="GtkSpinButton" id="spin_active">
     2479                                                  <widget class="GtkLabel" id="label42">
     2480                                                    <property name="visible">True</property>
     2481                                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     2482                                                    <property name="xalign">0</property>
     2483                                                    <property name="label" translatable="yes">Total active downloading:</property>
     2484                                                  </widget>
     2485                                                  <packing>
     2486                                                    <property name="top_attach">1</property>
     2487                                                    <property name="bottom_attach">2</property>
     2488                                                    <property name="x_options">GTK_FILL</property>
     2489                                                  </packing>
     2490                                                </child>
     2491                                                <child>
     2492                                                  <widget class="GtkSpinButton" id="spin_downloading">
    24802493                                                    <property name="visible">True</property>
    24812494                                                    <property name="can_focus">True</property>
     
    24892502                                                    <property name="left_attach">1</property>
    24902503                                                    <property name="right_attach">2</property>
     2504                                                    <property name="top_attach">1</property>
     2505                                                    <property name="bottom_attach">2</property>
    24912506                                                    <property name="x_options"></property>
     2507                                                  </packing>
     2508                                                </child>
     2509                                                <child>
     2510                                                  <widget class="GtkLabel" id="label48">
     2511                                                    <property name="visible">True</property>
     2512                                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     2513                                                    <property name="xalign">0</property>
     2514                                                    <property name="label" translatable="yes">Total active:</property>
     2515                                                  </widget>
     2516                                                  <packing>
     2517                                                    <property name="x_options">GTK_FILL</property>
     2518                                                  </packing>
     2519                                                </child>
     2520                                                <child>
     2521                                                  <widget class="GtkLabel" id="label27">
     2522                                                    <property name="visible">True</property>
     2523                                                    <property name="xalign">0</property>
     2524                                                    <property name="label" translatable="yes">Total active seeding:</property>
     2525                                                  </widget>
     2526                                                  <packing>
     2527                                                    <property name="top_attach">2</property>
     2528                                                    <property name="bottom_attach">3</property>
     2529                                                    <property name="x_options">GTK_FILL</property>
    24922530                                                  </packing>
    24932531                                                </child>
     
    25112549                                                </child>
    25122550                                                <child>
    2513                                                   <widget class="GtkLabel" id="label27">
    2514                                                     <property name="visible">True</property>
    2515                                                     <property name="xalign">0</property>
    2516                                                     <property name="label" translatable="yes">Total active seeding:</property>
    2517                                                   </widget>
    2518                                                   <packing>
    2519                                                     <property name="top_attach">2</property>
    2520                                                     <property name="bottom_attach">3</property>
    2521                                                     <property name="x_options">GTK_FILL</property>
    2522                                                   </packing>
    2523                                                 </child>
    2524                                                 <child>
    2525                                                   <widget class="GtkLabel" id="label48">
    2526                                                     <property name="visible">True</property>
    2527                                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    2528                                                     <property name="xalign">0</property>
    2529                                                     <property name="label" translatable="yes">Total active:</property>
    2530                                                   </widget>
    2531                                                   <packing>
    2532                                                     <property name="x_options">GTK_FILL</property>
    2533                                                   </packing>
    2534                                                 </child>
    2535                                                 <child>
    2536                                                   <widget class="GtkSpinButton" id="spin_downloading">
     2551                                                  <widget class="GtkSpinButton" id="spin_active">
    25372552                                                    <property name="visible">True</property>
    25382553                                                    <property name="can_focus">True</property>
     
    25462561                                                    <property name="left_attach">1</property>
    25472562                                                    <property name="right_attach">2</property>
    2548                                                     <property name="top_attach">1</property>
    2549                                                     <property name="bottom_attach">2</property>
    25502563                                                    <property name="x_options"></property>
    2551                                                   </packing>
    2552                                                 </child>
    2553                                                 <child>
    2554                                                   <widget class="GtkLabel" id="label42">
    2555                                                     <property name="visible">True</property>
    2556                                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    2557                                                     <property name="xalign">0</property>
    2558                                                     <property name="label" translatable="yes">Total active downloading:</property>
    2559                                                   </widget>
    2560                                                   <packing>
    2561                                                     <property name="top_attach">1</property>
    2562                                                     <property name="bottom_attach">2</property>
    2563                                                     <property name="x_options">GTK_FILL</property>
    25642564                                                  </packing>
    25652565                                                </child>
     
    26242624                                                <property name="column_spacing">10</property>
    26252625                                                <child>
    2626                                                   <widget class="GtkLabel" id="label53">
    2627                                                     <property name="visible">True</property>
    2628                                                     <property name="xalign">0</property>
    2629                                                     <property name="label" translatable="yes">Share Ratio Limit:</property>
    2630                                                   </widget>
    2631                                                   <packing>
    2632                                                     <property name="x_options">GTK_FILL</property>
    2633                                                   </packing>
    2634                                                 </child>
    2635                                                 <child>
    2636                                                   <widget class="GtkLabel" id="label54">
    2637                                                     <property name="visible">True</property>
    2638                                                     <property name="xalign">0</property>
    2639                                                     <property name="label" translatable="yes">Seed Time Ratio:</property>
    2640                                                   </widget>
    2641                                                   <packing>
     2626                                                  <widget class="GtkSpinButton" id="spin_seed_time_limit">
     2627                                                    <property name="visible">True</property>
     2628                                                    <property name="can_focus">True</property>
     2629                                                    <property name="width_chars">6</property>
     2630                                                    <property name="xalign">1</property>
     2631                                                    <property name="adjustment">6 -1 100 1 10 10</property>
     2632                                                  </widget>
     2633                                                  <packing>
     2634                                                    <property name="left_attach">1</property>
     2635                                                    <property name="right_attach">2</property>
     2636                                                    <property name="top_attach">2</property>
     2637                                                    <property name="bottom_attach">3</property>
     2638                                                    <property name="x_options"></property>
     2639                                                  </packing>
     2640                                                </child>
     2641                                                <child>
     2642                                                  <widget class="GtkSpinButton" id="spin_seed_time_ratio_limit">
     2643                                                    <property name="visible">True</property>
     2644                                                    <property name="can_focus">True</property>
     2645                                                    <property name="width_chars">6</property>
     2646                                                    <property name="xalign">1</property>
     2647                                                    <property name="adjustment">6 -1 100 0.10000000000000001 10 10</property>
     2648                                                    <property name="digits">2</property>
     2649                                                  </widget>
     2650                                                  <packing>
     2651                                                    <property name="left_attach">1</property>
     2652                                                    <property name="right_attach">2</property>
    26422653                                                    <property name="top_attach">1</property>
    26432654                                                    <property name="bottom_attach">2</property>
    2644                                                     <property name="x_options">GTK_FILL</property>
    2645                                                   </packing>
    2646                                                 </child>
    2647                                                 <child>
    2648                                                   <widget class="GtkLabel" id="label55">
    2649                                                     <property name="visible">True</property>
    2650                                                     <property name="xalign">0</property>
    2651                                                     <property name="label" translatable="yes">Seed Time (m):</property>
    2652                                                   </widget>
    2653                                                   <packing>
    2654                                                     <property name="top_attach">2</property>
    2655                                                     <property name="bottom_attach">3</property>
    2656                                                     <property name="x_options">GTK_FILL</property>
     2655                                                    <property name="x_options"></property>
    26572656                                                  </packing>
    26582657                                                </child>
     
    26732672                                                </child>
    26742673                                                <child>
    2675                                                   <widget class="GtkSpinButton" id="spin_seed_time_ratio_limit">
    2676                                                     <property name="visible">True</property>
    2677                                                     <property name="can_focus">True</property>
    2678                                                     <property name="width_chars">6</property>
    2679                                                     <property name="xalign">1</property>
    2680                                                     <property name="adjustment">6 -1 100 0.10000000000000001 10 10</property>
    2681                                                     <property name="digits">2</property>
    2682                                                   </widget>
    2683                                                   <packing>
    2684                                                     <property name="left_attach">1</property>
    2685                                                     <property name="right_attach">2</property>
     2674                                                  <widget class="GtkLabel" id="label55">
     2675                                                    <property name="visible">True</property>
     2676                                                    <property name="xalign">0</property>
     2677                                                    <property name="label" translatable="yes">Seed Time (m):</property>
     2678                                                  </widget>
     2679                                                  <packing>
     2680                                                    <property name="top_attach">2</property>
     2681                                                    <property name="bottom_attach">3</property>
     2682                                                    <property name="x_options">GTK_FILL</property>
     2683                                                  </packing>
     2684                                                </child>
     2685                                                <child>
     2686                                                  <widget class="GtkLabel" id="label54">
     2687                                                    <property name="visible">True</property>
     2688                                                    <property name="xalign">0</property>
     2689                                                    <property name="label" translatable="yes">Seed Time Ratio:</property>
     2690                                                  </widget>
     2691                                                  <packing>
    26862692                                                    <property name="top_attach">1</property>
    26872693                                                    <property name="bottom_attach">2</property>
    2688                                                     <property name="x_options"></property>
    2689                                                   </packing>
    2690                                                 </child>
    2691                                                 <child>
    2692                                                   <widget class="GtkSpinButton" id="spin_seed_time_limit">
    2693                                                     <property name="visible">True</property>
    2694                                                     <property name="can_focus">True</property>
    2695                                                     <property name="width_chars">6</property>
    2696                                                     <property name="xalign">1</property>
    2697                                                     <property name="adjustment">6 -1 100 1 10 10</property>
    2698                                                   </widget>
    2699                                                   <packing>
    2700                                                     <property name="left_attach">1</property>
    2701                                                     <property name="right_attach">2</property>
    2702                                                     <property name="top_attach">2</property>
    2703                                                     <property name="bottom_attach">3</property>
    2704                                                     <property name="x_options"></property>
     2694                                                    <property name="x_options">GTK_FILL</property>
     2695                                                  </packing>
     2696                                                </child>
     2697                                                <child>
     2698                                                  <widget class="GtkLabel" id="label53">
     2699                                                    <property name="visible">True</property>
     2700                                                    <property name="xalign">0</property>
     2701                                                    <property name="label" translatable="yes">Share Ratio Limit:</property>
     2702                                                  </widget>
     2703                                                  <packing>
     2704                                                    <property name="x_options">GTK_FILL</property>
    27052705                                                  </packing>
    27062706                                                </child>
     
    28772877                                        <property name="column_spacing">5</property>
    28782878                                        <child>
    2879                                           <widget class="GtkEntry" id="txt_proxy_server">
    2880                                             <property name="visible">True</property>
    2881                                             <property name="can_focus">True</property>
    2882                                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     2879                                          <widget class="GtkAlignment" id="alignment30">
     2880                                            <property name="visible">True</property>
     2881                                            <property name="xalign">0</property>
     2882                                            <property name="xscale">0</property>
     2883                                            <child>
     2884                                              <widget class="GtkSpinButton" id="spin_proxy_port">
     2885                                                <property name="visible">True</property>
     2886                                                <property name="can_focus">True</property>
     2887                                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     2888                                                <property name="adjustment">0 0 65000 1 10 10</property>
     2889                                                <property name="numeric">True</property>
     2890                                              </widget>
     2891                                            </child>
    28832892                                          </widget>
    28842893                                          <packing>
    28852894                                            <property name="left_attach">1</property>
    28862895                                            <property name="right_attach">2</property>
     2896                                            <property name="top_attach">4</property>
     2897                                            <property name="bottom_attach">5</property>
     2898                                          </packing>
     2899                                        </child>
     2900                                        <child>
     2901                                          <widget class="GtkLabel" id="label73">
     2902                                            <property name="visible">True</property>
     2903                                            <property name="xalign">0</property>
     2904                                            <property name="label" translatable="yes">Port:</property>
     2905                                          </widget>
     2906                                          <packing>
     2907                                            <property name="top_attach">4</property>
     2908                                            <property name="bottom_attach">5</property>
     2909                                            <property name="x_options">GTK_FILL</property>
     2910                                          </packing>
     2911                                        </child>
     2912                                        <child>
     2913                                          <widget class="GtkLabel" id="label60">
     2914                                            <property name="visible">True</property>
     2915                                            <property name="xalign">0</property>
     2916                                            <property name="label" translatable="yes">Host:</property>
     2917                                          </widget>
     2918                                          <packing>
    28872919                                            <property name="top_attach">3</property>
    28882920                                            <property name="bottom_attach">4</property>
    2889                                           </packing>
    2890                                         </child>
    2891                                         <child>
    2892                                           <widget class="GtkEntry" id="txt_proxy_password">
    2893                                             <property name="visible">True</property>
    2894                                             <property name="can_focus">True</property>
     2921                                            <property name="x_options">GTK_FILL</property>
     2922                                          </packing>
     2923                                        </child>
     2924                                        <child>
     2925                                          <widget class="GtkLabel" id="label61">
     2926                                            <property name="visible">True</property>
    28952927                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    2896                                             <property name="visibility">False</property>
    2897                                           </widget>
    2898                                           <packing>
    2899                                             <property name="left_attach">1</property>
    2900                                             <property name="right_attach">2</property>
     2928                                            <property name="xalign">0</property>
     2929                                            <property name="label" translatable="yes">Password:</property>
     2930                                          </widget>
     2931                                          <packing>
    29012932                                            <property name="top_attach">2</property>
    29022933                                            <property name="bottom_attach">3</property>
    2903                                           </packing>
    2904                                         </child>
    2905                                         <child>
    2906                                           <widget class="GtkEntry" id="txt_proxy_username">
    2907                                             <property name="visible">True</property>
    2908                                             <property name="can_focus">True</property>
     2934                                            <property name="x_options">GTK_FILL</property>
     2935                                          </packing>
     2936                                        </child>
     2937                                        <child>
     2938                                          <widget class="GtkLabel" id="label62">
     2939                                            <property name="visible">True</property>
    29092940                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    2910                                           </widget>
    2911                                           <packing>
    2912                                             <property name="left_attach">1</property>
    2913                                             <property name="right_attach">2</property>
     2941                                            <property name="xalign">0</property>
     2942                                            <property name="label" translatable="yes">Username:</property>
     2943                                          </widget>
     2944                                          <packing>
    29142945                                            <property name="top_attach">1</property>
    29152946                                            <property name="bottom_attach">2</property>
     2947                                            <property name="x_options">GTK_FILL</property>
     2948                                          </packing>
     2949                                        </child>
     2950                                        <child>
     2951                                          <widget class="GtkLabel" id="label63">
     2952                                            <property name="visible">True</property>
     2953                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     2954                                            <property name="xalign">0</property>
     2955                                            <property name="label" translatable="yes">Type:</property>
     2956                                          </widget>
     2957                                          <packing>
     2958                                            <property name="x_options">GTK_FILL</property>
    29162959                                          </packing>
    29172960                                        </child>
     
    29342977                                        </child>
    29352978                                        <child>
    2936                                           <widget class="GtkLabel" id="label63">
    2937                                             <property name="visible">True</property>
     2979                                          <widget class="GtkEntry" id="txt_proxy_username">
     2980                                            <property name="visible">True</property>
     2981                                            <property name="can_focus">True</property>
    29382982                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    2939                                             <property name="xalign">0</property>
    2940                                             <property name="label" translatable="yes">Type:</property>
    2941                                           </widget>
    2942                                           <packing>
    2943                                             <property name="x_options">GTK_FILL</property>
    2944                                           </packing>
    2945                                         </child>
    2946                                         <child>
    2947                                           <widget class="GtkLabel" id="label62">
    2948                                             <property name="visible">True</property>
    2949                                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    2950                                             <property name="xalign">0</property>
    2951                                             <property name="label" translatable="yes">Username:</property>
    2952                                           </widget>
    2953                                           <packing>
     2983                                          </widget>
     2984                                          <packing>
     2985                                            <property name="left_attach">1</property>
     2986                                            <property name="right_attach">2</property>
    29542987                                            <property name="top_attach">1</property>
    29552988                                            <property name="bottom_attach">2</property>
    2956                                             <property name="x_options">GTK_FILL</property>
    2957                                           </packing>
    2958                                         </child>
    2959                                         <child>
    2960                                           <widget class="GtkLabel" id="label61">
    2961                                             <property name="visible">True</property>
     2989                                          </packing>
     2990                                        </child>
     2991                                        <child>
     2992                                          <widget class="GtkEntry" id="txt_proxy_password">
     2993                                            <property name="visible">True</property>
     2994                                            <property name="can_focus">True</property>
    29622995                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    2963                                             <property name="xalign">0</property>
    2964                                             <property name="label" translatable="yes">Password:</property>
    2965                                           </widget>
    2966                                           <packing>
     2996                                            <property name="visibility">False</property>
     2997                                          </widget>
     2998                                          <packing>
     2999                                            <property name="left_attach">1</property>
     3000                                            <property name="right_attach">2</property>
    29673001                                            <property name="top_attach">2</property>
    29683002                                            <property name="bottom_attach">3</property>
    2969                                             <property name="x_options">GTK_FILL</property>
    2970                                           </packing>
    2971                                         </child>
    2972                                         <child>
    2973                                           <widget class="GtkLabel" id="label60">
    2974                                             <property name="visible">True</property>
    2975                                             <property name="xalign">0</property>
    2976                                             <property name="label" translatable="yes">Host:</property>
    2977                                           </widget>
    2978                                           <packing>
     3003                                          </packing>
     3004                                        </child>
     3005                                        <child>
     3006                                          <widget class="GtkEntry" id="txt_proxy_server">
     3007                                            <property name="visible">True</property>
     3008                                            <property name="can_focus">True</property>
     3009                                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     3010                                          </widget>
     3011                                          <packing>
     3012                                            <property name="left_attach">1</property>
     3013                                            <property name="right_attach">2</property>
    29793014                                            <property name="top_attach">3</property>
    29803015                                            <property name="bottom_attach">4</property>
    2981                                             <property name="x_options">GTK_FILL</property>
    2982                                           </packing>
    2983                                         </child>
    2984                                         <child>
    2985                                           <widget class="GtkLabel" id="label73">
    2986                                             <property name="visible">True</property>
    2987                                             <property name="xalign">0</property>
    2988                                             <property name="label" translatable="yes">Port:</property>
    2989                                           </widget>
    2990                                           <packing>
    2991                                             <property name="top_attach">4</property>
    2992                                             <property name="bottom_attach">5</property>
    2993                                             <property name="x_options">GTK_FILL</property>
    2994                                           </packing>
    2995                                         </child>
    2996                                         <child>
    2997                                           <widget class="GtkAlignment" id="alignment30">
    2998                                             <property name="visible">True</property>
    2999                                             <property name="xalign">0</property>
    3000                                             <property name="xscale">0</property>
    3001                                             <child>
    3002                                               <widget class="GtkSpinButton" id="spin_proxy_port">
    3003                                                 <property name="visible">True</property>
    3004                                                 <property name="can_focus">True</property>
    3005                                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    3006                                                 <property name="adjustment">0 0 65000 1 10 10</property>
    3007                                                 <property name="numeric">True</property>
    3008                                               </widget>
    3009                                             </child>
    3010                                           </widget>
    3011                                           <packing>
    3012                                             <property name="left_attach">1</property>
    3013                                             <property name="right_attach">2</property>
    3014                                             <property name="top_attach">4</property>
    3015                                             <property name="bottom_attach">5</property>
    30163016                                          </packing>
    30173017                                        </child>
     
    31143114                                                <property name="column_spacing">5</property>
    31153115                                                <child>
     3116                                                  <widget class="GtkFileChooserButton" id="combo_ntf_sound_path">
     3117                                                    <property name="visible">True</property>
     3118                                                  </widget>
     3119                                                  <packing>
     3120                                                    <property name="left_attach">1</property>
     3121                                                    <property name="right_attach">2</property>
     3122                                                    <property name="top_attach">2</property>
     3123                                                    <property name="bottom_attach">3</property>
     3124                                                  </packing>
     3125                                                </child>
     3126                                                <child>
     3127                                                  <widget class="GtkCheckButton" id="chk_ntf_tray_blink">
     3128                                                    <property name="visible">True</property>
     3129                                                    <property name="can_focus">True</property>
     3130                                                    <property name="label" translatable="yes">Blinking tray icon</property>
     3131                                                    <property name="use_underline">True</property>
     3132                                                    <property name="response_id">0</property>
     3133                                                    <property name="draw_indicator">True</property>
     3134                                                  </widget>
     3135                                                  <packing>
     3136                                                    <property name="right_attach">2</property>
     3137                                                    <property name="x_options">GTK_FILL</property>
     3138                                                  </packing>
     3139                                                </child>
     3140                                                <child>
     3141                                                  <widget class="GtkCheckButton" id="chk_ntf_popup">
     3142                                                    <property name="visible">True</property>
     3143                                                    <property name="can_focus">True</property>
     3144                                                    <property name="label" translatable="yes">Popup</property>
     3145                                                    <property name="use_underline">True</property>
     3146                                                    <property name="response_id">0</property>
     3147                                                    <property name="draw_indicator">True</property>
     3148                                                  </widget>
     3149                                                  <packing>
     3150                                                    <property name="right_attach">2</property>
     3151                                                    <property name="top_attach">1</property>
     3152                                                    <property name="bottom_attach">2</property>
     3153                                                    <property name="x_options">GTK_FILL</property>
     3154                                                  </packing>
     3155                                                </child>
     3156                                                <child>
    31163157                                                  <widget class="GtkCheckButton" id="chk_ntf_sound">
    31173158                                                    <property name="visible">True</property>
     
    31273168                                                    <property name="bottom_attach">3</property>
    31283169                                                    <property name="x_options">GTK_FILL</property>
    3129                                                   </packing>
    3130                                                 </child>
    3131                                                 <child>
    3132                                                   <widget class="GtkCheckButton" id="chk_ntf_popup">
    3133                                                     <property name="visible">True</property>
    3134                                                     <property name="can_focus">True</property>
    3135                                                     <property name="label" translatable="yes">Popup</property>
    3136                                                     <property name="use_underline">True</property>
    3137                                                     <property name="response_id">0</property>
    3138                                                     <property name="draw_indicator">True</property>
    3139                                                   </widget>
    3140                                                   <packing>
    3141                                                     <property name="right_attach">2</property>
    3142                                                     <property name="top_attach">1</property>
    3143                                                     <property name="bottom_attach">2</property>
    3144                                                     <property name="x_options">GTK_FILL</property>
    3145                                                   </packing>
    3146                                                 </child>
    3147                                                 <child>
    3148                                                   <widget class="GtkCheckButton" id="chk_ntf_tray_blink">
    3149                                                     <property name="visible">True</property>
    3150                                                     <property name="can_focus">True</property>
    3151                                                     <property name="label" translatable="yes">Blinking tray icon</property>
    3152                                                     <property name="use_underline">True</property>
    3153                                                     <property name="response_id">0</property>
    3154                                                     <property name="draw_indicator">True</property>
    3155                                                   </widget>
    3156                                                   <packing>
    3157                                                     <property name="right_attach">2</property>
    3158                                                     <property name="x_options">GTK_FILL</property>
    3159                                                   </packing>
    3160                                                 </child>
    3161                                                 <child>
    3162                                                   <widget class="GtkFileChooserButton" id="combo_ntf_sound_path">
    3163                                                     <property name="visible">True</property>
    3164                                                   </widget>
    3165                                                   <packing>
    3166                                                     <property name="left_attach">1</property>
    3167                                                     <property name="right_attach">2</property>
    3168                                                     <property name="top_attach">2</property>
    3169                                                     <property name="bottom_attach">3</property>
    31703170                                                  </packing>
    31713171                                                </child>
     
    32083208                                                <property name="column_spacing">5</property>
    32093209                                                <child>
    3210                                                   <widget class="GtkLabel" id="label70">
     3210                                                  <widget class="GtkCheckButton" id="chk_ntf_email">
     3211                                                    <property name="visible">True</property>
     3212                                                    <property name="can_focus">True</property>
     3213                                                    <property name="label" translatable="yes">Enable</property>
     3214                                                    <property name="response_id">0</property>
     3215                                                    <property name="draw_indicator">True</property>
     3216                                                  </widget>
     3217                                                  <packing>
     3218                                                    <property name="right_attach">2</property>
     3219                                                    <property name="x_options">GTK_FILL</property>
     3220                                                    <property name="y_options">GTK_FILL</property>
     3221                                                  </packing>
     3222                                                </child>
     3223                                                <child>
     3224                                                  <widget class="GtkEntry" id="txt_ntf_email">
     3225                                                    <property name="visible">True</property>
     3226                                                    <property name="can_focus">True</property>
     3227                                                  </widget>
     3228                                                  <packing>
     3229                                                    <property name="left_attach">1</property>
     3230                                                    <property name="right_attach">2</property>
     3231                                                    <property name="top_attach">1</property>
     3232                                                    <property name="bottom_attach">2</property>
     3233                                                  </packing>
     3234                                                </child>
     3235                                                <child>
     3236                                                  <widget class="GtkLabel" id="label76">
    32113237                                                    <property name="visible">True</property>
    32123238                                                    <property name="xalign">0</property>
    3213                                                     <property name="label" translatable="yes">Security:</property>
    3214                                                   </widget>
    3215                                                   <packing>
    3216                                                     <property name="top_attach">5</property>
    3217                                                     <property name="bottom_attach">6</property>
     3239                                                    <property name="label" translatable="yes">Address:</property>
     3240                                                  </widget>
     3241                                                  <packing>
     3242                                                    <property name="top_attach">1</property>
     3243                                                    <property name="bottom_attach">2</property>
     3244                                                    <property name="x_options">GTK_FILL</property>
     3245                                                    <property name="y_options">GTK_FILL</property>
     3246                                                  </packing>
     3247                                                </child>
     3248                                                <child>
     3249                                                  <widget class="GtkEntry" id="txt_ntf_server">
     3250                                                    <property name="visible">True</property>
     3251                                                    <property name="can_focus">True</property>
     3252                                                  </widget>
     3253                                                  <packing>
     3254                                                    <property name="left_attach">1</property>
     3255                                                    <property name="right_attach">2</property>
     3256                                                    <property name="top_attach">2</property>
     3257                                                    <property name="bottom_attach">3</property>
     3258                                                  </packing>
     3259                                                </child>
     3260                                                <child>
     3261                                                  <widget class="GtkLabel" id="label74">
     3262                                                    <property name="visible">True</property>
     3263                                                    <property name="xalign">0</property>
     3264                                                    <property name="label" translatable="yes">Server:</property>
     3265                                                  </widget>
     3266                                                  <packing>
     3267                                                    <property name="top_attach">2</property>
     3268                                                    <property name="bottom_attach">3</property>
     3269                                                    <property name="x_options">GTK_FILL</property>
     3270                                                    <property name="y_options">GTK_FILL</property>
     3271                                                  </packing>
     3272                                                </child>
     3273                                                <child>
     3274                                                  <widget class="GtkEntry" id="txt_ntf_username">
     3275                                                    <property name="visible">True</property>
     3276                                                    <property name="can_focus">True</property>
     3277                                                  </widget>
     3278                                                  <packing>
     3279                                                    <property name="left_attach">1</property>
     3280                                                    <property name="right_attach">2</property>
     3281                                                    <property name="top_attach">3</property>
     3282                                                    <property name="bottom_attach">4</property>
     3283                                                  </packing>
     3284                                                </child>
     3285                                                <child>
     3286                                                  <widget class="GtkLabel" id="label68">
     3287                                                    <property name="visible">True</property>
     3288                                                    <property name="xalign">0</property>
     3289                                                    <property name="label" translatable="yes">Username:</property>
     3290                                                  </widget>
     3291                                                  <packing>
     3292                                                    <property name="top_attach">3</property>
     3293                                                    <property name="bottom_attach">4</property>
     3294                                                    <property name="x_options">GTK_FILL</property>
     3295                                                  </packing>
     3296                                                </child>
     3297                                                <child>
     3298                                                  <widget class="GtkEntry" id="txt_ntf_pass">
     3299                                                    <property name="visible">True</property>
     3300                                                    <property name="can_focus">True</property>
     3301                                                    <property name="visibility">False</property>
     3302                                                  </widget>
     3303                                                  <packing>
     3304                                                    <property name="left_attach">1</property>
     3305                                                    <property name="right_attach">2</property>
     3306                                                    <property name="top_attach">4</property>
     3307                                                    <property name="bottom_attach">5</property>
     3308                                                  </packing>
     3309                                                </child>
     3310                                                <child>
     3311                                                  <widget class="GtkLabel" id="label69">
     3312                                                    <property name="visible">True</property>
     3313                                                    <property name="xalign">0</property>
     3314                                                    <property name="label" translatable="yes">Password:</property>
     3315                                                  </widget>
     3316                                                  <packing>
     3317                                                    <property name="top_attach">4</property>
     3318                                                    <property name="bottom_attach">5</property>
    32183319                                                    <property name="x_options">GTK_FILL</property>
    32193320                                                  </packing>
     
    32783379                                                </child>
    32793380                                                <child>
    3280                                                   <widget class="GtkLabel" id="label69">
     3381                                                  <widget class="GtkLabel" id="label70">
    32813382                                                    <property name="visible">True</property>
    32823383                                                    <property name="xalign">0</property>
    3283                                                     <property name="label" translatable="yes">Password:</property>
    3284                                                   </widget>
    3285                                                   <packing>
    3286                                                     <property name="top_attach">4</property>
    3287                                                     <property name="bottom_attach">5</property>
     3384                                                    <property name="label" translatable="yes">Security:</property>
     3385                                                  </widget>
     3386                                                  <packing>
     3387                                                    <property name="top_attach">5</property>
     3388                                                    <property name="bottom_attach">6</property>
    32883389                                                    <property name="x_options">GTK_FILL</property>
    3289                                                   </packing>
    3290                                                 </child>
    3291                                                 <child>
    3292                                                   <widget class="GtkEntry" id="txt_ntf_pass">
    3293                                                     <property name="visible">True</property>
    3294                                                     <property name="can_focus">True</property>
    3295                                                     <property name="visibility">False</property>
    3296                                                   </widget>
    3297                                                   <packing>
    3298                                                     <property name="left_attach">1</property>
    3299                                                     <property name="right_attach">2</property>
    3300                                                     <property name="top_attach">4</property>
    3301                                                     <property name="bottom_attach">5</property>
    3302                                                   </packing>
    3303                                                 </child>
    3304                                                 <child>
    3305                                                   <widget class="GtkLabel" id="label68">
    3306                                                     <property name="visible">True</property>
    3307                                                     <property name="xalign">0</property>
    3308                                                     <property name="label" translatable="yes">Username:</property>
    3309                                                   </widget>
    3310                                                   <packing>
    3311                                                     <property name="top_attach">3</property>
    3312                                                     <property name="bottom_attach">4</property>
    3313                                                     <property name="x_options">GTK_FILL</property>
    3314                                                   </packing>
    3315                                                 </child>
    3316                                                 <child>
    3317                                                   <widget class="GtkEntry" id="txt_ntf_username">
    3318                                                     <property name="visible">True</property>
    3319                                                     <property name="can_focus">True</property>
    3320                                                   </widget>
    3321                                                   <packing>
    3322                                                     <property name="left_attach">1</property>
    3323                                                     <property name="right_attach">2</property>
    3324                                                     <property name="top_attach">3</property>
    3325                                                     <property name="bottom_attach">4</property>
    3326                                                   </packing>
    3327                                                 </child>
    3328                                                 <child>
    3329                                                   <widget class="GtkLabel" id="label74">
    3330                                                     <property name="visible">True</property>
    3331                                                     <property name="xalign">0</property>
    3332                                                     <property name="label" translatable="yes">Server:</property>
    3333                                                   </widget>
    3334                                                   <packing>
    3335                                                     <property name="top_attach">2</property>
    3336                                                     <property name="bottom_attach">3</property>
    3337                                                     <property name="x_options">GTK_FILL</property>
    3338                                                     <property name="y_options">GTK_FILL</property>
    3339                                                   </packing>
    3340                                                 </child>
    3341                                                 <child>
    3342                                                   <widget class="GtkEntry" id="txt_ntf_server">
    3343                                                     <property name="visible">True</property>
    3344                                                     <property name="can_focus">True</property>
    3345                                                   </widget>
    3346                                                   <packing>
    3347                                                     <property name="left_attach">1</property>
    3348                                                     <property name="right_attach">2</property>
    3349                                                     <property name="top_attach">2</property>
    3350                                                     <property name="bottom_attach">3</property>
    3351                                                   </packing>
    3352                                                 </child>
    3353                                                 <child>
    3354                                                   <widget class="GtkLabel" id="label76">
    3355                                                     <property name="visible">True</property>
    3356                                                     <property name="xalign">0</property>
    3357                                                     <property name="label" translatable="yes">Address:</property>
    3358                                                   </widget>
    3359                                                   <packing>
    3360                                                     <property name="top_attach">1</property>
    3361                                                     <property name="bottom_attach">2</property>
    3362                                                     <property name="x_options">GTK_FILL</property>
    3363                                                     <property name="y_options">GTK_FILL</property>
    3364                                                   </packing>
    3365                                                 </child>
    3366                                                 <child>
    3367                                                   <widget class="GtkEntry" id="txt_ntf_email">
    3368                                                     <property name="visible">True</property>
    3369                                                     <property name="can_focus">True</property>
    3370                                                   </widget>
    3371                                                   <packing>
    3372                                                     <property name="left_attach">1</property>
    3373                                                     <property name="right_attach">2</property>
    3374                                                     <property name="top_attach">1</property>
    3375                                                     <property name="bottom_attach">2</property>
    3376                                                   </packing>
    3377                                                 </child>
    3378                                                 <child>
    3379                                                   <widget class="GtkCheckButton" id="chk_ntf_email">
    3380                                                     <property name="visible">True</property>
    3381                                                     <property name="can_focus">True</property>
    3382                                                     <property name="label" translatable="yes">Enable</property>
    3383                                                     <property name="response_id">0</property>
    3384                                                     <property name="draw_indicator">True</property>
    3385                                                   </widget>
    3386                                                   <packing>
    3387                                                     <property name="right_attach">2</property>
    3388                                                     <property name="x_options">GTK_FILL</property>
    3389                                                     <property name="y_options">GTK_FILL</property>
    33903390                                                  </packing>
    33913391                                                </child>
     
    34793479                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    34803480                                <child>
    3481                                   <widget class="GtkTreeView" id="plugin_listview">
     3481                                  <widget class="GtkScrolledWindow" id="scrolledwindow12">
    34823482                                    <property name="visible">True</property>
    34833483                                    <property name="can_focus">True</property>
    3484                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    3485                                     <property name="headers_clickable">True</property>
     3484                                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
     3485                                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
     3486                                    <property name="shadow_type">GTK_SHADOW_IN</property>
     3487                                    <child>
     3488                                      <widget class="GtkTreeView" id="plugin_listview">
     3489                                        <property name="visible">True</property>
     3490                                        <property name="can_focus">True</property>
     3491                                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     3492                                        <property name="headers_clickable">True</property>
     3493                                      </widget>
     3494                                    </child>
    34863495                                  </widget>
    34873496                                  <packing>
     
    34913500                                </child>
    34923501                                <child>
    3493                                   <widget class="GtkTextView" id="plugin_textview">
     3502                                  <widget class="GtkScrolledWindow" id="scrolledwindow11">
    34943503                                    <property name="visible">True</property>
    34953504                                    <property name="can_focus">True</property>
    3496                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    3497                                     <property name="editable">False</property>
    3498                                     <property name="wrap_mode">GTK_WRAP_WORD</property>
    3499                                     <property name="cursor_visible">False</property>
    3500                                     <property name="accepts_tab">False</property>
     3505                                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
     3506                                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
     3507                                    <property name="shadow_type">GTK_SHADOW_IN</property>
     3508                                    <child>
     3509                                      <widget class="GtkFrame" id="frame8">
     3510                                        <property name="visible">True</property>
     3511                                        <property name="label_xalign">0</property>
     3512                                        <property name="shadow_type">GTK_SHADOW_NONE</property>
     3513                                        <child>
     3514                                          <widget class="GtkAlignment" id="alignment26">
     3515                                            <property name="visible">True</property>
     3516                                            <property name="left_padding">12</property>
     3517                                            <child>
     3518                                              <widget class="GtkTable" id="table10">
     3519                                                <property name="visible">True</property>
     3520                                                <property name="n_rows">4</property>
     3521                                                <property name="n_columns">2</property>
     3522                                                <child>
     3523                                                  <widget class="GtkLabel" id="label88">
     3524                                                    <property name="visible">True</property>
     3525                                                  </widget>
     3526                                                  <packing>
     3527                                                    <property name="left_attach">1</property>
     3528                                                    <property name="right_attach">2</property>
     3529                                                    <property name="top_attach">2</property>
     3530                                                    <property name="bottom_attach">4</property>
     3531                                                    <property name="y_options"></property>
     3532                                                  </packing>
     3533                                                </child>
     3534                                                <child>
     3535                                                  <widget class="GtkLabel" id="label87">
     3536                                                    <property name="visible">True</property>
     3537                                                  </widget>
     3538                                                  <packing>
     3539                                                    <property name="left_attach">1</property>
     3540                                                    <property name="right_attach">2</property>
     3541                                                    <property name="top_attach">1</property>
     3542                                                    <property name="bottom_attach">2</property>
     3543                                                    <property name="y_options"></property>
     3544                                                  </packing>
     3545                                                </child>
     3546                                                <child>
     3547                                                  <widget class="GtkLabel" id="label86">
     3548                                                    <property name="visible">True</property>
     3549                                                  </widget>
     3550                                                  <packing>
     3551                                                    <property name="left_attach">1</property>
     3552                                                    <property name="right_attach">2</property>
     3553                                                    <property name="y_options"></property>
     3554                                                  </packing>
     3555                                                </child>
     3556                                                <child>
     3557                                                  <widget class="GtkLabel" id="label85">
     3558                                                    <property name="visible">True</property>
     3559                                                    <property name="xalign">0</property>
     3560                                                    <property name="yalign">0</property>
     3561                                                    <property name="label" translatable="yes">Details:</property>
     3562                                                  </widget>
     3563                                                  <packing>
     3564                                                    <property name="top_attach">2</property>
     3565                                                    <property name="bottom_attach">4</property>
     3566                                                    <property name="x_options">GTK_FILL</property>
     3567                                                    <property name="y_options">GTK_FILL</property>
     3568                                                  </packing>
     3569                                                </child>
     3570                                                <child>
     3571                                                  <widget class="GtkLabel" id="label84">
     3572                                                    <property name="visible">True</property>
     3573                                                    <property name="xalign">0</property>
     3574                                                    <property name="label" translatable="yes">Version:</property>
     3575                                                  </widget>
     3576                                                  <packing>
     3577                                                    <property name="top_attach">1</property>
     3578                                                    <property name="bottom_attach">2</property>
     3579                                                    <property name="x_options">GTK_FILL</property>
     3580                                                    <property name="y_options"></property>
     3581                                                  </packing>
     3582                                                </child>
     3583                                                <child>
     3584                                                  <widget class="GtkLabel" id="label82">
     3585                                                    <property name="visible">True</property>
     3586                                                    <property name="xalign">0</property>
     3587                                                    <property name="label" translatable="yes">Author:</property>
     3588                                                  </widget>
     3589                                                  <packing>
     3590                                                    <property name="x_options">GTK_FILL</property>
     3591                                                    <property name="y_options"></property>
     3592                                                  </packing>
     3593                                                </child>
     3594                                              </widget>
     3595                                            </child>
     3596                                          </widget>
     3597                                        </child>
     3598                                        <child>
     3599                                          <widget class="GtkLabel" id="label81">
     3600                                            <property name="visible">True</property>
     3601                                            <property name="label" translatable="yes">&lt;b&gt;Info&lt;/b&gt;</property>
     3602                                            <property name="use_markup">True</property>
     3603                                          </widget>
     3604                                          <packing>
     3605                                            <property name="type">label_item</property>
     3606                                          </packing>
     3607                                        </child>
     3608                                      </widget>
     3609                                    </child>
    35013610                                  </widget>
    35023611                                  <packing>
    35033612                                    <property name="resize">False</property>
    3504                                     <property name="shrink">True</property>
     3613                                    <property name="shrink">False</property>
    35053614                                  </packing>
    35063615                                </child>
     
    35083617                              <packing>
    35093618                                <property name="position">2</property>
     3619                              </packing>
     3620                            </child>
     3621                            <child>
     3622                              <widget class="GtkHButtonBox" id="hbuttonbox1">
     3623                                <property name="visible">True</property>
     3624                                <property name="layout_style">GTK_BUTTONBOX_CENTER</property>
     3625                                <child>
     3626                                  <widget class="GtkButton" id="button_plugin_install">
     3627                                    <property name="visible">True</property>
     3628                                    <property name="can_focus">True</property>
     3629                                    <property name="receives_default">True</property>
     3630                                    <property name="response_id">0</property>
     3631                                    <signal name="clicked" handler="on_button_plugin_install_clicked"/>
     3632                                    <child>
     3633                                      <widget class="GtkHBox" id="hbox17">
     3634                                        <property name="visible">True</property>
     3635                                        <property name="spacing">5</property>
     3636                                        <child>
     3637                                          <widget class="GtkImage" id="image1">
     3638                                            <property name="visible">True</property>
     3639                                            <property name="stock">gtk-add</property>
     3640                                          </widget>
     3641                                          <packing>
     3642                                            <property name="expand">False</property>
     3643                                            <property name="fill">False</property>
     3644                                          </packing>
     3645                                        </child>
     3646                                        <child>
     3647                                          <widget class="GtkLabel" id="label28">
     3648                                            <property name="visible">True</property>
     3649                                            <property name="label" translatable="yes">_Install Plugin</property>
     3650                                            <property name="use_markup">True</property>
     3651                                            <property name="use_underline">True</property>
     3652                                          </widget>
     3653                                          <packing>
     3654                                            <property name="expand">False</property>
     3655                                            <property name="fill">False</property>
     3656                                            <property name="position">1</property>
     3657                                          </packing>
     3658                                        </child>
     3659                                      </widget>
     3660                                    </child>
     3661                                  </widget>
     3662                                  <packing>
     3663                                    <property name="expand">False</property>
     3664                                    <property name="fill">False</property>
     3665                                  </packing>
     3666                                </child>
     3667                                <child>
     3668                                  <widget class="GtkButton" id="button_rescan_plugins">
     3669                                    <property name="visible">True</property>
     3670                                    <property name="can_focus">True</property>
     3671                                    <property name="receives_default">True</property>
     3672                                    <property name="response_id">0</property>
     3673                                    <signal name="clicked" handler="on_button_rescan_plugins_clicked"/>
     3674                                    <child>
     3675                                      <widget class="GtkHBox" id="hbox18">
     3676                                        <property name="visible">True</property>
     3677                                        <property name="spacing">5</property>
     3678                                        <child>
     3679                                          <widget class="GtkImage" id="image2">
     3680                                            <property name="visible">True</property>
     3681                                            <property name="stock">gtk-refresh</property>
     3682                                          </widget>
     3683                                          <packing>
     3684                                            <property name="expand">False</property>
     3685                                            <property name="fill">False</property>
     3686                                          </packing>
     3687                                        </child>
     3688                                        <child>
     3689                                          <widget class="GtkLabel" id="label30">
     3690                                            <property name="visible">True</property>
     3691                                            <property name="label" translatable="yes">_Rescan Plugins</property>
     3692                                            <property name="use_markup">True</property>
     3693                                            <property name="use_underline">True</property>
     3694                                          </widget>
     3695                                          <packing>
     3696                                            <property name="expand">False</property>
     3697                                            <property name="fill">False</property>
     3698                                            <property name="position">1</property>
     3699                                          </packing>
     3700                                        </child>
     3701                                      </widget>
     3702                                    </child>
     3703                                  </widget>
     3704                                  <packing>
     3705                                    <property name="expand">False</property>
     3706                                    <property name="fill">False</property>
     3707                                    <property name="position">1</property>
     3708                                  </packing>
     3709                                </child>
     3710                              </widget>
     3711                              <packing>
     3712                                <property name="expand">False</property>
     3713                                <property name="fill">False</property>
     3714                                <property name="position">3</property>
    35103715                              </packing>
    35113716                            </child>
  • deluge/ui/gtkui/preferences.py

    raf0bd0 ra27b0c6  
    9595            "on_button_cancel_clicked": self.on_button_cancel_clicked,
    9696            "on_toggle": self.on_toggle,
    97             "on_test_port_clicked": self.on_test_port_clicked
     97            "on_test_port_clicked": self.on_test_port_clicked,
     98            "on_button_plugin_install_clicked": self._on_button_plugin_install_clicked,
     99            "on_button_rescan_plugins_clicked": self._on_button_rescan_plugins_clicked
    98100        })
    99101
     
    801803    def on_plugin_selection_changed(self, treeselection):
    802804        log.debug("on_plugin_selection_changed")
    803        
     805
     806    def _on_button_plugin_install_clicked(self, widget):
     807        log.debug("_on_button_plugin_install_clicked")
     808        chooser = gtk.FileChooserDialog(_("Select the Plugin"),
     809            self.pref_dialog,
     810            gtk.FILE_CHOOSER_ACTION_OPEN,
     811            buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN,
     812                        gtk.RESPONSE_OK))
     813
     814        chooser.set_transient_for(self.pref_dialog)
     815        chooser.set_select_multiple(False)
     816        chooser.set_property("skip-taskbar-hint", True)
     817
     818        file_filter = gtk.FileFilter()
     819        file_filter.set_name(_("Plugin Eggs"))
     820        file_filter.add_pattern("*." + "egg")
     821        chooser.add_filter(file_filter)
     822
     823        # Run the dialog
     824        response = chooser.run()
     825
     826        if response == gtk.RESPONSE_OK:
     827            filepath = chooser.get_filename()
     828        else:
     829            chooser.destroy()
     830            return
     831
     832        import shutil
     833        import os.path
     834        filename = os.path.split(filepath)[1]
     835        shutil.copyfile(
     836            filepath,
     837            os.path.join(self.gtkui_config["config_location"], "plugins", filename))
     838       
     839        component.get("PluginManager").scan_for_plugins()
     840       
     841        if not client.is_localhost():
     842            # We need to send this plugin to the daemon
     843            client.upload_plugin(
     844                filename,
     845                xmlrpclib.Binary(open(filepath, "rb").read()))
     846
     847        client.rescan_plugins()
     848        chooser.destroy()
     849        # We need to re-show the preferences dialog to show the new plugins
     850        self.show()
     851       
     852    def _on_button_rescan_plugins_clicked(self, widget):
     853        component.get("PluginManager").scan_for_plugins()
     854        client.rescan_plugins()
     855        self.show()
     856       
Note: See TracChangeset for help on using the changeset viewer.