Hi Jamie,
I found several problems reload when changing preferences through t-p:
1. Check/uncheck evolution email(maybe more) does not make trackerd
restart
2. Trackerd restart will report another trackerd is running.
3. Key for BatteryIndex BatteryIndexInitial and FastMerges does not
initialized t-p GUI.
Attach the patch for review.
Thanks,
Halton.
Index: trunk/src/trackerd/tracker-dbus-methods.c
===================================================================
--- trunk/src/trackerd/tracker-dbus-methods.c (revision 1038)
+++ trunk/src/trackerd/tracker-dbus-methods.c (working copy)
@@ -478,18 +478,33 @@
} else if (strcasecmp (option, "EnableIndexing") == 0) {
tracker->enable_indexing = value;
tracker_log ("Enable indexing set to %d", value);
+ } else if (strcasecmp (option, "EnableWatching") == 0) {
+ tracker->enable_watching = value;
+ tracker_log ("Enable Watching set to %d", value);
} else if (strcasecmp (option, "LowMemoryMode") == 0) {
tracker->use_extra_memory = !value;
tracker_log ("Extra memory usage set to %d", !value);
} else if (strcasecmp (option, "IndexFileContents") == 0) {
tracker->enable_content_indexing = value;
tracker_log ("Index file contents set to %d", value);
+ } else if (strcasecmp (option, "GenerateThumbs") == 0) {
+ tracker->enable_thumbnails = value;
+ tracker_log ("Generate thumbnails set to %d", value);
+ } else if (strcasecmp (option, "SkipMountPoints") == 0) {
+ tracker->skip_mount_points = value;
+ tracker_log ("Skip mounted directories set to %d", value);
} else if (strcasecmp (option, "EnableEvolution") == 0) {
+ tracker->index_evolution_emails = value;
tracker_log ("evolution support set to %d", value);
- tracker->index_evolution_emails = value;
} else if (strcasecmp (option, "FastMerges") == 0) {
+ tracker->fast_merges = value;
tracker_log ("Fast merges set to %d", value);
- tracker->fast_merges = value;
+ } else if (strcasecmp (option, "BatteryIndex") == 0) {
+ tracker->index_on_battery = value;
+ tracker_log ("Disable index on battery set to %d", !value);
+ } else if (strcasecmp (option, "BatteryIndexInitial") == 0) {
+ tracker->index_on_battery = value;
+ tracker_log ("Disable initial index sweep on battery set to %d", !value);
}
tracker_notify_file_data_available ();
@@ -531,6 +546,12 @@
if (strcasecmp (option, "Throttle") == 0) {
tracker->throttle = value;
tracker_log ("throttle set to %d", value);
+ } else if (strcasecmp (option, "MaxText") == 0) {
+ tracker->max_index_text_length = value;
+ tracker_log ("Maxinum amount of text set to %d", value);
+ } else if (strcasecmp (option, "MaxWords") == 0) {
+ tracker->max_words_to_index = value;
+ tracker_log ("Maxinum number of unique words set to %d", value);
}
reply = dbus_message_new_method_return (rec->message);
Index: trunk/src/tracker-preferences/Makefile.am
===================================================================
--- trunk/src/tracker-preferences/Makefile.am (revision 1038)
+++ trunk/src/tracker-preferences/Makefile.am (working copy)
@@ -19,6 +19,7 @@
INCLUDES = -DTRACKER_DATADIR=\""$(datadir)/tracker"\" \
-DTRACKER_LOCALEDIR=\""$(localedir)"\" \
+ -DTRACKER_BINDIR=\""$(bindir)"\" \
$(GLIB_CFLAGS) \
$(GTK2_CFLAGS) \
$(LIBGLADE_CFLAGS) \
Index: trunk/src/tracker-preferences/tracker-preferences.c
===================================================================
--- trunk/src/tracker-preferences/tracker-preferences.c (revision 1038)
+++ trunk/src/tracker-preferences/tracker-preferences.c (working copy)
@@ -237,6 +237,42 @@
}
+void
+spin_value_changed_cb (GtkSpinButton *spin_button, gpointer user_data)
+{
+ TrackerPreferencesPrivate *priv = user_data;
+ TrackerConfiguration *configuration = TRACKER_CONFIGURATION (priv->prefs);
+
+ const char *name = gtk_widget_get_name (GTK_WIDGET (spin_button));
+ int value = gtk_spin_button_get_value_as_int (spin_button);
+
+ if (name) {
+ g_print ("%s was clicked with value %d\n", name, value);
+ } else {
+ g_print ("unknown widget was clicked with value %d\n", value);
+ }
+
+ if (g_str_equal (name, "spnMaxText")) {
+
+ set_int_option (priv, "MaxText", value*1024);
+
+ tracker_configuration_set_int (configuration,
+ "/Performance/MaxTextToIndex",
+ value);
+
+
+ } else if (g_str_equal (name, "spnMaxWords")) {
+
+ set_int_option (priv, "MaxWords", value);
+
+ tracker_configuration_set_int (configuration,
+ "/Performance/MaxWordsToIndex",
+ value);
+
+ }
+
+}
+
void
check_toggled_cb (GtkToggleButton *check_button, gpointer user_data)
{
@@ -257,9 +293,21 @@
set_bool_option (priv, "EnableIndexing", value);
- tracker_configuration_set_bool (configuration, "/Indexing/EnableIndexing", value);
+ tracker_configuration_set_bool (configuration,
+ "/Indexing/EnableIndexing",
+ value);
+ flag_restart = TRUE;
+ } else if (g_str_equal (name, "chkEnableWatching")) {
+ set_bool_option (priv, "EnableWatching", value);
+
+ tracker_configuration_set_bool (configuration,
+ "/Watches/EnableWatching",
+ value);
+
+ flag_restart = TRUE;
+
} else if (g_str_equal (name, "chkEnableEvolutionIndexing")) {
set_bool_option (priv, "EnableEvolution", value);
@@ -268,6 +316,7 @@
"/Emails/IndexEvolutionEmails",
value);
+ flag_restart = TRUE;
} else if (g_str_equal (name, "chkIndexContents")) {
@@ -277,7 +326,26 @@
"/Indexing/EnableFileContentIndexing",
value);
+ flag_restart = TRUE;
+ } else if (g_str_equal (name, "chkGenerateThumbs")) {
+
+ set_bool_option (priv, "GenerateThumbs", value);
+
+ tracker_configuration_set_bool (configuration,
+ "/Indexing/EnableThumbnails",
+ value);
+
+
+ } else if (g_str_equal (name, "chkSkipMountPoints")) {
+
+ set_bool_option (priv, "SkipMountPoints", !value);
+
+ tracker_configuration_set_bool (configuration,
+ "/Indexing/SkipMountPoints",
+ !value);
+
+
} else if (g_str_equal (name, "chkFastMerges")) {
set_bool_option (priv, "FastMerges", value);
@@ -311,10 +379,6 @@
!value);
}
-
-
-
-
}
@@ -353,6 +417,8 @@
NULL);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value);
+ g_signal_connect (GTK_TOGGLE_BUTTON (widget), "toggled",
+ G_CALLBACK (check_toggled_cb), priv);
widget = glade_xml_get_widget (priv->gxml, "comLanguage");
char *str_value = tracker_configuration_get_string (configuration,
@@ -368,6 +434,26 @@
break;
}
}
+
+ widget = glade_xml_get_widget (priv->gxml, "chkDisableBatteryIndex");
+ value = tracker_configuration_get_bool (configuration,
+ "/Indexing/BatteryIndex",
+ NULL);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !value);
+
+ g_signal_connect (GTK_TOGGLE_BUTTON (widget), "toggled",
+ G_CALLBACK (check_toggled_cb), priv);
+
+ widget = glade_xml_get_widget (priv->gxml, "chkDisableBatteryInitialIndex");
+ value = tracker_configuration_get_bool (configuration,
+ "/Indexing/BatteryIndexInitial",
+ NULL);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !value);
+
+ g_signal_connect (GTK_TOGGLE_BUTTON (widget), "toggled",
+ G_CALLBACK (check_toggled_cb), priv);
+
+
}
static void
@@ -405,7 +491,16 @@
g_signal_connect (GTK_TOGGLE_BUTTON (widget), "toggled",
G_CALLBACK (check_toggled_cb), priv);
+ widget = glade_xml_get_widget (priv->gxml, "chkFastMerges");
+ bvalue = tracker_configuration_get_bool (configuration,
+ "/Indexing/FastMerges",
+ NULL);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), bvalue);
+ g_signal_connect (GTK_TOGGLE_BUTTON (widget), "toggled",
+ G_CALLBACK (check_toggled_cb), priv);
+
+
widget = glade_xml_get_widget (priv->gxml, "spnMaxText");
value = tracker_configuration_get_int (configuration,
"/Performance/MaxTextToIndex",
@@ -414,12 +509,18 @@
value = value / 1024;
gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), value);
+ g_signal_connect (GTK_SPIN_BUTTON (widget), "value-changed",
+ G_CALLBACK (spin_value_changed_cb), priv);
+
widget = glade_xml_get_widget (priv->gxml, "spnMaxWords");
value = tracker_configuration_get_int (configuration,
"/Performance/MaxWordsToIndex",
NULL);
gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), value);
+
+ g_signal_connect (GTK_SPIN_BUTTON (widget), "value-changed",
+ G_CALLBACK (spin_value_changed_cb), priv);
}
@@ -451,12 +552,17 @@
"/Indexing/EnableThumbnails",
NULL);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value);
+ g_signal_connect (GTK_TOGGLE_BUTTON (widget), "toggled",
+ G_CALLBACK (check_toggled_cb), priv);
+
widget = glade_xml_get_widget (priv->gxml, "chkSkipMountPoints");
value = tracker_configuration_get_bool (configuration,
"/Indexing/SkipMountPoints",
NULL);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !value);
+ g_signal_connect (GTK_TOGGLE_BUTTON (widget), "toggled",
+ G_CALLBACK (check_toggled_cb), priv);
widget = glade_xml_get_widget (priv->gxml,
@@ -578,15 +684,21 @@
const gchar * prev_owner, const gchar * new_owner,
gpointer data)
{
+ static gboolean first_time = TRUE;
+
if (!g_str_equal (name, TRACKER_SERVICE))
return;
+ if (!first_time)
+ return;
+
if (g_str_equal (new_owner, "")) {
/* tracker has exited */
- const gchar *command = "trackerd";
+ const gchar *command = TRACKER_BINDIR "/trackerd";
if (!g_spawn_command_line_async (command, NULL))
g_warning ("Unable to execute command: %s", command);
+ first_time = FALSE;
gtk_main_quit ();
}
}
@@ -671,17 +783,6 @@
tracker_configuration_set_int (configuration, "/General/InitialSleep",
value);
- widget = glade_xml_get_widget (priv->gxml, "chkEnableWatching");
- value = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
- value_old = tracker_configuration_get_bool (configuration,
- "/Watches/EnableWatching",
- NULL);
-
- if (value != value_old) flag_restart = TRUE;
-
- tracker_configuration_set_bool (configuration,
- "/Watches/EnableWatching", value);
-
widget = glade_xml_get_widget (priv->gxml, "comLanguage");
gint i = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
str_value = tracker_configuration_get_string (configuration,
@@ -698,73 +799,8 @@
}
- /* save performance settings */
- widget = glade_xml_get_widget (priv->gxml, "scaThrottle");
-
- ivalue = gtk_range_get_value (GTK_RANGE (widget));
- ivalue_old = tracker_configuration_get_int (configuration,
- "/Indexing/Throttle",
- NULL);
-
- if (ivalue != ivalue_old) flag_restart = TRUE;
-
- tracker_configuration_set_int (configuration,
- "/Indexing/Throttle", ivalue);
-
- widget = glade_xml_get_widget (priv->gxml, "optReducedMemory");
- value = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
- value_old = tracker_configuration_get_bool (configuration,
- "/General/LowMemoryMode",
- NULL);
-
- widget = glade_xml_get_widget (priv->gxml, "spnMaxText");
- ivalue = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget));
- ivalue = ivalue * 1024;
- ivalue_old = tracker_configuration_get_int (configuration,
- "/Performance/MaxTextToIndex",
- NULL);
-
- if (ivalue != ivalue_old) flag_restart = TRUE;
-
- tracker_configuration_set_int (configuration,
- "/Performance/MaxTextToIndex", ivalue);
-
- widget = glade_xml_get_widget (priv->gxml, "spnMaxWords");
- ivalue = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget));
- ivalue_old = tracker_configuration_get_int (configuration,
- "/Performance/MaxWordsToIndex",
- NULL);
-
- if (ivalue != ivalue_old) flag_restart = TRUE;
-
- tracker_configuration_set_int (configuration,
- "/Performance/MaxWordsToIndex",
- ivalue);
-
-
/* files settings */
- widget = glade_xml_get_widget (priv->gxml, "chkGenerateThumbs");
- value = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
- value_old = tracker_configuration_get_bool (configuration,
- "/Indexing/EnableThumbnails",
- NULL);
- if (value != value_old) {
- flag_restart = TRUE;
- }
-
- tracker_configuration_set_bool (configuration,
- "/Indexing/EnableThumbnails", value);
-
- widget = glade_xml_get_widget (priv->gxml, "chkSkipMountPoints");
- value = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
- value_old = tracker_configuration_get_bool (configuration,
- "/Indexing/SkipMountPoints",
- NULL);
-
- tracker_configuration_set_bool (configuration,
- "/Indexing/SkipMountPoints", !value);
-
widget = glade_xml_get_widget (priv->gxml,
"lstAdditionalPathIndexes");
list = treeview_get_values (GTK_TREE_VIEW (widget));
@@ -806,32 +842,13 @@
list = NULL;
- /* email settings */
- widget = glade_xml_get_widget (priv->gxml,
- "chkEnableEvolutionIndexing");
- value = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
- value_old = tracker_configuration_get_bool (configuration,
- "/Emails/IndexEvolutionEmails",
- NULL);
- if (value != value_old)
- flag_restart = TRUE;
- tracker_configuration_set_bool (configuration,
- "/Emails/IndexEvolutionEmails",
- value);
-
-
tracker_configuration_write (configuration);
if (flag_restart && if_trackerd_start (priv)) {
-
GtkWidget * dialog;
char *msg;
-
-
-
-
if (flag_reindex) {
msg = _("Your system must be re-indexed for your changes to take effect. Re-index now?");
} else {
Index: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog (revision 1038)
+++ trunk/ChangeLog (working copy)
@@ -1,3 +1,21 @@
+2007-11-04 Halton Huo <[EMAIL PROTECTED]>
+
+ Fix several problems for trackerd reload when changing preferences
+ through t-p:
+ 1. Check/uncheck evolution email(maybe more) does not make
+ trackerd restart
+ 2. Trackerd restart will report another trackerd is running.
+ 3. Key for BatteryIndex BatteryIndexInitial and FastMerges does
+ not initialized t-p GUI.
+ * src/tracker-preferences/Makefile.am: Add TRACKER_BINDIR
+ * src/tracker-preferences/tracker-preferences.c:
+ (spin_value_changed_cb), (check_toggled_cb), (setup_page_general),
+ (setup_page_performance), (setup_page_files), (name_owner_changed),
+ (cmdClose_Clicked):
+ * src/trackerd/tracker-dbus-methods.c:
+ (tracker_dbus_method_set_bool_option): Add some bool option here.
+ (tracker_dbus_method_set_int_option): Add some int option here.
+
2007-11-19 Marcus Fritzsch <m at fritschy dot de>
* python/deskbar-handler/tracker-{handler,module}.py
_______________________________________________
tracker-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/tracker-list