[gedit] Create models from the ui file
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] Create models from the ui file
- Date: Wed, 24 Apr 2013 21:55:23 +0000 (UTC)
commit 63d3ac371999a9a9c4ffc61fee72b74dc23d86f1
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Wed Apr 24 23:17:05 2013 +0200
Create models from the ui file
gedit/gedit-encodings-dialog.c | 86 ++++++--------------------------------
gedit/gedit-encodings-dialog.ui | 82 +++++++++++++++++++++++++++++++++++-
2 files changed, 93 insertions(+), 75 deletions(-)
---
diff --git a/gedit/gedit-encodings-dialog.c b/gedit/gedit-encodings-dialog.c
index af3f339..442e77c 100644
--- a/gedit/gedit-encodings-dialog.c
+++ b/gedit/gedit-encodings-dialog.c
@@ -317,14 +317,17 @@ gedit_encodings_dialog_init (GeditEncodingsDialog *dlg)
{
GtkBuilder *builder;
GtkWidget *content;
- GtkCellRenderer *cell_renderer;
- GtkTreeModel *sort_model;
- GtkTreeViewColumn *column;
GtkTreeIter parent_iter;
GtkTreeSelection *selection;
+ GtkTreeModel *sort_available;
+ GtkTreeModel *sort_displayed;
const GeditEncoding *enc;
int i;
gchar *root_objects[] = {
+ "available_liststore",
+ "sort_available",
+ "displayed_liststore",
+ "sort_displayed",
"encodings-dialog-contents",
NULL
};
@@ -369,7 +372,11 @@ gedit_encodings_dialog_init (GeditEncodingsDialog *dlg)
dlg->priv->add_button = GTK_WIDGET (gtk_builder_get_object (builder, "add-button"));
dlg->priv->remove_button = GTK_WIDGET (gtk_builder_get_object (builder, "remove-button"));
dlg->priv->available_treeview = GTK_WIDGET (gtk_builder_get_object (builder, "available-treeview"));
+ dlg->priv->available_liststore = GTK_LIST_STORE (gtk_builder_get_object (builder,
"available_liststore"));
+ sort_available = GTK_TREE_MODEL (gtk_builder_get_object (builder, "sort_available"));
dlg->priv->displayed_treeview = GTK_WIDGET (gtk_builder_get_object (builder, "displayed-treeview"));
+ dlg->priv->displayed_liststore = GTK_LIST_STORE (gtk_builder_get_object (builder,
"displayed_liststore"));
+ sort_displayed = GTK_TREE_MODEL (gtk_builder_get_object (builder, "sort_displayed"));
g_object_unref (builder);
gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dlg))),
@@ -387,28 +394,6 @@ gedit_encodings_dialog_init (GeditEncodingsDialog *dlg)
dlg);
/* Tree view of available encodings */
- dlg->priv->available_liststore = gtk_list_store_new (N_COLUMNS,
- G_TYPE_STRING,
- G_TYPE_STRING);
-
- cell_renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("_Description"),
- cell_renderer,
- "text", COLUMN_NAME,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (dlg->priv->available_treeview),
- column);
- gtk_tree_view_column_set_sort_column_id (column, COLUMN_NAME);
-
- cell_renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("_Encoding"),
- cell_renderer,
- "text",
- COLUMN_CHARSET,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (dlg->priv->available_treeview),
- column);
- gtk_tree_view_column_set_sort_column_id (column, COLUMN_CHARSET);
/* Add the data */
i = 0;
@@ -427,19 +412,11 @@ gedit_encodings_dialog_init (GeditEncodingsDialog *dlg)
}
/* Sort model */
- sort_model = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (dlg->priv->available_liststore));
- gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (sort_model),
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (sort_available),
COLUMN_NAME,
GTK_SORT_ASCENDING);
- gtk_tree_view_set_model (GTK_TREE_VIEW (dlg->priv->available_treeview),
- sort_model);
- g_object_unref (G_OBJECT (dlg->priv->available_liststore));
- g_object_unref (G_OBJECT (sort_model));
-
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (dlg->priv->available_treeview));
- gtk_tree_selection_set_mode (GTK_TREE_SELECTION (selection),
- GTK_SELECTION_MULTIPLE);
available_selection_changed_callback (selection, dlg);
g_signal_connect (selection,
@@ -448,47 +425,16 @@ gedit_encodings_dialog_init (GeditEncodingsDialog *dlg)
dlg);
/* Tree view of selected encodings */
- dlg->priv->displayed_liststore = gtk_list_store_new (N_COLUMNS,
- G_TYPE_STRING,
- G_TYPE_STRING);
-
- cell_renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("_Description"),
- cell_renderer,
- "text", COLUMN_NAME,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (dlg->priv->displayed_treeview),
- column);
- gtk_tree_view_column_set_sort_column_id (column, COLUMN_NAME);
-
- cell_renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("_Encoding"),
- cell_renderer,
- "text",
- COLUMN_CHARSET,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (dlg->priv->displayed_treeview),
- column);
- gtk_tree_view_column_set_sort_column_id (column, COLUMN_CHARSET);
/* Add the data */
init_shown_in_menu_tree_model (dlg);
/* Sort model */
- sort_model = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (dlg->priv->displayed_liststore));
-
- gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE
- (sort_model), COLUMN_NAME,
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (sort_displayed),
+ COLUMN_NAME,
GTK_SORT_ASCENDING);
- gtk_tree_view_set_model (GTK_TREE_VIEW (dlg->priv->displayed_treeview),
- sort_model);
- g_object_unref (G_OBJECT (sort_model));
- g_object_unref (G_OBJECT (dlg->priv->displayed_liststore));
-
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (dlg->priv->displayed_treeview));
- gtk_tree_selection_set_mode (GTK_TREE_SELECTION (selection),
- GTK_SELECTION_MULTIPLE);
displayed_selection_changed_callback (selection, dlg);
g_signal_connect (selection,
@@ -500,11 +446,7 @@ gedit_encodings_dialog_init (GeditEncodingsDialog *dlg)
GtkWidget *
gedit_encodings_dialog_new (void)
{
- GtkWidget *dlg;
-
- dlg = GTK_WIDGET (g_object_new (GEDIT_TYPE_ENCODINGS_DIALOG, NULL));
-
- return dlg;
+ return GTK_WIDGET (g_object_new (GEDIT_TYPE_ENCODINGS_DIALOG, NULL));
}
/* ex:set ts=8 noet: */
diff --git a/gedit/gedit-encodings-dialog.ui b/gedit/gedit-encodings-dialog.ui
index 99c7dc1..6b2652f 100644
--- a/gedit/gedit-encodings-dialog.ui
+++ b/gedit/gedit-encodings-dialog.ui
@@ -1,6 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <!-- interface-requires gtk+ 3.0 -->
+ <!-- interface-requires gtk+ 3.8 -->
+ <object class="GtkListStore" id="available_liststore">
+ <columns>
+ <!-- column-name name -->
+ <column type="gchararray"/>
+ <!-- column-name charset -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkListStore" id="displayed_liststore">
+ <columns>
+ <!-- column-name name -->
+ <column type="gchararray"/>
+ <!-- column-name charset -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkTreeModelSort" id="sort_available">
+ <property name="model">available_liststore</property>
+ </object>
+ <object class="GtkTreeModelSort" id="sort_displayed">
+ <property name="model">displayed_liststore</property>
+ </object>
<object class="GtkDialog" id="encodings-dialog">
<property name="width_request">650</property>
<property name="height_request">400</property>
@@ -130,9 +152,36 @@
<property name="can_focus">True</property>
<property name="has_focus">False</property>
<property name="is_focus">False</property>
+ <property name="model">sort_available</property>
<property name="rules_hint">True</property>
<child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection"/>
+ <object class="GtkTreeSelection" id="treeview-selection">
+ <property name="mode">multiple</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+ <property name="title" translatable="yes">_Description</property>
+ <property name="sort_column_id">0</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext1"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn2">
+ <property name="title" translatable="yes">_Encoding</property>
+ <property name="sort_column_id">1</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext2"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
</child>
</object>
</child>
@@ -199,9 +248,36 @@
<property name="is_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
+ <property name="model">sort_displayed</property>
<property name="rules_hint">True</property>
<child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection1"/>
+ <object class="GtkTreeSelection" id="treeview-selection1">
+ <property name="mode">multiple</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn3">
+ <property name="title" translatable="yes">_Description</property>
+ <property name="sort_column_id">0</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext3"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn4">
+ <property name="title" translatable="yes">_Encoding</property>
+ <property name="sort_column_id">1</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext4"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
</child>
</object>
</child>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]