From 30f7a3cc7b68f1b79a91fbe8bf62865e079ffe6e Mon Sep 17 00:00:00 2001 From: David Aguilar Date: Mon, 6 Jan 2014 17:49:59 -0800 Subject: [PATCH] qtutils: improve create_action_button() Make 'tooltip' and 'icon' optional. Use a scaled pixmap when creating the icon to prevent rendering artifacts on Linux. Signed-off-by: David Aguilar --- cola/qtutils.py | 15 +++++++++------ cola/widgets/bookmarks.py | 4 ++-- cola/widgets/dag.py | 9 ++++++--- cola/widgets/main.py | 2 +- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/cola/qtutils.py b/cola/qtutils.py index d4e798d1..55a58ab3 100644 --- a/cola/qtutils.py +++ b/cola/qtutils.py @@ -542,13 +542,16 @@ def create_button(text='', layout=None, tooltip=None, icon=None): return button -def create_action_button(tooltip, icon): +def create_action_button(tooltip=None, icon=None): button = QtGui.QPushButton() + button.setFixedSize(QtCore.QSize(16, 16)) button.setCursor(Qt.PointingHandCursor) button.setFlat(True) - button.setIcon(icon) - button.setFixedSize(QtCore.QSize(16, 16)) - button.setToolTip(tooltip) + if tooltip is not None: + button.setToolTip(tooltip) + if icon is not None: + pixmap = icon.pixmap(QtCore.QSize(16, 16)) + button.setIcon(QtGui.QIcon(pixmap)) return button @@ -565,10 +568,10 @@ class DockTitleBarWidget(QtGui.QWidget): self.setCursor(Qt.OpenHandCursor) self.close_button = create_action_button( - N_('Close'), titlebar_close_icon()) + tooltip=N_('Close'), icon=titlebar_close_icon()) self.toggle_button = create_action_button( - N_('Detach'), titlebar_normal_icon()) + tooltip=N_('Detach'), icon=titlebar_normal_icon()) self.corner_layout = QtGui.QHBoxLayout() self.corner_layout.setMargin(defs.no_margin) diff --git a/cola/widgets/bookmarks.py b/cola/widgets/bookmarks.py index 74eec675..f62e19e7 100644 --- a/cola/widgets/bookmarks.py +++ b/cola/widgets/bookmarks.py @@ -135,11 +135,11 @@ class BookmarksWidget(QtGui.QWidget): self.tree = BookmarksTreeWidget(parent=self) self.open_button = qtutils.create_action_button( - N_('Open'), qtutils.open_icon()) + tooltip=N_('Open'), icon=qtutils.open_icon()) self.open_button.setEnabled(False) self.edit_button = qtutils.create_action_button( - N_('Bookmarks...'), qtutils.add_icon()) + tooltip=N_('Bookmarks...'), icon=qtutils.add_icon()) qtutils.connect_button(self.open_button, self.tree.open_repo) qtutils.connect_button(self.edit_button, self.manage_bookmarks) diff --git a/cola/widgets/dag.py b/cola/widgets/dag.py index fc8ca5e1..3a92364c 100644 --- a/cola/widgets/dag.py +++ b/cola/widgets/dag.py @@ -345,13 +345,16 @@ class DAGView(MainWindow): self.maxresults.setSuffix('') self.zoom_out = qtutils.create_action_button( - N_('Zoom Out'), qtutils.theme_icon('zoom-out.png')) + tooltip=N_('Zoom Out'), + icon=qtutils.theme_icon('zoom-out.png')) self.zoom_in = qtutils.create_action_button( - N_('Zoom In'), qtutils.theme_icon('zoom-in.png')) + tooltip=N_('Zoom In'), + icon=qtutils.theme_icon('zoom-in.png')) self.zoom_to_fit = qtutils.create_action_button( - N_('Zoom to Fit'), qtutils.theme_icon('zoom-fit-best.png')) + tooltip=N_('Zoom to Fit'), + icon=qtutils.theme_icon('zoom-fit-best.png')) self.notifier = notifier = observable.Observable() self.notifier.refs_updated = refs_updated = 'refs_updated' diff --git a/cola/widgets/main.py b/cola/widgets/main.py index 369f24a4..7b86cecb 100644 --- a/cola/widgets/main.py +++ b/cola/widgets/main.py @@ -148,7 +148,7 @@ class MainView(MainWindow): self.diff_function_context_action.setCheckable(True) self.diffopts_button = create_action_button( - N_('Diff Options'), options_icon()) + tooltip=N_('Diff Options'), icon=options_icon()) self.diffopts_menu = create_menu(N_('Diff Options'), self.diffopts_button) -- 2.11.4.GIT