[gupnp-tools] av-cp: Move Playlist TreeModel & columns to glade
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gupnp-tools] av-cp: Move Playlist TreeModel & columns to glade
- Date: Sun, 5 Jun 2016 17:10:16 +0000 (UTC)
commit b478ef8aeb00e50244fbb5879fb2cc893b2658a6
Author: Jens Georg <mail jensge org>
Date: Sun Jun 5 17:29:15 2016 +0200
av-cp: Move Playlist TreeModel & columns to glade
Signed-off-by: Jens Georg <mail jensge org>
data/gupnp-av-cp.ui.in | 190 +++++++++++++++++++++++++----------------
src/av-cp/playlist-treeview.c | 87 ++-----------------
2 files changed, 122 insertions(+), 155 deletions(-)
---
diff --git a/data/gupnp-av-cp.ui.in b/data/gupnp-av-cp.ui.in
index ff56838..bdd15a4 100644
--- a/data/gupnp-av-cp.ui.in
+++ b/data/gupnp-av-cp.ui.in
@@ -1,42 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.1 -->
+<!-- Generated with glade 3.20.0 -->
<interface>
- <requires lib="gtk+" version="3.0"/>
- <object class="GtkAboutDialog" id="about-dialog">
- <property name="can_focus">False</property>
- <property name="border_width">12</property>
- <property name="type_hint">normal</property>
- <property name="transient_for">main-window</property>
- <property name="copyright" translatable="yes">Copyright (C) 2007 Zeeshan Ali (Khattak)</property>
- <property name="comments" translatable="yes">An UPnP AV Control Point based on GUPnP framework.
-Inspired by Intel Tools for UPnP.</property>
- <property name="website">http://www.gupnp.org</property>
- <property name="website_label" translatable="yes">GUPnP homepage</property>
- <property name="authors">Zeeshan Ali (Khattak) <zeeshanak gnome org></property>
- <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with
your names, one name per line.">translator-credits</property>
- <property name="artists">Lapo Calamandrei <calamandrei gmail com>
-Vinicius Depizzol <vdepizzol gmail com></property>
- <property name="logo_icon_name">image-missing</property>
- <property name="license_type">gpl-2-0</property>
- <signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
- <child internal-child="vbox">
- <object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child internal-child="action_area">
- <object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
+ <requires lib="gtk+" version="3.10"/>
+ <requires lib="gtksourceview" version="3.0"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">100</property>
<property name="step_increment">1</property>
@@ -47,6 +13,47 @@ Vinicius Depizzol <vdepizzol gmail com></property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
+ <object class="GtkMenu" id="playlist-popup">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkMenuItem" id="play-menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Play</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_play_button_clicked" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="didl-menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Fetch the DIDL-Lite XML for this media
object</property>
+ <property name="label" translatable="yes">Fetch _DIDL-Lite</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_didl_menuitem_activate" swapped="no"/>
+ </object>
+ </child>
+ </object>
+ <object class="GtkTreeStore" id="playlist-tree-store">
+ <columns>
+ <!-- column-name icon -->
+ <column type="GdkPixbuf"/>
+ <!-- column-name title -->
+ <column type="gchararray"/>
+ <!-- column-name device_proxy -->
+ <column type="GObject"/>
+ <!-- column-name service_proxy -->
+ <column type="GObject"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ <!-- column-name is_container -->
+ <column type="gboolean"/>
+ <!-- column-name child_count -->
+ <column type="gint"/>
+ </columns>
+ </object>
<object class="GtkWindow" id="main-window">
<property name="can_focus">False</property>
<property name="title" translatable="yes">GUPnP AV Control Point</property>
@@ -55,6 +62,7 @@ Vinicius Depizzol <vdepizzol gmail com></property>
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="margin_bottom">12</property>
<child>
<object class="GtkMenuBar" id="menubar">
<property name="visible">True</property>
@@ -569,13 +577,34 @@ Vinicius Depizzol <vdepizzol gmail com></property>
<object class="GtkTreeView" id="playlist-treeview">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="model">playlist-tree-store</property>
<property name="headers_visible">False</property>
<signal name="button-release-event" handler="on_playlist_treeview_button_release"
swapped="no"/>
<signal name="row-activated" handler="on_play_button_clicked" swapped="no"/>
<signal name="row-collapsed" handler="on_playlist_row_collapsed" swapped="no"/>
<signal name="row-expanded" handler="on_playlist_row_expanded" swapped="no"/>
<child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection1"/>
+ <object class="GtkTreeSelection" id="playlist-treeview-selection">
+ <signal name="changed" handler="on_playlist_treeview_item_selected"
swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">column</property>
+ <child>
+ <object class="GtkCellRendererPixbuf"/>
+ <attributes>
+ <attribute name="pixbuf">0</attribute>
+ </attributes>
+ </child>
+ <child>
+ <object class="GtkCellRendererText"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
</child>
</object>
</child>
@@ -598,28 +627,49 @@ Vinicius Depizzol <vdepizzol gmail com></property>
<property name="top_attach">1</property>
</packing>
</child>
- <child>
- <object class="GtkStatusbar" id="statusbar">
- <property name="visible">True</property>
+ </object>
+ </child>
+ <child type="titlebar">
+ <placeholder/>
+ </child>
+ </object>
+ <object class="GtkAboutDialog" id="about-dialog">
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="type_hint">normal</property>
+ <property name="transient_for">main-window</property>
+ <property name="copyright" translatable="yes">Copyright (C) 2007 Zeeshan Ali (Khattak)</property>
+ <property name="comments" translatable="yes">An UPnP AV Control Point based on GUPnP framework.
+Inspired by Intel Tools for UPnP.</property>
+ <property name="website">http://www.gupnp.org</property>
+ <property name="website_label" translatable="yes">GUPnP homepage</property>
+ <property name="authors">Zeeshan Ali (Khattak) <zeeshanak gnome org></property>
+ <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with
your names, one name per line.">translator-credits</property>
+ <property name="artists">Lapo Calamandrei <calamandrei gmail com>
+Vinicius Depizzol <vdepizzol gmail com></property>
+ <property name="logo_icon_name">image-missing</property>
+ <property name="license_type">gpl-2-0</property>
+ <signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox1">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area1">
<property name="can_focus">False</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
</object>
</child>
- </object>
- <object class="GtkSizeGroup" id="playback-button-sizegroup">
- <widgets>
- <widget name="play-button"/>
- <widget name="pause-button"/>
- <widget name="stop-button"/>
- <widget name="previous-button"/>
- <widget name="next-button"/>
- <widget name="rescan-button"/>
- </widgets>
+ <child>
+ <placeholder/>
+ </child>
</object>
<object class="GtkDialog" id="didl-dialog">
<property name="width_request">640</property>
@@ -627,8 +677,8 @@ Vinicius Depizzol <vdepizzol gmail com></property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
<property name="title" translatable="yes">GUPnP AV CP - Metadata View</property>
- <property name="transient_for">main-window</property>
<property name="type_hint">normal</property>
+ <property name="transient_for">main-window</property>
<signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox3">
@@ -687,28 +737,18 @@ Vinicius Depizzol <vdepizzol gmail com></property>
<action-widgets>
<action-widget response="0">didl-close-button</action-widget>
</action-widgets>
- </object>
- <object class="GtkMenu" id="playlist-popup">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<child>
- <object class="GtkMenuItem" id="play-menuitem">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">_Play</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_play_button_clicked" swapped="no"/>
- </object>
- </child>
- <child>
- <object class="GtkMenuItem" id="didl-menuitem">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="tooltip_text" translatable="yes">Fetch the DIDL-Lite XML for this media
object</property>
- <property name="label" translatable="yes">Fetch _DIDL-Lite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_didl_menuitem_activate" swapped="no"/>
- </object>
+ <placeholder/>
</child>
</object>
+ <object class="GtkSizeGroup" id="playback-button-sizegroup">
+ <widgets>
+ <widget name="play-button"/>
+ <widget name="pause-button"/>
+ <widget name="stop-button"/>
+ <widget name="previous-button"/>
+ <widget name="next-button"/>
+ <widget name="rescan-button"/>
+ </widgets>
+ </object>
</interface>
diff --git a/src/av-cp/playlist-treeview.c b/src/av-cp/playlist-treeview.c
index 1b485a6..2179e64 100644
--- a/src/av-cp/playlist-treeview.c
+++ b/src/av-cp/playlist-treeview.c
@@ -60,6 +60,9 @@ on_playlist_treeview_button_release (GtkWidget *widget,
GdkEventButton *event,
gpointer user_data);
void
+on_playlist_treeview_item_selected (GtkTreeSelection *selection,
+ gpointer user_data);
+void
on_playlist_row_expanded (GtkTreeView *tree_view,
GtkTreeIter *iter,
GtkTreePath *path,
@@ -179,9 +182,10 @@ on_playlist_treeview_button_release (GtkWidget *widget,
return TRUE;
}
-static void
-on_item_selected (GtkTreeSelection *selection,
- gpointer user_data)
+G_MODULE_EXPORT
+void
+on_playlist_treeview_item_selected (GtkTreeSelection *selection,
+ gpointer user_data)
{
PlaybackState state;
@@ -196,65 +200,6 @@ on_item_selected (GtkTreeSelection *selection,
}
}
-static GtkTreeModel *
-create_playlist_treemodel (void)
-{
- GtkTreeStore *store;
-
- store = gtk_tree_store_new (7,
- /* Icon */
- GDK_TYPE_PIXBUF,
- /* Title */
- G_TYPE_STRING,
- /* MediaServer */
- GUPNP_TYPE_DEVICE_PROXY,
- /* Content Directory */
- GUPNP_TYPE_SERVICE_PROXY,
- /* Id */
- G_TYPE_STRING,
- /* Is container? */
- G_TYPE_BOOLEAN,
- /* childCount */
- G_TYPE_INT);
-
- return GTK_TREE_MODEL (store);
-}
-
-static void
-setup_treeview_columns (GtkWidget *tv)
-
-{
- GtkTreeSelection *selection;
- GtkTreeViewColumn *column;
- GtkCellRenderer *renderers[2];
- const char *headers[] = { "Icon", "Title"};
- const char *attribs[] = { "pixbuf", "text"};
- int i;
-
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
- g_assert (selection != NULL);
-
- column = gtk_tree_view_column_new ();
-
- renderers[0] = gtk_cell_renderer_pixbuf_new ();
- renderers[1] = gtk_cell_renderer_text_new ();
-
- for (i = 0; i < 2; i++) {
- gtk_tree_view_column_pack_start (column, renderers[i], FALSE);
- gtk_tree_view_column_set_title (column, headers[i]);
- gtk_tree_view_column_add_attribute (column,
- renderers[i],
- attribs[i], i);
- gtk_tree_view_column_set_sizing(column,
- GTK_TREE_VIEW_COLUMN_AUTOSIZE);
- }
-
- gtk_tree_view_insert_column (GTK_TREE_VIEW (treeview),
- column,
- -1);
-
- gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
-}
G_MODULE_EXPORT
void
@@ -361,9 +306,6 @@ on_didl_menuitem_activate (GtkMenuItem *menuitem,
void
setup_playlist_treeview (GtkBuilder *builder)
{
- GtkTreeModel *model;
- GtkTreeSelection *selection;
-
initial_notify = g_hash_table_new (g_direct_hash, g_direct_equal);
treeview = GTK_WIDGET (gtk_builder_get_object (builder,
@@ -403,21 +345,6 @@ setup_playlist_treeview (GtkBuilder *builder)
}
#endif
- model = create_playlist_treemodel ();
- g_assert (model != NULL);
-
- gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), model);
- g_object_unref (model);
-
- setup_treeview_columns (treeview);
-
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
- g_assert (selection != NULL);
- g_signal_connect (selection,
- "changed",
- G_CALLBACK (on_item_selected),
- NULL);
-
expanded = FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]