示例#1
0
    def create_columns(self):
        renderer_toggle = Gtk.CellRendererToggle()
        renderer_toggle.connect("toggled", self.on_cell_toggled)
        column_toggle = Gtk.TreeViewColumn("", renderer_toggle, active=0)
        self.treeview.append_column(column_toggle)

        renderer_pixbuf = Gtk.CellRendererPixbuf()
        column_pixbuf = Gtk.TreeViewColumn("", renderer_pixbuf, pixbuf=1)
        self.treeview.append_column(column_pixbuf)

        renderer_text = Gtk.CellRendererText()
        column_computer = Gtk.TreeViewColumn("Conputer", renderer_text, text=2)
        self.treeview.append_column(column_computer)

        renderer_progress = Gtk.CellRendererProgress()
        column_progress = Gtk.TreeViewColumn("Progress",
                                             renderer_progress,
                                             value=3)
        self.treeview.append_column(column_progress)

        renderer_toggle1 = Gtk.CellRendererToggle()
        renderer_toggle1.connect("toggled", self.on_cell_toggled)
        column_toggle1 = Gtk.TreeViewColumn("Connected",
                                            renderer_toggle1,
                                            active=4)
        column_toggle1.set_visible(False)
        column_toggle1.set_cell_data_func(renderer_toggle1, self.set_toggle)
        self.treeview.append_column(column_toggle1)
示例#2
0
    def add_progress_column(self,
                            header,
                            col_types=[float, str],
                            sortid=0,
                            hidden=False,
                            position=None,
                            status_field=None,
                            function=None,
                            column_type="progress",
                            default=True):
        """Add a progress column to the listview."""

        render = Gtk.CellRendererProgress()
        self.add_column(header,
                        render,
                        col_types,
                        hidden,
                        position,
                        status_field,
                        sortid,
                        function=function,
                        column_type=column_type,
                        value=0,
                        text=1,
                        default=default)

        return True
    def get_treeview(self, model):
        treeview = Gtk.TreeView(model=model)
        treeview.set_headers_visible(False)

        renderer_toggle = Gtk.CellRendererToggle()
        renderer_text = Gtk.CellRendererText()
        self.renderer_progress = Gtk.CellRendererProgress()

        installed_column = Gtk.TreeViewColumn(None, renderer_toggle, active=3)
        renderer_toggle.connect("toggled", self.on_installed_toggled)
        treeview.append_column(installed_column)

        version_column = Gtk.TreeViewColumn(None, renderer_text)
        version_column.add_attribute(renderer_text, 'text', self.COL_VER)
        version_column.set_property('min-width', 80)
        treeview.append_column(version_column)

        arch_column = Gtk.TreeViewColumn(None,
                                         renderer_text,
                                         text=self.COL_ARCH)
        arch_column.set_property('min-width', 50)
        treeview.append_column(arch_column)

        progress_column = Gtk.TreeViewColumn(None,
                                             self.renderer_progress,
                                             value=self.COL_PROGRESS,
                                             visible=self.COL_PROGRESS)
        progress_column.set_property('fixed-width', 60)
        progress_column.set_property('min-width', 60)
        progress_column.set_property('resizable', False)
        treeview.append_column(progress_column)

        return treeview
    def __init__(self):
        Gtk.Window.__init__(self, title="CellRendererProgress Example")

        self.set_default_size(200, 200)

        self.liststore = Gtk.ListStore(str, int, bool)
        self.current_iter = self.liststore.append(["Sabayon", 0, False])
        self.liststore.append(["Zenwalk", 0, False])
        self.liststore.append(["SimplyMepis", 0, False])

        treeview = Gtk.TreeView(model=self.liststore)

        renderer_text = Gtk.CellRendererText()
        column_text = Gtk.TreeViewColumn("Text", renderer_text, text=0)
        treeview.append_column(column_text)

        renderer_progress = Gtk.CellRendererProgress()
        column_progress = Gtk.TreeViewColumn("Progress",
                                             renderer_progress,
                                             value=1,
                                             inverted=2)
        treeview.append_column(column_progress)

        renderer_toggle = Gtk.CellRendererToggle()
        renderer_toggle.connect("toggled", self.on_inverted_toggled)
        column_toggle = Gtk.TreeViewColumn("Inverted",
                                           renderer_toggle,
                                           active=2)
        treeview.append_column(column_toggle)

        self.add(treeview)

        self.timeout_id = GLib.timeout_add(100, self.on_timeout, None)
示例#5
0
 def __init__(self, transaction=None):
     Gtk.TreeView.__init__(self)
     model = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_INT,
                           GObject.TYPE_STRING)
     self.set_model(model)
     self.props.headers_visible = False
     self.set_rules_hint(True)
     self._download_map = {}
     self._signals = []
     if transaction is not None:
         self.set_transaction(transaction)
     cell_uri = Gtk.CellRendererText()
     cell_uri.props.ellipsize = Pango.EllipsizeMode.END
     column_download = Gtk.TreeViewColumn(_("File"))
     column_download.pack_start(cell_uri, True)
     column_download.add_attribute(cell_uri, "markup", self.COL_TEXT)
     cell_progress = Gtk.CellRendererProgress()
     # TRANSLATORS: header of the progress download column
     column_progress = Gtk.TreeViewColumn(_("%"))
     column_progress.pack_start(cell_progress, True)
     column_progress.set_cell_data_func(cell_progress, self._data_progress,
                                        None)
     self.append_column(column_progress)
     self.append_column(column_download)
     self.set_tooltip_column(self.COL_URI)
