homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsbaseviewstate.cpp
changeset 71 1db7cc813a4e
parent 69 87476091b3f5
child 81 7dd137878ff8
equal deleted inserted replaced
69:87476091b3f5 71:1db7cc813a4e
    51     mMenuView(0),
    51     mMenuView(0),
    52     mMenuMode(0),
    52     mMenuMode(0),
    53     mMainWindow(mainWindow)
    53     mMainWindow(mainWindow)
    54 {
    54 {
    55     mBackKeyAction = new HbAction(Hb::BackNaviAction, this);
    55     mBackKeyAction = new HbAction(Hb::BackNaviAction, this);
       
    56     mViewOptions = new HbMenu;
    56 }
    57 }
    57 
    58 
    58 /*!
    59 /*!
    59  Constructor.
    60  Constructor.
    60  \param mainWindow main window wrapper object.
    61  \param mainWindow main window wrapper object.
    73     mMenuView(0),
    74     mMenuView(0),
    74     mMenuMode(&menuMode),
    75     mMenuMode(&menuMode),
    75     mMainWindow(mainWindow)
    76     mMainWindow(mainWindow)
    76 {
    77 {
    77     mBackKeyAction = new HbAction(Hb::BackNaviAction, this);
    78     mBackKeyAction = new HbAction(Hb::BackNaviAction, this);
       
    79     mViewOptions = new HbMenu;
    78 }
    80 }
    79 /*!
    81 /*!
    80  Initialize contained objects.
    82  Initialize contained objects.
    81  \param menuViewBuilder object providing widgets for menu view.
    83  \param menuViewBuilder object providing widgets for menu view.
    82  \param stateContext state context of the view the builder
    84  \param stateContext state context of the view the builder
    85 void HsBaseViewState::initialize(HsMenuViewBuilder &menuViewBuilder,
    87 void HsBaseViewState::initialize(HsMenuViewBuilder &menuViewBuilder,
    86     HsStateContext stateContext)
    88     HsStateContext stateContext)
    87 {
    89 {
    88     mMenuView.reset(new HsMenuView(menuViewBuilder, stateContext, mMainWindow));
    90     mMenuView.reset(new HsMenuView(menuViewBuilder, stateContext, mMainWindow));
    89     mMenuView->view()->setNavigationAction(mBackKeyAction);
    91     mMenuView->view()->setNavigationAction(mBackKeyAction);
       
    92     mMenuView->view()->setMenu(mViewOptions);
    90 
    93 
    91     connect(this, SIGNAL(entered()),SLOT(stateEntered()));
    94     connect(this, SIGNAL(entered()),SLOT(stateEntered()));
    92     connect(this, SIGNAL(exited()),SLOT(stateExited()));
    95     connect(this, SIGNAL(exited()),SLOT(stateExited()));
    93 }
    96 }
    94 
    97 
   137 {
   140 {
   138     HSMENUTEST_FUNC_ENTRY("HsBaseViewState::stateExited");
   141     HSMENUTEST_FUNC_ENTRY("HsBaseViewState::stateExited");
   139 
   142 
   140     mMenuView->hideSearchPanel();
   143     mMenuView->hideSearchPanel();
   141     mMenuView->disconnect(this);
   144     mMenuView->disconnect(this);
   142     mMenuView->view()->setMenu(NULL);
   145 
   143     mMenuView->inactivate();
   146     mMenuView->inactivate();
   144     if (!mApplicationLaunchFailMessage.isNull()) {
   147     if (!mApplicationLaunchFailMessage.isNull()) {
   145         mApplicationLaunchFailMessage->close();
   148         mApplicationLaunchFailMessage->close();
   146     }
   149     }
   147     closeContextMenu();
   150     closeContextMenu();
   151 /*!
   154 /*!
   152  Add mode entered.
   155  Add mode entered.
   153  */
   156  */
   154 void HsBaseViewState::addModeEntered()
   157 void HsBaseViewState::addModeEntered()
   155 {
   158 {
       
   159     mViewOptions = mMenuView->view()->takeMenu();
   156     connect(mMenuView.data(),
   160     connect(mMenuView.data(),
   157             SIGNAL(activated(QModelIndex)),
   161             SIGNAL(activated(QModelIndex)),
   158             SLOT(addActivated(QModelIndex)));
   162             SLOT(addActivated(QModelIndex)));
   159     connect(mMenuView.data(),
   163     connect(mMenuView.data(),
   160             SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
   164             SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
   161             SLOT(addLongPressed(HbAbstractViewItem *, QPointF)));
   165             SLOT(addLongPressed(HbAbstractViewItem *, QPointF)));
   162 }
   166 }
   163 
   167 
   164 /*!
   168 /*!
   165  Slot invoked when add mode entered.
   169  Add mode exited.
       
   170  */
       
   171 void HsBaseViewState::addModeExited()
       
   172 {
       
   173     mMenuView->view()->setMenu(mViewOptions);
       
   174 }
       
   175 
       
   176 /*!
       
   177  Slot invoked when normal mode entered.
   166  */
   178  */
   167 void HsBaseViewState::normalModeEntered()
   179 void HsBaseViewState::normalModeEntered()
   168 {
   180 {
   169     setMenuOptions();
   181     setMenuOptions();
   170     connect(mMenuView.data(),
   182     connect(mMenuView.data(),
   180  Destructor.
   192  Destructor.
   181  */
   193  */
   182 HsBaseViewState::~HsBaseViewState()
   194 HsBaseViewState::~HsBaseViewState()
   183 {
   195 {
   184     delete mModel;
   196     delete mModel;
       
   197 	mViewOptions = mMenuView->view()->takeMenu();
       
   198 	delete mViewOptions;
   185 }
   199 }
   186 
   200 
   187 /*!
   201 /*!
   188  Slot connected to List widget in normal mode.
   202  Slot connected to List widget in normal mode.
   189  \param index Model index of the activated item.
   203  \param index Model index of the activated item.
   191 void HsBaseViewState::launchItem(const QModelIndex &index)
   205 void HsBaseViewState::launchItem(const QModelIndex &index)
   192 {
   206 {
   193     HSMENUTEST_FUNC_ENTRY("HsBaseViewState::launchItem");
   207     HSMENUTEST_FUNC_ENTRY("HsBaseViewState::launchItem");
   194 
   208 
   195     QSharedPointer<const CaEntry> entry = mModel->entry(index);
   209     QSharedPointer<const CaEntry> entry = mModel->entry(index);
   196     if (!entry.isNull()) {
   210     if (!entry.isNull() && !(entry->flags() & UninstallEntryFlag)) {
   197         if (entry->entryTypeName() == widgetTypeName()) {
   211         if (entry->entryTypeName() == widgetTypeName()) {
   198             EntryFlags flags = entry->flags();
   212             machine()->postEvent(HsMenuEventFactory::createPreviewHSWidgetEvent(entry->id(),
   199             if (!(flags & UninstallEntryFlag)) {
   213                 entry->entryTypeName(), entry->attribute(widgetUriAttributeName()),
   200                 machine()->postEvent(HsMenuEventFactory::createPreviewHSWidgetEvent(entry->id(),
   214                 entry->attribute(widgetLibraryAttributeName())));
   201                     entry->entryTypeName(), entry->attribute(widgetUriAttributeName()),
   215             HsMenuService::touch(entry->id());
   202                     entry->attribute(widgetLibraryAttributeName())));
       
   203                 HsMenuService::touch(entry->id());
       
   204             }
       
   205         }
   216         }
   206         else {
   217         else {
   207             int errCode = HsMenuService::executeAction(entry->id());
   218             int errCode = HsMenuService::executeAction(entry->id());
   208             if (errCode != 0) {
   219             if (errCode != 0) {
   209                 createApplicationLaunchFailMessage(errCode, entry->id());
   220                 createApplicationLaunchFailMessage(errCode, entry->id());
   318     QState *initialState = new QState(this);
   329     QState *initialState = new QState(this);
   319     setInitialState(initialState);
   330     setInitialState(initialState);
   320 
   331 
   321     QState *addModeState = new QState(this);
   332     QState *addModeState = new QState(this);
   322     connect(addModeState, SIGNAL(entered()),SLOT(addModeEntered()));
   333     connect(addModeState, SIGNAL(entered()),SLOT(addModeEntered()));
       
   334     connect(addModeState, SIGNAL(exited()),SLOT(addModeExited()));
   323 
   335 
   324     QState *normalModeState = new QState(this);
   336     QState *normalModeState = new QState(this);
   325     connect(normalModeState, SIGNAL(entered()),SLOT(normalModeEntered()));
   337     connect(normalModeState, SIGNAL(entered()),SLOT(normalModeEntered()));
   326     connect(normalModeState, SIGNAL(exited()),SLOT(normalModeExited()));
   338     connect(normalModeState, SIGNAL(exited()),SLOT(normalModeExited()));
   327 
   339