--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsallcollectionsstate.cpp Tue Aug 31 15:06:34 2010 +0300
@@ -0,0 +1,198 @@
+/*
+ * 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: Menu All Collections state.
+ *
+ */
+#include <QPointF>
+#include <QScopedPointer>
+#include <QStateMachine>
+#include <HbView>
+#include <HbListView>
+#include <HbMenu>
+#include <HbAction>
+#include <HbAbstractViewItem>
+
+#include <cadefs.h>
+
+#include "hsmenumodewrapper.h"
+#include "hsmenueventfactory.h"
+#include "hsmenumodewrapper.h"
+#include "hsmenuitemmodel.h"
+#include "hsallcollectionsstate.h"
+#include "hsaddappstocollectionstate.h"
+#include "hsmainwindow.h"
+
+/*!
+ \class HsAllCollectionsState
+ \ingroup group_hsmenustateplugin
+ \brief All Collections State.
+ Displays all collections present on the device.
+ \lib ?library
+ \see StateMachine
+ */
+
+/*!
+ Constructor.
+ \param menuViewBuilder Menu view builder.
+ \param menuMode reference to object representing menu mode (add mode on/add mode off).
+ \param parent Owner.
+ */
+HsAllCollectionsState::HsAllCollectionsState(
+ HsMenuViewBuilder &menuViewBuilder,
+ HsMenuModeWrapper &menuMode,
+ HsMainWindow &mainWindow,
+ QState *parent):
+ HsBaseViewState(mainWindow, menuMode, parent)
+{
+ initialize(menuViewBuilder, HsAllCollectionsContext);
+ construct();
+}
+
+/*!
+ Constructs contained objects.
+ */
+void HsAllCollectionsState::construct()
+{
+ HSMENUTEST_FUNC_ENTRY("HsAllCollectionsState::construct");
+ defineTransitions();
+ const QString parentName =
+ parent() != 0 ? parent()->objectName() : QString("");
+ setObjectName(parentName + "/allcollectionsstate");
+
+ connect(mBackKeyAction, SIGNAL(triggered()), SIGNAL(toAppLibraryState()));
+
+ mModel = HsMenuService::getAllCollectionsModel();
+ mMenuView->setModel(mModel);
+
+ HSMENUTEST_FUNC_EXIT("HsAllCollectionsState::construct");
+}
+
+/*!
+ Creates and installs menu options for the view.
+ */
+void HsAllCollectionsState::setMenuOptions()
+{
+ HSMENUTEST_FUNC_ENTRY("HsAllCollectionsState::setMenuOptions");
+
+ mViewOptions->clearActions();
+ mViewOptions->addAction(hbTrId("txt_applib_opt_task_switcher"),
+ static_cast<HsBaseViewState*>(this),
+ SLOT(openTaskSwitcher()));
+ mViewOptions->addAction(hbTrId("txt_applib_opt_new_collection"),
+ this, SLOT(createNewCollection()));
+
+ mViewOptions->addAction(hbTrId("txt_applib_opt_arrange"),
+ this, SLOT(createArrangeCollection()));
+
+ HSMENUTEST_FUNC_EXIT("HsAllCollectionsState::setMenuOptions");
+}
+
+/*!
+ Method seting context menu options.
+ \param item the context menu is requested for.
+ \param flags related to \a item.
+ */
+void HsAllCollectionsState::setContextMenuOptions(HbAbstractViewItem *item, EntryFlags flags)
+{
+ Q_UNUSED(item)
+
+ HbAction *openAction = mContextMenu->addAction(hbTrId(
+ "txt_common_menu_open"));
+ openAction->setData(Hs::OpenCollectionContextAction);
+
+ // create context menu
+ HbAction *addShortcutAction = mContextMenu->addAction(hbTrId(
+ "txt_applib_menu_add_to_home_screen"));
+ addShortcutAction->setData(Hs::AddToHomeScreenContextAction);
+ HbAction *renameAction = NULL;
+ HbAction *deleteAction = NULL;
+
+ if ((flags & RemovableEntryFlag)) {
+ renameAction = mContextMenu->addAction(
+ hbTrId("txt_common_menu_rename_item"));
+ renameAction->setData(Hs::RenameCollectionContextAction);
+ deleteAction = mContextMenu->addAction(hbTrId("txt_common_menu_delete"));
+ deleteAction->setData(Hs::DeleteCollectionContextAction);
+ }
+}
+
+/*!
+ Destructor.
+ */
+HsAllCollectionsState::~HsAllCollectionsState()
+{
+}
+
+/*!
+ Slot invoked when normal mode is entered.
+*/
+void HsAllCollectionsState::normalModeEntered()
+{
+ HsBaseViewState::normalModeEntered();
+ connect(mMenuView.data(),
+ SIGNAL(activated(QModelIndex)),
+ static_cast<HsBaseViewState*>(this),
+ SLOT(openCollection(QModelIndex)));
+}
+
+/*!
+ Slot invoked when normal mode is exited.
+*/
+void HsAllCollectionsState::normalModeExited()
+{
+
+}
+
+
+/*!
+ Slot invoked when a state is exited.
+ */
+void HsAllCollectionsState::stateExited()
+{
+ HSMENUTEST_FUNC_ENTRY("HsAllCollectionsState::stateExited");
+
+ HsBaseViewState::stateExited();
+
+ HSMENUTEST_FUNC_EXIT("HsAllCollectionsState::stateExited");
+ qDebug("AllCollectionsState::stateExited()");
+}
+
+/*!
+ Slot connected to constructMenu.
+ */
+void HsAllCollectionsState::createNewCollection()
+{
+ // Adding a new collection via the Collections view
+ machine()->postEvent(HsMenuEventFactory::createNewCollectionEvent());
+}
+
+/*!
+ Slot connected to constructMenu.
+ */
+void HsAllCollectionsState::createArrangeCollection()
+{
+ // Arrange collection via the Arrange view
+ int topItemId(0);
+
+ const QList<HbAbstractViewItem *> array =
+ mMenuView->listView()->visibleItems();
+
+ if (array.count() >= 1) {
+ QModelIndex idx = array[0]->modelIndex();
+ topItemId = idx.data(CaItemModel::IdRole).toInt();
+ }
+
+ machine()->postEvent(
+ HsMenuEventFactory::createArrangeAllCollectionsEvent(topItemId));
+}