def create_view(oStore, sHeading, iWidth):
    """Setup the TreeView for the results"""
    oView = Gtk.TreeView(oStore)
    oTextCol = Gtk.TreeViewColumn(sHeading)
    oTextCell = Gtk.CellRendererText()
    oTextCol.pack_start(oTextCell, True)
    oTextCol.add_attribute(oTextCell, 'text', 0)
    oValCol = Gtk.TreeViewColumn("Expected Number")
    oValProgCell = Gtk.CellRendererProgress()
    oValCol.pack_start(oValProgCell, True)
    oValCol.add_attribute(oValProgCell, 'value', 2)
    oValCol.add_attribute(oValProgCell, 'text', 1)
    # Take up space not reserved for progress bar column
    oTextCol.set_min_width(iWidth - 60)
    oTextCol.set_sort_column_id(0)
    oTextCol.set_expand(True)
    oValCol.set_sort_column_id(1)
    # limit space taken by progress bars
    oValCol.set_max_width(60)
    oValCol.set_expand(False)
    oView.append_column(oTextCol)
    oView.append_column(oValCol)
    # set suitable default sort
    oStore.set_sort_column_id(0, Gtk.SortType.ASCENDING)

    return oView
示例#7
0
    def __init__(self):
        Gtk.CellRenderer.__init__(self)
        # self.__gobject_init__()

        self.set_property('mode', Gtk.CellRendererMode.ACTIVATABLE)

        self.statuses = {
            DownloadStatus.RUNNING:
            GdkPixbuf.Pixbuf.new_from_file(
                path.getdatapath('media', 'download_start.png')),
            DownloadStatus.STOPPED:
            GdkPixbuf.Pixbuf.new_from_file(
                path.getdatapath('media', 'download_stop.png')),
            DownloadStatus.ERROR:
            GdkPixbuf.Pixbuf.new_from_file(
                path.getdatapath('media', 'error.png')),
            DownloadStatus.FINISHED:
            GdkPixbuf.Pixbuf.new_from_file(
                path.getdatapath('media', 'finished.png')),
            DownloadStatus.SEEDING:
            GdkPixbuf.Pixbuf.new_from_file(
                path.getdatapath('media', 'finished.png'))
        }

        self.types = {
            DownloadTypes.TORRENT: 'Torrent-Download',
            DownloadTypes.BASIC: 'Normaler Download',
            DownloadTypes.OTR_DECODE: 'OTR-Download mit Dekodieren',
            DownloadTypes.OTR_CUT: 'OTR-Download mit Schneiden'
        }

        self.cellrenderer_pixbuf = Gtk.CellRendererPixbuf()
        self.cellrenderer_filename = Gtk.CellRendererText()
        self.cellrenderer_info = Gtk.CellRendererText()
        self.cellrenderer_progress = Gtk.CellRendererProgress()
    def __init__(self):
        Gtk.Window.__init__(self)
        self.set_title("CellRendererProgress")
        self.set_default_size(200, 200)
        self.connect("destroy", Gtk.main_quit)

        self.liststore = Gtk.ListStore(str, int)
        self.liststore.append(["Downloading files", 0])
        self.liststore.append(["Parsing access logs", 0])
        self.liststore.append(["Compiling modules", 0])

        treeview = Gtk.TreeView()
        treeview.set_model(self.liststore)
        self.add(treeview)

        cellrenderertext = Gtk.CellRendererText()

        treeviewcolumn = Gtk.TreeViewColumn("Action")
        treeview.append_column(treeviewcolumn)
        treeviewcolumn.pack_start(cellrenderertext, False)
        treeviewcolumn.add_attribute(cellrenderertext, "text", 0)

        cellrendererprogress = Gtk.CellRendererProgress()

        treeviewcolumn = Gtk.TreeViewColumn("Status")
        treeview.append_column(treeviewcolumn)
        treeviewcolumn.pack_start(cellrendererprogress, True)
        treeviewcolumn.add_attribute(cellrendererprogress, "value", 1)

        GObject.timeout_add(250, self.on_pulse_progressbar)
    def __init__(self, queue):
        self.queue = queue
        self.scroll = sftp_utilities.get_object(
            'SFTPClient.notebook.page_stfp.scrolledwindow_transfer_statuses')
        self.treeview_transfer = sftp_utilities.get_object(
            'SFTPClient.notebook.page_stfp.treeview_transfer_statuses')
        self._tv_lock = threading.RLock()

        col_img = Gtk.CellRendererPixbuf()
        col = Gtk.TreeViewColumn('')
        col.pack_start(col_img, False)
        col.add_attribute(col_img, 'pixbuf', 0)
        self.treeview_transfer.append_column(col)
        gui_utilities.gtk_treeview_set_column_titles(
            self.treeview_transfer, ('Local File', 'Remote File', 'Status'),
            column_offset=1)

        col_bar = Gtk.TreeViewColumn('Progress')
        progress = Gtk.CellRendererProgress()
        col_bar.pack_start(progress, True)
        col_bar.add_attribute(progress, 'value', 4)
        col_bar.set_property('resizable', True)
        col_bar.set_min_width(125)
        self.treeview_transfer.append_column(col_bar)

        # todo: make this a CellRendererBytes
        gui_utilities.gtk_treeview_set_column_titles(
            self.treeview_transfer, ('Size', ),
            column_offset=5,
            renderers=(extras.CellRendererBytes(), ))
        self._tv_model = Gtk.TreeStore(GdkPixbuf.Pixbuf, str, str, str, int,
                                       int, object)
        self.treeview_transfer.connect('size-allocate',
                                       self.signal_tv_size_allocate)
        self.treeview_transfer.connect('button_press_event',
                                       self.signal_tv_button_pressed)

        self.treeview_transfer.set_model(self._tv_model)
        self.treeview_transfer.show_all()

        self.popup_menu = Gtk.Menu.new()

        self.menu_item_paused = Gtk.CheckMenuItem.new_with_label('Paused')
        menu_item = self.menu_item_paused
        menu_item.connect('toggled', self.signal_menu_toggled_paused)
        self.popup_menu.append(menu_item)

        self.menu_item_cancel = Gtk.MenuItem.new_with_label('Cancel')
        menu_item = self.menu_item_cancel
        menu_item.connect('activate', self.signal_menu_activate_cancel)
        self.popup_menu.append(menu_item)

        menu_item = Gtk.SeparatorMenuItem()
        self.popup_menu.append(menu_item)

        menu_item = Gtk.MenuItem.new_with_label('Clear')
        menu_item.connect('activate', self.signal_menu_activate_clear)
        self.popup_menu.append(menu_item)
        self.popup_menu.show_all()
