Beispiel #1
0
    def __setup_toolbar(self):
        if self.app.config.get('general', 'use_internal_icons'):
            toolbar_buttons = [
                ('decodeandcut', 'decodeandcut.png',
                 "Dekodieren und Schneiden", Action.DECODEANDCUT),
                ('decode', 'decode.png', 'Dekodieren', Action.DECODE),
                ('delete', 'bin.png', "In den Müll verschieben",
                 Action.DELETE),
                ('archive', 'archive.png', "Archivieren", Action.ARCHIVE),
                ('cut', 'cut.png', "Schneiden", Action.CUT),
                ('restore', 'restore.png', "Wiederherstellen", Action.RESTORE),
                ('rename', 'rename.png', "Umbenennen", Action.RENAME),
                ('new_folder', 'new_folder.png', "Neuer Ordner",
                 Action.NEW_FOLDER),
                ('real_delete', 'delete.png', "Löschen", Action.REAL_DELETE)
            ]
        else:
            toolbar_buttons = [
                ('decodeandcut', ['dialog-password', 'edit-cut-symbolic'],
                 "Dekodieren und Schneiden", Action.DECODEANDCUT),
                ('decode', 'dialog-password', 'Dekodieren', Action.DECODE),
                ('delete', 'user-trash', "In den Müll verschieben",
                 Action.DELETE),
                ('archive', 'system-file-manager', "Archivieren",
                 Action.ARCHIVE),
                ('cut', 'edit-cut', "Schneiden", Action.CUT),
                ('restore', 'view-refresh', "Wiederherstellen",
                 Action.RESTORE),
                ('rename', 'edit-rename', "Umbenennen", Action.RENAME),
                ('new_folder', 'folder-new', "Neuer Ordner",
                 Action.NEW_FOLDER),
                ('real_delete', 'edit-delete', "Löschen", Action.REAL_DELETE),
            ]

        self.__toolbar_buttons = {}
        for key, image_name, text, action in toolbar_buttons:
            if self.app.config.get('general', 'use_internal_icons'):
                image = Gtk.Image.new_from_file(
                    path.get_image_path(image_name))
            else:
                # Gtk.IconSize.LARGE_TOOLBAR
                if type(image_name) == type(
                    []):  # It's a list so we create an emblemed icon
                    try:
                        image = Gtk.Image.new_from_gicon(
                            Gio.EmblemedIcon.new(
                                Gio.ThemedIcon.new(image_name[0]),
                                Gio.Emblem.new(
                                    Gio.ThemedIcon.new(image_name[1]))),
                            self.app.config.get('general', 'icon_size'))
                    except:
                        pass
                else:
                    try:
                        image = Gtk.Image.new_from_pixbuf(
                            Gtk.IconTheme.get_default().load_icon(
                                image_name,
                                self.app.config.get('general', 'icon_size'),
                                0))
                    except:
                        pass

            image.show()

            if key == "cut" or key == "decodeandcut":
                self.__toolbar_buttons[key] = Gtk.MenuToolButton.new(
                    image, text)
                self.__toolbar_buttons[key].set_menu(
                    self.__get_cut_menu(action))
            else:
                self.__toolbar_buttons[key] = Gtk.ToolButton.new(image, text)

            self.__toolbar_buttons[key].connect("clicked",
                                                self._on_toolbutton_clicked,
                                                action)
            self.__toolbar_buttons[key].show()

        self.__sets_of_toolbars = {
            # ~ Section.PLANNING: ['plan_add', 'plan_edit', 'plan_remove', 'plan_search'],
            # ~ Section.DOWNLOAD: ['download_add_link', 'download_start', 'download_stop','download_remove'],
            Section.OTRKEY:
            ['decodeandcut', 'decode', 'delete', 'real_delete'],
            Section.VIDEO_UNCUT: ['cut', 'delete', 'real_delete', 'archive'],
            Section.VIDEO_CUT:
            ['archive', 'delete', 'real_delete', 'cut', 'rename'],
            Section.ARCHIVE: ['delete', 'real_delete', 'rename', 'new_folder'],
            Section.TRASH: ['real_delete', 'restore'],
            Section.TRASH_AVI: ['real_delete', 'restore'],
            Section.TRASH_OTRKEY: ['real_delete', 'restore']
        }
        if self.app.config.get('general', 'hide_archive_buttons'):
            for section, buttons in self.__sets_of_toolbars.items():
                if 'archive' in buttons:
                    buttons.remove('archive')
                    self.__sets_of_toolbars[section] = buttons

        # create sets of toolbuttons
        for section, button_names in self.__sets_of_toolbars.items():
            toolbar_buttons = []
            for button_name in button_names:
                toolbar_buttons.append(self.__toolbar_buttons[button_name])

            self.__sets_of_toolbars[section] = toolbar_buttons

        # toolbar_search
        self.search_tool_item = EntrySearchToolItem("Durchsuchen")
        self.builder.get_object('toolbar_search').insert(
            self.search_tool_item, -1)

        self.search_tool_item.connect('search',
                                      lambda w, search: self.do_search(search))
        self.search_tool_item.connect('clear', self.on_search_clear)
    def __setup_toolbar(self):

        toolbar_buttons = [
            ('decodeandcut', 'decodeandcut.png', "Dekodieren und Schneiden",
             Action.DECODEANDCUT),
            ('decode', 'decode.png', 'Dekodieren', Action.DECODE),
            ('delete', 'bin.png', "In den Müll verschieben", Action.DELETE),
            ('archive', 'archive.png', "Archivieren", Action.ARCHIVE),
            ('cut', 'cut.png', "Schneiden", Action.CUT),
            ('restore', 'restore.png', "Wiederherstellen", Action.RESTORE),
            ('rename', 'rename.png', "Umbenennen", Action.RENAME),
            ('new_folder', 'new_folder.png', "Neuer Ordner",
             Action.NEW_FOLDER),
            ('real_delete', 'delete.png', "Löschen", Action.REAL_DELETE),
            ('plan_add', 'film_add.png', "Hinzufügen", Action.PLAN_ADD),
            ('plan_remove', 'film_delete.png', "Löschen", Action.PLAN_REMOVE),
            ('plan_edit', 'film_edit.png', "Bearbeiten", Action.PLAN_EDIT),
            ('plan_search', 'film_search.png', "Auf Mirror suchen",
             Action.PLAN_SEARCH),
            ('download_add', 'add_download.png', "Download hinzufügen",
             Action.DOWNLOAD_ADD),
            ('download_add_link', 'add_download.png', "Link hinzufügen",
             Action.DOWNLOAD_ADD_LINK),
            ('download_start', 'download_start.png', "Start",
             Action.DOWNLOAD_START),
            ('download_stop', 'download_stop.png', "Stop",
             Action.DOWNLOAD_STOP),
            ('download_remove', 'delete.png', "Löschen",
             Action.DOWNLOAD_REMOVE),
        ]

        self.__toolbar_buttons = {}
        for key, image_name, text, action in toolbar_buttons:
            image = Gtk.Image.new_from_file(path.get_image_path(image_name))
            image.show()

            if key == "cut" or key == "decodeandcut":
                self.__toolbar_buttons[key] = Gtk.MenuToolButton.new(
                    image, text)
                self.__toolbar_buttons[key].set_menu(
                    self.__get_cut_menu(action))
            else:
                self.__toolbar_buttons[key] = Gtk.ToolButton.new(image, text)

            self.__toolbar_buttons[key].connect("clicked",
                                                self._on_toolbutton_clicked,
                                                action)
            self.__toolbar_buttons[key].show()

        self.__sets_of_toolbars = {
            Section.PLANNING:
            ['plan_add', 'plan_edit', 'plan_remove', 'plan_search'],
            Section.DOWNLOAD: [
                'download_add_link', 'download_start', 'download_stop',
                'download_remove'
            ],
            Section.OTRKEY:
            ['decodeandcut', 'decode', 'delete', 'real_delete'],
            Section.VIDEO_UNCUT: ['cut', 'delete', 'real_delete', 'archive'],
            Section.VIDEO_CUT:
            ['archive', 'delete', 'real_delete', 'cut', 'rename'],
            Section.ARCHIVE: ['delete', 'real_delete', 'rename', 'new_folder'],
            Section.TRASH: ['real_delete', 'restore']
        }

        # create sets of toolbuttons
        for section, button_names in self.__sets_of_toolbars.items():
            toolbar_buttons = []
            for button_name in button_names:
                toolbar_buttons.append(self.__toolbar_buttons[button_name])

            self.__sets_of_toolbars[section] = toolbar_buttons

        # toolbar_search
        self.search_tool_item = EntrySearchToolItem("Durchsuchen")
        self.builder.get_object('toolbar_search').insert(
            self.search_tool_item, -1)

        self.search_tool_item.connect('search',
                                      lambda w, search: self.do_search(search))
        self.search_tool_item.connect('clear', self.on_search_clear)