21 #include <QAction> |
21 #include <QAction> |
22 #include <hsmenuservice.h> |
22 #include <hsmenuservice.h> |
23 #include <casoftwareregistry.h> |
23 #include <casoftwareregistry.h> |
24 |
24 |
25 #include "hsinstallationlogstate.h" |
25 #include "hsinstallationlogstate.h" |
26 |
26 #include "hsdialogcontroller.h" |
27 /*! |
27 /*! |
28 \class HsInstallationLogState |
28 \class HsInstallationLogState |
29 \ingroup group_hsworkerstateplugin |
29 \ingroup group_hsworkerstateplugin |
30 \brief Uninstall Item State. |
30 \brief Uninstall Item State. |
31 Deletes app from collection. |
31 Deletes app from collection. |
34 /*! |
34 /*! |
35 Constructor. |
35 Constructor. |
36 \param parent Parent state. |
36 \param parent Parent state. |
37 */ |
37 */ |
38 HsInstallationLogState::HsInstallationLogState(QState *parent) : |
38 HsInstallationLogState::HsInstallationLogState(QState *parent) : |
39 QState(parent), |
39 QState(parent) |
40 mInstalationLogDialog(NULL) |
|
41 { |
40 { |
42 construct(); |
41 construct(); |
43 } |
42 } |
44 |
43 |
45 /*! |
44 /*! |
46 Destructor. |
45 Destructor. |
47 */ |
46 */ |
48 HsInstallationLogState::~HsInstallationLogState() |
47 HsInstallationLogState::~HsInstallationLogState() |
49 { |
48 { |
50 cleanUp(); // in case of throw |
49 QT_TRY { |
|
50 emit exit(); |
|
51 } QT_CATCH (...) { |
|
52 } |
51 } |
53 } |
52 |
54 |
53 /*! |
55 /*! |
54 Constructs contained objects. |
56 Constructs contained objects. |
55 */ |
57 */ |
98 bool loadStatusOk = false; |
92 bool loadStatusOk = false; |
99 loader.load(HS_INSTALLATION_LOG_DIALOG_LAYOUT, &loadStatusOk); |
93 loader.load(HS_INSTALLATION_LOG_DIALOG_LAYOUT, &loadStatusOk); |
100 Q_ASSERT_X(loadStatusOk, HS_INSTALLATION_LOG_DIALOG_LAYOUT, |
94 Q_ASSERT_X(loadStatusOk, HS_INSTALLATION_LOG_DIALOG_LAYOUT, |
101 "Error while loading docml file."); |
95 "Error while loading docml file."); |
102 |
96 |
103 mInstalationLogDialog = qobject_cast<HbDialog*>( |
97 QScopedPointer<HbDialog> dialog(qobject_cast<HbDialog*>( |
104 loader.findWidget(HS_INSTALLATION_LOG_DIALOG_NAME)); |
98 loader.findWidget(HS_INSTALLATION_LOG_DIALOG_NAME))); |
105 |
99 |
106 if (mInstalationLogDialog != NULL) { |
100 if (!dialog.isNull()) { |
107 mInstalationLogDialog->actions()[0]->setParent(mInstalationLogDialog); |
101 dialog->actions()[0]->setParent(dialog.data()); |
108 mInstalationLogDialog->setTimeout(HbPopup::NoTimeout); |
102 dialog->setTimeout(HbPopup::NoTimeout); |
109 mInstalationLogDialog->setAttribute(Qt::WA_DeleteOnClose, true); |
103 dialog->setAttribute(Qt::WA_DeleteOnClose, true); |
110 |
104 |
111 HbLabel* logList; |
105 HbLabel* logList; |
112 QString applicationsList; |
106 QString applicationsList; |
113 QString listElement("%1 (%2)\n%3 - "); |
107 QString listElement("%1 (%2)\n%3 - "); |
114 QString applicationName; |
108 QString applicationName; |
141 } |
135 } |
142 } |
136 } |
143 |
137 |
144 applicationsList.chop(2 * newLine.size()); |
138 applicationsList.chop(2 * newLine.size()); |
145 logList->setPlainText(applicationsList); |
139 logList->setPlainText(applicationsList); |
146 |
140 |
147 mInstalationLogDialog->open(this, SLOT(stateExited())); |
141 |
|
142 QScopedPointer<HsDialogController> dialogController( |
|
143 new HsDialogController(dialog.take(), |
|
144 HsMenuDialogFactory::acceptActionIndex(), |
|
145 HsMenuDialogFactory::rejectActionIndex())); |
|
146 |
|
147 connect(dialogController.data(), |
|
148 SIGNAL(dialogCompleted()), |
|
149 this, |
|
150 SIGNAL(exit())); |
|
151 |
|
152 // ensure dialog is dismissed on app key pressed |
|
153 connect(this, SIGNAL(exited()), |
|
154 dialogController.data(), |
|
155 SLOT(dismissDialog())); |
|
156 |
|
157 dialogController.take()->openDialog(); |
148 } |
158 } |
149 } |
159 } |
150 |
160 |
151 void HsInstallationLogState::stateExited() |
|
152 { |
|
153 mInstalationLogDialog = NULL; |
|
154 emit exit(); |
|
155 } |
|
156 |
161 |
157 /*! |
|
158 Slot launched after state has exited and in destructor. |
|
159 \retval void |
|
160 */ |
|
161 void HsInstallationLogState::cleanUp() |
|
162 { |
|
163 // Close popups if App key was pressed |
|
164 if (mInstalationLogDialog) { |
|
165 mInstalationLogDialog->close(); |
|
166 mInstalationLogDialog = NULL; |
|
167 } |
|
168 } |
|
169 |
162 |