diff options
author | Charles Kerr <charles.kerr@canonical.com> | 2014-03-09 22:32:19 -0500 |
---|---|---|
committer | Charles Kerr <charles.kerr@canonical.com> | 2014-03-09 22:32:19 -0500 |
commit | 379aeeed3dc02c1088f2a50f1ec3ec880d7d4b76 (patch) | |
tree | 39dd136cd3f54ee903ba757c461d9f0f502315ce /src/actions-live.cpp | |
parent | 462e8e6d8e46475ea3222056f65ff40823e9e0bf (diff) | |
parent | df650bec0f1c634ee773c150b451c3bdd8ed4e65 (diff) | |
download | ayatana-indicator-datetime-379aeeed3dc02c1088f2a50f1ec3ec880d7d4b76.tar.gz ayatana-indicator-datetime-379aeeed3dc02c1088f2a50f1ec3ec880d7d4b76.tar.bz2 ayatana-indicator-datetime-379aeeed3dc02c1088f2a50f1ec3ec880d7d4b76.zip |
Don't list an 'Add Event…' button if there's not a calendar app available
Diffstat (limited to 'src/actions-live.cpp')
-rw-r--r-- | src/actions-live.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/actions-live.cpp b/src/actions-live.cpp index ca9ca9b..f8ef4e8 100644 --- a/src/actions-live.cpp +++ b/src/actions-live.cpp @@ -74,6 +74,30 @@ void LiveActions::open_desktop_settings() g_free (path); } +bool LiveActions::can_open_planner() const +{ + bool inited = false; + bool have_evolution = false; + + if (G_UNLIKELY(!inited)) + { + inited = true; + + auto all = g_app_info_get_all_for_type ("text/calendar"); + for(auto l=all; !have_evolution && l!=nullptr; l=l->next) + { + auto app_info = static_cast<GAppInfo*>(l->data); + + if (!g_strcmp0("evolution", g_app_info_get_executable(app_info))) + have_evolution = true; + } + + g_list_free_full(all, (GDestroyNotify)g_object_unref); + } + + return have_evolution; +} + void LiveActions::open_planner() { execute_command("evolution -c calendar"); |