summaryrefslogtreecommitdiffstats
path: root/xbmc/events/AddonManagementEvent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/events/AddonManagementEvent.cpp')
-rw-r--r--xbmc/events/AddonManagementEvent.cpp74
1 files changed, 74 insertions, 0 deletions
diff --git a/xbmc/events/AddonManagementEvent.cpp b/xbmc/events/AddonManagementEvent.cpp
new file mode 100644
index 0000000..6d97915
--- /dev/null
+++ b/xbmc/events/AddonManagementEvent.cpp
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2015-2018 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#include "AddonManagementEvent.h"
+
+#include "addons/gui/GUIDialogAddonInfo.h"
+#include "filesystem/AddonsDirectory.h"
+#include "guilib/LocalizeStrings.h"
+#include "utils/URIUtils.h"
+
+CAddonManagementEvent::CAddonManagementEvent(const ADDON::AddonPtr& addon,
+ const CVariant& description)
+ : CAddonEvent(addon, description)
+{ }
+
+CAddonManagementEvent::CAddonManagementEvent(const ADDON::AddonPtr& addon,
+ const CVariant& description,
+ const CVariant& details)
+ : CAddonEvent(addon, description, details)
+{ }
+
+CAddonManagementEvent::CAddonManagementEvent(const ADDON::AddonPtr& addon,
+ const CVariant& description,
+ const CVariant& details,
+ const CVariant& executionLabel)
+ : CAddonEvent(addon, description, details, executionLabel)
+{ }
+
+CAddonManagementEvent::CAddonManagementEvent(const ADDON::AddonPtr& addon,
+ EventLevel level,
+ const CVariant& description)
+ : CAddonEvent(addon, level, description)
+{ }
+
+CAddonManagementEvent::CAddonManagementEvent(const ADDON::AddonPtr& addon,
+ EventLevel level,
+ const CVariant& description,
+ const CVariant& details)
+ : CAddonEvent(addon, level, description, details)
+{ }
+
+CAddonManagementEvent::CAddonManagementEvent(const ADDON::AddonPtr& addon,
+ EventLevel level,
+ const CVariant& description,
+ const CVariant& details,
+ const CVariant& executionLabel)
+ : CAddonEvent(addon, level, description, details, executionLabel)
+{ }
+
+std::string CAddonManagementEvent::GetExecutionLabel() const
+{
+ std::string executionLabel = CAddonEvent::GetExecutionLabel();
+ if (!executionLabel.empty())
+ return executionLabel;
+
+ return g_localizeStrings.Get(24139);
+}
+
+bool CAddonManagementEvent::Execute() const
+{
+ if (!CanExecute())
+ return false;
+
+ CFileItemPtr addonItem = XFILE::CAddonsDirectory::FileItemFromAddon(m_addon, URIUtils::AddFileToFolder("addons://", m_addon->ID()));
+ if (addonItem == nullptr)
+ return false;
+
+ return CGUIDialogAddonInfo::ShowForItem(addonItem);
+}