[gimp] app: gimp_image_get/set_imported/exported/save_a_copy_uri()
- From: Martin Nordholts <martinn src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: gimp_image_get/set_imported/exported/save_a_copy_uri()
- Date: Wed, 2 Feb 2011 21:45:17 +0000 (UTC)
commit 366cddc856eb300d598d28ee9523b0bcaee622c3
Author: Martin Nordholts <martinn src gnome org>
Date: Wed Jan 26 20:45:32 2011 +0100
app: gimp_image_get/set_imported/exported/save_a_copy_uri()
Add more proper core API for GimpImage URI management.
app/actions/file-actions.c | 6 +-
app/actions/file-commands.c | 14 +---
app/core/gimpimage.c | 107 ++++++++++++++++++++++++++++++++++
app/core/gimpimage.h | 14 ++++-
app/dialogs/file-save-dialog.c | 14 +----
app/display/gimpdisplayshell-title.c | 10 +--
app/file/file-open.c | 3 +-
app/file/gimp-file.h | 6 --
app/widgets/gimpfiledialog.c | 30 +++------
9 files changed, 143 insertions(+), 61 deletions(-)
---
diff --git a/app/actions/file-actions.c b/app/actions/file-actions.c
index 372405c..c3fa676 100644
--- a/app/actions/file-actions.c
+++ b/app/actions/file-actions.c
@@ -260,10 +260,8 @@ file_actions_update (GimpActionGroup *group,
if (image)
{
drawable = gimp_image_get_active_drawable (image);
- source = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_IMPORT_SOURCE_URI_KEY);
- export = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_EXPORT_URI_KEY);
+ source = gimp_image_get_imported_uri (image);
+ export = gimp_image_get_exported_uri (image);
}
show_overwrite =
diff --git a/app/actions/file-commands.c b/app/actions/file-commands.c
index e160c68..2395e2e 100644
--- a/app/actions/file-commands.c
+++ b/app/actions/file-commands.c
@@ -288,14 +288,10 @@ file_save_cmd_callback (GtkAction *action,
const gchar *uri;
GimpPlugInProcedure *export_proc;
- uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_EXPORT_URI_KEY);
+ uri = gimp_image_get_exported_uri (image);
if (!uri)
- {
- uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_IMPORT_SOURCE_URI_KEY);
- }
+ uri = gimp_image_get_imported_uri (image);
if (uri)
{
@@ -363,8 +359,7 @@ file_revert_cmd_callback (GtkAction *action,
if (! uri)
{
- uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_IMPORT_SOURCE_URI_KEY);
+ uri = gimp_image_get_imported_uri (image);
source = uri;
}
@@ -665,8 +660,7 @@ file_revert_confirm_response (GtkWidget *dialog,
uri = gimp_image_get_uri (old_image);
if (! uri)
- uri = g_object_get_data (G_OBJECT (old_image),
- GIMP_FILE_IMPORT_SOURCE_URI_KEY);
+ uri = gimp_image_get_imported_uri (old_image);
new_image = file_open_image (gimp, gimp_get_user_context (gimp),
GIMP_PROGRESS (display),
diff --git a/app/core/gimpimage.c b/app/core/gimpimage.c
index 4c0a87c..cc9a37e 100644
--- a/app/core/gimpimage.c
+++ b/app/core/gimpimage.c
@@ -78,6 +78,11 @@
#define TRC(x)
#endif
+/* Data keys for GimpImage */
+#define GIMP_FILE_EXPORT_URI_KEY "gimp-file-export-uri"
+#define GIMP_FILE_SAVE_A_COPY_URI_KEY "gimp-file-save-a-copy-uri"
+#define GIMP_FILE_IMPORT_SOURCE_URI_KEY "gimp-file-import-source-uri"
+
enum
{
@@ -1584,6 +1589,108 @@ gimp_image_set_filename (GimpImage *image,
}
}
+/**
+ * gimp_image_get_imported_uri:
+ * @image: A #GimpImage.
+ *
+ * Returns: The URI of the imported image, or NULL if the image has
+ * been saved as XCF after it was imported.
+ **/
+const gchar *
+gimp_image_get_imported_uri (const GimpImage *image)
+{
+ g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
+
+ return g_object_get_data (G_OBJECT (image),
+ GIMP_FILE_IMPORT_SOURCE_URI_KEY);
+}
+
+/**
+ * gimp_image_get_exported_uri:
+ * @image: A #GimpImage.
+ *
+ * Returns: The URI of the image last exported from this XCF file, or
+ * NULL if the image has never been exported.
+ **/
+const gchar *
+gimp_image_get_exported_uri (const GimpImage *image)
+{
+ g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
+
+ return g_object_get_data (G_OBJECT (image),
+ GIMP_FILE_EXPORT_URI_KEY);
+}
+
+/**
+ * gimp_image_get_save_a_copy_uri:
+ * @image: A #GimpImage.
+ *
+ * Returns: The URI of the last copy that was saved of this XCF file.
+ **/
+const gchar *
+gimp_image_get_save_a_copy_uri (const GimpImage *image)
+{
+ g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
+
+ return g_object_get_data (G_OBJECT (image),
+ GIMP_FILE_SAVE_A_COPY_URI_KEY);
+}
+
+/**
+ * gimp_image_set_imported_uri:
+ * @image: A #GimpImage.
+ * @uri:
+ *
+ * Sets the URI this file was imported from.
+ **/
+void
+gimp_image_set_imported_uri (GimpImage *image,
+ const gchar *uri)
+{
+ g_return_if_fail (GIMP_IS_IMAGE (image));
+
+ g_object_set_data_full (G_OBJECT (image), GIMP_FILE_IMPORT_SOURCE_URI_KEY,
+ g_strdup (uri), (GDestroyNotify) g_free);
+}
+
+/**
+ * gimp_image_set_exported_uri:
+ * @image: A #GimpImage.
+ * @uri:
+ *
+ * Sets the URI this file was last exported to. Note that saving as
+ * XCF is not "exporting".
+ **/
+void
+gimp_image_set_exported_uri (GimpImage *image,
+ const gchar *uri)
+{
+ g_return_if_fail (GIMP_IS_IMAGE (image));
+
+ g_object_set_data_full (G_OBJECT (image),
+ GIMP_FILE_EXPORT_URI_KEY,
+ g_strdup (uri), (GDestroyNotify) g_free);
+}
+
+/**
+ * gimp_image_set_save_a_copy_uri:
+ * @image: A #GimpImage.
+ * @uri:
+ *
+ * Set the URI to the last copy this XCF file was saved to through the
+ * "save a copy" action.
+ **/
+void
+gimp_image_set_save_a_copy_uri (GimpImage *image,
+ const gchar *uri)
+{
+ g_return_if_fail (GIMP_IS_IMAGE (image));
+
+ g_object_set_data_full (G_OBJECT (image),
+ GIMP_FILE_SAVE_A_COPY_URI_KEY,
+ g_strdup (uri), (GDestroyNotify) g_free);
+}
+
gchar *
gimp_image_get_filename (const GimpImage *image)
{
diff --git a/app/core/gimpimage.h b/app/core/gimpimage.h
index 912c734..d28bdb4 100644
--- a/app/core/gimpimage.h
+++ b/app/core/gimpimage.h
@@ -170,10 +170,20 @@ gint gimp_image_get_ID (const GimpImage *image);
GimpImage * gimp_image_get_by_ID (Gimp *gimp,
gint id);
-void gimp_image_set_uri (GimpImage *image,
- const gchar *uri);
const gchar * gimp_image_get_uri (const GimpImage *image);
const gchar * gimp_image_get_uri_or_untitled (const GimpImage *image);
+const gchar * gimp_image_get_imported_uri (const GimpImage *image);
+const gchar * gimp_image_get_exported_uri (const GimpImage *image);
+const gchar * gimp_image_get_save_a_copy_uri (const GimpImage *image);
+
+void gimp_image_set_uri (GimpImage *image,
+ const gchar *uri);
+void gimp_image_set_imported_uri (GimpImage *image,
+ const gchar *uri);
+void gimp_image_set_exported_uri (GimpImage *image,
+ const gchar *uri);
+void gimp_image_set_save_a_copy_uri (GimpImage *image,
+ const gchar *uri);
void gimp_image_set_filename (GimpImage *image,
const gchar *filename);
diff --git a/app/dialogs/file-save-dialog.c b/app/dialogs/file-save-dialog.c
index 48ffc61..daf71a6 100644
--- a/app/dialogs/file-save-dialog.c
+++ b/app/dialogs/file-save-dialog.c
@@ -197,11 +197,7 @@ file_save_dialog_response (GtkWidget *save_dialog,
* places
*/
if (dialog->save_a_copy)
- {
- g_object_set_data_full (G_OBJECT (dialog->image),
- GIMP_FILE_SAVE_A_COPY_URI_KEY,
- g_strdup (uri), (GDestroyNotify) g_free);
- }
+ gimp_image_set_save_a_copy_uri (dialog->image, uri);
if (! dialog->export)
{
@@ -213,9 +209,7 @@ file_save_dialog_response (GtkWidget *save_dialog,
* save as that the user is not interested in being able
* to quickly export back to the original any longer
*/
- g_object_set_data (G_OBJECT (dialog->image),
- GIMP_FILE_IMPORT_SOURCE_URI_KEY,
- NULL);
+ gimp_image_set_imported_uri (dialog->image, NULL);
}
else
{
@@ -228,9 +222,7 @@ file_save_dialog_response (GtkWidget *save_dialog,
* happens implicitly when saving since the GimpObject name
* of a GimpImage is the last-save URI
*/
- g_object_set_data_full (G_OBJECT (dialog->image),
- GIMP_FILE_EXPORT_URI_KEY,
- g_strdup (uri), (GDestroyNotify) g_free);
+ gimp_image_set_exported_uri (dialog->image, uri);
}
g_object_set_data_full (G_OBJECT (dialog->image->gimp),
diff --git a/app/display/gimpdisplayshell-title.c b/app/display/gimpdisplayshell-title.c
index 487228c..7614968 100644
--- a/app/display/gimpdisplayshell-title.c
+++ b/app/display/gimpdisplayshell-title.c
@@ -470,12 +470,11 @@ gimp_display_shell_format_filename (gchar *buf,
gboolean is_imported = FALSE;
gint incr = 0;
- source = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_IMPORT_SOURCE_URI_KEY);
+ source = gimp_image_get_imported_uri (image);
/* Note that as soon as the image is saved, it is not considered
- * imported any longer (GIMP_FILE_IMPORT_SOURCE_URI_KEY is set to
- * NULL)
+ * imported any longer (gimp_image_set_imported_uri (image, NULL) is
+ * called)
*/
is_imported = (source != NULL);
@@ -498,8 +497,7 @@ gimp_display_shell_format_filename (gchar *buf,
if (! gimp_image_is_export_dirty (image))
{
gboolean is_exported;
- is_exported = (g_object_get_data (G_OBJECT (image),
- GIMP_FILE_EXPORT_URI_KEY) != NULL);
+ is_exported = (gimp_image_get_exported_uri (image) != NULL);
if (is_exported)
export_status = _(" (exported)");
else if (is_imported)
diff --git a/app/file/file-open.c b/app/file/file-open.c
index 838fc92..2b97aa3 100644
--- a/app/file/file-open.c
+++ b/app/file/file-open.c
@@ -209,8 +209,7 @@ file_open_image (Gimp *gimp,
if (file_open_file_proc_is_import (file_proc))
{
/* Remember the import source */
- g_object_set_data_full (G_OBJECT (image), GIMP_FILE_IMPORT_SOURCE_URI_KEY,
- g_strdup (uri), (GDestroyNotify) g_free);
+ gimp_image_set_imported_uri (image, uri);
/* We shall treat this file as an Untitled file */
gimp_object_set_name (GIMP_OBJECT (image), NULL);
diff --git a/app/file/gimp-file.h b/app/file/gimp-file.h
index 351e5f6..6ef725f 100644
--- a/app/file/gimp-file.h
+++ b/app/file/gimp-file.h
@@ -26,11 +26,5 @@
#define GIMP_FILE_SAVE_LAST_URI_KEY "gimp-file-save-last-uri"
#define GIMP_FILE_EXPORT_LAST_URI_KEY "gimp-file-export-last-uri"
-/* Data keys for GimpImage */
-#define GIMP_FILE_EXPORT_URI_KEY "gimp-file-export-uri"
-#define GIMP_FILE_SAVE_A_COPY_URI_KEY "gimp-file-save-a-copy-uri"
-#define GIMP_FILE_IMPORT_SOURCE_URI_KEY "gimp-file-import-source-uri"
-
-
#endif /* __GIMP_FILE_H__ */
diff --git a/app/widgets/gimpfiledialog.c b/app/widgets/gimpfiledialog.c
index 8e75215..37fb0f2 100644
--- a/app/widgets/gimpfiledialog.c
+++ b/app/widgets/gimpfiledialog.c
@@ -519,8 +519,7 @@ gimp_file_dialog_set_save_image (GimpFileDialog *dialog,
*/
if (save_a_copy)
- dir_uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_SAVE_A_COPY_URI_KEY);
+ dir_uri = gimp_image_get_save_a_copy_uri (image);
if (! dir_uri)
dir_uri = gimp_image_get_uri (image);
@@ -530,8 +529,7 @@ gimp_file_dialog_set_save_image (GimpFileDialog *dialog,
"gimp-image-source-uri");
if (! dir_uri)
- dir_uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_IMPORT_SOURCE_URI_KEY);
+ dir_uri = gimp_image_get_imported_uri (image);
if (! dir_uri)
dir_uri = g_object_get_data (G_OBJECT (gimp),
@@ -551,19 +549,16 @@ gimp_file_dialog_set_save_image (GimpFileDialog *dialog,
*/
if (save_a_copy)
- name_uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_SAVE_A_COPY_URI_KEY);
+ name_uri = gimp_image_get_save_a_copy_uri (image);
if (! name_uri)
name_uri = gimp_image_get_uri (image);
if (! name_uri)
- name_uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_EXPORT_URI_KEY);
+ name_uri = gimp_image_get_exported_uri (image);
if (! name_uri)
- name_uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_IMPORT_SOURCE_URI_KEY);
+ name_uri = gimp_image_get_imported_uri (image);
if (! name_uri)
name_uri = gimp_image_get_string_untitled ();
@@ -592,16 +587,14 @@ gimp_file_dialog_set_save_image (GimpFileDialog *dialog,
* 6. The OS 'Documents' path
*/
- dir_uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_EXPORT_URI_KEY);
+ dir_uri = gimp_image_get_exported_uri (image);
if (! dir_uri)
dir_uri = g_object_get_data (G_OBJECT (image),
"gimp-image-source-uri");
if (! dir_uri)
- dir_uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_IMPORT_SOURCE_URI_KEY);
+ dir_uri = gimp_image_get_imported_uri (image);
if (! dir_uri)
dir_uri = gimp_image_get_uri (image);
@@ -626,15 +619,13 @@ gimp_file_dialog_set_save_image (GimpFileDialog *dialog,
* 3. 'Untitled'
*/
- name_uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_EXPORT_URI_KEY);
+ name_uri = gimp_image_get_exported_uri (image);
if (! name_uri)
name_uri = gimp_image_get_uri (image);
if (! name_uri)
- name_uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_IMPORT_SOURCE_URI_KEY);
+ name_uri = gimp_image_get_imported_uri (image);
if (! name_uri)
name_uri = gimp_image_get_string_untitled ();
@@ -646,8 +637,7 @@ gimp_file_dialog_set_save_image (GimpFileDialog *dialog,
* 3. Type of latest Export of any document
* 2. .png
*/
- ext_uri = g_object_get_data (G_OBJECT (image),
- GIMP_FILE_EXPORT_URI_KEY);
+ ext_uri = gimp_image_get_exported_uri (image);
if (! ext_uri)
ext_uri = g_object_get_data (G_OBJECT (gimp),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]