X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=launchable-item.cc;h=42bebfc36152e145db1cbd4091e89c7785a576a6;hb=1a2a2d8b686466ed1195684f6e1d62ce0b858eb9;hp=71aab95abe9fabd26e0ebb89fdb582a8ed0ad63c;hpb=83a08deb46e9be3da3c83d130ff7698df0657f6f;p=simple-launcher diff --git a/launchable-item.cc b/launchable-item.cc index 71aab95..42bebfc 100644 --- a/launchable-item.cc +++ b/launchable-item.cc @@ -1,6 +1,6 @@ // This file is a part of Simple Launcher // -// Copyright (C) 2006, Mikhail Sobolev +// Copyright (C) 2006, 2007, Mikhail Sobolev // // Simple Launcher is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License version 2 as published by @@ -16,18 +16,17 @@ // Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "launchable-item.h" +#include "utils.h" -LaunchableItem::LaunchableItem(LauncherItem *item, bool enabled): myItem(item), myEnabled(enabled) { -} +bool LaunchableItem::activate(osso_context_t *context) { + bool result = false; -LaunchableItem::~LaunchableItem() { - if (myItem != 0) { - delete myItem; + if (getService().empty() || !(result = osso_rpc_run_with_defaults(context, getService().c_str(), "top_application", NULL, DBUS_TYPE_INVALID) == OSSO_OK)) { + runApplication(getExec()); + return true; + } else { + return result; } } -bool LaunchableItem::activate(osso_context_t *context) { - return osso_application_top(context, myItem->getService().c_str(), 0) == OSSO_OK; -} - // vim:ts=2:sw=2:et