summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrifa75 <yahiaoui.fakhri@gmail.com>2022-11-11 18:30:17 +0100
committerBastien Nocera <hadess@hadess.net>2022-11-16 10:56:25 +0100
commit72128d1f9a8dbf3cc8614d4fc0e47a66cb8cff6f (patch)
tree9c31004353277c4045f6626f933c09f6c4422bb1
parent09d7e8ca6ef4eb59ba086707cf63e80cfb098b80 (diff)
downloadtotem-72128d1f9a8dbf3cc8614d4fc0e47a66cb8cff6f.tar.gz
properties: Modernise properties dialogue
Use GtkListBox and other helpers to modernise and simplify the properties UI. This will eventually make it easier to port to GTK 4. Closes: #544
-rw-r--r--src/plugins/properties/bacon-video-widget-properties.c19
-rw-r--r--src/plugins/properties/properties.ui1473
2 files changed, 828 insertions, 664 deletions
diff --git a/src/plugins/properties/bacon-video-widget-properties.c b/src/plugins/properties/bacon-video-widget-properties.c
index 00ee28baf..00a040855 100644
--- a/src/plugins/properties/bacon-video-widget-properties.c
+++ b/src/plugins/properties/bacon-video-widget-properties.c
@@ -77,6 +77,9 @@ bacon_video_widget_properties_set_label (BaconVideoWidgetProperties *props,
item = GTK_LABEL (gtk_builder_get_object (props->xml, name));
g_return_if_fail (item != NULL);
gtk_label_set_text (item, text);
+
+ if (text == NULL || *text == '\0')
+ gtk_widget_hide(GTK_WIDGET (item));
}
void
@@ -95,19 +98,19 @@ bacon_video_widget_properties_reset (BaconVideoWidgetProperties *props)
gtk_widget_set_sensitive (item, FALSE);
/* Title */
- bacon_video_widget_properties_set_label (props, "title", C_("Title", "Unknown"));
+ bacon_video_widget_properties_set_label (props, "title", NULL);
/* Artist */
- bacon_video_widget_properties_set_label (props, "artist", C_("Artist", "Unknown"));
+ bacon_video_widget_properties_set_label (props, "artist", NULL);
/* Album */
- bacon_video_widget_properties_set_label (props, "album", C_("Album", "Unknown"));
+ bacon_video_widget_properties_set_label (props, "album", NULL);
/* Year */
- bacon_video_widget_properties_set_label (props, "year", C_("Year", "Unknown"));
+ bacon_video_widget_properties_set_label (props, "year", NULL);
/* Duration */
bacon_video_widget_properties_set_duration (props, 0);
/* Comment */
bacon_video_widget_properties_set_label (props, "comment", "");
/* Container */
- bacon_video_widget_properties_set_label (props, "container", C_("Media container", "Unknown"));
+ bacon_video_widget_properties_set_label (props, "container", NULL);
/* Dimensions */
bacon_video_widget_properties_set_label (props, "dimensions", C_("Dimensions", "N/A"));
@@ -281,8 +284,8 @@ bacon_video_widget_properties_new (void)
(BACON_TYPE_VIDEO_WIDGET_PROPERTIES, NULL));
props->xml = xml;
- vbox = GTK_WIDGET (gtk_builder_get_object (props->xml, "vbox1"));
- gtk_box_pack_start (GTK_BOX (props), vbox, FALSE, FALSE, 0);
+ vbox = GTK_WIDGET (gtk_builder_get_object (props->xml, "sw_properties"));
+ gtk_box_pack_start (GTK_BOX (props), vbox, TRUE, TRUE, 0);
bacon_video_widget_properties_reset (props);
@@ -293,7 +296,7 @@ bacon_video_widget_properties_new (void)
g_object_unref (group);
- gtk_widget_show_all (GTK_WIDGET (props));
+ gtk_widget_show (GTK_WIDGET (vbox));
return GTK_WIDGET (props);
}
diff --git a/src/plugins/properties/properties.ui b/src/plugins/properties/properties.ui
index eed91f9f8..9f52fb602 100644
--- a/src/plugins/properties/properties.ui
+++ b/src/plugins/properties/properties.ui
@@ -2,691 +2,852 @@
<!-- Generated with glade 3.20.0 -->
<interface>
<requires lib="gtk+" version="3.11"/>
- <object class="GtkBox" id="vbox1">
- <property name="width_request">375</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_bottom">12</property>
- <property name="border_width">6</property>
- <property name="orientation">vertical</property>
- <property name="spacing">18</property>
+ <object class="GtkScrolledWindow" id="sw_properties">
+ <property name="visible">true</property>
+ <property name="vexpand">true</property>
+ <property name="min-content-height">480</property>
+ <property name="hscrollbar-policy">never</property>
<child>
- <object class="GtkBox" id="general_vbox">
+ <object class="HdyClamp">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
+ <property name="margin-bottom">18</property>
+ <property name="margin-start">18</property>
+ <property name="margin-end">18</property>
+ <property name="margin-top">18</property>
<child>
- <object class="GtkLabel" id="bvwp_general_label">
+ <object class="GtkBox" id="vbox1">
<property name="visible">True</property>
+ <property name="width_request">375</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes">General</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkGrid" id="general">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkLabel" id="title_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Title:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="title"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="artist_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Artist:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="artist"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="duration_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Duration:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="duration"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="year_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Year:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="year"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="album_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Album:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="album"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="title">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">Unknown</property>
- <property name="wrap">True</property>
- <property name="selectable">True</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="title_label"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="artist">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">Unknown</property>
- <property name="wrap">True</property>
- <property name="selectable">True</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="artist_label"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="album">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">Unknown</property>
- <property name="wrap">True</property>
- <property name="selectable">True</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="album_label"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="year">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">Unknown</property>
- <property name="selectable">True</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="year_label"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="duration">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">0 seconds</property>
- <property name="selectable">True</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="duration_label"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="comment_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Comment:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="comment"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="comment">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">Unknown</property>
- <property name="wrap">True</property>
- <property name="selectable">True</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="comment_label"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="container_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Container:</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="container">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label">Unknown</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">6</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="video_vbox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="bvwp_video_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Video</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkGrid" id="video">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkLabel" id="dimensions_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Dimensions:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="dimensions"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="vcodec_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Codec:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="vcodec"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="framerate_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Framerate:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="framerate"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="vbitrate_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Bitrate:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="video_bitrate"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="dimensions">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">0 x 0</property>
- <property name="selectable">True</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="dimensions_label"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="vcodec">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">N/A</property>
- <property name="selectable">True</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="vcodec_label"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="framerate">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">0 frames per second</property>
- <property name="selectable">True</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="framerate_label"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="video_bitrate">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">0 kbps</property>
- <property name="selectable">True</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="vbitrate_label"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="audio_vbox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="bvwp_audio_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Audio</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkGrid" id="audio">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkLabel" id="samplerate_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Sample rate:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="samplerate"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
+ <property name="spacing">18</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkLabel" id="samplerate">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">0 Hz</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="samplerate_label"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="abitrate_label">
+ <object class="GtkBox" id="general_vbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Bitrate:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="audio_bitrate"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="audio_bitrate">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">0 kbps</property>
- <property name="selectable">True</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="abitrate_label"/>
- </accessibility>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">General</property>
+ <property name="use_markup">True</property>
+ <property name="xalign">0</property>
+ <style>
+ <class name="heading"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkListBox">
+ <property name="visible">True</property>
+ <property name="selection-mode">none</property>
+ <child>
+ <object class="HdyActionRow">
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <property name="visible" bind-source="title" bind-property="visible" bind-flags="default|sync-create"/>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="title_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Title</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="title"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="title">
+ <property name="visible">True</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="title_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <property name="visible" bind-source="artist" bind-property="visible" bind-flags="default|sync-create"/>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="artist_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Artist</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="artist"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="artist">
+ <property name="visible">True</property>
+ <property name="label">Unknown</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="artist_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <property name="visible" bind-source="album" bind-property="visible" bind-flags="default|sync-create"/>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="album_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Album</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="album"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="album">
+ <property name="visible">True</property>
+ <property name="label">Unknown</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="album_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <property name="visible" bind-source="year" bind-property="visible" bind-flags="default|sync-create"/>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="year_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Year</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="year"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="year">
+ <property name="visible">True</property>
+ <property name="label">Unknown</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="year_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="duration_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Duration</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="duration"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="duration">
+ <property name="visible">True</property>
+ <property name="label">0 seconds</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="duration_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <property name="visible" bind-source="comment" bind-property="visible" bind-flags="default|sync-create"/>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="comment_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Comment</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="comment"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="comment">
+ <property name="visible">True</property>
+ <property name="label">Unknown</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="comment_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <property name="visible" bind-source="container" bind-property="visible" bind-flags="default|sync-create"/>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="container_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Container</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="container"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="container">
+ <property name="visible">True</property>
+ <property name="label">Unknown</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="container_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <style>
+ <class name="content"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="acodec_label">
+ <object class="GtkBox" id="video_vbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Codec:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="acodec"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="acodec">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">N/A</property>
- <property name="selectable">True</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="acodec_label"/>
- </accessibility>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Video</property>
+ <property name="use_markup">True</property>
+ <property name="xalign">0</property>
+ <style>
+ <class name="heading"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkListBox" id="video">
+ <property name="visible">True</property>
+ <property name="selection-mode">none</property>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="dimensions_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Dimensions</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="dimensions"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="dimensions">
+ <property name="visible">True</property>
+ <property name="label">0 x 0</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="dimensions_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="vcodec_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Codec</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="vcodec"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="vcodec">
+ <property name="visible">True</property>
+ <property name="label">N/A</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="vcodec_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="framerate_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Framerate</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="framerate"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="framerate">
+ <property name="visible">True</property>
+ <property name="label">0 frames per second</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="framerate_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="vbitrate_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Bitrate</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="video_bitrate"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="video_bitrate">
+ <property name="visible">True</property>
+ <property name="label">0 kbps</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="vbitrate_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <style>
+ <class name="content"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="channels_label">
+ <object class="GtkBox" id="audio_vbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="label" translatable="yes">Channels:</property>
- <property name="use_markup">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- <accessibility>
- <relation type="label-for" target="channels"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="channels">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">0 Channels</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <accessibility>
- <relation type="labelled-by" target="channels_label"/>
- </accessibility>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Audio</property>
+ <property name="use_markup">True</property>
+ <property name="xalign">0</property>
+ <style>
+ <class name="heading"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkListBox" id="audio">
+ <property name="visible">True</property>
+ <property name="selection-mode">none</property>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="acodec_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Codec</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="acodec"/>
+ </accessibility>
+ <style>
+ <class name="caption"/><class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="acodec">
+ <property name="visible">True</property>
+ <property name="label">N/A</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="acodec_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="channels_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Channels</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="channels"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="channels">
+ <property name="visible">True</property>
+ <property name="label">0 Channels</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="channels_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="samplerate_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Sample rate</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="samplerate"/>
+ </accessibility>
+ <style>
+ <class name="caption"/><class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="samplerate">
+ <property name="visible">True</property>
+ <property name="label">0 Hz</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="samplerate_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel" id="abitrate_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Bitrate</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="audio_bitrate"/>
+ </accessibility>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="audio_bitrate">
+ <property name="visible">True</property>
+ <property name="label">0 kbps</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="lines">3</property>
+ <property name="halign">start</property>
+ <accessibility>
+ <relation type="labelled-by" target="abitrate_label"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <style>
+ <class name="content"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
</child>
</object>
</interface>