[Goodies-commits] r7670 - in xfmpc/trunk: . src

Vincent Legout vincent at xfce.org
Sat Jul 4 15:25:26 CEST 2009


Author: vincent
Date: 2009-07-04 13:25:26 +0000 (Sat, 04 Jul 2009)
New Revision: 7670

Modified:
   xfmpc/trunk/ChangeLog
   xfmpc/trunk/src/dbbrowser.c
   xfmpc/trunk/src/dbbrowser.vala
   xfmpc/trunk/src/extended-interface.c
   xfmpc/trunk/src/extended-interface.vala
   xfmpc/trunk/src/mpdclient.c
   xfmpc/trunk/src/mpdclient.h
   xfmpc/trunk/src/mpdclient.vapi
   xfmpc/trunk/src/playlist.c
   xfmpc/trunk/src/playlist.vala
   xfmpc/trunk/src/xfmpc.h
Log:
Move has_filename () function to playlist.vala


Modified: xfmpc/trunk/ChangeLog
===================================================================
--- xfmpc/trunk/ChangeLog	2009-07-04 12:12:11 UTC (rev 7669)
+++ xfmpc/trunk/ChangeLog	2009-07-04 13:25:26 UTC (rev 7670)
@@ -1,3 +1,7 @@
+2009-07-03	Vincent Legout <vincent at legout.info>
+
+Move has_filename () function to playlist.vala
+
 2009-07-02	Vincent Legout <vincent at legout.info>
 
 Add manpage. Thanks to Mauro Lizaur (bug #5016)

Modified: xfmpc/trunk/src/dbbrowser.c
===================================================================
--- xfmpc/trunk/src/dbbrowser.c	2009-07-04 12:12:11 UTC (rev 7669)
+++ xfmpc/trunk/src/dbbrowser.c	2009-07-04 13:25:26 UTC (rev 7670)
@@ -52,6 +52,16 @@
 
 #define XFMPC_DBBROWSER_TYPE_COLUMNS (xfmpc_dbbrowser_columns_get_type ())
 
+#define XFMPC_TYPE_PLAYLIST (xfmpc_playlist_get_type ())
+#define XFMPC_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PLAYLIST, XfmpcPlaylist))
+#define XFMPC_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PLAYLIST, XfmpcPlaylistClass))
+#define XFMPC_IS_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PLAYLIST))
+#define XFMPC_IS_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PLAYLIST))
+#define XFMPC_PLAYLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PLAYLIST, XfmpcPlaylistClass))
+
+typedef struct _XfmpcPlaylist XfmpcPlaylist;
+typedef struct _XfmpcPlaylistClass XfmpcPlaylistClass;
+
 struct _XfmpcDbbrowser {
 	GtkVBox parent_instance;
 	XfmpcDbbrowserPrivate * priv;
@@ -94,10 +104,12 @@
 	XFMPC_DBBROWSER_DUMMY_PROPERTY
 };
 static GType xfmpc_dbbrowser_columns_get_type (void);
+GType xfmpc_playlist_get_type (void);
 static void xfmpc_dbbrowser_clear (XfmpcDbbrowser* self);
 gboolean xfmpc_dbbrowser_wdir_is_root (XfmpcDbbrowser* self);
 char* xfmpc_dbbrowser_get_parent_wdir (XfmpcDbbrowser* self);
 void xfmpc_dbbrowser_append (XfmpcDbbrowser* self, const char* filename, const char* basename, gboolean is_dir, gboolean is_bold);
+gboolean xfmpc_playlist_has_filename (XfmpcPlaylist* self, const char* filename, gboolean is_dir);
 void xfmpc_dbbrowser_reload (XfmpcDbbrowser* self);
 void xfmpc_dbbrowser_set_wdir (XfmpcDbbrowser* self, const char* dir);
 static void _g_list_free_gtk_tree_path_free (GList* self);
@@ -159,32 +171,38 @@
 	gboolean is_dir;
 	gboolean is_bold;
 	gint i;
+	XfmpcPlaylist* _tmp0_;
+	XfmpcPlaylist* playlist;
 	g_return_if_fail (self != NULL);
 	filename = g_strdup ("");
 	basename = g_strdup ("");
 	is_dir = FALSE;
 	is_bold = FALSE;
 	i = 0;
+	_tmp0_ = NULL;
+	playlist = (_tmp0_ = XFMPC_PLAYLIST (g_object_get_data ((GObject*) self, "XfmpcPlaylist")), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
 	if (!xfmpc_mpdclient_is_connected (self->priv->mpdclient)) {
 		filename = (g_free (filename), NULL);
 		basename = (g_free (basename), NULL);
+		(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
 		return;
 	}
 	if (self->priv->is_searching) {
 		filename = (g_free (filename), NULL);
 		basename = (g_free (basename), NULL);
+		(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
 		return;
 	}
 	xfmpc_dbbrowser_clear (self);
 	if (!xfmpc_dbbrowser_wdir_is_root (self)) {
-		char* _tmp0_;
-		_tmp0_ = NULL;
-		filename = (_tmp0_ = xfmpc_dbbrowser_get_parent_wdir (self), filename = (g_free (filename), NULL), _tmp0_);
+		char* _tmp1_;
+		_tmp1_ = NULL;
+		filename = (_tmp1_ = xfmpc_dbbrowser_get_parent_wdir (self), filename = (g_free (filename), NULL), _tmp1_);
 		xfmpc_dbbrowser_append (self, filename, "..", TRUE, FALSE);
 		i++;
 	}
 	while (xfmpc_mpdclient_database_read (self->priv->mpdclient, self->priv->wdir, &filename, &basename, &is_dir)) {
-		is_bold = xfmpc_mpdclient_playlist_has_filename (self->priv->mpdclient, filename, is_dir);
+		is_bold = xfmpc_playlist_has_filename (playlist, filename, is_dir);
 		xfmpc_dbbrowser_append (self, filename, basename, is_dir, is_bold);
 		if (g_utf8_collate (filename, self->priv->last_wdir) == 0) {
 			GtkTreePath* path;
@@ -199,6 +217,7 @@
 	}
 	filename = (g_free (filename), NULL);
 	basename = (g_free (basename), NULL);
+	(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
 }
 
 
@@ -438,31 +457,37 @@
 	char* filename;
 	gboolean is_bold;
 	gboolean is_dir;
+	XfmpcPlaylist* _tmp1_;
+	XfmpcPlaylist* playlist;
 	g_return_if_fail (self != NULL);
 	_tmp0_ = NULL;
 	model = (_tmp0_ = (GtkTreeModel*) self->priv->store, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
 	filename = g_strdup ("");
 	is_bold = FALSE;
 	is_dir = FALSE;
+	_tmp1_ = NULL;
+	playlist = (_tmp1_ = XFMPC_PLAYLIST (g_object_get_data ((GObject*) self, "XfmpcPlaylist")), (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_));
 	if (!gtk_tree_model_get_iter_first (model, &iter)) {
 		(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
 		filename = (g_free (filename), NULL);
+		(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
 		return;
 	}
 	do {
-		PangoWeight _tmp1_;
+		PangoWeight _tmp2_;
 		gtk_tree_model_get (model, &iter, XFMPC_DBBROWSER_COLUMNS_COLUMN_FILENAME, &filename, XFMPC_DBBROWSER_COLUMNS_COLUMN_IS_DIR, &is_dir, -1, -1);
-		is_bold = xfmpc_mpdclient_playlist_has_filename (self->priv->mpdclient, filename, is_dir);
-		_tmp1_ = 0;
+		is_bold = xfmpc_playlist_has_filename (playlist, filename, is_dir);
+		_tmp2_ = 0;
 		if (is_bold) {
-			_tmp1_ = PANGO_WEIGHT_BOLD;
+			_tmp2_ = PANGO_WEIGHT_BOLD;
 		} else {
-			_tmp1_ = PANGO_WEIGHT_NORMAL;
+			_tmp2_ = PANGO_WEIGHT_NORMAL;
 		}
-		gtk_list_store_set (self->priv->store, &iter, XFMPC_DBBROWSER_COLUMNS_COLUMN_WEIGHT, _tmp1_, -1, -1);
+		gtk_list_store_set (self->priv->store, &iter, XFMPC_DBBROWSER_COLUMNS_COLUMN_WEIGHT, _tmp2_, -1, -1);
 	} while (gtk_tree_model_iter_next (model, &iter));
 	(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
 	filename = (g_free (filename), NULL);
+	(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
 }
 
 

Modified: xfmpc/trunk/src/dbbrowser.vala
===================================================================
--- xfmpc/trunk/src/dbbrowser.vala	2009-07-04 12:12:11 UTC (rev 7669)
+++ xfmpc/trunk/src/dbbrowser.vala	2009-07-04 13:25:26 UTC (rev 7670)
@@ -136,6 +136,7 @@
 			string filename = "", basename = "";
 			bool is_dir = false, is_bold = false;
 			int i = 0;
+			Xfmpc.Playlist playlist = (Xfmpc.Playlist) get_data ("XfmpcPlaylist");
 
 			if (!this.mpdclient.is_connected ())
 				return;
@@ -151,7 +152,7 @@
 			}
 
 			while (this.mpdclient.database_read (wdir, &filename, &basename, &is_dir)) {
-				is_bold = this.mpdclient.playlist_has_filename (filename, is_dir);
+				is_bold = playlist.has_filename (filename, is_dir);
 				append (filename, basename, is_dir, is_bold);
 
 				if (filename.collate (last_wdir) == 0) {
@@ -220,6 +221,7 @@
 			string filename = "", basename = "";
 			bool is_bold;
 			int i = 0;
+			Xfmpc.Playlist playlist = (Xfmpc.Playlist) get_data ("XfmpcPlaylist");
 
 			if (!this.mpdclient.is_connected ())
 				return;
@@ -228,7 +230,7 @@
 			clear ();
 
 			while (this.mpdclient.database_search (query, &filename, &basename)) {
-				is_bold = this.mpdclient.playlist_has_filename (filename, false);
+				is_bold = playlist.has_filename (filename, false);
 				append (filename, basename, false, is_bold);
 				i++;
 			}
@@ -304,6 +306,7 @@
 			Gtk.TreeIter iter;
 			string filename = "";
 			bool is_bold = false, is_dir = false;
+			Xfmpc.Playlist playlist = (Xfmpc.Playlist) get_data ("XfmpcPlaylist");
 
 			if (!model.get_iter_first (out iter))
 				return;
@@ -314,7 +317,7 @@
 					   Columns.COLUMN_IS_DIR, out is_dir,
 					   -1);
 
-				is_bold = this.mpdclient.playlist_has_filename (filename, is_dir);
+				is_bold = playlist.has_filename (filename, is_dir);
 				store.set (iter,
 					   Columns.COLUMN_WEIGHT,
 					   is_bold ? Pango.Weight.BOLD : Pango.Weight.NORMAL,

Modified: xfmpc/trunk/src/extended-interface.c
===================================================================
--- xfmpc/trunk/src/extended-interface.c	2009-07-04 12:12:11 UTC (rev 7669)
+++ xfmpc/trunk/src/extended-interface.c	2009-07-04 13:25:26 UTC (rev 7670)
@@ -519,6 +519,7 @@
 		dbbrowser = GTK_WIDGET (g_object_ref_sink (xfmpc_dbbrowser_new ()));
 		xfmpc_extended_interface_append_child (self, dbbrowser, _ ("Browse database"));
 		g_object_set_data ((GObject*) playlist, "XfmpcDbbrowser", dbbrowser);
+		g_object_set_data ((GObject*) dbbrowser, "XfmpcPlaylist", playlist);
 		g_object_set_data ((GObject*) playlist, "XfmpcExtendedInterface", self);
 		(hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL));
 		(button == NULL) ? NULL : (button = (g_object_unref (button), NULL));

Modified: xfmpc/trunk/src/extended-interface.vala
===================================================================
--- xfmpc/trunk/src/extended-interface.vala	2009-07-04 12:12:11 UTC (rev 7669)
+++ xfmpc/trunk/src/extended-interface.vala	2009-07-04 13:25:26 UTC (rev 7670)
@@ -95,6 +95,7 @@
 			append_child (dbbrowser, _("Browse database"));
 
 			playlist.set_data ("XfmpcDbbrowser", dbbrowser);
+			dbbrowser.set_data ("XfmpcPlaylist", playlist);
 			playlist.set_data ("XfmpcExtendedInterface", this);
 		}
 

Modified: xfmpc/trunk/src/mpdclient.c
===================================================================
--- xfmpc/trunk/src/mpdclient.c	2009-07-04 12:12:11 UTC (rev 7669)
+++ xfmpc/trunk/src/mpdclient.c	2009-07-04 13:25:26 UTC (rev 7670)
@@ -782,48 +782,8 @@
   return seconds;
 }
 
-gboolean
-xfmpc_mpdclient_playlist_has_filename (XfmpcMpdclient *mpdclient,
-                                       const gchar *filename,
-                                       gboolean is_dir)
-{
-  XfmpcMpdclientPrivate *priv = mpdclient->priv;
-  MpdData               *data;
-  gchar                 *basename;
-  gint                   id;
-  gboolean               found = FALSE;
 
-  if (is_dir && strcmp (filename, ""))
-    {
-      while (xfmpc_mpdclient_playlist_read (mpdclient, &id, NULL, &basename, NULL, NULL))
-        {
-          if (g_str_has_prefix (basename, filename))
-            found = TRUE;
 
-          g_free (basename);
-        }
-
-        if (found)
-          return TRUE;
-    }
-  else
-    {
-      mpd_playlist_search_start (priv->mi, TRUE);
-      mpd_playlist_search_add_constraint (priv->mi, MPD_TAG_ITEM_FILENAME, filename);
-      data = mpd_playlist_search_commit (priv->mi);
-
-      if (data != NULL)
-        {
-          mpd_data_free (data);
-          return TRUE;
-        }
-    }
-
-  return FALSE;
-}
-
-
-
 gboolean
 xfmpc_mpdclient_database_refresh (XfmpcMpdclient *mpdclient)
 {

Modified: xfmpc/trunk/src/mpdclient.h
===================================================================
--- xfmpc/trunk/src/mpdclient.h	2009-07-04 12:12:11 UTC (rev 7669)
+++ xfmpc/trunk/src/mpdclient.h	2009-07-04 13:25:26 UTC (rev 7670)
@@ -104,9 +104,6 @@
 gboolean                xfmpc_mpdclient_playlist_clear          (XfmpcMpdclient *mpdclient);
 gint                    xfmpc_mpdclient_playlist_get_length     (XfmpcMpdclient *mpdclient);
 gint                    xfmpc_mpdclient_playlist_get_total_time (XfmpcMpdclient *mpdclient);
-gboolean                xfmpc_mpdclient_playlist_has_filename   (XfmpcMpdclient *mpdclient,
-                                                                 const gchar *filename,
-                                                                 gboolean is_dir);
 
 gboolean                xfmpc_mpdclient_database_refresh        (XfmpcMpdclient *mpdclient);
 gboolean                xfmpc_mpdclient_database_read           (XfmpcMpdclient *mpdclient,

Modified: xfmpc/trunk/src/mpdclient.vapi
===================================================================
--- xfmpc/trunk/src/mpdclient.vapi	2009-07-04 12:12:11 UTC (rev 7669)
+++ xfmpc/trunk/src/mpdclient.vapi	2009-07-04 13:25:26 UTC (rev 7670)
@@ -32,7 +32,6 @@
 		public bool playlist_clear ();
 		public int playlist_get_length ();
 		public int playlist_get_total_time ();
-		public bool playlist_has_filename (string filename, bool is_dir);
 		public bool playlist_read (int *id, int *pos, string *filename, string *song, string *length);
 		public bool pp ();
 		public bool previous ();

Modified: xfmpc/trunk/src/playlist.c
===================================================================
--- xfmpc/trunk/src/playlist.c	2009-07-04 12:12:11 UTC (rev 7669)
+++ xfmpc/trunk/src/playlist.c	2009-07-04 13:25:26 UTC (rev 7670)
@@ -159,6 +159,7 @@
 static void xfmpc_playlist_cb_filter_entry_activated (XfmpcPlaylist* self);
 static gboolean xfmpc_playlist_cb_filter_entry_key_released (XfmpcPlaylist* self, const GdkEventKey* event);
 static void xfmpc_playlist_cb_filter_entry_changed (XfmpcPlaylist* self);
+gboolean xfmpc_playlist_has_filename (XfmpcPlaylist* self, const char* filename, gboolean is_dir);
 XfmpcPlaylist* xfmpc_playlist_new (void);
 XfmpcPlaylist* xfmpc_playlist_construct (GType object_type);
 XfmpcPlaylist* xfmpc_playlist_new (void);
@@ -656,6 +657,37 @@
 }
 
 
+gboolean xfmpc_playlist_has_filename (XfmpcPlaylist* self, const char* filename, gboolean is_dir) {
+	GtkTreeIter iter = {0};
+	GtkTreePath* path;
+	char* name;
+	GtkTreePath* _tmp0_;
+	gboolean _tmp3_;
+	g_return_val_if_fail (self != NULL, FALSE);
+	g_return_val_if_fail (filename != NULL, FALSE);
+	path = NULL;
+	name = g_strdup ("");
+	_tmp0_ = NULL;
+	path = (_tmp0_ = gtk_tree_path_new_from_indices (0, -1, -1), (path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL)), _tmp0_);
+	while (gtk_tree_model_get_iter ((GtkTreeModel*) self->priv->store, &iter, path)) {
+		gtk_tree_model_get ((GtkTreeModel*) self->priv->store, &iter, XFMPC_PLAYLIST_COLUMNS_COLUMN_FILENAME, &name, -1, -1);
+		if (is_dir) {
+			if (g_str_has_prefix (name, filename)) {
+				gboolean _tmp1_;
+				return (_tmp1_ = TRUE, (path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL)), name = (g_free (name), NULL), _tmp1_);
+			}
+		} else {
+			if (_vala_strcmp0 (name, filename) == 0) {
+				gboolean _tmp2_;
+				return (_tmp2_ = TRUE, (path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL)), name = (g_free (name), NULL), _tmp2_);
+			}
+		}
+		gtk_tree_path_next (path);
+	}
+	return (_tmp3_ = FALSE, (path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL)), name = (g_free (name), NULL), _tmp3_);
+}
+
+
 XfmpcPlaylist* xfmpc_playlist_construct (GType object_type) {
 	XfmpcPlaylist * self;
 	self = g_object_newv (object_type, 0, NULL);

Modified: xfmpc/trunk/src/playlist.vala
===================================================================
--- xfmpc/trunk/src/playlist.vala	2009-07-04 12:12:11 UTC (rev 7669)
+++ xfmpc/trunk/src/playlist.vala	2009-07-04 13:25:26 UTC (rev 7670)
@@ -403,6 +403,29 @@
 
 			this.mpdclient.queue_commit ();
 		}
+
+		public bool has_filename (string filename, bool is_dir) {
+			Gtk.TreeIter iter;
+			Gtk.TreePath path;
+			string name = "";
+
+			path = new Gtk.TreePath.from_indices (0, -1);
+			while (this.store.get_iter (out iter, path)) {
+				this.store.get (iter, Columns.COLUMN_FILENAME, out name, -1);
+
+				if (is_dir) {
+					if (name.has_prefix (filename))
+						return true;
+				} else {
+					if (name == filename)
+						return true;
+				}
+
+				path.next ();
+			}
+
+			return false;
+		}
 	}
 }
 

Modified: xfmpc/trunk/src/xfmpc.h
===================================================================
--- xfmpc/trunk/src/xfmpc.h	2009-07-04 12:12:11 UTC (rev 7669)
+++ xfmpc/trunk/src/xfmpc.h	2009-07-04 13:25:26 UTC (rev 7670)
@@ -258,6 +258,7 @@
 void xfmpc_playlist_refresh_current_song (XfmpcPlaylist* self);
 void xfmpc_playlist_select_row (XfmpcPlaylist* self, gint i);
 void xfmpc_playlist_delete_selection (XfmpcPlaylist* self);
+gboolean xfmpc_playlist_has_filename (XfmpcPlaylist* self, const char* filename, gboolean is_dir);
 XfmpcPlaylist* xfmpc_playlist_new (void);
 XfmpcPlaylist* xfmpc_playlist_construct (GType object_type);
 GType xfmpc_preferences_get_type (void);




More information about the Goodies-commits mailing list