]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkappchooseronline.c
filechooserbutton: Do not propagate state from the dialog unless it is active
[~andy/gtk] / gtk / gtkappchooseronline.c
index 34849d81daf01df14f39d0a15a43c201384e6410..7d72cf72b04522516579977ebd8d96496b4183b2 100644 (file)
@@ -14,9 +14,7 @@
  * Library General Public License for more details.
  *
  * You should have received a copy of the GNU Library General Public
- * License along with the Gnome Library; see the file COPYING.LIB.  If not,
- * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  *
  * Authors: Cosimo Cecchi <ccecchi@redhat.com>
  */
 
 #include "gtkappchooseronline.h"
 
-#include "gtkappchooseronlinedummy.h"
 #include "gtkappchoosermodule.h"
+#include "gtkintl.h"
 
 #include <gio/gio.h>
 
-G_DEFINE_INTERFACE (GtkAppChooserOnline, gtk_app_chooser_online, G_TYPE_OBJECT);
+G_DEFINE_INTERFACE_WITH_CODE (GtkAppChooserOnline, _gtk_app_chooser_online, G_TYPE_OBJECT,
+                              g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_ASYNC_INITABLE);)
 
 static void
-gtk_app_chooser_online_default_init (GtkAppChooserOnlineInterface *iface)
+_gtk_app_chooser_online_default_init (GtkAppChooserOnlineInterface *iface)
 {
   /* do nothing */
 }
 
 GtkAppChooserOnline *
-gtk_app_chooser_online_get_default (void)
+_gtk_app_chooser_online_get_default_finish (GObject      *source,
+                                            GAsyncResult *result)
+{
+  GtkAppChooserOnline *retval;
+
+  retval = GTK_APP_CHOOSER_ONLINE (g_async_initable_new_finish (G_ASYNC_INITABLE (source),
+                                                                result, NULL));
+
+  return retval;
+}
+
+void
+_gtk_app_chooser_online_get_default_async (GAsyncReadyCallback callback,
+                                           gpointer            user_data)
 {
   GIOExtensionPoint *ep;
   GIOExtension *extension;
   GList *extensions;
-  GtkAppChooserOnline *retval;
 
   _gtk_app_chooser_module_ensure ();
 
@@ -55,22 +66,18 @@ gtk_app_chooser_online_get_default (void)
     {
       /* pick the first */
       extension = extensions->data;
-      retval = g_object_new (g_io_extension_get_type (extension), NULL);
-    }
-  else
-    {
-      retval = g_object_new (GTK_TYPE_APP_CHOOSER_ONLINE_DUMMY, NULL);
+      g_async_initable_new_async (g_io_extension_get_type (extension), G_PRIORITY_DEFAULT,
+                                  NULL, callback, user_data, NULL);
     }
-
-  return retval;
 }
 
 void
-gtk_app_chooser_online_search_for_mimetype_async (GtkAppChooserOnline *self,
-                                                  const gchar         *content_type,
-                                                  GtkWindow           *parent,
-                                                  GAsyncReadyCallback  callback,
-                                                  gpointer             user_data)
+_gtk_app_chooser_online_search_for_mimetype_async (GtkAppChooserOnline *self,
+                                                   const gchar         *content_type,
+                                                   GtkWindow           *parent,
+                                                   GCancellable        *cancellable,
+                                                   GAsyncReadyCallback  callback,
+                                                   gpointer             user_data)
 {
   GtkAppChooserOnlineInterface *iface;
 
@@ -78,13 +85,13 @@ gtk_app_chooser_online_search_for_mimetype_async (GtkAppChooserOnline *self,
 
   iface = GTK_APP_CHOOSER_ONLINE_GET_IFACE (self);
 
-  (* iface->search_for_mimetype_async) (self, content_type, parent, callback, user_data);
+  (* iface->search_for_mimetype_async) (self, content_type, parent, cancellable, callback, user_data);
 }
 
 gboolean
-gtk_app_chooser_online_search_for_mimetype_finish (GtkAppChooserOnline  *self,
-                                                   GAsyncResult         *res,
-                                                   GError              **error)
+_gtk_app_chooser_online_search_for_mimetype_finish (GtkAppChooserOnline  *self,
+                                                    GAsyncResult         *res,
+                                                    GError              **error)
 {
   GtkAppChooserOnlineInterface *iface;