示例#10
0
        def load(self, persp):
            self.persp = persp
            self.box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

            self.tv = Gtk.TreeView()

            renderer = Gtk.CellRendererText()
            column = Gtk.TreeViewColumn(_("Title"), renderer, text=1)
            self.tv.append_column(column)

            renderer = Gtk.CellRendererText()
            column = Gtk.TreeViewColumn(_("Source"), renderer, text=2)
            self.tv.append_column(column)

            renderer = Gtk.CellRendererProgress()
            column = Gtk.TreeViewColumn(_("Progress"), renderer, text=3, value=4)
            column.set_expand(True)
            self.tv.append_column(column)

            renderer = Gtk.CellRendererPixbuf()
            column = Gtk.TreeViewColumn(_("Reset"), renderer, icon_name=5)
            column.set_name(COLUMN_ROW_RESET)
            self.tv.append_column(column)

            self.tv.connect("row-activated", self.row_activated)

            def on_progress_updated(solving_progress, key, progress):
                for i, row in enumerate(self.store):
                    if row[0] == key:
                        progress_ratio_string, percent, reset_icon = self._compute_progress_info(progress)
                        treeiter = self.store.get_iter(Gtk.TreePath(i))
                        self.store[treeiter][3] = progress_ratio_string
                        self.store[treeiter][4] = percent
                        self.store[treeiter][5] = reset_icon
            solving_progress.connect("progress_updated", on_progress_updated)

            self.store = Gtk.ListStore(str, str, str, str, int, str)

            @asyncio.coroutine
            def coro():
                for file_name, title, author in entries:
                    progress = solving_progress.get(file_name)
                    progress_ratio_string, percent, reset_icon = self._compute_progress_info(progress)
                    self.store.append([file_name, title, author, progress_ratio_string, percent, reset_icon])
                    yield from asyncio.sleep(0)
            create_task(coro())

            self.tv.set_model(self.store)
            self.tv.get_selection().set_mode(Gtk.SelectionMode.BROWSE)
            self.tv.set_cursor(conf.get("learncombo%s" % learn_category_id))

            scrollwin = Gtk.ScrolledWindow()
            scrollwin.add(self.tv)
            scrollwin.show_all()

            self.box.pack_start(scrollwin, True, True, 0)
            self.box.show_all()

            return self.box
示例#11
0
 def _make_view(self, model, title, showProgress, vbox):
     view = Gtk.TreeView(model)
     view.append_column(Gtk.TreeViewColumn(
         title, Gtk.CellRendererText(), text=0))
     if showProgress:
         view.append_column(Gtk.TreeViewColumn(
             "Progress", Gtk.CellRendererProgress(), value=1))
     vbox.pack_start(view, True, True, 0)
示例#12
0
 def treeviewcolumn_progress(self, tree, title, col):
     cell = Gtk.CellRendererProgress()
     column = Gtk.TreeViewColumn()
     tree.append_column(column)
     column.set_title(title)
     column.pack_start(cell, True)
     column.add_attribute(cell, 'value', col)
     column.set_resizable(False)
示例#13
0
    def load(self, persp):
        self.persp = persp
        self.box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

        self.tv = Gtk.TreeView()

        renderer = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn(_("Title"), renderer, text=1)
        self.tv.append_column(column)

        renderer = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn(_("Source"), renderer, text=2)
        self.tv.append_column(column)

        renderer = Gtk.CellRendererProgress()
        column = Gtk.TreeViewColumn(_("Progress"), renderer, text=3, value=4)
        self.tv.append_column(column)

        self.tv.connect("row-activated", self.row_activated)

        def on_progress_updated(solving_progress, key, progress):
            for i, row in enumerate(self.store):
                if row[0] == key:
                    solved = progress.count(1)
                    percent = 0 if not solved else round(
                        (solved * 100.) / len(progress))
                    treeiter = self.store.get_iter(Gtk.TreePath(i))
                    self.store[treeiter][3] = "%s / %s" % (solved,
                                                           len(progress))
                    self.store[treeiter][4] = percent

        lessons_solving_progress.connect("progress_updated",
                                         on_progress_updated)

        self.store = Gtk.ListStore(str, str, str, str, int)

        for file_name, title, author in LESSONS:
            progress = lessons_solving_progress.get(file_name)
            solved = progress.count(1)
            percent = 0 if not solved else round(
                (solved * 100.) / len(progress))
            self.store.append([
                file_name, title, author,
                "%s / %s" % (solved, len(progress)), percent
            ])

        self.tv.set_model(self.store)
        self.tv.get_selection().set_mode(Gtk.SelectionMode.BROWSE)
        self.tv.set_cursor(0)

        scrollwin = Gtk.ScrolledWindow()
        scrollwin.add(self.tv)
        scrollwin.show_all()

        self.box.pack_start(scrollwin, True, True, 0)
        self.box.show_all()

        return self.box
