Merge lp:~zeller-benjamin/qtcreator-plugin-ubuntu/qtc41-beta into lp:qtcreator-plugin-ubuntu
- qtc41-beta
- Merge into trunk
Proposed by
Benjamin Zeller
Status: | Merged |
---|---|
Merged at revision: | 467 |
Proposed branch: | lp:~zeller-benjamin/qtcreator-plugin-ubuntu/qtc41-beta |
Merge into: | lp:qtcreator-plugin-ubuntu |
Diff against target: |
3158 lines (+596/-466) 70 files modified
UbuntuPlugin.pro (+6/-6) src/ubuntu/clicktoolchain.cpp (+25/-14) src/ubuntu/clicktoolchain.h (+4/-3) src/ubuntu/device/container/containerdeviceprocess.cpp (+17/-15) src/ubuntu/device/container/containerdeviceprocess.h (+1/-3) src/ubuntu/device/container/ubuntulocaldeployconfiguration.cpp (+1/-1) src/ubuntu/device/container/ubuntulocalrunconfiguration.cpp (+21/-3) src/ubuntu/device/container/ubuntulocalrunconfiguration.h (+8/-8) src/ubuntu/device/container/ubuntulocalrunconfigurationfactory.cpp (+1/-1) src/ubuntu/device/container/ubuntulocalruncontrolfactory.cpp (+54/-22) src/ubuntu/device/container/ubuntulocalscopedebugsupport.cpp (+7/-8) src/ubuntu/device/container/ubuntulocalscopedebugsupport.h (+1/-1) src/ubuntu/device/remote/abstractremoterunsupport.cpp (+6/-5) src/ubuntu/device/remote/abstractremoterunsupport.h (+1/-1) src/ubuntu/device/remote/ubuntudeploystepfactory.cpp (+25/-38) src/ubuntu/device/remote/ubuntudeploystepfactory.h (+4/-5) src/ubuntu/device/remote/ubuntudevice.cpp (+9/-13) src/ubuntu/device/remote/ubuntudevice.h (+1/-4) src/ubuntu/device/remote/ubuntudevicesignaloperation.cpp (+3/-3) src/ubuntu/device/remote/ubuntudevicesignaloperation.h (+3/-3) src/ubuntu/device/remote/ubuntudirectuploadstep.cpp (+16/-13) src/ubuntu/device/remote/ubuntudirectuploadstep.h (+3/-0) src/ubuntu/device/remote/ubunturemoteanalyzesupport.cpp (+18/-15) src/ubuntu/device/remote/ubunturemoteanalyzesupport.h (+2/-2) src/ubuntu/device/remote/ubunturemotedebugsupport.cpp (+17/-9) src/ubuntu/device/remote/ubunturemoterunconfiguration.cpp (+20/-5) src/ubuntu/device/remote/ubunturemoterunconfiguration.h (+8/-8) src/ubuntu/device/remote/ubunturemoteruncontrol.cpp (+2/-2) src/ubuntu/device/remote/ubunturemoteruncontrolfactory.cpp (+51/-20) src/ubuntu/device/remote/ubunturemoterunner.cpp (+1/-1) src/ubuntu/localportsmanager.cpp (+5/-5) src/ubuntu/ubuntuabstractguieditordocument.cpp (+0/-10) src/ubuntu/ubuntuabstractguieditordocument.h (+0/-4) src/ubuntu/ubuntuclickdialog.cpp (+1/-1) src/ubuntu/ubuntuclicktool.cpp (+17/-6) src/ubuntu/ubuntuclicktool.h (+3/-1) src/ubuntu/ubuntucmakecache.cpp (+1/-0) src/ubuntu/ubuntuconstants.h (+2/-0) src/ubuntu/ubuntudevicemode.cpp (+0/-6) src/ubuntu/ubuntudevicemode.h (+0/-3) src/ubuntu/ubuntudevicesmodel.cpp (+45/-44) src/ubuntu/ubuntudevicesmodel.h (+9/-9) src/ubuntu/ubuntufixmanifeststep.cpp (+2/-1) src/ubuntu/ubuntufixmanifeststep.h (+1/-1) src/ubuntu/ubuntuhtmlbuildconfiguration.cpp (+2/-1) src/ubuntu/ubuntukitmanager.cpp (+17/-7) src/ubuntu/ubuntumenu.cpp (+1/-1) src/ubuntu/ubuntupackagestep.cpp (+19/-17) src/ubuntu/ubuntupackagestep.h (+1/-1) src/ubuntu/ubuntupackagingmode.cpp (+0/-6) src/ubuntu/ubuntupackagingmode.h (+0/-3) src/ubuntu/ubuntupackagingmodel.cpp (+2/-2) src/ubuntu/ubuntuplugin.cpp (+2/-2) src/ubuntu/ubuntuplugin.h (+0/-1) src/ubuntu/ubuntuproject.cpp (+7/-8) src/ubuntu/ubuntuproject.h (+4/-2) src/ubuntu/ubuntuprojectfile.cpp (+0/-8) src/ubuntu/ubuntuprojectfile.h (+0/-4) src/ubuntu/ubuntuprojectnode.cpp (+1/-1) src/ubuntu/ubuntuqmlbuildconfiguration.cpp (+33/-38) src/ubuntu/ubuntuqmlbuildconfiguration.h (+7/-7) src/ubuntu/ubuntuqtversion.cpp (+50/-15) src/ubuntu/ubuntuqtversion.h (+5/-3) src/ubuntu/ubuntuwelcomemode.cpp (+5/-1) src/ubuntu/wizards/createtargetwizard.cpp (+1/-1) src/ubuntu/wizards/ubuntufatpackagingwizard.cpp (+1/-1) src/ubuntu/wizards/ubuntufirstrunwizard.cpp (+1/-1) src/ubuntu/wizards/ubuntuprojectapplicationwizard.cpp (+9/-6) src/ubuntu/wizards/ubuntuprojectapplicationwizard.h (+1/-1) src/ubuntu/wizards/ubuntuprojectmigrationwizard.cpp (+5/-5) |
To merge this branch: | bzr merge lp:~zeller-benjamin/qtcreator-plugin-ubuntu/qtc41-beta |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Zoltan Balogh | Pending | ||
Review via email: mp+300621@code.launchpad.net |
Commit message
- Make QtC-P-U actually compile against Qt 4.1 beta
Description of the change
- Make QtC-P-U actually compile against Qt 4.1 beta
To post a comment you must log in.
- 467. By Benjamin Zeller
-
- More fixes
- Upgrading to latest QtC checkout - 468. By Benjamin Zeller
-
Merge trunk
- 469. By Benjamin Zeller
-
Fix the profiler
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'UbuntuPlugin.pro' |
2 | --- UbuntuPlugin.pro 2016-05-17 16:33:36 +0000 |
3 | +++ UbuntuPlugin.pro 2016-08-24 15:35:12 +0000 |
4 | @@ -52,9 +52,9 @@ |
5 | src/ubuntu/ubuntuproject.cpp \ |
6 | src/ubuntu/ubuntuprojectfile.cpp \ |
7 | src/ubuntu/ubuntuprojectnode.cpp \ |
8 | - src/ubuntu/ubuntuversion.cpp \ |
9 | - src/ubuntu/ubuntufeatureprovider.cpp \ |
10 | - src/ubuntu/ubuntuversionmanager.cpp \ |
11 | + #src/ubuntu/ubuntuversion.cpp \ |
12 | + #src/ubuntu/ubuntufeatureprovider.cpp \ |
13 | + #src/ubuntu/ubuntuversionmanager.cpp \ |
14 | src/ubuntu/ubuntupackagingmode.cpp \ |
15 | src/ubuntu/ubuntubzr.cpp \ |
16 | src/ubuntu/ubuntuclickmanifest.cpp \ |
17 | @@ -121,9 +121,9 @@ |
18 | src/ubuntu/ubuntuproject.h \ |
19 | src/ubuntu/ubuntuprojectfile.h \ |
20 | src/ubuntu/ubuntuprojectnode.h \ |
21 | - src/ubuntu/ubuntuversion.h \ |
22 | - src/ubuntu/ubuntufeatureprovider.h \ |
23 | - src/ubuntu/ubuntuversionmanager.h \ |
24 | + #src/ubuntu/ubuntuversion.h \ |
25 | + #src/ubuntu/ubuntufeatureprovider.h \ |
26 | + #src/ubuntu/ubuntuversionmanager.h \ |
27 | src/ubuntu/ubuntupackagingmode.h \ |
28 | src/ubuntu/ubuntubzr.h \ |
29 | src/ubuntu/ubuntuclickmanifest.h \ |
30 | |
31 | === modified file 'src/ubuntu/clicktoolchain.cpp' |
32 | --- src/ubuntu/clicktoolchain.cpp 2016-03-18 13:13:22 +0000 |
33 | +++ src/ubuntu/clicktoolchain.cpp 2016-08-24 15:35:12 +0000 |
34 | @@ -20,6 +20,7 @@ |
35 | #include "ubuntuconstants.h" |
36 | |
37 | #include <utils/fileutils.h> |
38 | +#include <utils/algorithm.h> |
39 | #include <projectexplorer/abi.h> |
40 | #include <QDebug> |
41 | #include <QVariant> |
42 | @@ -79,11 +80,6 @@ |
43 | return Utils::FileName::fromString(QLatin1String("/usr/bin/gdb-multiarch")); |
44 | } |
45 | |
46 | -QString ClickToolChain::type() const |
47 | -{ |
48 | - return QString::fromLatin1(Constants::UBUNTU_CLICK_TOOLCHAIN_ID); |
49 | -} |
50 | - |
51 | QString ClickToolChain::typeDisplayName() const |
52 | { |
53 | return ClickToolChainFactory::tr("Ubuntu GCC"); |
54 | @@ -139,6 +135,11 @@ |
55 | return clickArchitectures.keys(); |
56 | } |
57 | |
58 | +QString ClickToolChain::remoteCompilerCommand() const |
59 | +{ |
60 | + return QString::fromLatin1("/usr/bin/%1").arg(compilerCommand().fileName()); |
61 | +} |
62 | + |
63 | QVariantMap ClickToolChain::toMap() const |
64 | { |
65 | QVariantMap map = GccToolChain::toMap(); |
66 | @@ -196,7 +197,7 @@ |
67 | } |
68 | |
69 | ClickToolChain::ClickToolChain(const UbuntuClickTool::Target &target, Detection d) |
70 | - : GccToolChain(QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID), d) |
71 | + : GccToolChain(Constants::UBUNTU_CLICK_TOOLCHAIN_ID, d) |
72 | , m_clickTarget(target) |
73 | { |
74 | resetToolChain(Utils::FileName::fromString( |
75 | @@ -216,24 +217,24 @@ |
76 | } |
77 | |
78 | ClickToolChain::ClickToolChain() |
79 | - : GccToolChain(QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID),ManualDetection) |
80 | + : GccToolChain(Constants::UBUNTU_CLICK_TOOLCHAIN_ID,ManualDetection) |
81 | { |
82 | } |
83 | |
84 | ClickToolChainFactory::ClickToolChainFactory() |
85 | { |
86 | - setId(Constants::UBUNTU_CLICK_TOOLCHAIN_ID); |
87 | setDisplayName(tr("Ubuntu GCC")); |
88 | } |
89 | |
90 | -QList<ProjectExplorer::ToolChain *> ClickToolChainFactory::autoDetect() |
91 | +QList<ProjectExplorer::ToolChain *> ClickToolChainFactory::autoDetect( |
92 | + const QList<ProjectExplorer::ToolChain *> &alreadyKnown) |
93 | { |
94 | - return createToolChainsForClickTargets(); |
95 | + return createToolChainsForClickTargets(alreadyKnown); |
96 | } |
97 | |
98 | bool ClickToolChainFactory::canRestore(const QVariantMap &data) |
99 | { |
100 | - return idFromMap(data).startsWith(QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID) + QLatin1Char(':')); |
101 | + return typeIdFromMap(data) == Constants::UBUNTU_CLICK_TOOLCHAIN_ID; |
102 | } |
103 | |
104 | ProjectExplorer::ToolChain *ClickToolChainFactory::restore(const QVariantMap &data) |
105 | @@ -259,7 +260,7 @@ |
106 | return 0; |
107 | } |
108 | |
109 | -QList<ProjectExplorer::ToolChain *> ClickToolChainFactory::createToolChainsForClickTargets() |
110 | +QList<ProjectExplorer::ToolChain *> ClickToolChainFactory::createToolChainsForClickTargets(const QList<ProjectExplorer::ToolChain *> &alreadyKnown) |
111 | { |
112 | QList<ProjectExplorer::ToolChain*> toolChains; |
113 | |
114 | @@ -270,10 +271,20 @@ |
115 | if(!clickArchitectures.contains(target.architecture)) |
116 | continue; |
117 | |
118 | - if(UbuntuClickTool::findOrCreateGccWrapper(target).isEmpty()) |
119 | + QString comp = UbuntuClickTool::findOrCreateGccWrapper(target); |
120 | + if(comp.isEmpty()) |
121 | continue; |
122 | |
123 | - ClickToolChain* tc = new ClickToolChain(target, ProjectExplorer::ToolChain::AutoDetection); |
124 | + auto predicate = [&](ProjectExplorer::ToolChain *tc) { |
125 | + if (tc->typeId() != Constants::UBUNTU_CLICK_TOOLCHAIN_ID) |
126 | + return false; |
127 | + auto clickTc = static_cast<ClickToolChain *>(tc); |
128 | + return clickTc->clickTarget().containerName == target.containerName; |
129 | + }; |
130 | + |
131 | + ProjectExplorer::ToolChain *tc = Utils::findOrDefault(alreadyKnown, predicate); |
132 | + if (!tc) |
133 | + tc = new ClickToolChain(target, ProjectExplorer::ToolChain::AutoDetection); |
134 | toolChains.append(tc); |
135 | } |
136 | |
137 | |
138 | === modified file 'src/ubuntu/clicktoolchain.h' |
139 | --- src/ubuntu/clicktoolchain.h 2015-06-30 13:34:14 +0000 |
140 | +++ src/ubuntu/clicktoolchain.h 2016-08-24 15:35:12 +0000 |
141 | @@ -37,7 +37,6 @@ |
142 | |
143 | virtual QList<Utils::FileName> suggestedMkspecList() const override; |
144 | virtual Utils::FileName suggestedDebugger() const override; |
145 | - virtual QString type() const override; |
146 | virtual QString typeDisplayName() const override; |
147 | virtual bool isValid() const override; |
148 | virtual void addToEnvironment(Utils::Environment &env) const override; |
149 | @@ -53,6 +52,8 @@ |
150 | static ProjectExplorer::Abi architectureNameToAbi ( const QString &arch ); |
151 | static QList<QString> supportedArchitectures (); |
152 | |
153 | + QString remoteCompilerCommand () const; |
154 | + |
155 | protected: |
156 | virtual bool fromMap(const QVariantMap &data) override; |
157 | |
158 | @@ -75,11 +76,11 @@ |
159 | |
160 | // ToolChainFactory interface |
161 | public: |
162 | - virtual QList<ProjectExplorer::ToolChain *> autoDetect() override; |
163 | + virtual QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &alreadyKnown) override; |
164 | virtual bool canRestore(const QVariantMap &data) override; |
165 | virtual ProjectExplorer::ToolChain *restore(const QVariantMap &data) override; |
166 | |
167 | - static QList<ProjectExplorer::ToolChain *> createToolChainsForClickTargets(); |
168 | + static QList<ProjectExplorer::ToolChain *> createToolChainsForClickTargets(const QList<ProjectExplorer::ToolChain *> &alreadyKnown); |
169 | }; |
170 | |
171 | } // namespace Internal |
172 | |
173 | === modified file 'src/ubuntu/device/container/containerdeviceprocess.cpp' |
174 | --- src/ubuntu/device/container/containerdeviceprocess.cpp 2016-05-23 07:26:49 +0000 |
175 | +++ src/ubuntu/device/container/containerdeviceprocess.cpp 2016-08-24 15:35:12 +0000 |
176 | @@ -3,6 +3,7 @@ |
177 | |
178 | #include <utils/qtcassert.h> |
179 | #include <utils/qtcprocess.h> |
180 | +#include <projectexplorer/runnables.h> |
181 | |
182 | #include <QProcess> |
183 | #include <QDebug> |
184 | @@ -30,13 +31,11 @@ |
185 | }; |
186 | |
187 | connect(cleaner, &SshDeviceProcess::finished, callback); |
188 | - cleaner->start(QStringLiteral("rm"), QStringList{m_pidFile}); |
189 | -} |
190 | |
191 | -void ContainerDeviceProcess::setWorkingDirectory(const QString &directory) |
192 | -{ |
193 | - m_workingDir = directory; |
194 | - LinuxDeviceProcess::setWorkingDirectory(directory); |
195 | + ProjectExplorer::StandardRunnable r; |
196 | + r.executable = QStringLiteral("rm"); |
197 | + r.commandLineArguments = m_pidFile; |
198 | + cleaner->start(r); |
199 | } |
200 | |
201 | void ContainerDeviceProcess::doSignal(const int sig) |
202 | @@ -50,11 +49,14 @@ |
203 | } |
204 | signaler->deleteLater(); |
205 | }); |
206 | - QString cmd = QString::fromLatin1("kill -%2 `cat %1`").arg(m_pidFile).arg(sig); |
207 | - signaler->start(cmd, QStringList()); |
208 | + |
209 | + ProjectExplorer::StandardRunnable r; |
210 | + r.executable = QStringLiteral("kill"); |
211 | + r.commandLineArguments = QString::fromLatin1("-%2 `cat %1`").arg(m_pidFile).arg(sig); |
212 | + signaler->start(r); |
213 | } |
214 | |
215 | -QString ContainerDeviceProcess::fullCommandLine() const |
216 | +QString ContainerDeviceProcess::fullCommandLine(const ProjectExplorer::StandardRunnable &runnable) const |
217 | { |
218 | QString fullCommandLine; |
219 | QStringList rcFiles { |
220 | @@ -63,12 +65,12 @@ |
221 | }; |
222 | foreach (const QString &filePath, rcFiles) |
223 | fullCommandLine += QString::fromLatin1("test -f %1 && . %1;").arg(filePath); |
224 | - if (!m_workingDir.isEmpty()) { |
225 | - fullCommandLine.append(QLatin1String("cd ")).append(Utils::QtcProcess::quoteArgUnix(m_workingDir)) |
226 | + if (runnable.workingDirectory.isEmpty()) { |
227 | + fullCommandLine.append(QLatin1String("cd ")).append(Utils::QtcProcess::quoteArgUnix(runnable.workingDirectory)) |
228 | .append(QLatin1String(" && ")); |
229 | } |
230 | QString envString; |
231 | - for (auto it = environment().constBegin(); it != environment().constEnd(); ++it) { |
232 | + for (auto it = runnable.environment.constBegin(); it != runnable.environment.constEnd(); ++it) { |
233 | if (!envString.isEmpty()) |
234 | envString += QLatin1Char(' '); |
235 | envString.append(it.key()).append(QLatin1String("='")).append(it.value()) |
236 | @@ -82,10 +84,10 @@ |
237 | |
238 | fullCommandLine.append(Utils::QtcProcess::quoteArgUnix(QStringLiteral("dbus-run-session"))); |
239 | fullCommandLine += QString::fromLatin1(" bash -c \"echo \\$\\$ > %1; exec ").arg(m_pidFile); |
240 | - fullCommandLine.append(Utils::QtcProcess::quoteArgUnix(executable())); |
241 | - if (!arguments().isEmpty()) { |
242 | + fullCommandLine.append(Utils::QtcProcess::quoteArgUnix(runnable.executable)); |
243 | + if (!runnable.commandLineArguments.isEmpty()) { |
244 | fullCommandLine.append(QLatin1Char(' ')); |
245 | - fullCommandLine.append(Utils::QtcProcess::joinArgs(arguments(), Utils::OsTypeLinux)); |
246 | + fullCommandLine.append(runnable.commandLineArguments); |
247 | } |
248 | fullCommandLine.append(QStringLiteral("\"")); |
249 | return fullCommandLine; |
250 | |
251 | === modified file 'src/ubuntu/device/container/containerdeviceprocess.h' |
252 | --- src/ubuntu/device/container/containerdeviceprocess.h 2016-04-08 09:01:23 +0000 |
253 | +++ src/ubuntu/device/container/containerdeviceprocess.h 2016-08-24 15:35:12 +0000 |
254 | @@ -17,7 +17,6 @@ |
255 | public: |
256 | ContainerDeviceProcess(const QSharedPointer<const ProjectExplorer::IDevice> &device, QObject *parent = 0); |
257 | ~ContainerDeviceProcess(); |
258 | - virtual void setWorkingDirectory(const QString &directory) override; |
259 | |
260 | // DeviceProcess interface |
261 | virtual void interrupt() override { doSignal(2); } |
262 | @@ -27,8 +26,7 @@ |
263 | void doSignal (const int sig); |
264 | private: |
265 | // SshDeviceProcess interface |
266 | - virtual QString fullCommandLine() const override; |
267 | - QString m_workingDir; |
268 | + virtual QString fullCommandLine(const ProjectExplorer::StandardRunnable &) const override; |
269 | QString m_pidFile; |
270 | |
271 | }; |
272 | |
273 | === modified file 'src/ubuntu/device/container/ubuntulocaldeployconfiguration.cpp' |
274 | --- src/ubuntu/device/container/ubuntulocaldeployconfiguration.cpp 2016-04-06 09:35:59 +0000 |
275 | +++ src/ubuntu/device/container/ubuntulocaldeployconfiguration.cpp 2016-08-24 15:35:12 +0000 |
276 | @@ -134,7 +134,7 @@ |
277 | |
278 | void UbuntuLocalDeployConfiguration::selectAsDefaultHack() |
279 | { |
280 | - target()->setActiveDeployConfiguration(this); |
281 | + //target()->setActiveDeployConfiguration(this); |
282 | } |
283 | |
284 | } // namespace Internal |
285 | |
286 | === modified file 'src/ubuntu/device/container/ubuntulocalrunconfiguration.cpp' |
287 | --- src/ubuntu/device/container/ubuntulocalrunconfiguration.cpp 2016-07-22 10:17:50 +0000 |
288 | +++ src/ubuntu/device/container/ubuntulocalrunconfiguration.cpp 2016-08-24 15:35:12 +0000 |
289 | @@ -30,6 +30,7 @@ |
290 | #include <qtsupport/qtkitinformation.h> |
291 | #include <projectexplorer/target.h> |
292 | #include <projectexplorer/buildconfiguration.h> |
293 | +#include <projectexplorer/runnables.h> |
294 | #include <utils/environment.h> |
295 | #include <utils/qtcprocess.h> |
296 | #include <cmakeprojectmanager/cmakeproject.h> |
297 | @@ -60,14 +61,14 @@ |
298 | } |
299 | |
300 | UbuntuLocalRunConfiguration::UbuntuLocalRunConfiguration(ProjectExplorer::Target *parent, Core::Id id) |
301 | - : RemoteLinux::AbstractRemoteLinuxRunConfiguration(parent, id) |
302 | + : ProjectExplorer::RunConfiguration(parent, id) |
303 | { |
304 | setDisplayName(appId()); |
305 | addExtraAspect(new UbuntuLocalEnvironmentAspect(this)); |
306 | } |
307 | |
308 | UbuntuLocalRunConfiguration::UbuntuLocalRunConfiguration(ProjectExplorer::Target *parent, UbuntuLocalRunConfiguration *source) |
309 | - : RemoteLinux::AbstractRemoteLinuxRunConfiguration(parent,source) |
310 | + : ProjectExplorer::RunConfiguration(parent,source) |
311 | { |
312 | } |
313 | |
314 | @@ -126,6 +127,23 @@ |
315 | return Configured; |
316 | } |
317 | |
318 | +ProjectExplorer::Runnable UbuntuLocalRunConfiguration::runnable() const |
319 | +{ |
320 | + if (m_executable.isEmpty()) |
321 | + return ProjectExplorer::Runnable(); |
322 | + |
323 | + ProjectExplorer::StandardRunnable r; |
324 | + r.executable = remoteExecutableFilePath(); |
325 | + r.device = ProjectExplorer::DeviceKitInformation::device(target()->kit()); |
326 | + r.commandLineArguments = Utils::QtcProcess::joinArgs(arguments(), Utils::OsTypeLinux); |
327 | + |
328 | + // Normalize to work around QTBUG-17529 (QtDeclarative fails with 'File name case mismatch'...) |
329 | + r.workingDirectory = Utils::FileUtils::normalizePathName(m_workingDir.toString()); |
330 | + r.environment = environment(); |
331 | + |
332 | + return r; |
333 | +} |
334 | + |
335 | bool UbuntuLocalRunConfiguration::aboutToStart(QString *errorMessage) |
336 | { |
337 | if(target()->project()->id() != Constants::UBUNTUPROJECT_ID) { |
338 | @@ -628,7 +646,7 @@ |
339 | ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit()); |
340 | ClickToolChain *uTc = nullptr; |
341 | |
342 | - if (tc && tc->type() == QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) |
343 | + if (tc && tc->typeId() == Constants::UBUNTU_CLICK_TOOLCHAIN_ID) |
344 | uTc = static_cast<ClickToolChain *>(tc); |
345 | |
346 | if (uTc) { |
347 | |
348 | === modified file 'src/ubuntu/device/container/ubuntulocalrunconfiguration.h' |
349 | --- src/ubuntu/device/container/ubuntulocalrunconfiguration.h 2016-07-22 10:17:50 +0000 |
350 | +++ src/ubuntu/device/container/ubuntulocalrunconfiguration.h 2016-08-24 15:35:12 +0000 |
351 | @@ -20,7 +20,7 @@ |
352 | #define UBUNTURUNCONFIGURATION_H |
353 | |
354 | #include <QObject> |
355 | -#include <remotelinux/abstractremotelinuxrunconfiguration.h> |
356 | +#include <projectexplorer/runconfiguration.h> |
357 | #include <projectexplorer/deployconfiguration.h> |
358 | #include <projectexplorer/applicationlauncher.h> |
359 | #include <remotelinux/remotelinuxenvironmentaspect.h> |
360 | @@ -46,7 +46,7 @@ |
361 | |
362 | }; |
363 | |
364 | -class UbuntuLocalRunConfiguration : public RemoteLinux::AbstractRemoteLinuxRunConfiguration |
365 | +class UbuntuLocalRunConfiguration : public ProjectExplorer::RunConfiguration |
366 | { |
367 | Q_OBJECT |
368 | public: |
369 | @@ -60,16 +60,16 @@ |
370 | QString appId() const; |
371 | void addToBaseEnvironment(Utils::Environment &env) const; |
372 | |
373 | - // AbstractRemoteLinuxRunConfiguration interface |
374 | - virtual QString localExecutableFilePath() const override; |
375 | - virtual QString remoteExecutableFilePath() const override; |
376 | - virtual QStringList arguments() const override; |
377 | - virtual Utils::Environment environment() const override; |
378 | - virtual QString workingDirectory() const override; |
379 | + QString localExecutableFilePath() const; |
380 | + QString remoteExecutableFilePath() const; |
381 | + QStringList arguments() const; |
382 | + Utils::Environment environment() const; |
383 | + QString workingDirectory() const; |
384 | |
385 | // RunConfiguration interface |
386 | virtual bool isConfigured () const override; |
387 | virtual ConfigurationState ensureConfigured(QString *) override; |
388 | + virtual ProjectExplorer::Runnable runnable() const override; |
389 | |
390 | //static helpers |
391 | static QString getDesktopFile (RunConfiguration *config, QString appId, QString *errorMessage = 0); |
392 | |
393 | === modified file 'src/ubuntu/device/container/ubuntulocalrunconfigurationfactory.cpp' |
394 | --- src/ubuntu/device/container/ubuntulocalrunconfigurationfactory.cpp 2016-04-06 10:52:54 +0000 |
395 | +++ src/ubuntu/device/container/ubuntulocalrunconfigurationfactory.cpp 2016-08-24 15:35:12 +0000 |
396 | @@ -67,7 +67,7 @@ |
397 | if (isRemote) { |
398 | //IF we have a remote device we just support a ubuntu toolchain |
399 | ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(parent->kit()); |
400 | - if(tc && tc->type() != QLatin1String(Ubuntu::Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) |
401 | + if(tc && tc->typeId() != Ubuntu::Constants::UBUNTU_CLICK_TOOLCHAIN_ID) |
402 | return types; |
403 | } |
404 | |
405 | |
406 | === modified file 'src/ubuntu/device/container/ubuntulocalruncontrolfactory.cpp' |
407 | --- src/ubuntu/device/container/ubuntulocalruncontrolfactory.cpp 2016-05-23 07:26:49 +0000 |
408 | +++ src/ubuntu/device/container/ubuntulocalruncontrolfactory.cpp 2016-08-24 15:35:12 +0000 |
409 | @@ -6,14 +6,16 @@ |
410 | |
411 | #include "containerdevice.h" |
412 | |
413 | -#include <analyzerbase/analyzerstartparameters.h> |
414 | -#include <analyzerbase/analyzerruncontrol.h> |
415 | -#include <analyzerbase/analyzermanager.h> |
416 | +#include <debugger/analyzer/analyzermanager.h> |
417 | +#include <debugger/analyzer/analyzerruncontrol.h> |
418 | +#include <debugger/analyzer/analyzerstartparameters.h> |
419 | #include <projectexplorer/kitinformation.h> |
420 | #include <projectexplorer/target.h> |
421 | #include <projectexplorer/abi.h> |
422 | #include <debugger/debuggerruncontrol.h> |
423 | #include <debugger/debuggerstartparameters.h> |
424 | +#include <debugger/debuggerrunconfigurationaspect.h> |
425 | +#include <qmldebug/qmldebugcommandlinearguments.h> |
426 | #include <utils/fileutils.h> |
427 | #include <utils/portlist.h> |
428 | #include <qmlprofiler/localqmlprofilerrunner.h> |
429 | @@ -36,10 +38,7 @@ |
430 | if (mode != ProjectExplorer::Constants::NORMAL_RUN_MODE |
431 | && mode != ProjectExplorer::Constants::DEBUG_RUN_MODE |
432 | && mode != ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN |
433 | - && mode != ProjectExplorer::Constants::QML_PROFILER_RUN_MODE |
434 | - && mode != Valgrind::Internal::CALLGRIND_RUN_MODE |
435 | - && mode != Valgrind::MEMCHECK_RUN_MODE |
436 | - && mode != Valgrind::MEMCHECK_WITH_GDB_RUN_MODE) { |
437 | + && mode != ProjectExplorer::Constants::QML_PROFILER_RUN_MODE) { |
438 | return false; |
439 | } |
440 | |
441 | @@ -54,7 +53,13 @@ |
442 | if (!ubuntuRC) |
443 | return 0; |
444 | |
445 | + if (!ubuntuRC->aboutToStart(errorMessage)) |
446 | + return 0; |
447 | + |
448 | QTC_ASSERT(canRun(runConfiguration, mode), return 0); |
449 | + const auto rcRunnable = runConfiguration->runnable(); |
450 | + QTC_ASSERT(rcRunnable.is<ProjectExplorer::StandardRunnable>(), return 0); |
451 | + const auto stdRunnable = rcRunnable.as<ProjectExplorer::StandardRunnable>(); |
452 | |
453 | ProjectExplorer::IDevice::ConstPtr genericDev = ProjectExplorer::DeviceKitInformation::device(runConfiguration->target()->kit()); |
454 | if (!genericDev || !genericDev->type().toString().startsWith(QLatin1String(Constants::UBUNTU_CONTAINER_DEVICE_TYPE_ID))) { |
455 | @@ -64,7 +69,7 @@ |
456 | } |
457 | |
458 | ProjectExplorer::ToolChain *genericToolchain = ProjectExplorer::ToolChainKitInformation::toolChain(runConfiguration->target()->kit()); |
459 | - if (!genericToolchain || genericToolchain->type() != QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) { |
460 | + if (!genericToolchain || genericToolchain->typeId() != Constants::UBUNTU_CLICK_TOOLCHAIN_ID) { |
461 | if(!errorMessage) |
462 | *errorMessage = tr("Wrong toolchain type in runconfiguration."); |
463 | return 0; |
464 | @@ -73,9 +78,6 @@ |
465 | ContainerDevice::ConstPtr dev = qSharedPointerCast<const ContainerDevice>(genericDev); |
466 | ClickToolChain *tc = static_cast<ClickToolChain *>(genericToolchain); |
467 | |
468 | - if (!ubuntuRC->aboutToStart(errorMessage)) |
469 | - return 0; |
470 | - |
471 | if (mode == ProjectExplorer::Constants::NORMAL_RUN_MODE) { |
472 | RemoteLinux::RemoteLinuxRunControl *runControl = new RemoteLinux::RemoteLinuxRunControl(ubuntuRC); |
473 | return runControl; |
474 | @@ -89,8 +91,8 @@ |
475 | |
476 | if (isScope) { |
477 | Debugger::DebuggerStartParameters params; |
478 | - // Normalize to work around QTBUG-17529 (QtDeclarative fails with 'File name case mismatch'...) |
479 | - params.workingDirectory = Utils::FileUtils::normalizePathName(ubuntuRC->workingDirectory()); |
480 | + |
481 | + params.inferior = stdRunnable; |
482 | |
483 | QString triplet = tc->gnutriplet(); |
484 | if (triplet.isEmpty()) { |
485 | @@ -101,12 +103,11 @@ |
486 | |
487 | QString scoperunnerPth = QString::fromLatin1("/usr/lib/%1/unity-scopes/scoperunner") |
488 | .arg(triplet); |
489 | - params.executable = QString(UbuntuClickTool::targetBasePath(tc->clickTarget())+scoperunnerPth); |
490 | + params.symbolFile = QString(UbuntuClickTool::targetBasePath(tc->clickTarget())+scoperunnerPth); |
491 | params.continueAfterAttach = true; |
492 | params.startMode = Debugger::AttachToRemoteServer; |
493 | params.remoteSetupNeeded = true; |
494 | params.connParams.host = dev->sshParameters().host; |
495 | - params.environment = ubuntuRC->environment(); |
496 | params.solibSearchPath.append(ubuntuRC->soLibSearchPaths()); |
497 | |
498 | Debugger::DebuggerRunControl *runControl |
499 | @@ -117,28 +118,59 @@ |
500 | |
501 | return runControl; |
502 | } else { |
503 | - if (ubuntuRC->portsUsedByDebuggers() > dev->freePorts().count()) { |
504 | + auto aspect = ubuntuRC->extraAspect<Debugger::DebuggerRunConfigurationAspect>(); |
505 | + if (aspect->portsUsedByDebugger() > dev->freePorts().count()) { |
506 | *errorMessage = tr("Cannot debug: Not enough free ports available."); |
507 | return 0; |
508 | } |
509 | |
510 | - Debugger::DebuggerStartParameters params = RemoteLinux::LinuxDeviceDebugSupport::startParameters(ubuntuRC); |
511 | + /* |
512 | + * Taken from remotelinuxruncontrolfactory.cpp and adapted |
513 | + * to work here. |
514 | + */ |
515 | + Debugger::DebuggerStartParameters params; |
516 | + params.startMode = Debugger::AttachToRemoteServer; |
517 | + params.closeMode = Debugger::KillAndExitMonitorAtClose; |
518 | + params.remoteSetupNeeded = true; |
519 | + |
520 | + if (aspect->useQmlDebugger()) { |
521 | + params.qmlServer.host = dev->sshParameters().host; |
522 | + params.qmlServer.port = Utils::Port(); // port is selected later on |
523 | + } |
524 | + if (aspect->useCppDebugger()) { |
525 | + aspect->setUseMultiProcess(true); |
526 | + params.inferior.executable = stdRunnable.executable; |
527 | + params.inferior.commandLineArguments = stdRunnable.commandLineArguments; |
528 | + if (aspect->useQmlDebugger()) { |
529 | + params.inferior.commandLineArguments.prepend(QLatin1Char(' ')); |
530 | + params.inferior.commandLineArguments.prepend(QmlDebug::qmlDebugTcpArguments(QmlDebug::QmlDebuggerServices)); |
531 | + } |
532 | + params.remoteChannel = dev->sshParameters().host + QLatin1String(":-1"); |
533 | + params.symbolFile = ubuntuRC->localExecutableFilePath(); |
534 | + } |
535 | + |
536 | params.solibSearchPath.append(ubuntuRC->soLibSearchPaths()); |
537 | |
538 | Debugger::DebuggerRunControl * const runControl = Debugger::createDebuggerRunControl(params, ubuntuRC, errorMessage, mode); |
539 | if (!runControl) |
540 | return 0; |
541 | |
542 | - RemoteLinux::LinuxDeviceDebugSupport * const debugSupport = |
543 | - new RemoteLinux::LinuxDeviceDebugSupport(ubuntuRC, runControl); |
544 | - connect(runControl, SIGNAL(finished()), debugSupport, SLOT(handleDebuggingFinished())); |
545 | + (void) new RemoteLinux::LinuxDeviceDebugSupport(ubuntuRC, runControl); |
546 | return runControl; |
547 | } |
548 | return 0; |
549 | } |
550 | else if(mode == ProjectExplorer::Constants::QML_PROFILER_RUN_MODE) { |
551 | - Analyzer::AnalyzerStartParameters params = RemoteLinux::RemoteLinuxAnalyzeSupport::startParameters(ubuntuRC, mode); |
552 | - Analyzer::AnalyzerRunControl *runControl = Analyzer::AnalyzerManager::createRunControl(params, ubuntuRC); |
553 | + /* |
554 | + * Taken from remotelinuxruncontrolfactory.cpp and adapted |
555 | + * to work here. |
556 | + */ |
557 | + auto runControl = Debugger::createAnalyzerRunControl(ubuntuRC, mode); |
558 | + Debugger::AnalyzerConnection connection; |
559 | + connection.connParams = |
560 | + ProjectExplorer::DeviceKitInformation::device(ubuntuRC->target()->kit())->sshParameters(); |
561 | + connection.analyzerHost = connection.connParams.host; |
562 | + runControl->setConnection(connection); |
563 | (void) new RemoteLinux::RemoteLinuxAnalyzeSupport(ubuntuRC, runControl, mode); |
564 | return runControl; |
565 | } |
566 | |
567 | === modified file 'src/ubuntu/device/container/ubuntulocalscopedebugsupport.cpp' |
568 | --- src/ubuntu/device/container/ubuntulocalscopedebugsupport.cpp 2016-05-23 07:26:49 +0000 |
569 | +++ src/ubuntu/device/container/ubuntulocalscopedebugsupport.cpp 2016-08-24 15:35:12 +0000 |
570 | @@ -38,7 +38,7 @@ |
571 | |
572 | void UbuntuLocalScopeDebugSupport::startExecution() |
573 | { |
574 | - QTC_ASSERT(state() == GatheringPorts, return); |
575 | + QTC_ASSERT(state() == GatheringResources, return); |
576 | |
577 | setState(StartingRunner); |
578 | m_gdbserverOutput.clear(); |
579 | @@ -47,7 +47,8 @@ |
580 | // as it will stick even for the next non debug run, and even though |
581 | // we can then start without gdbserver the timouts will be always set |
582 | // high, because the DebugMode=true setting is still there |
583 | - if(!setPort(m_port)) { |
584 | + m_port = findPort(); |
585 | + if(!m_port.isValid()) { |
586 | Debugger::RemoteSetupResult res; |
587 | res.success = false; |
588 | res.reason = tr("Could not assign a free port for debugging."); |
589 | @@ -118,7 +119,7 @@ |
590 | } |
591 | |
592 | args.append(QStringLiteral("--cppdebug")); |
593 | - args.append(QString::number(m_port)); |
594 | + args.append(QString::number(m_port.number())); |
595 | |
596 | |
597 | setState(StartingRunner); |
598 | @@ -138,9 +139,7 @@ |
599 | connect(m_runControl, &Debugger::DebuggerRunControl::stateChanged, |
600 | this, &UbuntuLocalScopeDebugSupport::handleStateChanged); |
601 | |
602 | - runner->setEnvironment(environment()); |
603 | - runner->setWorkingDirectory(workingDirectory()); |
604 | - runner->start(device(), m_executable, args); |
605 | + runner->start(device(), runnable()); |
606 | } |
607 | |
608 | void UbuntuLocalScopeDebugSupport::handleRemoteSetupRequested() |
609 | @@ -148,7 +147,7 @@ |
610 | QTC_ASSERT(state() == Inactive, return); |
611 | |
612 | showMessage(tr("Checking available ports...") + QLatin1Char('\n'), Debugger::LogStatus); |
613 | - AbstractRemoteLinuxRunSupport::handleRemoteSetupRequested(); |
614 | + startPortsGathering(); |
615 | } |
616 | |
617 | void UbuntuLocalScopeDebugSupport::handleAppRunnerError(const QString &error) |
618 | @@ -171,7 +170,7 @@ |
619 | |
620 | void UbuntuLocalScopeDebugSupport::handleRemoteErrorOutput(const QByteArray &output) |
621 | { |
622 | - QTC_ASSERT(state() != GatheringPorts, return); |
623 | + QTC_ASSERT(state() != GatheringResources, return); |
624 | |
625 | if (!m_runControl) |
626 | return; |
627 | |
628 | === modified file 'src/ubuntu/device/container/ubuntulocalscopedebugsupport.h' |
629 | --- src/ubuntu/device/container/ubuntulocalscopedebugsupport.h 2016-05-23 07:26:49 +0000 |
630 | +++ src/ubuntu/device/container/ubuntulocalscopedebugsupport.h 2016-08-24 15:35:12 +0000 |
631 | @@ -42,7 +42,7 @@ |
632 | void showMessage(const QString &msg, int channel); |
633 | |
634 | private: |
635 | - int m_port; |
636 | + Utils::Port m_port; |
637 | QString m_scopeRunnerPath; |
638 | QString m_executable; |
639 | QString m_buildDir; |
640 | |
641 | === modified file 'src/ubuntu/device/remote/abstractremoterunsupport.cpp' |
642 | --- src/ubuntu/device/remote/abstractremoterunsupport.cpp 2016-03-29 09:41:07 +0000 |
643 | +++ src/ubuntu/device/remote/abstractremoterunsupport.cpp 2016-08-24 15:35:12 +0000 |
644 | @@ -84,14 +84,15 @@ |
645 | return &d->runner; |
646 | } |
647 | |
648 | -bool AbstractRemoteRunSupport::assignNextFreePort(int *port) |
649 | +Utils::Port AbstractRemoteRunSupport::findFreePort( ) |
650 | { |
651 | - *port = d->portScanner.getNextFreePort(&d->freePorts); |
652 | - if (*port == -1) { |
653 | + Utils::Port thePort = d->portScanner.getNextFreePort(&d->freePorts); |
654 | + if (!thePort.isValid()){ |
655 | handleAdapterSetupFailed(tr("Not enough free ports on device for debugging.")); |
656 | - return false; |
657 | + return Utils::Port(); |
658 | } |
659 | - return true; |
660 | + |
661 | + return thePort; |
662 | } |
663 | |
664 | void AbstractRemoteRunSupport::setFinished() |
665 | |
666 | === modified file 'src/ubuntu/device/remote/abstractremoterunsupport.h' |
667 | --- src/ubuntu/device/remote/abstractremoterunsupport.h 2016-03-29 09:41:07 +0000 |
668 | +++ src/ubuntu/device/remote/abstractremoterunsupport.h 2016-08-24 15:35:12 +0000 |
669 | @@ -34,7 +34,7 @@ |
670 | virtual void handleAdapterSetupFailed(const QString &error); |
671 | virtual void handleAdapterSetupDone(); |
672 | |
673 | - bool assignNextFreePort(int *port); |
674 | + Utils::Port findFreePort(); |
675 | void setFinished (); |
676 | void reset(); |
677 | |
678 | |
679 | === modified file 'src/ubuntu/device/remote/ubuntudeploystepfactory.cpp' |
680 | --- src/ubuntu/device/remote/ubuntudeploystepfactory.cpp 2016-03-29 10:39:39 +0000 |
681 | +++ src/ubuntu/device/remote/ubuntudeploystepfactory.cpp 2016-08-24 15:35:12 +0000 |
682 | @@ -6,6 +6,7 @@ |
683 | #include <ubuntu/ubuntupackagestep.h> |
684 | |
685 | #include <utils/qtcassert.h> |
686 | +#include <utils/algorithm.h> |
687 | |
688 | #include <projectexplorer/buildstep.h> |
689 | #include <projectexplorer/buildsteplist.h> |
690 | @@ -23,9 +24,9 @@ |
691 | namespace Ubuntu { |
692 | namespace Internal { |
693 | |
694 | -QList<Core::Id> UbuntuDeployStepFactory::availableCreationIds(ProjectExplorer::BuildStepList *parent) const |
695 | +QList<ProjectExplorer::BuildStepInfo> UbuntuDeployStepFactory::availableSteps(ProjectExplorer::BuildStepList *parent) const |
696 | { |
697 | - QList<Core::Id> types; |
698 | + QList<ProjectExplorer::BuildStepInfo> types; |
699 | |
700 | if (parent->id() != ProjectExplorer::Constants::BUILDSTEPS_DEPLOY) |
701 | return types; |
702 | @@ -43,34 +44,37 @@ |
703 | if (isRemote) { |
704 | //IF we have a remote device we just support a ubuntu toolchain |
705 | ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(parent->target()->kit()); |
706 | - if(tc && tc->type() != QLatin1String(Ubuntu::Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) |
707 | + if(tc && tc->typeId() != Ubuntu::Constants::UBUNTU_CLICK_TOOLCHAIN_ID) |
708 | return types; |
709 | } |
710 | |
711 | - if(isRemote && ( isHTML || isQML || isCMake || isQMake ) ) |
712 | - types << Constants::UBUNTU_DEPLOY_UPLOADSTEP_ID |
713 | - << Constants::UBUNTU_CLICK_PACKAGESTEP_ID; |
714 | + if(isRemote && ( isHTML || isQML || isCMake || isQMake ) ) { |
715 | + |
716 | + types << ProjectExplorer::BuildStepInfo (Constants::UBUNTU_DEPLOY_UPLOADSTEP_ID, |
717 | + UbuntuDirectUploadStep::displayName(), |
718 | + ProjectExplorer::BuildStepInfo::UniqueStep) |
719 | + << ProjectExplorer::BuildStepInfo (Constants::UBUNTU_CLICK_PACKAGESTEP_ID, |
720 | + tr("UbuntuSDK create click package", "Display name for UbuntuPackageStep id."), |
721 | + ProjectExplorer::BuildStepInfo::UniqueStep) |
722 | + //backwards compatibility to older projects |
723 | + << ProjectExplorer::BuildStepInfo (Constants::UBUNTU_DEPLOY_MAKESTEP_ID, |
724 | + tr("UbuntuSDK create click package", "Display name for UbuntuPackageStep id."), |
725 | + ProjectExplorer::BuildStepInfo::Flags(ProjectExplorer::BuildStepInfo::UniqueStep |
726 | + | ProjectExplorer::BuildStepInfo::Uncreatable |
727 | + | ProjectExplorer::BuildStepInfo::Unclonable)); |
728 | + } |
729 | |
730 | return types; |
731 | } |
732 | |
733 | -QString UbuntuDeployStepFactory::displayNameForId(const Core::Id id) const |
734 | -{ |
735 | - if (id == Constants::UBUNTU_DEPLOY_UPLOADSTEP_ID) |
736 | - return UbuntuDirectUploadStep::displayName(); |
737 | - else if (id == Constants::UBUNTU_CLICK_PACKAGESTEP_ID) |
738 | - return tr("UbuntuSDK create click package", "Display name for UbuntuPackageStep id."); |
739 | - return QString(); |
740 | -} |
741 | - |
742 | -bool UbuntuDeployStepFactory::canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const |
743 | -{ |
744 | - return availableCreationIds(parent).contains(id); |
745 | +bool UbuntuDeployStepFactory::canHandle(ProjectExplorer::BuildStepList *parent, const Core::Id id) const |
746 | +{ |
747 | + return Utils::contains(availableSteps(parent), Utils::equal(&ProjectExplorer::BuildStepInfo::id, id)); |
748 | } |
749 | |
750 | ProjectExplorer::BuildStep *UbuntuDeployStepFactory::create(ProjectExplorer::BuildStepList *parent, const Core::Id id) |
751 | { |
752 | - if (!canCreate(parent, id)) |
753 | + if (!canHandle(parent, id)) |
754 | return 0; |
755 | |
756 | if(id == Constants::UBUNTU_DEPLOY_UPLOADSTEP_ID) |
757 | @@ -83,24 +87,12 @@ |
758 | return 0; |
759 | } |
760 | |
761 | -bool UbuntuDeployStepFactory::canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const |
762 | -{ |
763 | - Core::Id toRestore = ProjectExplorer::idFromMap(map); |
764 | - |
765 | - //backwards compatibility to older projects |
766 | - if( toRestore == Constants::UBUNTU_DEPLOY_MAKESTEP_ID ) |
767 | - return canCreate(parent,Core::Id(Constants::UBUNTU_CLICK_PACKAGESTEP_ID)); |
768 | - |
769 | - return canCreate(parent,toRestore); |
770 | -} |
771 | - |
772 | ProjectExplorer::BuildStep *UbuntuDeployStepFactory::restore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) |
773 | { |
774 | Core::Id id = ProjectExplorer::idFromMap(map); |
775 | - if(!canCreate(parent,id)) |
776 | + if(!canHandle(parent,id)) |
777 | return 0; |
778 | |
779 | - //backwards compatibility to older projects |
780 | if( id == Constants::UBUNTU_DEPLOY_MAKESTEP_ID ) { |
781 | UbuntuPackageStep *step = new UbuntuPackageStep(parent); |
782 | return step; |
783 | @@ -115,14 +107,9 @@ |
784 | return step; |
785 | } |
786 | |
787 | -bool UbuntuDeployStepFactory::canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) const |
788 | -{ |
789 | - return canCreate(parent,product->id()); |
790 | -} |
791 | - |
792 | ProjectExplorer::BuildStep *UbuntuDeployStepFactory::clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) |
793 | { |
794 | - if (!canClone(parent, product)) |
795 | + if (!canHandle(parent, product->id())) |
796 | return 0; |
797 | |
798 | const Core::Id id = product->id(); |
799 | |
800 | === modified file 'src/ubuntu/device/remote/ubuntudeploystepfactory.h' |
801 | --- src/ubuntu/device/remote/ubuntudeploystepfactory.h 2016-03-29 10:39:39 +0000 |
802 | +++ src/ubuntu/device/remote/ubuntudeploystepfactory.h 2016-08-24 15:35:12 +0000 |
803 | @@ -13,14 +13,13 @@ |
804 | |
805 | public: |
806 | // IBuildStepFactory interface |
807 | - virtual QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *parent) const override; |
808 | - virtual QString displayNameForId(const Core::Id id) const override; |
809 | - virtual bool canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const override; |
810 | + virtual QList<ProjectExplorer::BuildStepInfo> availableSteps(ProjectExplorer::BuildStepList *parent) const override; |
811 | virtual ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id) override; |
812 | - virtual bool canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const override; |
813 | virtual ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) override; |
814 | - virtual bool canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) const override; |
815 | virtual ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) override; |
816 | + |
817 | +private: |
818 | + bool canHandle(ProjectExplorer::BuildStepList *parent, const Core::Id id) const; |
819 | }; |
820 | |
821 | } // namespace Internal |
822 | |
823 | === modified file 'src/ubuntu/device/remote/ubuntudevice.cpp' |
824 | --- src/ubuntu/device/remote/ubuntudevice.cpp 2016-03-29 09:41:07 +0000 |
825 | +++ src/ubuntu/device/remote/ubuntudevice.cpp 2016-08-24 15:35:12 +0000 |
826 | @@ -28,6 +28,7 @@ |
827 | #include <ubuntu/settings.h> |
828 | |
829 | #include <projectexplorer/devicesupport/devicemanager.h> |
830 | +#include <projectexplorer/runnables.h> |
831 | #include <remotelinux/genericlinuxdeviceconfigurationwidget.h> |
832 | #include <coreplugin/messagemanager.h> |
833 | #include <ssh/sshconnection.h> |
834 | @@ -744,14 +745,14 @@ |
835 | |
836 | //first port is SSH port |
837 | QSsh::SshConnectionParameters connParms = m_dev->sshParameters(); |
838 | - connParms.port = copy.getNext(); |
839 | + connParms.port = copy.getNext().number(); |
840 | m_dev->setSshParameters(connParms); |
841 | |
842 | m_dev->setFreePorts(copy); |
843 | |
844 | QStringList ports; |
845 | while(copy.hasMore()) |
846 | - ports.append(QString::number(copy.getNext())); |
847 | + ports.append(QString::number(copy.getNext().number())); |
848 | |
849 | //@TODO per device settings |
850 | QString deviceSshPort = QString::number(connParms.port); |
851 | @@ -1349,17 +1350,12 @@ |
852 | { |
853 | } |
854 | |
855 | -void UbuntuDeviceProcess::setWorkingDirectory(const QString &directory) |
856 | -{ |
857 | - m_workingDir = directory; |
858 | -} |
859 | - |
860 | void UbuntuDeviceProcess::terminate() |
861 | { |
862 | LinuxDeviceProcess::terminate(); |
863 | } |
864 | |
865 | -QString UbuntuDeviceProcess::fullCommandLine() const |
866 | +QString UbuntuDeviceProcess::fullCommandLine(const ProjectExplorer::StandardRunnable &runnable) const |
867 | { |
868 | //return QStringLiteral("%1 %2").arg(quote(executable()),Utils::QtcProcess::joinArgsUnix(arguments())); |
869 | |
870 | @@ -1371,15 +1367,15 @@ |
871 | QString fullCommandLine; |
872 | foreach (const QString &filePath, rcFiles) |
873 | fullCommandLine += QString::fromLatin1("test -f %1 && . %1;").arg(filePath); |
874 | - if (!m_workingDir.isEmpty()) { |
875 | - fullCommandLine.append(QLatin1String("cd ")).append(quote(m_workingDir)) |
876 | + if (!runnable.workingDirectory.isEmpty()) { |
877 | + fullCommandLine.append(QLatin1String("cd ")).append(quote(runnable.workingDirectory)) |
878 | .append(QLatin1String(" && ")); |
879 | } |
880 | |
881 | - fullCommandLine.append(quote(executable())); |
882 | - if (!arguments().isEmpty()) { |
883 | + fullCommandLine.append(quote(runnable.executable)); |
884 | + if (!runnable.commandLineArguments.isEmpty()) { |
885 | fullCommandLine.append(QLatin1Char(' ')); |
886 | - fullCommandLine.append(Utils::QtcProcess::joinArgs(arguments(),Utils::OsTypeLinux)); |
887 | + fullCommandLine.append(runnable.commandLineArguments); |
888 | } |
889 | |
890 | if(debug) qDebug()<<fullCommandLine; |
891 | |
892 | === modified file 'src/ubuntu/device/remote/ubuntudevice.h' |
893 | --- src/ubuntu/device/remote/ubuntudevice.h 2016-03-29 09:41:07 +0000 |
894 | +++ src/ubuntu/device/remote/ubuntudevice.h 2016-08-24 15:35:12 +0000 |
895 | @@ -246,16 +246,13 @@ |
896 | explicit UbuntuDeviceProcess(const QSharedPointer<const ProjectExplorer::IDevice> &device, |
897 | QObject *parent = 0); |
898 | |
899 | - void setWorkingDirectory(const QString &directory) override; |
900 | - |
901 | // DeviceProcess interface |
902 | public: |
903 | virtual void terminate() override; |
904 | |
905 | private: |
906 | // SshDeviceProcess interface |
907 | - virtual QString fullCommandLine() const override; |
908 | - QString m_workingDir; |
909 | + virtual QString fullCommandLine(const ProjectExplorer::StandardRunnable &runnable) const override; |
910 | }; |
911 | |
912 | } // namespace Internal |
913 | |
914 | === modified file 'src/ubuntu/device/remote/ubuntudevicesignaloperation.cpp' |
915 | --- src/ubuntu/device/remote/ubuntudevicesignaloperation.cpp 2016-03-29 09:41:07 +0000 |
916 | +++ src/ubuntu/device/remote/ubuntudevicesignaloperation.cpp 2016-08-24 15:35:12 +0000 |
917 | @@ -10,7 +10,7 @@ |
918 | |
919 | } |
920 | |
921 | -void UbuntuDeviceSignalOperation::killProcess(int pid) |
922 | +void UbuntuDeviceSignalOperation::killProcess(qint64 pid) |
923 | { |
924 | sendSignal(pid,9); |
925 | } |
926 | @@ -21,7 +21,7 @@ |
927 | emit finished(tr("Sending signals to processes by filePath is not supported on Ubuntu Devices")); |
928 | } |
929 | |
930 | -void UbuntuDeviceSignalOperation::interruptProcess(int pid) |
931 | +void UbuntuDeviceSignalOperation::interruptProcess(qint64 pid) |
932 | { |
933 | sendSignal(pid,2); |
934 | } |
935 | @@ -32,7 +32,7 @@ |
936 | emit finished(tr("Sending signals to processes by filePath is not supported on Ubuntu Devices")); |
937 | } |
938 | |
939 | -void UbuntuDeviceSignalOperation::sendSignal(int pid, int signal) |
940 | +void UbuntuDeviceSignalOperation::sendSignal(qint64 pid, int signal) |
941 | { |
942 | QProcess *proc = new QProcess(this); |
943 | |
944 | |
945 | === modified file 'src/ubuntu/device/remote/ubuntudevicesignaloperation.h' |
946 | --- src/ubuntu/device/remote/ubuntudevicesignaloperation.h 2016-07-22 10:17:50 +0000 |
947 | +++ src/ubuntu/device/remote/ubuntudevicesignaloperation.h 2016-08-24 15:35:12 +0000 |
948 | @@ -17,13 +17,13 @@ |
949 | typedef QSharedPointer<UbuntuDeviceSignalOperation> Ptr; |
950 | |
951 | // DeviceProcessSignalOperation interface |
952 | - virtual void killProcess(int pid) override; |
953 | + virtual void killProcess(qint64 pid) override; |
954 | virtual void killProcess(const QString &filePath) override; |
955 | - virtual void interruptProcess(int pid) override; |
956 | + virtual void interruptProcess(qint64 pid) override; |
957 | virtual void interruptProcess(const QString &filePath) override; |
958 | |
959 | private: |
960 | - void sendSignal (int pid, int signal); |
961 | + void sendSignal (qint64 pid, int signal); |
962 | |
963 | private slots: |
964 | void processFinished (int exitCode, QProcess::ExitStatus exitState); |
965 | |
966 | === modified file 'src/ubuntu/device/remote/ubuntudirectuploadstep.cpp' |
967 | --- src/ubuntu/device/remote/ubuntudirectuploadstep.cpp 2016-03-29 10:39:39 +0000 |
968 | +++ src/ubuntu/device/remote/ubuntudirectuploadstep.cpp 2016-08-24 15:35:12 +0000 |
969 | @@ -65,12 +65,13 @@ |
970 | |
971 | void UbuntuDirectUploadStep::run(QFutureInterface<bool> &fi) |
972 | { |
973 | + m_future = &fi; |
974 | + |
975 | m_foundClickPackage = false; |
976 | projectNameChanged(); |
977 | if(!m_foundClickPackage) { |
978 | - emit addOutput(tr("Deploy step failed. No click package was created"), ErrorMessageOutput); |
979 | - fi.reportResult(false); |
980 | - emit finished(); |
981 | + doFail(tr("Deploy step failed. No click package was created")); |
982 | + m_future = 0; |
983 | return; |
984 | } |
985 | |
986 | @@ -80,13 +81,11 @@ |
987 | |
988 | UbuntuDevice::ConstPtr dev = deviceFromTarget(target()); |
989 | if(!dev) { |
990 | - emit addOutput(tr("Deploy step failed. No valid device configured"), ErrorMessageOutput); |
991 | - fi.reportResult(false); |
992 | - emit finished(); |
993 | + doFail(tr("Deploy step failed. No valid device configured")); |
994 | + m_future = 0; |
995 | return; |
996 | } |
997 | |
998 | - m_future = &fi; |
999 | if(dev->deviceState() != ProjectExplorer::IDevice::DeviceReadyToUse) { |
1000 | //we are already waiting |
1001 | if (m_waitDialog) |
1002 | @@ -109,10 +108,8 @@ |
1003 | { |
1004 | m_waitDialog->deleteLater(); |
1005 | |
1006 | - emit addOutput(tr("Deploy step failed"), ErrorMessageOutput); |
1007 | - m_future->reportResult(false); |
1008 | + doFail(tr("Deploy step failed")); |
1009 | m_future = 0; |
1010 | - emit finished(); |
1011 | } |
1012 | |
1013 | void UbuntuDirectUploadStep::handleDeviceReady() |
1014 | @@ -121,10 +118,8 @@ |
1015 | |
1016 | QString whyNot; |
1017 | if(!deployService()->isDeploymentPossible(&whyNot)) { |
1018 | - emit addOutput(tr("Deploy step failed. %1").arg(whyNot), ErrorMessageOutput); |
1019 | - m_future->reportResult(false); |
1020 | + doFail(tr("Deploy step failed. %1").arg(whyNot)); |
1021 | m_future = 0; |
1022 | - emit finished(); |
1023 | return; |
1024 | } |
1025 | |
1026 | @@ -132,6 +127,14 @@ |
1027 | m_future = 0; |
1028 | } |
1029 | |
1030 | +void UbuntuDirectUploadStep::doFail(const QString &err) |
1031 | +{ |
1032 | + emit addOutput(err, ErrorMessageOutput); |
1033 | + disconnect(deployService(), 0, this, 0); |
1034 | + if (m_future) |
1035 | + reportRunResult(*m_future, false); |
1036 | +} |
1037 | + |
1038 | ProjectExplorer::BuildStepConfigWidget *UbuntuDirectUploadStep::createConfigWidget() |
1039 | { |
1040 | return new ProjectExplorer::SimpleBuildStepConfigWidget(this); |
1041 | |
1042 | === modified file 'src/ubuntu/device/remote/ubuntudirectuploadstep.h' |
1043 | --- src/ubuntu/device/remote/ubuntudirectuploadstep.h 2016-07-22 10:17:50 +0000 |
1044 | +++ src/ubuntu/device/remote/ubuntudirectuploadstep.h 2016-08-24 15:35:12 +0000 |
1045 | @@ -39,6 +39,9 @@ |
1046 | void handleDeviceReady (); |
1047 | |
1048 | private: |
1049 | + void doFail (const QString &err); |
1050 | + |
1051 | +private: |
1052 | RemoteLinux::GenericDirectUploadService *m_deployService; |
1053 | bool m_foundClickPackage; |
1054 | |
1055 | |
1056 | === modified file 'src/ubuntu/device/remote/ubunturemoteanalyzesupport.cpp' |
1057 | --- src/ubuntu/device/remote/ubunturemoteanalyzesupport.cpp 2016-03-29 09:41:07 +0000 |
1058 | +++ src/ubuntu/device/remote/ubunturemoteanalyzesupport.cpp 2016-08-24 15:35:12 +0000 |
1059 | @@ -4,7 +4,7 @@ |
1060 | #include <ubuntu/ubuntuconstants.h> |
1061 | |
1062 | #include <remotelinux/remotelinuxrunconfiguration.h> |
1063 | -#include <analyzerbase/analyzerruncontrol.h> |
1064 | +#include <debugger/analyzer/analyzerruncontrol.h> |
1065 | |
1066 | #include <projectexplorer/buildconfiguration.h> |
1067 | #include <projectexplorer/project.h> |
1068 | @@ -14,6 +14,7 @@ |
1069 | #include <projectexplorer/kitinformation.h> |
1070 | |
1071 | #include <utils/qtcassert.h> |
1072 | +#include <utils/port.h> |
1073 | #include <qmldebug/qmloutputparser.h> |
1074 | |
1075 | #include <QPointer> |
1076 | @@ -24,30 +25,31 @@ |
1077 | class UbuntuRemoteAnalyzeSupportPrivate |
1078 | { |
1079 | public: |
1080 | - UbuntuRemoteAnalyzeSupportPrivate(Analyzer::AnalyzerRunControl *rc, Core::Id runMode) |
1081 | + UbuntuRemoteAnalyzeSupportPrivate(Debugger::AnalyzerRunControl *rc, Core::Id runMode) |
1082 | : runControl(rc), |
1083 | - qmlProfiling(runMode == ProjectExplorer::Constants::QML_PROFILER_RUN_MODE), |
1084 | - qmlPort(-1) |
1085 | + qmlPort(-1), |
1086 | + qmlProfiling(runMode == ProjectExplorer::Constants::QML_PROFILER_RUN_MODE) |
1087 | { |
1088 | } |
1089 | |
1090 | QString clickPackage; |
1091 | - const QPointer<Analyzer::AnalyzerRunControl> runControl; |
1092 | + |
1093 | + const QPointer<Debugger::AnalyzerRunControl> runControl; |
1094 | + QmlDebug::QmlOutputParser outputParser; |
1095 | + |
1096 | + Utils::Port qmlPort; |
1097 | bool qmlProfiling; |
1098 | - int qmlPort; |
1099 | - |
1100 | - QmlDebug::QmlOutputParser outputParser; |
1101 | }; |
1102 | |
1103 | UbuntuRemoteAnalyzeSupport::UbuntuRemoteAnalyzeSupport(UbuntuRemoteRunConfiguration *runConfig, |
1104 | - Analyzer::AnalyzerRunControl *engine, Core::Id runMode) |
1105 | + Debugger::AnalyzerRunControl *engine, Core::Id runMode) |
1106 | : AbstractRemoteRunSupport(runConfig, engine), |
1107 | d(new UbuntuRemoteAnalyzeSupportPrivate(engine, runMode)) |
1108 | { |
1109 | d->clickPackage = runConfig->clickPackage(); |
1110 | - connect(d->runControl, SIGNAL(starting(const Analyzer::AnalyzerRunControl*)), |
1111 | - SLOT(handleRemoteSetupRequested())); |
1112 | - connect(&d->outputParser, SIGNAL(waitingForConnectionOnPort(quint16)), |
1113 | + connect(d->runControl, &Debugger::AnalyzerRunControl::starting, |
1114 | + this, &UbuntuRemoteAnalyzeSupport::handleRemoteSetupRequested); |
1115 | + connect(&d->outputParser, SIGNAL(waitingForConnectionOnPort(Utils::Port)), |
1116 | SLOT(remoteIsRunning())); |
1117 | } |
1118 | |
1119 | @@ -59,7 +61,7 @@ |
1120 | void UbuntuRemoteAnalyzeSupport::showMessage(const QString &msg, Utils::OutputFormat format) |
1121 | { |
1122 | if (state() != Idle && d->runControl) |
1123 | - d->runControl->logApplicationMessage(msg, format); |
1124 | + d->runControl->appendMessage(msg, format); |
1125 | d->outputParser.processOutput(msg); |
1126 | } |
1127 | |
1128 | @@ -78,7 +80,8 @@ |
1129 | // Currently we support only QML profiling |
1130 | QTC_ASSERT(d->qmlProfiling, return); |
1131 | |
1132 | - if (!assignNextFreePort(&d->qmlPort)) |
1133 | + d->qmlPort = findFreePort(); |
1134 | + if (!d->qmlPort.isValid()) |
1135 | return; |
1136 | |
1137 | setState(Starting); |
1138 | @@ -91,7 +94,7 @@ |
1139 | connect(runner, SIGNAL(reportError(QString)), SLOT(handleAppRunnerError(QString))); |
1140 | |
1141 | runner->setEnv(environment()); |
1142 | - runner->setQmlDebugPort(d->qmlPort); |
1143 | + runner->setQmlDebugPort(d->qmlPort.number()); |
1144 | |
1145 | QTC_ASSERT(device()->type().toString().startsWith(QLatin1String(Constants::UBUNTU_DEVICE_TYPE_ID)),return); |
1146 | runner->start(qSharedPointerCast<const UbuntuDevice>(device()),clickPackage(),hook()); |
1147 | |
1148 | === modified file 'src/ubuntu/device/remote/ubunturemoteanalyzesupport.h' |
1149 | --- src/ubuntu/device/remote/ubunturemoteanalyzesupport.h 2016-03-29 09:41:07 +0000 |
1150 | +++ src/ubuntu/device/remote/ubunturemoteanalyzesupport.h 2016-08-24 15:35:12 +0000 |
1151 | @@ -3,7 +3,7 @@ |
1152 | |
1153 | #include <QObject> |
1154 | #include "abstractremoterunsupport.h" |
1155 | -#include <analyzerbase/analyzerruncontrol.h> |
1156 | +#include <debugger/analyzer/analyzerruncontrol.h> |
1157 | |
1158 | namespace Ubuntu { |
1159 | namespace Internal { |
1160 | @@ -16,7 +16,7 @@ |
1161 | Q_OBJECT |
1162 | public: |
1163 | UbuntuRemoteAnalyzeSupport(UbuntuRemoteRunConfiguration *runConfig, |
1164 | - Analyzer::AnalyzerRunControl *engine, Core::Id runMode); |
1165 | + Debugger::AnalyzerRunControl *engine, Core::Id runMode); |
1166 | ~UbuntuRemoteAnalyzeSupport() override; |
1167 | |
1168 | protected: |
1169 | |
1170 | === modified file 'src/ubuntu/device/remote/ubunturemotedebugsupport.cpp' |
1171 | --- src/ubuntu/device/remote/ubunturemotedebugsupport.cpp 2016-03-29 09:41:07 +0000 |
1172 | +++ src/ubuntu/device/remote/ubunturemotedebugsupport.cpp 2016-08-24 15:35:12 +0000 |
1173 | @@ -70,8 +70,8 @@ |
1174 | bool qmlDebugging; |
1175 | bool cppDebugging; |
1176 | QByteArray gdbserverOutput; |
1177 | - int gdbServerPort; |
1178 | - int qmlPort; |
1179 | + Utils::Port gdbServerPort; |
1180 | + Utils::Port qmlPort; |
1181 | }; |
1182 | |
1183 | UbuntuRemoteDebugSupport::UbuntuRemoteDebugSupport(UbuntuRemoteRunConfiguration* runConfig, |
1184 | @@ -80,6 +80,8 @@ |
1185 | d(new UbuntuRemoteDebugSupportPrivate(runConfig, runControl)) |
1186 | { |
1187 | connect(d->runControl, SIGNAL(requestRemoteSetup()), this, SLOT(handleRemoteSetupRequested())); |
1188 | + connect(d->runControl,&Debugger::DebuggerRunControl::finished, |
1189 | + this, &UbuntuRemoteDebugSupport::handleDebuggingFinished); |
1190 | } |
1191 | |
1192 | UbuntuRemoteDebugSupport::~UbuntuRemoteDebugSupport() |
1193 | @@ -105,10 +107,16 @@ |
1194 | |
1195 | setState(Starting); |
1196 | |
1197 | - if (d->cppDebugging && !assignNextFreePort(&d->gdbServerPort)) |
1198 | - return; |
1199 | - if (d->qmlDebugging && !assignNextFreePort(&d->qmlPort)) |
1200 | - return; |
1201 | + if (d->cppDebugging) { |
1202 | + d->gdbServerPort = findFreePort(); |
1203 | + if (!d->gdbServerPort.isValid()) |
1204 | + return; |
1205 | + } |
1206 | + if (d->qmlDebugging) { |
1207 | + d->qmlPort = findFreePort(); |
1208 | + if (!d->qmlPort.isValid()) |
1209 | + return; |
1210 | + } |
1211 | |
1212 | d->gdbserverOutput.clear(); |
1213 | |
1214 | @@ -120,9 +128,9 @@ |
1215 | connect(launcher, SIGNAL(clickApplicationStarted(quint16)), SLOT(handleRemoteProcessStarted(quint16))); |
1216 | |
1217 | if(d->cppDebugging) |
1218 | - launcher->setCppDebugPort(d->gdbServerPort); |
1219 | + launcher->setCppDebugPort(d->gdbServerPort.number()); |
1220 | if(d->qmlDebugging) |
1221 | - launcher->setQmlDebugPort(d->qmlPort); |
1222 | + launcher->setQmlDebugPort(d->qmlPort.number()); |
1223 | |
1224 | launcher->setEnv(environment()); |
1225 | |
1226 | @@ -222,7 +230,7 @@ |
1227 | |
1228 | Debugger::RemoteSetupResult result; |
1229 | result.success = true; |
1230 | - result.inferiorPid = d->runControl->startParameters().attachPID; |
1231 | + //result.inferiorPid = d->runControl->startParameters().attachPID; |
1232 | result.gdbServerPort = d->gdbServerPort; |
1233 | result.qmlServerPort = d->qmlPort; |
1234 | d->runControl->notifyEngineRemoteSetupFinished(result); |
1235 | |
1236 | === modified file 'src/ubuntu/device/remote/ubunturemoterunconfiguration.cpp' |
1237 | --- src/ubuntu/device/remote/ubunturemoterunconfiguration.cpp 2016-04-06 10:52:54 +0000 |
1238 | +++ src/ubuntu/device/remote/ubunturemoterunconfiguration.cpp 2016-08-24 15:35:12 +0000 |
1239 | @@ -31,6 +31,7 @@ |
1240 | #include <projectexplorer/target.h> |
1241 | #include <projectexplorer/project.h> |
1242 | #include <projectexplorer/buildsteplist.h> |
1243 | +#include <projectexplorer/runnables.h> |
1244 | #include <remotelinux/remotelinuxenvironmentaspect.h> |
1245 | #include <utils/qtcprocess.h> |
1246 | #include <cmakeprojectmanager/cmakeproject.h> |
1247 | @@ -57,7 +58,7 @@ |
1248 | const char UNINSTALL_KEY[]="UbuntuRemoteRunConfiguration.Uninstall"; |
1249 | |
1250 | UbuntuRemoteRunConfiguration::UbuntuRemoteRunConfiguration(ProjectExplorer::Target *parent, Core::Id id) |
1251 | - : AbstractRemoteLinuxRunConfiguration(parent,id), |
1252 | + : RunConfiguration(parent,id), |
1253 | m_running(false), |
1254 | m_forceInstall(false), |
1255 | m_uninstall(true) |
1256 | @@ -70,7 +71,7 @@ |
1257 | } |
1258 | |
1259 | UbuntuRemoteRunConfiguration::UbuntuRemoteRunConfiguration(ProjectExplorer::Target *parent, UbuntuRemoteRunConfiguration *source) |
1260 | - : AbstractRemoteLinuxRunConfiguration(parent,source), |
1261 | + : RunConfiguration(parent,source), |
1262 | m_running(false), |
1263 | m_forceInstall(false), |
1264 | m_uninstall(true) |
1265 | @@ -176,6 +177,20 @@ |
1266 | return ProjectExplorer::RunConfiguration::Configured; |
1267 | } |
1268 | |
1269 | +ProjectExplorer::Runnable UbuntuRemoteRunConfiguration::runnable() const |
1270 | +{ |
1271 | + if (m_remoteExecutable.isEmpty()) |
1272 | + return ProjectExplorer::Runnable(); |
1273 | + |
1274 | + ProjectExplorer::StandardRunnable r; |
1275 | + r.executable = m_remoteExecutable; |
1276 | + r.device = ProjectExplorer::DeviceKitInformation::device(target()->kit()); |
1277 | + |
1278 | + r.environment = environment(); |
1279 | + |
1280 | + return r; |
1281 | +} |
1282 | + |
1283 | /*! |
1284 | * \brief UbuntuRemoteRunConfiguration::aboutToStart |
1285 | * Configures the internal parameters and fetched the informations from |
1286 | @@ -225,7 +240,7 @@ |
1287 | } |
1288 | |
1289 | ProjectExplorer::ToolChain* tc = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit()); |
1290 | - if(tc->type() != QString::fromLatin1(Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) { |
1291 | + if(tc->typeId() != Constants::UBUNTU_CLICK_TOOLCHAIN_ID) { |
1292 | if(errorMessage) |
1293 | *errorMessage = tr("Wrong toolchain type. Please check your build configuration."); |
1294 | return false; |
1295 | @@ -407,7 +422,7 @@ |
1296 | { |
1297 | if(debug) qDebug()<<Q_FUNC_INFO; |
1298 | |
1299 | - if(!AbstractRemoteLinuxRunConfiguration::fromMap(map)) |
1300 | + if(!RunConfiguration::fromMap(map)) |
1301 | return false; |
1302 | |
1303 | m_uninstall = map.value(QLatin1String(UNINSTALL_KEY),true).toBool(); |
1304 | @@ -418,7 +433,7 @@ |
1305 | QVariantMap UbuntuRemoteRunConfiguration::toMap() const |
1306 | { |
1307 | if(debug) qDebug()<<Q_FUNC_INFO; |
1308 | - QVariantMap m = AbstractRemoteLinuxRunConfiguration::toMap(); |
1309 | + QVariantMap m = RunConfiguration::toMap(); |
1310 | m.insert(QLatin1String(UNINSTALL_KEY),m_uninstall); |
1311 | m.insert(QLatin1String(FORCE_INSTALL_KEY),m_forceInstall); |
1312 | return m; |
1313 | |
1314 | === modified file 'src/ubuntu/device/remote/ubunturemoterunconfiguration.h' |
1315 | --- src/ubuntu/device/remote/ubunturemoterunconfiguration.h 2016-03-29 09:41:07 +0000 |
1316 | +++ src/ubuntu/device/remote/ubunturemoterunconfiguration.h 2016-08-24 15:35:12 +0000 |
1317 | @@ -18,7 +18,7 @@ |
1318 | #ifndef UBUNTU_INTERNAL_UBUNTUREMOTERUNCONFIGURATION_H |
1319 | #define UBUNTU_INTERNAL_UBUNTUREMOTERUNCONFIGURATION_H |
1320 | |
1321 | -#include <remotelinux/abstractremotelinuxrunconfiguration.h> |
1322 | +#include <projectexplorer/runconfiguration.h> |
1323 | #include <coreplugin/id.h> |
1324 | |
1325 | namespace Ui { |
1326 | @@ -28,7 +28,7 @@ |
1327 | namespace Ubuntu { |
1328 | namespace Internal { |
1329 | |
1330 | -class UbuntuRemoteRunConfiguration : public RemoteLinux::AbstractRemoteLinuxRunConfiguration |
1331 | +class UbuntuRemoteRunConfiguration : public ProjectExplorer::RunConfiguration |
1332 | { |
1333 | Q_OBJECT |
1334 | Q_PROPERTY(bool forceInstall READ forceInstall WRITE setForceInstall NOTIFY forceInstallChanged) |
1335 | @@ -38,13 +38,12 @@ |
1336 | UbuntuRemoteRunConfiguration(ProjectExplorer::Target *parent, Core::Id id); |
1337 | UbuntuRemoteRunConfiguration(ProjectExplorer::Target *parent, UbuntuRemoteRunConfiguration *source); |
1338 | |
1339 | - // AbstractRemoteLinuxRunConfiguration interface |
1340 | public: |
1341 | - virtual QString localExecutableFilePath() const override; |
1342 | - virtual QString remoteExecutableFilePath() const override; |
1343 | - virtual QStringList arguments() const override; |
1344 | - virtual QString workingDirectory() const override; |
1345 | - virtual Utils::Environment environment() const override; |
1346 | + QString localExecutableFilePath() const; |
1347 | + QString remoteExecutableFilePath() const; |
1348 | + QStringList arguments() const; |
1349 | + QString workingDirectory() const; |
1350 | + Utils::Environment environment() const; |
1351 | |
1352 | virtual QStringList soLibSearchPaths () const; |
1353 | bool aboutToStart (QString *errorMessage); |
1354 | @@ -55,6 +54,7 @@ |
1355 | virtual QString disabledReason() const override; |
1356 | virtual bool isConfigured() const override; |
1357 | virtual ConfigurationState ensureConfigured(QString *) override; |
1358 | + virtual ProjectExplorer::Runnable runnable ( ) const override; |
1359 | |
1360 | // ProjectConfiguration interface |
1361 | virtual bool fromMap(const QVariantMap &map) override; |
1362 | |
1363 | === modified file 'src/ubuntu/device/remote/ubunturemoteruncontrol.cpp' |
1364 | --- src/ubuntu/device/remote/ubunturemoteruncontrol.cpp 2016-03-29 09:41:07 +0000 |
1365 | +++ src/ubuntu/device/remote/ubunturemoteruncontrol.cpp 2016-08-24 15:35:12 +0000 |
1366 | @@ -34,12 +34,12 @@ |
1367 | #include "ubuntudevice.h" |
1368 | #include "ubuntuwaitfordevicedialog.h" |
1369 | |
1370 | -#include <remotelinux/abstractremotelinuxrunconfiguration.h> |
1371 | #include <projectexplorer/devicesupport/deviceapplicationrunner.h> |
1372 | #include <projectexplorer/kitinformation.h> |
1373 | #include <projectexplorer/target.h> |
1374 | #include <utils/environment.h> |
1375 | #include <coreplugin/icore.h> |
1376 | +#include <coreplugin/coreicons.h> |
1377 | |
1378 | #include <QString> |
1379 | #include <QIcon> |
1380 | @@ -73,7 +73,7 @@ |
1381 | d->environment = d->runConfig->environment(); |
1382 | d->clickPackage = d->runConfig->clickPackage(); |
1383 | |
1384 | - setIcon(QLatin1String(ProjectExplorer::Constants::ICON_RUN_SMALL)); |
1385 | + setIcon(Core::Icons::RUN_SMALL); |
1386 | } |
1387 | |
1388 | UbuntuRemoteRunControl::~UbuntuRemoteRunControl() |
1389 | |
1390 | === modified file 'src/ubuntu/device/remote/ubunturemoteruncontrolfactory.cpp' |
1391 | --- src/ubuntu/device/remote/ubunturemoteruncontrolfactory.cpp 2016-03-29 09:41:07 +0000 |
1392 | +++ src/ubuntu/device/remote/ubunturemoteruncontrolfactory.cpp 2016-08-24 15:35:12 +0000 |
1393 | @@ -27,13 +27,13 @@ |
1394 | #include <debugger/debuggerplugin.h> |
1395 | #include <debugger/debuggerrunconfigurationaspect.h> |
1396 | #include <debugger/debuggerruncontrol.h> |
1397 | +#include <qmldebug/qmldebugcommandlinearguments.h> |
1398 | #include <remotelinux/remotelinuxdebugsupport.h> |
1399 | #include <remotelinux/remotelinuxruncontrol.h> |
1400 | #include <remotelinux/remotelinuxanalyzesupport.h> |
1401 | -#include <analyzerbase/analyzerstartparameters.h> |
1402 | -#include <analyzerbase/analyzermanager.h> |
1403 | -#include <analyzerbase/analyzerruncontrol.h> |
1404 | -#include <analyzerbase/ianalyzertool.h> |
1405 | +#include <debugger/analyzer/analyzerstartparameters.h> |
1406 | +#include <debugger/analyzer/analyzermanager.h> |
1407 | +#include <debugger/analyzer/analyzerruncontrol.h> |
1408 | #include <utils/portlist.h> |
1409 | #include <utils/qtcassert.h> |
1410 | |
1411 | @@ -45,7 +45,6 @@ |
1412 | |
1413 | bool UbuntuRemoteRunControlFactory::canRun(ProjectExplorer::RunConfiguration *runConfiguration, |
1414 | Core::Id mode) const { |
1415 | - |
1416 | if(qobject_cast<UbuntuRemoteRunConfiguration*>(runConfiguration)) { |
1417 | if (mode != ProjectExplorer::Constants::NORMAL_RUN_MODE |
1418 | && mode != ProjectExplorer::Constants::DEBUG_RUN_MODE |
1419 | @@ -74,7 +73,11 @@ |
1420 | if (!rc->aboutToStart(errorMessage)) |
1421 | return 0; |
1422 | |
1423 | - QTC_ASSERT(rc, return 0); |
1424 | + QTC_ASSERT(rc, return 0); |
1425 | + const auto rcRunnable = runConfiguration->runnable(); |
1426 | + QTC_ASSERT(rcRunnable.is<ProjectExplorer::StandardRunnable>(), return 0); |
1427 | + const auto stdRunnable = rcRunnable.as<ProjectExplorer::StandardRunnable>(); |
1428 | + |
1429 | |
1430 | if (mode == ProjectExplorer::Constants::NORMAL_RUN_MODE) { |
1431 | return new UbuntuRemoteRunControl(rc); |
1432 | @@ -94,34 +97,62 @@ |
1433 | return 0; |
1434 | } |
1435 | |
1436 | - if (2 > dev->freePorts().count()) { |
1437 | + auto aspect = rc->extraAspect<Debugger::DebuggerRunConfigurationAspect>(); |
1438 | + if (aspect->portsUsedByDebugger() > dev->freePorts().count()) { |
1439 | *errorMessage = tr("Cannot debug: Not enough free ports available."); |
1440 | return 0; |
1441 | } |
1442 | - Debugger::DebuggerStartParameters params = RemoteLinux::LinuxDeviceDebugSupport::startParameters(rc); |
1443 | + |
1444 | + /* |
1445 | + * Taken from remotelinuxruncontrolfactory.cpp and adapted |
1446 | + * to work here. |
1447 | + */ |
1448 | + Debugger::DebuggerStartParameters params; |
1449 | + params.startMode = Debugger::AttachToRemoteServer; |
1450 | + params.closeMode = Debugger::KillAndExitMonitorAtClose; |
1451 | + params.remoteSetupNeeded = true; |
1452 | + params.useContinueInsteadOfRun = true; |
1453 | + |
1454 | + if (aspect->useQmlDebugger()) { |
1455 | + params.qmlServer.host = dev->sshParameters().host; |
1456 | + params.qmlServer.port = Utils::Port(); // port is selected later on |
1457 | + } |
1458 | + if (aspect->useCppDebugger()) { |
1459 | + aspect->setUseMultiProcess(true); |
1460 | +#if 1 |
1461 | + params.inferior.executable = stdRunnable.executable; |
1462 | + params.inferior.commandLineArguments = stdRunnable.commandLineArguments; |
1463 | + if (aspect->useQmlDebugger()) { |
1464 | + params.inferior.commandLineArguments.prepend(QLatin1Char(' ')); |
1465 | + params.inferior.commandLineArguments.prepend(QmlDebug::qmlDebugTcpArguments(QmlDebug::QmlDebuggerServices)); |
1466 | + } |
1467 | +#endif |
1468 | + params.remoteChannel = dev->sshParameters().host + QLatin1String(":-1"); |
1469 | + params.symbolFile = rc->localExecutableFilePath(); |
1470 | + } |
1471 | |
1472 | params.solibSearchPath.append(rc->soLibSearchPaths()); |
1473 | |
1474 | - //Always leave this empty or the debugger backend tries to execute |
1475 | - //the binary on the phone instead of attaching and continuing the already |
1476 | - //running app |
1477 | - params.remoteExecutable = QString(); |
1478 | - //params.expectedSignals.append("SIGTRAP"); |
1479 | - |
1480 | - if(debug) qDebug()<<"Solib search path : "<<params.solibSearchPath; |
1481 | - |
1482 | - Debugger::DebuggerRunControl * const runControl |
1483 | - = Debugger::createDebuggerRunControl(params, rc, errorMessage, mode); |
1484 | + Debugger::DebuggerRunControl * const runControl = Debugger::createDebuggerRunControl(params, rc, errorMessage, mode); |
1485 | if (!runControl) |
1486 | return 0; |
1487 | + |
1488 | UbuntuRemoteDebugSupport * const debugSupport = |
1489 | new UbuntuRemoteDebugSupport(rc, runControl); |
1490 | connect(runControl, SIGNAL(finished()), debugSupport, SLOT(handleDebuggingFinished())); |
1491 | return runControl; |
1492 | |
1493 | } else if ( mode == ProjectExplorer::Constants::QML_PROFILER_RUN_MODE ) { |
1494 | - Analyzer::AnalyzerStartParameters params = RemoteLinux::RemoteLinuxAnalyzeSupport::startParameters(rc, mode); |
1495 | - Analyzer::AnalyzerRunControl *runControl = Analyzer::AnalyzerManager::createRunControl(params, runConfiguration); |
1496 | + /* |
1497 | + * Taken from remotelinuxruncontrolfactory.cpp and adapted |
1498 | + * to work here. |
1499 | + */ |
1500 | + auto runControl = Debugger::createAnalyzerRunControl(rc, mode); |
1501 | + Debugger::AnalyzerConnection connection; |
1502 | + connection.connParams = |
1503 | + ProjectExplorer::DeviceKitInformation::device(rc->target()->kit())->sshParameters(); |
1504 | + connection.analyzerHost = connection.connParams.host; |
1505 | + runControl->setConnection(connection); |
1506 | UbuntuRemoteAnalyzeSupport * const analyzeSupport = |
1507 | new UbuntuRemoteAnalyzeSupport(rc, runControl, mode); |
1508 | connect(runControl, SIGNAL(finished()), analyzeSupport, SLOT(handleProfilingFinished())); |
1509 | |
1510 | === modified file 'src/ubuntu/device/remote/ubunturemoterunner.cpp' |
1511 | --- src/ubuntu/device/remote/ubunturemoterunner.cpp 2016-03-29 09:41:07 +0000 |
1512 | +++ src/ubuntu/device/remote/ubunturemoterunner.cpp 2016-08-24 15:35:12 +0000 |
1513 | @@ -19,7 +19,7 @@ |
1514 | const QString SSH_BASE_COMMAND = QStringLiteral("ssh -i %1 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p%2 %3@%4"); |
1515 | |
1516 | enum { |
1517 | - debug = 0 |
1518 | + debug = 1 |
1519 | }; |
1520 | |
1521 | class UbuntuRemoteClickApplicationRunnerPrivate |
1522 | |
1523 | === modified file 'src/ubuntu/localportsmanager.cpp' |
1524 | --- src/ubuntu/localportsmanager.cpp 2014-11-26 19:45:36 +0000 |
1525 | +++ src/ubuntu/localportsmanager.cpp 2016-08-24 15:35:12 +0000 |
1526 | @@ -100,13 +100,13 @@ |
1527 | if (serial == device && localPort >= m_instance->m_first && localPort <= m_instance->m_last) { |
1528 | if(debug) qDebug()<<"Found port already linked to device: "<<localPort<<":"<<remotePort; |
1529 | |
1530 | - freePorts.addPort(localPort); |
1531 | + freePorts.addPort(Utils::Port(localPort)); |
1532 | |
1533 | if (freePorts.count() == count) |
1534 | break; |
1535 | } else { |
1536 | if(debug) qDebug()<<"Found port in use: "<<localPort<<":"<<remotePort; |
1537 | - usedPorts.addPort(localPort); |
1538 | + usedPorts.addPort(Utils::Port(localPort)); |
1539 | } |
1540 | } |
1541 | |
1542 | @@ -116,14 +116,14 @@ |
1543 | int port = firstPort + i; |
1544 | |
1545 | //is the port in use? |
1546 | - if(usedPorts.contains(port)) |
1547 | + if(usedPorts.contains(Utils::Port(port))) |
1548 | continue; |
1549 | |
1550 | //is that port already assigned to us? |
1551 | - if(freePorts.contains(port)) |
1552 | + if(freePorts.contains(Utils::Port(port))) |
1553 | continue; |
1554 | |
1555 | - freePorts.addPort(port); |
1556 | + freePorts.addPort(Utils::Port(port)); |
1557 | found++; |
1558 | if(debug) qDebug()<<"Found free port: "<<port; |
1559 | } |
1560 | |
1561 | === modified file 'src/ubuntu/ubuntuabstractguieditordocument.cpp' |
1562 | --- src/ubuntu/ubuntuabstractguieditordocument.cpp 2015-03-06 15:02:08 +0000 |
1563 | +++ src/ubuntu/ubuntuabstractguieditordocument.cpp 2016-08-24 15:35:12 +0000 |
1564 | @@ -59,16 +59,6 @@ |
1565 | return false; |
1566 | } |
1567 | |
1568 | -QString UbuntuAbstractGuiEditorDocument::defaultPath() const |
1569 | -{ |
1570 | - return filePath().toFileInfo().absolutePath(); |
1571 | -} |
1572 | - |
1573 | -QString UbuntuAbstractGuiEditorDocument::suggestedFileName() const |
1574 | -{ |
1575 | - return filePath().toFileInfo().fileName(); |
1576 | -} |
1577 | - |
1578 | bool UbuntuAbstractGuiEditorDocument::isModified() const |
1579 | { |
1580 | return TextDocument::isModified() || m_editorWidget->isModified(); |
1581 | |
1582 | === modified file 'src/ubuntu/ubuntuabstractguieditordocument.h' |
1583 | --- src/ubuntu/ubuntuabstractguieditordocument.h 2016-07-22 10:17:50 +0000 |
1584 | +++ src/ubuntu/ubuntuabstractguieditordocument.h 2016-08-24 15:35:12 +0000 |
1585 | @@ -33,10 +33,6 @@ |
1586 | public: |
1587 | UbuntuAbstractGuiEditorDocument(const QString &mimeType, UbuntuAbstractGuiEditorWidget *editorWidget); |
1588 | bool save(QString *errorString, const QString &fileName = QString(), bool autoSave = false) override; |
1589 | - |
1590 | - QString defaultPath() const override; |
1591 | - QString suggestedFileName() const override; |
1592 | - |
1593 | bool isModified() const override; |
1594 | bool isSaveAsAllowed() const override; |
1595 | private: |
1596 | |
1597 | === modified file 'src/ubuntu/ubuntuclickdialog.cpp' |
1598 | --- src/ubuntu/ubuntuclickdialog.cpp 2016-05-17 16:33:36 +0000 |
1599 | +++ src/ubuntu/ubuntuclickdialog.cpp 2016-08-24 15:35:12 +0000 |
1600 | @@ -113,7 +113,7 @@ |
1601 | int code = runProcessModal(paramList); |
1602 | if(mode == UbuntuClickTool::Delete) { |
1603 | //redetect documentation |
1604 | - QtSupport::QtVersionManager::delayedInitialize(); |
1605 | + QtSupport::QtVersionManager::triggerDocumentationUpdate(); |
1606 | } |
1607 | return code; |
1608 | } |
1609 | |
1610 | === modified file 'src/ubuntu/ubuntuclicktool.cpp' |
1611 | --- src/ubuntu/ubuntuclicktool.cpp 2016-07-12 08:47:56 +0000 |
1612 | +++ src/ubuntu/ubuntuclicktool.cpp 2016-08-24 15:35:12 +0000 |
1613 | @@ -105,7 +105,7 @@ |
1614 | const QMap<QString, QString> &envMap) |
1615 | { |
1616 | ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(target); |
1617 | - if (!tc || tc->type() != QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) { |
1618 | + if (!tc || tc->typeId() != Constants::UBUNTU_CLICK_TOOLCHAIN_ID) { |
1619 | ProjectExplorer::ProcessParameters p; |
1620 | p.setArguments(Utils::QtcProcess::joinArgs(args)); |
1621 | p.setCommand(cmd); |
1622 | @@ -253,6 +253,10 @@ |
1623 | |
1624 | QString UbuntuClickTool::targetBasePath(const UbuntuClickTool::Target &target) |
1625 | { |
1626 | + static QMap<QString, QString> basePathCache; |
1627 | + if (basePathCache.contains(target.containerName)) |
1628 | + return basePathCache.value(target.containerName); |
1629 | + |
1630 | QProcess sdkTool; |
1631 | sdkTool.setReadChannel(QProcess::StandardOutput); |
1632 | sdkTool.setProgram(Constants::UBUNTU_TARGET_TOOL); |
1633 | @@ -264,7 +268,9 @@ |
1634 | return QString(); |
1635 | |
1636 | QTextStream in(&sdkTool); |
1637 | - return in.readAll().trimmed(); |
1638 | + QString basePath = in.readAll().trimmed(); |
1639 | + basePathCache.insert(target.containerName, basePath); |
1640 | + return basePath; |
1641 | } |
1642 | |
1643 | bool UbuntuClickTool::parseContainerName(const QString &name, UbuntuClickTool::Target *target, QStringList *allExt) |
1644 | @@ -292,9 +298,14 @@ |
1645 | */ |
1646 | bool UbuntuClickTool::targetExists(const UbuntuClickTool::Target &target) |
1647 | { |
1648 | + return targetExists(target.containerName); |
1649 | +} |
1650 | + |
1651 | +bool UbuntuClickTool::targetExists(const QString &targetName) |
1652 | +{ |
1653 | QProcess proc; |
1654 | proc.start(Constants::UBUNTU_TARGET_TOOL, |
1655 | - QStringList()<<QStringLiteral("exists")<<target.containerName); |
1656 | + QStringList()<<QStringLiteral("exists")<<targetName); |
1657 | if(!proc.waitForFinished(3000)) { |
1658 | qWarning()<<"usdk-target did not return in time."; |
1659 | return false; |
1660 | @@ -394,7 +405,7 @@ |
1661 | return nullptr; |
1662 | |
1663 | ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(t->kit()); |
1664 | - if(!tc || (tc->type() != QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID))) |
1665 | + if(!tc || (tc->typeId() != Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) |
1666 | return nullptr; |
1667 | |
1668 | Internal::ClickToolChain *clickTc = static_cast<Internal::ClickToolChain*>(tc); |
1669 | @@ -460,13 +471,13 @@ |
1670 | return UbuntuClickTool::findOrCreateToolWrapper(QStringLiteral("make"),target); |
1671 | } |
1672 | |
1673 | -QString UbuntuClickTool::mapIncludePathsForCMake(ProjectExplorer::Kit *k, const QString &in) |
1674 | +QString UbuntuClickTool::mapIncludePathsForCMake(const ProjectExplorer::Kit *k, const QString &in) |
1675 | { |
1676 | if (in.isEmpty()) |
1677 | return in; |
1678 | |
1679 | bool canMap = ProjectExplorer::ToolChainKitInformation::toolChain(k) |
1680 | - && ProjectExplorer::ToolChainKitInformation::toolChain(k)->type() == QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID) |
1681 | + && ProjectExplorer::ToolChainKitInformation::toolChain(k)->typeId() == Constants::UBUNTU_CLICK_TOOLCHAIN_ID |
1682 | && !ProjectExplorer::SysRootKitInformation::sysRoot(k).isEmpty(); |
1683 | |
1684 | if (!canMap) |
1685 | |
1686 | === modified file 'src/ubuntu/ubuntuclicktool.h' |
1687 | --- src/ubuntu/ubuntuclicktool.h 2016-07-12 08:47:56 +0000 |
1688 | +++ src/ubuntu/ubuntuclicktool.h 2016-08-24 15:35:12 +0000 |
1689 | @@ -25,6 +25,7 @@ |
1690 | #include <QFutureInterface> |
1691 | #include <QQueue> |
1692 | #include <projectexplorer/processparameters.h> |
1693 | +#include <cmakeprojectmanager/cmaketool.h> |
1694 | #include <utils/qtcprocess.h> |
1695 | #include <QDebug> |
1696 | |
1697 | @@ -85,11 +86,12 @@ |
1698 | static QString findOrCreateToolWrapper(const QString &tool, const UbuntuClickTool::Target &target); |
1699 | static QString findOrCreateQMakeWrapper(const UbuntuClickTool::Target &target); |
1700 | static QString findOrCreateMakeWrapper(const UbuntuClickTool::Target &target); |
1701 | - static QString mapIncludePathsForCMake(ProjectExplorer::Kit *k, const QString &in); |
1702 | + static QString mapIncludePathsForCMake(const ProjectExplorer::Kit *k, const QString &in); |
1703 | static QString hostArchitecture (); |
1704 | static bool compatibleWithHostArchitecture (const QString &targetArch); |
1705 | |
1706 | static bool targetExists (const Target& target); |
1707 | + static bool targetExists (const QString& targetName); |
1708 | static QList<Target> listAvailableTargets (const QString &framework=QString()); |
1709 | static QList<Target> listPossibleDeviceContainers (); |
1710 | static const Target *clickTargetFromTarget(ProjectExplorer::Target *t); |
1711 | |
1712 | === modified file 'src/ubuntu/ubuntucmakecache.cpp' |
1713 | --- src/ubuntu/ubuntucmakecache.cpp 2014-11-14 11:12:31 +0000 |
1714 | +++ src/ubuntu/ubuntucmakecache.cpp 2016-08-24 15:35:12 +0000 |
1715 | @@ -8,6 +8,7 @@ |
1716 | |
1717 | #include <QRegularExpression> |
1718 | #include <QDir> |
1719 | +#include <QDebug> |
1720 | |
1721 | namespace Ubuntu{ |
1722 | namespace Internal { |
1723 | |
1724 | === modified file 'src/ubuntu/ubuntuconstants.h' |
1725 | --- src/ubuntu/ubuntuconstants.h 2016-07-06 09:18:16 +0000 |
1726 | +++ src/ubuntu/ubuntuconstants.h 2016-08-24 15:35:12 +0000 |
1727 | @@ -251,6 +251,7 @@ |
1728 | |
1729 | const char UBUNTU_ICON[] = ":/ubuntu/images/ubuntu-32.png"; |
1730 | |
1731 | +/* |
1732 | const char FEATURE_UNITY_SCOPE[] = "Ubuntu.Wizards.FeatureUnityScope"; |
1733 | const char FEATURE_UBUNTU_PRECISE[] = "Ubuntu.Wizards.FeatureUbuntuPrecise"; |
1734 | const char FEATURE_UBUNTU_QUANTAL[] = "Ubuntu.Wizards.FeatureUbuntuQuantal"; |
1735 | @@ -274,6 +275,7 @@ |
1736 | |
1737 | const char PLATFORM_DESKTOP[] = "Desktop"; |
1738 | const char PLATFORM_DESKTOP_DISPLAYNAME[] = "Ubuntu %0"; |
1739 | +*/ |
1740 | |
1741 | const char TASK_DEVICE_SCRIPT[] = "Ubuntu.Task.DeviceScript"; |
1742 | |
1743 | |
1744 | === modified file 'src/ubuntu/ubuntudevicemode.cpp' |
1745 | --- src/ubuntu/ubuntudevicemode.cpp 2015-06-19 07:13:13 +0000 |
1746 | +++ src/ubuntu/ubuntudevicemode.cpp 2016-08-24 15:35:12 +0000 |
1747 | @@ -85,7 +85,6 @@ |
1748 | m_modeView->rootContext()->setContextProperty(QLatin1String("resourceRoot") ,Constants::UBUNTU_DEVICESCREEN_ROOT); |
1749 | m_modeView->setSource(QUrl::fromLocalFile(Constants::UBUNTU_DEVICESCREEN_QML)); |
1750 | |
1751 | - connect(Core::ModeManager::instance(), SIGNAL(currentModeChanged(Core::IMode*)), SLOT(modeChanged(Core::IMode*))); |
1752 | setWidget(m_modeWidget); |
1753 | } |
1754 | |
1755 | @@ -113,11 +112,6 @@ |
1756 | m_qmlControl->showAddEmulatorDialog(); |
1757 | } |
1758 | |
1759 | -void UbuntuDeviceMode::modeChanged(Core::IMode *mode) |
1760 | -{ |
1761 | - Q_UNUSED(mode); |
1762 | -} |
1763 | - |
1764 | void UbuntuDeviceMode::initialize() { |
1765 | |
1766 | } |
1767 | |
1768 | === modified file 'src/ubuntu/ubuntudevicemode.h' |
1769 | --- src/ubuntu/ubuntudevicemode.h 2016-03-29 09:41:07 +0000 |
1770 | +++ src/ubuntu/ubuntudevicemode.h 2016-08-24 15:35:12 +0000 |
1771 | @@ -73,9 +73,6 @@ |
1772 | signals: |
1773 | void updateDeviceActions (); |
1774 | |
1775 | -protected slots: |
1776 | - void modeChanged(Core::IMode*); |
1777 | - |
1778 | protected: |
1779 | static UbuntuDeviceMode *m_instance; |
1780 | UbuntuDevicesModel *m_devicesModel; |
1781 | |
1782 | === modified file 'src/ubuntu/ubuntudevicesmodel.cpp' |
1783 | --- src/ubuntu/ubuntudevicesmodel.cpp 2015-11-11 14:50:13 +0000 |
1784 | +++ src/ubuntu/ubuntudevicesmodel.cpp 2016-08-24 15:35:12 +0000 |
1785 | @@ -209,7 +209,7 @@ |
1786 | case Qt::EditRole: |
1787 | return m_knownDevices[index.row()]->device()->displayName(); |
1788 | case UniqueIdRole: |
1789 | - return m_knownDevices[index.row()]->id().uniqueIdentifier(); |
1790 | + return qVariantFromValue(m_knownDevices[index.row()]->id()); |
1791 | case DetectionStateRole: |
1792 | return m_knownDevices[index.row()]->device()->detectionState(); |
1793 | case DetectionStateStringRole: |
1794 | @@ -294,62 +294,62 @@ |
1795 | return QAbstractListModel::flags(index) | Qt::ItemIsEditable; |
1796 | } |
1797 | |
1798 | -void UbuntuDevicesModel::triggerPortForwarding(const int devId) |
1799 | +void UbuntuDevicesModel::triggerPortForwarding(const QVariant &devId) |
1800 | { |
1801 | - int row = findDevice(devId); |
1802 | + int row = findDevice(devId.value<Core::Id>()); |
1803 | if(row < 0) |
1804 | return; |
1805 | m_knownDevices[row]->device()->enablePortForward(); |
1806 | } |
1807 | |
1808 | -void UbuntuDevicesModel::triggerSSHSetup(const int devId) |
1809 | +void UbuntuDevicesModel::triggerSSHSetup(const QVariant &devId) |
1810 | { |
1811 | - int row = findDevice(devId); |
1812 | + int row = findDevice(devId.value<Core::Id>()); |
1813 | if(row < 0) |
1814 | return; |
1815 | m_knownDevices[row]->device()->deployPublicKey(); |
1816 | } |
1817 | |
1818 | -void UbuntuDevicesModel::triggerSSHConnection(const int devId) |
1819 | +void UbuntuDevicesModel::triggerSSHConnection(const QVariant &devId) |
1820 | { |
1821 | - int row = findDevice(devId); |
1822 | + int row = findDevice(devId.value<Core::Id>()); |
1823 | if(row < 0) |
1824 | return; |
1825 | m_knownDevices[row]->device()->openTerminal(); |
1826 | } |
1827 | |
1828 | -void UbuntuDevicesModel::triggerKitAutocreate(const int devId) |
1829 | +void UbuntuDevicesModel::triggerKitAutocreate(const QVariant &devId) |
1830 | { |
1831 | - int row = findDevice(devId); |
1832 | + int row = findDevice(devId.value<Core::Id>()); |
1833 | if(row < 0) |
1834 | return; |
1835 | UbuntuKitManager::autoCreateKit(m_knownDevices[row]->device()); |
1836 | } |
1837 | |
1838 | -void UbuntuDevicesModel::triggerKitRemove(const int devId, const QVariant &kitid) |
1839 | +void UbuntuDevicesModel::triggerKitRemove(const QVariant &devId, const QVariant &kitid) |
1840 | { |
1841 | - int row = findDevice(devId); |
1842 | + int row = findDevice(devId.value<Core::Id>()); |
1843 | if(row < 0) |
1844 | return; |
1845 | |
1846 | ProjectExplorer::Kit* k = ProjectExplorer::KitManager::find(Core::Id::fromSetting(kitid)); |
1847 | - if(ProjectExplorer::DeviceKitInformation::deviceId(k) == Core::Id::fromUniqueIdentifier(devId)) { |
1848 | + if(ProjectExplorer::DeviceKitInformation::deviceId(k) == devId.value<Core::Id>()) { |
1849 | //completely delete the kit |
1850 | ProjectExplorer::KitManager::deregisterKit(k); |
1851 | } |
1852 | } |
1853 | |
1854 | -void UbuntuDevicesModel::triggerRedetect(const int devId) |
1855 | +void UbuntuDevicesModel::triggerRedetect(const QVariant &devId) |
1856 | { |
1857 | - int row = findDevice(devId); |
1858 | + int row = findDevice(devId.value<Core::Id>()); |
1859 | if(row < 0) |
1860 | return; |
1861 | m_knownDevices[row]->device()->helper()->refresh(); |
1862 | } |
1863 | |
1864 | -void UbuntuDevicesModel::deleteDevice(const int devId) |
1865 | +void UbuntuDevicesModel::deleteDevice(const QVariant &devId) |
1866 | { |
1867 | - int index = findDevice(devId); |
1868 | + int index = findDevice(devId.value<Core::Id>()); |
1869 | if(index < 0) { |
1870 | QMessageBox::critical(Core::ICore::mainWindow(),tr("Could not delete device"),tr("The device ID is unknown, please press the refresh button and try again.")); |
1871 | return; |
1872 | @@ -374,18 +374,18 @@ |
1873 | } |
1874 | } |
1875 | |
1876 | -int UbuntuDevicesModel::findDevice(int uniqueIdentifier) const |
1877 | +int UbuntuDevicesModel::findDevice(const Core::Id &devId) const |
1878 | { |
1879 | for ( int i = 0; i < m_knownDevices.size(); i++ ) { |
1880 | - if(m_knownDevices[i]->id().uniqueIdentifier() == uniqueIdentifier) |
1881 | + if(m_knownDevices[i]->id() == devId) |
1882 | return i; |
1883 | } |
1884 | return -1; |
1885 | } |
1886 | |
1887 | -bool UbuntuDevicesModel::hasDevice(int uniqueIdentifier) const |
1888 | +bool UbuntuDevicesModel::hasDevice(const Core::Id &devId) const |
1889 | { |
1890 | - return findDevice(uniqueIdentifier) >= 0; |
1891 | + return findDevice(devId) >= 0; |
1892 | } |
1893 | |
1894 | UbuntuDevice::ConstPtr UbuntuDevicesModel::device(const int index) |
1895 | @@ -415,7 +415,7 @@ |
1896 | { |
1897 | UbuntuDevicesItem* hlpr = qobject_cast<UbuntuDevicesItem*>(possibleHelper); |
1898 | if(!hlpr) return -1; |
1899 | - return findDevice(hlpr->id().uniqueIdentifier()); |
1900 | + return findDevice(hlpr->id()); |
1901 | } |
1902 | |
1903 | void UbuntuDevicesModel::deviceChanged(QObject *possibleHelper, const QVector<int> &relatedRoles) |
1904 | @@ -529,7 +529,7 @@ |
1905 | |
1906 | if(debug) qDebug()<<"Device Manager reports device added: "<<id.toString(); |
1907 | |
1908 | - if (hasDevice(id.uniqueIdentifier())) |
1909 | + if (hasDevice(id)) |
1910 | return; |
1911 | |
1912 | Ubuntu::Internal::UbuntuDevice::ConstPtr ubuntuDev |
1913 | @@ -550,7 +550,7 @@ |
1914 | */ |
1915 | void UbuntuDevicesModel::deviceRemoved(const Core::Id &id) |
1916 | { |
1917 | - int index = findDevice(id.uniqueIdentifier()); |
1918 | + int index = findDevice(id); |
1919 | if(index < 0) |
1920 | return; |
1921 | |
1922 | @@ -573,7 +573,7 @@ |
1923 | << Qt::DisplayRole << Qt::EditRole |
1924 | << ConnectionStateRole << ConnectionStateStringRole; |
1925 | |
1926 | - int index = findDevice(id.uniqueIdentifier()); |
1927 | + int index = findDevice(id); |
1928 | if(index >= 0) { |
1929 | QModelIndex changed = createIndex(index,0); |
1930 | emit dataChanged(changed, changed,relatedRoles); |
1931 | @@ -582,7 +582,7 @@ |
1932 | |
1933 | void UbuntuDevicesModel::deviceConnected(const QString &id) |
1934 | { |
1935 | - int idx = findDevice(Core::Id::fromSetting(id).uniqueIdentifier()); |
1936 | + int idx = findDevice(Core::Id::fromSetting(id)); |
1937 | if(idx >= 0) |
1938 | return; |
1939 | |
1940 | @@ -599,7 +599,7 @@ |
1941 | */ |
1942 | void UbuntuDevicesModel::registerNewDevice(const QString &serial, const QString &arch) |
1943 | { |
1944 | - if(findDevice(Core::Id::fromSetting(serial).uniqueIdentifier()) >= 0) |
1945 | + if(findDevice(Core::Id::fromSetting(serial)) >= 0) |
1946 | return; |
1947 | |
1948 | if(!ClickToolChain::supportedArchitectures().contains(arch)) { |
1949 | @@ -650,30 +650,24 @@ |
1950 | switch(m_state) { |
1951 | case CheckEmulatorInstalled: { |
1952 | return tr("Checking if emulator tool is installed"); |
1953 | - break; |
1954 | } |
1955 | case InstallEmulator: { |
1956 | return tr("Installing emulator tool"); |
1957 | - break; |
1958 | } |
1959 | case CreateEmulatorImage: { |
1960 | return tr("Creating emulator image"); |
1961 | - break; |
1962 | } |
1963 | case ReadFromSettings:{ |
1964 | return tr("Reading settings"); |
1965 | } |
1966 | case FindImages:{ |
1967 | return tr("Searching for emulator images"); |
1968 | - break; |
1969 | } |
1970 | case AdbList:{ |
1971 | return tr("Querying ADB"); |
1972 | - break; |
1973 | } |
1974 | default: |
1975 | return QString(); |
1976 | - break; |
1977 | } |
1978 | } |
1979 | |
1980 | @@ -816,7 +810,7 @@ |
1981 | |
1982 | void UbuntuDevicesModel::startEmulator(const QString &name) |
1983 | { |
1984 | - int idx = findDevice(Core::Id::fromSetting(name).uniqueIdentifier()); |
1985 | + int idx = findDevice(Core::Id::fromSetting(name)); |
1986 | if(idx < 0) |
1987 | return; |
1988 | |
1989 | @@ -828,7 +822,7 @@ |
1990 | |
1991 | void UbuntuDevicesModel::stopEmulator(const QString &name) |
1992 | { |
1993 | - int idx = findDevice(Core::Id::fromSetting(name).uniqueIdentifier()); |
1994 | + int idx = findDevice(Core::Id::fromSetting(name)); |
1995 | if(idx < 0) |
1996 | return; |
1997 | |
1998 | @@ -841,7 +835,7 @@ |
1999 | |
2000 | void UbuntuDevicesModel::deleteEmulator(const QString &name) |
2001 | { |
2002 | - int index = findDevice(Core::Id::fromSetting(name).uniqueIdentifier()); |
2003 | + int index = findDevice(Core::Id::fromSetting(name)); |
2004 | if(index < 0) |
2005 | return; |
2006 | |
2007 | @@ -865,7 +859,9 @@ |
2008 | QVariant UbuntuDevicesModel::validateEmulatorName(const QString &name) |
2009 | { |
2010 | QString error; |
2011 | - bool result = Utils::ProjectIntroPage::validateProjectName(name,&error); |
2012 | + |
2013 | + QRegularExpression exp(QStringLiteral("^[a-zA-Z][a-zA-Z0-9]+")); |
2014 | + bool result = exp.match(name).hasMatch(); |
2015 | |
2016 | if(result) { |
2017 | foreach (UbuntuDevicesItem *item, m_knownDevices) { |
2018 | @@ -877,6 +873,8 @@ |
2019 | } |
2020 | } |
2021 | } |
2022 | + } else { |
2023 | + error = tr("Emulator names can only contain letters and numbers."); |
2024 | } |
2025 | |
2026 | QVariantMap m; |
2027 | @@ -966,10 +964,10 @@ |
2028 | case FindImages: { |
2029 | QStringList lines = m_reply.trimmed().split(QLatin1String(Constants::LINEFEED)); |
2030 | |
2031 | - QSet<int> notFoundImages; |
2032 | + QSet<Core::Id> notFoundImages; |
2033 | foreach(UbuntuDevicesItem *item, m_knownDevices) { |
2034 | if(item->device()->machineType() == ProjectExplorer::IDevice::Emulator) |
2035 | - notFoundImages.insert(item->device()->id().uniqueIdentifier()); |
2036 | + notFoundImages.insert(item->device()->id()); |
2037 | } |
2038 | |
2039 | QMutableStringListIterator iter(lines); |
2040 | @@ -1021,10 +1019,10 @@ |
2041 | bool addToManager = false; |
2042 | Ubuntu::Internal::UbuntuDevice::Ptr dev; |
2043 | Core::Id devId = Core::Id::fromSetting(deviceSerial); |
2044 | - int index = findDevice(devId.uniqueIdentifier()); |
2045 | + int index = findDevice(devId); |
2046 | |
2047 | if(index >= 0) { |
2048 | - notFoundImages.remove(devId.uniqueIdentifier()); |
2049 | + notFoundImages.remove(devId); |
2050 | dev = m_knownDevices[index]->device(); |
2051 | } else { |
2052 | dev = Ubuntu::Internal::UbuntuDevice::create( |
2053 | @@ -1046,8 +1044,12 @@ |
2054 | } |
2055 | |
2056 | //remove all ubuntu emulators that are in the settings but don't exist in the system |
2057 | - foreach(int curr,notFoundImages) { |
2058 | - ProjectExplorer::DeviceManager::instance()->removeDevice(Core::Id::fromUniqueIdentifier(curr)); |
2059 | + foreach(const Core::Id &curr,notFoundImages) { |
2060 | + int row = findDevice(curr); |
2061 | + if (row < 0 || row >= rowCount()) |
2062 | + continue; |
2063 | + |
2064 | + ProjectExplorer::DeviceManager::instance()->removeDevice(m_knownDevices.at(row)->id()); |
2065 | } |
2066 | |
2067 | queryAdb(); |
2068 | @@ -1069,7 +1071,7 @@ |
2069 | continue; |
2070 | } |
2071 | |
2072 | - QRegularExpression exp(QLatin1String(Constants::UBUNTUDEVICESWIDGET_ONFINISHED_ADB_REGEX)); |
2073 | + QRegularExpression exp((QLatin1String(Constants::UBUNTUDEVICESWIDGET_ONFINISHED_ADB_REGEX))); |
2074 | QRegularExpressionMatch match = exp.match(line); |
2075 | |
2076 | if(match.hasMatch()) { |
2077 | @@ -1231,4 +1233,3 @@ |
2078 | |
2079 | } |
2080 | } |
2081 | - |
2082 | |
2083 | === modified file 'src/ubuntu/ubuntudevicesmodel.h' |
2084 | --- src/ubuntu/ubuntudevicesmodel.h 2016-07-22 10:17:50 +0000 |
2085 | +++ src/ubuntu/ubuntudevicesmodel.h 2016-08-24 15:35:12 +0000 |
2086 | @@ -88,8 +88,8 @@ |
2087 | |
2088 | Q_INVOKABLE bool set(int index, const QString &role, const QVariant &value); |
2089 | |
2090 | - int findDevice(int uniqueIdentifier) const; |
2091 | - bool hasDevice (int uniqueIdentifier) const; |
2092 | + int findDevice(const Core::Id &devId) const; |
2093 | + bool hasDevice (const Core::Id &devId) const; |
2094 | UbuntuDevice::ConstPtr device ( const int index ); |
2095 | |
2096 | // QAbstractItemModel interface |
2097 | @@ -116,13 +116,13 @@ |
2098 | void stateChanged(QString arg); |
2099 | |
2100 | public slots: |
2101 | - void triggerPortForwarding ( const int devId ); |
2102 | - void triggerSSHSetup ( const int devId ); |
2103 | - void triggerSSHConnection ( const int devId ); |
2104 | - void triggerKitAutocreate ( const int devId ); |
2105 | - void triggerKitRemove ( const int devId, const QVariant &kitid ); |
2106 | - void triggerRedetect ( const int devId ); |
2107 | - void deleteDevice ( const int devId ); |
2108 | + void triggerPortForwarding ( const QVariant &devId ); |
2109 | + void triggerSSHSetup ( const QVariant &devId ); |
2110 | + void triggerSSHConnection ( const QVariant &devId ); |
2111 | + void triggerKitAutocreate ( const QVariant &devId ); |
2112 | + void triggerKitRemove ( const QVariant &devId, const QVariant &kitid ); |
2113 | + void triggerRedetect ( const QVariant &devId ); |
2114 | + void deleteDevice ( const QVariant &devId ); |
2115 | void createEmulatorImage ( const QString &name, const QString &arch, const QString &channel, const QString &passwd ); |
2116 | void startEmulator ( const QString &name ); |
2117 | void stopEmulator ( const QString &name ); |
2118 | |
2119 | === modified file 'src/ubuntu/ubuntufixmanifeststep.cpp' |
2120 | --- src/ubuntu/ubuntufixmanifeststep.cpp 2015-02-16 12:27:25 +0000 |
2121 | +++ src/ubuntu/ubuntufixmanifeststep.cpp 2016-08-24 15:35:12 +0000 |
2122 | @@ -42,8 +42,9 @@ |
2123 | m_packageDir = packageDir; |
2124 | } |
2125 | |
2126 | -bool UbuntuFixManifestStep::init() |
2127 | +bool UbuntuFixManifestStep::init(QList<const BuildStep *> &earlierSteps) |
2128 | { |
2129 | + Q_UNUSED(earlierSteps); |
2130 | return true; |
2131 | } |
2132 | |
2133 | |
2134 | === modified file 'src/ubuntu/ubuntufixmanifeststep.h' |
2135 | --- src/ubuntu/ubuntufixmanifeststep.h 2016-07-22 10:17:50 +0000 |
2136 | +++ src/ubuntu/ubuntufixmanifeststep.h 2016-08-24 15:35:12 +0000 |
2137 | @@ -18,7 +18,7 @@ |
2138 | void setPackageDir(const QString &packageDir); |
2139 | |
2140 | // BuildStep interface |
2141 | - virtual bool init() override; |
2142 | + virtual bool init(QList<const BuildStep *> &earlierSteps) override; |
2143 | virtual void run(QFutureInterface<bool> &fi) override; |
2144 | virtual ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override; |
2145 | |
2146 | |
2147 | === modified file 'src/ubuntu/ubuntuhtmlbuildconfiguration.cpp' |
2148 | --- src/ubuntu/ubuntuhtmlbuildconfiguration.cpp 2015-04-28 14:32:58 +0000 |
2149 | +++ src/ubuntu/ubuntuhtmlbuildconfiguration.cpp 2016-08-24 15:35:12 +0000 |
2150 | @@ -162,7 +162,8 @@ |
2151 | QList<ProjectExplorer::BuildInfo *> builds; |
2152 | |
2153 | ProjectExplorer::BuildInfo *info = new ProjectExplorer::BuildInfo(this); |
2154 | - info->buildDirectory = Utils::FileName::fromString(UbuntuProject::shadowBuildDirectory(projectDir,k,QStringLiteral("default"))); |
2155 | + QString sBd = UbuntuProject::shadowBuildDirectory(projectDir,k,QStringLiteral("default"), ProjectExplorer::BuildConfiguration::Unknown); |
2156 | + info->buildDirectory = Utils::FileName::fromString(sBd); |
2157 | info->typeName = tr("Html5"); |
2158 | info->kitId = k->id(); |
2159 | info->displayName = tr("Default"); |
2160 | |
2161 | === modified file 'src/ubuntu/ubuntukitmanager.cpp' |
2162 | --- src/ubuntu/ubuntukitmanager.cpp 2016-05-17 16:33:36 +0000 |
2163 | +++ src/ubuntu/ubuntukitmanager.cpp 2016-08-24 15:35:12 +0000 |
2164 | @@ -20,7 +20,9 @@ |
2165 | #include <qtsupport/qtkitinformation.h> |
2166 | |
2167 | #include <cmakeprojectmanager/cmaketoolmanager.h> |
2168 | +#include <cmakeprojectmanager/cmaketool.h> |
2169 | #include <cmakeprojectmanager/cmakekitinformation.h> |
2170 | +#include <cmakeprojectmanager/cmakeconfigitem.h> |
2171 | #include <qtsupport/qtversionmanager.h> |
2172 | |
2173 | #include <QMessageBox> |
2174 | @@ -86,7 +88,7 @@ |
2175 | if(tc) { |
2176 | if (!tc->isAutoDetected()) |
2177 | continue; |
2178 | - if (tc->type() != QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) |
2179 | + if (tc->typeId() != Constants::UBUNTU_CLICK_TOOLCHAIN_ID) |
2180 | continue; |
2181 | toolchains << static_cast<ClickToolChain *>(tc); |
2182 | } |
2183 | @@ -101,7 +103,7 @@ |
2184 | if (!tc) |
2185 | return false; |
2186 | |
2187 | - if (tc->type() != QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) |
2188 | + if (tc->typeId() != Constants::UBUNTU_CLICK_TOOLCHAIN_ID) |
2189 | return false; |
2190 | |
2191 | ClickToolChain *cTc = static_cast<ClickToolChain *>(tc); |
2192 | @@ -127,7 +129,7 @@ |
2193 | } |
2194 | } |
2195 | |
2196 | - UbuntuQtVersion *qtVersion = new UbuntuQtVersion(Utils::FileName::fromString(qmakePath),false); |
2197 | + UbuntuQtVersion *qtVersion = new UbuntuQtVersion(tc->clickTarget().containerName, Utils::FileName::fromString(qmakePath),false); |
2198 | QtSupport::QtVersionManager::addVersion(qtVersion); |
2199 | return qtVersion; |
2200 | } |
2201 | @@ -159,7 +161,8 @@ |
2202 | { |
2203 | QString cmakePathStr = UbuntuClickTool::findOrCreateToolWrapper(QStringLiteral("cmake"), target); |
2204 | Utils::FileName cmakePath = Utils::FileName::fromString(cmakePathStr); |
2205 | - CMakeProjectManager::CMakeTool *cmake = new CMakeProjectManager::CMakeTool(CMakeProjectManager::CMakeTool::AutoDetection); |
2206 | + CMakeProjectManager::CMakeTool *cmake = new CMakeProjectManager::CMakeTool(CMakeProjectManager::CMakeTool::AutoDetection, |
2207 | + CMakeProjectManager::CMakeTool::createId()); |
2208 | |
2209 | cmake->setCMakeExecutable(cmakePath); |
2210 | cmake->setDisplayName(tr("Ubuntu SDK cmake (%1-%2-%3)") |
2211 | @@ -322,7 +325,7 @@ |
2212 | continue; |
2213 | |
2214 | ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(k); |
2215 | - if (tc && tc->type() != QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) |
2216 | + if (tc && tc->typeId() != Constants::UBUNTU_CLICK_TOOLCHAIN_ID) |
2217 | continue; |
2218 | |
2219 | //@TODO check for ubuntu device information |
2220 | @@ -364,7 +367,7 @@ |
2221 | foreach (ProjectExplorer::Kit *k, existingKits) { |
2222 | ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(k); |
2223 | CMakeProjectManager::CMakeTool* cmake = CMakeProjectManager::CMakeKitInformation::cmakeTool(k); |
2224 | - if (tc && tc->type() == QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID) |
2225 | + if (tc && tc->typeId() == Constants::UBUNTU_CLICK_TOOLCHAIN_ID |
2226 | && cmake |
2227 | && cmake->isValid()) { |
2228 | fixKit(k); |
2229 | @@ -562,13 +565,20 @@ |
2230 | k->setMutable(ProjectExplorer::SysRootKitInformation::id(),false); |
2231 | |
2232 | //make sure we use a ubuntu Qt version |
2233 | - QtSupport::QtKitInformation::setQtVersion(k, createOrFindQtVersion(tc)); |
2234 | + UbuntuQtVersion *qtVer = createOrFindQtVersion(tc); |
2235 | + QtSupport::QtKitInformation::setQtVersion(k, qtVer); |
2236 | |
2237 | //make sure we use a ubuntu cmake |
2238 | CMakeProjectManager::CMakeTool *cmake = createOrFindCMakeTool(tc); |
2239 | if(cmake) { |
2240 | + CMakeProjectManager::CMakeConfig conf{ |
2241 | + CMakeProjectManager::CMakeConfigItem("QT_QMAKE_EXECUTABLE", qtVer->remoteQMakeCommand().toUtf8()), |
2242 | + CMakeProjectManager::CMakeConfigItem("CMAKE_CXX_COMPILER", tc->remoteCompilerCommand().toUtf8()) |
2243 | + }; |
2244 | + |
2245 | cmake->setPathMapper(&UbuntuClickTool::mapIncludePathsForCMake); |
2246 | CMakeProjectManager::CMakeKitInformation::setCMakeTool(k, cmake->id()); |
2247 | + CMakeProjectManager::CMakeConfigurationKitInformation::setConfiguration(k , conf); |
2248 | } |
2249 | |
2250 | } |
2251 | |
2252 | === modified file 'src/ubuntu/ubuntumenu.cpp' |
2253 | --- src/ubuntu/ubuntumenu.cpp 2016-03-29 09:41:07 +0000 |
2254 | +++ src/ubuntu/ubuntumenu.cpp 2016-08-24 15:35:12 +0000 |
2255 | @@ -116,7 +116,7 @@ |
2256 | isClickTarget = startupProject->activeTarget() |
2257 | && startupProject->activeTarget()->kit() |
2258 | && ProjectExplorer::ToolChainKitInformation::toolChain(startupProject->activeTarget()->kit()) |
2259 | - && ProjectExplorer::ToolChainKitInformation::toolChain(startupProject->activeTarget()->kit())->type() == QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID); |
2260 | + && ProjectExplorer::ToolChainKitInformation::toolChain(startupProject->activeTarget()->kit())->typeId() == Constants::UBUNTU_CLICK_TOOLCHAIN_ID; |
2261 | } |
2262 | |
2263 | //bool canRun = projectExplorerInstance->canRun(startupProject,ProjectExplorer::NormalRunMode); |
2264 | |
2265 | === modified file 'src/ubuntu/ubuntupackagestep.cpp' |
2266 | --- src/ubuntu/ubuntupackagestep.cpp 2015-11-27 10:06:33 +0000 |
2267 | +++ src/ubuntu/ubuntupackagestep.cpp 2016-08-24 15:35:12 +0000 |
2268 | @@ -77,8 +77,9 @@ |
2269 | cleanup(); |
2270 | } |
2271 | |
2272 | -bool UbuntuPackageStep::init() |
2273 | +bool UbuntuPackageStep::init(QList<const BuildStep *> &earlierSteps) |
2274 | { |
2275 | + Q_UNUSED(earlierSteps); |
2276 | //initialization happens in internalInit, |
2277 | //because it requires informations that are only available at this |
2278 | //time |
2279 | @@ -277,8 +278,9 @@ |
2280 | } |
2281 | emit addOutput(tr("Configuration is invalid. Aborting build") |
2282 | ,ProjectExplorer::BuildStep::MessageOutput); |
2283 | - fi.reportResult(false); |
2284 | - emit finished(); |
2285 | + |
2286 | + reportRunResult(fi, false); |
2287 | + cleanup(); |
2288 | return; |
2289 | } |
2290 | |
2291 | @@ -487,9 +489,9 @@ |
2292 | |
2293 | //the process failed, lets clean up |
2294 | if (!success) { |
2295 | - m_futureInterface->reportResult(false); |
2296 | + if(m_futureInterface) |
2297 | + reportRunResult(*m_futureInterface, false); |
2298 | cleanup(); |
2299 | - emit finished(); |
2300 | } |
2301 | return success; |
2302 | } |
2303 | @@ -572,9 +574,9 @@ |
2304 | .arg(m_deployDir), |
2305 | BuildStep::ErrorMessageOutput); |
2306 | |
2307 | - m_futureInterface->reportResult(false); |
2308 | + if(m_futureInterface) |
2309 | + reportRunResult(*m_futureInterface, false); |
2310 | cleanup(); |
2311 | - emit finished(); |
2312 | return; |
2313 | } |
2314 | |
2315 | @@ -584,9 +586,9 @@ |
2316 | .arg(err), |
2317 | BuildStep::ErrorMessageOutput); |
2318 | |
2319 | - m_futureInterface->reportResult(false); |
2320 | + if(m_futureInterface) |
2321 | + reportRunResult(*m_futureInterface, false); |
2322 | cleanup(); |
2323 | - emit finished(); |
2324 | return; |
2325 | } |
2326 | |
2327 | @@ -623,7 +625,7 @@ |
2328 | continue; |
2329 | |
2330 | ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit()); |
2331 | - if(!tc || tc->type() != QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) { |
2332 | + if(!tc || tc->typeId() != Constants::UBUNTU_CLICK_TOOLCHAIN_ID) { |
2333 | qWarning()<<"Incompatible Toolchain for hook"<<hook.appId; |
2334 | continue; |
2335 | } |
2336 | @@ -745,9 +747,9 @@ |
2337 | |
2338 | if (m_packageMode == OnlyMakeInstall) { |
2339 | |
2340 | - m_futureInterface->reportResult(true); |
2341 | + if(m_futureInterface) |
2342 | + reportRunResult(*m_futureInterface, true); |
2343 | cleanup(); |
2344 | - emit finished(); |
2345 | |
2346 | return; |
2347 | } |
2348 | @@ -772,7 +774,7 @@ |
2349 | if (!processFinished()) |
2350 | return; |
2351 | |
2352 | - QRegularExpression exp(QLatin1String(Constants::UBUNTU_CLICK_SUCCESS_PACKAGE_REGEX)); |
2353 | + QRegularExpression exp((QLatin1String(Constants::UBUNTU_CLICK_SUCCESS_PACKAGE_REGEX))); |
2354 | QRegularExpressionMatch m = exp.match(m_lastLine); |
2355 | if(m.hasMatch()) { |
2356 | m_clickPackageName = m.captured(1); |
2357 | @@ -794,9 +796,9 @@ |
2358 | if (!processFinished(IgnoreReturnCode)) |
2359 | return; |
2360 | |
2361 | - m_futureInterface->reportResult(true); |
2362 | + if(m_futureInterface) |
2363 | + reportRunResult(*m_futureInterface, true); |
2364 | cleanup(); |
2365 | - emit finished(); |
2366 | } |
2367 | |
2368 | default: |
2369 | @@ -824,7 +826,8 @@ |
2370 | |
2371 | void UbuntuPackageStep::onProcessFailedToStart() |
2372 | { |
2373 | - m_futureInterface->reportResult(false); |
2374 | + if(m_futureInterface) |
2375 | + reportRunResult(*m_futureInterface, false); |
2376 | |
2377 | ProjectExplorer::ProcessParameters *params; |
2378 | if (m_state == MakeInstall) |
2379 | @@ -837,7 +840,6 @@ |
2380 | params->prettyArguments()), |
2381 | BuildStep::ErrorMessageOutput); |
2382 | |
2383 | - emit finished(); |
2384 | cleanup(); |
2385 | |
2386 | } |
2387 | |
2388 | === modified file 'src/ubuntu/ubuntupackagestep.h' |
2389 | --- src/ubuntu/ubuntupackagestep.h 2015-07-08 15:38:37 +0000 |
2390 | +++ src/ubuntu/ubuntupackagestep.h 2016-08-24 15:35:12 +0000 |
2391 | @@ -55,7 +55,7 @@ |
2392 | |
2393 | public: |
2394 | // BuildStep interface |
2395 | - virtual bool init() override; |
2396 | + virtual bool init(QList<const ProjectExplorer::BuildStep *> &earlierSteps) override; |
2397 | virtual void run(QFutureInterface<bool> &fi) override; |
2398 | virtual ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override; |
2399 | virtual bool immutable() const override; |
2400 | |
2401 | === modified file 'src/ubuntu/ubuntupackagingmode.cpp' |
2402 | --- src/ubuntu/ubuntupackagingmode.cpp 2015-03-03 17:23:52 +0000 |
2403 | +++ src/ubuntu/ubuntupackagingmode.cpp 2016-08-24 15:35:12 +0000 |
2404 | @@ -80,8 +80,6 @@ |
2405 | m_modeView->rootContext()->setContextProperty(QLatin1String("resourceRoot") ,Constants::UBUNTU_DEVICESCREEN_ROOT); |
2406 | m_modeView->setSource(QUrl::fromLocalFile(Constants::UBUNTU_PUBLISHSCREEN_QML)); |
2407 | |
2408 | - connect(Core::ModeManager::instance(), SIGNAL(currentModeChanged(Core::IMode*)), SLOT(modeChanged(Core::IMode*))); |
2409 | - |
2410 | QObject* sessionManager = ProjectExplorer::SessionManager::instance(); |
2411 | connect(sessionManager,SIGNAL(projectAdded(ProjectExplorer::Project*)),SLOT(on_projectAdded(ProjectExplorer::Project*))); |
2412 | connect(sessionManager,SIGNAL(projectRemoved(ProjectExplorer::Project*)),SLOT(on_projectRemoved(ProjectExplorer::Project*))); |
2413 | @@ -95,10 +93,6 @@ |
2414 | |
2415 | } |
2416 | |
2417 | -void UbuntuPackagingMode::modeChanged(Core::IMode* currentMode) { |
2418 | - previousMode = currentMode->id(); |
2419 | -} |
2420 | - |
2421 | void UbuntuPackagingMode::updateModeState() { |
2422 | ProjectExplorer::Project* startupProject = ProjectExplorer::SessionManager::startupProject(); |
2423 | |
2424 | |
2425 | === modified file 'src/ubuntu/ubuntupackagingmode.h' |
2426 | --- src/ubuntu/ubuntupackagingmode.h 2015-01-29 07:49:13 +0000 |
2427 | +++ src/ubuntu/ubuntupackagingmode.h 2016-08-24 15:35:12 +0000 |
2428 | @@ -40,15 +40,12 @@ |
2429 | void initialize(); |
2430 | |
2431 | protected slots: |
2432 | - void modeChanged(Core::IMode*); |
2433 | - |
2434 | void on_projectAdded(ProjectExplorer::Project *project); |
2435 | void on_projectRemoved(ProjectExplorer::Project *project); |
2436 | void updateModeState(); |
2437 | |
2438 | protected: |
2439 | QWidget* m_modeWidget; |
2440 | - Core::Id previousMode; |
2441 | |
2442 | private: |
2443 | static UbuntuPackagingMode* m_instance; |
2444 | |
2445 | === modified file 'src/ubuntu/ubuntupackagingmodel.cpp' |
2446 | --- src/ubuntu/ubuntupackagingmodel.cpp 2016-07-06 09:18:16 +0000 |
2447 | +++ src/ubuntu/ubuntupackagingmodel.cpp 2016-08-24 15:35:12 +0000 |
2448 | @@ -404,7 +404,7 @@ |
2449 | p->activeTarget() && |
2450 | p->activeTarget()->kit() && |
2451 | ProjectExplorer::ToolChainKitInformation::toolChain(p->activeTarget()->kit()) && |
2452 | - (ProjectExplorer::ToolChainKitInformation::toolChain(p->activeTarget()->kit())->type() == QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID) |
2453 | + (ProjectExplorer::ToolChainKitInformation::toolChain(p->activeTarget()->kit())->typeId() == Constants::UBUNTU_CLICK_TOOLCHAIN_ID |
2454 | || p->projectManager()->mimeType() == QLatin1String(QmakeProjectManager::Constants::PROFILE_MIMETYPE)); |
2455 | |
2456 | setCanBuild(buildButtonsEnabled); |
2457 | @@ -467,7 +467,7 @@ |
2458 | m_packageBuildSteps.append(QSharedPointer<ProjectExplorer::BuildStepList> (new ProjectExplorer::BuildStepList(b,ProjectExplorer::Constants::BUILDSTEPS_BUILD))); |
2459 | |
2460 | ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(b->target()->kit()); |
2461 | - if(tc && tc->type() == QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID)){ |
2462 | + if(tc && tc->typeId() == Constants::UBUNTU_CLICK_TOOLCHAIN_ID){ |
2463 | ClickToolChain *cTc = static_cast<ClickToolChain *>(tc); |
2464 | usedArchitectures << cTc->clickTarget().architecture; |
2465 | } |
2466 | |
2467 | === modified file 'src/ubuntu/ubuntuplugin.cpp' |
2468 | --- src/ubuntu/ubuntuplugin.cpp 2016-07-07 09:11:32 +0000 |
2469 | +++ src/ubuntu/ubuntuplugin.cpp 2016-08-24 15:35:12 +0000 |
2470 | @@ -161,8 +161,8 @@ |
2471 | addAutoReleasedObject(new UbuntuSettingsProjectDefaultsPage); |
2472 | addAutoReleasedObject(new UbuntuSettingsDeviceConnectivityPage); |
2473 | |
2474 | - addAutoReleasedObject(new UbuntuVersionManager); |
2475 | - Core::IWizardFactory::registerFeatureProvider(new UbuntuFeatureProvider); |
2476 | + //addAutoReleasedObject(new UbuntuVersionManager); |
2477 | + //Core::IWizardFactory::registerFeatureProvider(new UbuntuFeatureProvider); |
2478 | |
2479 | // welcome page plugin |
2480 | addAutoReleasedObject(new UbuntuWelcomePage); |
2481 | |
2482 | === modified file 'src/ubuntu/ubuntuplugin.h' |
2483 | --- src/ubuntu/ubuntuplugin.h 2016-05-30 08:28:41 +0000 |
2484 | +++ src/ubuntu/ubuntuplugin.h 2016-08-24 15:35:12 +0000 |
2485 | @@ -24,7 +24,6 @@ |
2486 | #include "ubuntudevicemode.h" |
2487 | #include "ubuntumenu.h" |
2488 | #include "ubuntuprojectmanager.h" |
2489 | -#include "ubuntufeatureprovider.h" |
2490 | #include "ubuntuversionmanager.h" |
2491 | #include "ubuntupackagingmode.h" |
2492 | #include "ubuntusettingsdeviceconnectivitypage.h" |
2493 | |
2494 | === modified file 'src/ubuntu/ubuntuproject.cpp' |
2495 | --- src/ubuntu/ubuntuproject.cpp 2016-05-12 06:50:19 +0000 |
2496 | +++ src/ubuntu/ubuntuproject.cpp 2016-08-24 15:35:12 +0000 |
2497 | @@ -36,7 +36,6 @@ |
2498 | |
2499 | setId(Constants::UBUNTUPROJECT_ID); |
2500 | setRequiredKitMatcher(UbuntuKitMatcher()); |
2501 | - setPreferredKitMatcher(QtSupport::QtKitInformation::qtVersionMatcher(Core::FeatureSet(QtSupport::Constants::FEATURE_DESKTOP))); |
2502 | |
2503 | setProjectContext(Core::Context(Constants::UBUNTUPROJECT_PROJECTCONTEXT)); |
2504 | |
2505 | @@ -46,6 +45,7 @@ |
2506 | m_file = QSharedPointer<UbuntuProjectFile>(new UbuntuProjectFile(this, fileName)); |
2507 | |
2508 | Core::DocumentManager::addDocument(m_file.data(), true); |
2509 | + setDocument(m_file.data()); |
2510 | |
2511 | m_rootNode = QSharedPointer<UbuntuProjectNode>(new UbuntuProjectNode(this, m_file.data())); |
2512 | m_manager->registerProject(this); |
2513 | @@ -82,10 +82,6 @@ |
2514 | return m_projectName; |
2515 | } |
2516 | |
2517 | -Core::IDocument *UbuntuProject::document() const { |
2518 | - return m_file.data(); |
2519 | -} |
2520 | - |
2521 | ProjectExplorer::IProjectManager *UbuntuProject::projectManager() const { |
2522 | return m_manager; |
2523 | } |
2524 | @@ -137,7 +133,10 @@ |
2525 | return true; |
2526 | } |
2527 | |
2528 | -QString UbuntuProject::shadowBuildDirectory(const QString &proFilePath, const ProjectExplorer::Kit *k, const QString &suffix) |
2529 | +QString UbuntuProject::shadowBuildDirectory(const QString &proFilePath |
2530 | + , const ProjectExplorer::Kit *k |
2531 | + , const QString &suffix |
2532 | + , const ProjectExplorer::BuildConfiguration::BuildType buildType) |
2533 | { |
2534 | if (proFilePath.isEmpty()) |
2535 | return QString(); |
2536 | @@ -149,7 +148,7 @@ |
2537 | return info.absolutePath(); |
2538 | |
2539 | const QString projectName = QFileInfo(proFilePath).completeBaseName(); |
2540 | - ProjectExplorer::ProjectMacroExpander expander(projectName, k, suffix); |
2541 | + ProjectExplorer::ProjectMacroExpander expander(proFilePath, projectName, k, suffix, buildType); |
2542 | QDir projectDir = QDir(projectDirectory(Utils::FileName::fromString(proFilePath)).toString()); |
2543 | QString buildPath = expander.expand(Core::DocumentManager::buildDirectory()); |
2544 | return QDir::cleanPath(projectDir.absoluteFilePath(buildPath)); |
2545 | @@ -164,7 +163,7 @@ |
2546 | bool UbuntuKitMatcher::matches(const ProjectExplorer::Kit *k) |
2547 | { |
2548 | ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(k); |
2549 | - if (tc->type() == QLatin1String(Ubuntu::Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) |
2550 | + if (tc->typeId() == Ubuntu::Constants::UBUNTU_CLICK_TOOLCHAIN_ID) |
2551 | return true; |
2552 | |
2553 | return false; |
2554 | |
2555 | === modified file 'src/ubuntu/ubuntuproject.h' |
2556 | --- src/ubuntu/ubuntuproject.h 2015-03-03 17:23:52 +0000 |
2557 | +++ src/ubuntu/ubuntuproject.h 2016-08-24 15:35:12 +0000 |
2558 | @@ -42,6 +42,7 @@ |
2559 | #include <projectexplorer/session.h> |
2560 | #include <projectexplorer/runconfiguration.h> |
2561 | #include <projectexplorer/applicationlauncher.h> |
2562 | +#include <projectexplorer/buildconfiguration.h> |
2563 | |
2564 | namespace Ubuntu { |
2565 | namespace Internal { |
2566 | @@ -65,7 +66,6 @@ |
2567 | UbuntuProject(UbuntuProjectManager *manager, const QString &fileName); |
2568 | |
2569 | QString displayName() const override; |
2570 | - Core::IDocument *document() const override; |
2571 | ProjectExplorer::IProjectManager *projectManager() const override; |
2572 | |
2573 | ProjectExplorer::ProjectNode *rootProjectNode() const override; |
2574 | @@ -88,7 +88,9 @@ |
2575 | bool needsConfiguration() const override; |
2576 | bool requiresTargetPanel() const override; |
2577 | |
2578 | - static QString shadowBuildDirectory(const QString &proFilePath, const ProjectExplorer::Kit *k, const QString &suffix = QString()); |
2579 | + static QString shadowBuildDirectory(const QString &proFilePath, const ProjectExplorer::Kit *k, |
2580 | + const QString &suffix = QString(), |
2581 | + const ProjectExplorer::BuildConfiguration::BuildType buildType = ProjectExplorer::BuildConfiguration::Unknown); |
2582 | private: |
2583 | void extractProjectFileData(const QString& filename); |
2584 | |
2585 | |
2586 | === modified file 'src/ubuntu/ubuntuprojectfile.cpp' |
2587 | --- src/ubuntu/ubuntuprojectfile.cpp 2015-03-03 17:23:52 +0000 |
2588 | +++ src/ubuntu/ubuntuprojectfile.cpp 2016-08-24 15:35:12 +0000 |
2589 | @@ -34,14 +34,6 @@ |
2590 | return false; |
2591 | } |
2592 | |
2593 | -QString UbuntuProjectFile::defaultPath() const { |
2594 | - return QString(); |
2595 | -} |
2596 | - |
2597 | -QString UbuntuProjectFile::suggestedFileName() const { |
2598 | - return QString(); |
2599 | -} |
2600 | - |
2601 | bool UbuntuProjectFile::isModified() const { |
2602 | return false; |
2603 | } |
2604 | |
2605 | === modified file 'src/ubuntu/ubuntuprojectfile.h' |
2606 | --- src/ubuntu/ubuntuprojectfile.h 2015-03-03 17:23:52 +0000 |
2607 | +++ src/ubuntu/ubuntuprojectfile.h 2016-08-24 15:35:12 +0000 |
2608 | @@ -47,10 +47,6 @@ |
2609 | ~UbuntuProjectFile() {} |
2610 | |
2611 | bool save(QString *errorString, const QString &fileName, bool autoSave) override; |
2612 | - |
2613 | - QString defaultPath() const override; |
2614 | - QString suggestedFileName() const override; |
2615 | - |
2616 | bool isModified() const override; |
2617 | bool isSaveAsAllowed() const override; |
2618 | |
2619 | |
2620 | === modified file 'src/ubuntu/ubuntuprojectnode.cpp' |
2621 | --- src/ubuntu/ubuntuprojectnode.cpp 2015-03-03 17:23:52 +0000 |
2622 | +++ src/ubuntu/ubuntuprojectnode.cpp 2016-08-24 15:35:12 +0000 |
2623 | @@ -87,7 +87,7 @@ |
2624 | if (! end) |
2625 | return 0; |
2626 | |
2627 | - QString baseDir = path().toFileInfo().path(); |
2628 | + QString baseDir = filePath().toFileInfo().path(); |
2629 | |
2630 | QString folderName; |
2631 | for (int i = 0; i < end; ++i) { |
2632 | |
2633 | === modified file 'src/ubuntu/ubuntuqmlbuildconfiguration.cpp' |
2634 | --- src/ubuntu/ubuntuqmlbuildconfiguration.cpp 2015-04-28 14:47:49 +0000 |
2635 | +++ src/ubuntu/ubuntuqmlbuildconfiguration.cpp 2016-08-24 15:35:12 +0000 |
2636 | @@ -11,6 +11,7 @@ |
2637 | #include <projectexplorer/kitinformation.h> |
2638 | #include <projectexplorer/buildsteplist.h> |
2639 | #include <utils/fancylineedit.h> |
2640 | +#include <utils/algorithm.h> |
2641 | #include <utils/mimetypes/mimedatabase.h> |
2642 | #include <qmlprojectmanager/qmlprojectconstants.h> |
2643 | |
2644 | @@ -184,7 +185,11 @@ |
2645 | QList<ProjectExplorer::BuildInfo *> builds; |
2646 | |
2647 | ProjectExplorer::BuildInfo *info = new ProjectExplorer::BuildInfo(this); |
2648 | - info->buildDirectory = Utils::FileName::fromString(UbuntuProject::shadowBuildDirectory(projectDir,k,QStringLiteral("default"))); |
2649 | + info->buildDirectory = Utils::FileName::fromString(UbuntuProject::shadowBuildDirectory( |
2650 | + projectDir, |
2651 | + k, |
2652 | + QStringLiteral("default"), |
2653 | + ProjectExplorer::BuildConfiguration::Unknown)); |
2654 | info->typeName = tr("Qml"); |
2655 | info->kitId = k->id(); |
2656 | info->displayName = tr("Default"); |
2657 | @@ -231,8 +236,9 @@ |
2658 | : AbstractProcessStep(bsl,bs) |
2659 | {} |
2660 | |
2661 | -bool UbuntuQmlUpdateTranslationTemplateStep::init() |
2662 | +bool UbuntuQmlUpdateTranslationTemplateStep::init(QList<const BuildStep *> &earlierSteps) |
2663 | { |
2664 | + Q_UNUSED(earlierSteps); |
2665 | QString projectDir = target()->project()->projectDirectory().toString(); |
2666 | |
2667 | ProjectExplorer::BuildConfiguration *bc = target()->activeBuildConfiguration(); |
2668 | @@ -269,9 +275,9 @@ |
2669 | : UbuntuQmlUpdateTranslationTemplateStep(bsl,bs) |
2670 | {} |
2671 | |
2672 | -bool UbuntuQmlBuildTranslationStep::init() |
2673 | +bool UbuntuQmlBuildTranslationStep::init(QList<const BuildStep *> &earlierSteps) |
2674 | { |
2675 | - if(!UbuntuQmlUpdateTranslationTemplateStep::init()) |
2676 | + if(!UbuntuQmlUpdateTranslationTemplateStep::init(earlierSteps)) |
2677 | return false; |
2678 | |
2679 | ProjectExplorer::BuildConfiguration *bc = target()->activeBuildConfiguration(); |
2680 | @@ -303,36 +309,35 @@ |
2681 | return UbuntuQmlUpdateTranslationTemplateStep::run(fi); |
2682 | } |
2683 | |
2684 | -QList<Core::Id> UbuntuQmlBuildStepFactory::availableCreationIds(ProjectExplorer::BuildStepList *parent) const |
2685 | -{ |
2686 | +bool UbuntuQmlBuildStepFactory::canHandle(ProjectExplorer::BuildStepList *parent, const Core::Id id) const |
2687 | +{ |
2688 | + return Utils::contains(availableSteps(parent), Utils::equal(&ProjectExplorer::BuildStepInfo::id, id)); |
2689 | +} |
2690 | + |
2691 | +QList<ProjectExplorer::BuildStepInfo> UbuntuQmlBuildStepFactory::availableSteps(ProjectExplorer::BuildStepList *parent) const |
2692 | +{ |
2693 | + QList<ProjectExplorer::BuildStepInfo> res; |
2694 | + |
2695 | if(parent->id() != ProjectExplorer::Constants::BUILDSTEPS_BUILD) |
2696 | - return QList<Core::Id>(); |
2697 | + return res; |
2698 | |
2699 | UbuntuKitMatcher m; |
2700 | if(!m.matches(parent->target()->kit()) |
2701 | || parent->target()->project()->id() != "QmlProjectManager.QmlProject") |
2702 | - return QList<Core::Id>(); |
2703 | - |
2704 | - return QList<Core::Id>()<<Constants::UBUNTU_CLICK_QML_BUILD_TRANSL_MAKESTEP<<Constants::UBUNTU_CLICK_QML_UPDATE_TRANSL_MAKESTEP; |
2705 | -} |
2706 | - |
2707 | -QString UbuntuQmlBuildStepFactory::displayNameForId(const Core::Id id) const |
2708 | -{ |
2709 | - if(id == Constants::UBUNTU_CLICK_QML_BUILD_TRANSL_MAKESTEP) |
2710 | - return tr("Build translations"); |
2711 | - else if(id == Constants::UBUNTU_CLICK_QML_UPDATE_TRANSL_MAKESTEP) |
2712 | - return tr("Update translations template"); |
2713 | - return QString(); |
2714 | -} |
2715 | - |
2716 | -bool UbuntuQmlBuildStepFactory::canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const |
2717 | -{ |
2718 | - return availableCreationIds(parent).contains(id); |
2719 | + return res; |
2720 | + |
2721 | + res << ProjectExplorer::BuildStepInfo(Constants::UBUNTU_CLICK_QML_BUILD_TRANSL_MAKESTEP, |
2722 | + tr("Build translations"), |
2723 | + ProjectExplorer::BuildStepInfo::UniqueStep) |
2724 | + << ProjectExplorer::BuildStepInfo(Constants::UBUNTU_CLICK_QML_UPDATE_TRANSL_MAKESTEP, |
2725 | + tr("Update translations template"), |
2726 | + ProjectExplorer::BuildStepInfo::UniqueStep); |
2727 | + return res; |
2728 | } |
2729 | |
2730 | ProjectExplorer::BuildStep *UbuntuQmlBuildStepFactory::create(ProjectExplorer::BuildStepList *parent, const Core::Id id) |
2731 | { |
2732 | - QTC_ASSERT(canCreate(parent,id),return 0); |
2733 | + QTC_ASSERT(canHandle(parent,id),return 0); |
2734 | |
2735 | if(id == Constants::UBUNTU_CLICK_QML_BUILD_TRANSL_MAKESTEP) |
2736 | return new UbuntuQmlBuildTranslationStep(parent); |
2737 | @@ -342,18 +347,13 @@ |
2738 | return nullptr; |
2739 | } |
2740 | |
2741 | -bool UbuntuQmlBuildStepFactory::canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const |
2742 | -{ |
2743 | - return availableCreationIds(parent).contains(ProjectExplorer::idFromMap(map)); |
2744 | -} |
2745 | - |
2746 | ProjectExplorer::BuildStep *UbuntuQmlBuildStepFactory::restore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) |
2747 | { |
2748 | - QTC_ASSERT(canRestore(parent,map),return 0); |
2749 | - |
2750 | ProjectExplorer::AbstractProcessStep *step = 0; |
2751 | Core::Id id = ProjectExplorer::idFromMap(map); |
2752 | |
2753 | + QTC_ASSERT(canHandle(parent,id),return 0); |
2754 | + |
2755 | if(id == Constants::UBUNTU_CLICK_QML_BUILD_TRANSL_MAKESTEP) |
2756 | step = new UbuntuQmlBuildTranslationStep(parent); |
2757 | else if(id == Constants::UBUNTU_CLICK_QML_UPDATE_TRANSL_MAKESTEP) |
2758 | @@ -369,14 +369,9 @@ |
2759 | return step; |
2760 | } |
2761 | |
2762 | -bool UbuntuQmlBuildStepFactory::canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) const |
2763 | -{ |
2764 | - return availableCreationIds(parent).contains(product->id()); |
2765 | -} |
2766 | - |
2767 | ProjectExplorer::BuildStep *UbuntuQmlBuildStepFactory::clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) |
2768 | { |
2769 | - QTC_ASSERT(canClone(parent,product),return 0); |
2770 | + QTC_ASSERT(canHandle(parent,product->id()),return 0); |
2771 | |
2772 | const Core::Id id = product->id(); |
2773 | if(id == Constants::UBUNTU_CLICK_QML_BUILD_TRANSL_MAKESTEP) |
2774 | |
2775 | === modified file 'src/ubuntu/ubuntuqmlbuildconfiguration.h' |
2776 | --- src/ubuntu/ubuntuqmlbuildconfiguration.h 2016-07-22 10:17:50 +0000 |
2777 | +++ src/ubuntu/ubuntuqmlbuildconfiguration.h 2016-08-24 15:35:12 +0000 |
2778 | @@ -57,7 +57,7 @@ |
2779 | UbuntuQmlUpdateTranslationTemplateStep(ProjectExplorer::BuildStepList *bsl, UbuntuQmlUpdateTranslationTemplateStep *bs); |
2780 | |
2781 | // BuildStep interface |
2782 | - virtual bool init() override; |
2783 | + virtual bool init(QList<const BuildStep *> &earlierSteps) override; |
2784 | virtual ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override; |
2785 | |
2786 | QString makeCommand(ProjectExplorer::ToolChain *tc, const Utils::Environment &env) const; |
2787 | @@ -71,7 +71,7 @@ |
2788 | UbuntuQmlBuildTranslationStep(ProjectExplorer::BuildStepList *bsl, UbuntuQmlBuildTranslationStep *bs); |
2789 | |
2790 | // BuildStep interface |
2791 | - virtual bool init() override; |
2792 | + virtual bool init(QList<const BuildStep *> &earlierSteps) override; |
2793 | virtual ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override; |
2794 | void run(QFutureInterface<bool> &fi) override; |
2795 | |
2796 | @@ -107,14 +107,14 @@ |
2797 | |
2798 | public: |
2799 | // IBuildStepFactory interface |
2800 | - virtual QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *parent) const override; |
2801 | - virtual QString displayNameForId(const Core::Id id) const override; |
2802 | - virtual bool canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const override; |
2803 | + virtual QList<ProjectExplorer::BuildStepInfo> availableSteps(ProjectExplorer::BuildStepList *parent) const override; |
2804 | virtual ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id) override; |
2805 | - virtual bool canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const override; |
2806 | virtual ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) override; |
2807 | - virtual bool canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) const override; |
2808 | virtual ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) override; |
2809 | + |
2810 | +private: |
2811 | + bool canHandle(ProjectExplorer::BuildStepList *parent, const Core::Id id) const; |
2812 | + |
2813 | }; |
2814 | |
2815 | } // namespace Internal |
2816 | |
2817 | === modified file 'src/ubuntu/ubuntuqtversion.cpp' |
2818 | --- src/ubuntu/ubuntuqtversion.cpp 2016-03-22 13:32:33 +0000 |
2819 | +++ src/ubuntu/ubuntuqtversion.cpp 2016-08-24 15:35:12 +0000 |
2820 | @@ -2,16 +2,20 @@ |
2821 | #include "ubuntuconstants.h" |
2822 | #include "settings.h" |
2823 | |
2824 | +#include <ubuntu/device/container/containerdevice.h> |
2825 | +#include <ubuntu/ubuntuclicktool.h> |
2826 | #include <qtsupport/qtsupportconstants.h> |
2827 | |
2828 | #include <QCoreApplication> |
2829 | #include <QFileInfo> |
2830 | #include <QDebug> |
2831 | +#include <QDir> |
2832 | |
2833 | namespace Ubuntu { |
2834 | namespace Internal { |
2835 | |
2836 | const char SCRIPT_VERSION_KEY[] = "UbuntuQtVersion.ScriptVersion"; |
2837 | +const char CONTAINER_NAME[] = "UbuntuQtVersion.ContainerName"; |
2838 | |
2839 | /*! |
2840 | * \brief MIN_SCRIPT_VERSION |
2841 | @@ -25,9 +29,10 @@ |
2842 | m_scriptVersion(MIN_SCRIPT_VERSION) |
2843 | { } |
2844 | |
2845 | -UbuntuQtVersion::UbuntuQtVersion(const Utils::FileName &path, bool isAutodetected, const QString &autodetectionSource) |
2846 | +UbuntuQtVersion::UbuntuQtVersion(const QString &containerName, const Utils::FileName &path, bool isAutodetected, const QString &autodetectionSource) |
2847 | : BaseQtVersion(path, isAutodetected, autodetectionSource), |
2848 | - m_scriptVersion(MIN_SCRIPT_VERSION) |
2849 | + m_scriptVersion(MIN_SCRIPT_VERSION), |
2850 | + m_containerName(containerName) |
2851 | { |
2852 | setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false)); |
2853 | } |
2854 | @@ -39,12 +44,21 @@ |
2855 | { |
2856 | BaseQtVersion::fromMap(map); |
2857 | m_scriptVersion = map.value(QLatin1String(SCRIPT_VERSION_KEY),0).toInt(); |
2858 | + m_containerName = map.value(QLatin1String(CONTAINER_NAME),QString()).toString(); |
2859 | + |
2860 | + if (m_containerName.isEmpty()) { |
2861 | + //ok, this is a old QtVersion, we need to restore the container name from the |
2862 | + //qmake path |
2863 | + Utils::FileName command = this->qmakeCommand(); |
2864 | + m_containerName = command.toFileInfo().dir().dirName(); |
2865 | + } |
2866 | } |
2867 | |
2868 | QVariantMap UbuntuQtVersion::toMap() const |
2869 | { |
2870 | QVariantMap map = BaseQtVersion::toMap(); |
2871 | map.insert(QLatin1String(SCRIPT_VERSION_KEY),m_scriptVersion); |
2872 | + map.insert(QLatin1String(CONTAINER_NAME), m_containerName); |
2873 | return map; |
2874 | } |
2875 | |
2876 | @@ -68,15 +82,23 @@ |
2877 | return QCoreApplication::translate("QtVersion", "Ubuntu Phone", "Qt Version is used for Ubuntu Phone development"); |
2878 | } |
2879 | |
2880 | -QString UbuntuQtVersion::platformName() const |
2881 | -{ |
2882 | - return QLatin1String(Constants::UBUNTU_PLATFORM_NAME); |
2883 | -} |
2884 | - |
2885 | -QString UbuntuQtVersion::platformDisplayName() const |
2886 | -{ |
2887 | - return QLatin1String(Constants::UBUNTU_PLATFORM_NAME_TR); |
2888 | -} |
2889 | +QSet<Core::Id> UbuntuQtVersion::targetDeviceTypes() const |
2890 | +{ |
2891 | + QSet<Core::Id> set{ |
2892 | + Constants::UBUNTU_DEVICE_TYPE_ID |
2893 | + }; |
2894 | + |
2895 | + auto hostAbi = ProjectExplorer::Abi::hostAbi(); |
2896 | + for (const ProjectExplorer::Abi &abi : qtAbis()) { |
2897 | + if (abi.architecture() == hostAbi.architecture() && |
2898 | + abi.os() == hostAbi.os()) { |
2899 | + set << ContainerDevice::createIdForContainer(m_containerName); |
2900 | + } |
2901 | + } |
2902 | + |
2903 | + return set; |
2904 | +} |
2905 | + |
2906 | int UbuntuQtVersion::scriptVersion() const |
2907 | { |
2908 | return m_scriptVersion; |
2909 | @@ -92,6 +114,11 @@ |
2910 | return MIN_SCRIPT_VERSION; |
2911 | } |
2912 | |
2913 | +QString UbuntuQtVersion::remoteQMakeCommand() const |
2914 | +{ |
2915 | + return QString::fromLatin1("/usr/bin/%2").arg(qmakeCommand().fileName()); |
2916 | +} |
2917 | + |
2918 | bool UbuntuQtVersion::hasQmlDump() const |
2919 | { |
2920 | return false; |
2921 | @@ -132,10 +159,18 @@ |
2922 | { |
2923 | Q_UNUSED(evaluator); |
2924 | //we only care about our qmakes |
2925 | - if(!qmakePath.toFileInfo().absolutePath().contains(Settings::settingsPath().toString())) |
2926 | - return 0; |
2927 | - |
2928 | - return new UbuntuQtVersion(qmakePath,isAutoDetected,autoDetectionSource); |
2929 | + QFileInfo qmakeInfo = qmakePath.toFileInfo(); |
2930 | + if(!qmakeInfo.absolutePath().contains(Settings::settingsPath().toString())) |
2931 | + return 0; |
2932 | + |
2933 | + if(!qmakeInfo.isSymLink() || qmakeInfo.symLinkTarget() != Constants::UBUNTU_CLICK_TARGET_WRAPPER) |
2934 | + return 0; |
2935 | + |
2936 | + QString containerName = qmakePath.toFileInfo().dir().dirName(); |
2937 | + if (!UbuntuClickTool::targetExists(containerName)) |
2938 | + return 0; |
2939 | + |
2940 | + return new UbuntuQtVersion(containerName, qmakePath,isAutoDetected,autoDetectionSource); |
2941 | } |
2942 | |
2943 | } // namespace Internal |
2944 | |
2945 | === modified file 'src/ubuntu/ubuntuqtversion.h' |
2946 | --- src/ubuntu/ubuntuqtversion.h 2016-03-22 13:32:33 +0000 |
2947 | +++ src/ubuntu/ubuntuqtversion.h 2016-08-24 15:35:12 +0000 |
2948 | @@ -11,7 +11,7 @@ |
2949 | { |
2950 | public: |
2951 | UbuntuQtVersion(); |
2952 | - UbuntuQtVersion(const Utils::FileName &path, bool isAutodetected = false, const QString &autodetectionSource = QString()); |
2953 | + UbuntuQtVersion(const QString &containerName, const Utils::FileName &path, bool isAutodetected = false, const QString &autodetectionSource = QString()); |
2954 | ~UbuntuQtVersion() override; |
2955 | |
2956 | // BaseQtVersion interface |
2957 | @@ -26,14 +26,15 @@ |
2958 | |
2959 | QString description() const override; |
2960 | |
2961 | - QString platformName() const override; |
2962 | - QString platformDisplayName() const override; |
2963 | + virtual QSet<Core::Id> targetDeviceTypes() const override; |
2964 | |
2965 | int scriptVersion() const; |
2966 | void setScriptVersion(int scriptVersion); |
2967 | |
2968 | static int minimalScriptVersion (); |
2969 | |
2970 | + QString remoteQMakeCommand () const; |
2971 | + |
2972 | // BaseQtVersion interface |
2973 | virtual bool hasQmlDump() const override; |
2974 | virtual bool hasQmlDumpWithRelocatableFlag() const override; |
2975 | @@ -41,6 +42,7 @@ |
2976 | |
2977 | private: |
2978 | int m_scriptVersion; |
2979 | + QString m_containerName; |
2980 | }; |
2981 | |
2982 | class UbuntuQtVersionFactory : public QtSupport::QtVersionFactory |
2983 | |
2984 | === modified file 'src/ubuntu/ubuntuwelcomemode.cpp' |
2985 | --- src/ubuntu/ubuntuwelcomemode.cpp 2016-04-19 12:09:54 +0000 |
2986 | +++ src/ubuntu/ubuntuwelcomemode.cpp 2016-08-24 15:35:12 +0000 |
2987 | @@ -24,6 +24,7 @@ |
2988 | #include <QQmlContext> |
2989 | |
2990 | #include <utils/fileutils.h> |
2991 | +#include <utils/algorithm.h> |
2992 | #include <coreplugin/iwizardfactory.h> |
2993 | #include <projectexplorer/projectexplorer.h> |
2994 | |
2995 | @@ -69,7 +70,10 @@ |
2996 | |
2997 | void UbuntuWelcomePage::newProject() |
2998 | { |
2999 | - Core::ICore::showNewItemDialog(tr("New Project"), Core::IWizardFactory::wizardFactoriesOfKind(Core::IWizardFactory::ProjectWizard)); |
3000 | + Core::ICore::showNewItemDialog(tr("New Project"), Utils::filtered(Core::IWizardFactory::allWizardFactories(), |
3001 | + [](Core::IWizardFactory *f) { |
3002 | + return f->kind() == Core::IWizardFactory::ProjectWizard; |
3003 | + })); |
3004 | } |
3005 | |
3006 | void UbuntuWelcomePage::openProject() |
3007 | |
3008 | === modified file 'src/ubuntu/wizards/createtargetwizard.cpp' |
3009 | --- src/ubuntu/wizards/createtargetwizard.cpp 2016-07-12 08:47:56 +0000 |
3010 | +++ src/ubuntu/wizards/createtargetwizard.cpp 2016-08-24 15:35:12 +0000 |
3011 | @@ -364,7 +364,7 @@ |
3012 | return true; |
3013 | }); |
3014 | ui->lineEditName->setPlaceholderText(tr("Please select a name")); |
3015 | - ui->lineEditName->triggerChanged(); |
3016 | + ui->lineEditName->validate(); |
3017 | |
3018 | setTitle(tr("Please type a name:")); |
3019 | setProperty(Utils::SHORT_TITLE_PROPERTY, tr("Name")); |
3020 | |
3021 | === modified file 'src/ubuntu/wizards/ubuntufatpackagingwizard.cpp' |
3022 | --- src/ubuntu/wizards/ubuntufatpackagingwizard.cpp 2016-07-06 09:18:16 +0000 |
3023 | +++ src/ubuntu/wizards/ubuntufatpackagingwizard.cpp 2016-08-24 15:35:12 +0000 |
3024 | @@ -231,7 +231,7 @@ |
3025 | QString fw; |
3026 | foreach (ProjectExplorer::BuildConfiguration *conf, selectedSuspects()) { |
3027 | ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(conf->target()->kit()); |
3028 | - if (tc && tc->type() == QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) { |
3029 | + if (tc && tc->typeId() == Constants::UBUNTU_CLICK_TOOLCHAIN_ID) { |
3030 | ClickToolChain *cTc = static_cast<ClickToolChain *>(tc); |
3031 | if (fw.isEmpty()) |
3032 | fw = cTc->clickTarget().framework; |
3033 | |
3034 | === modified file 'src/ubuntu/wizards/ubuntufirstrunwizard.cpp' |
3035 | --- src/ubuntu/wizards/ubuntufirstrunwizard.cpp 2016-05-17 16:33:36 +0000 |
3036 | +++ src/ubuntu/wizards/ubuntufirstrunwizard.cpp 2016-08-24 15:35:12 +0000 |
3037 | @@ -135,7 +135,7 @@ |
3038 | if (!tc || !QtSupport::QtKitInformation::qtVersion(curr)) |
3039 | continue; |
3040 | |
3041 | - if (tc->type() == QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) { |
3042 | + if (tc->typeId() == Constants::UBUNTU_CLICK_TOOLCHAIN_ID) { |
3043 | found = true; |
3044 | |
3045 | QTreeWidgetItem* kitItem = new QTreeWidgetItem; |
3046 | |
3047 | === modified file 'src/ubuntu/wizards/ubuntuprojectapplicationwizard.cpp' |
3048 | --- src/ubuntu/wizards/ubuntuprojectapplicationwizard.cpp 2016-05-12 06:50:19 +0000 |
3049 | +++ src/ubuntu/wizards/ubuntuprojectapplicationwizard.cpp 2016-08-24 15:35:12 +0000 |
3050 | @@ -33,6 +33,7 @@ |
3051 | #include <extensionsystem/pluginmanager.h> |
3052 | #include <cmakeprojectmanager/cmakekitinformation.h> |
3053 | #include <cmakeprojectmanager/cmaketool.h> |
3054 | +#include <coreplugin/id.h> |
3055 | |
3056 | #include <projectexplorer/kitinformation.h> |
3057 | #include <projectexplorer/toolchain.h> |
3058 | @@ -141,14 +142,16 @@ |
3059 | } |
3060 | |
3061 | |
3062 | -Core::FeatureSet UbuntuProjectApplicationWizard::requiredFeatures() const |
3063 | +QSet<Core::Id> UbuntuProjectApplicationWizard::requiredFeatures() const |
3064 | { |
3065 | #ifdef Q_PROCESSOR_ARM |
3066 | return CustomProjectWizard::requiredFeatures(); |
3067 | #else |
3068 | - return CustomProjectWizard::requiredFeatures() |
3069 | - | Core::Feature(QtSupport::Constants::FEATURE_QMLPROJECT) |
3070 | - | Core::Feature::versionedFeature(QtSupport::Constants::FEATURE_QT_QUICK_PREFIX, 2); |
3071 | + QSet<Core::Id> features = CustomProjectWizard::requiredFeatures(); |
3072 | + features << QtSupport::Constants::FEATURE_QMLPROJECT |
3073 | + << Core::Id::versionedId(QtSupport::Constants::FEATURE_QT_QUICK_PREFIX, 2); |
3074 | + |
3075 | + return features; |
3076 | #endif |
3077 | } |
3078 | |
3079 | @@ -220,7 +223,7 @@ |
3080 | bool found = false; |
3081 | foreach(ProjectExplorer::Kit *curr, allKits) { |
3082 | ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(curr); |
3083 | - if (tc->type() == QLatin1String(Constants::UBUNTU_CLICK_TOOLCHAIN_ID)) { |
3084 | + if (tc->typeId() == Constants::UBUNTU_CLICK_TOOLCHAIN_ID) { |
3085 | found = true; |
3086 | break; |
3087 | } |
3088 | @@ -279,7 +282,7 @@ |
3089 | #endif |
3090 | //this is just a fallback for now to remove all ubuntu kits until cross compiling is sorted out |
3091 | //it should not be hit at all but i keep it there just to be safe |
3092 | - m_targetSetupPage->setRequiredKitMatcher(QtSupport::QtKitInformation::platformMatcher(QLatin1String(QtSupport::Constants::DESKTOP_PLATFORM))); |
3093 | + m_targetSetupPage->setRequiredKitMatcher(QtSupport::QtKitInformation::platformMatcher(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE)); |
3094 | break; |
3095 | } |
3096 | case UbuntuProjectApplicationWizard::QMakeProject: |
3097 | |
3098 | === modified file 'src/ubuntu/wizards/ubuntuprojectapplicationwizard.h' |
3099 | --- src/ubuntu/wizards/ubuntuprojectapplicationwizard.h 2015-06-11 14:03:50 +0000 |
3100 | +++ src/ubuntu/wizards/ubuntuprojectapplicationwizard.h 2016-08-24 15:35:12 +0000 |
3101 | @@ -58,7 +58,7 @@ |
3102 | bool postGenerateFiles(const QWizard *, const Core::GeneratedFiles &l, QString *errorMessage) const override; |
3103 | |
3104 | private: |
3105 | - Core::FeatureSet requiredFeatures() const; |
3106 | + QSet<Core::Id> requiredFeatures() const; |
3107 | ProjectType m_type; |
3108 | }; |
3109 | |
3110 | |
3111 | === modified file 'src/ubuntu/wizards/ubuntuprojectmigrationwizard.cpp' |
3112 | --- src/ubuntu/wizards/ubuntuprojectmigrationwizard.cpp 2015-04-28 14:47:49 +0000 |
3113 | +++ src/ubuntu/wizards/ubuntuprojectmigrationwizard.cpp 2016-08-24 15:35:12 +0000 |
3114 | @@ -135,7 +135,7 @@ |
3115 | { |
3116 | UbuntuProjectMigrationWizard wiz(project,parent); |
3117 | if(wiz.exec() == QDialog::Accepted) { |
3118 | - bool multiTargetProject = project->rootQmakeProjectNode()->projectType() == QmakeProjectManager::SubDirsTemplate; |
3119 | + bool multiTargetProject = project->rootProjectNode()->projectType() == QmakeProjectManager::SubDirsTemplate; |
3120 | |
3121 | |
3122 | QMap<QString,QString> base_replacements; |
3123 | @@ -168,7 +168,7 @@ |
3124 | bool canRead = true; |
3125 | //setup the file reader correctly |
3126 | |
3127 | - if (ProFile *pro = reader->parsedProFile(node->path().toString())) { |
3128 | + if (ProFile *pro = reader->parsedProFile(node->filePath().toString())) { |
3129 | if(!reader->accept(pro, QMakeEvaluator::LoadAll)) { |
3130 | canRead = false; |
3131 | } |
3132 | @@ -179,7 +179,7 @@ |
3133 | |
3134 | |
3135 | if(!canRead) { |
3136 | - printToOutputPane(tr("Can not parse %1, skipping migration.").arg(node->path().toString())); |
3137 | + printToOutputPane(tr("Can not parse %1, skipping migration.").arg(node->filePath().toString())); |
3138 | continue; |
3139 | } |
3140 | |
3141 | @@ -308,7 +308,7 @@ |
3142 | //now add required files |
3143 | if(projectType == QmakeProjectManager::ApplicationTemplate) { |
3144 | |
3145 | - QFileInfo proFilePath(node->path().toString()); |
3146 | + QFileInfo proFilePath(node->filePath().toFileInfo()); |
3147 | |
3148 | QmakeProjectManager::TargetInformation targetInfo = node->targetInformation(); |
3149 | if(hookTargets.contains(targetInfo.target)) { |
3150 | @@ -441,7 +441,7 @@ |
3151 | manifestFile.write(doc.toJson()); |
3152 | manifestFile.close(); |
3153 | |
3154 | - project->rootQmakeProjectNode()->addSubProjects(QStringList()<<QString::fromLatin1("%1/%2").arg(project->projectDirectory().toString()).arg(QStringLiteral("/manifest.pro"))); |
3155 | + project->rootProjectNode()->addSubProjects(QStringList()<<QString::fromLatin1("%1/%2").arg(project->projectDirectory().toString()).arg(QStringLiteral("/manifest.pro"))); |
3156 | } |
3157 | } |
3158 | } |