From 2a41c7198fb8a2f80e853400637d1772727b03fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Sat, 23 Dec 2017 21:10:40 +0100 Subject: [PATCH] Remove BaseTooltip We dont needed anymore --- gajim/htmltextview.py | 13 ---- gajim/tooltips.py | 141 ------------------------------------------ 2 files changed, 154 deletions(-) diff --git a/gajim/htmltextview.py b/gajim/htmltextview.py index d05d9a4a9..300c7dc91 100644 --- a/gajim/htmltextview.py +++ b/gajim/htmltextview.py @@ -1102,8 +1102,6 @@ if __name__ == '__main__': htmlview = ConversationTextview(None) - tooltip = tooltips.BaseTooltip() - def on_textview_motion_notify_event(widget, event): """ Change the cursor to a hand when we are over a mail or an url @@ -1129,17 +1127,6 @@ if __name__ == '__main__': except Exception: pass - #if line_tooltip.timeout != 0: - # Check if we should hide the line tooltip - # if not over_line: - # line_tooltip.hide_tooltip() - #if over_line and not line_tooltip.win: - # line_tooltip.timeout = GLib.timeout_add(500, - # show_line_tooltip) - # htmlview.tv.get_window(Gtk.TextWindowType.TEXT).set_cursor( - # gtkgui_helpers.get_cursor('LEFT_PTR')) - # change_cursor = tag - htmlview.tv.connect('motion_notify_event', on_textview_motion_notify_event) def handler(texttag, widget, event, iter_, kind): diff --git a/gajim/tooltips.py b/gajim/tooltips.py index 7a7d46380..3ac6bfc8d 100644 --- a/gajim/tooltips.py +++ b/gajim/tooltips.py @@ -43,147 +43,6 @@ from gajim.common import app from gajim.common import helpers from gajim.common.i18n import Q_ -class BaseTooltip: - """ - Base Tooltip class - - Usage: - tooltip = BaseTooltip() - .... - tooltip.show_tooltip(data, widget_height, widget_y_position) - .... - if tooltip.timeout != 0: - tooltip.hide_tooltip() - - * data - the text to be displayed (extenders override this argument and - display more complex contents) - * widget_height - the height of the widget on which we want to show tooltip - * widget_y_position - the vertical position of the widget on the screen - - Tooltip is displayed aligned centered to the mouse poiner and 4px below the widget. - In case tooltip goes below the visible area it is shown above the widget. - """ - - def __init__(self): - self.timeout = 0 - self.preferred_position = [0, 0] - self.win = None - self.id = None - self.cur_data = None - self.shown = False - self.position_computed = False - - def populate(self, data): - """ - This method must be overriden by all extenders. This is the most simple - implementation: show data as value of a label - """ - self.create_window() - self.win.add(Gtk.Label(label=data)) - - def create_window(self): - """ - Create a popup window each time tooltip is requested - """ - self.win = Gtk.Window.new(Gtk.WindowType.POPUP) - self.win.set_title('tooltip') - self.win.set_border_width(3) - self.win.set_resizable(False) - self.win.set_name('gtk-tooltips') - self.win.set_type_hint(Gdk.WindowTypeHint.TOOLTIP) - - self.win.set_events(Gdk.EventMask.POINTER_MOTION_MASK) - self.win.connect('size-allocate', self.on_size_allocate) - self.win.connect('motion-notify-event', self.motion_notify_event) - self.screen = self.win.get_screen() - - def _get_icon_name_for_tooltip(self, contact): - """ - Helper function used for tooltip contacts/acounts - - Tooltip on account has fake contact with sub == '', in this case we show - real status of the account - """ - if contact.ask == 'subscribe': - return 'requested' - elif contact.sub in ('both', 'to', ''): - return contact.show - return 'not in roster' - - def motion_notify_event(self, widget, event): - GLib.idle_add(self.hide_tooltip) - - def on_size_allocate(self, widget, rect): - if not self.position_computed: - half_width = rect.width / 2 + 1 - if self.preferred_position[1] + rect.height > \ - self.screen.get_height(): - # flip tooltip up - self.preferred_position[1] -= rect.height + self.widget_height \ - + 8 - if self.preferred_position[1] < 0: - self.preferred_position[1] = self.screen.get_height() - \ - rect.height - 2 - - if self.preferred_position[0] + rect.width + 7 < \ - self.screen.get_width(): - self.preferred_position[0] = self.preferred_position[0]\ - + 7 - else: - self.preferred_position[0] = self.preferred_position[0]\ - - rect.width - 7 - self.win.move(self.preferred_position[0], - self.preferred_position[1]) - return - if self.preferred_position[0] < half_width: - self.preferred_position[0] = 0 - elif self.preferred_position[0] + rect.width > \ - self.screen.get_width() + half_width: - self.preferred_position[0] = self.screen.get_width() - \ - rect.width - else: - self.preferred_position[0] -= half_width - self.position_computed = True - self.win.move(self.preferred_position[0], self.preferred_position[1]) - - def show_tooltip(self, data, widget_height, widget_y_position): - """ - Show tooltip on widget - - Data contains needed data for tooltip contents. - widget_height is the height of the widget on which we show the tooltip. - widget_y_position is vertical position of the widget on the screen. - """ - if self.shown: - return - self.position_computed = False - self.cur_data = data - # set tooltip contents - self.populate(data) - - # get the X position of mouse pointer on the screen - pointer_x = self.screen.get_display().get_device_manager().\ - get_client_pointer().get_position()[1] - - # get the prefered X position of the tooltip on the screen in case this position is > - # than the height of the screen, tooltip will be shown above the widget - preferred_y = widget_y_position + widget_height + 4 - - self.preferred_position = [pointer_x, preferred_y] - self.widget_height = widget_height - self.win.show_all() - self.shown = True - - def hide_tooltip(self): - if self.timeout > 0: - GLib.source_remove(self.timeout) - self.timeout = 0 - if self.win: - self.win.destroy() - self.win = None - self.id = None - self.cur_data = None - self.shown = False class StatusTable: """