Remove Unity-specific workarounds. Bug 738899.

This commit is contained in:
Michael James Gratton 2016-05-20 18:04:59 +10:00
parent 19dde8912b
commit 7b37e264c9
6 changed files with 24 additions and 79 deletions

View file

@ -78,28 +78,21 @@ public class GearyApplication : Gtk.Application {
}
public Configuration config { get; private set; }
/**
* Indicates application is running under Ubuntu's Unity shell.
*/
public bool is_running_unity { get; private set; }
private static GearyApplication _instance = null;
private string bin;
private File exec_dir;
private bool exiting_fired = false;
private int exitcode = 0;
private bool is_destroyed = false;
public GearyApplication() {
Object(application_id: APP_ID);
_instance = this;
is_running_unity = Geary.String.stri_equal(Environment.get_variable("XDG_CURRENT_DESKTOP"), "Unity");
}
// Application.run() calls this as an entry point.
public override bool local_command_line(ref unowned string[] args, out int exit_status) {
bin = args[0];

View file

@ -23,12 +23,10 @@ public class Configuration {
public const string STARTUP_NOTIFICATIONS_KEY = "startup-notifications";
public const string ASK_OPEN_ATTACHMENT_KEY = "ask-open-attachment";
public const string COMPOSE_AS_HTML_KEY = "compose-as-html";
public Settings settings { get; private set; }
public Settings gnome_interface;
private Settings? indicator_datetime;
public int window_width {
get { return settings.get_int(WINDOW_WIDTH_KEY); }
}
@ -93,20 +91,8 @@ public class Configuration {
}
private const string CLOCK_FORMAT_KEY = "clock-format";
private const string TIME_FORMAT_KEY = "time-format";
public Date.ClockFormat clock_format {
get {
if (GearyApplication.instance.is_running_unity && indicator_datetime != null) {
string format = indicator_datetime.get_string(TIME_FORMAT_KEY);
if (format == "12-hour")
return Date.ClockFormat.TWELVE_HOURS;
else if (format == "24-hour")
return Date.ClockFormat.TWENTY_FOUR_HOURS;
else {
// locale-default or custom
return Date.ClockFormat.LOCALE_DEFAULT;
}
}
if (gnome_interface.get_string(CLOCK_FORMAT_KEY) == "12h")
return Date.ClockFormat.TWELVE_HOURS;
else
@ -123,20 +109,14 @@ public class Configuration {
get { return settings.get_boolean(COMPOSE_AS_HTML_KEY); }
set { set_boolean(COMPOSE_AS_HTML_KEY, value); }
}
// Creates a configuration object.
public Configuration(string schema_id) {
// Start GSettings.
settings = new Settings(schema_id);
gnome_interface = new Settings("org.gnome.desktop.interface");
foreach(unowned string schema in GLib.Settings.list_schemas()) {
if (schema == "com.canonical.indicator.datetime") {
indicator_datetime = new Settings("com.canonical.indicator.datetime");
break;
}
}
}
// is_installed: set to true if installed, else false.
// schema_dir: MUST be set if not installed. Directory where GSettings schema is located.
public static void init(bool is_installed, string? schema_dir = null) {

View file

@ -44,11 +44,9 @@ public class MainToolbar : Gtk.Box {
target_value = left_pane_width + 6;
return true;
});
if (!GearyApplication.instance.is_running_unity) {
this.bind_property("account", folder_header, "title", BindingFlags.SYNC_CREATE);
this.bind_property("folder", folder_header, "subtitle", BindingFlags.SYNC_CREATE);
}
this.bind_property("account", folder_header, "title", BindingFlags.SYNC_CREATE);
this.bind_property("folder", folder_header, "subtitle", BindingFlags.SYNC_CREATE);
this.bind_property("show-close-button-left", folder_header, "show-close-button",
BindingFlags.SYNC_CREATE);
this.bind_property("show-close-button-right", conversation_header, "show-close-button",

View file

@ -81,23 +81,9 @@ public class MainWindow : Gtk.ApplicationWindow {
main_toolbar = new MainToolbar();
main_toolbar.bind_property("search-open", search_bar, "search-mode-enabled",
BindingFlags.SYNC_CREATE | BindingFlags.BIDIRECTIONAL);
if (!GearyApplication.instance.is_running_unity) {
main_toolbar.show_close_button = true;
set_titlebar(main_toolbar);
title = GearyApplication.NAME;
} else {
BindingTransformFunc title_func = (binding, source, ref target) => {
string folder = current_folder != null ? current_folder.get_display_name() + " " : "";
string account = main_toolbar.account != null ? "(%s)".printf(main_toolbar.account) : "";
target = "%s%s - %s".printf(folder, account, GearyApplication.NAME);
return true;
};
bind_property("current-folder", this, "title", BindingFlags.SYNC_CREATE, title_func);
main_toolbar.bind_property("account", this, "title", BindingFlags.SYNC_CREATE, title_func);
}
main_toolbar.show_close_button = true;
set_titlebar(main_toolbar);
set_styling();
create_layout();
on_change_orientation();
@ -253,10 +239,7 @@ public class MainWindow : Gtk.ApplicationWindow {
// Message list left of message viewer.
conversations_paned.pack1(search_bar_box, false, false);
conversations_paned.pack2(viewer_frame, true, true);
if (GearyApplication.instance.is_running_unity)
main_layout.pack_start(main_toolbar, false, true, 0);
main_layout.pack_end(conversations_paned, true, true, 0);
add(main_layout);

View file

@ -54,11 +54,7 @@ public interface PillBar : Gtk.Container {
image.set_pixel_size(16);
b.image = image;
}
// Unity buttons are a bit tight
if (GearyApplication.instance.is_running_unity && b.image != null)
b.image.margin = b.image.margin + 4;
b.always_show_image = true;
if (!show_label)

View file

@ -13,18 +13,13 @@ public class ComposerWindow : Gtk.Window, ComposerContainer {
Object(type: Gtk.WindowType.TOPLEVEL);
add(composer);
if (!GearyApplication.instance.is_running_unity) {
composer.header.show_close_button = true;
composer.free_header();
set_titlebar(composer.header);
composer.bind_property("window-title", composer.header, "title",
BindingFlags.SYNC_CREATE);
} else {
composer.embed_header();
composer.bind_property("window-title", this, "title", BindingFlags.SYNC_CREATE);
}
composer.header.show_close_button = true;
composer.free_header();
set_titlebar(composer.header);
composer.bind_property("window-title", composer.header, "title",
BindingFlags.SYNC_CREATE);
add_accel_group(composer.ui.get_accel_group());
show();
set_position(Gtk.WindowPosition.CENTER);