summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrent Hull <[email protected]>2013-01-03 14:18:46 -0500
committerBrent Hull <[email protected]>2013-01-03 14:18:46 -0500
commitafaf42ee70bb886b6ec21d3f9ecc1452cd7fdfda (patch)
tree60d4c51474fb3ba96c9da202eb3b58f0fe989b28
parenta97efe514b474d2646246e98624b2a9ee38d688e (diff)
downloadmate-utils-afaf42ee70bb886b6ec21d3f9ecc1452cd7fdfda.tar.bz2
mate-utils-afaf42ee70bb886b6ec21d3f9ecc1452cd7fdfda.tar.xz
Port mate-search-tool to gsettings (based on GNOME patch, but restoring caja date-format preference)
-rw-r--r--gsearchtool/Makefile.am42
-rw-r--r--gsearchtool/gsearchtool-callbacks.c55
-rw-r--r--gsearchtool/gsearchtool-callbacks.h5
-rw-r--r--gsearchtool/gsearchtool-support.c480
-rw-r--r--gsearchtool/gsearchtool-support.h36
-rw-r--r--gsearchtool/gsearchtool.c218
-rw-r--r--gsearchtool/gsearchtool.h27
-rw-r--r--gsearchtool/help/C/mate-search-tool.xml18
-rw-r--r--gsearchtool/libmateui-deprecated/Makefile.am25
-rw-r--r--gsearchtool/libmateui-deprecated/gsearchtool-entry.c143
-rw-r--r--gsearchtool/mate-search-tool.convert27
-rw-r--r--gsearchtool/org.mate.search-tool.gschema.xml.in117
-rw-r--r--po/POTFILES.in4
13 files changed, 592 insertions, 605 deletions
diff --git a/gsearchtool/Makefile.am b/gsearchtool/Makefile.am
index 77c66581..4431cb02 100644
--- a/gsearchtool/Makefile.am
+++ b/gsearchtool/Makefile.am
@@ -3,8 +3,6 @@ Utilitiesdir = $(datadir)/applications
SUBDIRS = data help libmateui-deprecated
INCLUDES = \
- $(MATE_UTILS_CFLAGS) \
- $(GIO_UNIX_CFLAGS) \
-I$(srcdir)/libmateui-deprecated \
-I$(top_srcdir)/libeggsmclient \
-DG_DISABLE_DEPRECATED \
@@ -18,10 +16,16 @@ libeggsmclient_LIB = $(top_builddir)/libeggsmclient/libeggsmclient.la
bin_PROGRAMS = mate-search-tool
-schemadir = $(MATECONF_SCHEMA_FILE_DIR)
-schema_in_file = mate-search-tool.schemas.in
-schema_DATA = $(schema_in_file:.schemas.in=.schemas)
-@INTLTOOL_SCHEMAS_RULE@
+gsettingsschema_in_files = org.mate.search-tool.gschema.xml.in
+gsettings_SCHEMAS = $(gsettingsschema_in_files:.xml.in=.xml)
+.PRECIOUS: $(gsettings_SCHEMAS)
+
+@INTLTOOL_XML_NOMERGE_RULE@
+
+@GSETTINGS_RULES@
+
+convertdir = $(datadir)/MateConf/gsettings
+convert_DATA = mate-search-tool.convert
mate_search_tool_SOURCES = \
gsearchtool-support.c \
@@ -31,9 +35,17 @@ mate_search_tool_SOURCES = \
gsearchtool.c \
gsearchtool.h
+mate_search_tool_CFLAGS = \
+ $(GLIB_CFLAGS) \
+ $(GIO_CFLAGS) \
+ $(GIO_UNIX_CFLAGS) \
+ $(GTK_CFLAGS)
+
mate_search_tool_LDADD = \
- $(MATE_UTILS_LIBS) \
- $(GIO_UNIX_LIBS) \
+ $(GLIB_LIBS) \
+ $(GIO_LIBS) \
+ $(GIO_UNIX_LIBS) \
+ $(GTK_LIBS) \
$(libmateui_deprecated_LIB) \
$(libeggsmclient_LIB)
@@ -46,21 +58,13 @@ Utilities_DATA = $(Utilities_in_files:.desktop.in=.desktop)
EXTRA_DIST = \
$(Utilities_in_files) \
$(Utilities_DATA) \
- $(schema_in_file) \
+ $(gsettingsschema_in_files) \
$(man_MANS)
-if MATECONF_SCHEMAS_INSTALL
-install-data-local:
- if test -z "$(DESTDIR)" ; then \
- MATECONF_CONFIG_SOURCE=$(MATECONF_SCHEMA_CONFIG_SOURCE) $(MATECONFTOOL) --makefile-install-rule $(top_builddir)/gsearchtool/$(schema_DATA) ; \
- fi
-else
-install-data-local:
-endif
-
CLEANFILES = \
mate-search-tool.desktop \
- $(schema_DATA)
+ $(convert_DATA) \
+ $(gsettings_SCHEMAS)
disthook:
cd $(distdir) ; rm -f $(CLEANFILES)
diff --git a/gsearchtool/gsearchtool-callbacks.c b/gsearchtool/gsearchtool-callbacks.c
index 7dc270a7..cbaea560 100644
--- a/gsearchtool/gsearchtool-callbacks.c
+++ b/gsearchtool/gsearchtool-callbacks.c
@@ -58,12 +58,15 @@ store_window_state_and_geometry (GSearchWindow *gsearch)
gsearch->window_width = MAX (gsearch->window_width, MINIMUM_WINDOW_WIDTH);
gsearch->window_height = MAX (gsearch->window_height, MINIMUM_WINDOW_HEIGHT);
- gsearchtool_mateconf_set_int ("/apps/mate-search-tool/default_window_width",
- gsearch->window_width);
- gsearchtool_mateconf_set_int ("/apps/mate-search-tool/default_window_height",
- gsearch->window_height);
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/default_window_maximized",
- gsearch->is_window_maximized);
+ g_settings_set_int (gsearch->mate_search_tool_settings,
+ "default-window-width",
+ gsearch->window_width);
+ g_settings_set_int (gsearch->mate_search_tool_settings,
+ "default-window-height",
+ gsearch->window_height);
+ g_settings_set_boolean (gsearch->mate_search_tool_settings,
+ "default-window-maximized",
+ gsearch->is_window_maximized);
}
static void
@@ -270,13 +273,13 @@ remove_constraint_cb (GtkWidget * widget,
&gsearch->window_geometry,
GDK_HINT_MIN_SIZE);
- gtk_container_remove (GTK_CONTAINER (gsearch->available_options_vbox), widget->parent);
+ gtk_container_remove (GTK_CONTAINER (gsearch->available_options_vbox), gtk_widget_get_parent (widget));
gsearch->available_options_selected_list =
g_list_remove (gsearch->available_options_selected_list, constraint);
set_constraint_selected_state (gsearch, constraint->constraint_id, FALSE);
- set_constraint_mateconf_boolean (constraint->constraint_id, FALSE);
+ set_constraint_gsettings_boolean (constraint->constraint_id, FALSE);
g_slice_free (GSearchConstraint, constraint);
g_list_free (list);
}
@@ -326,7 +329,7 @@ look_in_folder_changed_cb (GtkWidget * widget,
value = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (gsearch->look_in_folder_button));
if (value != NULL) {
- gsearchtool_mateconf_set_string ("/apps/mate-search-tool/look_in_folder", value);
+ g_settings_set_string (gsearch->mate_search_tool_settings, "look-in-folder", value);
}
g_free (value);
}
@@ -493,7 +496,7 @@ open_file_cb (GtkMenuItem * action,
if (!no_files_found) {
GAppInfo * app = NULL;
- if (GTK_IS_OBJECT (action)) {
+ if (GTK_IS_MENU_ITEM (action)) {
app = g_object_get_data (G_OBJECT (action), "app");
}
@@ -1073,6 +1076,7 @@ build_popup_menu_for_file (GSearchWindow * gsearch,
/* Popup menu item: Open with (default) */
str = g_strdup_printf (_("_Open with %s"), g_app_info_get_name (list->data));
new1 = gtk_image_menu_item_new_with_mnemonic (str);
+ g_free (str);
gtk_widget_show (new1);
g_object_set_data_full (G_OBJECT (new1), "app", (GAppInfo *)list->data,
@@ -1112,6 +1116,7 @@ build_popup_menu_for_file (GSearchWindow * gsearch,
}
new1 = gtk_image_menu_item_new_with_mnemonic (str);
+ g_free (str);
gtk_widget_show (new1);
g_object_set_data_full (G_OBJECT (new1), "app", (GAppInfo *)list->data,
@@ -1579,7 +1584,7 @@ drag_file_cb (GtkWidget * widget,
uri_list = g_strconcat (uri_list, "\n", tmp_uri, NULL);
}
gtk_selection_data_set (selection_data,
- selection_data->target,
+ gtk_selection_data_get_target (selection_data),
8,
(guchar *) uri_list,
strlen (uri_list));
@@ -1889,40 +1894,48 @@ disable_quick_search_cb (GtkWidget * dialog,
gint response,
gpointer data)
{
+ GSearchWindow * gsearch = data;
+
gtk_widget_destroy (GTK_WIDGET (dialog));
if (response == GTK_RESPONSE_OK) {
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/disable_quick_search", TRUE);
+ g_settings_set_boolean (gsearch->mate_search_tool_settings, "disable-quick-search", TRUE);
}
}
void
-single_click_to_activate_key_changed_cb (MateConfClient * client,
- guint cnxn_id,
- MateConfEntry * entry,
+single_click_to_activate_key_changed_cb (GSettings * settings,
+ gchar * key,
gpointer user_data)
{
GSearchWindow * gsearch = user_data;
- MateConfValue * value;
-
- value = mateconf_entry_get_value (entry);
+ gchar * value;
- g_return_if_fail (value->type == MATECONF_VALUE_STRING);
+ value = g_settings_get_string (settings, key);
gsearch->is_search_results_single_click_to_activate =
- (strncmp (mateconf_value_get_string (value), "single", 6) == 0) ? TRUE : FALSE;
+ (strncmp (value, "single", 6) == 0) ? TRUE : FALSE;
+
+ g_free (value);
}
void
columns_changed_cb (GtkTreeView * treeview,
gpointer user_data)
{
+ GVariantBuilder array_builder;
+ GSearchWindow * gsearch = user_data;
GSList * order;
+ GSList * iter;
order = gsearchtool_get_columns_order (treeview);
+ g_variant_builder_init (&array_builder, G_VARIANT_TYPE ("ai"));
+ for (iter = order; iter; iter = iter->next)
+ g_variant_builder_add (&array_builder, "i", GPOINTER_TO_INT (iter->data));
+
if (g_slist_length (order) == NUM_VISIBLE_COLUMNS) {
- gsearchtool_mateconf_set_list ("/apps/mate-search-tool/columns_order", order, MATECONF_VALUE_INT);
+ g_settings_set_value (gsearch->mate_search_tool_settings, "columns-order", g_variant_new ("ai", &array_builder));
}
g_slist_free (order);
}
diff --git a/gsearchtool/gsearchtool-callbacks.h b/gsearchtool/gsearchtool-callbacks.h
index 42b9abb3..b3adfcb3 100644
--- a/gsearchtool/gsearchtool-callbacks.h
+++ b/gsearchtool/gsearchtool-callbacks.h
@@ -162,9 +162,8 @@ disable_quick_search_cb (GtkWidget * dialog,
gint response,
gpointer data);
void
-single_click_to_activate_key_changed_cb (MateConfClient * client,
- guint cnxn_id,
- MateConfEntry * entry,
+single_click_to_activate_key_changed_cb (GSettings * settings,
+ gchar * key,
gpointer user_data);
void
columns_changed_cb (GtkTreeView * treeview,
diff --git a/gsearchtool/gsearchtool-support.c b/gsearchtool/gsearchtool-support.c
index 95a8599f..6d368a2d 100644
--- a/gsearchtool/gsearchtool-support.c
+++ b/gsearchtool/gsearchtool-support.c
@@ -46,259 +46,11 @@
#define C_STANDARD_NUMERIC_STRFTIME_CHARACTERS "dHIjmMSUwWyY"
#define SUS_EXTENDED_STRFTIME_MODIFIERS "EO"
#define BINARY_EXEC_MIME_TYPE "application/x-executable"
-#define GSEARCH_DATE_FORMAT_LOCALE "locale"
-#define GSEARCH_DATE_FORMAT_ISO "iso"
GtkTreeViewColumn *
gsearchtool_gtk_tree_view_get_column_with_sort_column_id (GtkTreeView * treeview,
gint id);
-/* START OF THE MATECONF FUNCTIONS */
-
-static gboolean
-gsearchtool_mateconf_handle_error (GError ** error)
-{
- if (error != NULL) {
- if (*error != NULL) {
- g_warning (_("MateConf error:\n %s"), (*error)->message);
- g_error_free (*error);
- *error = NULL;
- return TRUE;
- }
- }
- return FALSE;
-}
-
-static MateConfClient *
-gsearchtool_mateconf_client_get_global (void)
-{
- static MateConfClient * global_mateconf_client = NULL;
-
- /* Initialize mateconf if needed */
- if (!mateconf_is_initialized ()) {
- char *argv[] = { "gsearchtool-preferences", NULL };
- GError *error = NULL;
-
- if (!mateconf_init (1, argv, &error)) {
- if (gsearchtool_mateconf_handle_error (&error)) {
- return NULL;
- }
- }
- }
-
- if (global_mateconf_client == NULL) {
- global_mateconf_client = mateconf_client_get_default ();
- }
-
- return global_mateconf_client;
-}
-
-char *
-gsearchtool_mateconf_get_string (const gchar * key)
-{
- MateConfClient * client;
- GError * error = NULL;
- gchar * result;
-
- g_return_val_if_fail (key != NULL, NULL);
-
- client = gsearchtool_mateconf_client_get_global ();
- g_return_val_if_fail (client != NULL, NULL);
-
- result = mateconf_client_get_string (client, key, &error);
-
- if (gsearchtool_mateconf_handle_error (&error)) {
- result = g_strdup ("");
- }
-
- return result;
-}
-
-void
-gsearchtool_mateconf_set_string (const gchar * key,
- const gchar * value)
-{
- MateConfClient * client;
- GError * error = NULL;
-
- g_return_if_fail (key != NULL);
-
- client = gsearchtool_mateconf_client_get_global ();
- g_return_if_fail (client != NULL);
-
- mateconf_client_set_string (client, key, value, &error);
-
- gsearchtool_mateconf_handle_error (&error);
-
-}
-
-GSList *
-gsearchtool_mateconf_get_list (const gchar * key,
- MateConfValueType list_type)
-{
- MateConfClient * client;
- GError * error = NULL;
- GSList * result;
-
- g_return_val_if_fail (key != NULL, FALSE);
-
- client = gsearchtool_mateconf_client_get_global ();
- g_return_val_if_fail (client != NULL, NULL);
-
- result = mateconf_client_get_list (client, key, list_type, &error);
-
- if (gsearchtool_mateconf_handle_error (&error)) {
- result = NULL;
- }
-
- return result;
-}
-
-void
-gsearchtool_mateconf_set_list (const gchar * key,
- GSList * list,
- MateConfValueType list_type)
-{
- MateConfClient * client;
- GError * error = NULL;
-
- g_return_if_fail (key != NULL);
-
- client = gsearchtool_mateconf_client_get_global ();
- g_return_if_fail (client != NULL);
-
- mateconf_client_set_list (client, key, list_type, list, &error);
-
- gsearchtool_mateconf_handle_error (&error);
-}
-
-gint
-gsearchtool_mateconf_get_int (const gchar * key)
-{
- MateConfClient * client;
- GError * error = NULL;
- gint result;
-
- g_return_val_if_fail (key != NULL, FALSE);
-
- client = gsearchtool_mateconf_client_get_global ();
- g_return_val_if_fail (client != NULL, FALSE);
-
- result = mateconf_client_get_int (client, key, &error);
-
- if (gsearchtool_mateconf_handle_error (&error)) {
- result = 0;
- }
-
- return result;
-}
-
-void
-gsearchtool_mateconf_set_int (const gchar * key,
- const gint value)
-{
- MateConfClient * client;
- GError * error = NULL;
-
- g_return_if_fail (key != NULL);
-
- client = gsearchtool_mateconf_client_get_global ();
- g_return_if_fail (client != NULL);
-
- mateconf_client_set_int (client, key, value, &error);
-
- gsearchtool_mateconf_handle_error (&error);
-}
-
-gboolean
-gsearchtool_mateconf_get_boolean (const gchar * key)
-{
- MateConfClient * client;
- GError * error = NULL;
- gboolean result;
-
- g_return_val_if_fail (key != NULL, FALSE);
-
- client = gsearchtool_mateconf_client_get_global ();
- g_return_val_if_fail (client != NULL, FALSE);
-
- result = mateconf_client_get_bool (client, key, &error);
-
- if (gsearchtool_mateconf_handle_error (&error)) {
- result = FALSE;
- }
-
- return result;
-}
-
-void
-gsearchtool_mateconf_set_boolean (const gchar * key,
- const gboolean flag)
-{
- MateConfClient * client;
- GError * error = NULL;
-
- g_return_if_fail (key != NULL);
-
- client = gsearchtool_mateconf_client_get_global ();
- g_return_if_fail (client != NULL);
-
- mateconf_client_set_bool (client, key, flag, &error);
-
- gsearchtool_mateconf_handle_error (&error);
-}
-
-void
-gsearchtool_mateconf_add_dir (const gchar * dir)
-{
- MateConfClient * client;
- GError * error = NULL;
-
- g_return_if_fail (dir != NULL);
-
- client = gsearchtool_mateconf_client_get_global ();
- g_return_if_fail (client != NULL);
-
- mateconf_client_add_dir (client,
- dir,
- MATECONF_CLIENT_PRELOAD_RECURSIVE,
- &error);
-
- gsearchtool_mateconf_handle_error (&error);
-}
-
-void
-gsearchtool_mateconf_watch_key (const gchar * dir,
- const gchar * key,
- MateConfClientNotifyFunc callback,
- gpointer user_data)
-{
- MateConfClient * client;
- GError * error = NULL;
-
- g_return_if_fail (key != NULL);
- g_return_if_fail (dir != NULL);
-
- client = gsearchtool_mateconf_client_get_global ();
- g_return_if_fail (client != NULL);
-
- mateconf_client_add_dir (client,
- dir,
- MATECONF_CLIENT_PRELOAD_NONE,
- &error);
-
- gsearchtool_mateconf_handle_error (&error);
-
- mateconf_client_notify_add (client,
- key,
- callback,
- user_data,
- NULL,
- &error);
-
- gsearchtool_mateconf_handle_error (&error);
-}
-
/* START OF GENERIC MATE-SEARCH-TOOL FUNCTIONS */
gboolean
@@ -334,10 +86,13 @@ is_path_hidden (const gchar * path)
gboolean
is_quick_search_excluded_path (const gchar * path)
{
- GSList * exclude_path_list;
- GSList * tmp_list;
+ GSettings * settings;
+ gchar ** exclude_path_list;
gchar * dir;
gboolean results = FALSE;
+ gint i;
+
+ settings = g_settings_new ("org.mate.search-tool");
dir = g_strdup (path);
@@ -355,65 +110,66 @@ is_quick_search_excluded_path (const gchar * path)
g_free (dir);
/* Check path against the Quick-Search-Excluded-Paths list. */
- exclude_path_list = gsearchtool_mateconf_get_list ("/apps/mate-search-tool/quick_search_excluded_paths",
- MATECONF_VALUE_STRING);
+ exclude_path_list = g_settings_get_strv (settings, "quick-search-excluded-paths");
- for (tmp_list = exclude_path_list; tmp_list; tmp_list = tmp_list->next) {
+ if (exclude_path_list) {
+ for (i = 0; exclude_path_list[i]; i++) {
- /* Skip empty or null values. */
- if ((tmp_list->data == NULL) || (strlen (tmp_list->data) == 0)) {
- continue;
- }
+ /* Skip empty or null values. */
+ if (strlen (exclude_path_list[i]) == 0) {
+ continue;
+ }
- dir = g_strdup (tmp_list->data);
+ dir = g_strdup (exclude_path_list[i]);
- /* Wild-card comparisons. */
- if (g_strstr_len (dir, strlen (dir), "*") != NULL) {
+ /* Wild-card comparisons. */
+ if (g_strstr_len (dir, strlen (dir), "*") != NULL) {
- if (g_pattern_match_simple (dir, path) == TRUE) {
+ if (g_pattern_match_simple (dir, path) == TRUE) {
- results = TRUE;
- g_free (dir);
- break;
+ results = TRUE;
+ g_free (dir);
+ break;
+ }
}
- }
- /* Non-wild-card comparisons. */
- else {
- /* Add a trailing G_DIR_SEPARATOR. */
- if (g_str_has_suffix (dir, G_DIR_SEPARATOR_S) == FALSE) {
+ /* Non-wild-card comparisons. */
+ else {
+ /* Add a trailing G_DIR_SEPARATOR. */
+ if (g_str_has_suffix (dir, G_DIR_SEPARATOR_S) == FALSE) {
- gchar *tmp;
+ gchar *tmp;
- tmp = dir;
- dir = g_strconcat (dir, G_DIR_SEPARATOR_S, NULL);
- g_free (tmp);
- }
+ tmp = dir;
+ dir = g_strconcat (dir, G_DIR_SEPARATOR_S, NULL);
+ g_free (tmp);
+ }
- if (strcmp (path, dir) == 0) {
+ if (strcmp (path, dir) == 0) {
- results = TRUE;
- g_free (dir);
- break;
+ results = TRUE;
+ g_free (dir);
+ break;
+ }
}
+ g_free (dir);
}
- g_free (dir);
+ g_strfreev (exclude_path_list);
}
- for (tmp_list = exclude_path_list; tmp_list; tmp_list = tmp_list->next) {
- g_free (tmp_list->data);
- }
- g_slist_free (exclude_path_list);
-
+ g_object_unref (settings);
return results;
}
gboolean
is_second_scan_excluded_path (const gchar * path)
{
- GSList * exclude_path_list;
- GSList * tmp_list;
+ GSettings * settings;
+ gchar ** exclude_path_list;
gchar * dir;
gboolean results = FALSE;
+ gint i;
+
+ settings = g_settings_new ("org.mate.search-tool");
dir = g_strdup (path);
@@ -431,55 +187,53 @@ is_second_scan_excluded_path (const gchar * path)
g_free (dir);
/* Check path against the Quick-Search-Excluded-Paths list. */
- exclude_path_list = gsearchtool_mateconf_get_list ("/apps/mate-search-tool/quick_search_second_scan_excluded_paths",
- MATECONF_VALUE_STRING);
+ exclude_path_list = g_settings_get_strv (settings, "quick-search-second-scan-excluded-paths");
- for (tmp_list = exclude_path_list; tmp_list; tmp_list = tmp_list->next) {
+ if (exclude_path_list) {
+ for (i = 0; exclude_path_list[i]; i++) {
- /* Skip empty or null values. */
- if ((tmp_list->data == NULL) || (strlen (tmp_list->data) == 0)) {
- continue;
- }
+ /* Skip empty or null values. */
+ if (strlen (exclude_path_list[i]) == 0) {
+ continue;
+ }
- dir = g_strdup (tmp_list->data);
+ dir = g_strdup (exclude_path_list[i]);
- /* Wild-card comparisons. */
- if (g_strstr_len (dir, strlen (dir), "*") != NULL) {
+ /* Wild-card comparisons. */
+ if (g_strstr_len (dir, strlen (dir), "*") != NULL) {
- if (g_pattern_match_simple (dir, path) == TRUE) {
+ if (g_pattern_match_simple (dir, path) == TRUE) {
- results = TRUE;
- g_free (dir);
- break;
+ results = TRUE;
+ g_free (dir);
+ break;
+ }
}
- }
- /* Non-wild-card comparisons. */
- else {
- /* Add a trailing G_DIR_SEPARATOR. */
- if (g_str_has_suffix (dir, G_DIR_SEPARATOR_S) == FALSE) {
+ /* Non-wild-card comparisons. */
+ else {
+ /* Add a trailing G_DIR_SEPARATOR. */
+ if (g_str_has_suffix (dir, G_DIR_SEPARATOR_S) == FALSE) {
- gchar *tmp;
+ gchar *tmp;
- tmp = dir;
- dir = g_strconcat (dir, G_DIR_SEPARATOR_S, NULL);
- g_free (tmp);
- }
+ tmp = dir;
+ dir = g_strconcat (dir, G_DIR_SEPARATOR_S, NULL);
+ g_free (tmp);
+ }
- if (strcmp (path, dir) == 0) {
+ if (strcmp (path, dir) == 0) {
- results = TRUE;
- g_free (dir);
- break;
+ results = TRUE;
+ g_free (dir);
+ break;
+ }
}
+ g_free (dir);
}
- g_free (dir);
+ g_strfreev (exclude_path_list);
}
- for (tmp_list = exclude_path_list; tmp_list; tmp_list = tmp_list->next) {
- g_free (tmp_list->data);
- }
- g_slist_free (exclude_path_list);
-
+ g_object_unref (settings);
return results;
}
@@ -622,7 +376,7 @@ backslash_special_characters (const gchar * string)
if (*string == '\\') {
g_string_append(gs, "\\\\");
}
- if (*string == '-') {
+ else if (*string == '-') {
g_string_append(gs, "\\-");
}
else {
@@ -654,7 +408,7 @@ remove_mnemonic_character (const gchar * string)
}
gchar *
-get_readable_date (const gchar * format_string,
+get_readable_date (const CajaDateFormat date_format_enum,
const time_t file_time_raw)
{
struct tm * file_time;
@@ -666,13 +420,11 @@ get_readable_date (const gchar * format_string,
file_time = localtime (&file_time_raw);
- /* Base format of date column on caja date_format key */
- if (format_string != NULL) {
- if (strcmp(format_string, GSEARCH_DATE_FORMAT_LOCALE) == 0) {
- return gsearchtool_strdup_strftime ("%c", file_time);
- } else if (strcmp (format_string, GSEARCH_DATE_FORMAT_ISO) == 0) {
- return gsearchtool_strdup_strftime ("%Y-%m-%d %H:%M:%S", file_time);
- }
+ /* Base format of date column on caja date-format key */
+ if (date_format_enum == CAJA_DATE_FORMAT_LOCALE) {
+ return gsearchtool_strdup_strftime ("%c", file_time);
+ } else if (date_format_enum == CAJA_DATE_FORMAT_ISO) {
+ return gsearchtool_strdup_strftime ("%Y-%m-%d %H:%M:%S", file_time);
}
file_date = g_date_new_dmy (file_time->tm_mday,
@@ -898,36 +650,31 @@ get_file_type_description (const gchar * file,
return desc;
}
-static gchar* gsearchtool_pixmap_file(const gchar* partial_path)
+static gchar *
+gsearchtool_pixmap_file (const gchar * partial_path)
{
- gchar* path;
+ gchar * path;
path = g_build_filename(DATADIR "/pixmaps/mate-search-tool", partial_path, NULL);
-
- if (g_file_test(path, G_FILE_TEST_EXISTS))
- {
+ if (g_file_test(path, G_FILE_TEST_EXISTS)){
return path;
}
-
- g_free(path);
-
+ g_free (path);
return NULL;
}
-static GdkPixbuf* gsearchtool_load_thumbnail_frame(void)
+static GdkPixbuf *
+gsearchtool_load_thumbnail_frame (void)
{
- GdkPixbuf* pixbuf = NULL;
- gchar* image_path;
+ GdkPixbuf * pixbuf = NULL;
+ gchar * image_path;
image_path = gsearchtool_pixmap_file("thumbnail_frame.png");
- if (image_path != NULL)
- {
+ if (image_path != NULL){
pixbuf = gdk_pixbuf_new_from_file(image_path, NULL);
}
-
g_free(image_path);
-
return pixbuf;
}
@@ -1433,35 +1180,47 @@ void
gsearchtool_set_columns_order (GtkTreeView * treeview)
{
GtkTreeViewColumn * last = NULL;
- GSList * order;
- GSList * it;
+ GSettings * settings;
+ GVariant * value;
- order = gsearchtool_mateconf_get_list ("/apps/mate-search-tool/columns_order", MATECONF_VALUE_INT);
+ settings = g_settings_new ("org.mate.search-tool");
- for (it = order; it; it = it->next) {
+ value = g_settings_get_value (settings, "columns-order");
- GtkTreeViewColumn * cur;
- gint id;
+ if (value) {
+ GVariantIter *iter;
+ GVariant *item;
+
+ g_variant_get (value, "ai", &iter);
+
+ while ((item = g_variant_iter_next_value (iter))) {
+ GtkTreeViewColumn * cur;
+ gint id;
- id = GPOINTER_TO_INT (it->data);
+ g_variant_get (item, "i", &id);
- if (id >= 0 && id < NUM_COLUMNS) {
+ if (id >= 0 && id < NUM_COLUMNS) {
- cur = gsearchtool_gtk_tree_view_get_column_with_sort_column_id (treeview, id);
+ cur = gsearchtool_gtk_tree_view_get_column_with_sort_column_id (treeview, id);
- if (cur && cur != last) {
- gtk_tree_view_move_column_after (treeview, cur, last);
- last = cur;
+ if (cur && cur != last) {
+ gtk_tree_view_move_column_after (treeview, cur, last);
+ last = cur;
+ }
}
+ g_variant_unref (item);
}
+ g_variant_iter_free (iter);
+ g_variant_unref (value);
}
- g_slist_free (order);
+ g_object_unref (settings);
}
void
gsearchtool_get_stored_window_geometry (gint * width,
gint * height)
{
+ GSettings * settings;
gint saved_width;
gint saved_height;
@@ -1469,8 +1228,10 @@ gsearchtool_get_stored_window_geometry (gint * width,
return;
}
- saved_width = gsearchtool_mateconf_get_int ("/apps/mate-search-tool/default_window_width");
- saved_height = gsearchtool_mateconf_get_int ("/apps/mate-search-tool/default_window_height");
+ settings = g_settings_new ("org.mate.search-tool");
+
+ saved_width = g_settings_get_int (settings, "default-window-width");
+ saved_height = g_settings_get_int (settings, "default-window-height");
if (saved_width == -1) {
saved_width = DEFAULT_WINDOW_WIDTH;
@@ -1482,6 +1243,7 @@ gsearchtool_get_stored_window_geometry (gint * width,
*width = MAX (saved_width, MINIMUM_WINDOW_WIDTH);
*height = MAX (saved_height, MINIMUM_WINDOW_HEIGHT);
+ g_object_unref (settings);
}
/* START OF CAJA/EEL FUNCTIONS: USED FOR HANDLING OF DUPLICATE FILENAMES */
diff --git a/gsearchtool/gsearchtool-support.h b/gsearchtool/gsearchtool-support.h
index 68c19cab..ce22e38c 100644
--- a/gsearchtool/gsearchtool-support.h
+++ b/gsearchtool/gsearchtool-support.h
@@ -38,40 +38,6 @@ extern "C" {
#define ICON_SIZE 24
gboolean
-gsearchtool_mateconf_get_boolean (const gchar * key);
-
-void
-gsearchtool_mateconf_set_boolean (const gchar * key,
- const gboolean flag);
-gint
-gsearchtool_mateconf_get_int (const gchar * key);
-
-void
-gsearchtool_mateconf_set_int (const gchar * key,
- const gint value);
-char *
-gsearchtool_mateconf_get_string (const gchar * key);
-
-void
-gsearchtool_mateconf_set_string (const gchar * key,
- const gchar * value);
-
-GSList *
-gsearchtool_mateconf_get_list (const gchar * key,
- MateConfValueType list_type);
-void
-gsearchtool_mateconf_set_list (const gchar * key,
- GSList * list,
- MateConfValueType list_type);
-void
-gsearchtool_mateconf_add_dir (const gchar * dir);
-
-void
-gsearchtool_mateconf_watch_key (const gchar * dir,
- const gchar * key,
- MateConfClientNotifyFunc callback,
- gpointer user_data);
-gboolean
is_path_hidden (const gchar * path);
gboolean
@@ -102,7 +68,7 @@ gchar *
remove_mnemonic_character (const gchar * string);
gchar *
-get_readable_date (const gchar * format_string,
+get_readable_date (const CajaDateFormat date_format_enum,
const time_t file_time_raw);
gchar *
gsearchtool_strdup_strftime (const gchar * format,
diff --git a/gsearchtool/gsearchtool.c b/gsearchtool/gsearchtool.c
index f67f4538..24a11810 100644
--- a/gsearchtool/gsearchtool.c
+++ b/gsearchtool/gsearchtool.c
@@ -44,6 +44,7 @@
#include <glib/gi18n.h>
#include <gdk/gdk.h>
#include <gio/gio.h>
+#include <locale.h>
#include "gsearchtool.h"
#include "gsearchtool-callbacks.h"
@@ -511,7 +512,7 @@ start_animation (GSearchWindow * gsearch, gboolean first_pass)
gtk_window_set_title (GTK_WINDOW (gsearch->window), title);
gtk_label_set_text (GTK_LABEL (gsearch->files_found_label), "");
- if (gsearchtool_mateconf_get_boolean ("/desktop/mate/interface/enable_animations")) {
+ if (g_settings_get_boolean (gsearch->mate_desktop_interface_settings, "enable-animations")) {
gtk_spinner_start (GTK_SPINNER (gsearch->progress_spinner));
gtk_widget_show (gsearch->progress_spinner);
}
@@ -636,7 +637,6 @@ build_search_command (GSearchWindow * gsearch,
command = g_string_new ("");
gsearch->command_details->is_command_show_hidden_files_enabled = FALSE;
gsearch->command_details->name_contains_regex_string = NULL;
- gsearch->search_results_date_format_string = NULL;
gsearch->command_details->name_contains_pattern_string = NULL;
gsearch->command_details->is_command_first_pass = first_pass;
@@ -654,19 +654,35 @@ build_search_command (GSearchWindow * gsearch,
if (gsearch->command_details->is_command_first_pass == TRUE) {
gchar * locate;
- gchar * show_thumbnails_string;
+ CajaSpeedTradeoff show_thumbnails_enum;
gboolean disable_quick_search;
locate = g_find_program_in_path ("locate");
- disable_quick_search = gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/disable_quick_search");
- gsearch->command_details->is_command_second_pass_enabled = !gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/disable_quick_search_second_scan");
-
- show_thumbnails_string = gsearchtool_mateconf_get_string ("/apps/caja/preferences/show_image_thumbnails");
- if ((show_thumbnails_string != NULL) &&
- ((strcmp (show_thumbnails_string, "always") == 0) ||
- (strcmp (show_thumbnails_string, "local_only") == 0))) {
- gsearch->show_thumbnails = TRUE;
- gsearch->show_thumbnails_file_size_limit = gsearchtool_mateconf_get_int ("/apps/caja/preferences/thumbnail_limit");
+ disable_quick_search = g_settings_get_boolean (gsearch->mate_search_tool_settings, "disable-quick-search");
+ gsearch->command_details->is_command_second_pass_enabled = !g_settings_get_boolean (gsearch->mate_search_tool_settings, "disable-quick-search-second-scan");
+
+ /* Use caja settings for thumbnails if caja is installed, else fall back to the caja default */
+ if (gsearch->caja_schema_exists) {
+ show_thumbnails_enum = g_settings_get_enum (gsearch->caja_settings, "show-image-thumbnails");
+ } else {
+ show_thumbnails_enum = SPEED_TRADEOFF_LOCAL_ONLY;
+ }
+
+ if (show_thumbnails_enum == SPEED_TRADEOFF_ALWAYS ||
+ show_thumbnails_enum == SPEED_TRADEOFF_LOCAL_ONLY) {
+ GVariant * value;
+ guint64 size_limit = 10485760;
+
+ if (gsearch->caja_schema_exists) {
+ value = g_settings_get_value (gsearch->caja_settings, "thumbnail-limit");
+ if (value) {
+ size_limit = g_variant_get_uint64 (value);
+ g_variant_unref (value);
+ }
+ }
+
+ gsearch->show_thumbnails = TRUE;
+ gsearch->show_thumbnails_file_size_limit = size_limit;
}
else {
gsearch->show_thumbnails = FALSE;
@@ -692,7 +708,6 @@ build_search_command (GSearchWindow * gsearch,
file_is_named_escaped);
}
g_free (locate);
- g_free (show_thumbnails_string);
}
else {
g_string_append_printf (command, "find \"%s\" %s \"%s\" -print",
@@ -865,7 +880,7 @@ add_file_to_search_results (const gchar * file,
#endif
g_file_info_get_modification_time (file_info, &time_val);
- readable_date = get_readable_date (gsearch->search_results_date_format_string, time_val.tv_sec);
+ readable_date = get_readable_date (gsearch->search_results_date_format, time_val.tv_sec);
base_name = g_path_get_basename (file);
dir_name = g_path_get_dirname (file);
@@ -1158,71 +1173,76 @@ set_constraint_selected_state (GSearchWindow * gsearch,
}
void
-set_constraint_mateconf_boolean (gint constraint_id,
- gboolean flag)
+set_constraint_gsettings_boolean (gint constraint_id,
+ gboolean flag)
{
+ GSettings * select_settings;
+
+ select_settings = g_settings_new ("org.mate.search-tool.select");
+
switch (constraint_id) {
case SEARCH_CONSTRAINT_CONTAINS_THE_TEXT:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/contains_the_text",
- flag);
+ g_settings_set_boolean (select_settings, "contains-the-text",
+ flag);
break;
case SEARCH_CONSTRAINT_DATE_MODIFIED_BEFORE:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/date_modified_less_than",
- flag);
+ g_settings_set_boolean (select_settings, "date-modified-less-than",
+ flag);
break;
case SEARCH_CONSTRAINT_DATE_MODIFIED_AFTER:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/date_modified_more_than",
- flag);
+ g_settings_set_boolean (select_settings, "date-modified-more-than",
+ flag);
break;
case SEARCH_CONSTRAINT_SIZE_IS_MORE_THAN:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/size_at_least",
- flag);
+ g_settings_set_boolean (select_settings, "size-at-least",
+ flag);
break;
case SEARCH_CONSTRAINT_SIZE_IS_LESS_THAN:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/size_at_most",
- flag);
+ g_settings_set_boolean (select_settings, "size-at-most",
+ flag);
break;
case SEARCH_CONSTRAINT_FILE_IS_EMPTY:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/file_is_empty",
- flag);
+ g_settings_set_boolean (select_settings, "file-is-empty",
+ flag);
break;
case SEARCH_CONSTRAINT_OWNED_BY_USER:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/owned_by_user",
- flag);
+ g_settings_set_boolean (select_settings, "owned-by-user",
+ flag);
break;
case SEARCH_CONSTRAINT_OWNED_BY_GROUP:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/owned_by_group",
- flag);
+ g_settings_set_boolean (select_settings, "owned-by-group",
+ flag);
break;
case SEARCH_CONSTRAINT_OWNER_IS_UNRECOGNIZED:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/owner_is_unrecognized",
- flag);
+ g_settings_set_boolean (select_settings, "owner-is-unrecognized",
+ flag);
break;
case SEARCH_CONSTRAINT_FILE_IS_NOT_NAMED:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/name_does_not_contain",
- flag);
+ g_settings_set_boolean (select_settings, "name-does-not-contain",
+ flag);
break;
case SEARCH_CONSTRAINT_FILE_MATCHES_REGULAR_EXPRESSION:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/name_matches_regular_expression",
- flag);
+ g_settings_set_boolean (select_settings, "name-matches-regular-expression",
+ flag);
break;
case SEARCH_CONSTRAINT_SHOW_HIDDEN_FILES_AND_FOLDERS:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/show_hidden_files_and_folders",
- flag);
+ g_settings_set_boolean (select_settings, "show-hidden-files-and-folders",
+ flag);
break;
case SEARCH_CONSTRAINT_FOLLOW_SYMBOLIC_LINKS:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/follow_symbolic_links",
- flag);
+ g_settings_set_boolean (select_settings, "follow-symbolic-links",
+ flag);
break;
case SEARCH_CONSTRAINT_SEARCH_OTHER_FILESYSTEMS:
- gsearchtool_mateconf_set_boolean ("/apps/mate-search-tool/select/exclude_other_filesystems",
- flag);
+ g_settings_set_boolean (select_settings, "exclude-other-filesystems",
+ flag);
break;
default:
break;
}
+ g_object_unref (select_settings);
}
/*
@@ -1297,12 +1317,12 @@ gsearch_setup_goption_descriptions (void)
for (j = 0; GSearchOptionTemplates[j].type != SEARCH_CONSTRAINT_TYPE_NONE; j++) {
if (GSearchOptionTemplates[j].type != SEARCH_CONSTRAINT_TYPE_SEPARATOR) {
- gchar *text = remove_mnemonic_character (GSearchOptionTemplates[j].desc);
+ gchar *text = remove_mnemonic_character (_(GSearchOptionTemplates[j].desc));
if (GSearchOptionTemplates[j].type == SEARCH_CONSTRAINT_TYPE_BOOLEAN) {
- GSearchGOptionEntries[i++].description = g_strdup_printf (_("Select the \"%s\" search option"), _(text));
+ GSearchGOptionEntries[i++].description = g_strdup_printf (_("Select the \"%s\" search option"), text);
}
else {
- GSearchGOptionEntries[i++].description = g_strdup_printf (_("Select and set the \"%s\" search option"), _(text));
+ GSearchGOptionEntries[i++].description = g_strdup_printf (_("Select and set the \"%s\" search option"), text);
}
g_free (text);
}
@@ -1587,7 +1607,6 @@ handle_search_command_stdout_io (GIOChannel * ioc,
/* Free these strings now because they are reassign values during the second pass. */
g_free (gsearch->command_details->name_contains_pattern_string);
g_free (gsearch->command_details->name_contains_regex_string);
- g_free (gsearch->search_results_date_format_string);
command = build_search_command (gsearch, FALSE);
if (command != NULL) {
@@ -1608,7 +1627,6 @@ handle_search_command_stdout_io (GIOChannel * ioc,
/* Free the gchar fields of search_command structure. */
g_free (gsearch->command_details->name_contains_pattern_string);
g_free (gsearch->command_details->name_contains_regex_string);
- g_free (gsearch->search_results_date_format_string);
}
return FALSE;
@@ -1737,7 +1755,7 @@ handle_search_command_stderr_io (GIOChannel * ioc,
label = gtk_label_new (error_msgs->str);
gtk_container_add (GTK_CONTAINER (expander), label);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), hbox, FALSE, FALSE, 0);
gtk_widget_show_all (hbox);
g_signal_connect (G_OBJECT (dialog),
@@ -1781,11 +1799,11 @@ handle_search_command_stderr_io (GIOChannel * ioc,
label = gtk_label_new (error_msgs->str);
gtk_container_add (GTK_CONTAINER (expander), label);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), hbox, FALSE, FALSE, 0);
gtk_widget_show_all (hbox);
button = gsearchtool_button_new_with_stock_icon (_("Disable _Quick Search"), GTK_STOCK_OK);
- gtk_widget_set_can_default (button, TRUE);
+ gtk_widget_set_can_default (button, TRUE);
gtk_widget_show (button);
gtk_dialog_add_action_widget (GTK_DIALOG (dialog), button, GTK_RESPONSE_OK);
@@ -1853,7 +1871,6 @@ spawn_search_command (GSearchWindow * gsearch,
g_free (gsearch->command_details->look_in_folder_string);
g_free (gsearch->command_details->name_contains_pattern_string);
g_free (gsearch->command_details->name_contains_regex_string);
- g_free (gsearch->search_results_date_format_string);
return;
}
@@ -1886,7 +1903,6 @@ spawn_search_command (GSearchWindow * gsearch,
g_free (gsearch->command_details->look_in_folder_string);
g_free (gsearch->command_details->name_contains_pattern_string);
g_free (gsearch->command_details->name_contains_regex_string);
- g_free (gsearch->search_results_date_format_string);
return;
}
@@ -1896,8 +1912,12 @@ spawn_search_command (GSearchWindow * gsearch,
gsearch->search_results_pixbuf_hash_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
gsearch->search_results_filename_hash_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
- /* Get value of caja date_format key */
- gsearch->search_results_date_format_string = gsearchtool_mateconf_get_string ("/apps/caja/preferences/date_format");
+ /* Get the value of the caja date-format key if available. */
+ if (gsearch->caja_schema_exists) {
+ gsearch->search_results_date_format = g_settings_get_enum (gsearch->caja_settings, "date-format");
+ } else {
+ gsearch->search_results_date_format = CAJA_DATE_FORMAT_LOCALE;
+ }
gtk_tree_view_scroll_to_point (GTK_TREE_VIEW (gsearch->search_results_tree_view), 0, 0);
gtk_tree_model_foreach (GTK_TREE_MODEL (gsearch->search_results_list_store),
@@ -2091,7 +2111,7 @@ add_constraint (GSearchWindow * gsearch,
constraint->constraint_id = constraint_id;
set_constraint_info_defaults (constraint);
- set_constraint_mateconf_boolean (constraint->constraint_id, TRUE);
+ set_constraint_gsettings_boolean (constraint->constraint_id, TRUE);
widget = create_constraint_box (gsearch, constraint, value);
gtk_box_pack_start (GTK_BOX (gsearch->available_options_vbox), widget, FALSE, FALSE, 0);
@@ -2635,70 +2655,68 @@ set_clone_command (GSearchWindow * gsearch,
}
static void
-handle_mateconf_settings (GSearchWindow * gsearch)
+handle_gsettings_settings (GSearchWindow * gsearch)
{
- gsearchtool_mateconf_add_dir ("/apps/mate-search-tool");
-
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/show_additional_options")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_settings, "show-additional-options")) {
if (gtk_widget_get_visible (gsearch->available_options_vbox) == FALSE) {
gtk_expander_set_expanded (GTK_EXPANDER (gsearch->show_more_options_expander), TRUE);
gtk_widget_show (gsearch->available_options_vbox);
}
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/contains_the_text")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "contains-the-text")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_CONTAINS_THE_TEXT, "", FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/date_modified_less_than")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "date-modified-less-than")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_DATE_MODIFIED_BEFORE, "", FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/date_modified_more_than")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "date-modified-more-than")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_DATE_MODIFIED_AFTER, "", FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/size_at_least")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "size-at-least")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_SIZE_IS_MORE_THAN, "", FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/size_at_most")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "size-at-most")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_SIZE_IS_LESS_THAN, "", FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/file_is_empty")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "file-is-empty")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_FILE_IS_EMPTY, NULL, FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/owned_by_user")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "owned-by-user")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_OWNED_BY_USER, "", FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/owned_by_group")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "owned-by-group")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_OWNED_BY_GROUP, "", FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/owner_is_unrecognized")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "owner-is-unrecognized")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_OWNER_IS_UNRECOGNIZED, NULL, FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/name_does_not_contain")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "name-does-not-contain")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_FILE_IS_NOT_NAMED, "", FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/name_matches_regular_expression")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "name-matches-regular-expression")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_FILE_MATCHES_REGULAR_EXPRESSION, "", FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/show_hidden_files_and_folders")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "show-hidden-files-and-folders")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_SHOW_HIDDEN_FILES_AND_FOLDERS, NULL, FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/follow_symbolic_links")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "follow-symbolic-links")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_FOLLOW_SYMBOLIC_LINKS, NULL, FALSE);
}
- if (gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/select/exclude_other_filesystems")) {
+ if (g_settings_get_boolean (gsearch->mate_search_tool_select_settings, "exclude-other-filesystems")) {
add_constraint (gsearch, SEARCH_CONSTRAINT_SEARCH_OTHER_FILESYSTEMS, NULL, FALSE);
}
}
@@ -2725,9 +2743,31 @@ gsearch_app_create (GSearchWindow * gsearch)
GtkWidget * label;
GtkWidget * button;
GtkWidget * container;
+ const char * const *schemas;
+ gint i;
+
+ gsearch->mate_search_tool_settings = g_settings_new ("org.mate.search-tool");
+ gsearch->mate_search_tool_select_settings = g_settings_new ("org.mate.search-tool.select");
+ gsearch->mate_desktop_interface_settings = g_settings_new ("org.mate.interface");
+
+ /* Check if caja schema is installed before trying to read caja settings */
+ gsearch->caja_schema_exists = FALSE;
+ schemas = g_settings_list_schemas ();
+ for (i = 0; schemas[i] != NULL; i++) {
+ if (g_strcmp0 (schemas[i], CAJA_PREFERENCES_SCHEMA) == 0) {
+ gsearch->caja_schema_exists = TRUE;
+ break;
+ }
+ }
+
+ if (gsearch->caja_schema_exists) {
+ gsearch->caja_settings = g_settings_new (CAJA_PREFERENCES_SCHEMA);
+ } else {
+ gsearch->caja_settings = NULL;
+ }
gsearch->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gsearch->is_window_maximized = gsearchtool_mateconf_get_boolean ("/apps/mate-search-tool/default_window_maximized");
+ gsearch->is_window_maximized = g_settings_get_boolean (gsearch->mate_search_tool_settings, "default-window-maximized");
g_signal_connect (G_OBJECT (gsearch->window), "size-allocate",
G_CALLBACK (gsearch_window_size_allocate),
gsearch);
@@ -2800,7 +2840,7 @@ gsearch_app_create (GSearchWindow * gsearch)
add_atk_namedesc (GTK_WIDGET (gsearch->look_in_folder_button), _("Look in folder"), _("Select the folder or device from which you want to begin the search."));
}
- locale_string = gsearchtool_mateconf_get_string ("/apps/mate-search-tool/look_in_folder");
+ locale_string = g_settings_get_string (gsearch->mate_search_tool_settings, "look-in-folder");
if ((g_file_test (locale_string, G_FILE_TEST_EXISTS) == FALSE) ||
(g_file_test (locale_string, G_FILE_TEST_IS_DIR) == FALSE)) {
@@ -2937,26 +2977,27 @@ gsearch_window_get_type (void)
}
static void
-gsearchtool_setup_mateconf_notifications (GSearchWindow * gsearch)
+gsearchtool_setup_gsettings_notifications (GSearchWindow * gsearch)
{
gchar * click_to_activate_pref;
- /* Get value of caja click behavior (single or double click to activate items) */
- click_to_activate_pref = gsearchtool_mateconf_get_string ("/apps/caja/preferences/click_policy");
-
- if (click_to_activate_pref == NULL) {
+ /* Use the default double click behavior if caja isn't installed */
+ if (gsearch->caja_schema_exists == FALSE) {
gsearch->is_search_results_single_click_to_activate = FALSE;
return;
}
+ /* Get value of caja click behavior (single or double click to activate items) */
+ click_to_activate_pref = g_settings_get_string (gsearch->caja_settings, "click-policy");
+
gsearch->is_search_results_single_click_to_activate =
(strncmp (click_to_activate_pref, "single", 6) == 0) ? TRUE : FALSE;
- gsearchtool_mateconf_watch_key ("/apps/caja/preferences",
- "/apps/caja/preferences/click_policy",
- (MateConfClientNotifyFunc) single_click_to_activate_key_changed_cb,
- gsearch);
+ g_signal_connect (gsearch->caja_settings,
+ "changed::click-policy",
+ G_CALLBACK (single_click_to_activate_key_changed_cb),
+ gsearch);
g_free (click_to_activate_pref);
}
@@ -2971,6 +3012,7 @@ main (int argc,
GError * error = NULL;
EggSMClient * client;
+ setlocale (LC_ALL, "");
bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
@@ -3022,10 +3064,10 @@ main (int argc,
gtk_widget_show (gsearch->window);
- gsearchtool_setup_mateconf_notifications (gsearch);
+ gsearchtool_setup_gsettings_notifications (gsearch);
if (handle_goption_args (gsearch) == FALSE) {
- handle_mateconf_settings (gsearch);
+ handle_gsettings_settings (gsearch);
}
gtk_main ();
diff --git a/gsearchtool/gsearchtool.h b/gsearchtool/gsearchtool.h
index 6ed4e784..573bbe67 100644
--- a/gsearchtool/gsearchtool.h
+++ b/gsearchtool/gsearchtool.h
@@ -34,8 +34,6 @@ extern "C" {
#endif
#include <gtk/gtk.h>
-#include <mateconf/mateconf.h>
-#include <mateconf/mateconf-client.h>
#define GSEARCH_TYPE_WINDOW gsearch_window_get_type()
#define GSEARCH_WINDOW(obj) \
@@ -56,6 +54,7 @@ extern "C" {
#define DEFAULT_WINDOW_HEIGHT 350
#define WINDOW_HEIGHT_STEP 35
#define NUM_VISIBLE_COLUMNS 5
+#define CAJA_PREFERENCES_SCHEMA "org.mate.caja.preferences"
typedef enum {
STOPPED,
@@ -66,6 +65,18 @@ typedef enum {
} GSearchCommandStatus;
typedef enum {
+ SPEED_TRADEOFF_ALWAYS = 0,
+ SPEED_TRADEOFF_LOCAL_ONLY,
+ SPEED_TRADEOFF_NEVER
+} CajaSpeedTradeoff;
+
+typedef enum {
+ CAJA_DATE_FORMAT_LOCALE = 0,
+ CAJA_DATE_FORMAT_ISO,
+ CAJA_DATE_FORMAT_INFORMAL
+} CajaDateFormat;
+
+typedef enum {
COLUMN_ICON,
COLUMN_NAME,
COLUMN_RELATIVE_PATH,
@@ -130,7 +141,7 @@ struct _GSearchWindow {
GtkTreePath * search_results_hover_path;
GHashTable * search_results_filename_hash_table;
GHashTable * search_results_pixbuf_hash_table;
- gchar * search_results_date_format_string;
+ CajaDateFormat search_results_date_format;
gint show_thumbnails_file_size_limit;
gboolean show_thumbnails;
gboolean is_search_results_single_click_to_activate;
@@ -139,6 +150,12 @@ struct _GSearchWindow {
gchar * save_results_as_default_filename;
+ GSettings * mate_search_tool_settings;
+ GSettings * mate_search_tool_select_settings;
+ GSettings * mate_desktop_interface_settings;
+ GSettings * caja_settings;
+ gboolean caja_schema_exists;
+
GSearchCommandDetails * command_details;
};
@@ -198,8 +215,8 @@ void
remove_constraint (gint constraint_id);
void
-set_constraint_mateconf_boolean (gint constraint_id,
- gboolean flag);
+set_constraint_gsettings_boolean (gint constraint_id,
+ gboolean flag);
void
set_constraint_selected_state (GSearchWindow * gsearch,
gint constraint_id,
diff --git a/gsearchtool/help/C/mate-search-tool.xml b/gsearchtool/help/C/mate-search-tool.xml
index a1516616..d1b94d7d 100644
--- a/gsearchtool/help/C/mate-search-tool.xml
+++ b/gsearchtool/help/C/mate-search-tool.xml
@@ -476,57 +476,57 @@
<!-- ============= Settings ============================== -->
- <sect1 id="gsearchtool-settings-mateconf-keys">
+ <sect1 id="gsearchtool-settings-gsettings-keys">
<title>Settings</title>
- <para><application>&app;</application> provides mateconf keys to modify some of its behavior. The mateconf values can be changed by starting the <application>Configuration Editor</application> in the following ways:
+ <para><application>&app;</application> provides gsettings keys to modify some of its behavior. The gsettings values can be changed by starting the <application>Configuration Editor</application> in the following ways:
</para>
<variablelist>
<varlistentry>
<term><guimenu>Applications</guimenu> menu</term>
<listitem>
- <para>Choose <menuchoice><guisubmenu>System Tools</guisubmenu><guimenuitem>Configuration Editor</guimenuitem></menuchoice>. </para>
+ <para>Choose <menuchoice><guisubmenu>System Tools</guisubmenu><guimenuitem>dconf Editor</guimenuitem></menuchoice>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>Command line</term>
<listitem>
- <para>Execute the following command: <command>mateconf-editor</command></para>
+ <para>Execute the following command: <command>dconf-editor</command></para>
</listitem>
</varlistentry>
</variablelist>
<sect2 id="gsearchtool-disablequicksearch">
<title>Disable Quick Search</title>
- <para>Key name: /apps/mate-search-tool/disable_quick_search</para>
+ <para>Key name: org.mate.search-tool.disable-quick-search</para>
<para>Default value: false</para>
<para><application>&app;</application> speeds up file name searches by using the <command>locate</command> command. <command>Locate</command> provides a secure way to index and quickly search for file names. Because <command>locate</command> relies on a file index, the <guilabel>Search results</guilabel> list may not always be up to date.</para>
</sect2>
<sect2 id="gsearchtool-disablesecondscan">
<title>Disable Quick Search Second Scan</title>
- <para>Key name: /apps/mate-search-tool/disable_quick_search_second_scan</para>
+ <para>Key name: org.mate.search-tool.disable-quick-search-second-scan</para>
<para>Default value: false</para>
<para>After completing a quick search, <application>&app;</application> will perform a thorough search using the <command>find</command> command. The purpose of this second scan is to find files that have not been indexed. Files that match the search criteria are added to the <guilabel>Search results</guilabel> list keeping the list up to date.</para>
</sect2>
<sect2 id="gsearchtool-quicksearchexclude">
<title>Quick Search Excluded Paths</title>
- <para>Key name: /apps/mate-search-tool/quick_search_excluded_paths</para>
+ <para>Key name: org.mate.search-tool.quick-search-excluded-paths</para>
<para>Default values: [/mnt/*,/media/*,/dev/*,/tmp/*,/proc/*,/var/*]</para>
<para><application>&app;</application> will not perform a quick search for paths defined by this key. File name searches in the defined paths will use the <command>find</command> command. The wildcards '*' and '?' are supported.</para>
</sect2>
<sect2 id="gsearchtool-secondscanexclude">
<title>Quick Search Second Scan Excluded Paths</title>
- <para>Key name: /apps/mate-search-tool/quick_search_second_scan_excluded_paths</para>
+ <para>Key name: org.mate.search-tool.quick-search-second-scan-excluded-paths</para>
<para>Default values: [/]</para>
<para><application>&app;</application> will not perform a second scan after a quick search for the paths defined by this key. Quick searches in the defined paths will not be followed by a thorough search using the <command>find</command> command. The wildcards '*' and '?' are supported.</para>
</sect2>
<sect2 id="gsearchtool-showoptions">
<title>Show Additional Options</title>
- <para>Key name: /apps/mate-search-tool/show_additional_options</para>
+ <para>Key name: org.mate.search-tool.show-additional-options</para>
<para>Default value: false</para>
<para>This key determines if the <guilabel>Select more options</guilabel> section is expanded when <application>&app;</application> is started.</para>
</sect2>
diff --git a/gsearchtool/libmateui-deprecated/Makefile.am b/gsearchtool/libmateui-deprecated/Makefile.am
index 7a01c3c9..024e4277 100644
--- a/gsearchtool/libmateui-deprecated/Makefile.am
+++ b/gsearchtool/libmateui-deprecated/Makefile.am
@@ -1,12 +1,19 @@
-INCLUDES = -DGTK_DISABLE_DEPRECATED \
- -DGDK_DISABLE_DEPRECATED \
- -DG_DISABLE_DEPRECATED
-
+INCLUDES = \
+ -DGTK_DISABLE_DEPRECATED \
+ -DGDK_DISABLE_DEPRECATED \
+ -DG_DISABLE_DEPRECATED
noinst_LTLIBRARIES = libmateui-deprecated.la
-libmateui_deprecated_la_LIBADD = $(MATE_UTILS_LIBS)
-libmateui_deprecated_la_CFLAGS = $(MATE_UTILS_CFLAGS) \
- $(WARN_CFLAGS)
-libmateui_deprecated_la_SOURCES = gsearchtool-entry.h \
- gsearchtool-entry.c
+libmateui_deprecated_la_CFLAGS = \
+ $(GLIB_CFLAGS) \
+ $(GTK_CFLAGS) \
+ $(WARN_CFLAGS)
+
+libmateui_deprecated_la_LIBADD = \
+ $(GLIB_LIBS) \
+ $(GTK_LIBS)
+
+libmateui_deprecated_la_SOURCES = \
+ gsearchtool-entry.h \
+ gsearchtool-entry.c
diff --git a/gsearchtool/libmateui-deprecated/gsearchtool-entry.c b/gsearchtool/libmateui-deprecated/gsearchtool-entry.c
index 25a1e612..9d39b4ba 100644
--- a/gsearchtool/libmateui-deprecated/gsearchtool-entry.c
+++ b/gsearchtool/libmateui-deprecated/gsearchtool-entry.c
@@ -34,7 +34,6 @@
#include <string.h>
#include <glib/gi18n.h>
#include <gtk/gtk.h>
-#include <mateconf/mateconf-client.h>
#include "gsearchtool-entry.h"
@@ -57,7 +56,7 @@ struct _GsearchHistoryEntryPrivate
GtkEntryCompletion *completion;
- MateConfClient *mateconf_client;
+ GSettings *settings;
};
G_DEFINE_TYPE (GsearchHistoryEntry, gsearch_history_entry, GTK_TYPE_COMBO_BOX)
@@ -129,10 +128,10 @@ gsearch_history_entry_finalize (GObject *object)
g_free (priv->history_id);
- if (priv->mateconf_client != NULL)
+ if (priv->settings != NULL)
{
- g_object_unref (G_OBJECT (priv->mateconf_client));
- priv->mateconf_client = NULL;
+ g_object_unref (G_OBJECT (priv->settings));
+ priv->settings = NULL;
}
G_OBJECT_CLASS (gsearch_history_entry_parent_class)->finalize (object);
@@ -188,23 +187,7 @@ get_history_store (GsearchHistoryEntry *entry)
static char *
get_history_key (GsearchHistoryEntry *entry)
{
- gchar *tmp;
- gchar *key;
-
- /*
- * Store the data under /apps/mate-settings/
- * like the old MateEntry did
- */
-
- tmp = mateconf_escape_key (entry->priv->history_id, -1);
- key = g_strconcat ("/apps/mate-settings/",
- "mate-search-tool",
- "/history-",
- tmp,
- NULL);
- g_free (tmp);
-
- return key;
+ return g_strdup (entry->priv->history_id);
}
static GSList *
@@ -241,22 +224,52 @@ get_history_list (GsearchHistoryEntry *entry)
static void
gsearch_history_entry_save_history (GsearchHistoryEntry *entry)
{
- GSList *mateconf_items;
+ GVariant *history;
+ GSList *items;
gchar *key;
+ GVariantBuilder item_builder;
+ GVariantBuilder history_builder;
+ GVariantIter *iter;
+ GVariant *item;
+ GVariant *history_list;
+ GSList *list_iter;
+ gchar *history_key;
g_return_if_fail (GSEARCH_IS_HISTORY_ENTRY (entry));
- mateconf_items = get_history_list (entry);
+ items = get_history_list (entry);
key = get_history_key (entry);
- mateconf_client_set_list (entry->priv->mateconf_client,
- key,
- MATECONF_VALUE_STRING,
- mateconf_items,
- NULL);
-
- g_slist_foreach (mateconf_items, (GFunc) g_free, NULL);
- g_slist_free (mateconf_items);
+ history = g_settings_get_value (entry->priv->settings,
+ "search-history");
+
+ g_variant_builder_init (&item_builder, G_VARIANT_TYPE ("as"));
+ for (list_iter = items; list_iter; list_iter = list_iter->next)
+ g_variant_builder_add (&item_builder, "s", (gchar *) list_iter->data);
+
+ g_variant_builder_init (&history_builder, G_VARIANT_TYPE ("a{sas}"));
+ g_variant_builder_add (&history_builder, "{sas}", key, &item_builder);
+
+ if (history) {
+ g_variant_get (history, "a{sas}", &iter);
+ while ((item = g_variant_iter_next_value (iter))) {
+ g_variant_get (item, "{s@as}", &history_key, &history_list);
+ if (g_strcmp0 (history_key, key) != 0)
+ g_variant_builder_add (&history_builder, "{s@as}", history_key, history_list);
+ g_free (history_key);
+ g_variant_unref (history_list);
+ g_variant_unref (item);
+ }
+ g_variant_iter_free (iter);
+ g_variant_unref (history);
+ }
+
+ g_settings_set_value (entry->priv->settings,
+ "search-history",
+ g_variant_new ("a{sas}", &history_builder));
+
+ g_slist_foreach (items, (GFunc) g_free, NULL);
+ g_slist_free (items);
g_free (key);
}
@@ -377,9 +390,9 @@ gsearch_history_entry_append_text (GsearchHistoryEntry *entry,
static void
gsearch_history_entry_load_history (GsearchHistoryEntry *entry)
{
- GSList *mateconf_items, *l;
GtkListStore *store;
GtkTreeIter iter;
+ GVariant *history;
gchar *key;
gint i;
@@ -388,27 +401,45 @@ gsearch_history_entry_load_history (GsearchHistoryEntry *entry)
store = get_history_store (entry);
key = get_history_key (entry);
- mateconf_items = mateconf_client_get_list (entry->priv->mateconf_client,
- key,
- MATECONF_VALUE_STRING,
- NULL);
+ history = g_settings_get_value (entry->priv->settings,
+ "search-history");
gtk_list_store_clear (store);
- for (l = mateconf_items, i = 0;
- l != NULL && i < entry->priv->history_length;
- l = l->next, i++)
- {
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store,
- &iter,
- 0,
- l->data,
- -1);
- }
-
- g_slist_foreach (mateconf_items, (GFunc) g_free, NULL);
- g_slist_free (mateconf_items);
+ if (history) {
+ GVariantIter *history_iter, *history_subiter;
+ GVariant *history_item, *history_subitem;
+ gchar *history_key;
+ gchar *text;
+
+ g_variant_get (history, "a{sas}", &history_iter);
+
+ while ((history_item = g_variant_iter_next_value (history_iter))) {
+ i = 0;
+ g_variant_get (history_item, "{sas}", &history_key, &history_subiter);
+
+ if (g_strcmp0 (history_key, key) == 0) {
+ while ((history_subitem = g_variant_iter_next_value (history_subiter)) &&
+ i < entry->priv->history_length) {
+ g_variant_get (history_subitem, "s", &text);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store,
+ &iter,
+ 0,
+ text,
+ -1);
+ g_free (text);
+ g_variant_unref (history_subitem);
+ i++;
+ }
+ }
+ g_free (history_key);
+ g_variant_iter_free (history_subiter);
+ g_variant_unref (history_item);
+ }
+ g_variant_iter_free (history_iter);
+ g_variant_unref (history);
+ }
g_free (key);
}
@@ -438,7 +469,7 @@ gsearch_history_entry_init (GsearchHistoryEntry *entry)
priv->completion = NULL;
- priv->mateconf_client = mateconf_client_get_default ();
+ priv->settings = g_settings_new ("org.mate.search-tool");
}
void
@@ -519,10 +550,12 @@ gsearch_history_entry_get_enable_completion (GsearchHistoryEntry *entry)
return entry->priv->completion != NULL;
}
-GtkWidget* gsearch_history_entry_new(const gchar *history_id, gboolean enable_completion)
+GtkWidget *
+gsearch_history_entry_new (const gchar *history_id,
+ gboolean enable_completion)
{
- GtkWidget* ret;
- GtkListStore* store;
+ GtkWidget *ret;
+ GtkListStore *store;
g_return_val_if_fail(history_id != NULL, NULL);
diff --git a/gsearchtool/mate-search-tool.convert b/gsearchtool/mate-search-tool.convert
new file mode 100644
index 00000000..44156425
--- /dev/null
+++ b/gsearchtool/mate-search-tool.convert
@@ -0,0 +1,27 @@
+[org.mate.search-tool]
+show-additional-options=/apps/mate-search-tool/show_additional_options
+disable-quick-search=/apps/mate-search-tool/disable_quick_search
+quick-search-excluded-paths=/apps/mate-search-tool/quick_search_excluded_paths
+disable-quick-search-second-scan=/apps/mate-search-tool/disable_quick_search_second-scan
+quick-search-second-scan-excluded-paths=/apps/mate-search-tool/quick_search_second_scan_excluded_paths
+columns-order=/apps/mate-search-tool/columns_order
+default-window-width=/apps/mate-search-tool/default_window_width
+default-window-height=/apps/mate-search-tool/default_window_height
+default-window-maximized=/apps/mate-search-tool/default_window_maximized
+look-in-folder=/apps/mate-search-tool/look_in_folder
+
+[org.mate.search-tool.select]
+contains-the-text=/apps/mate-search-tool/select/contains_the_text
+date-modified-less-than=/apps/mate-search-tool/select/date_modified_less_than
+date-modified-more-than=/apps/mate-search-tool/select/date_modified_more_than
+size-at-least=/apps/mate-search-tool/select/size_at_least
+size-at-most=/apps/mate-search-tool/select/size_at_most
+file-is-empty=/apps/mate-search-tool/select/file_is_empty
+owned-by-user=/apps/mate-search-tool/select/owned_by_user
+owned-by-group=/apps/mate-search-tool/select/owned_by_group
+owner-is-unrecognized=/apps/mate-search-tool/select/owner_is_unrecognized
+name-does-not-contain=/apps/mate-search-tool/select/name_does_not_contain
+name-matches-regular-expression=/apps/mate-search-tool/select/name_matches_regular_expression
+show-hidden-files-and-folders=/apps/mate-search-tool/select/show_hidden_files_and_folders
+follow-symbolic-links=/apps/mate-search-tool/select/follow_symbolic_links
+exclude-other-filesystems=/apps/mate-search-tool/select/exclude_other_filesystems
diff --git a/gsearchtool/org.mate.search-tool.gschema.xml.in b/gsearchtool/org.mate.search-tool.gschema.xml.in
new file mode 100644
index 00000000..b6a532c4
--- /dev/null
+++ b/gsearchtool/org.mate.search-tool.gschema.xml.in
@@ -0,0 +1,117 @@
+<schemalist gettext-domain="mate-utils-2.0">
+ <schema id="org.mate.search-tool" path="/org/mate/search-tool/">
+ <key name="search-history" type="a{sas}">
+ <default>[ ]</default>
+ <_summary>Search history</_summary>
+ <_description>This key defines the items which were searched for in the past.</_description>
+ </key>
+ <key name="show-additional-options" type="b">
+ <default>false</default>
+ <_summary>Show Additional Options</_summary>
+ </key>
+ <key name="disable-quick-search" type="b">
+ <default>false</default>
+ <_summary>Disable Quick Search</_summary>
+ <_description>This key determines if the search tool disables the use of the locate command when performing simple file name searches.</_description>
+ </key>
+ <key name="quick-search-excluded-paths" type="as">
+ <default>[ '/mnt/*', '/media/*', '/dev/*', '/tmp/*', '/proc/*', '/var/*' ]</default>
+ <_summary>Quick Search Excluded Paths</_summary>
+ <_description>This key defines the paths the search tool will exclude from a quick search. The wildcards '*' and '?' are supported. The default values are /mnt/*, /media/*, /dev/*, /tmp/*, /proc/*, and /var/*.</_description>
+ </key>
+ <key name="disable-quick-search-second-scan" type="b">
+ <default>false</default>
+ <_summary>Disable Quick Search Second Scan</_summary>
+ <_description>This key determines if the search tool disables the use of the find command after performing a quick search.</_description>
+ </key>
+ <key name="quick-search-second-scan-excluded-paths" type="as">
+ <default>[ '/' ]</default>
+ <_summary>Quick Search Second Scan Excluded Paths</_summary>
+ <_description>This key defines the paths the search tool will exclude from a second scan when performing a quick search. The second scan uses the find command to search for files. The purpose of the second scan is to find files that have not been indexed. The wildcards '*' and '?' are supported. The default value is /.</_description>
+ </key>
+ <key name="columns-order" type="ai">
+ <default>[ 0 ]</default>
+ <_summary>Search Result Columns Order</_summary>
+ <_description>This key defines the order of the columns in the search results. This key should not be modified by the user.</_description>
+ </key>
+ <key name="default-window-width" type="i">
+ <default>-1</default>
+ <_summary>Default Window Width</_summary>
+ <_description>This key defines the window width, and it's used to remember the size of the search tool between sessions. Setting it to -1 will make the search tool use the default width.</_description>
+ </key>
+ <key name="default-window-height" type="i">
+ <default>-1</default>
+ <_summary>Default Window Height</_summary>
+ <_description>This key defines the window height, and it's used to remember the size of the search tool between sessions. Setting it to -1 will make the search tool use the default height.</_description>
+ </key>
+ <key name="default-window-maximized" type="b">
+ <default>false</default>
+ <_summary>Default Window Maximized</_summary>
+ <_description>This key determines if the search tool window starts in a maximized state.</_description>
+ </key>
+ <key name="look-in-folder" type="s">
+ <default>''</default>
+ <_summary>Look in Folder</_summary>
+ <_description>This key defines the default value of the "Look in Folder" widget.</_description>
+ </key>
+ <child name="select" schema="org.mate.search-tool.select"/>
+ </schema>
+ <schema id="org.mate.search-tool.select" path="/org/mate/search-tool/select/">
+ <key name="contains-the-text" type="b">
+ <default>true</default>
+ <_description>This key determines if the "Contains the text" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="date-modified-less-than" type="b">
+ <default>false</default>
+ <_description>This key determines if the "Date modified less than" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="date-modified-more-than" type="b">
+ <default>false</default>
+ <_description>This key determines if the "Date modified more than" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="size-at-least" type="b">
+ <default>false</default>
+ <_description>This key determines if the "Size at least" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="size-at-most" type="b">
+ <default>false</default>
+ <_description>This key determines if the "Size at most" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="file-is-empty" type="b">
+ <default>false</default>
+ <_description>This key determines if the "File is empty" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="owned-by-user" type="b">
+ <default>false</default>
+ <_description>This key determines if the "Owned by user" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="owned-by-group" type="b">
+ <default>false</default>
+ <_description>This key determines if the "Owned by group" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="owner-is-unrecognized" type="b">
+ <default>false</default>
+ <_description>This key determines if the "Owner is unrecognized" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="name-does-not-contain" type="b">
+ <default>false</default>
+ <_description>This key determines if the "Name does not contain" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="name-matches-regular-expression" type="b">
+ <default>false</default>
+ <_description>This key determines if the "Name matches regular expression" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="show-hidden-files-and-folders" type="b">
+ <default>false</default>
+ <_description>This key determines if the "Show hidden files and folders" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="follow-symbolic-links" type="b">
+ <default>false</default>
+ <_description>This key determines if the "Follow symbolic links" search option is selected when the search tool is started.</_description>
+ </key>
+ <key name="exclude-other-filesystems" type="b">
+ <default>false</default>
+ <_description>This key determines if the "Exclude other filesystems" search option is selected when the search tool is started.</_description>
+ </key>
+ </schema>
+</schemalist>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 4b696dcf..afcabf04 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -53,10 +53,10 @@ mate-screenshot/screenshot-shadow.c
mate-screenshot/screenshot-utils.c
mate-screenshot/screenshot-xfer.c
gsearchtool/mate-search-tool.desktop.in
-gsearchtool/mate-search-tool.schemas.in
+gsearchtool/gsearchtool.c
gsearchtool/gsearchtool-callbacks.c
gsearchtool/gsearchtool-support.c
-gsearchtool/gsearchtool.c
+gsearchtool/org.mate.search-tool.gschema.xml.in
libeggsmclient/eggdesktopfile.c
libeggsmclient/eggsmclient.c
logview/data/mate-system-log.desktop.in.in