Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hörist <philipp@hoerist.com>2023-10-14 18:06:54 +0300
committerPhilipp Hörist <philipp@hoerist.com>2023-10-14 18:06:54 +0300
commit48b3a71a25c661b663f9b473ca78ff8d1ece6f60 (patch)
treed7d78a51b4454b481c9a25c44cd9976bd7e69f06
parent2f010a60208499e62f167c4cdd8a58754e271af3 (diff)
refactor: Tooltips: Add ContactTooltip
-rw-r--r--gajim/data/gui/contact_tooltip.ui (renamed from gajim/data/gui/roster_tooltip.ui)0
-rw-r--r--gajim/gtk/builder.pyi32
-rw-r--r--gajim/gtk/roster.py6
-rw-r--r--gajim/gtk/tooltips.py15
4 files changed, 26 insertions, 27 deletions
diff --git a/gajim/data/gui/roster_tooltip.ui b/gajim/data/gui/contact_tooltip.ui
index 52628e59b..52628e59b 100644
--- a/gajim/data/gui/roster_tooltip.ui
+++ b/gajim/data/gui/contact_tooltip.ui
diff --git a/gajim/gtk/builder.pyi b/gajim/gtk/builder.pyi
index 2631d1bbd..326075a6a 100644
--- a/gajim/gtk/builder.pyi
+++ b/gajim/gtk/builder.pyi
@@ -301,6 +301,20 @@ class ContactInfoBuilder(Builder):
devices_box: Gtk.Box
+class ContactTooltipBuilder(Builder):
+ tooltip_grid: Gtk.Grid
+ jid: Gtk.Label
+ tune_label: Gtk.Label
+ location_label: Gtk.Label
+ tune: Gtk.Label
+ location: Gtk.Label
+ name: Gtk.Label
+ avatar: Gtk.Image
+ sub_label: Gtk.Label
+ sub: Gtk.Label
+ resources_box: Gtk.Box
+
+
class EmojiChooserBuilder(Builder):
box: Gtk.Box
search: Gtk.SearchEntry
@@ -792,20 +806,6 @@ class RosterItemExchangeBuilder(Builder):
accept_button: Gtk.Button
-class RosterTooltipBuilder(Builder):
- tooltip_grid: Gtk.Grid
- jid: Gtk.Label
- tune_label: Gtk.Label
- location_label: Gtk.Label
- tune: Gtk.Label
- location: Gtk.Label
- name: Gtk.Label
- avatar: Gtk.Image
- sub_label: Gtk.Label
- sub: Gtk.Label
- resources_box: Gtk.Box
-
-
class SearchViewBuilder(Builder):
calendar_popover: Gtk.Popover
calendar: Gtk.Calendar
@@ -1011,6 +1011,8 @@ def get_builder(file_name: Literal['chat_paned.ui'], widgets: list[str] = ...) -
@overload
def get_builder(file_name: Literal['contact_info.ui'], widgets: list[str] = ...) -> ContactInfoBuilder: ... # noqa
@overload
+def get_builder(file_name: Literal['contact_tooltip.ui'], widgets: list[str] = ...) -> ContactTooltipBuilder: ... # noqa
+@overload
def get_builder(file_name: Literal['emoji_chooser.ui'], widgets: list[str] = ...) -> EmojiChooserBuilder: ... # noqa
@overload
def get_builder(file_name: Literal['exception_dialog.ui'], widgets: list[str] = ...) -> ExceptionDialogBuilder: ... # noqa
@@ -1083,8 +1085,6 @@ def get_builder(file_name: Literal['roster.ui'], widgets: list[str] = ...) -> Ro
@overload
def get_builder(file_name: Literal['roster_item_exchange.ui'], widgets: list[str] = ...) -> RosterItemExchangeBuilder: ... # noqa
@overload
-def get_builder(file_name: Literal['roster_tooltip.ui'], widgets: list[str] = ...) -> RosterTooltipBuilder: ... # noqa
-@overload
def get_builder(file_name: Literal['search_view.ui'], widgets: list[str] = ...) -> SearchViewBuilder: ... # noqa
@overload
def get_builder(file_name: Literal['server_info.ui'], widgets: list[str] = ...) -> ServerInfoBuilder: ... # noqa
diff --git a/gajim/gtk/roster.py b/gajim/gtk/roster.py
index 08046d65b..24dcd49ac 100644
--- a/gajim/gtk/roster.py
+++ b/gajim/gtk/roster.py
@@ -46,7 +46,7 @@ from gajim.gtk.builder import get_builder
from gajim.gtk.dialogs import ConfirmationDialog
from gajim.gtk.dialogs import DialogButton
from gajim.gtk.menus import get_roster_menu
-from gajim.gtk.tooltips import RosterTooltip
+from gajim.gtk.tooltips import ContactTooltip
from gajim.gtk.util import EventHelper
from gajim.gtk.util import GajimPopover
from gajim.gtk.util import open_window
@@ -77,7 +77,7 @@ class Roster(Gtk.ScrolledWindow, EventHelper):
self._client = app.get_client(account)
self._contacts = self._client.get_module('Contacts')
- self._roster_tooltip = RosterTooltip()
+ self._roster_tooltip = ContactTooltip()
self._ui = get_builder('roster.ui')
self._ui.roster_treeview.set_model(None)
@@ -262,7 +262,7 @@ class Roster(Gtk.ScrolledWindow, EventHelper):
contact = self._contacts.get_bare_contact(
model[iter_][Column.JID_OR_GROUP])
assert isinstance(contact, BareContact)
- value, widget = self._roster_tooltip.get_tooltip(path, contact)
+ value, widget = self._roster_tooltip.get_tooltip(contact)
tooltip.set_custom(widget)
return value
diff --git a/gajim/gtk/tooltips.py b/gajim/gtk/tooltips.py
index 459b48d1c..005e63212 100644
--- a/gajim/gtk/tooltips.py
+++ b/gajim/gtk/tooltips.py
@@ -125,30 +125,29 @@ class GCTooltip:
self._ui.tooltip_grid.destroy()
-class RosterTooltip:
+class ContactTooltip:
def __init__(self) -> None:
- self._row = None
- self._ui = get_builder('roster_tooltip.ui')
+ self._contact = None
+ self._ui = get_builder('contact_tooltip.ui')
def clear_tooltip(self) -> None:
- self._row = None
+ self._contact = None
for widget in self._ui.resources_box.get_children():
widget.destroy()
for widget in self._ui.tooltip_grid.get_children():
widget.hide()
def get_tooltip(self,
- row: Gtk.TreePath,
contact: types.BareContact) -> tuple[bool, Gtk.Grid]:
- if self._row == row:
+ if self._contact == contact:
return True, self._ui.tooltip_grid
+ self.clear_tooltip()
self._populate_grid(contact)
- self._row = row
+ self._contact = contact
return False, self._ui.tooltip_grid
def _populate_grid(self, contact: types.BareContact) -> None:
- self.clear_tooltip()
scale = self._ui.tooltip_grid.get_scale_factor()
surface = contact.get_avatar(AvatarSize.TOOLTIP, scale)