Merge lp:~abreu-alexandre/qtcreator-plugin-ubuntu/add-webapp-project-type into lp:qtcreator-plugin-ubuntu

Proposed by Alexandre Abreu
Status: Work in progress
Proposed branch: lp:~abreu-alexandre/qtcreator-plugin-ubuntu/add-webapp-project-type
Merge into: lp:qtcreator-plugin-ubuntu
Diff against target: 270 lines (+47/-11)
12 files modified
share/qtcreator/templates/wizards/ubuntu/webapp/displayName.desktop (+1/-1)
share/qtcreator/templates/wizards/ubuntu/webapp/wizard.xml (+2/-2)
share/qtcreator/ubuntu/menu.json (+1/-1)
src/ubuntu/UbuntuProject.mimetypes.xml (+1/-0)
src/ubuntu/ubuntuconstants.h (+10/-0)
src/ubuntu/ubuntumenu.cpp (+10/-1)
src/ubuntu/ubuntupackagestep.cpp (+3/-2)
src/ubuntu/ubuntupackagingmode.cpp (+3/-1)
src/ubuntu/ubuntuplugin.cpp (+4/-0)
src/ubuntu/ubuntuproject.cpp (+2/-1)
src/ubuntu/ubuntuprojectapplicationwizard.cpp (+7/-1)
src/ubuntu/ubuntuprojectapplicationwizard.h (+3/-1)
To merge this branch: bzr merge lp:~abreu-alexandre/qtcreator-plugin-ubuntu/add-webapp-project-type
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Ubuntu SDK team Pending
Review via email: mp+238440@code.launchpad.net

Commit message

Add a webapp project type distinct from the html5 one

Description of the change

Add a webapp project type distinct from the html5 one

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Unmerged revisions

287. By Alexandre Abreu

updates

286. By Alexandre Abreu

udpates

285. By Alexandre Abreu

