Sat, 02 Jan 2021 21:58:08 -0600
Some initial cleanups to PidginStatusBox
* Removed the connecting animation
* Removed the typing animation
* Internally track network connectivity status
* Moved object declaration to G_DEFINE_*_TYPE
* Removed the timer that would set a status message after you stop typing.
Testing Done:
Compiled and ran locally.
Reviewed at https://reviews.imfreedom.org/r/320/
<?xml version="1.0" encoding="UTF-8"?> <!-- Generated with glade 3.22.2 Pidgin - Internet Messenger Copyright (C) Pidgin Developers <devel@pidgin.im> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> <interface> <requires lib="Talkatu" version="0.0"/> <requires lib="gtk+" version="3.20"/> <!-- interface-license-type gplv2 --> <!-- interface-name Pidgin --> <!-- interface-description Internet Messenger --> <!-- interface-copyright Pidgin Developers <devel@pidgin.im> --> <object class="TalkatuHtmlBuffer" id="log_buffer"/> <object class="GtkTreeStore" id="treestore"> <columns> <!-- column-name markup --> <column type="gchararray"/> <!-- column-name log --> <column type="gpointer"/> </columns> </object> <template class="PidginLogViewer" parent="GtkDialog"> <property name="can_focus">False</property> <property name="role">log_viewer</property> <property name="type_hint">dialog</property> <child type="titlebar"> <placeholder/> </child> <child internal-child="vbox"> <object class="GtkBox"> <property name="can_focus">False</property> <property name="margin_top">6</property> <property name="margin_bottom">6</property> <property name="orientation">vertical</property> <property name="spacing">2</property> <child internal-child="action_area"> <object class="GtkButtonBox"> <property name="can_focus">False</property> <property name="layout_style">end</property> <child> <object class="GtkButton" id="browse_button"> <property name="label" translatable="yes">_Browse logs folder</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="use_underline">True</property> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkButton" id="close_button"> <property name="label" translatable="yes">_Close</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="use_underline">True</property> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> <child> <object class="GtkBox" id="title_box"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">6</property> <child> <placeholder/> </child> <child> <object class="GtkLabel" id="label"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Conversations with buddy</property> <property name="track_visited_links">False</property> <property name="xalign">0</property> <property name="yalign">0</property> <attributes> <attribute name="weight" value="bold"/> <attribute name="scale" value="1.2"/> </attributes> <accessibility> <relation type="label-for" target="PidginLogViewer"/> </accessibility> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkPaned"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="border_width">0</property> <child> <object class="GtkScrolledWindow"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hscrollbar_policy">never</property> <property name="vscrollbar_policy">always</property> <property name="shadow_type">in</property> <child> <object class="GtkTreeView" id="treeview"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="model">treestore</property> <property name="headers_visible">False</property> <signal name="button-press-event" handler="log_button_press_cb" object="PidginLogViewer" swapped="no"/> <signal name="popup-menu" handler="log_popup_menu_cb" object="PidginLogViewer" swapped="no"/> <signal name="row-activated" handler="log_row_activated_cb" object="PidginLogViewer" swapped="no"/> <child internal-child="selection"> <object class="GtkTreeSelection"> <signal name="changed" handler="log_select_cb" object="PidginLogViewer" swapped="no"/> </object> </child> <child> <object class="GtkTreeViewColumn" id="time"> <child> <object class="GtkCellRendererText"/> <attributes> <attribute name="markup">0</attribute> </attributes> </child> </object> </child> </object> </child> </object> <packing> <property name="resize">False</property> <property name="shrink">True</property> </packing> </child> <child> <object class="GtkBox"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="orientation">vertical</property> <child> <object class="GtkSearchBar"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkSearchEntry" id="entry"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="primary_icon_name">edit-find-symbolic</property> <property name="primary_icon_activatable">False</property> <property name="primary_icon_sensitive">False</property> <signal name="search-changed" handler="entry_search_changed_cb" object="PidginLogViewer" swapped="no"/> <signal name="stop-search" handler="entry_stop_search_cb" object="PidginLogViewer" swapped="no"/> </object> </child> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkScrolledWindow"> <property name="width_request">320</property> <property name="height_request">200</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="shadow_type">in</property> <child> <object class="TalkatuView" id="log_view"> <property name="name">pidgin_log_view</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="hexpand_set">True</property> <property name="vexpand_set">True</property> <property name="editable">False</property> <property name="wrap_mode">word</property> <property name="buffer">log_buffer</property> </object> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">2</property> </packing> </child> </object> <packing> <property name="resize">True</property> <property name="shrink">True</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkLabel" id="size_label"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes"><b>Total log size:</b> 123 KiB</property> <property name="use_markup">True</property> <property name="xalign">0</property> <property name="yalign">0</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">2</property> </packing> </child> </object> </child> <action-widgets> <action-widget response="-11">browse_button</action-widget> <action-widget response="-7">close_button</action-widget> </action-widgets> <accessibility> <relation type="labelled-by" target="label"/> </accessibility> </template> </interface>