Exemplo n.º 1
0
Arquivo: gui.py Projeto: simotek/egitu
    def __init__(self, win, parent):
        Menu.__init__(self, win)
        self.win = win

        # main actions
        self.item_add(None, "Refresh", "refresh", self._item_refresh_cb)
        self.item_add(None, "Open", "folder", self._item_open_cb)
        self.item_separator_add()

        # general options
        it_gen = self.item_add(None, "General", "preference")

        it = self.item_add(it_gen, "Use relative dates", None,
                           self._item_check_opts_cb, 'date_relative')
        it.content = Check(self, state=options.date_relative)

        it_gravatar = self.item_add(it_gen, "Gravatar")
        for name in ('mm', 'identicon', 'monsterid', 'wavatar', 'retro'):
            icon = "arrow_right" if name == options.gravatar_default else None
            self.item_add(it_gravatar, name, icon,  self._item_gravatar_cb)
        self.item_separator_add(it_gravatar)
        self.item_add(it_gravatar, 'Clear icons cache', 'delete',
                      lambda m,i: GravatarPict.clear_icon_cache())

        # dag options
        it_dag = self.item_add(None, "Dag", "preference")

        it = self.item_add(it_dag, "Show remote refs", None,
                           self._item_check_opts_cb, 'show_remotes_in_dag')
        it.content = Check(self, state=options.show_remotes_in_dag)

        it = self.item_add(it_dag, "Show commit messagges", None,
                           self._item_check_opts_cb, 'show_message_in_dag')
        it.content = Check(self, state=options.show_message_in_dag)

        # diff options
        it_diff = self.item_add(None, "Diff", "preference")

        it = self.item_add(it_diff, "Wrap long lines", None,
                           self._item_wrap_line_cb)
        it.content = Check(self, state=options.diff_text_wrap)

        it_font = self.item_add(it_diff, "Font face")
        for face in ('Sans', 'Mono'):
            icon = "arrow_right" if face == options.diff_font_face else None
            self.item_add(it_font, face, icon, self._item_font_face_cb)

        it_font = self.item_add(it_diff, "Font size")
        for size in (8, 9, 10, 11, 12, 13, 14):
            icon = "arrow_right" if size == options.diff_font_size else None
            self.item_add(it_font, str(size), icon, self._item_font_size_cb)

        x, y, w, h = parent.geometry
        self.move(x, y + h)
        self.show()
Exemplo n.º 2
0
Arquivo: gui.py Projeto: DaveMDS/egitu
 def _item_gravatar_cb(self, menu, item):
     if options.gravatar_default != item.text:
         options.gravatar_default = item.text
         GravatarPict.clear_icon_cache()
Exemplo n.º 3
0
Arquivo: gui.py Projeto: DaveMDS/egitu
    def _button_pressed_cb(self, btn):
        # close the menu if it is visible yet
        if self._menu and self._menu.visible:
            self._menu.delete()
            self._menu = None
            return

        # build a new menu
        m = Menu(self.top_widget)
        self._menu = m

        # main actions
        disabled = self.app.repo is None
        m.item_add(None, 'Refresh', 'view-refresh', 
                   self.app.action_reload_repo).disabled = disabled
        m.item_add(None, 'Open...', 'document-open',
                   self.app.action_open)
        m.item_add(None, 'Branches...', 'git-branch', 
                   self.app.action_branches).disabled = disabled
        m.item_add(None, 'Tags...', 'git-tag', 
                   self.app.action_tags).disabled = disabled
        m.item_add(None, 'Compare...', 'git-compare', 
                   self.app.action_compare).disabled = disabled
        m.item_add(None, 'Remotes...', 'git-remote', 
                   self.app.action_remotes).disabled = disabled
        m.item_add(None, 'Stashes...', 'git-stash', 
                   self.app.action_stash_show).disabled = disabled

        # general options
        m.item_separator_add()
        it_gen = m.item_add(None, 'General', 'preference')

        it = m.item_add(it_gen, 'Use relative dates', None,
                        self._item_check_opts_cb, 'date_relative')
        it.content = Check(self, state=options.date_relative)
        
        it = m.item_add(it_gen, 'Review all git commands before execution', None,
                        self._item_check_opts_cb, 'review_git_commands')
        it.content = Check(self, state=options.review_git_commands)

        it_gravatar = m.item_add(it_gen, 'Gravatar')
        for name in ('mm', 'identicon', 'monsterid', 'wavatar', 'retro'):
            icon = 'user-bookmarks' if name == options.gravatar_default else None
            m.item_add(it_gravatar, name, icon,  self._item_gravatar_cb)
        m.item_separator_add(it_gravatar)
        m.item_add(it_gravatar, 'Clear icons cache', 'user-trash',
                   lambda m,i: GravatarPict.clear_icon_cache())

        # dag options
        it_dag = m.item_add(None, 'Dag', 'preference')

        it = m.item_add(it_dag, 'Show remote refs', None,
                        self._item_check_opts_cb, 'show_remotes_in_dag')
        it.content = Check(self, state=options.show_remotes_in_dag)

        it = m.item_add(it_dag, 'Show messages', None,
                        self._item_check_opts_cb, 'show_message_in_dag')
        it.content = Check(self, state=options.show_message_in_dag)

        it = m.item_add(it_dag, 'Show authors', None,
                        self._item_check_opts_cb, 'show_author_in_dag')
        it.content = Check(self, state=options.show_author_in_dag)

        it = m.item_add(it_dag, 'Show stash items', None,
                        self._item_check_opts_cb, 'show_stash_in_dag')
        it.content = Check(self, state=options.show_stash_in_dag)

        it_numb = m.item_add(it_dag, 'Number of commits to load')
        for num in (100, 200, 500, 1000):
            icon = 'user-bookmarks' if num == options.number_of_commits_to_load else None
            m.item_add(it_numb, str(num), icon, self._item_num_commits_cb)

        # diff options
        it_diff = m.item_add(None, 'Diff', 'preference')

        it = m.item_add(it_diff, 'Wrap long lines', None,
                        self._item_wrap_line_cb)
        it.content = Check(self, state=options.diff_text_wrap)

        it_font = m.item_add(it_diff, 'Font face')
        for face in ('Sans', 'Mono'):
            icon = 'user-bookmarks' if face == options.diff_font_face else None
            m.item_add(it_font, face, icon, self._item_font_face_cb)

        it_font = m.item_add(it_diff, 'Font size')
        for size in (8, 9, 10, 11, 12, 13, 14):
            icon = 'user-bookmarks' if size == options.diff_font_size else None
            m.item_add(it_font, str(size), icon, self._item_font_size_cb)

        # quit item
        m.item_separator_add()
        m.item_add(None, 'About', 'help-about', self.app.action_about)
        m.item_add(None, 'Quit', 'application-exit', self.app.action_quit)


        # show the menu
        x, y, w, h = self.geometry
        m.move(x, y + h)
        m.show()