summaryrefslogtreecommitdiff
path: root/src/data_imports/DataImportsUI.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/data_imports/DataImportsUI.vala')
-rw-r--r--src/data_imports/DataImportsUI.vala49
1 files changed, 44 insertions, 5 deletions
diff --git a/src/data_imports/DataImportsUI.vala b/src/data_imports/DataImportsUI.vala
index 7b975a7..a64f751 100644
--- a/src/data_imports/DataImportsUI.vala
+++ b/src/data_imports/DataImportsUI.vala
@@ -1,4 +1,4 @@
-/* Copyright 2011-2015 Yorba Foundation
+/* Copyright 2016 Software Freedom Conservancy Inc.
*
* This software is licensed under the GNU Lesser General Public License
* (version 2.1 or later). See the COPYING file in this distribution.
@@ -208,13 +208,17 @@ public class DataImportsDialog : Gtk.Dialog {
private Spit.DataImports.ConcreteDataImportsHost host;
protected DataImportsDialog() {
- Object(use_header_bar: 1);
- ((Gtk.HeaderBar) get_header_bar()).set_show_close_button(false);
+ bool use_header;
+ Gtk.Settings.get_default ().get ("gtk-dialogs-use-header", out use_header);
+ Object(use_header_bar: use_header ? 1 : 0);
+ if (use_header)
+ ((Gtk.HeaderBar) get_header_bar()).set_show_close_button(false);
resizable = false;
delete_event.connect(on_window_close);
string title = _("Import From Application");
+ string label = _("Import media _from:");
set_title(title);
@@ -245,6 +249,37 @@ public class DataImportsDialog : Gtk.Dialog {
service_selector_box.set_active(0);
service_selector_box.changed.connect(on_service_changed);
+
+ if (!use_header)
+ {
+ var service_selector_box_label = new Gtk.Label.with_mnemonic(label);
+ service_selector_box_label.set_mnemonic_widget(service_selector_box);
+ service_selector_box_label.set_alignment(0.0f, 0.5f);
+
+ /* the wrapper is not an extraneous widget -- it's necessary to prevent the service
+ selection box from growing and shrinking whenever its parent's size changes.
+ When wrapped inside a Gtk.Alignment, the Alignment grows and shrinks instead of
+ the service selection box. */
+ Gtk.Alignment service_selector_box_wrapper = new Gtk.Alignment(1.0f, 0.5f, 0.0f, 0.0f);
+ service_selector_box_wrapper.add(service_selector_box);
+
+ Gtk.Box service_selector_layouter = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 8);
+ service_selector_layouter.set_border_width(12);
+ service_selector_layouter.add(service_selector_box_label);
+ service_selector_layouter.pack_start(service_selector_box_wrapper, true, true, 0);
+
+ /* 'service area' is the selector assembly plus the horizontal rule dividing it from the
+ rest of the dialog */
+ Gtk.Box service_area_layouter = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
+ service_area_layouter.pack_start(service_selector_layouter, true, true, 0);
+ Gtk.Separator service_central_separator = new Gtk.Separator(Gtk.Orientation.HORIZONTAL);
+ service_area_layouter.add(service_central_separator);
+
+ Gtk.Alignment service_area_wrapper = new Gtk.Alignment(0.0f, 0.0f, 1.0f, 0.0f);
+ service_area_wrapper.add(service_area_layouter);
+
+ ((Gtk.Box) get_content_area()).pack_start(service_area_wrapper, false, false, 0);
+ }
}
// Intall the central area in all cases
@@ -255,8 +290,12 @@ public class DataImportsDialog : Gtk.Dialog {
close_cancel_button.set_can_default(true);
close_cancel_button.clicked.connect(on_close_cancel_clicked);
- ((Gtk.HeaderBar) get_header_bar()).pack_start(close_cancel_button);
- ((Gtk.HeaderBar) get_header_bar()).pack_end(service_selector_box);
+ if (use_header) {
+ ((Gtk.HeaderBar) get_header_bar()).pack_start(close_cancel_button);
+ ((Gtk.HeaderBar) get_header_bar()).pack_end(service_selector_box);
+ }
+ else
+ ((Gtk.Box) get_action_area()).add(close_cancel_button);
set_standard_window_mode();