示例#14
0
    def activate(self):
        if self.first_run:
            self.init_layout()
            self.first_run = False

        learn_home = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

        box = Gtk.Box()

        self.tv = Gtk.TreeView()

        color = Gdk.RGBA()
        color.parse("lightblue")

        for i, col in enumerate((_("lichess"), _("wtharvey"), _("yacpdb"), _("lessons"))):
            renderer = Gtk.CellRendererProgress()
            renderer.set_orientation(Gtk.Orientation.VERTICAL)
            renderer.props.height = 100
            renderer.props.inverted = True
            renderer.props.cell_background_rgba = color
            column = Gtk.TreeViewColumn(col, renderer, text=i * 2, value=i * 2 + 1)
            self.tv.append_column(column)

        self.store = Gtk.ListStore(str, int, str, int, str, int, str, int)

        self.update_progress(None, None, None)

        self.tv.set_model(self.store)
        self.tv.get_selection().set_mode(Gtk.SelectionMode.NONE)

        puzzles_solving_progress.connect("progress_updated", self.update_progress)
        lessons_solving_progress.connect("progress_updated", self.update_progress)

        box.pack_start(self.tv, False, False, 6)

        label = Gtk.Label(xpad=6, xalign=0)
        label.set_markup("<b>%s</b>" % _("Progress"))
        learn_home.pack_start(label, False, False, 6)

        learn_home.pack_start(box, False, False, 0)

        learn_home.show_all()

        if not self.first_run:
            self.notebooks["learnhome"].remove_page(-1)
        self.notebooks["learnhome"].append_page(learn_home)

        self.panels = [panel.Sidepanel().load(self) for panel in self.sidePanels]

        for panel, instance in zip(self.sidePanels, self.panels):
            if not self.first_run:
                self.notebooks[panel.__name__].remove_page(-1)
            self.notebooks[panel.__name__].append_page(instance)
            instance.show()

        perspective_manager.activate_perspective("learn")
示例#15
0
 def __init__(self, view, attrs):
     super(ProgressBar, self).__init__()
     self.view = view
     self.attrs = attrs
     self.renderer = Gtk.CellRendererProgress()
     orientation, inverted = self.orientations.get(
         self.attrs.get('orientation', 'left_to_right'))
     self.renderer.set_orientation(orientation)
     self.renderer.set_property('inverted', inverted)
     self.renderer.set_property('yalign', 0)
示例#16
0
    def __init__(self, wtree, config):
        MainWindowElement.__init__(self, wtree, config, "chat")

        qst_add, qst_rem, qst_edit, qst_list = self._getw(
            "qst_add", "qst_remove", "qst_edit", "qst_list")

        self._store = Gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING,
                                    gobject.TYPE_STRING, gobject.TYPE_FLOAT,
                                    gobject.TYPE_STRING, gobject.TYPE_BOOLEAN)
        qst_list.set_model(self._store)
        qst_list.connect("row-activated", self._send_qst)

        def render_remaining(col, rend, model, iter):
            id, e = model.get(iter, 0, 5)
            try:
                q, c = self._qsts[id]
            except KeyError:
                e = None

            if not e:
                s = ""
            elif c > 90:
                s = "%i mins" % (c / 60)
            else:
                s = "%i sec" % c

            rend.set_property("text", s)

        typ = Gtk.TreeViewColumn("Type", Gtk.CellRendererText(), text=1)
        frq = Gtk.TreeViewColumn("Freq", Gtk.CellRendererText(), text=2)

        r = Gtk.CellRendererProgress()
        cnt = Gtk.TreeViewColumn("Remaining", r, value=3)
        cnt.set_cell_data_func(r, render_remaining)

        msg = Gtk.TreeViewColumn("Content", Gtk.CellRendererText(), text=4)

        r = Gtk.CellRendererToggle()
        r.connect("toggled", self._toggle_qst, self._store, 5, 0, 2)
        enb = Gtk.TreeViewColumn("On", r, active=5)

        qst_list.append_column(typ)
        qst_list.append_column(frq)
        qst_list.append_column(cnt)
        qst_list.append_column(enb)
        qst_list.append_column(msg)

        self._qsts = {}
        self.reconfigure()

        qst_add.connect("clicked", self._add_qst, qst_list)
        qst_rem.connect("clicked", self._rem_qst, qst_list)
        qst_edit.connect("clicked", self._edit_qst, qst_list)

        gobject.timeout_add(1000, self._tick)
