Skip to content

Commit

Permalink
Check master service availability in Http Remote control
Browse files Browse the repository at this point in the history
Issue: #404

Signed-off-by: Jiří Janoušek <[email protected]>
  • Loading branch information
jiri-janousek committed Feb 3, 2018
1 parent deeb4f4 commit 0ce3982
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* Copyright 2018 Jiří Janoušek <[email protected]>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

public class Nuvola.RuntimeServiceNotAvailableReason : Gtk.InfoBar {
private unowned Drtgtk.Application app;

public RuntimeServiceNotAvailableReason(Drtgtk.Application app, string? text=null) {
GLib.Object(message_type: Gtk.MessageType.WARNING, show_close_button: false);
this.app = app;
Gtk.Label label = Drtgtk.Labels.markup(
text ?? "Some features have been disabled because Nuvola Runtime Service is not available.");
label.hexpand = true;
get_content_area().add(label);
label.show();
add_button("Install Service", 1);
vexpand = false;
valign = Gtk.Align.START;
}

public override void response(int response_id) {
if (response_id == 1) {
app.show_uri("https://nuvola.tiliado.eu/nuvola/");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public class Component: Nuvola.Component {
this.bindings = bindings;
this.app = app;
this.ipc_bus = ipc_bus;
this.available = ipc_bus.master != null;
config.bind_object_property("component.httpremotecontrol.", this, "enabled").set_default(false).update_property();
#else
available = false;
Expand All @@ -50,6 +51,13 @@ public class Component: Nuvola.Component {
return new Settings(app, ipc_bus);
}

public override Gtk.Widget? get_unavailability_widget() {
if (ipc_bus.master == null) {
return new RuntimeServiceNotAvailableReason(app);
}
return null;
}

protected override bool activate() {
register(true);
return true;
Expand Down

0 comments on commit 0ce3982

Please sign in to comment.