Пример #1
0
    def start(self):
        for widget in self.change_sensitivity:
            self.window.main_glade.get_widget(widget).set_sensitive(True)

        # Hide the Open Folder menuitem and separator if not connected to a
        # localhost.
        non_remote_items = [
            "menuitem_open_folder",
            "separator4"
        ]
        if not client.is_localhost():
            for widget in non_remote_items:
                self.torrentmenu_glade.get_widget(widget).hide()
                self.torrentmenu_glade.get_widget(widget).set_no_show_all(True)
        else:
            for widget in non_remote_items:
                self.torrentmenu_glade.get_widget(widget).set_no_show_all(False)

        if not self.config["classic_mode"]:
            self.window.main_glade.get_widget("separatormenuitem").show()
            self.window.main_glade.get_widget("menuitem_quitdaemon").show()

        # Show the Torrent menu because we're connected to a host
        self.menu_torrent.show()

        if client.get_auth_level() == deluge.common.AUTH_LEVEL_ADMIN:
            # Get known accounts to allow changing ownership
            client.core.get_known_accounts().addCallback(
                self._on_known_accounts).addErrback(self._on_known_accounts_fail
            )
Пример #2
0
    def start(self):
        for widget in self.change_sensitivity:
            self.window.main_glade.get_widget(widget).set_sensitive(True)

        # Hide the Open Folder menuitem and separator if not connected to a
        # localhost.
        non_remote_items = ["menuitem_open_folder", "separator4"]
        if not client.is_localhost():
            for widget in non_remote_items:
                self.torrentmenu_glade.get_widget(widget).hide()
                self.torrentmenu_glade.get_widget(widget).set_no_show_all(True)
        else:
            for widget in non_remote_items:
                self.torrentmenu_glade.get_widget(widget).set_no_show_all(
                    False)

        if not self.config["classic_mode"]:
            self.window.main_glade.get_widget("separatormenuitem").show()
            self.window.main_glade.get_widget("menuitem_quitdaemon").show()

        # Show the Torrent menu because we're connected to a host
        self.menu_torrent.show()

        if client.get_auth_level() == deluge.common.AUTH_LEVEL_ADMIN:
            # Get known accounts to allow changing ownership
            client.core.get_known_accounts().addCallback(
                self._on_known_accounts).addErrback(
                    self._on_known_accounts_fail)
Пример #3
0
    def start(self):
        for widget in self.change_sensitivity:
            self.main_builder.get_object(widget).set_sensitive(True)

        # Only show open_folder menuitem and separator if connected to a localhost daemon.
        localhost_items = [
            'menuitem_open_folder',
            'separator4'
        ]
        if client.is_localhost():
            for widget in localhost_items:
                self.builder.get_object(widget).show()
                self.builder.get_object(widget).set_no_show_all(False)
        else:
            for widget in localhost_items:
                self.builder.get_object(widget).hide()
                self.builder.get_object(widget).set_no_show_all(True)

        self.main_builder.get_object('separatormenuitem').set_visible(not self.config['standalone'])
        self.main_builder.get_object('menuitem_quitdaemon').set_visible(not self.config['standalone'])
        self.main_builder.get_object('menuitem_connectionmanager').set_visible(not self.config['standalone'])

        # Show the Torrent menu because we're connected to a host
        self.menu_torrent.show()

        if client.get_auth_level() == deluge.common.AUTH_LEVEL_ADMIN:
            # Get known accounts to allow changing ownership
            client.core.get_known_accounts().addCallback(
                self._on_known_accounts).addErrback(self._on_known_accounts_fail)

        client.register_event_handler('TorrentStateChangedEvent', self.on_torrentstatechanged_event)
        client.register_event_handler('TorrentResumedEvent', self.on_torrentresumed_event)
        client.register_event_handler('SessionPausedEvent', self.on_sessionpaused_event)
        client.register_event_handler('SessionResumedEvent', self.on_sessionresumed_event)
