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