brasero r1113 - in trunk: . src



Author: philippr
Date: Mon Aug 18 12:51:25 2008
New Revision: 1113
URL: http://svn.gnome.org/viewvc/brasero?rev=1113&view=rev

Log:
	cleanups

	* src/brasero-metadata.c (brasero_metadata_stop),
	(brasero_metadata_completed), (brasero_metadata_finalize):


Modified:
   trunk/ChangeLog
   trunk/src/brasero-metadata.c
   trunk/src/brasero-project-manager.c

Modified: trunk/src/brasero-metadata.c
==============================================================================
--- trunk/src/brasero-metadata.c	(original)
+++ trunk/src/brasero-metadata.c	Mon Aug 18 12:51:25 2008
@@ -66,7 +66,6 @@
 
 	GstElement *snapshot;
 
-	GMainLoop *loop;
 	GError *error;
 	guint watch;
 
@@ -309,10 +308,6 @@
 	/* use broadcast here as there could be more than one thread waiting */
 	g_cond_broadcast (priv->cond);
 	g_mutex_unlock (priv->mutex);
-
-	/* stop loop */
-	if (priv->loop && g_main_loop_is_running (priv->loop))
-		g_main_loop_quit (priv->loop);
 }
 
 void
@@ -339,15 +334,14 @@
 	BraseroMetadataPrivate *priv;
 
 	priv = BRASERO_METADATA_PRIVATE (self);
-	if ((!priv->loop || !g_main_loop_is_running (priv->loop)) && !priv->cond) {
-		/* we send a message only if we haven't got a loop (= async mode) */
-		g_object_ref (self);
-		g_signal_emit (G_OBJECT (self),
-			       brasero_metadata_signals [COMPLETED_SIGNAL],
-			       0,
-			       priv->error);
-		g_object_unref (self);
-	}
+
+	/* we send a message only if we haven't got a loop (= async mode) */
+	g_object_ref (self);
+	g_signal_emit (G_OBJECT (self),
+		       brasero_metadata_signals [COMPLETED_SIGNAL],
+		       0,
+		       priv->error);
+	g_object_unref (self);
 
 	brasero_metadata_stop (self);
 	return TRUE;
@@ -1449,54 +1443,6 @@
 }
 
 gboolean
-brasero_metadata_get_info_sync (BraseroMetadata *self,
-				const gchar *uri,
-				BraseroMetadataFlag flags,
-				GError **error)
-{
-	BraseroMetadataPrivate *priv;
-
-	priv = BRASERO_METADATA_PRIVATE (self);
-
-	priv->flags = flags;
-
-	if (!brasero_metadata_set_new_uri (self, uri)) {
-		g_propagate_error (error, priv->error);
-		priv->error = NULL;
-
-		brasero_metadata_info_free (priv->info);
-		priv->info = NULL;
-
-		return FALSE;
-	}
-
-	priv->started = 1;
-	gst_element_set_state (GST_ELEMENT (priv->pipeline), BRASERO_METADATA_INITIAL_STATE);
-
-	/* run the loop until it's finished */
-	priv->loop = g_main_loop_new (NULL, FALSE);
-	g_main_loop_run (priv->loop);
-	g_main_loop_unref (priv->loop);
-	priv->loop = NULL;
-
-	if (priv->error) {
-		if (error) {
-			g_propagate_error (error, priv->error);
-			priv->error = NULL;
-		} 
-		else {
-			BRASERO_BURN_LOG ("ERROR getting metadata : %s\n", priv->error->message);
-			g_error_free (priv->error);
-			priv->error = NULL;
-		}
-
-		return FALSE;
-	}
-
-	return TRUE;
-}
-
-gboolean
 brasero_metadata_get_info_async (BraseroMetadata *self,
 				 const gchar *uri,
 				 BraseroMetadataFlag flags)
@@ -1639,14 +1585,6 @@
 		priv->watch = 0;
 	}
 
-	if (priv->loop) {
-		if (g_main_loop_is_running (priv->loop))
-			g_main_loop_quit (priv->loop);
-
-		g_main_loop_unref (priv->loop);
-		priv->loop = NULL;
-	}
-
 	if (priv->info) {
 		brasero_metadata_info_free (priv->info);
 		priv->info = NULL;

Modified: trunk/src/brasero-project-manager.c
==============================================================================
--- trunk/src/brasero-project-manager.c	(original)
+++ trunk/src/brasero-project-manager.c	Mon Aug 18 12:51:25 2008
@@ -175,6 +175,9 @@
 	GtkWidget *layout;
 	GtkWidget *status;
 
+	gchar **selected;
+	guint preview_id;
+
 	guint status_ctx;
 
 	GtkActionGroup *action_group;
@@ -337,29 +340,13 @@
 					       files_num);
 }
 
