Merge lp:~zeller-benjamin/qtcreator-plugin-ubuntu/calm-down-kalikiana into lp:qtcreator-plugin-ubuntu

Proposed by Benjamin Zeller
Status: Merged
Approved by: Timo Jyrinki
Approved revision: 346
Merged at revision: 345
Proposed branch: lp:~zeller-benjamin/qtcreator-plugin-ubuntu/calm-down-kalikiana
Merge into: lp:qtcreator-plugin-ubuntu
Diff against target: 246 lines (+80/-42)
3 files modified
src/ubuntu/targetupgrademanager.cpp (+4/-2)
src/ubuntu/ubuntuclickdialog.cpp (+66/-37)
src/ubuntu/ubuntuclickdialog.h (+10/-3)
To merge this branch: bzr merge lp:~zeller-benjamin/qtcreator-plugin-ubuntu/calm-down-kalikiana
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Zoltan Balogh Approve
Review via email: mp+248103@code.launchpad.net

Commit message

Add support to run more than one click maintenance task in the chroot
dialog.So updating multiple chroots is not asking back for every single
chroot.

Description of the change

Add support to run more than one click maintenance task in the chroot
dialog.So updating multiple chroots is not asking back for every single
chroot.

To post a comment you must log in.
Revision history for this message
Zoltan Balogh (bzoltan) wrote :

