@@ -69,51 +69,40 @@ constexpr std::array<LayoutStyle, 4> layout_config_styles{{
6969const gchar *layout_titles[] = { N_ (" Tools" ), N_ (" Files" ), N_ (" Image" ) };
7070
7171
72- void layout_config_list_order_set (LayoutConfig *lc, gint src, gint dest )
72+ gboolean tree_model_get_row_iter (GtkTreeModel *model, int row, GtkTreeIter *iter )
7373{
74- GtkListStore *store;
75- GtkTreeIter iter;
76- gboolean valid;
77- gint n;
74+ int cur = 0 ;
7875
79- store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (lc->listview )));
80-
81- n = 0 ;
82- valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter);
83- while (valid)
76+ gboolean valid = gtk_tree_model_get_iter_first (model, iter);
77+ while (valid && cur != row)
8478 {
85- if (n == dest)
86- {
87- gtk_list_store_set (store, &iter, COLUMN_TEXT, _ (layout_titles[src]), COLUMN_KEY, src, -1 );
88- return ;
89- }
90- n++;
91- valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter);
79+ cur++;
80+ valid = gtk_tree_model_iter_next (model, iter);
9281 }
82+
83+ return valid;
9384}
9485
95- gint layout_config_list_order_get (LayoutConfig *lc, gint n )
86+ void layout_config_list_order_set (LayoutConfig *lc, gint src, gint dest )
9687{
97- GtkTreeModel *store;
88+ GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (lc->listview ));
89+
9890 GtkTreeIter iter;
99- gboolean valid;
100- gint c = 0 ;
91+ if (!tree_model_get_row_iter (model, dest, &iter)) return ;
10192
102- store = gtk_tree_view_get_model (GTK_TREE_VIEW (lc->listview ));
93+ gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_TEXT, _ (layout_titles[src]), COLUMN_KEY, src, -1 );
94+ }
10395
104- valid = gtk_tree_model_get_iter_first (store, &iter);
105- while (valid)
106- {
107- if (c == n)
108- {
109- gint val;
110- gtk_tree_model_get (store, &iter, COLUMN_KEY, &val, -1 );
111- return val;
112- }
113- c++;
114- valid = gtk_tree_model_iter_next (store, &iter);
115- }
116- return 0 ;
96+ gint layout_config_list_order_get (LayoutConfig *lc, gint n)
97+ {
98+ GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (lc->listview ));
99+
100+ GtkTreeIter iter;
101+ if (!tree_model_get_row_iter (model, n, &iter)) return 0 ;
102+
103+ gint val;
104+ gtk_tree_model_get (model, &iter, COLUMN_KEY, &val, -1 );
105+ return val;
117106}
118107
119108void layout_config_widget_click_cb (GtkWidget *widget, gpointer data)
0 commit comments