[Xfce4-commits] <thunar:master> Use pspec notify in list model.
Nick Schermer
noreply at xfce.org
Sun Nov 11 01:36:06 CET 2012
Updating branch refs/heads/master
to 959b2995fb3adacbb1b2ff8cf22f5edbfdc86a91 (commit)
from 65b92dcd87c76da6892639e4b603906e90781af8 (commit)
commit 959b2995fb3adacbb1b2ff8cf22f5edbfdc86a91
Author: Nick Schermer <nick at xfce.org>
Date: Sun Nov 11 00:14:06 2012 +0100
Use pspec notify in list model.
thunar/thunar-list-model.c | 105 ++++++++++++++++++++++----------------------
1 files changed, 52 insertions(+), 53 deletions(-)
diff --git a/thunar/thunar-list-model.c b/thunar/thunar-list-model.c
index 2cdeec2..e404193 100644
--- a/thunar/thunar-list-model.c
+++ b/thunar/thunar-list-model.c
@@ -49,6 +49,7 @@ enum
PROP_FOLDERS_FIRST,
PROP_NUM_FILES,
PROP_SHOW_HIDDEN,
+ N_PROPERTIES
};
/* Signal identifiers */
@@ -229,7 +230,8 @@ struct _ThunarListModel
-static guint list_model_signals[LAST_SIGNAL];
+static guint list_model_signals[LAST_SIGNAL];
+static GParamSpec *list_model_props[N_PROPERTIES] = { NULL, };
@@ -255,79 +257,76 @@ thunar_list_model_class_init (ThunarListModelClass *klass)
*
* Tells whether the sorting should be case sensitive.
**/
- g_object_class_install_property (gobject_class,
- PROP_CASE_SENSITIVE,
- g_param_spec_boolean ("case-sensitive",
- "case-sensitive",
- "case-sensitive",
- TRUE,
- EXO_PARAM_READWRITE));
+ list_model_props[PROP_CASE_SENSITIVE] =
+ g_param_spec_boolean ("case-sensitive",
+ "case-sensitive",
+ "case-sensitive",
+ TRUE,
+ EXO_PARAM_READWRITE);
/**
* ThunarListModel:date-style:
*
* The style used to format dates.
**/
- g_object_class_install_property (gobject_class,
- PROP_DATE_STYLE,
- g_param_spec_enum ("date-style",
- "date-style",
- "date-style",
- THUNAR_TYPE_DATE_STYLE,
- THUNAR_DATE_STYLE_SIMPLE,
- EXO_PARAM_READWRITE));
+ list_model_props[PROP_DATE_STYLE] =
+ g_param_spec_enum ("date-style",
+ "date-style",
+ "date-style",
+ THUNAR_TYPE_DATE_STYLE,
+ THUNAR_DATE_STYLE_SIMPLE,
+ EXO_PARAM_READWRITE);
/**
* ThunarListModel:folder:
*
* The folder presented by this #ThunarListModel.
**/
- g_object_class_install_property (gobject_class,
- PROP_FOLDER,
- g_param_spec_object ("folder",
- "folder",
- "folder",
- THUNAR_TYPE_FOLDER,
- EXO_PARAM_READWRITE));
+ list_model_props[PROP_FOLDER] =
+ g_param_spec_object ("folder",
+ "folder",
+ "folder",
+ THUNAR_TYPE_FOLDER,
+ EXO_PARAM_READWRITE);
/**
* ThunarListModel::folders-first:
*
* Tells whether to always sort folders before other files.
**/
- g_object_class_install_property (gobject_class,
- PROP_FOLDERS_FIRST,
- g_param_spec_boolean ("folders-first",
- "folders-first",
- "folders-first",
- TRUE,
- EXO_PARAM_READWRITE));
+ list_model_props[PROP_FOLDERS_FIRST] =
+ g_param_spec_boolean ("folders-first",
+ "folders-first",
+ "folders-first",
+ TRUE,
+ EXO_PARAM_READWRITE);
/**
* ThunarListModel::num-files:
*
* The number of files in the folder presented by this #ThunarListModel.
**/
- g_object_class_install_property (gobject_class,
- PROP_NUM_FILES,
- g_param_spec_uint ("num-files",
- "num-files",
- "num-files",
- 0, G_MAXUINT, 0,
- EXO_PARAM_READABLE));
+ list_model_props[PROP_NUM_FILES] =
+ g_param_spec_uint ("num-files",
+ "num-files",
+ "num-files",
+ 0, G_MAXUINT, 0,
+ EXO_PARAM_READABLE);
/**
* ThunarListModel::show-hidden:
*
* Tells whether to include hidden (and backup) files.
**/
- g_object_class_install_property (gobject_class,
- PROP_SHOW_HIDDEN,
- g_param_spec_boolean ("show-hidden",
- "show-hidden",
- "show-hidden",
- FALSE,
- EXO_PARAM_READWRITE));
+ list_model_props[PROP_SHOW_HIDDEN] =
+ g_param_spec_boolean ("show-hidden",
+ "show-hidden",
+ "show-hidden",
+ FALSE,
+ EXO_PARAM_READWRITE);
+
+ /* install properties */
+ g_object_class_install_properties (gobject_class, N_PROPERTIES, list_model_props);
/**
* ThunarListModel::error:
@@ -1243,7 +1242,7 @@ thunar_list_model_files_added (ThunarFolder *folder,
gtk_tree_path_free (path);
/* number of visible files may have changed */
- g_object_notify (G_OBJECT (store), "num-files");
+ g_object_notify_by_pspec (G_OBJECT (store), list_model_props[PROP_NUM_FILES]);
}
@@ -1304,7 +1303,7 @@ thunar_list_model_files_removed (ThunarFolder *folder,
}
/* this probably changed */
- g_object_notify (G_OBJECT (store), "num-files");
+ g_object_notify_by_pspec (G_OBJECT (store), list_model_props[PROP_NUM_FILES]);
}
@@ -1643,7 +1642,7 @@ thunar_list_model_set_case_sensitive (ThunarListModel *store,
thunar_list_model_sort (store);
/* notify listeners */
- g_object_notify (G_OBJECT (store), "case-sensitive");
+ g_object_notify_by_pspec (G_OBJECT (store), list_model_props[PROP_CASE_SENSITIVE]);
}
}
@@ -1687,7 +1686,7 @@ thunar_list_model_set_date_style (ThunarListModel *store,
store->date_style = date_style;
/* notify listeners */
- g_object_notify (G_OBJECT (store), "date-style");
+ g_object_notify_by_pspec (G_OBJECT (store), list_model_props[PROP_DATE_STYLE]);
/* emit a "changed" signal for each row, so the display is reloaded with the new date style */
gtk_tree_model_foreach (GTK_TREE_MODEL (store), (GtkTreeModelForeachFunc) gtk_tree_model_row_changed, NULL);
@@ -1804,8 +1803,8 @@ thunar_list_model_set_folder (ThunarListModel *store,
}
/* notify listeners that we have a new folder */
- g_object_notify (G_OBJECT (store), "folder");
- g_object_notify (G_OBJECT (store), "num-files");
+ g_object_notify_by_pspec (G_OBJECT (store), list_model_props[PROP_FOLDER]);
+ g_object_notify_by_pspec (G_OBJECT (store), list_model_props[PROP_NUM_FILES]);
g_object_thaw_notify (G_OBJECT (store));
}
@@ -1846,7 +1845,7 @@ thunar_list_model_set_folders_first (ThunarListModel *store,
/* apply the new setting (re-sorting the store) */
store->sort_folders_first = folders_first;
- g_object_notify (G_OBJECT (store), "folders-first");
+ g_object_notify_by_pspec (G_OBJECT (store), list_model_props[PROP_FOLDERS_FIRST]);
thunar_list_model_sort (store);
}
@@ -1948,8 +1947,8 @@ thunar_list_model_set_show_hidden (ThunarListModel *store,
/* notify listeners about the new setting */
g_object_freeze_notify (G_OBJECT (store));
- g_object_notify (G_OBJECT (store), "num-files");
- g_object_notify (G_OBJECT (store), "show-hidden");
+ g_object_notify_by_pspec (G_OBJECT (store), list_model_props[PROP_NUM_FILES]);
+ g_object_notify_by_pspec (G_OBJECT (store), list_model_props[PROP_SHOW_HIDDEN]);
g_object_thaw_notify (G_OBJECT (store));
}
More information about the Xfce4-commits
mailing list