示例#17
0
    def __init__(self, database):
        """ log box """
        builder = Gtk.Builder()  # glade
        builder.add_from_file(
            os.path.dirname(os.path.abspath(__file__)) +
            "/../assets/ui/logger.glade")

        self.database = database

        # log list
        self.notebook = builder.get_object("log-notebook")
        self.log_box = builder.get_object("log-box")
        self.scrolled = builder.get_object("scrolled")

        self.log_liststore = Gtk.ListStore(int, int, str, str, int, str, str,
                                           int, str, int)
        self.log_tree = Gtk.TreeView(model=self.log_liststore)
        self.id = 0

        self.extensions = Extensions()

        for i, column_title in enumerate(
            ["#", "Status", "Start time", "End time", "Pid", "Target",
             "Task"]):
            if i == 1:

                renderer = Gtk.CellRendererProgress()

                column = Gtk.TreeViewColumn(column_title, renderer, value=1)
                column.set_min_width(100)
                column.add_attribute(renderer, "pulse",
                                     7)  #renderer.text = " "
            else:
                renderer = Gtk.CellRendererText()
                column = Gtk.TreeViewColumn(column_title, renderer, text=i)

            self.log_tree.append_column(column)

        # get logs from the database
        self.refresh(self.database)
        self.log_tree.show()

        # pulse progress bar every second
        GObject.timeout_add(100, self._pulse_progressbars)

        # connect events
        self.log_tree.connect("button_press_event", self.mouse_click)
        self.log_tree.connect("row-activated", self.on_row_activated)
        self.log_tree.connect('size-allocate', self._scroll)

        # multi selection
        selection = self.log_tree.get_selection()
        selection.set_mode(Gtk.SelectionMode.MULTIPLE)

        self.log_box.add(self.log_tree)
示例#18
0
    def __init__(self):
        super(ProgressList, self).__init__()

        self.xid2iter = dict()
        self.piter = None
        self.props.show_expanders = True
        self.get_selection().props.mode = Gtk.SelectionMode.SINGLE

        self.col_file = Gtk.TreeViewColumn(_("File"))
        self.col_file.props.sort_column_id = 0
        self.col_file.props.sort_indicator = True

        self.cr_file = Gtk.CellRendererText()
        iconrenderer = Gtk.CellRendererPixbuf()
        textrenderer = Gtk.CellRendererText()
        progressrenderer = Gtk.CellRendererProgress()

        self.col_file.pack_start(iconrenderer, False)
        self.col_file.pack_start(self.cr_file, False)
        self.col_file.set_cell_data_func(self.cr_file, self.on_filename_data)
        self.col_file.set_cell_data_func(iconrenderer, self.on_icon_data)

        self.col_direction = Gtk.TreeViewColumn("<->", textrenderer)
        self.col_direction.set_cell_data_func(textrenderer,
                                              self.on_direction_data)

        self.col_status = Gtk.TreeViewColumn(_("Status"), textrenderer)
        self.col_status.set_cell_data_func(textrenderer, self.on_status_data)

        self.col_progress = Gtk.TreeViewColumn(_("Progress"), progressrenderer)
        self.col_progress.set_cell_data_func(progressrenderer,
                                             self.on_progress_data)

        self.col_transferred = Gtk.TreeViewColumn(_("Transferred bytes"),
                                                  textrenderer)
        self.col_transferred.set_cell_data_func(textrenderer,
                                                self.on_transferred_data)

        self.col_transfer_rate = Gtk.TreeViewColumn(_("Transfer rate"),
                                                    textrenderer)
        self.col_transfer_rate.set_cell_data_func(textrenderer,
                                                  self.on_transfer_rate_data)

        self.col_time = Gtk.TreeViewColumn(_("Time"), textrenderer)
        self.col_time.set_cell_data_func(textrenderer, self.on_time_data)

        self.append_column(self.col_file)
        self.append_column(self.col_direction)
        self.append_column(self.col_status)
        self.append_column(self.col_progress)
        self.append_column(self.col_transferred)
        self.append_column(self.col_transfer_rate)
        self.append_column(self.col_time)

        self.props.model = Gtk.TreeStore(object)
示例#19
0
    def __init__(self):
        Gtk.TreeView.__init__(self)

        self.get_selection().set_mode(0)
        # downview.set_rubber_banding(True)
        self.set_property('headers-visible', False)

        column = Gtk.TreeViewColumn('id')
        renderer = Gtk.CellRendererText()
        column.pack_start(renderer, False)
        column.add_attribute(renderer, 'text', 0)
        self.append_column(column)

        column = Gtk.TreeViewColumn('status')
        renderer = Gtk.CellRendererPixbuf()
        column.pack_start(renderer, False)
        column.set_cell_data_func(renderer,
                                  status_cell_data_func,
                                  func_data=None)
        self.append_column(column)

        column = Gtk.TreeViewColumn('progress')
        column.set_fixed_width(120)
        renderer = Gtk.CellRendererProgress()
        column.pack_start(renderer, False)
        column.add_attribute(renderer, 'value', 2)
        self.append_column(column)

        column = Gtk.TreeViewColumn('size')
        renderer = Gtk.CellRendererText()
        column.pack_start(renderer, False)
        column.set_cell_data_func(renderer,
                                  status_size_data_func,
                                  func_data=None)
        # column.add_attribute(renderer, 'text', 3)
        self.append_column(column)

        column = Gtk.TreeViewColumn('host')
        renderer = Gtk.CellRendererText()
        column.pack_start(renderer, False)
        column.add_attribute(renderer, 'text', 5)
        self.append_column(column)

        column = Gtk.TreeViewColumn('err')
        renderer = Gtk.CellRendererText()
        column.pack_start(renderer, False)
        column.add_attribute(renderer, 'text', 6)
        self.append_column(column)

        column = Gtk.TreeViewColumn('set')
        renderer = Gtk.CellRendererText()
        column.pack_start(renderer, True)
        column.add_attribute(renderer, 'text', 4)
        self.append_column(column)
