Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
torikulhabib committed Jul 26, 2019
1 parent 4d70b59 commit 8bb8abb
Show file tree
Hide file tree
Showing 6 changed files with 140 additions and 15 deletions.
1 change: 1 addition & 0 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ code_files = files(
'src/Widgets/Toast.vala',
'src/Widgets/LightDark.vala',
'src/Widgets/Notify.vala',
'src/Widgets/AplicaitonView.vala',
'src/Widgets/StreamPc.vala',
'src/Objects/Converter.vala',
'src/Objects/Remover.vala',
Expand Down
4 changes: 2 additions & 2 deletions po/id.po
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,8 @@ msgid "Where you want to save the audio file"
msgstr "Dimana kamu ingin menyimpan file suara"

#: src/Window.vala:329
msgid "Choose a video file…"
msgstr "Pilih sebuah berkas vidio"
msgid "Video file…"
msgstr "Berkas vidio"

#: src/Window.vala:337
msgid "Select Video"
Expand Down
4 changes: 2 additions & 2 deletions po/nl.po
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,8 @@ msgid "Where you want to save the audio file"
msgstr "Waar wil je het audiobestand opslaan?"

#: src/Window.vala:329
msgid "Choose a video file…"
msgstr "Kies een videobestand…"
msgid "Video file…"
msgstr "Videobestand…"

#: src/Window.vala:337
msgid "Select Video"
Expand Down
20 changes: 10 additions & 10 deletions src/Objects/Converter.vala
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
using Gtk;
using Mindi.Configs;
using GLib;
using Granite;

namespace Mindi {
public class ObjectConverter : Grid {
static ObjectConverter _instance = null;
Expand Down Expand Up @@ -440,16 +440,16 @@ namespace Mindi {
}

private void mindi_desktop (int64 badge, double progress) {
Granite.Services.Application.set_progress.begin (progress, (obj, res) => {
Mindi.Services.Application.set_progress.begin (progress, (obj, res) => {
try {
Granite.Services.Application.set_progress.end (res);
Mindi.Services.Application.set_progress.end (res);
} catch (GLib.Error e) {
critical (e.message);
}
});
Granite.Services.Application.set_badge.begin (badge, (obj, res) => {
Mindi.Services.Application.set_badge.begin (badge, (obj, res) => {
try {
Granite.Services.Application.set_badge.end (res);
Mindi.Services.Application.set_badge.end (res);
} catch (GLib.Error e) {
critical (e.message);
}
Expand All @@ -461,17 +461,17 @@ namespace Mindi {
}

public void mindi_desktop_visible () {
timer = Timeout.add (400, () => {
Granite.Services.Application.set_progress_visible.begin (!is_active, (obj, res) => {
timer = Timeout.add (100, () => {
Mindi.Services.Application.set_progress_visible.begin (!is_active, (obj, res) => {
try {
Granite.Services.Application.set_progress_visible.end (res);
Mindi.Services.Application.set_progress_visible.end (res);
} catch (GLib.Error e) {
critical (e.message);
}
});
Granite.Services.Application.set_badge_visible.begin (!is_active, (obj, res) => {
Mindi.Services.Application.set_badge_visible.begin (!is_active, (obj, res) => {
try {
Granite.Services.Application.set_badge_visible.end (res);
Mindi.Services.Application.set_badge_visible.end (res);
} catch (GLib.Error e) {
critical (e.message);
}
Expand Down
124 changes: 124 additions & 0 deletions src/Widgets/AplicaitonView.vala
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
/*
* Copyright 2019 elementary, Inc. (https://elementary.io)
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*/

[CCode (gir_namespace = "GraniteServices", gir_version = "1.0")]
namespace Mindi.Services {
/**
* Utilities for Applications
*/
namespace Application {
[DBus (name = "com.canonical.Unity.LauncherEntry")]
private class UnityLauncherEntry : GLib.Object {
private static UnityLauncherEntry instance;
internal static async unowned UnityLauncherEntry get_instance () throws GLib.Error {
lock (instance) {
if (instance != null)
return instance;

weak GLib.Application app = GLib.Application.get_default ();
if (app == null) {
throw new GLib.IOError.FAILED ("No GApplication has been defined");
}

if (app.application_id == null) {
throw new GLib.IOError.FAILED ("The GApplication has no application-id defined");
}

var local_instance = new UnityLauncherEntry ();
local_instance.app_uri = "application://%s.desktop".printf (app.application_id);
var object_path = new GLib.ObjectPath ("/com/canonical/unity/launcherentry/%u".printf (local_instance.app_uri.hash ()));
try {
var session_connection = yield GLib.Bus.@get (GLib.BusType.SESSION, null);
session_connection.register_object (object_path, local_instance);
instance = local_instance;
} catch (GLib.Error e) {
throw e;
}
}

return instance;
}

construct {
properties = new GLib.HashTable<string,GLib.Variant> (str_hash, str_equal);
properties["urgent"] = new GLib.Variant.boolean (false);
properties["count"] = new GLib.Variant.int64 (0);
properties["count-visible"] = new GLib.Variant.boolean (false);
properties["progress"] = new GLib.Variant.double (0.0);
properties["progress-visible"] = new GLib.Variant.boolean (false);
}

private string app_uri;
private GLib.HashTable<string,GLib.Variant> properties;

internal void set_app_property (string property, GLib.Variant var) {
var updated_properties = new GLib.HashTable<string,GLib.Variant> (str_hash, str_equal);
updated_properties[property] = var;
properties[property] = var;
update (app_uri, updated_properties);
}

public signal void update (string app_uri, GLib.HashTable<string,GLib.Variant> properties);

public GLib.HashTable<string,Variant> query () throws GLib.Error {
return properties;
}
}

/**
* Set the badge count, usually visible with the dock in the desktop. There is no guarantee
* that the target environment supports it in any way.
* For it to be visible, one has to make sure to call set_badge_visible().
*/
public static async bool set_badge (int64 count) throws GLib.Error {
unowned UnityLauncherEntry instance = yield UnityLauncherEntry.get_instance ();
instance.set_app_property ("count", new GLib.Variant.int64 (count));
return false;
}

/**
* Set the badge visibility.
*/
public static async bool set_badge_visible (bool visible) throws GLib.Error {
unowned UnityLauncherEntry instance = yield UnityLauncherEntry.get_instance ();
instance.set_app_property ("count-visible", new GLib.Variant.boolean (visible));
return false;
}

/**
* Set the progress of the application, usually visible with the dock in the desktop.
* There is no guarantee that the target environment supports it in any way.
* For it to be visible, one has to make sure to call set_progress_visible().
*/
public static async bool set_progress (double progress) throws GLib.Error {
unowned UnityLauncherEntry instance = yield UnityLauncherEntry.get_instance ();
instance.set_app_property ("progress", new GLib.Variant.double (progress));
return false;
}

/**
* Set the progress visibility.
*/
public static async bool set_progress_visible (bool visible) throws GLib.Error {
unowned UnityLauncherEntry instance = yield UnityLauncherEntry.get_instance ();
instance.set_app_property ("progress-visible", new GLib.Variant.boolean (visible));
return false;
}
}
}
2 changes: 1 addition & 1 deletion src/Window.vala
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ namespace Mindi {
video_icon = new ThemedIcon ("applications-multimedia");
video_container.attach (video_logo, 0, 1, 1, 1);

video_name = new Gtk.Label ("<i>%s</i>".printf (_("Choose a video file…")));
video_name = new Gtk.Label ("<i>%s</i>".printf (_("Video file…")));
video_name.max_width_chars = 15;
video_name.use_markup = true;
video_name.ellipsize = Pango.EllipsizeMode.END;
Expand Down

0 comments on commit 8bb8abb

Please sign in to comment.