Merge lp:~philip.scott/audience/audio-subs-selector into lp:~audience-members/audience/trunk

Proposed by Felipe Escoto
Status: Merged
Approved by: Cody Garver
Approved revision: 619
Merged at revision: 622
Proposed branch: lp:~philip.scott/audience/audio-subs-selector
Merge into: lp:~audience-members/audience/trunk
Diff against target: 118 lines (+40/-14)
3 files modified
src/Widgets/BottomBar.vala (+5/-1)
src/Widgets/PlayerPage.vala (+3/-5)
src/Widgets/SettingsPopover.vala (+32/-8)
To merge this branch: bzr merge lp:~philip.scott/audience/audio-subs-selector
Reviewer Review Type Date Requested Status
Audience Members Pending
Review via email: mp+302213@code.launchpad.net

Commit message

Fix Subtitle & Audio combobox loading (lp:1610617)

Description of the change

Let's have the audio and subtitles working again!

They were broken because they were being loaded before the video appeared. Now they get loaded when you open the Popover

To post a comment you must log in.
619. By Felipe Escoto

Working subtitles and audio

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/Widgets/BottomBar.vala'
2--- src/Widgets/BottomBar.vala 2016-08-01 18:46:23 +0000
3+++ src/Widgets/BottomBar.vala 2016-08-07 00:34:20 +0000
4@@ -63,7 +63,11 @@
5
6 preferences_button = new Gtk.Button.from_icon_name ("open-menu-symbolic", Gtk.IconSize.BUTTON);
7 preferences_button.tooltip_text = _("Settings");
8- preferences_button.clicked.connect (() => {preferences_popover.show_all (); preferences_popover.queue_resize ();});
9+ preferences_button.clicked.connect (() => {
10+ preferences_popover.setup ();
11+ preferences_popover.show_all ();
12+ preferences_popover.queue_resize ();
13+ });
14
15 time_widget = new TimeWidget (playback);
16
17
18=== modified file 'src/Widgets/PlayerPage.vala'
19--- src/Widgets/PlayerPage.vala 2016-07-29 05:02:48 +0000
20+++ src/Widgets/PlayerPage.vala 2016-08-07 00:34:20 +0000
21@@ -223,7 +223,7 @@
22 var cursor = new Gdk.Cursor.for_display (display, Gdk.CursorType.BLANK_CURSOR);
23 window.set_cursor (cursor);
24 }
25- });
26+ });
27
28 notify["playing"].connect (() => {
29 if (playing) {
30@@ -258,10 +258,8 @@
31 Gtk.RecentManager recent_manager = Gtk.RecentManager.get_default ();
32 recent_manager.add_item (uri);
33
34- /*subtitles/audio tracks*/
35- bottom_bar.preferences_popover.setup_text ();
36- bottom_bar.preferences_popover.setup_audio ();
37-
38+ bottom_bar.preferences_popover.is_setup = false;
39+
40 Audience.Services.Inhibitor.get_instance ().inhibit ();
41 }
42
43
44=== modified file 'src/Widgets/SettingsPopover.vala'
45--- src/Widgets/SettingsPopover.vala 2016-03-14 13:10:18 +0000
46+++ src/Widgets/SettingsPopover.vala 2016-08-07 00:34:20 +0000
47@@ -19,6 +19,8 @@
48 */
49
50 public class Audience.Widgets.SettingsPopover : Gtk.Popover {
51+ public bool is_setup = false;
52+
53 private Gtk.ComboBoxText languages;
54 private Gtk.ComboBoxText subtitles;
55 private Gtk.FileChooserButton external_subtitle_file;
56@@ -97,33 +99,55 @@
57 add (setupgrid);
58 }
59
60- public void setup_text () {
61+ public void setup () {
62+ if (!is_setup) {
63+ is_setup = true;
64+ setup_text ();
65+ setup_audio ();
66+ }
67+ }
68+
69+ private void setup_text () {
70+ int previous_track = playback.subtitle_track;
71 if (subtitles.model.iter_n_children (null) > 0)
72 subtitles.remove_all ();
73
74+ uint track = 1;
75 playback.get_subtitle_tracks ().foreach ((lang) => {
76- subtitles.append (lang, lang);
77+ // FIXME: Using Track since lang is actually a bad pointer :/
78+ subtitles.append (lang, _("Track %d").printf (track++));
79 });
80
81 subtitles.append ("none", _("None"));
82- subtitles.active = playback.subtitle_track;
83+ subtitles.active = previous_track;
84 subtitles.sensitive = subtitles.model.iter_n_children (null) > 1;
85+
86+ if (!subtitles.sensitive) {
87+ subtitles.append ("def", _("Default"));
88+ subtitles.active = 0;
89+ } else {
90+ subtitles.active = previous_track;
91+ }
92 }
93
94- public void setup_audio () {
95+ private void setup_audio () {
96+ int previous_track = playback.subtitle_track;
97+
98 if (languages.model.iter_n_children (null) > 0)
99 languages.remove_all ();
100
101+ uint track = 1;
102 playback.get_audio_streams ().foreach ((lang) => {
103- languages.append (lang, lang);
104+ languages.append (lang, _("Track %d").printf (track++));
105 });
106
107- languages.sensitive = languages.model.iter_n_children (null) > 0;
108+ languages.sensitive = languages.model.iter_n_children (null) > 1;
109+
110 if (!languages.sensitive) {
111 languages.append ("def", _("Default"));
112- languages.active = 0;
113+ languages.active = 1;
114 } else {
115- languages.active = playback.subtitle_track;
116+ languages.active = previous_track;
117 }
118 }
119

Subscribers

People subscribed via source and target branches