--- a/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp Fri Jun 11 13:30:16 2010 +0300
+++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp Wed Jun 23 18:03:36 2010 +0300
@@ -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;
}
@@ -332,8 +332,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 +341,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,14 +375,18 @@
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());
@@ -402,59 +405,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 +509,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 +531,7 @@
/*!
Handles lock serch button
+ \param lock if true lock search button
*/
void HsCollectionState::lockSearchButton(bool lock)
{
@@ -535,13 +541,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));
+ }
}
/*!