Daniel Brötzmann pushed to branch newcontrol at gajim / gajim


Commits:
7425872e by wurstsalat at 2022-07-29T23:51:26+02:00
refactor: Move getting copy modifiers into separate methods

- - - - -
722220a1 by wurstsalat at 2022-07-29T23:52:02+02:00
fix: MessageRow: Accept CommonError for message errors

- - - - -
894ae581 by wurstsalat at 2022-07-29T23:59:52+02:00
refactor: BaseControl: Get room name directly for private chats

- - - - -


5 changed files:

- gajim/gtk/controls/base.py
- gajim/gtk/controls/private.py
- gajim/gtk/conversation/rows/message.py
- gajim/gtk/conversation/view.py
- gajim/gtk/util.py


Changes:

=====================================
gajim/gtk/controls/base.py
=====================================
@@ -32,7 +32,6 @@
 
 import os
 import logging
-import sys
 import time
 import uuid
 
@@ -61,6 +60,8 @@
 from gajim.gui.conversation.view import ConversationView
 from gajim.gui.conversation.scrolled import ScrolledView
 from gajim.gui.conversation.jump_to_end_button import JumpToEndButton
+from gajim.gui.util import get_copy_modifier
+from gajim.gui.util import get_copy_modifier_keys
 from gajim.gui.util import get_hardware_key_codes
 from gajim.gui.builder import get_builder
 from gajim.gui.util import set_urgency_hint
@@ -82,18 +83,12 @@
 # So we match hardware keycodes instead of keyvals.
 # Multiple hardware keycodes can trigger a keyval like Gdk.KEY_c.
 KEYCODES_KEY_C = get_hardware_key_codes(Gdk.KEY_c)
-
-if sys.platform == 'darwin':
-    COPY_MODIFIER = Gdk.ModifierType.META_MASK
-    COPY_MODIFIER_KEYS = (Gdk.KEY_Meta_L, Gdk.KEY_Meta_R)
-else:
-    COPY_MODIFIER = Gdk.ModifierType.CONTROL_MASK
-    COPY_MODIFIER_KEYS = (Gdk.KEY_Control_L, Gdk.KEY_Control_R)
+COPY_MODIFIER = get_copy_modifier()
+COPY_MODIFIER_KEYS = get_copy_modifier_keys()
 
 log = logging.getLogger('gajim.gui.controls.base')
 
 
-################################################################################
 class BaseControl(ChatCommandProcessor, CommandTools, EventHelper):
     """
     A base class containing a banner, ConversationView, MessageInputTextView
@@ -511,8 +506,10 @@ def _notify(self,
                 return
 
         if self.is_privatechat:
+            room_contact = self._client.get_module('Contacts').get_contact(
+                self.contact.jid.bare)
             msg_type = 'private-chat-message'
-            title += f' (private in {self.room_name})'
+            title += f' (private in {room_contact.name})'
             sound = 'first_message_received'
 
         # Is it a history message? Don't want sound-floods when we join.


=====================================
gajim/gtk/controls/private.py
=====================================
@@ -61,10 +61,6 @@ def _connect_contact_signals(self) -> None:
             # 'room-destroyed': self._on_room_destroyed,
         })
 
-    @property
-    def room_name(self) -> str:
-        return self._room_contact.name
-
     def get_our_nick(self) -> str:
         muc_data = self._client.get_module('MUC').get_muc_data(
             self._room_contact.jid)


=====================================
gajim/gtk/conversation/rows/message.py
=====================================
@@ -15,6 +15,7 @@
 from __future__ import annotations
 
 from typing import Optional
+from typing import Union
 
 from datetime import datetime
 from datetime import timedelta
@@ -30,6 +31,7 @@
 
 from nbxmpp.errors import StanzaError
 from nbxmpp.modules.security_labels import Displaymarking
+from nbxmpp.structs import CommonError
 
 from gajim.common import app
 from gajim.common.const import AvatarSize
@@ -71,7 +73,7 @@ def __init__(self,
                  additional_data: Optional[AdditionalDataDict] = None,
                  display_marking: Optional[Displaymarking] = None,
                  marker: Optional[str] = None,
-                 error: Optional[StanzaError] = None,
+                 error: Union[CommonError, StanzaError, None] = None,
                  encryption_enabled: bool = False,
                  log_line_id: Optional[int] = None) -> None:
 


=====================================
gajim/gtk/conversation/view.py
=====================================
@@ -31,6 +31,7 @@
 
 from nbxmpp.errors import StanzaError
 from nbxmpp.modules.security_labels import Displaymarking
+from nbxmpp.structs import CommonError
 from nbxmpp.structs import MucSubject
 from nbxmpp.protocol import JID
 
@@ -228,7 +229,8 @@ def add_message(self,
                     display_marking: Optional[Displaymarking] = None,
                     additional_data: Optional[AdditionalDataDict] = None,
                     marker: Optional[str] = None,
-                    error: Optional[StanzaError] = None) -> None:
+                    error: Union[CommonError, StanzaError, None] = None
+                    ) -> None:
 
         if not timestamp:
             timestamp = time.time()


=====================================
gajim/gtk/util.py
=====================================
@@ -23,6 +23,7 @@
 
 import logging
 import math
+import sys
 import textwrap
 from io import BytesIO
 from importlib import import_module
@@ -358,6 +359,18 @@ def get_primary_accel_mod() -> Optional[Gdk.ModifierType]:
     return Gtk.accelerator_parse('<Primary>')[1]
 
 
+def get_copy_modifier() -> Gdk.ModifierType:
+    if sys.platform == 'darwin':
+        return Gdk.ModifierType.META_MASK
+    return Gdk.ModifierType.CONTROL_MASK
+
+
+def get_copy_modifier_keys() -> tuple[int, int]:
+    if sys.platform == 'darwin':
+        return Gdk.KEY_Meta_L, Gdk.KEY_Meta_R
+    return Gdk.KEY_Control_L, Gdk.KEY_Control_R
+
+
 def get_hardware_key_codes(keyval: int) -> list[int]:
     display = Gdk.Display.get_default()
     assert display is not None



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/b44ea8f393f19822e22c08a52236a75ccc89d0ea...894ae581a95e7e1c11257c0dfed12c302682159a

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/b44ea8f393f19822e22c08a52236a75ccc89d0ea...894ae581a95e7e1c11257c0dfed12c302682159a
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to