homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsmenubasestate.cpp
changeset 35 f9ce957a272c
child 46 23b5d6a29cce
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsmenubasestate.cpp	Fri Mar 19 09:27:44 2010 +0200
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#include <QDebug>
+#include <QVariantList>
+
+#include <hsmenuservice.h>
+#include <hsshortcutservice.h>
+#include <hscontentservice.h>
+
+#include "hsmenubasestate.h"
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+HsMenuBaseState::HsMenuBaseState(const QString &objectName, QState *parent) :
+    QState(parent)
+{
+    construct(objectName);
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+
+HsMenuBaseState::~HsMenuBaseState()
+{
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void HsMenuBaseState::construct(const QString &objectName)
+{
+    if (this->parent()) {
+        setObjectName(this->parent()->objectName() + "/" + objectName);
+    } else {
+        setObjectName(objectName);
+    }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void HsMenuBaseState::requestService(const QVariant &service)
+{
+    requestServices(QList<QVariant> () << service);
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void HsMenuBaseState::requestServices(const QVariantList &services)
+{
+    // if value is not list, it returns empty list
+    QVariantList value = property(HS_SERVICES_REGISTRATION_KEY).toList();
+    // apppend to list
+    value.append(services);
+    setProperty(HS_SERVICES_REGISTRATION_KEY, value);
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+HsShortcutService *HsMenuBaseState::shortcutService() const
+{
+    return propertyWithChecking(SHORTCUT_SERVICE_KEY).value<
+           HsShortcutService *> ();
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+HsContentService *HsMenuBaseState::contentService() const
+{
+    return propertyWithChecking(CONTENT_SERVICE_KEY).value<
+           HsContentService *> ();
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+QVariant HsMenuBaseState::propertyWithChecking(const char *propertyName) const
+{
+    QVariant val = property(propertyName);
+    if (!val.isValid()) {
+        qWarning() << "Missing value for property: " << propertyName;
+    }
+    return val;
+}