From 9b59250088764f4c7f1e2b631f6a8050e43a9120 Mon Sep 17 00:00:00 2001 From: Efimov Vasily Date: Fri, 15 Feb 2019 19:59:21 +0300 Subject: [PATCH] BranchesWidget: sort order toggle button Sort orders: - alphabet - reverse commiter time order (newest first) Signed-off-by: Efimov Vasily --- cola/widgets/branch.py | 21 +++++++++++++++++++++ cola/widgets/main.py | 1 + 2 files changed, 22 insertions(+) diff --git a/cola/widgets/branch.py b/cola/widgets/branch.py index 1710e5bc..45f7f9ec 100644 --- a/cola/widgets/branch.py +++ b/cola/widgets/branch.py @@ -71,6 +71,17 @@ class BranchesWidget(QtWidgets.QFrame): self.filter_button = qtutils.create_action_button(tooltip=tooltip, icon=icon) + self.order_icons = odict(( + ('version:refname', icons.a_z_order()), + ('-committerdate', icons.last_first_order()) + )) + self.model = context.model + + tooltip_order = N_('Toggle references sorting order') + icon = self.order_icons[context.model.refs_sort_key] + self.sort_order_button = qtutils.create_action_button( + tooltip=tooltip_order, icon=icon) + self.tree = BranchesTreeWidget(context, parent=self) self.filter_widget = BranchesFilterWidget(self.tree) self.filter_widget.hide() @@ -87,6 +98,8 @@ class BranchesWidget(QtWidgets.QFrame): hotkeys.FILTER) qtutils.connect_button(self.filter_button, self.toggle_filter) + qtutils.connect_button(self.sort_order_button, self.toggle_sort_order) + def toggle_filter(self): shown = not self.filter_widget.isVisible() self.filter_widget.setVisible(shown) @@ -95,6 +108,14 @@ class BranchesWidget(QtWidgets.QFrame): else: self.tree.setFocus() + def toggle_sort_order(self): + keys = tuple(self.order_icons) + next_i = (keys.index(self.model.refs_sort_key) + 1) % len(keys) + self.model.refs_sort_key = keys[next_i] + self.sort_order_button.setIcon( + self.order_icons[self.model.refs_sort_key]) + self.tree.refresh() + class BranchesTreeWidget(standard.TreeWidget): updated = Signal() diff --git a/cola/widgets/main.py b/cola/widgets/main.py index bd0f88b2..5656a221 100644 --- a/cola/widgets/main.py +++ b/cola/widgets/main.py @@ -120,6 +120,7 @@ class MainView(standard.MainWindow): self.branchwidget = self.branchdock.widget() titlebar = self.branchdock.titleBarWidget() titlebar.add_corner_widget(self.branchwidget.filter_button) + titlebar.add_corner_widget(self.branchwidget.sort_order_button) # "Submodule" widgets self.submodulesdock = create_dock( -- 2.11.4.GIT