The background chroot update feature is on our roadmap, but this one can go now

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/ubuntu/targetupgrademanager.cpp'
2--- src/ubuntu/targetupgrademanager.cpp 2015-01-14 12:22:33 +0000
3+++ src/ubuntu/targetupgrademanager.cpp 2015-02-06 09:08:02 +0000
4@@ -109,7 +109,6 @@
5
6 void TargetUpgradeManagerDialog::selectAndUpgradeTargets(QList<UbuntuClickTool::Target> targets,QWidget *parent)
7 {
8-
9 TargetUpgradeManagerDialog dlg(parent);
10 for(int i = 0; i < targets.size(); i++) {
11 QTreeWidgetItem *item = new QTreeWidgetItem;
12@@ -119,11 +118,14 @@
13 }
14
15 if( dlg.exec() == QDialog::Accepted ) {
16+ QList<UbuntuClickTool::Target> selectedTargets;
17 for(int i = 0; i < targets.size(); i++) {
18 if(dlg.m_ui->treeWidget->topLevelItem(i)->checkState(0) == Qt::Checked) {
19- UbuntuClickDialog::maintainClickModal(targets.at(i),UbuntuClickTool::Upgrade);
20+ selectedTargets << targets.at(i);
21 }
22 }
23+ if(selectedTargets.size() > 0)
24+ UbuntuClickDialog::maintainClickModal(selectedTargets,UbuntuClickTool::Upgrade);
25 }
26 }
27
28
29=== modified file 'src/ubuntu/ubuntuclickdialog.cpp'
30--- src/ubuntu/ubuntuclickdialog.cpp 2014-12-12 13:33:10 +0000
31+++ src/ubuntu/ubuntuclickdialog.cpp 2015-02-06 09:08:02 +0000
32@@ -25,7 +25,6 @@
33 #include <QPushButton>
34
35 #include <projectexplorer/projectexplorer.h>
36-#include <projectexplorer/processparameters.h>
37 #include <projectexplorer/toolchainmanager.h>
38 #include <texteditor/fontsettings.h>
39
40@@ -57,12 +56,9 @@
41 delete m_ui;
42 }
43
44-void UbuntuClickDialog::setParameters(ProjectExplorer::ProcessParameters *params)
45+void UbuntuClickDialog::setParameters(const QList<ProjectExplorer::ProcessParameters> &params)
46 {
47- params->resolveAll();
48- m_process->setCommand(params->command(),params->arguments());
49- m_process->setEnvironment(params->environment());
50- m_process->setWorkingDirectory(params->workingDirectory());
51+ m_tasks = params;
52 }
53
54 int UbuntuClickDialog::lastExitCode() const
55@@ -78,10 +74,15 @@
56 m_buttonBox->addButton(QDialogButtonBox::Cancel);
57 #endif
58 disableCloseButton(true);
59- m_process->start();
60-}
61-
62-int UbuntuClickDialog::runClickModal(ProjectExplorer::ProcessParameters *params, QWidget *parent)
63+ nextTask();
64+}
65+
66+int UbuntuClickDialog::runClickModal(const ProjectExplorer::ProcessParameters &params, QWidget *parent)
67+{
68+ return runClickModal(QList<ProjectExplorer::ProcessParameters>()<<params,parent);
69+}
70+
71+int UbuntuClickDialog::runClickModal(const QList<ProjectExplorer::ProcessParameters> &params, QWidget *parent)
72 {
73 UbuntuClickDialog dlg( parent ? parent : Core::ICore::mainWindow());
74 dlg.setParameters(params);
75@@ -101,7 +102,7 @@
76 ProjectExplorer::ProcessParameters params;
77 UbuntuClickTool::parametersForCreateChroot(t,&params);
78
79- bool success = (runClickModal(&params,parent) == 0);
80+ bool success = (runClickModal(params,parent) == 0);
81
82 if(success) {
83 ClickToolChain* tc = new ClickToolChain(t, ProjectExplorer::ToolChain::AutoDetection);
84@@ -116,29 +117,39 @@
85
86 int UbuntuClickDialog::maintainClickModal(const UbuntuClickTool::Target &target, const UbuntuClickTool::MaintainMode &mode)
87 {
88- if(mode == UbuntuClickTool::Delete) {
89- QString title = tr(Constants::UBUNTU_CLICK_DELETE_TITLE);
90- QString text = tr(Constants::UBUNTU_CLICK_DELETE_MESSAGE);
91- if( QMessageBox::question(Core::ICore::mainWindow(),title,text) != QMessageBox::Yes )
92- return 0;
93-
94- if(UbuntuClickTool::clickChrootSuffix() == QLatin1String(Constants::UBUNTU_CLICK_CHROOT_DEFAULT_NAME)) {
95- ComUbuntuSdkClickChrootAgentInterface clickAgent(QStringLiteral("com.ubuntu.sdk.ClickChrootAgent"),
96- QStringLiteral("/com/ubuntu/sdk/ClickChrootAgent"),
97- QDBusConnection::sessionBus());
98- if(clickAgent.isValid()) {
99- QDBusPendingReply<bool> ret = clickAgent.releaseSession(target.framework,target.architecture);
100- if(ret.isError())
101- qDebug()<<ret.error();
102-
103- ret.waitForFinished();
104+ return maintainClickModal(QList<UbuntuClickTool::Target>()<<target,mode);
105+}
106+
107+int UbuntuClickDialog::maintainClickModal(const QList<UbuntuClickTool::Target> &targetList, const UbuntuClickTool::MaintainMode &mode)
108+{
109+ QList<ProjectExplorer::ProcessParameters> paramList;
110+ foreach(const UbuntuClickTool::Target &target, targetList) {
111+ if(mode == UbuntuClickTool::Delete) {
112+ QString title = tr(Constants::UBUNTU_CLICK_DELETE_TITLE);
113+ QString text = tr(Constants::UBUNTU_CLICK_DELETE_MESSAGE);
114+ if( QMessageBox::question(Core::ICore::mainWindow(),title,text) != QMessageBox::Yes )
115+ return 0;
116+
117+ if(UbuntuClickTool::clickChrootSuffix() == QLatin1String(Constants::UBUNTU_CLICK_CHROOT_DEFAULT_NAME)) {
118+ ComUbuntuSdkClickChrootAgentInterface clickAgent(QStringLiteral("com.ubuntu.sdk.ClickChrootAgent"),
119+ QStringLiteral("/com/ubuntu/sdk/ClickChrootAgent"),
120+ QDBusConnection::sessionBus());
121+ if(clickAgent.isValid()) {
122+ QDBusPendingReply<bool> ret = clickAgent.releaseSession(target.framework,target.architecture);
123+ if(ret.isError())
124+ qDebug()<<ret.error();
125+
126+ ret.waitForFinished();
127+ }
128 }
129 }
130+
131+ ProjectExplorer::ProcessParameters params;
132+ UbuntuClickTool::parametersForMaintainChroot(mode,target,&params);
133+ paramList<<params;
134 }
135
136- ProjectExplorer::ProcessParameters params;
137- UbuntuClickTool::parametersForMaintainChroot(mode,target,&params);
138- return runClickModal(&params);
139+ return runClickModal(paramList);
140 }
141
142 void UbuntuClickDialog::done(int code)
143@@ -169,21 +180,39 @@
144 if(bt) bt->setDisabled(disabled);
145 }
146
147+void UbuntuClickDialog::nextTask()
148+{
149+ if(m_tasks.length() <= 0)
150+ return;
151+
152+ ProjectExplorer::ProcessParameters params = m_tasks.takeFirst();
153+ params.resolveAll();
154+ m_process->setCommand(params.command(),params.arguments());
155+ m_process->setEnvironment(params.environment());
156+ m_process->setWorkingDirectory(params.workingDirectory());
157+ m_process->start();
158+}
159+
160 void UbuntuClickDialog::on_clickFinished(int exitCode)
161 {
162- disableCloseButton(false);
163-#if 0
164- //set the button to close again
165- m_buttonBox->clear();
166- m_buttonBox->addButton(QDialogButtonBox::Close);
167-#endif
168-
169 if (exitCode != 0) {
170 on_clickReadyReadStandardError(tr("---%0---").arg(QLatin1String(Constants::UBUNTU_CLICK_ERROR_EXIT_MESSAGE)));
171 } else {
172 on_clickReadyReadStandardOutput(tr("---%0---").arg(QLatin1String(Constants::UBUNTU_CLICK_SUCCESS_EXIT_MESSAGE)));
173 }
174
175+ if(m_tasks.length() > 0) {
176+ nextTask();
177+ return;
178+ }
179+
180+ disableCloseButton(false);
181+#if 0
182+ //set the button to close again
183+ m_buttonBox->clear();
184+ m_buttonBox->addButton(QDialogButtonBox::Close);
185+#endif
186+
187 m_exitCode = exitCode;
188 }
189
190
191=== modified file 'src/ubuntu/ubuntuclickdialog.h'
192--- src/ubuntu/ubuntuclickdialog.h 2014-07-31 09:41:18 +0000
193+++ src/ubuntu/ubuntuclickdialog.h 2015-02-06 09:08:02 +0000
194@@ -19,14 +19,15 @@
195 #define UBUNTU_INTERNAL_UBUNTUCLICKDIALOG_H
196
197 #include <QDialog>
198+#include <QList>
199
200+#include <projectexplorer/processparameters.h>
201 #include <utils/qtcprocess.h>
202 #include "ubuntuclicktool.h"
203
204 namespace ProjectExplorer {
205 class Project;
206 class Target;
207- class ProcessParameters;
208 }
209
210 namespace Ubuntu {
211@@ -43,21 +44,26 @@
212 UbuntuClickDialog (QWidget* parent = 0);
213 ~UbuntuClickDialog ();
214
215- void setParameters (ProjectExplorer::ProcessParameters* params);
216+ void setParameters (const QList<ProjectExplorer::ProcessParameters> &params);
217 int lastExitCode () const;
218
219+
220 public slots:
221 void runClick ();
222
223- static int runClickModal (ProjectExplorer::ProcessParameters* params, QWidget *parent = 0);
224+ static int runClickModal(const ProjectExplorer::ProcessParameters &params, QWidget *parent = 0);
225+ static int runClickModal (const QList<ProjectExplorer::ProcessParameters> &params, QWidget *parent = 0);
226 static bool createClickChrootModal (bool redetectKits = true , const QString &arch = QString(),QWidget *parent = 0);
227+
228 static int maintainClickModal (const UbuntuClickTool::Target &target, const UbuntuClickTool::MaintainMode &mode);
229+ static int maintainClickModal (const QList<UbuntuClickTool::Target> &targetList, const UbuntuClickTool::MaintainMode &mode);
230
231 // QDialog interface
232 virtual void done(int code);
233
234 protected:
235 void disableCloseButton (const bool &disabled = true);
236+ void nextTask ();
237
238 protected slots:
239 void on_clickFinished(int exitCode);
240@@ -66,6 +72,7 @@
241 private:
242 Utils::QtcProcess *m_process;
243 Ui::UbuntuClickDialog *m_ui;
244+ QList<ProjectExplorer::ProcessParameters> m_tasks;
245 int m_exitCode;
246 };
247

Subscribers

People subscribed via source and target branches