+}
+
+void preferences_activate_cbk(GtkWidget *menu_item, gpointer data)
+{
+ gint result;
+ static GtkDialog *diag;
+ GtkBuilder *builder;
+ GtkFileChooser *w_dir;
+ char *dir;
+ const char *sdir;
+
+ builder = gtk_builder_new();
+ gtk_builder_add_from_file
+ (builder,
+ PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "ptask.glade",
+ NULL);
+ diag = GTK_DIALOG(gtk_builder_get_object(builder, "diag_preferences"));
+ gtk_builder_connect_signals(builder, NULL);
+
+ w_dir = GTK_FILE_CHOOSER(gtk_builder_get_object(builder,
+ "dir_chooser"));
+
+ sdir = settings_get_notes_dir();
+ if (sdir && *sdir)
+ gtk_file_chooser_set_filename(w_dir, sdir);
+
+ result = gtk_dialog_run(diag);
+
+ if (result) {
+ log_debug("preferences_activate_cbk(): accept");
+ dir = gtk_file_chooser_get_filename(w_dir);
+
+ if (dir) {
+ log_debug("preferences_activate_cbk(): path=%s", dir);
+ settings_set_notes_dir(dir);
+ free(dir);
+ }
+
+ refresh();
+ } else {
+ log_debug("preferences_activate_cbk(): cancel");
+ }
+
+ g_object_unref(G_OBJECT(builder));
+
+ gtk_widget_destroy(GTK_WIDGET(diag));
+}