示例#20
0
    def __init__(self, hide_nonblocking=False):
        """
        :param bool hide_nonblocking: if True, tasks that do not block
           the exit dialog are not displayed
        """

        self.box = Gtk.VBox()
        self.hide_nonblocking = hide_nonblocking
        scroll = Gtk.ScrolledWindow()
        self.store = Gtk.ListStore(int, str, str, str, str, bool)
        self.view = Gtk.TreeView(self.store)
        self.view.set_headers_visible(False)
        self.view.get_style_context().add_class("task_view_tree")
        scroll.add(self.view)
        self.box.pack_start(scroll, True, True, 0)

        # Initialize the tree view

        self.close_col = Gtk.TreeViewColumn("Close")
        cell = Gtk.CellRendererPixbuf()
        self.close_col.pack_end(cell, False)
        self.close_col.add_attribute(cell, "icon_name", COL_CANCEL_PIXBUF)
        self.view.append_column(self.close_col)

        self.progress = Gtk.CellRendererProgress()
        col = Gtk.TreeViewColumn("Progress",
                                 self.progress,
                                 value=COL_PROGRESS,
                                 text=COL_PROGRESS_TEXT)
        col.set_cell_data_func(self.progress, self._set_progress)
        col.set_expand(True)
        self.view.append_column(col)

        self.playpause_col = Gtk.TreeViewColumn("Play Pause")
        cell = Gtk.CellRendererPixbuf()
        self.playpause_col.pack_end(cell, False)
        self.playpause_col.add_attribute(cell, "icon_name",
                                         COL_PLAYPAUSE_PIXBUF)
        self.view.append_column(self.playpause_col)

        # Connect to a click on the tree view
        self.view.connect("button_press_event", self.__on_click)

        self.pulse = 0
        self.timeout = None
        self.on_empty = None

        self.box.connect("destroy", self.__destroy)

        # Initial fill: we need to do this, since the widget will not get
        # notifications for tasks that have started before it is created

        self.start_monitoring()
        self.refresh()
示例#21
0
  def build(self):
    # Check if we can run.
    if not (len(self.app.services) and len(self.app.outputs)):
      dialog = Gtk.MessageDialog(self.app.mainWindow, 0, Gtk.MessageType.INFO,
        Gtk.ButtonsType.OK, "Can not run backups")
      dialog.format_secondary_text(
          "You have to configure at least one service and one output before running the backups.")
      dialog.run()

      dialog.destroy()

      return False

    # Start running.
    self.mainBox = mainBox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=10)

    mainBox.add(Gtk.Label('Running Backups...'))
    
    self.startButton = startButton = Gtk.Button(label='Start')
    startButton.connect('clicked', lambda button: self.on_start())
    mainBox.add(startButton)
    
    self.runner = runner = self.app.getRunner()
    handler = runner.progressHandler
    
    # Set up the backup list with progressbars
    
    liststore = Gtk.ListStore(str, float)
    first_store_item = None
    
    for service in runner.services:
      list_iter = liststore.append([service.getPrettyId(), 0.0])
      if not first_store_item: first_store_item = list_iter
      
    treeview = Gtk.TreeView(model=liststore)
    mainBox.add(treeview)
      
    renderer_text = Gtk.CellRendererText()
    column_text = Gtk.TreeViewColumn("Text", renderer_text, text=0)
    treeview.append_column(column_text)
    
    renderer_progress = Gtk.CellRendererProgress()
    column_progress = Gtk.TreeViewColumn("Progress", renderer_progress,
            value=1)
    treeview.append_column(column_progress)
    
    handler.screen = self
    handler.app = self.app
    handler.liststore = liststore
    handler.list_iter = first_store_item
    handler.gui_finished_callback = lambda: self.on_finished()

    return mainBox
示例#22
0
    def make_view( self, model ):
    
        """ Form a view for the Tree Model """
        self.view = Gtk.TreeView( model )
        #self.view.set_reorderable(True)
        #self.toggle_dl    = Gtk.CellRendererToggle()
        #self.toggle_dl.set_property('activatable', True)

        #self.cell01    = Gtk.CellRendererText()
        self.renderer0 = Gtk.CellRendererText()
        self.renderer1 = Gtk.CellRendererText()
        self.renderer2 = Gtk.CellRendererText()
        self.renderer3 = Gtk.CellRendererText()
        self.renderer4 = Gtk.CellRendererProgress()
        #self.renderer5 = Gtk.CellRendererText()

        #self.toggle_dl.connect( 'toggled', self.toggle_dl_cb, model )
        
        #self.column0.pack_start(self.toggle_dl, False)
        #self.column0.pack_start(self.renderer1, True)        

        #self.column0.add_attribute(self.toggle_dl, 'active', False)
        #self.column0.add_attribute(self.toggle_dl, 'visible', 1)
        #self.column0.add_attribute(self.cell01, 'text', 2)
        self.column0 = Gtk.TreeViewColumn("Nom", self.renderer1, text=1 )
        self.column1 = Gtk.TreeViewColumn("Date", self.renderer1, text=2 )
        self.column2 = Gtk.TreeViewColumn("Durée", self.renderer1, text=3 )
        self.column3 = Gtk.TreeViewColumn("Titre", self.renderer2, text=4 )
        self.column4 = Gtk.TreeViewColumn("Progression", self.renderer4, text=5 , value=6)
        #self.column5 = Gtk.TreeViewColumn("tooltip", self.renderer2, text=7 )
        
        self.view.append_column( self.column0 )
        self.view.append_column( self.column1 )
        self.view.append_column( self.column2 )
        self.view.append_column( self.column3 )
        self.view.append_column( self.column4 )
        #self.view.append_column( self.column5 )

        self.column0.set_resizable(True)
        self.column1.set_resizable(True)
        self.column2.set_resizable(True)
        self.column3.set_resizable(True)
        self.column4.set_resizable(True)
        #self.column5.set_resizable(True)
        #self.view.connect("row-activated", self.row_click, model)

        #self.view.expand_all()
        self.view.connect("row-activated", self.row_download_click)
        self.view.set_tooltip_column(7)
        
        self.view.set_enable_search(False)
        return self.view
