Exemplo n.º 1
0
    def __downloads_treeview_selection_changed(self, selection):
        """Called when selection changes. Sets download releated widgets and
        their sensitivity."""
        downloads = gui.get_selected_values(self.downloads_treeview)
        number_selected = selection.count_selected_rows()
        # Disable tool buttons and menu items if nothing is selected, else
        # enable the ones that should be
        if number_selected < 1:
            self.__download_widgets_set_sensitive(False)
        elif number_selected == 1:
            self.unselect_all_menu_item.set_sensitive(True)
            self.remove_tool_button.set_sensitive(True)
            self.remove_imi.set_sensitive(True)
            self.details_tool_button.set_sensitive(True)
            self.details_imi.set_sensitive(True)
            if downloads:
                status = downloads[0].status
                self.__set_widgets_sensitivity_for_status(status)

        elif number_selected > 1:
            self.__download_widgets_set_sensitive(False)
            self.unselect_all_menu_item.set_sensitive(True)
            self.remove_tool_button.set_sensitive(True)
            self.remove_imi.set_sensitive(True)

            has_paused = has_canceled = has_active = False
            if downloads:
                for download in downloads:
                    if download.status == PAUSED:
                        has_paused = True
                    elif download.status == CANCELED:
                        has_canceled = True
                    elif download.status == CONNECTING or \
                         download.status == DOWNLOADING:
                        has_active = True

            if has_paused or has_canceled:
                self.resume_tool_button.set_sensitive(True)
                self.resume_imi.set_sensitive(True)

            if has_active:
                self.pause_tool_button.set_sensitive(True)
                self.pause_imi.set_sensitive(True)
                self.cancel_tool_button.set_sensitive(True)
                self.cancel_imi.set_sensitive(True)

            self.pause_imi.props.visible = self.pause_imi.props.sensitive
            self.resume_imi.props.visible = self.resume_imi.props.sensitive
            self.cancel_imi.props.visible = self.cancel_imi.props.sensitive

            # Details should only be possible if one row is selected
            self.details_tool_button.set_sensitive(False)
            self.details_imi.set_sensitive(False)

        # Select all should not be availible if all is selected already
        if number_selected == len(self.downloads_model):
            self.select_all_menu_item.set_sensitive(False)
        elif not self.select_all_menu_item.props.sensitive:
            self.select_all_menu_item.set_sensitive(True)
Exemplo n.º 2
0
 def __pause_selected_downloads(self, pause=True):
     downloads = gui.get_selected_values(self.downloads_treeview)
     if downloads:
         for download in downloads:
             if pause:
                 download.pause()
             else:
                 download.resume()
Exemplo n.º 3
0
 def __downloads_treeview_button_press_event(self, treeview, event, menu):
     """Show context menu for downloads treeview"""
     if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
         n_selected = self.downloads_treeview_selection.count_selected_rows()
         downloads = gui.get_selected_values(self.downloads_treeview)
         if n_selected == 1:
             if downloads:
                 self.open_imi.set_sensitive(not downloads[0].is_metalink)
             self.open_folder_imi.set_sensitive(True)
             self.details_imi.set_sensitive(True)
             menu.popup(None, None, None, event.button, event.time)
             return True
         elif n_selected > 1:
             self.open_imi.set_sensitive(False)
             self.open_folder_imi.set_sensitive(False)
             self.details_imi.set_sensitive(False)
             menu.popup(None, None, None, event.button, event.time)
             return True
     return False
Exemplo n.º 4
0
 def __details_selected_download(self, widget):
     """Shows details for the selected download. The details option will
     only be availble when only one download in selected."""
     downloads = gui.get_selected_values(self.downloads_treeview)
     if downloads:
         DetailsDialog(downloads[0])
Exemplo n.º 5
0
 def __open_folder_imi_activate(self, imagemenuitem):
     """Opens the folder containing the download."""
     downloads = gui.get_selected_values(self.downloads_treeview)
     if downloads:
         uri = gnomevfs.make_uri_from_input(downloads[0].path)
         gnome.ui.url_show_on_screen(uri, imagemenuitem.get_screen())
Exemplo n.º 6
0
 def __open_imi_activate(self, imagemenuitem):
     """Opens the downloaded file with the associated program."""
     downloads = gui.get_selected_values(self.downloads_treeview)
     if downloads:
         gui.open_file_on_screen(downloads[0].file,
                 imagemenuitem.get_screen())
Exemplo n.º 7
0
 def __remove_selected_downloads(self, widget=None):
     """Removes the selected download from DownloadList."""
     downloads = gui.get_selected_values(self.downloads_treeview)
     for download in downloads:
         self.download_list.remove_download(download)
Exemplo n.º 8
0
 def __cancel_selected_downloads(self, widget):
     """Cancels the selected download in DownloadList."""
     downloads = gui.get_selected_values(self.downloads_treeview)
     for download in downloads:
         download.cancel()