--- a/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp Thu Jun 24 13:11:40 2010 +0100
+++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp Fri Jun 25 19:19:22 2010 +0300
@@ -121,7 +121,7 @@
HsMenuModeWrapper &menuMode,
HsMainWindow &mainWindow,
QState *parent) :
- QState(parent),
+ HsBaseViewState(parent),
mSortAttribute(LatestOnTopHsSortAttribute),
mCollectionsSortAttribute(CustomHsSortAttribute),
mCollectionId(-1),
@@ -148,7 +148,8 @@
connect(this, SIGNAL(entered()),SLOT(stateEntered()));
connect(this, SIGNAL(exited()),SLOT(stateExited()));
-
+
+ mMenuView.collectionButton()->setCheckable(true);
makeConnect();
mMenuView.view()->setNavigationAction(mSecondarySoftkeyAction);
@@ -163,8 +164,7 @@
makeDisconnect();
mMenuView.inactivate();
mMenuView.setModel(NULL);
- mMenuView.view()->
- setNavigationAction(NULL);
+ mMenuView.view()->setNavigationAction(NULL);
delete mCollectionModel;
}
@@ -309,12 +309,16 @@
this, SLOT(updateLabel()));
delete mCollectionModel;
mCollectionModel = NULL;
+ mOptions->close();
delete mOptions;
mOptions = NULL;
if (mContextMenu)
mContextMenu->close();
+ this->mSortAttribute = NoHsSortAttribute;
+
+ HsBaseViewState::stateExited();
+
HSMENUTEST_FUNC_EXIT("HsCollectionState::stateExited");
- this->mSortAttribute = NoHsSortAttribute;
qDebug("CollectionState::stateExited()");
}
@@ -332,8 +336,7 @@
SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
SLOT(listItemLongPressed(HbAbstractViewItem *, QPointF)));
connect(mMenuView.collectionButton(),
- SIGNAL(released()), this, SLOT(addAppsAction()));
-
+ SIGNAL(toggled(bool)), this, SLOT(addAppsAction(bool)));
}
/*!
@@ -342,7 +345,7 @@
void HsCollectionState::makeDisconnect()
{
disconnect(mMenuView.collectionButton(),
- SIGNAL(pressed()), this, SLOT(addAppsAction()));
+ SIGNAL(toggled(bool)), this, SLOT(addAppsAction(bool)));
disconnect(mSecondarySoftkeyAction, SIGNAL(triggered()),
this, SLOT(backSteppingAction()));
@@ -376,17 +379,24 @@
QSharedPointer<const CaEntry> entry = mCollectionModel->entry(index);
if (entry->entryTypeName() == widgetTypeName()) {
- machine()->postEvent(
- HsMenuEventFactory::createPreviewHSWidgetEvent(
- entry->id(), entry->entryTypeName(), entry->attribute(
- widgetUriAttributeName()), entry->attribute(
- widgetLibraryAttributeName())));
+ EntryFlags flags = index.data(CaItemModel::FlagsRole).value<
+ EntryFlags> ();
+ if (!(flags & UninstallEntryFlag)) {
+ machine()->postEvent(
+ HsMenuEventFactory::createPreviewHSWidgetEvent(
+ entry->id(), entry->entryTypeName(), entry->attribute(
+ widgetUriAttributeName()), entry->attribute(
+ widgetLibraryAttributeName())));
- const int itemId = index.data(CaItemModel::IdRole).toInt();
- HsMenuService::touch(itemId);
+ const int itemId = index.data(CaItemModel::IdRole).toInt();
+ HsMenuService::touch(itemId);
+ }
} else {
QVariant data = mCollectionModel->data(index, CaItemModel::IdRole);
- HsMenuService::executeAction(data.toInt());
+ int errCode = HsMenuService::executeAction(data.toInt());
+ if (errCode != 0) {
+ createApplicationLaunchFailMessage(errCode,index.data(CaItemModel::IdRole).toInt());
+ }
}
mMenuView.setSearchPanelVisible(false);
@@ -402,59 +412,60 @@
void HsCollectionState::listItemLongPressed(HbAbstractViewItem *item,
const QPointF &coords)
{
- Q_UNUSED(item);
HSMENUTEST_FUNC_ENTRY("HsCollectionState::listItemLongPressed");
- // create context menu
- mContextMenu = new HbMenu();
-
- HbAction *addShortcutAction = mContextMenu->addAction(hbTrId(
- "txt_applib_menu_add_to_home_screen"));
- addShortcutAction->setData(AddToHomeScreenContextAction);
- HbAction *addToCollection = mContextMenu->addAction(hbTrId(
- "txt_applib_menu_add_to_collection"));
- addToCollection->setData(AddToCollectionContextAction);
- HbAction *removeAction(NULL);
- HbAction *uninstallAction(NULL);
- HbAction *appSettingsAction(NULL);
- HbAction *appDetailsAction(NULL);
- // we do not add remove option in locked collection
- // check conditions and hide irrelevant menu items
- EntryFlags rootFlags =
- mCollectionModel->root().data(CaItemModel::FlagsRole).value<
- EntryFlags> ();
-
- if (rootFlags & RemovableEntryFlag) {
- removeAction = mContextMenu->addAction(
- hbTrId("txt_applib_menu_remove_from_collection"));
- removeAction->setData(RemoveFromCollectionContextAction);
- }
EntryFlags flags = item->modelIndex().data(CaItemModel::FlagsRole).value<
EntryFlags> ();
- if ((flags & RemovableEntryFlag)) {
- uninstallAction = mContextMenu->addAction(hbTrId("txt_common_menu_delete"));
- uninstallAction->setData(UninstallContextAction);
- }
- QSharedPointer<const CaEntry> entry = mCollectionModel->entry(item->modelIndex());
+ if (!(flags & UninstallEntryFlag)) {
+ // create context menu
+ mContextMenu = new HbMenu();
- if (!(entry->attribute(appSettingsPlugin()).isEmpty())) {
- appSettingsAction = mContextMenu->addAction(hbTrId(
- "txt_common_menu_settings"));
- appSettingsAction->setData(AppSettingContextAction);
- }
+ HbAction *addShortcutAction = mContextMenu->addAction(hbTrId(
+ "txt_applib_menu_add_to_home_screen"));
+ addShortcutAction->setData(AddToHomeScreenContextAction);
+ HbAction *addToCollection = mContextMenu->addAction(hbTrId(
+ "txt_applib_menu_add_to_collection"));
+ addToCollection->setData(AddToCollectionContextAction);
+ HbAction *removeAction(NULL);
+ HbAction *uninstallAction(NULL);
+ HbAction *appSettingsAction(NULL);
+ HbAction *appDetailsAction(NULL);
+ // we do not add remove option in locked collection
+ // check conditions and hide irrelevant menu items
+ EntryFlags rootFlags =
+ mCollectionModel->root().data(CaItemModel::FlagsRole).value<
+ EntryFlags> ();
+
+ if (rootFlags & RemovableEntryFlag) {
+ removeAction = mContextMenu->addAction(
+ hbTrId("txt_applib_menu_remove_from_collection"));
+ removeAction->setData(RemoveFromCollectionContextAction);
+ }
+
+ if ((flags & RemovableEntryFlag)) {
+ uninstallAction = mContextMenu->addAction(hbTrId("txt_common_menu_delete"));
+ uninstallAction->setData(UninstallContextAction);
+ }
+ QSharedPointer<const CaEntry> entry = mCollectionModel->entry(item->modelIndex());
+
+ if (!(entry->attribute(appSettingsPlugin()).isEmpty())) {
+ appSettingsAction = mContextMenu->addAction(hbTrId(
+ "txt_common_menu_settings"));
+ appSettingsAction->setData(AppSettingContextAction);
+ }
- if (!(entry->attribute(componentIdAttributeName()).isEmpty()) &&
- (flags & RemovableEntryFlag) ) {
- appDetailsAction = mContextMenu->addAction(hbTrId(
- "txt_common_menu_details"));
- appDetailsAction->setData(AppDetailsContextAction);
- }
- mContextModelIndex = item->modelIndex();
- mContextMenu->setPreferredPos(coords);
- mContextMenu->setAttribute(Qt::WA_DeleteOnClose);
- mContextMenu->open(this, SLOT(contextMenuAction(HbAction*)));
-
+ if (!(entry->attribute(componentIdAttributeName()).isEmpty()) &&
+ (flags & RemovableEntryFlag) ) {
+ appDetailsAction = mContextMenu->addAction(hbTrId(
+ "txt_common_menu_details"));
+ appDetailsAction->setData(AppDetailsContextAction);
+ }
+ mContextModelIndex = item->modelIndex();
+ mContextMenu->setPreferredPos(coords);
+ mContextMenu->setAttribute(Qt::WA_DeleteOnClose);
+ mContextMenu->open(this, SLOT(contextMenuAction(HbAction*)));
+ }
HSMENUTEST_FUNC_EXIT("HsCollectionState::listItemLongPressed");
}
@@ -505,6 +516,7 @@
/*!
Handles button visibility
+ \param empty if true set empty text label or button to add entries to collection
*/
void HsCollectionState::handleEmptyChange(bool empty)
{
@@ -526,6 +538,7 @@
/*!
Handles lock serch button
+ \param lock if true lock search button
*/
void HsCollectionState::lockSearchButton(bool lock)
{
@@ -535,13 +548,17 @@
/*!
Menu add applications action slot
+ \param addApps if true create event for add enties to collection. Parametr use by toggled from HbPushButton
*/
-void HsCollectionState::addAppsAction()
+void HsCollectionState::addAppsAction(bool addApps)
{
// Add applications
- machine()->postEvent(
- HsMenuEventFactory::createAddAppsFromCallectionViewEvent(
- mCollectionId));
+ if (addApps) {
+ mMenuView.collectionButton()->setChecked(false);
+ machine()->postEvent(
+ HsMenuEventFactory::createAddAppsFromCallectionViewEvent(
+ mCollectionId));
+ }
}
/*!
@@ -550,7 +567,8 @@
void HsCollectionState::addCollectionShortcutToHomeScreenAction()
{
machine()->postEvent(HsMenuEventFactory::createAddToHomeScreenEvent(
- mCollectionId, mMenuMode.getHsMenuMode()));
+ mCollectionId, mMenuMode.getHsMenuMode(),
+ mMenuMode.getHsToken()));
}
/*!
@@ -605,7 +623,7 @@
machine()->postEvent(
HsMenuEventFactory::createAddToHomeScreenEvent(
- entry->id(), mMenuMode.getHsMenuMode()));
+ entry->id(), mMenuMode.getHsMenuMode(), mMenuMode.getHsToken()));
}
/*!