aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/imports
diff options
context:
space:
mode:
Diffstat (limited to 'share/qbs/imports')
-rw-r--r--share/qbs/imports/qbs/base/Application.qbs3
-rw-r--r--share/qbs/imports/qbs/base/DynamicLibrary.qbs3
-rw-r--r--share/qbs/imports/qbs/base/QmlApp.qbs22
-rw-r--r--share/qbs/imports/qbs/base/StaticLibrary.qbs3
-rw-r--r--share/qbs/imports/qbs/base/qmlapplicationviewer/qmlapplicationviewer.cpp174
-rw-r--r--share/qbs/imports/qbs/base/qmlapplicationviewer/qmlapplicationviewer.h46
-rw-r--r--share/qbs/imports/qbs/fileinfo/fileinfo.js62
7 files changed, 313 insertions, 0 deletions
diff --git a/share/qbs/imports/qbs/base/Application.qbs b/share/qbs/imports/qbs/base/Application.qbs
new file mode 100644
index 000000000..5865e6a99
--- /dev/null
+++ b/share/qbs/imports/qbs/base/Application.qbs
@@ -0,0 +1,3 @@
+Product {
+ type: qbs.targetOS == 'mac' ? "applicationbundle" : "application"
+}
diff --git a/share/qbs/imports/qbs/base/DynamicLibrary.qbs b/share/qbs/imports/qbs/base/DynamicLibrary.qbs
new file mode 100644
index 000000000..bf71dc8d5
--- /dev/null
+++ b/share/qbs/imports/qbs/base/DynamicLibrary.qbs
@@ -0,0 +1,3 @@
+Product {
+ type: "dynamiclibrary"
+}
diff --git a/share/qbs/imports/qbs/base/QmlApp.qbs b/share/qbs/imports/qbs/base/QmlApp.qbs
new file mode 100644
index 000000000..2d1ce228c
--- /dev/null
+++ b/share/qbs/imports/qbs/base/QmlApp.qbs
@@ -0,0 +1,22 @@
+import qbs.base 1.0
+
+Product {
+ type: ["application", "installed_content"]
+ Depends { name: "qt.declarative" }
+ Depends { name: "cpp" }
+ property string appViewerPath: localPath + "/qmlapplicationviewer"
+ cpp.includePaths: [appViewerPath]
+
+ Group {
+ files: [
+ appViewerPath + "/qmlapplicationviewer.h",
+ appViewerPath + "/qmlapplicationviewer.cpp"
+ ]
+ }
+
+ FileTagger {
+ pattern: "*.qml"
+ fileTags: ["install"]
+ }
+}
+
diff --git a/share/qbs/imports/qbs/base/StaticLibrary.qbs b/share/qbs/imports/qbs/base/StaticLibrary.qbs
new file mode 100644
index 000000000..da0416bee
--- /dev/null
+++ b/share/qbs/imports/qbs/base/StaticLibrary.qbs
@@ -0,0 +1,3 @@
+Product {
+ type: "staticlibrary"
+}
diff --git a/share/qbs/imports/qbs/base/qmlapplicationviewer/qmlapplicationviewer.cpp b/share/qbs/imports/qbs/base/qmlapplicationviewer/qmlapplicationviewer.cpp
new file mode 100644
index 000000000..997bbfcc7
--- /dev/null
+++ b/share/qbs/imports/qbs/base/qmlapplicationviewer/qmlapplicationviewer.cpp
@@ -0,0 +1,174 @@
+// checksum 0xee24 version 0x70013
+/*
+ This file was generated by the Qt Quick Application wizard of Qt Creator.
+ QmlApplicationViewer is a convenience class containing mobile device specific
+ code such as screen orientation handling. Also QML paths and debugging are
+ handled here.
+ It is recommended not to modify this file, since newer versions of Qt Creator
+ may offer an updated version of it.
+*/
+
+#include "qmlapplicationviewer.h"
+
+#include <QtCore/QDir>
+#include <QtCore/QFileInfo>
+#include <QtGui/QApplication>
+#include <QtDeclarative/QDeclarativeComponent>
+#include <QtDeclarative/QDeclarativeEngine>
+#include <QtDeclarative/QDeclarativeContext>
+
+#include <qplatformdefs.h> // MEEGO_EDITION_HARMATTAN
+
+#ifdef HARMATTAN_BOOSTER
+#include <MDeclarativeCache>
+#endif
+
+#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
+
+#include <qt_private/qdeclarativedebughelper_p.h>
+
+#if !defined(NO_JSDEBUGGER)
+#include <jsdebuggeragent.h>
+#endif
+#if !defined(NO_QMLOBSERVER)
+#include <qdeclarativeviewobserver.h>
+#endif
+
+// Enable debugging before any QDeclarativeEngine is created
+struct QmlJsDebuggingEnabler
+{
+ QmlJsDebuggingEnabler()
+ {
+ QDeclarativeDebugHelper::enableDebugging();
+ }
+};
+
+// Execute code in constructor before first QDeclarativeEngine is instantiated
+static QmlJsDebuggingEnabler enableDebuggingHelper;
+
+#endif // QMLJSDEBUGGER
+
+class QmlApplicationViewerPrivate
+{
+ QString mainQmlFile;
+ friend class QmlApplicationViewer;
+ static QString adjustPath(const QString &path);
+};
+
+QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
+{
+#ifdef Q_OS_UNIX
+#ifdef Q_OS_MAC
+ if (!QDir::isAbsolutePath(path))
+ return QString::fromLatin1("%1/../Resources/%2")
+ .arg(QCoreApplication::applicationDirPath(), path);
+#else
+ const QString pathInInstallDir =
+ QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
+ if (QFileInfo(pathInInstallDir).exists())
+ return pathInInstallDir;
+#endif
+#endif
+ return path;
+}
+
+QmlApplicationViewer::QmlApplicationViewer(QWidget *parent)
+ : QDeclarativeView(parent)
+ , d(new QmlApplicationViewerPrivate())
+{
+ connect(engine(), SIGNAL(quit()), SLOT(close()));
+ setResizeMode(QDeclarativeView::SizeRootObjectToView);
+ // Qt versions prior to 4.8.0 don't have QML/JS debugging services built in
+#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
+#if !defined(NO_JSDEBUGGER)
+ new QmlJSDebugger::JSDebuggerAgent(engine());
+#endif
+#if !defined(NO_QMLOBSERVER)
+ new QmlJSDebugger::QDeclarativeViewObserver(this, this);
+#endif
+#endif
+}
+
+QmlApplicationViewer::~QmlApplicationViewer()
+{
+ delete d;
+}
+
+QmlApplicationViewer *QmlApplicationViewer::create()
+{
+ return new QmlApplicationViewer();
+}
+
+void QmlApplicationViewer::setMainQmlFile(const QString &file)
+{
+ d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);
+ setSource(QUrl::fromLocalFile(d->mainQmlFile));
+}
+
+void QmlApplicationViewer::addImportPath(const QString &path)
+{
+ engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path));
+}
+
+void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
+{
+#if defined(Q_OS_SYMBIAN)
+ // If the version of Qt on the device is < 4.7.2, that attribute won't work
+ if (orientation != ScreenOrientationAuto) {
+ const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.'));
+ if (v.count() == 3 && (v.at(0).toInt() << 16 | v.at(1).toInt() << 8 | v.at(2).toInt()) < 0x040702) {
+ qWarning("Screen orientation locking only supported with Qt 4.7.2 and above");
+ return;
+ }
+ }
+#endif // Q_OS_SYMBIAN
+
+ Qt::WidgetAttribute attribute;
+ switch (orientation) {
+#if QT_VERSION < 0x040702
+ // Qt < 4.7.2 does not yet have the Qt::WA_*Orientation attributes
+ case ScreenOrientationLockPortrait:
+ attribute = static_cast<Qt::WidgetAttribute>(128);
+ break;
+ case ScreenOrientationLockLandscape:
+ attribute = static_cast<Qt::WidgetAttribute>(129);
+ break;
+ default:
+ case ScreenOrientationAuto:
+ attribute = static_cast<Qt::WidgetAttribute>(130);
+ break;
+#else // QT_VERSION < 0x040702
+ case ScreenOrientationLockPortrait:
+ attribute = Qt::WA_LockPortraitOrientation;
+ break;
+ case ScreenOrientationLockLandscape:
+ attribute = Qt::WA_LockLandscapeOrientation;
+ break;
+ default:
+ case ScreenOrientationAuto:
+ attribute = Qt::WA_AutoOrientation;
+ break;
+#endif // QT_VERSION < 0x040702
+ };
+ setAttribute(attribute, true);
+}
+
+void QmlApplicationViewer::showExpanded()
+{
+#if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR)
+ showFullScreen();
+#elif defined(Q_WS_MAEMO_5)
+ showMaximized();
+#else
+ show();
+#endif
+}
+
+QApplication *createApplication(int &argc, char **argv)
+{
+#ifdef HARMATTAN_BOOSTER
+ return MDeclarativeCache::qApplication(argc, argv);
+#else
+ return new QApplication(argc, argv);
+#endif
+}
diff --git a/share/qbs/imports/qbs/base/qmlapplicationviewer/qmlapplicationviewer.h b/share/qbs/imports/qbs/base/qmlapplicationviewer/qmlapplicationviewer.h
new file mode 100644
index 000000000..b01cc886f
--- /dev/null
+++ b/share/qbs/imports/qbs/base/qmlapplicationviewer/qmlapplicationviewer.h
@@ -0,0 +1,46 @@
+// checksum 0x898f version 0x70013
+/*
+ This file was generated by the Qt Quick Application wizard of Qt Creator.
+ QmlApplicationViewer is a convenience class containing mobile device specific
+ code such as screen orientation handling. Also QML paths and debugging are
+ handled here.
+ It is recommended not to modify this file, since newer versions of Qt Creator
+ may offer an updated version of it.
+*/
+
+#ifndef QMLAPPLICATIONVIEWER_H
+#define QMLAPPLICATIONVIEWER_H
+
+#include <QtDeclarative/QDeclarativeView>
+
+class QmlApplicationViewer : public QDeclarativeView
+{
+ Q_OBJECT
+
+public:
+ enum ScreenOrientation {
+ ScreenOrientationLockPortrait,
+ ScreenOrientationLockLandscape,
+ ScreenOrientationAuto
+ };
+
+ explicit QmlApplicationViewer(QWidget *parent = 0);
+ virtual ~QmlApplicationViewer();
+
+ static QmlApplicationViewer *create();
+
+ void setMainQmlFile(const QString &file);
+ void addImportPath(const QString &path);
+
+ // Note that this will only have an effect on Symbian and Fremantle.
+ void setOrientation(ScreenOrientation orientation);
+
+ void showExpanded();
+
+private:
+ class QmlApplicationViewerPrivate *d;
+};
+
+QApplication *createApplication(int &argc, char **argv);
+
+#endif // QMLAPPLICATIONVIEWER_H
diff --git a/share/qbs/imports/qbs/fileinfo/fileinfo.js b/share/qbs/imports/qbs/fileinfo/fileinfo.js
new file mode 100644
index 000000000..b65e4073c
--- /dev/null
+++ b/share/qbs/imports/qbs/fileinfo/fileinfo.js
@@ -0,0 +1,62 @@
+function path(fp) {
+ if (fp[fp.length -1] == '/')
+ return fp;
+ var last = fp.lastIndexOf('/');
+ if (last < 0)
+ return '.';
+ return fp.slice(0, last);
+}
+
+function fileName(fph) {
+ var fp = fph.toString();
+ if (fp[fp.length -1] == '/')
+ return fp;
+ var last = fp.lastIndexOf('/');
+ if (last < 0)
+ return '.';
+ return fp.slice(last + 1);
+}
+
+function baseName(fph) {
+ var fn = fileName(fph);
+ return fn.split('.')[0];
+}
+
+function relativePath(base, rel)
+{
+ var basel = base.split('/');
+ var rell = rel.split('/');
+ var i = 0;
+
+ while (i < basel.length && i < rell.length && basel[i] == rell[i])
+ i++;
+
+ var j = i;
+ var r = [];
+
+ for (; i < basel.length; i++)
+ r.push('..');
+
+ for (; j < rell.length; j++)
+ r.push(rell[j]);
+
+ return r.join('/');
+}
+
+function isAbsolutePath(path)
+{
+ if (!path)
+ return false;
+ return (path.charAt(0) == '/');
+}
+
+function toWindowsSeparators(str)
+{
+ return str.toString().replace(/\//g, '\\');
+}
+
+function fromWindowsSeparators(str)
+{
+ return str.toString().replace(/\\/g, '/');
+}
+