Пример #4
0
    def start(self):
        for widget in self.change_sensitivity:
            self.main_builder.get_object(widget).set_sensitive(True)

        # Only show open_folder menuitem and separator if connected to a localhost daemon.
        localhost_items = ['menuitem_open_folder', 'separator4']
        if client.is_localhost():
            for widget in localhost_items:
                self.builder.get_object(widget).show()
                self.builder.get_object(widget).set_no_show_all(False)
        else:
            for widget in localhost_items:
                self.builder.get_object(widget).hide()
                self.builder.get_object(widget).set_no_show_all(True)

        self.main_builder.get_object('separatormenuitem').set_visible(
            not self.config['standalone']
        )
        self.main_builder.get_object('menuitem_quitdaemon').set_visible(
            not self.config['standalone']
        )
        self.main_builder.get_object('menuitem_connectionmanager').set_visible(
            not self.config['standalone']
        )

        # Show the Torrent menu because we're connected to a host
        self.menu_torrent.show()

        if client.get_auth_level() == deluge.common.AUTH_LEVEL_ADMIN:
            # Get known accounts to allow changing ownership
            client.core.get_known_accounts().addCallback(
                self._on_known_accounts
            ).addErrback(self._on_known_accounts_fail)

        client.register_event_handler(
            'TorrentStateChangedEvent', self.on_torrentstatechanged_event
        )
        client.register_event_handler(
            'TorrentResumedEvent', self.on_torrentresumed_event
        )
        client.register_event_handler('SessionPausedEvent', self.on_sessionpaused_event)
        client.register_event_handler(
            'SessionResumedEvent', self.on_sessionresumed_event
        )
