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


Commits:
8e9e7be7 by wurstsalat at 2022-10-27T22:15:58+02:00
imprv: Add actions menu to Start Chat button

This allows for quick access of
- Start Chat
- Create Group Chat
- Add Contact

Fixes #11241

- - - - -


3 changed files:

- gajim/data/gui/chat_paned.ui
- gajim/gtk/builder.pyi
- gajim/gtk/chat_page.py


Changes:

=====================================
gajim/data/gui/chat_paned.ui
=====================================
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.38.2 -->
+<!-- Generated with glade 3.40.0 -->
 <interface>
   <requires lib="gtk+" version="3.24"/>
   <object class="GtkPaned" id="paned">
@@ -129,11 +129,12 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkButton" id="start_chat_button">
+                  <object class="GtkMenuButton" id="start_chat_menu_button">
                     <property name="visible">True</property>
                     <property name="can-focus">True</property>
+                    <property name="focus-on-click">False</property>
                     <property name="receives-default">True</property>
-                    <property name="tooltip-text" translatable="yes">Start 
Chat</property>
+                    <property name="tooltip-text" translatable="yes">Start 
Chat…</property>
                     <child>
                       <object class="GtkImage">
                         <property name="visible">True</property>
@@ -141,11 +142,14 @@
                         <property name="icon-name">list-add-symbolic</property>
                       </object>
                     </child>
+                    <style>
+                      <class name="suggested-action"/>
+                    </style>
                   </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">True</property>
-                    <property name="position">1</property>
+                    <property name="position">2</property>
                   </packing>
                 </child>
               </object>


=====================================
gajim/gtk/builder.pyi
=====================================
@@ -238,7 +238,7 @@ class ChatPanedBuilder(Builder):
     workspace_label: Gtk.Label
     filter_bar_toggle: Gtk.ToggleButton
     search_entry: Gtk.SearchEntry
-    start_chat_button: Gtk.Button
+    start_chat_menu_button: Gtk.MenuButton
     filter_bar_revealer: Gtk.Revealer
     filter_bar: Gtk.Box
     chat_list_scrolled: Gtk.ScrolledWindow


=====================================
gajim/gtk/chat_page.py
=====================================
@@ -30,6 +30,7 @@
 from nbxmpp import JID
 
 from gajim.common import app
+from gajim.common.i18n import _
 
 from .builder import get_builder
 from .chat_filter import ChatFilter
@@ -41,9 +42,14 @@
 if TYPE_CHECKING:
     from .control import ChatControl
 
-
 log = logging.getLogger('gajim.gui.chat_page')
 
+START_CHAT_MENU_DICT = {
+    'start-chat(["", ""])': _('Start Chat…'),
+    'create-groupchat::': _('Create Group Chat…'),
+    'add-contact::': _('Add Contact…'),
+}
+
 
 class ChatPage(Gtk.Box):
 
@@ -91,8 +97,10 @@ def __init__(self):
                                       self._on_chat_list_changed)
         self._ui.chat_list_scrolled.add(self._chat_list_stack)
 
-        self._ui.start_chat_button.connect('clicked',
-                                           self._on_start_chat_clicked)
+        start_chat_menu = Gio.Menu()
+        for action, label in START_CHAT_MENU_DICT.items():
+            start_chat_menu.append(label, f'app.{action}')
+        self._ui.start_chat_menu_button.set_menu_model(start_chat_menu)
 
         self._ui.paned.set_position(app.settings.get('chat_handle_position'))
         self._ui.paned.connect('button-release-event', self._on_button_release)
@@ -127,10 +135,6 @@ def get_chat_list_stack(self) -> ChatListStack:
     def get_chat_stack(self) -> ChatStack:
         return self._chat_stack
 
-    @staticmethod
-    def _on_start_chat_clicked(_button: Gtk.Button) -> None:
-        app.app.activate_action('start-chat', GLib.Variant('as', ['', '']))
-
     @staticmethod
     def _on_button_release(paned: Gtk.Paned, event: Gdk.EventButton) -> None:
         if event.window != paned.get_handle_window():



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/8e9e7be7c22e0a8f884a32736cb57551664f2ff1

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/8e9e7be7c22e0a8f884a32736cb57551664f2ff1
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