Add webapp project type

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'share/qtcreator/templates/wizards/ubuntu/webapp/displayName.desktop'
2--- share/qtcreator/templates/wizards/ubuntu/webapp/displayName.desktop 2014-07-15 15:06:22 +0000
3+++ share/qtcreator/templates/wizards/ubuntu/webapp/displayName.desktop 2014-10-15 20:18:36 +0000
4@@ -1,6 +1,6 @@
5 [Desktop Entry]
6 Name=%ClickHookName%
7-Comment=webapp for %ProjectName%
8+Comment=%ProjectName%
9 Type=Application
10 Icon=%ProjectName%.png
11 Exec=webapp-container --enable-back-forward --store-session-cookies --webappUrlPatterns=https?://m.%ProjectName%.com/* http://m.%ProjectName%.com %u
12
13=== renamed file 'share/qtcreator/templates/wizards/ubuntu/webapp/displayName.ubuntuhtmlproject' => 'share/qtcreator/templates/wizards/ubuntu/webapp/displayName.ubuntuwebappproject'
14=== modified file 'share/qtcreator/templates/wizards/ubuntu/webapp/wizard.xml'
15--- share/qtcreator/templates/wizards/ubuntu/webapp/wizard.xml 2014-09-12 08:39:29 +0000
16+++ share/qtcreator/templates/wizards/ubuntu/webapp/wizard.xml 2014-10-15 20:18:36 +0000
17@@ -1,12 +1,12 @@
18 <?xml version="1.0" encoding="UTF-8"?>
19-<wizard version="1" kind="project" firstpage="10" id="UbuntuWebApp" category="A.UbuntuProject" platformIndependent="true" class="ubuntu-project-plain-html" featuresRequired="">
20+<wizard version="1" kind="project" firstpage="10" id="UbuntuWebApp" category="A.UbuntuProject" platformIndependent="true" class="ubuntu-project-webapp" featuresRequired="">
21 <icon>../share/ubuntu.png</icon>
22 <description>Web App template, for converting a web site into a standalone application. Web Apps are restricted to using available W3C APIs only, unlike HTML5 Apps which have full platform access.</description>
23 <displayname>Web App</displayname>
24 <displaycategory>Ubuntu</displaycategory>
25 <files>
26 <file source="../share/manifest.json" target="manifest.json" openeditor="true"/>
27- <file source="displayName.ubuntuhtmlproject" target="%ProjectName%.ubuntuhtmlproject" openproject="true"/>
28+ <file source="displayName.ubuntuwebappproject" target="%ProjectName%.ubuntuwebappproject" openproject="true"/>
29 <file source="displayName.apparmor" target="%ClickHookName%.apparmor" openeditor="false"/>
30 <file source="displayName.png" target="%ProjectName%.png" openeditor="false" binary="true"/>
31 <file source="displayName.desktop" target="%ClickHookName%.desktop" openeditor="true"/>
32
33=== modified file 'share/qtcreator/ubuntu/menu.json'
34--- share/qtcreator/ubuntu/menu.json 2014-08-19 09:50:02 +0000
35+++ share/qtcreator/ubuntu/menu.json 2014-10-15 20:18:36 +0000
36@@ -108,7 +108,7 @@
37 "id": "Ubuntu.Build.PackageInstall.Html",
38 "workingDirectory": "%0/..",
39 "projectRequired": true,
40- "context": ["UbuntuProject.ProjectContext","QmlProject.ProjectContext"],
41+ "context": ["UbuntuProject.ProjectContext","QmlProject.ProjectContext","WebappProject.ProjectContext"],
42 "saveRequired": true,
43 "needsClickToolchain" : true,
44 "actions": [
45
46=== modified file 'src/ubuntu/UbuntuProject.mimetypes.xml'
47--- src/ubuntu/UbuntuProject.mimetypes.xml 2014-08-18 12:29:43 +0000
48+++ src/ubuntu/UbuntuProject.mimetypes.xml 2014-10-15 20:18:36 +0000
49@@ -5,6 +5,7 @@
50 <sub-class-of type="application/x-qml"/>
51 <comment>Ubuntu Project file</comment>
52 <glob pattern="*.ubuntuhtmlproject"/>
53+ <glob pattern="*.ubuntuwebappproject"/>
54 <glob pattern="*.ubuntuproject"/>
55 </mime-type>
56 <mime-type type="application/vnd.canonical.click.apparmor">
57
58=== modified file 'src/ubuntu/ubuntuconstants.h'
59--- src/ubuntu/ubuntuconstants.h 2014-10-06 16:53:25 +0000
60+++ src/ubuntu/ubuntuconstants.h 2014-10-15 20:18:36 +0000
61@@ -168,6 +168,7 @@
62 const char UBUNTU_CMAKEPROJECT_TYPE[] = "cmake";
63 const char UBUNTU_QTPROJECT_TYPE[] = "pro";
64 const char UBUNTU_GOPROJECT_TYPE[] = "goproject";
65+const char UBUNTU_WEBAPPPROJECT_TYPE[] = "ubuntuwebappproject";
66 const char UBUNTU_QML_TYPE[] = "qml";
67 const char UBUNTU_HAS_TESTS[] = "hasTests";
68 const char UBUNTU_INITIAL_EMULATOR_NAME[] = "<emulator>";
69@@ -282,6 +283,7 @@
70 const char UBUNTU_MENUJSON_QMAKEPROJECTREQUIRED[] = "qmakeProjectRequired";
71 const char UBUNTU_MENUJSON_UBUNTUPROJECTREQUIRED[] = "ubuntuProjectRequired";
72 const char UBUNTU_MENUJSON_UBUNTUHTMLPROJECTREQUIRED[] = "ubuntuHtmlProjectRequired";
73+const char UBUNTU_MENUJSON_UBUNTUWEBAPPPROJECTREQUIRED[] = "ubuntuWebappProjectRequired";
74 const char UBUNTU_MENUJSON_CLICKTARGETREQUIRED[] = "needsClickTarget"; //will ask the user to choose a click target
75 const char UBUNTU_MENUJSON_CLICKTOOLCHAINREQUIRED[] = "needsClickToolchain"; //requires a click toolchain
76 const char UBUNTU_MENUJSON_SAVEREQUIRED[] = "saveRequired";
77@@ -562,6 +564,14 @@
78 const char GO_RUNCONFIG_ID[] = "GoLang.GoRunConfiguration";
79 const char GO_SUPPORT_FEATURE[] = "GoLang.GoSupport";
80
81+/*
82+ * Webapp project constants.
83+ */
84+const char WEBAPP_PROJECT_MIMETYPE[] = "application/x-ubuntuwebappproject";
85+const char WEBAPP_PROJECT_ID[] = "WebappProjectManager.WebappProject";
86+const char WEBAPP_PROJECT_PROJECTCONTEXT[] = "WebappProject.ProjectContext";
87+const char WEBAPP_PROJECT_SUFFIX[] = ".ubuntuwebappproject";
88+
89 const char UBUNTU_GO_BUILD_TARGETS[] = "%GOBUILDTARGETS%";
90
91 //Qtversion support
92
93=== modified file 'src/ubuntu/ubuntumenu.cpp'
94--- src/ubuntu/ubuntumenu.cpp 2014-08-19 10:19:34 +0000
95+++ src/ubuntu/ubuntumenu.cpp 2014-10-15 20:18:36 +0000
96@@ -104,14 +104,16 @@
97 bool isQmakeProject = false;
98 bool isUbuntuProject = false;
99 bool isUbuntuHtmlProject = false;
100+ bool isUbuntuWebappProject = false;
101 bool isClickTarget = false;
102
103 if (startupProject) {
104 isQmlProject = (startupProject->projectManager()->mimeType() == QLatin1String(Constants::QMLPROJECT_MIMETYPE));
105 isQmakeProject = (startupProject->projectManager()->mimeType() == QLatin1String(Constants::QMAKE_MIMETYPE));
106 isUbuntuProject = (startupProject->projectManager()->mimeType() == QLatin1String(Constants::UBUNTUPROJECT_MIMETYPE));
107+ isUbuntuWebappProject = (startupProject->projectManager()->mimeType() == QLatin1String(Constants::WEBAPP_PROJECT_MIMETYPE));
108 isUbuntuHtmlProject = isProperUbuntuHtmlProject(startupProject);
109- isUbuntuProject = isUbuntuProject || isUbuntuHtmlProject || isQmlProject;
110+ isUbuntuProject = isUbuntuProject || isUbuntuHtmlProject || isQmlProject || isUbuntuWebappProject;
111 isClickTarget = startupProject->activeTarget()
112 && startupProject->activeTarget()->kit()
113 && ProjectExplorer::ToolChainKitInformation::toolChain(startupProject->activeTarget()->kit())
114@@ -129,10 +131,12 @@
115 bool requiresQmakeProject = act->property(Constants::UBUNTU_MENUJSON_QMAKEPROJECTREQUIRED).toBool();
116 bool requiresUbuntuProject = act->property(Constants::UBUNTU_MENUJSON_UBUNTUPROJECTREQUIRED).toBool();
117 bool requiresUbuntuHtmlProject = act->property(Constants::UBUNTU_MENUJSON_UBUNTUHTMLPROJECTREQUIRED).toBool();
118+ bool requiresUbuntuWebappProject = act->property(Constants::UBUNTU_MENUJSON_UBUNTUWEBAPPPROJECTREQUIRED).toBool();
119 bool requiresClickToolchain = act->property(Constants::UBUNTU_MENUJSON_CLICKTOOLCHAINREQUIRED).toBool();
120 bool actionEnabled = ( (requiresQmakeProject ? isQmakeProject : true) &&
121 (requiresQmlProject ? isQmlProject : true) &&
122 (requiresUbuntuHtmlProject ? isUbuntuHtmlProject : true) &&
123+ (requiresUbuntuWebappProject ? isUbuntuWebappProject : true) &&
124 (requiresDevice ? deviceDetected : true) &&
125 (requiresProject ? projectOpen : true) &&
126 (requiresUbuntuProject ? isUbuntuProject : true) &&
127@@ -279,6 +283,7 @@
128 bool actionQmakeProjectRequired = false;
129 bool actionUbuntuProjectRequired = false;
130 bool actionUbuntuHtmlProjectRequired = false;
131+ bool actionUbuntuWebappProjectRequired = false;
132 bool actionSaveRequired = false;
133 bool clickTargetRequired = false;
134 bool clickToolchainRequired = false;
135@@ -313,6 +318,9 @@
136 if (obj.contains(QLatin1String(Constants::UBUNTU_MENUJSON_UBUNTUHTMLPROJECTREQUIRED))) {
137 actionUbuntuHtmlProjectRequired = obj.value(QLatin1String(Constants::UBUNTU_MENUJSON_UBUNTUHTMLPROJECTREQUIRED)).toBool();
138 }
139+ if (obj.contains(QLatin1String(Constants::UBUNTU_MENUJSON_UBUNTUWEBAPPPROJECTREQUIRED))) {
140+ actionUbuntuWebappProjectRequired = obj.value(QLatin1String(Constants::UBUNTU_MENUJSON_UBUNTUWEBAPPPROJECTREQUIRED)).toBool();
141+ }
142 if (obj.contains(QLatin1String(Constants::UBUNTU_MENUJSON_SAVEREQUIRED))) {
143 actionSaveRequired = obj.value(QLatin1String(Constants::UBUNTU_MENUJSON_SAVEREQUIRED)).toBool();
144 }
145@@ -362,6 +370,7 @@
146 act->setProperty(Constants::UBUNTU_MENUJSON_QMLPROJECTREQUIRED,actionQmlProjectRequired);
147 act->setProperty(Constants::UBUNTU_MENUJSON_UBUNTUPROJECTREQUIRED,actionUbuntuProjectRequired);
148 act->setProperty(Constants::UBUNTU_MENUJSON_UBUNTUHTMLPROJECTREQUIRED,actionUbuntuHtmlProjectRequired);
149+ act->setProperty(Constants::UBUNTU_MENUJSON_UBUNTUWEBAPPPROJECTREQUIRED,actionUbuntuWebappProjectRequired);
150 act->setProperty(Constants::UBUNTU_MENUJSON_SAVEREQUIRED,actionSaveRequired);
151 act->setProperty(Constants::UBUNTU_MENUJSON_CLICKTARGETREQUIRED,clickTargetRequired);
152 act->setProperty(Constants::UBUNTU_MENUJSON_CLICKTOOLCHAINREQUIRED,clickToolchainRequired);
153
154=== modified file 'src/ubuntu/ubuntupackagestep.cpp'
155--- src/ubuntu/ubuntupackagestep.cpp 2014-10-01 11:48:41 +0000
156+++ src/ubuntu/ubuntupackagestep.cpp 2014-10-15 20:18:36 +0000
157@@ -139,7 +139,7 @@
158
159 params->resolveAll();
160 } else {
161- //QML and HTML projects are just rsynced for now
162+ //QML, HTML & WebApp projects are just rsynced for now
163 QStringList arguments;
164 arguments << QStringLiteral("-avh")
165 << QStringLiteral("--delete")
166@@ -152,7 +152,8 @@
167 << QStringLiteral("--exclude")<<QStringLiteral("tests")
168 << QStringLiteral("--exclude")<<QStringLiteral("Makefile")
169 << QStringLiteral("--exclude")<<QStringLiteral(".excludes")
170- << QStringLiteral("--exclude")<<QStringLiteral("*.ubuntuhtmlproject");
171+ << QStringLiteral("--exclude")<<QStringLiteral("*.ubuntuhtmlproject")
172+ << QStringLiteral("--exclude")<<QStringLiteral("*.ubuntuwebappproject");
173
174 QFile excludes (projectDir+QDir::separator()+QStringLiteral(".excludes"));
175 if (excludes.open(QIODevice::ReadOnly)) {
176
177=== modified file 'src/ubuntu/ubuntupackagingmode.cpp'
178--- src/ubuntu/ubuntupackagingmode.cpp 2014-08-18 12:29:43 +0000
179+++ src/ubuntu/ubuntupackagingmode.cpp 2014-10-15 20:18:36 +0000
180@@ -94,6 +94,7 @@
181 bool isUbuntuProject = false;
182 bool isCMakeProject = false;
183 bool isGoProject = false;
184+ bool isWebappProject = false;
185 bool reviewToolsInstalled = m_ubuntuPackagingWidget.reviewToolsInstalled();
186
187 if (startupProject) {
188@@ -102,9 +103,10 @@
189 isUbuntuProject = (startupProject->projectManager()->mimeType() == QLatin1String(Constants::UBUNTUPROJECT_MIMETYPE));
190 isCMakeProject = (startupProject->projectManager()->mimeType() == QLatin1String(CMakeProjectManager::Constants::CMAKEMIMETYPE));
191 isGoProject = (startupProject->projectManager()->mimeType() == QLatin1String(Constants::GO_PROJECT_MIMETYPE));
192+ isWebappProject = (startupProject->projectManager()->mimeType() == QLatin1String(Constants::WEBAPP_PROJECT_MIMETYPE));
193 }
194
195- this->setEnabled((isQmlProject || isUbuntuProject || isCMakeProject || isGoProject || reviewToolsInstalled));
196+ this->setEnabled((isQmlProject || isUbuntuProject || isCMakeProject || isGoProject || reviewToolsInstalled || isWebappProject));
197 }
198
199 void UbuntuPackagingMode::on_projectAdded(ProjectExplorer::Project *project) {
200
201=== modified file 'src/ubuntu/ubuntuplugin.cpp'
202--- src/ubuntu/ubuntuplugin.cpp 2014-10-01 11:48:41 +0000
203+++ src/ubuntu/ubuntuplugin.cpp 2014-10-15 20:18:36 +0000
204@@ -173,6 +173,10 @@
205 new UbuntuWizardFactory<UbuntuProjectApplicationWizard,UbuntuProjectApplicationWizard::GoProject>(
206 QStringLiteral("ubuntu-project-go"),
207 Core::IWizard::ProjectWizard));
208+ addAutoReleasedObject(
209+ new UbuntuWizardFactory<UbuntuProjectApplicationWizard,UbuntuProjectApplicationWizard::WebappProject>(
210+ QStringLiteral("ubuntu-project-webapp"),
211+ Core::IWizard::ProjectWizard));
212
213 //register Qt version
214 addAutoReleasedObject(new Ubuntu::Internal::UbuntuQtVersionFactory);
215
216=== modified file 'src/ubuntu/ubuntuproject.cpp'
217--- src/ubuntu/ubuntuproject.cpp 2014-08-19 06:44:44 +0000
218+++ src/ubuntu/ubuntuproject.cpp 2014-10-15 20:18:36 +0000
219@@ -95,7 +95,8 @@
220 static void enumChild(const QDir &dir, QStringList &res) {
221 foreach (const QFileInfo &info, dir.entryInfoList(QDir::NoDotAndDotDot|QDir::Dirs|QDir::Files|QDir::Hidden)) {
222 if (info.fileName().indexOf(QLatin1String(Constants::UBUNTUPROJECT_SUFFIX)) != -1
223- || info.fileName().indexOf(QLatin1String(Constants::UBUNTUHTMLPROJECT_SUFFIX)) != -1)
224+ || info.fileName().indexOf(QLatin1String(Constants::UBUNTUHTMLPROJECT_SUFFIX)) != -1
225+ || info.fileName().indexOf(QLatin1String(Constants::WEBAPP_PROJECT_SUFFIX)) != -1)
226 continue;
227 if (info.isFile()) {
228 if(info.isHidden() && info.fileName() != QLatin1String(".excludes"))
229
230=== modified file 'src/ubuntu/ubuntuprojectapplicationwizard.cpp'
231--- src/ubuntu/ubuntuprojectapplicationwizard.cpp 2014-07-31 08:18:33 +0000
232+++ src/ubuntu/ubuntuprojectapplicationwizard.cpp 2014-10-15 20:18:36 +0000
233@@ -232,7 +232,8 @@
234 break;
235 }
236 case UbuntuProjectApplicationWizard::UbuntuQMLProject:
237- case UbuntuProjectApplicationWizard::UbuntuHTMLProject: {
238+ case UbuntuProjectApplicationWizard::UbuntuHTMLProject:
239+ case UbuntuProjectApplicationWizard::UbuntuWebappProject: {
240 m_targetSetupPage->setRequiredKitMatcher(new UbuntuKitMatcher());
241 break;
242 }
243@@ -276,6 +277,11 @@
244 +projectName
245 +QDir::separator()
246 +QString::fromLatin1("%1.qmlproject").arg(projectName));
247+ } else if (m_type == UbuntuProjectApplicationWizard::UbuntuWebappProject) {
248+ m_targetSetupPage->setProjectPath(path+QDir::separator()
249+ +projectName
250+ +QDir::separator()
251+ +QString::fromLatin1("%1.ubuntuwebappproject").arg(projectName));
252 } else {
253 m_targetSetupPage->setProjectPath(path+QDir::separator()+projectName+QDir::separator()+QLatin1String("CMakeLists.txt"));
254 }
255
256=== modified file 'src/ubuntu/ubuntuprojectapplicationwizard.h'
257--- src/ubuntu/ubuntuprojectapplicationwizard.h 2014-07-31 08:18:33 +0000
258+++ src/ubuntu/ubuntuprojectapplicationwizard.h 2014-10-15 20:18:36 +0000
259@@ -43,8 +43,10 @@
260 enum ProjectType{
261 UbuntuHTMLProject,
262 UbuntuQMLProject,
263+ UbuntuWebappProject,
264 CMakeProject,
265- GoProject
266+ GoProject,
267+ WebappProject
268 };
269
270 UbuntuProjectApplicationWizard(ProjectType type);

Subscribers

People subscribed via source and target branches