Пример #5
0
    def load_options(self, options):
        self.glade.get_widget('enabled').set_active(options.get('enabled', True))
        self.glade.get_widget('append_extension_toggle').set_active(
            options.get('append_extension_toggle', False)
        )
        self.glade.get_widget('append_extension').set_text(
            options.get('append_extension', '.added')
        )
        self.glade.get_widget('download_location_toggle').set_active(
            options.get('download_location_toggle', False)
        )
        self.glade.get_widget('copy_torrent_toggle').set_active(
            options.get('copy_torrent_toggle', False)
        )
        self.glade.get_widget('delete_copy_torrent_toggle').set_active(
            options.get('delete_copy_torrent_toggle', False)
        )
        self.accounts.clear()
        self.labels.clear()
        combobox = self.glade.get_widget('OwnerCombobox')
        combobox_render = gtk.CellRendererText()
        combobox.pack_start(combobox_render, True)
        combobox.add_attribute(combobox_render, 'text', 0)
        combobox.set_model(self.accounts)

        label_widget = self.glade.get_widget('label')
        label_widget.child.set_text(options.get('label', ''))
        label_widget.set_model(self.labels)
        label_widget.set_text_column(0)
        self.glade.get_widget('label_toggle').set_active(options.get('label_toggle', False))

        for id in self.spin_ids + self.spin_int_ids:
            self.glade.get_widget(id).set_value(options.get(id, 0))
            self.glade.get_widget(id+'_toggle').set_active(options.get(id+'_toggle', False))
        for id in self.chk_ids:
            self.glade.get_widget(id).set_active(bool(options.get(id, True)))
            self.glade.get_widget(id+'_toggle').set_active(options.get(id+'_toggle', False))
        if not options.get('add_paused', True):
            self.glade.get_widget('isnt_add_paused').set_active(True)
        if not options.get('queue_to_top', True):
            self.glade.get_widget('isnt_queue_to_top').set_active(True)
        if not options.get('auto_managed', True):
            self.glade.get_widget('isnt_auto_managed').set_active(True)
        for field in ['move_completed_path', 'path', 'download_location',
                      'copy_torrent']:
            if client.is_localhost():
                self.glade.get_widget(field+"_chooser").set_current_folder(
                    options.get(field, os.path.expanduser("~"))
                )
                self.glade.get_widget(field+"_chooser").show()
                self.glade.get_widget(field+"_entry").hide()
            else:
                self.glade.get_widget(field+"_entry").set_text(
                    options.get(field, "")
                )
                self.glade.get_widget(field+"_entry").show()
                self.glade.get_widget(field+"_chooser").hide()
        self.set_sensitive()

        def on_core_config(config):
            if client.is_localhost():
                self.glade.get_widget('download_location_chooser').set_current_folder(
                    options.get('download_location', config["download_location"])
                )
                if options.get('move_completed_toggle', config["move_completed"]):
                    self.glade.get_widget('move_completed_toggle').set_active(True)
                    self.glade.get_widget('move_completed_path_chooser').set_current_folder(
                        options.get('move_completed_path', config["move_completed_path"])
                    )
                if options.get('copy_torrent_toggle', config["copy_torrent_file"]):
                    self.glade.get_widget('copy_torrent_toggle').set_active(True)
                    self.glade.get_widget('copy_torrent_chooser').set_current_folder(
                        options.get('copy_torrent', config["torrentfiles_location"])
                    )
            else:
                self.glade.get_widget('download_location_entry').set_text(
                    options.get('download_location', config["download_location"])
                )
                if options.get('move_completed_toggle', config["move_completed"]):
                    self.glade.get_widget('move_completed_toggle').set_active(
                        options.get('move_completed_toggle', False)
                    )
                    self.glade.get_widget('move_completed_path_entry').set_text(
                        options.get('move_completed_path', config["move_completed_path"])
                    )
                if options.get('copy_torrent_toggle', config["copy_torrent_file"]):
                    self.glade.get_widget('copy_torrent_toggle').set_active(True)
                    self.glade.get_widget('copy_torrent_entry').set_text(
                        options.get('copy_torrent', config["torrentfiles_location"])
                    )

            if options.get('delete_copy_torrent_toggle', config["del_copy_torrent_file"]):
                self.glade.get_widget('delete_copy_torrent_toggle').set_active(True)

        if not options:
            client.core.get_config().addCallback(on_core_config)

        def on_accounts(accounts, owner):
            log.debug("Got Accounts")
            selected_iter = None
            for account in accounts:
                iter = self.accounts.append()
                self.accounts.set_value(
                    iter, 0, account['username']
                )
                if account['username'] == owner:
                    selected_iter = iter
            self.glade.get_widget('OwnerCombobox').set_active_iter(selected_iter)

        def on_accounts_failure(failure):
            log.debug("Failed to get accounts!!! %s", failure)
            iter = self.accounts.append()
            self.accounts.set_value(iter, 0, client.get_auth_user())
            self.glade.get_widget('OwnerCombobox').set_active(0)
            self.glade.get_widget('OwnerCombobox').set_sensitive(False)

        def on_labels(labels):
            log.debug("Got Labels: %s", labels)
            for label in labels:
                self.labels.set_value(self.labels.append(), 0, label)
            label_widget = self.glade.get_widget('label')
            label_widget.set_model(self.labels)
            label_widget.set_text_column(0)

        def on_failure(failure):
            log.exception(failure)

        def on_get_enabled_plugins(result):
            if 'Label' in result:
                self.glade.get_widget('label_frame').show()
                client.label.get_labels().addCallback(on_labels).addErrback(on_failure)
            else:
                self.glade.get_widget('label_frame').hide()
                self.glade.get_widget('label_toggle').set_active(False)

        client.core.get_enabled_plugins().addCallback(on_get_enabled_plugins)
        if client.get_auth_level() == deluge.common.AUTH_LEVEL_ADMIN:
            client.core.get_known_accounts().addCallback(
                on_accounts, options.get('owner', client.get_auth_user())
            ).addErrback(on_accounts_failure)
        else:
            iter = self.accounts.append()
            self.accounts.set_value(iter, 0, client.get_auth_user())
            self.glade.get_widget('OwnerCombobox').set_active(0)
            self.glade.get_widget('OwnerCombobox').set_sensitive(False)
Пример #6
0
 def on_connect(result):
     self.assertEqual(client.get_auth_level(), AUTH_LEVEL_ADMIN)
     self.addCleanup(client.disconnect)
     return result
Пример #7
0
 def on_connect(result):
     self.assertEqual(client.get_auth_level(), AUTH_LEVEL_ADMIN)
     self.addCleanup(client.disconnect)
     return result