Commit 03c0060b authored by Christian Kandeler's avatar Christian Kandeler
Browse files

Mobile + QML wizard: Share common resources.

Reviewed-by: Alessandro Portale
parent 53fa9775
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Name=thisApp
Exec=/opt/bin/thisApp
Icon=thisApp
X-Window-Icon=
X-HildonDesk-ShowInToolbar=true
X-Osso-Type=application/x-executable
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="44px"
version="1.1"
viewBox="0 0 44 44"
width="44px"
x="0px"
y="0px"
id="svg2"
inkscape:version="0.47 r22583"
sodipodi:docname="qt.svg">
<metadata
id="metadata18">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs16">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 22 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="44 : 22 : 1"
inkscape:persp3d-origin="22 : 14.666667 : 1"
id="perspective2836" />
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1020"
id="namedview14"
showgrid="false"
inkscape:zoom="21.454545"
inkscape:cx="49.412871"
inkscape:cy="21.894358"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="g3" />
<g
transform="matrix(0.18308778,0,0,0.18308778,6.6100946,3.2385199)"
id="g3">
<path
d="M 43.09,0.3586 C 40.94,0.0036 38.84,-0.0824 36.81,0.0776 31.968136,0.39505671 27.122677,0.73638425 22.28,1.0696 9.62,2.0816 0,12.4996 0,26.8896 l 0,169.7 14.19,13.2 28.87,-209.42 0.03,-0.011 z"
style="fill:#006225"
id="path5"
sodipodi:nodetypes="cccccccc" />
<path
d="m 174.4,160 c 0,12.5 -7.75,24.07 -17.57,25.77 L 14.23,209.73 V 25.93 C 14.23,9.21 27.57,-2.27 43.12,0.3 l 131.3,21.52 v 138.2 z"
style="fill:#80c342"
id="path7" />
<path
d="m 154.9,80.96 -12.96,-0.598 0,0.278 6.945,0.32 6.016,0 z"
style="fill:#006225"
id="path11" />
<path
d="m 144.6,135.6 c 0.66,0.328 1.43,0.476 2.351,0.476 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 h -6.015 c -1.821,0.832 -3.532,1.457 -5.176,1.848 z"
style="fill:#006225"
id="path13" />
<path
id="path17"
style="fill:#ffffff"
d="m 91.15,132.4 c 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -4.34,0 -7.68,2.535 -10.01,7.625 -2.52,5.543 -3.793,17.04 -3.793,34.44 0,16.82 1.238,28.75 3.734,35.75 2.356,6.672 5.879,9.976 10.5,9.976 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 m 17.98,3.75 c -4.117,9.707 -10.39,16.06 -18.99,19 0.867,4.449 2.176,7.441 3.922,9.019 1.351,1.211 3.433,1.821 6.222,1.821 0.805,0 1.668,-0.055 2.59,-0.157 v 13.12 l -5.961,0.782 c -1.758,0.23 -3.426,0.343 -5.004,0.343 -5.218,0 -9.445,-1.265 -12.62,-3.824 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 1.629,0 3.309,0.102 5.043,0.305 11.95,1.375 20.62,7.016 26.26,16.79 5.535,9.562 8.254,23.27 8.254,41.26 0,16.48 -2,29.45 -6.043,39.02 z M 130.4,45.91 l 11.52,1.238 0,20.21 12.96,0.914 0,12.68 -12.96,-0.598 0,46.33 c 0,4.032 0.445,6.625 1.34,7.789 0.8,1.067 2.046,1.594 3.71,1.594 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 v 11.65 c -5.136,2.258 -10.18,3.598 -15.12,4.02 -0.718,0.055 -1.41,0.086 -2.078,0.086 -4.48,0 -7.906,-1.301 -10.25,-3.934 -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.535 L 118.046,79.25 V 65.66 l 7.586,0.547 4.773,-20.3 z" />
<path
d="m 100.3,166 c 0.809,0 1.672,-0.055 2.59,-0.157 H 98.054 C 98.73,165.949 99.507,166 100.3,166 z"
style="fill:#006225"
id="path19" />
<path
id="path21"
style="fill:#006225"
d="m 84.85,63.98 c 2.336,5.997 3.484,16.92 3.484,32.81 0,17.7 -1.16,29.57 -3.512,35.62 -1.894,4.879 -4.527,7.902 -7.863,9.07 0.965,0.368 1.992,0.551 3.078,0.551 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -1.09,0 -2.117,0.16 -3.082,0.481 h -0.004 c 3.601,1.121 6.379,4.215 8.336,9.261 z m -2.344,114.3 c -0.113,-0.05 -0.227,-0.105 -0.336,-0.16 -0.012,-0.004 -0.023,-0.012 -0.035,-0.015 -0.102,-0.051 -0.207,-0.106 -0.309,-0.157 -0.019,-0.011 -0.039,-0.019 -0.058,-0.031 -0.09,-0.051 -0.184,-0.098 -0.278,-0.148 -0.027,-0.016 -0.054,-0.036 -0.086,-0.051 -0.082,-0.043 -0.164,-0.09 -0.242,-0.137 -0.039,-0.023 -0.078,-0.047 -0.113,-0.07 -0.07,-0.039 -0.145,-0.082 -0.215,-0.125 -0.047,-0.031 -0.094,-0.059 -0.14,-0.09 -0.059,-0.039 -0.118,-0.074 -0.176,-0.113 -0.059,-0.039 -0.114,-0.075 -0.168,-0.114 -0.051,-0.031 -0.102,-0.066 -0.149,-0.097 -0.066,-0.047 -0.132,-0.094 -0.195,-0.137 -0.039,-0.027 -0.078,-0.055 -0.113,-0.082 -0.078,-0.055 -0.153,-0.113 -0.231,-0.172 -0.023,-0.016 -0.05,-0.035 -0.078,-0.055 -0.098,-0.078 -0.199,-0.156 -0.297,-0.234 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 h -6.351 c -10.15,0.008 -18.22,3.977 -24,12.04 -6.855,9.563 -10.34,24.64 -10.34,45.07 0,18.95 2.547,33.44 7.551,43.34 4.934,9.75 12.05,15.56 21.19,17.5 1.989,9.641 5.09,16.16 9.297,19.54 3.176,2.559 7.403,3.824 12.62,3.824 0.098,0 0.199,0 0.297,-0.004 h 5.539 c -3.406,-0.05 -6.383,-0.66 -8.906,-1.828 L 82.498,178.28 z M 128.4,145.6 c -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.57 l -6.226,-0.285 v -13.59 h -6.016 v 3.035 c 0.871,3.273 1.555,6.82 2.063,10.64 l 4.164,0.192 v 51.36 c 0,6.723 1.367,11.62 4.09,14.67 2.343,2.633 5.765,3.934 10.25,3.934 h 6.015 c -4.48,0 -7.906,-1.301 -10.25,-3.934 z m 2.043,-99.66 -6.016,0 -4.668,19.88 5.911,0.422 4.773,-20.3 z" />
</g>
</svg>
......@@ -159,7 +159,8 @@ bool MobileApp::networkEnabled() const
QString MobileApp::path(Path path) const
{
const QString originsRoot = templatesRoot();
const QString originsRootMobileApp = templatesRoot(QLatin1String("mobileapp/"));
const QString originsRootShared = templatesRoot(QLatin1String("shared/"));
const QString mainCppFileName = QLatin1String("main.cpp");
const QString symbianIconFileName = QLatin1String("symbianicon.svg");
const QString pathBase = m_projectPath.absoluteFilePath() + QLatin1Char('/')
......@@ -167,26 +168,26 @@ QString MobileApp::path(Path path) const
switch (path) {
case MainCpp: return pathBase + mainCppFileName;
case MainCppOrigin: return originsRoot + mainCppFileName;
case MainCppOrigin: return originsRootMobileApp + mainCppFileName;
case AppPro: return pathBase + m_projectName + QLatin1String(".pro");
case AppProOrigin: return originsRoot + QLatin1String("app.pro");
case AppProOrigin: return originsRootMobileApp + QLatin1String("app.pro");
case AppProPath: return pathBase;
case AppPri: return pathBase + m_projectName + QLatin1String(".pri");
case AppPriOrigin: return originsRoot + QLatin1String("app.pri");
case AppPriOrigin: return originsRootMobileApp + QLatin1String("app.pri");
case Desktop: return pathBase + m_projectName + QLatin1String(".desktop");
case DesktopOrigin: return originsRoot + QLatin1String("app.desktop");
case DesktopOrigin: return originsRootShared + QLatin1String("app.desktop");
case MainWindowCpp: return pathBase + mainWindowCppFileName;
case MainWindowCppOrigin: return originsRoot + mainWindowCppFileName;
case MainWindowCppOrigin: return originsRootMobileApp + mainWindowCppFileName;
case MainWindowH: return pathBase + mainWindowHFileName;
case MainWindowHOrigin: return originsRoot + mainWindowHFileName;
case MainWindowHOrigin: return originsRootMobileApp + mainWindowHFileName;
case MainWindowUi: return pathBase + mainWindowUiFileName;
case MainWindowUiOrigin: return originsRoot + mainWindowUiFileName;
case MainWindowUiOrigin: return originsRootMobileApp + mainWindowUiFileName;
case SymbianSvgIcon: return pathBase + symbianIconFileName;
case SymbianSvgIconOrigin: return !m_symbianSvgIcon.isEmpty() ? m_symbianSvgIcon
: originsRoot + symbianIconFileName;
: originsRootShared + symbianIconFileName;
case MaemoPngIcon: return pathBase + projectName() + QLatin1String(".png");
case MaemoPngIconOrigin: return !m_maemoPngIcon.isEmpty() ? m_maemoPngIcon
: originsRoot + QLatin1String("maemoicon.png");
: originsRootShared + QLatin1String("maemoicon.png");
default: qFatal("MobileApp::path() needs more work");
}
return QString();
......@@ -297,9 +298,10 @@ QByteArray MobileApp::generateDesktopFile(const QString *errorMessage) const
return desktopFileContent.replace("thisApp", projectName().toUtf8());
}
QString MobileApp::templatesRoot()
QString MobileApp::templatesRoot(const QString &dirName)
{
return Core::ICore::instance()->resourcePath() + QLatin1String("/templates/mobileapp/");
return Core::ICore::instance()->resourcePath()
+ QLatin1String("/templates/") + dirName;
}
static Core::GeneratedFile file(const QByteArray &data, const QString &targetFile)
......
......@@ -125,7 +125,7 @@ private:
QByteArray generateMainCpp(const QString *errorMessage) const;
QByteArray generateProFile(const QString *errorMessage) const;
QByteArray generateDesktopFile(const QString *errorMessage) const;
static QString templatesRoot();
static QString templatesRoot(const QString &dirName);
QString m_projectName;
QFileInfo m_projectPath;
......
/**************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** Commercial Usage
**
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Nokia.
**
** GNU Lesser General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** If you are unsure which license is appropriate for your use, please
** contact the sales department at http://qt.nokia.com/contact.
**
**************************************************************************/
#include "mobileguiappwizard.h"
#include "qt4projectmanagerconstants.h"
#include <QtGui/QIcon>
namespace Qt4ProjectManager {
namespace Internal {
MobileGuiAppWizard::MobileGuiAppWizard() :
GuiAppWizard(QLatin1String("C.Qt4GuiMobile"),
QLatin1String(Constants::QT_APP_WIZARD_CATEGORY),
QLatin1String(Constants::QT_APP_WIZARD_TR_SCOPE),
QLatin1String(Constants::QT_APP_WIZARD_TR_CATEGORY),
tr("Mobile Qt Application"),
tr("Creates a Qt application optimized for mobile devices "
"with a Qt Designer-based main window.\n\n"
"Preselects Qt for Simulator and mobile targets if available."),
QIcon(QLatin1String(":/projectexplorer/images/SymbianDevice.png")),
true)
{
}
} // namespace Internal
} // namespace Qt4ProjectManager
/**************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** Commercial Usage
**
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Nokia.
**
** GNU Lesser General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** If you are unsure which license is appropriate for your use, please
** contact the sales department at http://qt.nokia.com/contact.
**
**************************************************************************/
#ifndef MOBILEGUIAPPWIZARD_H
#define MOBILEGUIAPPWIZARD_H
#include "guiappwizard.h"
namespace Qt4ProjectManager {
namespace Internal {
class MobileGuiAppWizard : public GuiAppWizard
{
Q_OBJECT
public:
MobileGuiAppWizard();
};
} // namespace Internal
} // namespace Qt4ProjectManager
#endif // GUIAPPWIZARD_H
......@@ -272,8 +272,9 @@ QString QmlStandaloneApp::path(Path path) const
{
const QString qmlSubDir = QLatin1String("qml/")
+ (useExistingMainQml() ? m_mainQmlFile.dir().dirName() : m_projectName)
+ QLatin1Char('/');
const QString originsRoot = templatesRoot();
+ QLatin1Char('/');
const QString originsRootQmlApp = templatesRoot(QLatin1String("qmlapp/"));
const QString originsRootShared = templatesRoot(QLatin1String("shared/"));
const QString appViewerTargetSubDir = appViewerOriginsSubDir;
const QString qmlExtension = QLatin1String(".qml");
const QString mainCppFileName = QLatin1String("main.cpp");
......@@ -287,26 +288,26 @@ QString QmlStandaloneApp::path(Path path) const
: pathBase + qmlSubDir + m_projectName + qmlExtension;
case MainQmlDeployed: return useExistingMainQml() ? qmlSubDir + m_mainQmlFile.fileName()
: QString(qmlSubDir + m_projectName + qmlExtension);
case MainQmlOrigin: return originsRoot + QLatin1String("qml/app/app.qml");
case MainQmlOrigin: return originsRootQmlApp + QLatin1String("qml/app/app.qml");
case MainCpp: return pathBase + mainCppFileName;
case MainCppOrigin: return originsRoot + mainCppFileName;
case MainCppOrigin: return originsRootQmlApp + mainCppFileName;
case AppPro: return pathBase + m_projectName + QLatin1String(".pro");
case AppProOrigin: return originsRoot + QLatin1String("app.pro");
case AppProOrigin: return originsRootQmlApp + QLatin1String("app.pro");
case AppProPath: return pathBase;
case Desktop: return pathBase + m_projectName + QLatin1String(".desktop");
case DesktopOrigin: return originsRoot + QLatin1String("app.desktop");
case DesktopOrigin: return originsRootShared + QLatin1String("app.desktop");
case AppViewerPri: return pathBase + appViewerTargetSubDir + appViewerPriFileName;
case AppViewerPriOrigin: return originsRoot + appViewerOriginsSubDir + appViewerPriFileName;
case AppViewerPriOrigin: return originsRootQmlApp + appViewerOriginsSubDir + appViewerPriFileName;
case AppViewerCpp: return pathBase + appViewerTargetSubDir + appViewerCppFileName;
case AppViewerCppOrigin: return originsRoot + appViewerOriginsSubDir + appViewerCppFileName;
case AppViewerCppOrigin: return originsRootQmlApp + appViewerOriginsSubDir + appViewerCppFileName;
case AppViewerH: return pathBase + appViewerTargetSubDir + appViewerHFileName;
case AppViewerHOrigin: return originsRoot + appViewerOriginsSubDir + appViewerHFileName;
case AppViewerHOrigin: return originsRootQmlApp + appViewerOriginsSubDir + appViewerHFileName;
case SymbianSvgIcon: return pathBase + symbianIconFileName;
case SymbianSvgIconOrigin: return !m_symbianSvgIcon.isEmpty() ? m_symbianSvgIcon
: originsRoot + symbianIconFileName;
: originsRootShared + symbianIconFileName;
case MaemoPngIcon: return pathBase + projectName() + QLatin1String(".png");
case MaemoPngIconOrigin: return !m_maemoPngIcon.isEmpty() ? m_maemoPngIcon
: originsRoot + QLatin1String("maemoicon.png");
: originsRootShared + QLatin1String("maemoicon.png");
case QmlDir: return pathBase + qmlSubDir;
case QmlDirProFileRelative: return useExistingMainQml() ? appProFilePath.relativeFilePath(m_mainQmlFile.canonicalPath())
: QString(qmlSubDir).remove(qmlSubDir.length() - 1, 1);
......@@ -533,9 +534,10 @@ bool QmlStandaloneApp::addExternalModule(const QString &name, const QFileInfo &d
}
#ifndef CREATORLESSTEST
QString QmlStandaloneApp::templatesRoot()
QString QmlStandaloneApp::templatesRoot(const QString &dirName)
{
return Core::ICore::instance()->resourcePath() + QLatin1String("/templates/qmlapp/");
return Core::ICore::instance()->resourcePath()
+ QLatin1String("/templates/") + dirName;
}
static Core::GeneratedFile file(const QByteArray &data, const QString &targetFile)
......
......@@ -179,7 +179,7 @@ private:
QByteArray generateMainCpp(const QString *errorMessage) const;
QByteArray generateProFile(const QString *errorMessage) const;
QByteArray generateDesktopFile(const QString *errorMessage) const;
static QString templatesRoot();
static QString templatesRoot(const QString &dirName);
bool addExternalModule(const QString &uri, const QFileInfo &dir,
const QFileInfo &contentDir);
bool addCppPlugins(QmlModule *module);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment