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:
Diffstat (limited to 'gajim/gtk/util.py')
-rw-r--r--gajim/gtk/util.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/gajim/gtk/util.py b/gajim/gtk/util.py
index 90bdd53a6..5ce5c1d2f 100644
--- a/gajim/gtk/util.py
+++ b/gajim/gtk/util.py
@@ -23,6 +23,7 @@ import logging
import math
import sys
import textwrap
+from datetime import datetime
from functools import lru_cache
from functools import wraps
from importlib import import_module
@@ -52,6 +53,7 @@ from gajim.common.const import Display
from gajim.common.const import LOCATION_DATA
from gajim.common.const import StyleAttr
from gajim.common.ged import EventHelper as CommonEventHelper
+from gajim.common.helpers import format_idle_time
from gajim.common.helpers import URL_REGEX
from gajim.common.i18n import _
from gajim.common.modules.contacts import GroupchatParticipant
@@ -794,6 +796,29 @@ def wrap_with_event_box(klass: Any) -> Any:
return klass_wrapper
+class IdleBadge(Gtk.Label):
+ def __init__(self, idle: datetime | None = None) -> None:
+ Gtk.Label.__init__(
+ self,
+ valign=Gtk.Align.START,
+ halign=Gtk.Align.END,
+ hexpand=True,
+ ellipsize=Pango.EllipsizeMode.NONE,
+ no_show_all=True,
+ )
+ self.set_size_request(50, -1)
+ self.get_style_context().add_class('idle-time')
+ if idle is not None:
+ self.set_idle(idle)
+
+ self.show()
+
+ def set_idle(self, idle: datetime) -> None:
+ self.set_text(_('Last seen %s') % format_idle_time(idle))
+ format_string = app.settings.get('date_time_format')
+ self.set_tooltip_text(idle.strftime(format_string))
+
+
class AccountBadge(Gtk.Label):
def __init__(self, account: str | None = None) -> None:
Gtk.Label.__init__(self)