pidgin/pidgin

Convert PidginProtocolChooser to an AdwComboRow

20 months ago, Elliott Sales de Andrade
83849603277b
Parents fc7915f49b1c
Children ee44db31a1e3
Convert PidginProtocolChooser to an AdwComboRow

Now that all containers for it are `AdwPreferencesGroup`, this can work properly
like this.

Testing Done:
Opened a new account and checked that the Protocol chooser did something.

Reviewed at https://reviews.imfreedom.org/r/1767/
--- a/pidgin/pidginprotocolchooser.c Thu Sep 15 23:33:56 2022 -0500
+++ b/pidgin/pidginprotocolchooser.c Thu Sep 15 23:38:08 2022 -0500
@@ -34,9 +34,8 @@
* Structs
*****************************************************************************/
struct _PidginProtocolChooser {
- AdwBin parent;
+ AdwComboRow parent;
- GtkDropDown *dropdown;
GtkWidget *sort;
};
@@ -56,7 +55,8 @@
/******************************************************************************
* GObject Implementation
*****************************************************************************/
-G_DEFINE_TYPE(PidginProtocolChooser, pidgin_protocol_chooser, ADW_TYPE_BIN)
+G_DEFINE_TYPE(PidginProtocolChooser, pidgin_protocol_chooser,
+ ADW_TYPE_COMBO_ROW)
static void
pidgin_protocol_chooser_get_property(GObject *obj, guint prop_id,
@@ -121,8 +121,6 @@
"/im/pidgin/Pidgin3/Protocols/chooser.ui");
gtk_widget_class_bind_template_child(widget_class, PidginProtocolChooser,
- dropdown);
- gtk_widget_class_bind_template_child(widget_class, PidginProtocolChooser,
sort);
gtk_widget_class_bind_template_callback(widget_class, dropdown_changed_cb);
@@ -153,7 +151,7 @@
g_return_val_if_fail(PIDGIN_IS_PROTOCOL_CHOOSER(chooser), NULL);
- protocol = gtk_drop_down_get_selected_item(chooser->dropdown);
+ protocol = adw_combo_row_get_selected_item(ADW_COMBO_ROW(chooser));
return protocol;
}
@@ -167,7 +165,7 @@
g_return_if_fail(PIDGIN_IS_PROTOCOL_CHOOSER(chooser));
if(protocol != NULL) {
- GListModel *model = gtk_drop_down_get_model(chooser->dropdown);
+ GListModel *model = adw_combo_row_get_model(ADW_COMBO_ROW(chooser));
guint count = g_list_model_get_n_items(model);
for(guint i = 0; i < count; i++) {
@@ -182,5 +180,5 @@
}
}
- gtk_drop_down_set_selected(chooser->dropdown, position);
+ adw_combo_row_set_selected(ADW_COMBO_ROW(chooser), position);
}
--- a/pidgin/pidginprotocolchooser.h Thu Sep 15 23:33:56 2022 -0500
+++ b/pidgin/pidginprotocolchooser.h Thu Sep 15 23:38:08 2022 -0500
@@ -38,7 +38,7 @@
#define PIDGIN_TYPE_PROTOCOL_CHOOSER (pidgin_protocol_chooser_get_type())
G_DECLARE_FINAL_TYPE(PidginProtocolChooser, pidgin_protocol_chooser, PIDGIN,
- PROTOCOL_CHOOSER, AdwBin)
+ PROTOCOL_CHOOSER, AdwComboRow)
/**
* pidgin_protocol_chooser_new:
--- a/pidgin/resources/Accounts/editor.ui Thu Sep 15 23:33:56 2022 -0500
+++ b/pidgin/resources/Accounts/editor.ui Thu Sep 15 23:38:08 2022 -0500
@@ -47,17 +47,10 @@
<object class="AdwPreferencesGroup" id="login_options">
<property name="title" translatable="1">Login Options</property>
<child>
- <object class="AdwActionRow">
- <property name="activatable-widget">protocol</property>
+ <object class="PidginProtocolChooser" id="protocol">
<property name="title" translatable="1">Pro_tocol</property>
<property name="use-underline">1</property>
- <child>
- <object class="PidginProtocolChooser" id="protocol">
- <property name="hexpand">1</property>
- <property name="valign">center</property>
- <signal name="notify::protocol" handler="pidgin_account_editor_protocol_changed_cb" object="PidginAccountEditor" swapped="no"/>
- </object>
- </child>
+ <signal name="notify::protocol" handler="pidgin_account_editor_protocol_changed_cb" object="PidginAccountEditor" swapped="no"/>
</object>
</child>
<child>
--- a/pidgin/resources/Protocols/chooser.ui Thu Sep 15 23:33:56 2022 -0500
+++ b/pidgin/resources/Protocols/chooser.ui Thu Sep 15 23:38:08 2022 -0500
@@ -24,12 +24,10 @@
<!-- interface-name Pidgin -->
<!-- interface-description Internet Messenger -->
<!-- interface-copyright Pidgin Developers <devel@pidgin.im> -->
- <template class="PidginProtocolChooser" parent="AdwBin">
- <property name="child">
- <object class="GtkDropDown" id="dropdown">
- <property name="factory">
- <object class="GtkBuilderListItemFactory">
- <property name="bytes">
+ <template class="PidginProtocolChooser" parent="AdwComboRow">
+ <property name="factory">
+ <object class="GtkBuilderListItemFactory">
+ <property name="bytes">
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interface>
@@ -62,22 +60,20 @@
</template>
</interface>
]]>
+ </property>
+ </object>
+ </property>
+ <property name="model">
+ <object class="GtkSortListModel" id="sort">
+ <property name="sorter">
+ <object class="GtkStringSorter">
+ <property name="expression">
+ <lookup name="name" type="PurpleProtocol"/>
</property>
</object>
</property>
- <property name="model">
- <object class="GtkSortListModel" id="sort">
- <property name="sorter">
- <object class="GtkStringSorter">
- <property name="expression">
- <lookup name="name" type="PurpleProtocol"/>
- </property>
- </object>
- </property>
- </object>
- </property>
- <signal name="notify::selected" handler="dropdown_changed_cb" object="PidginProtocolChooser" swapped="no"/>
</object>
</property>
+ <signal name="notify::selected" handler="dropdown_changed_cb" object="PidginProtocolChooser" swapped="no"/>
</template>
</interface>