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(), |
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 |