add pin button for webapps
This commit is contained in:
parent
a1157abcef
commit
eac57a1711
3 changed files with 14 additions and 8 deletions
|
@ -50,7 +50,6 @@ namespace Webpin {
|
||||||
public string name { get; private set; }
|
public string name { get; private set; }
|
||||||
public string url { get; private set; }
|
public string url { get; private set; }
|
||||||
public string icon { get; private set; }
|
public string icon { get; private set; }
|
||||||
public bool stay_open { get; private set; }
|
|
||||||
public bool hide_on_close {
|
public bool hide_on_close {
|
||||||
get {
|
get {
|
||||||
this.file = new GLib.KeyFile();
|
this.file = new GLib.KeyFile();
|
||||||
|
@ -68,7 +67,6 @@ namespace Webpin {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.url = url.replace ("%", "%%");
|
this.url = url.replace ("%", "%%");
|
||||||
this.icon = icon;
|
this.icon = icon;
|
||||||
this.stay_open = stay_open;
|
|
||||||
|
|
||||||
file = new GLib.KeyFile();
|
file = new GLib.KeyFile();
|
||||||
try {
|
try {
|
||||||
|
@ -98,7 +96,6 @@ namespace Webpin {
|
||||||
this.icon = info.get_icon ().to_string ();
|
this.icon = info.get_icon ().to_string ();
|
||||||
try {
|
try {
|
||||||
this.url = file.get_string ("Desktop Entry", "Exec").substring (31);
|
this.url = file.get_string ("Desktop Entry", "Exec").substring (31);
|
||||||
this.stay_open = file.get_string ("Desktop Entry", "WebpinStayOpen") == "true";
|
|
||||||
} catch (Error e) {
|
} catch (Error e) {
|
||||||
warning (e.message);
|
warning (e.message);
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@ namespace Webpin {
|
||||||
|
|
||||||
private bool is_full_screen = false;
|
private bool is_full_screen = false;
|
||||||
|
|
||||||
private string style_str = """@define-color titlebar_color @titlebar_color;""";
|
private string style_str = """@define-color titlebar_color @titlebar_color;""";
|
||||||
|
|
||||||
//widgets
|
//widgets
|
||||||
private WebApp web_app;
|
private WebApp web_app;
|
||||||
|
@ -55,6 +55,15 @@ namespace Webpin {
|
||||||
spinner.set_size_request (16, 16);
|
spinner.set_size_request (16, 16);
|
||||||
headerbar.pack_end (spinner);
|
headerbar.pack_end (spinner);
|
||||||
|
|
||||||
|
var stay_open = new Gtk.ToggleButton ();
|
||||||
|
stay_open.active = desktop_file.hide_on_close;
|
||||||
|
stay_open.toggled.connect (() => {
|
||||||
|
desktop_file.edit_propertie ("WebpinStayOpen", stay_open.active.to_string ());
|
||||||
|
desktop_file.save_to_file ();
|
||||||
|
});
|
||||||
|
stay_open.image = new Gtk.Image.from_icon_name ("view-pin-symbolic", Gtk.IconSize.MENU);
|
||||||
|
headerbar.pack_start (stay_open);
|
||||||
|
|
||||||
//style
|
//style
|
||||||
if (web_app.ui_color != "none") {
|
if (web_app.ui_color != "none") {
|
||||||
try {
|
try {
|
||||||
|
@ -63,7 +72,7 @@ namespace Webpin {
|
||||||
var style_provider = new Gtk.CssProvider ();
|
var style_provider = new Gtk.CssProvider ();
|
||||||
style_provider.load_from_data (style_cp, -1);
|
style_provider.load_from_data (style_cp, -1);
|
||||||
headerbar.get_style_context ().add_provider (style_provider, -1);
|
headerbar.get_style_context ().add_provider (style_provider, -1);
|
||||||
Gtk.Settings.get_default ().set ("gtk-application-prefer-dark-theme", should_use_dark_theme (web_app.ui_color));
|
Gtk.Settings.get_default ().gtk_application_prefer_dark_theme = should_use_dark_theme (web_app.ui_color);
|
||||||
} catch (GLib.Error err) {
|
} catch (GLib.Error err) {
|
||||||
warning("Loading style failed");
|
warning("Loading style failed");
|
||||||
}
|
}
|
||||||
|
@ -76,7 +85,7 @@ namespace Webpin {
|
||||||
var style_provider = new Gtk.CssProvider ();
|
var style_provider = new Gtk.CssProvider ();
|
||||||
style_provider.load_from_data (style_cp, -1);
|
style_provider.load_from_data (style_cp, -1);
|
||||||
headerbar.get_style_context ().add_provider (style_provider, -1);
|
headerbar.get_style_context ().add_provider (style_provider, -1);
|
||||||
Gtk.Settings.get_default ().set ("gtk-application-prefer-dark-theme", should_use_dark_theme (color));
|
Gtk.Settings.get_default ().gtk_application_prefer_dark_theme = should_use_dark_theme (color);
|
||||||
} catch (GLib.Error err) {
|
} catch (GLib.Error err) {
|
||||||
warning("Loading style failed");
|
warning("Loading style failed");
|
||||||
}
|
}
|
||||||
|
@ -106,7 +115,7 @@ namespace Webpin {
|
||||||
this.delete_event.connect (() => {
|
this.delete_event.connect (() => {
|
||||||
update_window_state(this.get_allocated_width (), this.get_allocated_height (), this.is_maximized);
|
update_window_state(this.get_allocated_width (), this.get_allocated_height (), this.is_maximized);
|
||||||
if (desktop_file.hide_on_close) {
|
if (desktop_file.hide_on_close) {
|
||||||
this.hide ();
|
this.hide_on_delete ();
|
||||||
}
|
}
|
||||||
return desktop_file.hide_on_close;
|
return desktop_file.hide_on_close;
|
||||||
});
|
});
|
||||||
|
|
|
@ -326,7 +326,7 @@ namespace Webpin {
|
||||||
app_name_entry.set_sensitive (false);
|
app_name_entry.set_sensitive (false);
|
||||||
app_url_entry.text = desktop_file.url.replace ("%%", "%");
|
app_url_entry.text = desktop_file.url.replace ("%%", "%");
|
||||||
icon_name_entry.text = desktop_file.icon;
|
icon_name_entry.text = desktop_file.icon;
|
||||||
stay_open_when_closed.active = desktop_file.stay_open;
|
stay_open_when_closed.active = desktop_file.hide_on_close;
|
||||||
update_app_icon ();
|
update_app_icon ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue