62 const HbDataFormModelItem *parent) |
62 const HbDataFormModelItem *parent) |
63 : CpSettingFormEntryItemData(itemDataHelper, text, description, icon, parent), |
63 : CpSettingFormEntryItemData(itemDataHelper, text, description, icon, parent), |
64 mSettingsManager(new NmMailboxSettingsManager()), mSettingsViewLauncher(0),mPrevView(0), |
64 mSettingsManager(new NmMailboxSettingsManager()), mSettingsViewLauncher(0),mPrevView(0), |
65 mMessageBox(0) |
65 mMessageBox(0) |
66 { |
66 { |
|
67 NM_FUNCTION; |
|
68 |
67 createMessageBox(); |
69 createMessageBox(); |
68 } |
70 } |
69 |
71 |
70 |
72 |
71 /*! |
73 /*! |
88 const HbDataFormModelItem *parent) |
90 const HbDataFormModelItem *parent) |
89 : CpSettingFormEntryItemData(itemDataHelper, text, description, icon, parent), |
91 : CpSettingFormEntryItemData(itemDataHelper, text, description, icon, parent), |
90 mSettingsManager(new NmMailboxSettingsManager()), mSettingsViewLauncher(viewLauncher), |
92 mSettingsManager(new NmMailboxSettingsManager()), mSettingsViewLauncher(viewLauncher), |
91 mPrevView(0), mMessageBox(0) |
93 mPrevView(0), mMessageBox(0) |
92 { |
94 { |
|
95 NM_FUNCTION; |
|
96 |
93 createMessageBox(); |
97 createMessageBox(); |
94 } |
98 } |
95 |
99 |
96 |
100 |
97 /*! |
101 /*! |
98 Destructor of NmSettingsViewFactory. |
102 Destructor of NmSettingsViewFactory. |
99 */ |
103 */ |
100 NmSettingsViewFactory::~NmSettingsViewFactory() |
104 NmSettingsViewFactory::~NmSettingsViewFactory() |
101 { |
105 { |
|
106 NM_FUNCTION; |
|
107 |
102 delete mSettingsManager; |
108 delete mSettingsManager; |
103 delete mMessageBox; |
109 delete mMessageBox; |
104 } |
110 } |
105 |
111 |
106 |
112 |
111 |
117 |
112 \return A newly constructed setting view instance. |
118 \return A newly constructed setting view instance. |
113 */ |
119 */ |
114 CpBaseSettingView *NmSettingsViewFactory::createSettingView() const |
120 CpBaseSettingView *NmSettingsViewFactory::createSettingView() const |
115 { |
121 { |
116 NMLOG(QString("NmSettingsViewFactory::createSettingView(): Begin.")); |
122 NM_FUNCTION; |
117 |
123 |
118 CpBaseSettingView *view = 0; |
124 CpBaseSettingView *view = 0; |
119 QList<NmMailbox *> mailboxList; |
125 QList<NmMailbox *> mailboxList; |
120 mSettingsManager->listMailboxes(mailboxList); |
126 mSettingsManager->listMailboxes(mailboxList); |
121 const int mailboxCount(mailboxList.count()); |
127 const int mailboxCount(mailboxList.count()); |
122 |
128 |
123 // Log the number of mailboxes. |
129 // Log the number of mailboxes. |
124 NMLOG(QString("NmSettingsViewFactory::createSettingView(): Mailbox count is ") + |
130 NM_COMMENT(QString("NmSettingsViewFactory::createSettingView(): mailbox count is %1").arg(mailboxCount)); |
125 QString::number(mailboxCount)); |
|
126 |
131 |
127 switch(mailboxCount) { |
132 switch(mailboxCount) { |
128 case 0: { |
133 case 0: { |
129 // Query the user whether to launch the wizard or not. |
134 // Query the user whether to launch the wizard or not. |
130 mMessageBox->open(const_cast<NmSettingsViewFactory *>(this), |
135 mMessageBox->open(const_cast<NmSettingsViewFactory *>(this), |
154 |
159 |
155 connect(mSettingsManager, |
160 connect(mSettingsManager, |
156 SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)), |
161 SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)), |
157 view, SLOT(mailboxPropertyChanged(const NmId &, QVariant, QVariant))); |
162 view, SLOT(mailboxPropertyChanged(const NmId &, QVariant, QVariant))); |
158 } |
163 } |
159 |
164 |
160 NMLOG(QString("NmSettingsViewFactory::createSettingView(): End.")); |
|
161 return view; |
165 return view; |
162 } |
166 } |
163 |
167 |
164 |
168 |
165 /*! |
169 /*! |
169 \param mailboxName The name of the mailbox. |
173 \param mailboxName The name of the mailbox. |
170 */ |
174 */ |
171 void NmSettingsViewFactory::launchSettingView(const NmId &mailboxId, |
175 void NmSettingsViewFactory::launchSettingView(const NmId &mailboxId, |
172 const QString &mailboxName) const |
176 const QString &mailboxName) const |
173 { |
177 { |
174 NMLOG(QString("NmSettingsViewFactory::launchSettingView")); |
178 NM_FUNCTION; |
175 |
179 |
176 // There's always at least one valid main window available. |
180 // There's always at least one valid main window available. |
177 HbMainWindow *mainWindow = hbInstance->allMainWindows().takeFirst(); |
181 HbMainWindow *mainWindow = hbInstance->allMainWindows().takeFirst(); |
178 |
182 |
179 CpBaseSettingView *view = |
183 CpBaseSettingView *view = |
180 new NmMailboxSettingView(mailboxId, mailboxName, *mSettingsManager); |
184 new NmMailboxSettingView(mailboxId, mailboxName, *mSettingsManager); |
231 connect(action, SIGNAL(triggered()), this, SLOT(backPress())); |
235 connect(action, SIGNAL(triggered()), this, SLOT(backPress())); |
232 view->setNavigationAction(action); |
236 view->setNavigationAction(action); |
233 mPrevView = mainWindow->currentView(); |
237 mPrevView = mainWindow->currentView(); |
234 mainWindow->addView(view); |
238 mainWindow->addView(view); |
235 mainWindow->setCurrentView(view); |
239 mainWindow->setCurrentView(view); |
236 |
|
237 NMLOG(QString("NmSettingsViewFactory::launchSettingView - OK")); |
|
238 } |
240 } |
239 |
241 |
240 |
242 |
241 /*! |
243 /*! |
242 Handles back button press. |
244 Handles back button press. |
243 Removes the current view from the main window and activates the previous view. |
245 Removes the current view from the main window and activates the previous view. |
244 Destroys removed view. |
246 Destroys removed view. |
245 */ |
247 */ |
246 void NmSettingsViewFactory::backPress() |
248 void NmSettingsViewFactory::backPress() |
247 { |
249 { |
248 NMLOG(QString("NmSettingsViewFactory::backPress")); |
250 NM_FUNCTION; |
249 |
251 |
250 emit aboutToClose(); |
252 emit aboutToClose(); |
251 HbMainWindow *mainWindow = hbInstance->allMainWindows().takeFirst(); |
253 HbMainWindow *mainWindow = hbInstance->allMainWindows().takeFirst(); |
252 QList<HbView *> views = mainWindow->views(); |
254 QList<HbView *> views = mainWindow->views(); |
253 if (views.count() > 1) { |
255 if (views.count() > 1) { |
254 HbView *currentView = mainWindow->currentView(); |
256 HbView *currentView = mainWindow->currentView(); |
258 mainWindow->removeView(currentView); |
260 mainWindow->removeView(currentView); |
259 currentView->deleteLater(); |
261 currentView->deleteLater(); |
260 } |
262 } |
261 mPrevView = 0; |
263 mPrevView = 0; |
262 } |
264 } |
263 |
|
264 NMLOG(QString("NmSettingsViewFactory::backPress - OK")); |
|
265 } |
265 } |
266 |
266 |
267 /*! |
267 /*! |
268 Handles user selection from "No mailboxes defined" dialog. Launches the Mail Wizard if \a action |
268 Handles user selection from "No mailboxes defined" dialog. Launches the Mail Wizard if \a action |
269 is the dialog's primary action ("Yes"). Otherwise does nothing. |
269 is the dialog's primary action ("Yes"). Otherwise does nothing. |
270 \param action. Action selected by the user. |
270 \param action. Action selected by the user. |
271 */ |
271 */ |
272 void NmSettingsViewFactory::launchWizard(HbAction *action) |
272 void NmSettingsViewFactory::launchWizard(HbAction *action) |
273 { |
273 { |
|
274 NM_FUNCTION; |
|
275 |
274 if (action == mMessageBox->primaryAction()) { |
276 if (action == mMessageBox->primaryAction()) { |
275 // Launch mail wizard. |
277 // Launch mail wizard. |
276 NMLOG(QString("NmSettingsViewFactory::launchWizard(): Launching the mail wizard.")); |
278 NM_COMMENT(QString("NmSettingsViewFactory::launchWizard(): launching the mail wizard")); |
277 QStringList args; |
279 QStringList args; |
278 args << mailWizardStartArgs; |
280 args << mailWizardStartArgs; |
279 QProcess::startDetached(mailWizardStartExe, args); |
281 QProcess::startDetached(mailWizardStartExe, args); |
280 } |
282 } |
281 } |
283 } |
283 /*! |
285 /*! |
284 Creates the "No mailboxes defined" dialog. Called from the constructors. |
286 Creates the "No mailboxes defined" dialog. Called from the constructors. |
285 */ |
287 */ |
286 void NmSettingsViewFactory::createMessageBox() |
288 void NmSettingsViewFactory::createMessageBox() |
287 { |
289 { |
|
290 NM_FUNCTION; |
|
291 |
288 mMessageBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion); |
292 mMessageBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion); |
289 mMessageBox->setText(hbTrId("txt_mail_dialog_no_mailboxes_create_new")); |
293 mMessageBox->setText(hbTrId("txt_mail_dialog_no_mailboxes_create_new")); |
290 mMessageBox->setTimeout(HbMessageBox::NoTimeout); |
294 mMessageBox->setTimeout(HbMessageBox::NoTimeout); |
291 } |
295 } |
292 |
296 |