-void
-brasero_project_manager_selected_uris_changed (BraseroURIContainer *container,
-					       BraseroProjectManager *manager)
+static gboolean
+brasero_project_manager_selected_uris_preview (gpointer data)
 {
+	BraseroProjectManager *manager = BRASERO_PROJECT_MANAGER (data);
 	BraseroIOFlags flags;
-    	gchar **uris, **iter;
     	GSList *list = NULL;
-
-	/* if we are in the middle of an unfinished size seek then
-	 * cancel it and re-initialize */
-	if (manager->priv->io)
-		brasero_io_cancel_by_base (manager->priv->io,
-					   manager->priv->size_preview);
-
-	uris = brasero_uri_container_get_selected_uris (container);
-	if (!uris) {
-		gtk_statusbar_pop (GTK_STATUSBAR (manager->priv->status),
-				   manager->priv->status_ctx);
-		gtk_statusbar_push (GTK_STATUSBAR (manager->priv->status),
-				    manager->priv->status_ctx,
-				    _("No file selected"));
-		return;
-	}
+    	gchar **iter;
 
 	if (!manager->priv->io)
 		manager->priv->io = brasero_io_get_default ();
@@ -370,7 +357,7 @@
 								   NULL,
 								   brasero_project_manager_size_preview_progress);
     
-	for (iter = uris; iter && *iter; iter ++)
+	for (iter = manager->priv->selected; iter && *iter; iter ++)
 		list = g_slist_prepend (list, *iter);
 
 	flags = BRASERO_IO_INFO_RECURSIVE|BRASERO_IO_INFO_IDLE;
@@ -384,7 +371,46 @@
 				   NULL);
 			       
 	g_slist_free (list);
-	g_strfreev (uris);
+	g_strfreev (manager->priv->selected);
+	manager->priv->selected = NULL;
+
+	manager->priv->preview_id = 0;
+	return FALSE;
+}
+
+void
+brasero_project_manager_selected_uris_changed (BraseroURIContainer *container,
+					       BraseroProjectManager *manager)
+{
+	/* if we are in the middle of an unfinished size seek then
+	 * cancel it and re-initialize */
+	if (manager->priv->io)
+		brasero_io_cancel_by_base (manager->priv->io,
+					   manager->priv->size_preview);
+
+	if (manager->priv->selected) {
+		g_strfreev (manager->priv->selected);
+		manager->priv->selected = NULL;
+	}
+
+	if (manager->priv->preview_id) {
+		g_source_remove (manager->priv->preview_id);
+		manager->priv->preview_id = 0;
+	}
+
+	manager->priv->selected = brasero_uri_container_get_selected_uris (container);
+	if (!manager->priv->selected) {
+		gtk_statusbar_pop (GTK_STATUSBAR (manager->priv->status),
+				   manager->priv->status_ctx);
+		gtk_statusbar_push (GTK_STATUSBAR (manager->priv->status),
+				    manager->priv->status_ctx,
+				    _("No file selected"));
+		return;
+	}
+
+	manager->priv->preview_id = g_timeout_add (500,
+						   brasero_project_manager_selected_uris_preview,
+						   manager);
 }
 
 void
@@ -400,6 +426,16 @@
 
 		gtk_statusbar_pop (GTK_STATUSBAR (manager->priv->status),
 				   manager->priv->status_ctx);
+
+		if (manager->priv->selected) {
+			g_strfreev (manager->priv->selected);
+			manager->priv->selected = NULL;
+		}
+
+		if (manager->priv->preview_id) {
+			g_source_remove (manager->priv->preview_id);
+			manager->priv->preview_id = 0;
+		}
 	}
 }
 
@@ -1094,6 +1130,16 @@
 		cobj->priv->io = NULL;
 	}
 
+	if (cobj->priv->preview_id) {
+		g_source_remove (cobj->priv->preview_id);
+		cobj->priv->preview_id = 0;
+	}
+
+	if (cobj->priv->selected) {
+		g_strfreev (cobj->priv->selected);
+		cobj->priv->selected = NULL;
+	}
+
 	g_free (cobj->priv);
 
 	G_OBJECT_CLASS (parent_class)->finalize (object);



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