Merge lp:~larsu/unity-control-center/sound-panel-ui-cleanup into lp:unity-control-center
- sound-panel-ui-cleanup
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Sebastien Bacher |
Approved revision: | 12708 |
Merged at revision: | 12721 |
Proposed branch: | lp:~larsu/unity-control-center/sound-panel-ui-cleanup |
Merge into: | lp:unity-control-center |
Diff against target: |
419 lines (+118/-64) 6 files modified
configure.ac (+1/-1) debian/control (+3/-2) panels/sound/gvc-channel-bar.c (+43/-25) panels/sound/gvc-channel-bar.h (+3/-0) panels/sound/gvc-combo-box.c (+1/-1) panels/sound/gvc-mixer-dialog.c (+67/-35) |
To merge this branch: | bzr merge lp:~larsu/unity-control-center/sound-panel-ui-cleanup |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Sebastien Bacher | Approve | ||
PS Jenkins bot (community) | continuous-integration | Approve | |
Review via email: mp+207494@code.launchpad.net |
Commit message
sound: various UI tweaks
Most importantly, add a "allow louder than 100%" checkbox (feeding from a key in com.canonical.
Description of the change
sound: various UI tweaks
Most importantly, add a "allow louder than 100%" checkbox (feeding from a key in com.canonical.
- 12707. By Lars Karlitski
-
Bump gtk build dependency to match configure
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:12706
No commit message was specified in the merge proposal. Click on the following link and set the commit message (if you want a jenkins rebuild you need to trigger it yourself):
https:/
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:12707
http://
Executed test runs:
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Sebastien Bacher (seb128) wrote : | # |
could you rebase/pre-require https:/
- 12708. By Lars Karlitski
-
Merge lp:~laney/unity-control-center/schemas-depends-not-build-depends
[ Eleni Maria Stea ]
* Add a slider that can change the fonts-scale-factor gsetting (per
monitor text scaling factor)
[ Robert Ancell ]
* Fix various compile warnings.
* Stop using deprecated GtkStock.
* Stop using deprecated GdkColor.
* Use appropriate GSettings API for checking existence of schemas.
* Backport Wacom panel from GNOME Control Center 3.8
* Add option to toggle username in session indicator (LP: #1116497)
[ Sebastian Bacher ]
* debian/control.in:
- Build-Depends on dh-migrations
* debian/unity-control- center. migrations, debian/ ucc-unity- launcher. py:
- script to migration the g-c-c Unity's launcher entry to u-c-c
* debian/rules:
- clean some leftover references to g-c-c
- use dh_migrations.
* Merge in datetime panel from indicator-datetime
* Backport commit to fix notebook spacing issues.
* Let the launcher icons be scaled down to 16. (LP: #1168409).
* keyboard: wrap information label in the shortcuts panel. (LP: #1276119).
* debian/control:
- Run with either gnome-settings-daemon or unity-settings- daemon
(LP: #1277487)
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:12708
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Preview Diff
1 | === modified file 'configure.ac' | |||
2 | --- configure.ac 2014-02-19 02:24:52 +0000 | |||
3 | +++ configure.ac 2014-02-20 18:08:31 +0000 | |||
4 | @@ -102,7 +102,7 @@ | |||
5 | 102 | dnl ============================================== | 102 | dnl ============================================== |
6 | 103 | 103 | ||
7 | 104 | GLIB_REQUIRED_VERSION=2.31.2 | 104 | GLIB_REQUIRED_VERSION=2.31.2 |
9 | 105 | GTK_REQUIRED_VERSION=3.5.13 | 105 | GTK_REQUIRED_VERSION=3.10.0 |
10 | 106 | PA_REQUIRED_VERSION=2.0 | 106 | PA_REQUIRED_VERSION=2.0 |
11 | 107 | CANBERRA_REQUIRED_VERSION=0.13 | 107 | CANBERRA_REQUIRED_VERSION=0.13 |
12 | 108 | GDKPIXBUF_REQUIRED_VERSION=2.23.0 | 108 | GDKPIXBUF_REQUIRED_VERSION=2.23.0 |
13 | 109 | 109 | ||
14 | === modified file 'debian/control' | |||
15 | --- debian/control 2014-02-20 10:43:41 +0000 | |||
16 | +++ debian/control 2014-02-20 18:08:31 +0000 | |||
17 | @@ -13,7 +13,6 @@ | |||
18 | 13 | gnome-pkg-tools (>= 0.10), | 13 | gnome-pkg-tools (>= 0.10), |
19 | 14 | gnome-settings-daemon-dev (>= 3.8.4), | 14 | gnome-settings-daemon-dev (>= 3.8.4), |
20 | 15 | gsettings-desktop-schemas-dev (>= 3.7.2.2), | 15 | gsettings-desktop-schemas-dev (>= 3.7.2.2), |
21 | 16 | gsettings-ubuntu-schemas (>= 0.0.1+14.04.20140219), | ||
22 | 17 | hardening-wrapper, | 16 | hardening-wrapper, |
23 | 18 | intltool (>= 0.37.1), | 17 | intltool (>= 0.37.1), |
24 | 19 | libcanberra-gtk3-dev, | 18 | libcanberra-gtk3-dev, |
25 | @@ -30,7 +29,7 @@ | |||
26 | 30 | libgnomekbd-dev, | 29 | libgnomekbd-dev, |
27 | 31 | libgoa-1.0-dev (>= 3.5.90), | 30 | libgoa-1.0-dev (>= 3.5.90), |
28 | 32 | libgstreamer-plugins-base0.10-dev, | 31 | libgstreamer-plugins-base0.10-dev, |
30 | 33 | libgtk-3-dev (>= 3.5.13), | 32 | libgtk-3-dev (>= 3.10.0), |
31 | 34 | libgtop2-dev, | 33 | libgtop2-dev, |
32 | 35 | libibus-1.0-dev (>= 1.5.0), | 34 | libibus-1.0-dev (>= 1.5.0), |
33 | 36 | libnm-glib-dev (>= 0.9) [linux-any], | 35 | libnm-glib-dev (>= 0.9) [linux-any], |
34 | @@ -71,6 +70,8 @@ | |||
35 | 71 | gnome-menus (>= 2.12.0), | 70 | gnome-menus (>= 2.12.0), |
36 | 72 | gnome-settings-daemon (>= 3.8.4) | unity-settings-daemon, | 71 | gnome-settings-daemon (>= 3.8.4) | unity-settings-daemon, |
37 | 73 | gsettings-desktop-schemas (>= 3.5.91), | 72 | gsettings-desktop-schemas (>= 3.5.91), |
38 | 73 | gsettings-ubuntu-schemas (>= 0.0.1+14.04.20140219), | ||
39 | 74 | indicator-sound (>= 12.10.2+14.04.20140220), | ||
40 | 74 | Recommends: cups-pk-helper, | 75 | Recommends: cups-pk-helper, |
41 | 75 | gnome-session-bin, | 76 | gnome-session-bin, |
42 | 76 | ubuntu-system-service, | 77 | ubuntu-system-service, |
43 | 77 | 78 | ||
44 | === modified file 'panels/sound/gvc-channel-bar.c' | |||
45 | --- panels/sound/gvc-channel-bar.c 2014-02-18 04:27:04 +0000 | |||
46 | +++ panels/sound/gvc-channel-bar.c 2014-02-20 18:08:31 +0000 | |||
47 | @@ -54,7 +54,7 @@ | |||
48 | 54 | GtkWidget *scale; | 54 | GtkWidget *scale; |
49 | 55 | GtkWidget *high_image; | 55 | GtkWidget *high_image; |
50 | 56 | GtkWidget *mute_box; | 56 | GtkWidget *mute_box; |
52 | 57 | GtkWidget *mute_switch; | 57 | GtkWidget *mute_check; |
53 | 58 | GtkAdjustment *adjustment; | 58 | GtkAdjustment *adjustment; |
54 | 59 | GtkAdjustment *zero_adjustment; | 59 | GtkAdjustment *zero_adjustment; |
55 | 60 | gboolean show_mute; | 60 | gboolean show_mute; |
56 | @@ -68,6 +68,7 @@ | |||
57 | 68 | gboolean click_lock; | 68 | gboolean click_lock; |
58 | 69 | gboolean is_amplified; | 69 | gboolean is_amplified; |
59 | 70 | guint32 base_volume; | 70 | guint32 base_volume; |
60 | 71 | GtkPositionType mark_position; | ||
61 | 71 | }; | 72 | }; |
62 | 72 | 73 | ||
63 | 73 | enum | 74 | enum |
64 | @@ -522,14 +523,14 @@ | |||
65 | 522 | } | 523 | } |
66 | 523 | 524 | ||
67 | 524 | static void | 525 | static void |
69 | 525 | update_mute_switch (GvcChannelBar *bar) | 526 | update_mute (GvcChannelBar *bar) |
70 | 526 | { | 527 | { |
71 | 527 | if (bar->priv->show_mute) { | 528 | if (bar->priv->show_mute) { |
75 | 528 | gtk_widget_show (bar->priv->mute_switch); | 529 | gtk_widget_show (bar->priv->mute_check); |
76 | 529 | gtk_switch_set_active (GTK_SWITCH (bar->priv->mute_switch), | 530 | gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (bar->priv->mute_check), |
77 | 530 | !bar->priv->is_muted); | 531 | bar->priv->is_muted); |
78 | 531 | } else { | 532 | } else { |
80 | 532 | gtk_widget_hide (bar->priv->mute_switch); | 533 | gtk_widget_hide (bar->priv->mute_check); |
81 | 533 | } | 534 | } |
82 | 534 | 535 | ||
83 | 535 | if (bar->priv->is_muted) { | 536 | if (bar->priv->is_muted) { |
84 | @@ -564,7 +565,7 @@ | |||
85 | 564 | /* Update our internal state before telling the | 565 | /* Update our internal state before telling the |
86 | 565 | * front-end about our changes */ | 566 | * front-end about our changes */ |
87 | 566 | bar->priv->is_muted = is_muted; | 567 | bar->priv->is_muted = is_muted; |
89 | 567 | update_mute_switch (bar); | 568 | update_mute (bar); |
90 | 568 | g_object_notify (G_OBJECT (bar), "is-muted"); | 569 | g_object_notify (G_OBJECT (bar), "is-muted"); |
91 | 569 | } | 570 | } |
92 | 570 | } | 571 | } |
93 | @@ -585,7 +586,7 @@ | |||
94 | 585 | if (show_mute != bar->priv->show_mute) { | 586 | if (show_mute != bar->priv->show_mute) { |
95 | 586 | bar->priv->show_mute = show_mute; | 587 | bar->priv->show_mute = show_mute; |
96 | 587 | g_object_notify (G_OBJECT (bar), "show-mute"); | 588 | g_object_notify (G_OBJECT (bar), "show-mute"); |
98 | 588 | update_mute_switch (bar); | 589 | update_mute (bar); |
99 | 589 | } | 590 | } |
100 | 590 | } | 591 | } |
101 | 591 | 592 | ||
102 | @@ -612,24 +613,30 @@ | |||
103 | 612 | if (bar->priv->base_volume == ADJUSTMENT_MAX_NORMAL) { | 613 | if (bar->priv->base_volume == ADJUSTMENT_MAX_NORMAL) { |
104 | 613 | str = g_strdup_printf ("<small>%s</small>", C_("volume", "100%")); | 614 | str = g_strdup_printf ("<small>%s</small>", C_("volume", "100%")); |
105 | 614 | gtk_scale_add_mark (GTK_SCALE (bar->priv->scale), ADJUSTMENT_MAX_NORMAL, | 615 | gtk_scale_add_mark (GTK_SCALE (bar->priv->scale), ADJUSTMENT_MAX_NORMAL, |
107 | 615 | GTK_POS_BOTTOM, str); | 616 | bar->priv->mark_position, str); |
108 | 616 | } else { | 617 | } else { |
109 | 617 | str = g_strdup_printf ("<small>%s</small>", C_("volume", "Unamplified")); | 618 | str = g_strdup_printf ("<small>%s</small>", C_("volume", "Unamplified")); |
110 | 618 | gtk_scale_add_mark (GTK_SCALE (bar->priv->scale), bar->priv->base_volume, | 619 | gtk_scale_add_mark (GTK_SCALE (bar->priv->scale), bar->priv->base_volume, |
112 | 619 | GTK_POS_BOTTOM, str); | 620 | bar->priv->mark_position, str); |
113 | 620 | /* Only show 100% if it's higher than the base volume */ | 621 | /* Only show 100% if it's higher than the base volume */ |
114 | 621 | if (bar->priv->base_volume < ADJUSTMENT_MAX_NORMAL) { | 622 | if (bar->priv->base_volume < ADJUSTMENT_MAX_NORMAL) { |
115 | 622 | str = g_strdup_printf ("<small>%s</small>", C_("volume", "100%")); | 623 | str = g_strdup_printf ("<small>%s</small>", C_("volume", "100%")); |
116 | 623 | gtk_scale_add_mark (GTK_SCALE (bar->priv->scale), ADJUSTMENT_MAX_NORMAL, | 624 | gtk_scale_add_mark (GTK_SCALE (bar->priv->scale), ADJUSTMENT_MAX_NORMAL, |
118 | 624 | GTK_POS_BOTTOM, str); | 625 | bar->priv->mark_position, str); |
119 | 625 | } | 626 | } |
120 | 626 | } | 627 | } |
121 | 627 | 628 | ||
122 | 628 | g_free (str); | 629 | g_free (str); |
123 | 629 | gtk_alignment_set (GTK_ALIGNMENT (bar->priv->mute_box), 0.5, 0, 0, 0); | 630 | gtk_alignment_set (GTK_ALIGNMENT (bar->priv->mute_box), 0.5, 0, 0, 0); |
124 | 630 | gtk_misc_set_alignment (GTK_MISC (bar->priv->low_image), 0.5, 0.15); | ||
125 | 631 | gtk_misc_set_alignment (GTK_MISC (bar->priv->high_image), 0.5, 0.15); | ||
126 | 632 | gtk_misc_set_alignment (GTK_MISC (bar->priv->label), 0, 0); | 631 | gtk_misc_set_alignment (GTK_MISC (bar->priv->label), 0, 0); |
127 | 632 | if (bar->priv->mark_position == GTK_POS_TOP) { | ||
128 | 633 | gtk_misc_set_alignment (GTK_MISC (bar->priv->low_image), 0.5, 1.0); | ||
129 | 634 | gtk_misc_set_alignment (GTK_MISC (bar->priv->high_image), 0.5, 1.0); | ||
130 | 635 | } | ||
131 | 636 | else { | ||
132 | 637 | gtk_misc_set_alignment (GTK_MISC (bar->priv->low_image), 0.5, 0.0); | ||
133 | 638 | gtk_misc_set_alignment (GTK_MISC (bar->priv->high_image), 0.5, 0.0); | ||
134 | 639 | } | ||
135 | 633 | } else { | 640 | } else { |
136 | 634 | gtk_alignment_set (GTK_ALIGNMENT (bar->priv->mute_box), 0.5, 0.5, 0, 0); | 641 | gtk_alignment_set (GTK_ALIGNMENT (bar->priv->mute_box), 0.5, 0.5, 0, 0); |
137 | 635 | gtk_misc_set_alignment (GTK_MISC (bar->priv->low_image), 0.5, 0.5); | 642 | gtk_misc_set_alignment (GTK_MISC (bar->priv->low_image), 0.5, 0.5); |
138 | @@ -776,7 +783,7 @@ | |||
139 | 776 | 783 | ||
140 | 777 | self = GVC_CHANNEL_BAR (object); | 784 | self = GVC_CHANNEL_BAR (object); |
141 | 778 | 785 | ||
143 | 779 | update_mute_switch (self); | 786 | update_mute (self); |
144 | 780 | 787 | ||
145 | 781 | return object; | 788 | return object; |
146 | 782 | } | 789 | } |
147 | @@ -867,13 +874,15 @@ | |||
148 | 867 | } | 874 | } |
149 | 868 | 875 | ||
150 | 869 | static void | 876 | static void |
154 | 870 | on_mute_switch_toggled (GtkSwitch *sw, | 877 | on_mute_check_toggled (GObject *object, |
155 | 871 | GParamSpec *pspec, | 878 | GParamSpec *pspec, |
156 | 872 | GvcChannelBar *bar) | 879 | gpointer user_data) |
157 | 873 | { | 880 | { |
161 | 874 | gboolean is_muted; | 881 | GvcChannelBar *bar = user_data; |
162 | 875 | is_muted = gtk_switch_get_active (sw); | 882 | gboolean is_muted; |
163 | 876 | gvc_channel_bar_set_is_muted (bar, !is_muted); | 883 | |
164 | 884 | is_muted = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (object)); | ||
165 | 885 | gvc_channel_bar_set_is_muted (bar, is_muted); | ||
166 | 877 | } | 886 | } |
167 | 878 | 887 | ||
168 | 879 | static void | 888 | static void |
169 | @@ -886,6 +895,7 @@ | |||
170 | 886 | bar->priv->base_volume = ADJUSTMENT_MAX_NORMAL; | 895 | bar->priv->base_volume = ADJUSTMENT_MAX_NORMAL; |
171 | 887 | bar->priv->low_icon_name = g_strdup ("audio-volume-low-symbolic"); | 896 | bar->priv->low_icon_name = g_strdup ("audio-volume-low-symbolic"); |
172 | 888 | bar->priv->high_icon_name = g_strdup ("audio-volume-high-symbolic"); | 897 | bar->priv->high_icon_name = g_strdup ("audio-volume-high-symbolic"); |
173 | 898 | bar->priv->mark_position = GTK_POS_BOTTOM; | ||
174 | 889 | 899 | ||
175 | 890 | bar->priv->orientation = GTK_ORIENTATION_VERTICAL; | 900 | bar->priv->orientation = GTK_ORIENTATION_VERTICAL; |
176 | 891 | bar->priv->adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, | 901 | bar->priv->adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, |
177 | @@ -909,14 +919,14 @@ | |||
178 | 909 | G_CALLBACK (on_zero_adjustment_value_changed), | 919 | G_CALLBACK (on_zero_adjustment_value_changed), |
179 | 910 | bar); | 920 | bar); |
180 | 911 | 921 | ||
184 | 912 | bar->priv->mute_switch = gtk_switch_new (); | 922 | bar->priv->mute_check = gtk_check_button_new_with_label (_("Mute")); |
185 | 913 | gtk_widget_set_no_show_all (bar->priv->mute_switch, TRUE); | 923 | gtk_widget_set_no_show_all (bar->priv->mute_check, TRUE); |
186 | 914 | g_signal_connect (bar->priv->mute_switch, | 924 | g_signal_connect (bar->priv->mute_check, |
187 | 915 | "notify::active", | 925 | "notify::active", |
189 | 916 | G_CALLBACK (on_mute_switch_toggled), | 926 | G_CALLBACK (on_mute_check_toggled), |
190 | 917 | bar); | 927 | bar); |
191 | 918 | bar->priv->mute_box = gtk_alignment_new (0.5, 0.5, 0, 0); | 928 | bar->priv->mute_box = gtk_alignment_new (0.5, 0.5, 0, 0); |
193 | 919 | gtk_container_add (GTK_CONTAINER (bar->priv->mute_box), bar->priv->mute_switch); | 929 | gtk_container_add (GTK_CONTAINER (bar->priv->mute_box), bar->priv->mute_check); |
194 | 920 | 930 | ||
195 | 921 | bar->priv->low_image = gtk_image_new_from_icon_name ("audio-volume-low-symbolic", | 931 | bar->priv->low_image = gtk_image_new_from_icon_name ("audio-volume-low-symbolic", |
196 | 922 | GTK_ICON_SIZE_MENU); | 932 | GTK_ICON_SIZE_MENU); |
197 | @@ -973,3 +983,11 @@ | |||
198 | 973 | NULL); | 983 | NULL); |
199 | 974 | return GTK_WIDGET (bar); | 984 | return GTK_WIDGET (bar); |
200 | 975 | } | 985 | } |
201 | 986 | |||
202 | 987 | void | ||
203 | 988 | gvc_channel_bar_set_mark_position (GvcChannelBar *bar, | ||
204 | 989 | GtkPositionType position) | ||
205 | 990 | { | ||
206 | 991 | bar->priv->mark_position = position; | ||
207 | 992 | gvc_channel_bar_set_is_amplified (bar, bar->priv->is_amplified); | ||
208 | 993 | } | ||
209 | 976 | 994 | ||
210 | === modified file 'panels/sound/gvc-channel-bar.h' | |||
211 | --- panels/sound/gvc-channel-bar.h 2012-06-25 12:41:31 +0000 | |||
212 | +++ panels/sound/gvc-channel-bar.h 2014-02-20 18:08:31 +0000 | |||
213 | @@ -84,6 +84,9 @@ | |||
214 | 84 | gboolean gvc_channel_bar_scroll (GvcChannelBar *bar, | 84 | gboolean gvc_channel_bar_scroll (GvcChannelBar *bar, |
215 | 85 | GdkEventScroll *event); | 85 | GdkEventScroll *event); |
216 | 86 | 86 | ||
217 | 87 | void gvc_channel_bar_set_mark_position (GvcChannelBar *bar, | ||
218 | 88 | GtkPositionType position); | ||
219 | 89 | |||
220 | 87 | G_END_DECLS | 90 | G_END_DECLS |
221 | 88 | 91 | ||
222 | 89 | #endif /* __GVC_CHANNEL_BAR_H */ | 92 | #endif /* __GVC_CHANNEL_BAR_H */ |
223 | 90 | 93 | ||
224 | === modified file 'panels/sound/gvc-combo-box.c' | |||
225 | --- panels/sound/gvc-combo-box.c 2014-02-18 04:27:04 +0000 | |||
226 | +++ panels/sound/gvc-combo-box.c 2014-02-20 18:08:31 +0000 | |||
227 | @@ -346,7 +346,7 @@ | |||
228 | 346 | 346 | ||
229 | 347 | 347 | ||
230 | 348 | combo_box->priv->end_box = ebox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); | 348 | combo_box->priv->end_box = ebox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); |
232 | 349 | gtk_box_pack_start (GTK_BOX (box), ebox, FALSE, FALSE, 0); | 349 | gtk_box_pack_start (GTK_BOX (box), ebox, TRUE, FALSE, 0); |
233 | 350 | 350 | ||
234 | 351 | if (combo_box->priv->size_group != NULL) { | 351 | if (combo_box->priv->size_group != NULL) { |
235 | 352 | gtk_size_group_add_widget (combo_box->priv->size_group, sbox); | 352 | gtk_size_group_add_widget (combo_box->priv->size_group, sbox); |
236 | 353 | 353 | ||
237 | === modified file 'panels/sound/gvc-mixer-dialog.c' | |||
238 | --- panels/sound/gvc-mixer-dialog.c 2014-02-18 22:42:43 +0000 | |||
239 | +++ panels/sound/gvc-mixer-dialog.c 2014-02-20 18:08:31 +0000 | |||
240 | @@ -904,8 +904,6 @@ | |||
241 | 904 | bar_set_stream (dialog, dialog->priv->output_bar, stream); | 904 | bar_set_stream (dialog, dialog->priv->output_bar, stream); |
242 | 905 | gvc_channel_bar_set_base_volume (GVC_CHANNEL_BAR (dialog->priv->output_bar), | 905 | gvc_channel_bar_set_base_volume (GVC_CHANNEL_BAR (dialog->priv->output_bar), |
243 | 906 | gvc_mixer_stream_get_base_volume (stream)); | 906 | gvc_mixer_stream_get_base_volume (stream)); |
244 | 907 | gvc_channel_bar_set_is_amplified (GVC_CHANNEL_BAR (dialog->priv->output_bar), | ||
245 | 908 | gvc_mixer_stream_get_can_decibel (stream)); | ||
246 | 909 | /* Update the adjustment in case the previous bar wasn't decibel | 907 | /* Update the adjustment in case the previous bar wasn't decibel |
247 | 910 | * capable, and we clipped it */ | 908 | * capable, and we clipped it */ |
248 | 911 | adj = GTK_ADJUSTMENT (gvc_channel_bar_get_adjustment (GVC_CHANNEL_BAR (dialog->priv->output_bar))); | 909 | adj = GTK_ADJUSTMENT (gvc_channel_bar_get_adjustment (GVC_CHANNEL_BAR (dialog->priv->output_bar))); |
249 | @@ -962,7 +960,7 @@ | |||
250 | 962 | 960 | ||
251 | 963 | if (dialog->priv->size_group != NULL) { | 961 | if (dialog->priv->size_group != NULL) { |
252 | 964 | gvc_combo_box_set_size_group (GVC_COMBO_BOX (dialog->priv->output_profile_combo), | 962 | gvc_combo_box_set_size_group (GVC_COMBO_BOX (dialog->priv->output_profile_combo), |
254 | 965 | dialog->priv->size_group, FALSE); | 963 | dialog->priv->size_group, TRUE); |
255 | 966 | } | 964 | } |
256 | 967 | 965 | ||
257 | 968 | active_profile = gvc_mixer_ui_device_get_active_profile (active_output); | 966 | active_profile = gvc_mixer_ui_device_get_active_profile (active_output); |
258 | @@ -1718,6 +1716,20 @@ | |||
259 | 1718 | gtk_widget_destroy (d); | 1716 | gtk_widget_destroy (d); |
260 | 1719 | } | 1717 | } |
261 | 1720 | 1718 | ||
262 | 1719 | static void | ||
263 | 1720 | allow_amplify_check_changed (GObject *object, | ||
264 | 1721 | GParamSpec *pspec, | ||
265 | 1722 | gpointer user_data) | ||
266 | 1723 | { | ||
267 | 1724 | const gchar *label; | ||
268 | 1725 | if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (object))) | ||
269 | 1726 | label = (_("Allow louder than 100% (may distort sound)")); | ||
270 | 1727 | else | ||
271 | 1728 | label = (_("Allow louder than 100%")); | ||
272 | 1729 | |||
273 | 1730 | gtk_button_set_label (GTK_BUTTON (object), label); | ||
274 | 1731 | } | ||
275 | 1732 | |||
276 | 1721 | static GObject * | 1733 | static GObject * |
277 | 1722 | gvc_mixer_dialog_constructor (GType type, | 1734 | gvc_mixer_dialog_constructor (GType type, |
278 | 1723 | guint n_construct_properties, | 1735 | guint n_construct_properties, |
279 | @@ -1740,6 +1752,8 @@ | |||
280 | 1740 | GvcMixerStream *stream; | 1752 | GvcMixerStream *stream; |
281 | 1741 | GvcMixerCard *card; | 1753 | GvcMixerCard *card; |
282 | 1742 | GtkTreeSelection *selection; | 1754 | GtkTreeSelection *selection; |
283 | 1755 | GtkWidget *mute_check; | ||
284 | 1756 | GtkWidget *allow_amplify_check; | ||
285 | 1743 | 1757 | ||
286 | 1744 | object = G_OBJECT_CLASS (gvc_mixer_dialog_parent_class)->constructor (type, n_construct_properties, construct_params); | 1758 | object = G_OBJECT_CLASS (gvc_mixer_dialog_parent_class)->constructor (type, n_construct_properties, construct_params); |
287 | 1745 | 1759 | ||
288 | @@ -1750,13 +1764,51 @@ | |||
289 | 1750 | 1764 | ||
290 | 1751 | gtk_container_set_border_width (GTK_CONTAINER (self), 3); | 1765 | gtk_container_set_border_width (GTK_CONTAINER (self), 3); |
291 | 1752 | 1766 | ||
296 | 1753 | self->priv->output_stream_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); | 1767 | // Output volume |
297 | 1754 | alignment = gtk_alignment_new (0, 0, 1, 1); | 1768 | self->priv->output_bar = create_bar (self, FALSE, TRUE); |
298 | 1755 | gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 0, 0); | 1769 | gvc_channel_bar_set_show_mute (GVC_CHANNEL_BAR (self->priv->output_bar), FALSE); |
299 | 1756 | gtk_container_add (GTK_CONTAINER (alignment), self->priv->output_stream_box); | 1770 | gvc_channel_bar_set_mark_position (GVC_CHANNEL_BAR (self->priv->output_bar), GTK_POS_TOP); |
300 | 1771 | gtk_widget_set_sensitive (self->priv->output_bar, FALSE); | ||
301 | 1772 | gtk_widget_set_valign (self->priv->output_bar, GTK_ALIGN_END); | ||
302 | 1773 | gtk_widget_set_size_request (self->priv->output_bar, 400, -1); | ||
303 | 1774 | g_settings_bind (self->priv->indicator_settings, "allow-amplified-volume", | ||
304 | 1775 | self->priv->output_bar, "is-amplified", G_SETTINGS_BIND_DEFAULT); | ||
305 | 1776 | |||
306 | 1777 | label = gtk_label_new_with_mnemonic (_("_Output volume:")); | ||
307 | 1778 | gtk_widget_set_valign (label, GTK_ALIGN_END); | ||
308 | 1779 | gtk_widget_set_margin_top (label, 30); | ||
309 | 1780 | |||
310 | 1781 | mute_check = gtk_check_button_new_with_label (_("Mute")); | ||
311 | 1782 | gtk_widget_set_halign (mute_check, GTK_ALIGN_START); | ||
312 | 1783 | g_object_bind_property (mute_check, "active", self->priv->output_bar, "is-muted", | ||
313 | 1784 | G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); | ||
314 | 1785 | |||
315 | 1786 | /* TRANSLATORS: This label is used in a checkbox close to volume | ||
316 | 1787 | * slider. Please keep it brief. */ | ||
317 | 1788 | allow_amplify_check = gtk_check_button_new_with_label (_("Allow louder than 100%")); | ||
318 | 1789 | gtk_widget_set_halign (allow_amplify_check, GTK_ALIGN_START); | ||
319 | 1790 | gtk_widget_set_hexpand (allow_amplify_check, TRUE); | ||
320 | 1791 | g_signal_connect (allow_amplify_check, "notify::active", | ||
321 | 1792 | G_CALLBACK (allow_amplify_check_changed), NULL); | ||
322 | 1793 | g_settings_bind (self->priv->indicator_settings, "allow-amplified-volume", | ||
323 | 1794 | allow_amplify_check, "active", G_SETTINGS_BIND_DEFAULT); | ||
324 | 1795 | |||
325 | 1796 | self->priv->output_stream_box = gtk_grid_new (); | ||
326 | 1797 | gtk_widget_set_halign (self->priv->output_stream_box, GTK_ALIGN_CENTER); | ||
327 | 1798 | gtk_grid_set_column_spacing (GTK_GRID (self->priv->output_stream_box), 6); | ||
328 | 1799 | gtk_grid_set_row_spacing (GTK_GRID (self->priv->output_stream_box), 6); | ||
329 | 1800 | gtk_grid_attach (GTK_GRID (self->priv->output_stream_box), | ||
330 | 1801 | label, 0, 0, 1, 1); | ||
331 | 1802 | gtk_grid_attach (GTK_GRID (self->priv->output_stream_box), | ||
332 | 1803 | self->priv->output_bar, 1, 0, 2, 1); | ||
333 | 1804 | gtk_grid_attach (GTK_GRID (self->priv->output_stream_box), | ||
334 | 1805 | mute_check, 1, 1, 1, 1); | ||
335 | 1806 | gtk_grid_attach (GTK_GRID (self->priv->output_stream_box), | ||
336 | 1807 | allow_amplify_check, 2, 1, 1, 1); | ||
337 | 1808 | |||
338 | 1757 | gtk_box_pack_start (GTK_BOX (main_vbox), | 1809 | gtk_box_pack_start (GTK_BOX (main_vbox), |
341 | 1758 | alignment, | 1810 | self->priv->output_stream_box, |
342 | 1759 | FALSE, FALSE, 0); | 1811 | FALSE, TRUE, 0); |
343 | 1760 | 1812 | ||
344 | 1761 | self->priv->notebook = gtk_notebook_new (); | 1813 | self->priv->notebook = gtk_notebook_new (); |
345 | 1762 | gtk_box_pack_start (GTK_BOX (main_vbox), | 1814 | gtk_box_pack_start (GTK_BOX (main_vbox), |
346 | @@ -1810,8 +1862,8 @@ | |||
347 | 1810 | 1862 | ||
348 | 1811 | gtk_box_pack_start (GTK_BOX (self->priv->output_box), | 1863 | gtk_box_pack_start (GTK_BOX (self->priv->output_box), |
349 | 1812 | settings_box, | 1864 | settings_box, |
352 | 1813 | FALSE, | 1865 | TRUE, |
353 | 1814 | FALSE, | 1866 | TRUE, |
354 | 1815 | 0); | 1867 | 0); |
355 | 1816 | gtk_box_pack_start (GTK_BOX (settings_box), | 1868 | gtk_box_pack_start (GTK_BOX (settings_box), |
356 | 1817 | self->priv->selected_output_label, | 1869 | self->priv->selected_output_label, |
357 | @@ -1870,10 +1922,6 @@ | |||
358 | 1870 | sbox, | 1922 | sbox, |
359 | 1871 | FALSE, FALSE, 0); | 1923 | FALSE, FALSE, 0); |
360 | 1872 | 1924 | ||
361 | 1873 | label = gtk_label_new (_("Test:")); | ||
362 | 1874 | gtk_box_pack_start (GTK_BOX (sbox), | ||
363 | 1875 | label, | ||
364 | 1876 | FALSE, FALSE, 0); | ||
365 | 1877 | if (self->priv->size_group != NULL) | 1925 | if (self->priv->size_group != NULL) |
366 | 1878 | gtk_size_group_add_widget (self->priv->size_group, sbox); | 1926 | gtk_size_group_add_widget (self->priv->size_group, sbox); |
367 | 1879 | 1927 | ||
368 | @@ -1883,7 +1931,7 @@ | |||
369 | 1883 | * Here 8 works fine, not sure why. */ | 1931 | * Here 8 works fine, not sure why. */ |
370 | 1884 | gtk_box_pack_start (GTK_BOX (test_sound_box), | 1932 | gtk_box_pack_start (GTK_BOX (test_sound_box), |
371 | 1885 | self->priv->test_output_button, | 1933 | self->priv->test_output_button, |
373 | 1886 | TRUE, TRUE, 8); | 1934 | FALSE, FALSE, 8); |
374 | 1887 | 1935 | ||
375 | 1888 | /* Is this needed */ | 1936 | /* Is this needed */ |
376 | 1889 | if (self->priv->size_group != NULL) | 1937 | if (self->priv->size_group != NULL) |
377 | @@ -1936,8 +1984,8 @@ | |||
378 | 1936 | self->priv->input_settings_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); | 1984 | self->priv->input_settings_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); |
379 | 1937 | gtk_box_pack_start (GTK_BOX (self->priv->input_box), | 1985 | gtk_box_pack_start (GTK_BOX (self->priv->input_box), |
380 | 1938 | self->priv->input_settings_box, | 1986 | self->priv->input_settings_box, |
383 | 1939 | FALSE, | 1987 | TRUE, |
384 | 1940 | FALSE, | 1988 | TRUE, |
385 | 1941 | 0); | 1989 | 0); |
386 | 1942 | gtk_box_pack_start (GTK_BOX (self->priv->input_settings_box), | 1990 | gtk_box_pack_start (GTK_BOX (self->priv->input_settings_box), |
387 | 1943 | self->priv->selected_input_label, | 1991 | self->priv->selected_input_label, |
388 | @@ -2030,23 +2078,6 @@ | |||
389 | 2030 | self->priv->no_apps_label, | 2078 | self->priv->no_apps_label, |
390 | 2031 | TRUE, TRUE, 0); | 2079 | TRUE, TRUE, 0); |
391 | 2032 | 2080 | ||
392 | 2033 | self->priv->output_stream_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); | ||
393 | 2034 | alignment = gtk_alignment_new (0, 0, 1, 1); | ||
394 | 2035 | gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 12, 0, 0, 0); | ||
395 | 2036 | gtk_container_add (GTK_CONTAINER (alignment), self->priv->output_stream_box); | ||
396 | 2037 | gtk_box_pack_start (GTK_BOX (main_vbox), | ||
397 | 2038 | alignment, | ||
398 | 2039 | FALSE, FALSE, 0); | ||
399 | 2040 | // Output volume | ||
400 | 2041 | self->priv->output_bar = create_bar (self, FALSE, TRUE); | ||
401 | 2042 | gvc_channel_bar_set_name (GVC_CHANNEL_BAR (self->priv->output_bar), | ||
402 | 2043 | _("_Output volume:")); | ||
403 | 2044 | gtk_widget_set_sensitive (self->priv->output_bar, FALSE); | ||
404 | 2045 | gtk_widget_set_size_request (self->priv->output_bar, 460, -1); | ||
405 | 2046 | |||
406 | 2047 | gtk_box_pack_start (GTK_BOX (self->priv->output_stream_box), | ||
407 | 2048 | self->priv->output_bar, TRUE, FALSE, 12); | ||
408 | 2049 | |||
409 | 2050 | gtk_widget_show_all (main_vbox); | 2081 | gtk_widget_show_all (main_vbox); |
410 | 2051 | 2082 | ||
411 | 2052 | g_signal_connect (self->priv->mixer_control, | 2083 | g_signal_connect (self->priv->mixer_control, |
412 | @@ -2149,6 +2180,7 @@ | |||
413 | 2149 | dialog->priv = GVC_MIXER_DIALOG_GET_PRIVATE (dialog); | 2180 | dialog->priv = GVC_MIXER_DIALOG_GET_PRIVATE (dialog); |
414 | 2150 | dialog->priv->bars = g_hash_table_new (NULL, NULL); | 2181 | dialog->priv->bars = g_hash_table_new (NULL, NULL); |
415 | 2151 | dialog->priv->size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); | 2182 | dialog->priv->size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); |
416 | 2183 | dialog->priv->indicator_settings = g_settings_new ("com.canonical.indicator.sound"); | ||
417 | 2152 | } | 2184 | } |
418 | 2153 | 2185 | ||
419 | 2154 | static void | 2186 | static void |
Thanks, looks good to me! Could you change debian/control to update the libgtk-3-dev build depends to 3.10, to match configure?