Daniel Brötzmann pushed to branch newcontrol at gajim / gajim
Commits: 3d8ac70c by wurstsalat at 2022-07-29T19:40:43+02:00 refactor: Controls: Unify UI files
- - - - -
5 changed files:
- gajim/data/gui/chat_control.ui - − gajim/data/gui/groupchat_control.ui - gajim/gtk/builder.pyi - gajim/gtk/controls/base.py - gajim/gtk/controls/groupchat.py
Changes:
===================================== gajim/data/gui/chat_control.ui ===================================== @@ -4,22 +4,21 @@ <requires lib="gtk+" version="3.24"/> <object class="GtkBox" id="control_box"> <property name="can-focus">True</property> - <property name="margin-start">7</property> - <property name="margin-end">7</property> - <property name="spacing">1</property> <child> <object class="GtkOverlay" id="overlay"> <property name="visible">True</property> <property name="can-focus">False</property> <child> - <object class="GtkBox"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="orientation">vertical</property> + <object class="GtkBox" id="conv_view_box"> + <property name="can-focus">True</property> + <property name="margin-start">7</property> + <property name="margin-end">7</property> + <property name="spacing">3</property> <child> <object class="GtkOverlay" id="conv_view_overlay"> <property name="visible">True</property> <property name="can-focus">False</property> + <property name="hexpand">True</property> <child> <placeholder/> </child> @@ -27,9 +26,12 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">2</property> + <property name="position">0</property> </packing> </child> + <child> + <placeholder/> + </child> </object> <packing> <property name="index">-1</property> @@ -74,7 +76,7 @@ <property name="can-focus">False</property> <property name="valign">start</property> <property name="vexpand">True</property> - <property name="label" translatable="yes">Drop files or contacts</property> + <property name="label" translatable="yes">Drop Files or Contacts</property> <property name="wrap">True</property> <property name="max-width-chars">40</property> <style>
===================================== gajim/data/gui/groupchat_control.ui deleted ===================================== @@ -1,105 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.38.2 --> -<interface> - <requires lib="gtk+" version="3.24"/> - <object class="GtkBox" id="control_box"> - <property name="can-focus">True</property> - <child> - <object class="GtkOverlay" id="overlay"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <child> - <object class="GtkBox"> - <property name="can-focus">True</property> - <property name="margin-start">7</property> - <property name="margin-end">7</property> - <property name="spacing">3</property> - <child> - <object class="GtkOverlay" id="conv_view_overlay"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="hexpand">True</property> - <child> - <placeholder/> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkRevealer" id="roster_revealer"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="transition-type">none</property> - <child> - <placeholder/> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="index">-1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <object class="GtkBox" id="drop_area"> - <property name="name">DropArea</property> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="no-show-all">True</property> - <property name="opacity">0.90</property> - <property name="hexpand">True</property> - <property name="vexpand">True</property> - <property name="orientation">vertical</property> - <property name="spacing">18</property> - <child> - <object class="GtkImage"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="valign">end</property> - <property name="vexpand">True</property> - <property name="icon-name">mail-attachment-symbolic</property> - <property name="icon_size">6</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="valign">start</property> - <property name="vexpand">True</property> - <property name="label" translatable="yes">Drop Files or Contacts</property> - <property name="wrap">True</property> - <property name="max-width-chars">40</property> - <style> - <class name="bold16"/> - </style> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> -</interface>
===================================== gajim/gtk/builder.pyi ===================================== @@ -209,24 +209,12 @@ class ChatBannerBuilder(Builder):
class ChatControlBuilder(Builder): - drop_area: Gtk.Box - formattings_menu: Gtk.Menu - bold: Gtk.MenuItem - italic: Gtk.MenuItem - strike: Gtk.MenuItem - chat_control_hbox: Gtk.Box + control_box: Gtk.Box overlay: Gtk.Overlay - textview_box: Gtk.Box + conv_view_box: Gtk.Box conv_view_overlay: Gtk.Overlay - hbox: Gtk.Box - emoticons_button: Gtk.MenuButton - formattings_button: Gtk.MenuButton - settings_menu: Gtk.MenuButton - authentication_button: Gtk.Button - lock_image: Gtk.Image - encryption_menu: Gtk.MenuButton - sendfile_button: Gtk.Button - send_message_button: Gtk.Button + roster_revealer: Gtk.Revealer + drop_area: Gtk.Box
class ChatListRowBuilder(Builder): @@ -401,56 +389,6 @@ class GroupchatConfigBuilder(Builder): error_label: Gtk.Label
-class GroupchatControlBuilder(Builder): - drop_area: Gtk.Box - formattings_menu: Gtk.Menu - bold: Gtk.MenuItem - italic: Gtk.MenuItem - strike: Gtk.MenuItem - groupchat_control_hbox: Gtk.Box - overlay: Gtk.Overlay - stack: Gtk.Stack - groupchat_control_vbox: Gtk.Box - textview_box: Gtk.Box - conv_view_overlay: Gtk.Overlay - hbox: Gtk.Box - quick_invite_button: Gtk.Button - settings_menu: Gtk.MenuButton - authentication_button: Gtk.Button - lock_image: Gtk.Image - encryption_menu: Gtk.MenuButton - sendfile_button: Gtk.Button - emoticons_button: Gtk.MenuButton - send_message_button: Gtk.Button - formattings_button: Gtk.MenuButton - roster_revealer: Gtk.Revealer - nickname_entry: Gtk.Entry - nickname_change_button: Gtk.Button - password_set_button: Gtk.Button - password_entry: Gtk.Entry - captcha_set_button: Gtk.Button - captcha_box: Gtk.Box - remove_bookmark_button: Gtk.Button - retry_button: Gtk.Button - close_button: Gtk.Button - error_label: Gtk.Label - error_heading: Gtk.Label - captcha_close_button: Gtk.Button - captcha_try_again_button: Gtk.Button - captcha_error_label: Gtk.Label - kick_label: Gtk.Label - kick_participant_button: Gtk.Button - kick_reason_entry: Gtk.Entry - ban_label: Gtk.Label - ban_participant_button: Gtk.Button - ban_reason_entry: Gtk.Entry - destroy_button: Gtk.Button - destroy_alternate_entry: Gtk.Entry - destroy_reason_entry: Gtk.Entry - invite_grid: Gtk.Grid - invite_button: Gtk.Button - - class GroupchatCreationBuilder(Builder): account_liststore: Gtk.ListStore stack: Gtk.Stack @@ -1040,8 +978,6 @@ def get_builder(file_name: Literal['groupchat_affiliation.ui'], widgets: list[st @overload def get_builder(file_name: Literal['groupchat_config.ui'], widgets: list[str] = ...) -> GroupchatConfigBuilder: ... @overload -def get_builder(file_name: Literal['groupchat_control.ui'], widgets: list[str] = ...) -> GroupchatControlBuilder: ... -@overload def get_builder(file_name: Literal['groupchat_creation.ui'], widgets: list[str] = ...) -> GroupchatCreationBuilder: ... @overload def get_builder(file_name: Literal['groupchat_details.ui'], widgets: list[str] = ...) -> GroupchatDetailsBuilder: ...
===================================== gajim/gtk/controls/base.py ===================================== @@ -28,6 +28,7 @@ from typing import Any from typing import Optional from typing import Union +from typing import cast
import os import logging @@ -117,8 +118,8 @@ def __init__(self, widget_name: str, account: str, jid: JID) -> None:
self.control_id: str = str(uuid.uuid4())
- self.xml = get_builder(f'{widget_name}.ui') - self.widget: Gtk.Box = self.xml.get_object('control_box') + self.xml = get_builder('chat_control.ui') + self.widget = cast(Gtk.Box, self.xml.get_object('control_box'))
# Drag and drop self.xml.overlay.add_overlay(self.xml.drop_area)
===================================== gajim/gtk/controls/groupchat.py ===================================== @@ -85,11 +85,14 @@ def __init__(self, account: str, jid: JID) -> None: self._groupchat_state = GroupchatState(self.contact) self.xml.conv_view_overlay.add_overlay(self._groupchat_state)
+ self._roster_revealer = Gtk.Revealer() + self.xml.conv_view_box.add(self._roster_revealer) + self.roster = GroupchatRoster(self.account, self.room_jid, self) - self.xml.roster_revealer.add(self.roster) + self._roster_revealer.add(self.roster)
show_roster = app.settings.get('hide_groupchat_occupants_list') - self.xml.roster_revealer.set_reveal_child(show_roster) + self._roster_revealer.set_reveal_child(show_roster) app.settings.connect_signal( 'hide_groupchat_occupants_list', self._show_roster) self.roster.connect('row-activated', self._on_roster_row_activated) @@ -149,8 +152,8 @@ def _show_roster(self, show_roster: bool, *args: Any) -> None: transition = Gtk.RevealerTransitionType.SLIDE_RIGHT if show_roster: transition = Gtk.RevealerTransitionType.SLIDE_LEFT - self.xml.roster_revealer.set_transition_type(transition) - self.xml.roster_revealer.set_reveal_child(show_roster) + self._roster_revealer.set_transition_type(transition) + self._roster_revealer.set_reveal_child(show_roster)
def _on_roster_row_activated(self, _roster: GroupchatRoster,
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/3d8ac70c960e51c3080bb9beb873da8fe...