示例#23
0
  def _add_column(self):
    renderer = Gtk.CellRendererProgress()

    component.get("TorrentView").add_column(
      header=STATUS_NAME,
      render=renderer,
      col_types=str,
      hidden=False,
      position=None,
      status_field=[STATUS_MESSAGE],
      function=self._render_cell,
      sortid=0,
      column_type="progress",
    )
示例#24
0
    def __init__(self, icons):
        Gtk.ScrolledWindow.__init__(self)
        BasePane.__init__(self)
        self.state = DisplayState()
        self.pane_name = _("Progress")

        self.tv = Gtk.TreeView()
        # customization
        self.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.add(self.tv)
        self.tv.set_headers_visible(False)
        self.tv.connect("button-press-event", self._on_button_pressed)
        # icon
        self.icons = icons
        tp = Gtk.CellRendererPixbuf()
        tp.set_property("xpad", self.CANCEL_XPAD)
        tp.set_property("ypad", self.CANCEL_YPAD)
        column = Gtk.TreeViewColumn("Icon", tp, pixbuf=PendingStore.COL_ICON)
        self.tv.append_column(column)
        # name
        tr = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("Name", tr, markup=PendingStore.COL_STATUS)
        column.set_min_width(200)
        column.set_expand(True)
        self.tv.append_column(column)
        # progress
        tp = Gtk.CellRendererProgress()
        tp.set_property("xpad", self.CANCEL_XPAD)
        tp.set_property("ypad", self.CANCEL_YPAD)
        tp.set_property("text", "")
        column = Gtk.TreeViewColumn("Progress",
                                    tp,
                                    value=PendingStore.COL_PROGRESS,
                                    pulse=PendingStore.COL_PULSE)
        column.set_min_width(200)
        self.tv.append_column(column)
        # cancel icon
        tpix = Gtk.CellRendererPixbuf()
        column = Gtk.TreeViewColumn("Cancel",
                                    tpix,
                                    stock_id=PendingStore.COL_CANCEL)
        self.tv.append_column(column)
        # fake columns that eats the extra space at the end
        tt = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("Cancel", tt)
        self.tv.append_column(column)
        # add it
        store = PendingStore(icons)
        self.tv.set_model(store)
示例#25
0
    def _createList(self):
        #url,title,progress, downloadtype
        self.fileStore = Gtk.ListStore(str, str, float, str, str)
        theList = Gtk.TreeView(model=self.fileStore)
        theList.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE)
        theList.set_grid_lines(Gtk.TreeViewGridLines.BOTH)
        for n, name in enumerate(
            [_t("COL1"), _t("COL2"),
             _t("COL3"), _t("COL4")]):
            if n < 2:
                cell = Gtk.CellRendererText()
                column = Gtk.TreeViewColumn(name, cell, text=n)
                column.set_resizable(False)  #Since it does not work
                if n == 1:
                    column.set_max_width(300)
                column.set_expand(True)
            elif n == 2:
                cell = Gtk.CellRendererProgress()
                column = Gtk.TreeViewColumn(name, cell, value=n)
                column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
                column.set_alignment(0.5)
            else:
                cell = Gtk.CellRendererText()
                cell.set_property('xalign', 0.5)
                cell.set_property('cell-background', 'lightblue')
                cell.set_property('foreground', 'darkgreen')
                column = Gtk.TreeViewColumn(name, cell, text=n)
                column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
                column.set_max_width(40)
                column.set_alignment(0.5)
            theList.append_column(column)

        #append an invisible column
        cell = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("fullurl", cell, text=4)
        column.set_visible(False)
        theList.append_column(column)

        theList.set_tooltip_text(_t("TIP_LIST"))
        self.selection = theList.get_selection()
        self.selection.connect("changed", self.on_selected)
        theList.connect("button_press_event", self.on_contextMenu)
        theList.connect('key_press_event', self.on_List_key_press)
        theList.connect("row-activated", self.on_row_doubleClicked)
        swH = Gtk.ScrolledWindow()
        swH.add(theList)
        swH.connect("drag-data-received", self.on_drag_data_received)
        return swH
示例#26
0
    def __init__(self, model):
        """
        L{TaskListView} initializing.
        @arg model:The interface of the tree view.
        @type model:L{TaskListModel}
        """
        Gtk.TreeView.__init__(self, model)

        # Set up columns
        column = Gtk.TreeViewColumn(_('Tasks'))
        column.set_expand(True)
        column.set_resizable(True)
        self.append_column(column)

        renderer = Gtk.CellRendererPixbuf()
        column.pack_start(renderer, False)
        column.set_cell_data_func(renderer, self._status_data_func)

        renderer = Gtk.CellRendererText()
        column.pack_start(renderer, True)
        column.set_cell_data_func(renderer, self._desc_data_func)

        column = Gtk.TreeViewColumn(_('Progress'))
        column.set_expand(True)
        column.set_resizable(True)
        self.append_column(column)

        renderer = Gtk.CellRendererProgress()
        column.pack_start(renderer, True)
        column.set_cell_data_func(renderer, self._progress_data_func)

        column = Gtk.TreeViewColumn(_('Speed'))
        column.set_resizable(True)
        self.append_column(column)

        renderer = Gtk.CellRendererText()
        column.pack_start(renderer, True)
        column.set_cell_data_func(renderer, self._speed_data_func)

        column = Gtk.TreeViewColumn(_('Connections'))
        column.set_resizable(True)
        self.append_column(column)

        renderer = Gtk.CellRendererText()
        column.pack_start(renderer, True)
        column.set_cell_data_func(renderer, self._connection_data_func)
