summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2016-08-18 10:29:31 +0200
committerJens Georg <mail@jensge.org>2016-12-17 09:47:40 +0100
commitef02625498ed9f17d62128bf86f8e75da438d23b (patch)
treedbff7c10fb239969f297cccb23fc8c674348aebf
parent05f8b8af616e08b98626b7c0e8d7f7f08f46434a (diff)
downloadgupnp-tools-ef02625498ed9f17d62128bf86f8e75da438d23b.tar.gz
av-cp: Add proper title to search dialog
Signed-off-by: Jens Georg <mail@jensge.org>
-rw-r--r--src/av-cp/playlist-treeview.c3
-rw-r--r--src/av-cp/search-dialog.c31
-rw-r--r--src/av-cp/search-dialog.h3
3 files changed, 37 insertions, 0 deletions
diff --git a/src/av-cp/playlist-treeview.c b/src/av-cp/playlist-treeview.c
index 767d8b7..00883bf 100644
--- a/src/av-cp/playlist-treeview.c
+++ b/src/av-cp/playlist-treeview.c
@@ -341,6 +341,7 @@ on_search_menu_item_activated (GtkMenuItem *menuitem,
GtkTreeModel *model;
GtkTreeIter iter;
char *id = NULL;
+ char *title = NULL;
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
g_assert (selection != NULL);
@@ -351,6 +352,7 @@ on_search_menu_item_activated (GtkMenuItem *menuitem,
gtk_tree_model_get (model,
&iter,
+ 1, &title,
2, &server,
4, &id,
-1);
@@ -361,6 +363,7 @@ on_search_menu_item_activated (GtkMenuItem *menuitem,
search_dialog_set_server (SEARCH_DIALOG (search_dialog), server);
search_dialog_set_container_id (SEARCH_DIALOG (search_dialog), id);
+ search_dialog_set_container_title (SEARCH_DIALOG (search_dialog), title);
gtk_dialog_run (search_dialog);
}
diff --git a/src/av-cp/search-dialog.c b/src/av-cp/search-dialog.c
index cc33509..5bd1dbf 100644
--- a/src/av-cp/search-dialog.c
+++ b/src/av-cp/search-dialog.c
@@ -18,6 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+#include <glib/gi18n.h>
#include <libgupnp-av/gupnp-av.h>
#include <string.h>
@@ -38,6 +39,7 @@ struct _SearchDialogPrivate {
GtkListStore *search_dialog_liststore;
GtkEntry *search_dialog_entry;
char *id;
+ char *title;
AVCPMediaServer *server;
guint pulse_timer;
};
@@ -197,10 +199,39 @@ void
search_dialog_set_container_id (SearchDialog *self, char *id)
{
SearchDialogPrivate *priv = search_dialog_get_instance_private (self);
+ g_free (priv->id);
priv->id = id;
}
+void
+search_dialog_set_container_title (SearchDialog *self, char *title)
+{
+ char *name = NULL;
+ char *window_title = NULL;
+
+ SearchDialogPrivate *priv = search_dialog_get_instance_private (self);
+ g_free (priv->title);
+
+ priv->title = title;
+ name = gupnp_device_info_get_friendly_name
+ (GUPNP_DEVICE_INFO (priv->server));
+
+ if (g_str_equal (priv->id, "0")) {
+ window_title = g_strdup_printf (_("Searching on %s"),
+ name);
+ } else {
+ window_title = g_strdup_printf (_("Searching in %s on %s"),
+ title,
+ name);
+ }
+
+ gtk_window_set_title (GTK_WINDOW (self), window_title);
+
+ g_free (name);
+ g_free (window_title);
+}
+
static gboolean
pulse_timer (gpointer user_data)
{
diff --git a/src/av-cp/search-dialog.h b/src/av-cp/search-dialog.h
index ce009b1..0d9b60e 100644
--- a/src/av-cp/search-dialog.h
+++ b/src/av-cp/search-dialog.h
@@ -41,4 +41,7 @@ search_dialog_set_server (SearchDialog *self, AVCPMediaServer *server);
void
search_dialog_set_container_id (SearchDialog *self, char *id);
+void
+search_dialog_set_container_title (SearchDialog *self, char *title);
+
#endif /* SEARCH_DIALOG_H */