gimp r25219 - in trunk: . app/core app/file app/gui



Author: neo
Date: Tue Mar 25 10:50:42 2008
New Revision: 25219
URL: http://svn.gnome.org/viewvc/gimp?rev=25219&view=rev

Log:
2008-03-25  Sven Neumann  <sven gimp org>

	* app/core/gimp-gui.[ch]
	* app/gui/gui-vtable.c: added gimp_get_empty_display() to the vtable.

	* app/file/file-open.c (file_open_from_command_line): use the
	empty display as progress window when opening an image from the
	command-line or via the DBus interface.


Modified:
   trunk/ChangeLog
   trunk/app/core/gimp-gui.c
   trunk/app/core/gimp-gui.h
   trunk/app/file/file-open.c
   trunk/app/gui/gui-vtable.c

Modified: trunk/app/core/gimp-gui.c
==============================================================================
--- trunk/app/core/gimp-gui.c	(original)
+++ trunk/app/core/gimp-gui.c	Tue Mar 25 10:50:42 2008
@@ -238,6 +238,17 @@
 }
 
 GimpObject *
+gimp_get_empty_display (Gimp *gimp)
+{
+  g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
+
+  if (gimp->gui.get_empty_display)
+    return gimp->gui.get_empty_display (gimp);
+
+  return NULL;
+}
+
+GimpObject *
 gimp_get_display_by_ID (Gimp *gimp,
                         gint  ID)
 {

Modified: trunk/app/core/gimp-gui.h
==============================================================================
--- trunk/app/core/gimp-gui.h	(original)
+++ trunk/app/core/gimp-gui.h	Tue Mar 25 10:50:42 2008
@@ -47,6 +47,7 @@
                                           gint                *monitor_number);
   const gchar  * (* get_theme_dir)       (Gimp                *gimp);
 
+  GimpObject   * (* get_empty_display)   (Gimp                *gimp);
   GimpObject   * (* display_get_by_id)   (Gimp                *gimp,
                                           gint                 ID);
   gint           (* display_get_id)      (GimpObject          *display);
@@ -96,6 +97,7 @@
 void           gimp_threads_enter        (Gimp                *gimp);
 void           gimp_threads_leave        (Gimp                *gimp);
 
+GimpObject   * gimp_get_empty_display    (Gimp                *gimp);
 GimpObject   * gimp_get_display_by_ID    (Gimp                *gimp,
                                           gint                 ID);
 gint           gimp_get_display_ID       (Gimp                *gimp,

Modified: trunk/app/file/file-open.c
==============================================================================
--- trunk/app/file/file-open.c	(original)
+++ trunk/app/file/file-open.c	Tue Mar 25 10:50:42 2008
@@ -481,11 +481,12 @@
   if (uri)
     {
       GimpImage         *image;
+      GimpObject        *display = gimp_get_empty_display (gimp);
       GimpPDBStatusType  status;
 
       image = file_open_with_display (gimp,
                                       gimp_get_user_context (gimp),
-                                      NULL,
+                                      GIMP_PROGRESS (display),
                                       uri, as_new,
                                       &status, &error);
 
@@ -497,7 +498,7 @@
         {
           gchar *filename = file_utils_uri_display_name (uri);
 
-          gimp_message (gimp, NULL, GIMP_MESSAGE_ERROR,
+          gimp_message (gimp, G_OBJECT (display), GIMP_MESSAGE_ERROR,
                         _("Opening '%s' failed: %s"),
                         filename, error->message);
           g_clear_error (&error);

Modified: trunk/app/gui/gui-vtable.c
==============================================================================
--- trunk/app/gui/gui-vtable.c	(original)
+++ trunk/app/gui/gui-vtable.c	Tue Mar 25 10:50:42 2008
@@ -89,6 +89,7 @@
                                                 gint                 display_ID,
                                                 gint                *monitor_number);
 static const gchar  * gui_get_theme_dir        (Gimp                *gimp);
+static GimpObject   * gui_get_empty_display    (Gimp                *gimp);
 static GimpObject   * gui_display_get_by_ID    (Gimp                *gimp,
                                                 gint                 ID);
 static gint           gui_display_get_ID       (GimpObject          *display);
@@ -101,7 +102,6 @@
 static void           gui_displays_reconnect   (Gimp                *gimp,
                                                 GimpImage           *old_image,
                                                 GimpImage           *new_image);
-static GimpDisplay  * gui_get_empty_display    (Gimp                *gimp);
 static GimpProgress * gui_new_progress         (Gimp                *gimp,
                                                 GimpObject          *display);
 static void           gui_free_progress        (Gimp                *gimp,
@@ -145,6 +145,7 @@
   gimp->gui.get_program_class   = gui_get_program_class;
   gimp->gui.get_display_name    = gui_get_display_name;
   gimp->gui.get_theme_dir       = gui_get_theme_dir;
+  gimp->gui.get_empty_display   = gui_get_empty_display;
   gimp->gui.display_get_by_id   = gui_display_get_by_ID;
   gimp->gui.display_get_id      = gui_display_get_ID;
   gimp->gui.display_get_window  = gui_display_get_window;
@@ -261,6 +262,25 @@
 }
 
 static GimpObject *
+gui_get_empty_display (Gimp *gimp)
+{
+  GimpObject *display = NULL;
+
+  if (gimp_container_num_children (gimp->displays) == 1)
+    {
+      display = gimp_container_get_child_by_index (gimp->displays, 0);
+
+      if (GIMP_DISPLAY (display)->image)
+        {
+          /* The display was not empty */
+          display = NULL;
+        }
+    }
+
+  return display;
+}
+
+static GimpObject *
 gui_display_get_by_ID (Gimp *gimp,
                        gint  ID)
 {
@@ -291,12 +311,11 @@
                     gdouble    scale)
 {
   GimpContext *context = gimp_get_user_context (gimp);
-  GimpDisplay *display = NULL;
+  GimpObject  *object  = gui_get_empty_display (gimp);
+  GimpDisplay *display = object ? GIMP_DISPLAY (object) : NULL;
 
-  if (gui_get_empty_display (gimp) != NULL)
+  if (display)
     {
-      display = gui_get_empty_display (gimp);
-
       gimp_display_fill (display, image, unit, scale);
     }
   else
@@ -341,25 +360,6 @@
   gimp_displays_reconnect (gimp, old_image, new_image);
 }
 
-static GimpDisplay *
-gui_get_empty_display (Gimp *gimp)
-{
-  GimpDisplay *display = NULL;
-
-  if (gimp_container_num_children (gimp->displays) == 1)
-    {
-      display = (GimpDisplay *) gimp_container_get_child_by_index (gimp->displays, 0);
-
-      if (display->image != NULL)
-        {
-          /* The display was not empty */
-          display = NULL;
-        }
-    }
-
-  return display;
-}
-
 static GimpProgress *
 gui_new_progress (Gimp       *gimp,
                   GimpObject *display)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]