示例#27
0
 def _init_tree_view(self):
     tree_view = self._get_tree_view()
     column = Gtk.TreeViewColumn(_("Description"),
                                 Gtk.CellRendererText(),
                                 text=1)
     column.set_resizable(True)
     tree_view.append_column(column)
     tree_view.append_column(
         Gtk.TreeViewColumn(_("Usage"),
                            Gtk.CellRendererProgress(),
                            value=2,
                            text=3))
     tree_view.append_column(
         Gtk.TreeViewColumn(_("Active"), Gtk.CellRendererToggle(),
                            active=4))
     # add filler column
     tree_view.append_column(Gtk.TreeViewColumn())
     tree_view.set_model(self._equipment_store)
示例#28
0
    def __init__(self, **kw):
        Gtk.Window.__init__(self, **kw)
        self.clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)

        # Setting up the self.grid in which the elements are to be positionned
        self.grid = Gtk.Grid()
        self.grid.set_column_homogeneous(True)
        self.grid.set_row_homogeneous(True)
        self.add(self.grid)
        self.listViewComics = Gtk.TreeView(self.lista_comics)
        renderer_text = Gtk.CellRendererText()
        renderer_progress = Gtk.CellRendererProgress()
        column = Gtk.TreeViewColumn('Nombre Archivo', renderer_text, text=0)
        column.set_min_width(200)
        self.listViewComics.append_column(column)
        column = Gtk.TreeViewColumn('Total Páginas', renderer_text, text=1)
        column.set_min_width(30)
        self.listViewComics.append_column(column)
        column = Gtk.TreeViewColumn('Porcentaje_Descargado',
                                    renderer_progress,
                                    value=2)
        column.set_min_width(150)
        self.listViewComics.append_column(column)
        self.grid.attach(self.listViewComics, 0, 0, 5, 15)
        self.botonProcesar = Gtk.Button.new_with_label("Procesar")
        self.botonProcesar.connect("clicked", self.procesar)
        self.grid.attach_next_to(self.botonProcesar, self.listViewComics, 3, 1,
                                 1)
        self.botonAgregar = Gtk.Button.new_with_label("Agregar")
        self.botonAgregar.connect("clicked", self.agregar)
        self.grid.attach_next_to(self.botonAgregar, self.botonProcesar, 1, 1,
                                 1)
        self.botonDetener = Gtk.Button.new_with_label("Detener")
        self.grid.attach_next_to(self.botonDetener, self.botonAgregar, 1, 1, 1)
        self.botonDetener.connect("clicked", self.detener)
        self.botonLimpiarTodo = Gtk.Button.new_with_label("Limpiar Todo")
        self.botonLimpiarTodo.connect("clicked", self.limpiar_todo)
        self.grid.attach_next_to(self.botonLimpiarTodo, self.botonDetener, 1,
                                 1, 1)
        self.botonBorrar = Gtk.Button.new_with_label("Borra")
        self.grid.attach_next_to(self.botonBorrar, self.botonLimpiarTodo, 1, 1,
                                 1)
示例#29
0
    def __init__(self, navigation):
        self.navigation = navigation
        CommonTreeControl.__init__(self, None)
        self.set_reorderable(False)
        self.set_headers_visible(True)

        self.tree_menu = Popup()
        """column config"""
        column = Gtk.TreeViewColumn("Name",
                                    Gtk.CellRendererText(),
                                    text=self.text[0])
        column.set_resizable(True)
        self.append_column(column)
        """column config"""
        column = Gtk.TreeViewColumn("Progress",
                                    Gtk.CellRendererProgress(),
                                    text=self.persent[0],
                                    value=self.persent[0])
        column.set_resizable(True)
        self.append_column(column)
        """column config"""
        column = Gtk.TreeViewColumn("Size",
                                    Gtk.CellRendererText(),
                                    text=self.size[0])
        column.set_resizable(True)
        self.append_column(column)
        """status"""
        column = Gtk.TreeViewColumn("Status",
                                    Gtk.CellRendererText(),
                                    text=self.status[0])
        column.set_resizable(True)
        self.append_column(column)
        """column config"""
        column = Gtk.TreeViewColumn("Path",
                                    Gtk.CellRendererText(),
                                    text=self.save_to[0])
        column.set_resizable(True)
        column.set_expand(True)
        self.append_column(column)

        self.set_type_plain()
示例#30
0
    def __init__(self, title, parent, runner):
        super().__init__(title, parent, 0)
        self.add_buttons(_("_OK"), Gtk.ButtonsType.OK)
        self.runner = runner
        self.runner_info = {}
        self.installing = {}
        self.set_default_size(640, 480)

        self.renderer_progress = Gtk.CellRendererProgress()

        label = Gtk.Label.new(_("Waiting for response from %s") % (settings.SITE_URL))
        self.vbox.pack_start(label, False, False, 18)

        spinner = Gtk.Spinner(visible=True)
        spinner.start()
        self.vbox.pack_start(spinner, False, False, 18)

        self.show_all()

        self.runner_store = Gtk.ListStore(str, str, str, bool, int, str)
        jobs.AsyncCall(api.get_runners, self.display_all_versions, self.runner)