Daniel Brötzmann pushed to branch mainwindow at gajim / gajim
Commits: c874181d by wurstsalat at 2021-05-16T13:48:07+02:00 ChatPage: Use revealer for ChatFilter
- - - - -
3 changed files:
- gajim/data/gui/chat_paned.ui - gajim/gtk/chat_filter.py - gajim/gtk/chat_page.py
Changes:
===================================== gajim/data/gui/chat_paned.ui ===================================== @@ -26,32 +26,37 @@ <property name="can-focus">False</property> <property name="spacing">12</property> <child> - <object class="GtkLabel" id="workspace_label"> + <object class="GtkMenuButton" id="workspace_menu_button"> <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="label">Workspace Label</property> - <property name="ellipsize">end</property> - <style> - <class name="bold16"/> - </style> + <property name="can-focus">True</property> + <property name="focus-on-click">False</property> + <property name="receives-default">True</property> + <child> + <object class="GtkImage"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="icon-name">open-menu-symbolic</property> + </object> + </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> + <property name="pack-type">end</property> <property name="position">0</property> </packing> </child> <child> - <object class="GtkMenuButton" id="workspace_menu_button"> + <object class="GtkToggleButton" id="filter_bar_toggle"> <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">Filter Chats…</property> <child> <object class="GtkImage"> <property name="visible">True</property> <property name="can-focus">False</property> - <property name="icon-name">open-menu-symbolic</property> + <property name="icon-name">feather-filter-symbolic</property> </object> </child> </object> @@ -59,6 +64,22 @@ <property name="expand">False</property> <property name="fill">True</property> <property name="pack-type">end</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="workspace_label"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="label">Workspace Label</property> + <property name="ellipsize">end</property> + <style> + <class name="bold16"/> + </style> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> <property name="position">2</property> </packing> </child> @@ -74,17 +95,18 @@ <property name="can-focus">False</property> <property name="margin-start">6</property> <property name="margin-end">6</property> - <property name="margin-top">12</property> + <property name="margin-top">6</property> </object> <packing> <property name="left-attach">0</property> - <property name="top-attach">3</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkBox"> <property name="visible">True</property> <property name="can-focus">False</property> + <property name="margin-top">6</property> <property name="spacing">12</property> <child> <object class="GtkSearchEntry" id="search_entry"> @@ -125,11 +147,44 @@ </object> <packing> <property name="left-attach">0</property> - <property name="top-attach">2</property> + <property name="top-attach">3</property> </packing> </child> <child> - <placeholder/> + <object class="GtkRevealer" id="filter_bar_revealer"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="transition-duration">100</property> + <child> + <object class="GtkBox" id="filter_bar"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkSeparator"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="margin-start">6</property> + <property name="margin-end">6</property> + <property name="margin-bottom">6</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack-type">end</property> + <property name="position">0</property> + </packing> + </child> + <child> + <placeholder/> + </child> + </object> + </child> + </object> + <packing> + <property name="left-attach">0</property> + <property name="top-attach">2</property> + </packing> </child> <style> <class name="chatlist-top-bar"/>
===================================== gajim/gtk/chat_filter.py ===================================== @@ -34,17 +34,17 @@ def __init__(self, icons=False): if icons: toolbar.get_style_context().add_class('chat-filter-icons')
- all_button = Gtk.RadioToolButton.new_from_widget(None) + self._all_button = Gtk.RadioToolButton.new_from_widget(None) if icons: - all_button.set_icon_name('feather-home-symbolic') - all_button.set_tooltip_text(_('All')) + self._all_button.set_icon_name('feather-home-symbolic') + self._all_button.set_tooltip_text(_('All')) else: - all_button.set_label(_('All')) - all_button.set_name('all') - all_button.connect('clicked', self._on_button_clicked) - toolbar.insert(all_button, 1) + self._all_button.set_label(_('All')) + self._all_button.set_name('all') + self._all_button.connect('clicked', self._on_button_clicked) + toolbar.insert(self._all_button, 1)
- chats_button = Gtk.RadioToolButton.new_from_widget(all_button) + chats_button = Gtk.RadioToolButton.new_from_widget(self._all_button) if icons: chats_button.set_icon_name('feather-user-symbolic') chats_button.set_tooltip_text(_('Chats')) @@ -54,7 +54,8 @@ def __init__(self, icons=False): chats_button.connect('clicked', self._on_button_clicked) toolbar.insert(chats_button, 2)
- group_chats_button = Gtk.RadioToolButton.new_from_widget(all_button) + group_chats_button = Gtk.RadioToolButton.new_from_widget( + self._all_button) if icons: group_chats_button.set_icon_name('feather-users-symbolic') group_chats_button.set_tooltip_text(_('Group Chats')) @@ -70,3 +71,7 @@ def __init__(self, icons=False): def _on_button_clicked(self, button): if button.get_active(): self.emit('filter-changed', button.get_name()) + + def reset(self): + self._all_button.set_active(True) + self.emit('filter-changed', 'all')
===================================== gajim/gtk/chat_page.py ===================================== @@ -61,7 +61,9 @@ def __init__(self): self._ui.right_grid_overlay.add_overlay(self._search_revealer)
self._chat_filter = ChatFilter(icons=True) - self._ui.header_bar.attach(self._chat_filter, 0, 1, 1, 1) + self._ui.filter_bar.add(self._chat_filter) + self._ui.filter_bar_toggle.connect( + 'toggled', self._on_filter_revealer_toggled)
self._chat_list_stack = ChatListStack( self._chat_filter, self._ui.search_entry) @@ -125,6 +127,11 @@ def _on_button_release(paned, event): position = paned.get_position() app.settings.set('chat_handle_position', position)
+ def _on_filter_revealer_toggled(self, toggle_button): + active = toggle_button.get_active() + self._ui.filter_bar_revealer.set_reveal_child(active) + self._chat_filter.reset() + def _on_chat_selected(self, _chat_list_stack, workspace_id, account, jid): self._chat_stack.show_chat(account, jid) self._search_view.set_context(account, jid) @@ -160,6 +167,8 @@ def add_chat_list(self, workspace_id):
def show_workspace_chats(self, workspace_id): self._chat_list_stack.show_chat_list(workspace_id) + self._ui.filter_bar_toggle.set_active(False) + self._chat_filter.reset()
def update_workspace(self, workspace_id): name = app.settings.get_workspace_setting(workspace_id, 'name')
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/c874181d5d702f7dc31213b2ecf6db358...