Ticket #75: patch_plugin_reload.diff

File patch_plugin_reload.diff, 4.4 KB (added by redclay81@…, 13 years ago)

required patch

  • src/dialogs.py

     
    7070        name_col.set_expand(True) 
    7171        dgtk.add_toggle_column(self.view, _("Enabled"), 1, toggled_signal=self.plugin_toggled) 
    7272        signals = {'plugin_pref':      self.plugin_pref, 
    73                    'on_close_clicked': self.close_clicked} 
     73                   'on_close_clicked': self.close_clicked, 
     74                   'reload_plugins':   self.reload_plugins} 
    7475        self.glade.signal_autoconnect(signals) 
    7576        self.plugins = plugins 
    7677 
     
    337338        plugin_name = self.store.get_value(plugin_iter, 0) 
    338339        self.plugins.configure_plugin(plugin_name, self.dialog) 
    339340 
     341    def reload_plugins(self, widget): 
     342        self.plugins.shutdown_all_plugins() 
     343        self.plugins.scan_for_plugins() 
     344        for plugin in self.plugins.available_plugins.values(): 
     345            reload(plugin) 
     346        enable_plugins = self.preferences.get('enabled_plugins').split(':') 
     347        for plugin in enable_plugins: 
     348            try: 
     349                self.plugins.enable_plugin(plugin) 
     350            except KeyError: 
     351                pass 
     352        # plugin tab 
     353        self.store.clear() 
     354        for plugin in self.plugins.get_available_plugins(): 
     355            #print plugin 
     356            if plugin in self.plugins.get_enabled_plugins(): 
     357                self.store.append( (plugin, True) ) 
     358            else: 
     359                self.store.append( (plugin, False) ) 
     360 
    340361    def TestPort(self, widget): 
    341362        common.open_url_in_browser('http://www.deluge-torrent.org/test-port.php?port=%s' % self.active_port) 
    342363     
  • glade/preferences_dialog.glade

     
    29152915                      <widget class="GtkAlignment" id="alignment30"> 
    29162916                        <property name="visible">True</property> 
    29172917                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    2918                         <property name="left_padding">168</property> 
     2918                        <property name="xalign">1</property> 
     2919                        <property name="xscale">0.20000000298023224</property> 
    29192920                        <child> 
     2921                          <widget class="GtkButton" id="button_reload_plugins"> 
     2922                            <property name="visible">True</property> 
     2923                            <property name="can_focus">True</property> 
     2924                            <property name="receives_default">True</property> 
     2925                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     2926                            <property name="label" translatable="yes">gtk-refresh</property> 
     2927                            <property name="use_stock">True</property> 
     2928                            <property name="response_id">0</property> 
     2929                            <signal name="clicked" handler="reload_plugins"/> 
     2930                          </widget> 
     2931                        </child> 
     2932                      </widget> 
     2933                    </child> 
     2934                    <child> 
     2935                      <widget class="GtkAlignment" id="alignment25"> 
     2936                        <property name="visible">True</property> 
     2937                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     2938                        <property name="xalign">0</property> 
     2939                        <property name="xscale">0.20000000298023224</property> 
     2940                        <child> 
    29202941                          <widget class="GtkButton" id="plugin_conf"> 
    29212942                            <property name="visible">True</property> 
    29222943                            <property name="can_focus">True</property> 
     
    29302951                        </child> 
    29312952                      </widget> 
    29322953                      <packing> 
    2933                         <property name="expand">False</property> 
    2934                         <property name="fill">False</property> 
     2954                        <property name="position">1</property> 
    29352955                      </packing> 
    29362956                    </child> 
    29372957                  </widget>