[gthumb: 4/24] copy_move_to_folder: add preference dialog
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb: 4/24] copy_move_to_folder: add preference dialog
- Date: Mon, 15 Nov 2010 19:25:51 +0000 (UTC)
commit 559c8ead45bfc40e654fb7a0c9580e19b2b6b0fe
Author: Marlodavampire <vworker.com>
Date: Wed Nov 10 15:25:09 2010 +1100
copy_move_to_folder: add preference dialog
extensions/copy_move_to_folder/Makefile.am | 2 +
extensions/copy_move_to_folder/data/ui/Makefile.am | 3 +-
.../data/ui/copy-move-to-folder-preferences.ui | 66 +++++++++++++++
.../dlg-copy-move-to-folder-preferences.c | 87 ++++++++++++++++++++
.../dlg-copy-move-to-folder-preferences.h | 29 +++++++
extensions/copy_move_to_folder/main.c | 4 +-
6 files changed, 189 insertions(+), 2 deletions(-)
---
diff --git a/extensions/copy_move_to_folder/Makefile.am b/extensions/copy_move_to_folder/Makefile.am
index 5166a93..c9c3d09 100644
--- a/extensions/copy_move_to_folder/Makefile.am
+++ b/extensions/copy_move_to_folder/Makefile.am
@@ -11,6 +11,8 @@ libcopy_move_to_folder_la_SOURCES = \
preferences.h \
dlg-copy-complete.c \
dlg-copy-complete.h \
+ dlg-copy-move-to-folder-preferences.c \
+ dlg-copy-move-to-folder-preferences.h \
main.c
libcopy_move_to_folder_la_CFLAGS = $(GTHUMB_CFLAGS) -I$(top_srcdir) -I$(top_builddir)/gthumb
diff --git a/extensions/copy_move_to_folder/data/ui/Makefile.am b/extensions/copy_move_to_folder/data/ui/Makefile.am
index e21643f..2e6f0ce 100644
--- a/extensions/copy_move_to_folder/data/ui/Makefile.am
+++ b/extensions/copy_move_to_folder/data/ui/Makefile.am
@@ -1,7 +1,8 @@
uidir = $(pkgdatadir)/ui
ui_DATA = \
copy-move-to-folder-copy-complete.ui \
- copy-move-to-folder-move-complete.ui
+ copy-move-to-folder-move-complete.ui \
+ copy-move-to-folder-preferences.ui
EXTRA_DIST = $(ui_DATA)
diff --git a/extensions/copy_move_to_folder/data/ui/copy-move-to-folder-preferences.ui b/extensions/copy_move_to_folder/data/ui/copy-move-to-folder-preferences.ui
new file mode 100644
index 0000000..87b2efd
--- /dev/null
+++ b/extensions/copy_move_to_folder/data/ui/copy-move-to-folder-preferences.ui
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk+" version="2.16"/>
+ <!-- interface-naming-policy project-wide -->
+ <object class="GtkDialog" id="preferences_dialog">
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Preferences</property>
+ <property name="type_hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox7">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="border_width">5</property>
+ <child>
+ <object class="GtkCheckButton" id="ask_button">
+ <property name="label" translatable="yes">_Ask what to do when an operation is complete.</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area7">
+ <property name="visible">True</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="close_button">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="0">close_button</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/extensions/copy_move_to_folder/dlg-copy-move-to-folder-preferences.c b/extensions/copy_move_to_folder/dlg-copy-move-to-folder-preferences.c
new file mode 100644
index 0000000..f93d2d1
--- /dev/null
+++ b/extensions/copy_move_to_folder/dlg-copy-move-to-folder-preferences.c
@@ -0,0 +1,87 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ * GThumb
+ *
+ * Copyright (C) 2010 The Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+#include <gtk/gtk.h>
+#include <gthumb.h>
+#include "preferences.h"
+
+
+typedef struct {
+ GtkBuilder *builder;
+ GtkWidget *dialog;
+} DialogData;
+
+
+static void
+destroy_cb (GtkWidget *widget,
+ DialogData *data)
+{
+ g_object_unref (data->builder);
+ g_free (data);
+}
+
+
+static void
+ask_checkbutton_clicked_cb (GtkWidget *widget,
+ DialogData *data)
+{
+ eel_gconf_set_boolean (PREF_COPY_MOVE_TO_FOLDER_SHOW_DIALOG, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (data->builder, "ask_button"))));
+}
+
+
+void
+dlg_copy_move_to_folder_preferences (GtkWindow *parent)
+{
+ DialogData *data;
+
+ data = g_new0 (DialogData, 1);
+ data->builder = _gtk_builder_new_from_file ("copy-move-to-folder-preferences.ui", "copy-move-to-folder");
+
+ /* Get the widgets. */
+
+ data->dialog = _gtk_builder_get_widget (data->builder, "preferences_dialog");
+
+ /* Set widgets data. */
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (data->builder, "ask_button")), eel_gconf_get_boolean (PREF_COPY_MOVE_TO_FOLDER_SHOW_DIALOG, TRUE));
+
+ /* Set the signals handlers. */
+
+ g_signal_connect (G_OBJECT (data->dialog),
+ "destroy",
+ G_CALLBACK (destroy_cb),
+ data);
+ g_signal_connect_swapped (gtk_builder_get_object (data->builder, "close_button"),
+ "clicked",
+ G_CALLBACK (gtk_widget_destroy),
+ G_OBJECT (data->dialog));
+ g_signal_connect (gtk_builder_get_object (data->builder, "ask_button"),
+ "clicked",
+ G_CALLBACK (ask_checkbutton_clicked_cb),
+ data);
+
+ /* run dialog. */
+
+ gtk_window_set_transient_for (GTK_WINDOW (data->dialog), parent);
+ gtk_window_set_modal (GTK_WINDOW (data->dialog), TRUE);
+ gtk_widget_show (data->dialog);
+}
diff --git a/extensions/copy_move_to_folder/dlg-copy-move-to-folder-preferences.h b/extensions/copy_move_to_folder/dlg-copy-move-to-folder-preferences.h
new file mode 100644
index 0000000..0fbb8be
--- /dev/null
+++ b/extensions/copy_move_to_folder/dlg-copy-move-to-folder-preferences.h
@@ -0,0 +1,29 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ * GThumb
+ *
+ * Copyright (C) 2010 The Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef DLG_COPY_MOVE_TO_FOLDER_PREFERENCES_H
+#define DLG_COPY_MOVE_TO_FOLDER_PREFERENCES_H
+
+#include <gthumb.h>
+
+void dlg_copy_move_to_folder_preferences (GtkWindow *parent);
+
+#endif /* DLG_COPY_MOVE_TO_FOLDER_PREFERENCES_H */
diff --git a/extensions/copy_move_to_folder/main.c b/extensions/copy_move_to_folder/main.c
index 1129959..854d8ca 100644
--- a/extensions/copy_move_to_folder/main.c
+++ b/extensions/copy_move_to_folder/main.c
@@ -24,6 +24,7 @@
#include <gtk/gtk.h>
#include <gthumb.h>
#include "callbacks.h"
+#include "dlg-copy-move-to-folder-preferences.h"
G_MODULE_EXPORT void
@@ -43,11 +44,12 @@ gthumb_extension_deactivate (void)
G_MODULE_EXPORT gboolean
gthumb_extension_is_configurable (void)
{
- return FALSE;
+ return TRUE;
}
G_MODULE_EXPORT void
gthumb_extension_configure (GtkWindow *parent)
{
+ dlg_copy_move_to_folder_preferences (parent);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]