]> Some of my projects - AniAdd.git/commitdiff
Update qmlapplicationviewer.
authorAPTX <marek321@gmail.com>
Mon, 8 Aug 2011 23:23:04 +0000 (01:23 +0200)
committerAPTX <marek321@gmail.com>
Mon, 8 Aug 2011 23:23:04 +0000 (01:23 +0200)
qmlapplicationviewer/qmlapplicationviewer.cpp
qmlapplicationviewer/qmlapplicationviewer.h
qmlapplicationviewer/qmlapplicationviewer.pri

index 11bedd191495d72fbe298e1b4a4cb2040222ce4a..f81fb4d800da41c9678b2e1cbe0080f51cca0273 100644 (file)
@@ -1,4 +1,4 @@
-// checksum 0x28c7 version 0x2000a
+// checksum 0x5e4a version 0x5000d
 /*
   This file was generated by the Qt Quick Application wizard of Qt Creator.
   QmlApplicationViewer is a convenience class containing mobile device specific
 #include <QtDeclarative/QDeclarativeEngine>
 #include <QtDeclarative/QDeclarativeContext>
 
-#if defined(QMLJSDEBUGGER)
+#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
+
 #include <qt_private/qdeclarativedebughelper_p.h>
-#endif
 
-#if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
+#if !defined(NO_JSDEBUGGER)
 #include <jsdebuggeragent.h>
 #endif
-#if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
+#if !defined(NO_QMLOBSERVER)
 #include <qdeclarativeviewobserver.h>
 #endif
 
-#if defined(Q_OS_SYMBIAN) && defined(ORIENTATIONLOCK)
-#include <eikenv.h>
-#include <eikappui.h>
-#include <aknenv.h>
-#include <aknappui.h>
-#endif // Q_OS_SYMBIAN && ORIENTATIONLOCK
-
-#if defined(QMLJSDEBUGGER)
-
 // Enable debugging before any QDeclarativeEngine is created
 struct QmlJsDebuggingEnabler
 {
@@ -66,12 +57,13 @@ QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
         return QCoreApplication::applicationDirPath()
                 + QLatin1String("/../Resources/") + path;
 #else
-    const QString pathInShareDir = QCoreApplication::applicationDirPath()
-        + QLatin1String("/../share/")
-        + QFileInfo(QCoreApplication::applicationFilePath()).fileName()
-        + QLatin1Char('/') + path;
-    if (QFileInfo(pathInShareDir).exists())
-        return pathInShareDir;
+    const QString pathInInstallDir = QCoreApplication::applicationDirPath()
+        + QLatin1String("/../") + path;
+    if (pathInInstallDir.contains(QLatin1String("opt"))
+            && pathInInstallDir.contains(QLatin1String("bin"))
+            && QFileInfo(pathInInstallDir).exists()) {
+        return pathInInstallDir;
+    }
 #endif
 #endif
     return path;
@@ -83,11 +75,14 @@ QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) :
 {
     connect(engine(), SIGNAL(quit()), SLOT(close()));
     setResizeMode(QDeclarativeView::SizeRootObjectToView);
-#if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
+    // 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(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
-    new QmlJSDebugger::QDeclarativeViewObserver(this, parent);
+#if !defined(NO_QMLOBSERVER)
+    new QmlJSDebugger::QDeclarativeViewObserver(this, this);
+#endif
 #endif
 }
 
@@ -109,47 +104,52 @@ void QmlApplicationViewer::addImportPath(const QString &path)
 
 void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
 {
-#ifdef Q_OS_SYMBIAN
+#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) {
-#if defined(ORIENTATIONLOCK)
-        const CAknAppUiBase::TAppUiOrientation uiOrientation =
-                (orientation == ScreenOrientationLockPortrait) ? CAknAppUi::EAppUiOrientationPortrait
-                    : CAknAppUi::EAppUiOrientationLandscape;
-        CAknAppUi* appUi = dynamic_cast<CAknAppUi*> (CEikonEnv::Static()->AppUi());
-        TRAPD(error,
-            if (appUi)
-                appUi->SetOrientationL(uiOrientation);
-        );
-        Q_UNUSED(error)
-#else // ORIENTATIONLOCK
-        qWarning("'ORIENTATIONLOCK' needs to be defined on Symbian when locking the orientation.");
-#endif // ORIENTATIONLOCK
+        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;
+        }
     }
-#elif defined(Q_WS_MAEMO_5)
+#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 = Qt::WA_Maemo5PortraitOrientation;
+        attribute = static_cast<Qt::WidgetAttribute>(128);
         break;
     case ScreenOrientationLockLandscape:
-        attribute = Qt::WA_Maemo5LandscapeOrientation;
+        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:
-        attribute = Qt::WA_Maemo5AutoOrientation;
+    case ScreenOrientationAuto:
+        attribute = Qt::WA_AutoOrientation;
         break;
-    }
+#endif // QT_VERSION < 0x040702
+    };
     setAttribute(attribute, true);
-#else // Q_OS_SYMBIAN
-    Q_UNUSED(orientation);
-#endif // Q_OS_SYMBIAN
 }
 
 void QmlApplicationViewer::showExpanded()
 {
-#ifdef Q_OS_SYMBIAN
+#if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN)
     showFullScreen();
-#elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
+#elif defined(Q_WS_MAEMO_5)
     showMaximized();
 #else
     show();
index 143c17b802f949cb62c2009199dc5ba3ef75fb6e..3fe17ab6b2becd8a79c082aa79fc0f0c54095018 100644 (file)
@@ -1,4 +1,4 @@
-// checksum 0x5a59 version 0x2000a
+// checksum 0x382f version 0x5000d
 /*
   This file was generated by the Qt Quick Application wizard of Qt Creator.
   QmlApplicationViewer is a convenience class containing mobile device specific
@@ -29,7 +29,10 @@ public:
 
     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:
index 1c0c7edb39631e713891388f1c36c572582726a2..343adfeac5781c278648e56a2d20fce3c2dff29f 100644 (file)
@@ -1,4 +1,4 @@
-# checksum 0x3dc8 version 0x2000a
+# checksum 0x83a9 version 0x5000d
 # This file was generated by the Qt Quick Application wizard of Qt Creator.
 # The code below adds the QmlApplicationViewer to the project and handles the
 # activation of QML debugging.
@@ -6,56 +6,17 @@
 # may offer an updated version of it.
 
 QT += declarative
+CONFIG(debug, debug|release):CONFIG += declarative_debug
 
 SOURCES += $$PWD/qmlapplicationviewer.cpp
 HEADERS += $$PWD/qmlapplicationviewer.h
 INCLUDEPATH += $$PWD
 
-defineTest(minQtVersion) {
-    maj = $$1
-    min = $$2
-    patch = $$3
-    isEqual(QT_MAJOR_VERSION, $$maj) {
-        isEqual(QT_MINOR_VERSION, $$min) {
-            isEqual(QT_PATCH_VERSION, $$patch) {
-                return(true)
-            }
-            greaterThan(QT_PATCH_VERSION, $$patch) {
-                return(true)
-            }
-        }
-        greaterThan(QT_MINOR_VERSION, $$min) {
-            return(true)
-        }
-    }
-    return(false)
-}
-
-contains(DEFINES, QMLJSDEBUGGER) {
-    CONFIG(debug, debug|release) {
-        !minQtVersion(4, 7, 1) {
-            warning()
-            warning("Disabling QML debugging:")
-            warning()
-            warning("Debugging QML requires the qmljsdebugger library that ships with Qt Creator.")
-            warning("This library requires Qt 4.7.1 or newer.")
-            warning()
-            DEFINES -= QMLJSDEBUGGER
-        } else:isEmpty(QMLJSDEBUGGER_PATH) {
-            warning()
-            warning("Disabling QML debugging:")
-            warning()
-            warning("Debugging QML requires the qmljsdebugger library that ships with Qt Creator.")
-            warning("Please specify its location on the qmake command line, eg")
-            warning("  qmake -r QMLJSDEBUGGER_PATH=$CREATORDIR/share/qtcreator/qmljsdebugger")
-            warning()
-            DEFINES -= QMLJSDEBUGGER
-        } else {
-            include($$QMLJSDEBUGGER_PATH/qmljsdebugger-lib.pri)
-        }
-    } else {
-        DEFINES -= QMLJSDEBUGGER
-    }
+# Include JS debugger library if QMLJSDEBUGGER_PATH is set
+!isEmpty(QMLJSDEBUGGER_PATH) {
+    include($$QMLJSDEBUGGER_PATH/qmljsdebugger-lib.pri)
+} else {
+    DEFINES -= QMLJSDEBUGGER
 }
 # This file was generated by an application wizard of Qt Creator.
 # The code below handles deployment to Symbian and Maemo, aswell as copying
@@ -78,19 +39,30 @@ for(deploymentfolder, DEPLOYMENTFOLDERS) {
 MAINPROFILEPWD = $$PWD
 
 symbian {
-    ICON = $${TARGET}.svg
-    TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
-    contains(DEFINES, ORIENTATIONLOCK):LIBS += -lavkon -leikcore -lcone
-    contains(DEFINES, NETWORKACCESS):TARGET.CAPABILITY += NetworkServices
+    isEmpty(ICON):exists($${TARGET}.svg):ICON = $${TARGET}.svg
+    isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
 } else:win32 {
-    !isEqual(PWD,$$OUT_PWD) {
-        copyCommand = @echo Copying application data...
-        for(deploymentfolder, DEPLOYMENTFOLDERS) {
-            source = $$eval($${deploymentfolder}.source)
-            pathSegments = $$split(source, /)
-            sourceAndTarget = $$MAINPROFILEPWD/$$source $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(pathSegments)
-            copyCommand += && $(COPY_DIR) $$replace(sourceAndTarget, /, \\)
+    copyCommand =
+    for(deploymentfolder, DEPLOYMENTFOLDERS) {
+        source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+        source = $$replace(source, /, \\)
+        sourcePathSegments = $$split(source, \\)
+        target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments)
+        target = $$replace(target, /, \\)
+        !isEqual(source,$$target) {
+            !isEmpty(copyCommand):copyCommand += &&
+            isEqual(QMAKE_DIR_SEP, \\) {
+                copyCommand += $(COPY_DIR) \"$$source\" \"$$target\"
+            } else {
+                source = $$replace(source, \\\\, /)
+                target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
+                target = $$replace(target, \\\\, /)
+                copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\"
+            }
         }
+    }
+    !isEmpty(copyCommand) {
+        copyCommand = @echo Copying application data... && $$copyCommand
         copydeploymentfolders.commands = $$copyCommand
         first.depends = $(first) copydeploymentfolders
         export(first.depends)
@@ -99,22 +71,35 @@ symbian {
     }
 } else:unix {
     maemo5 {
-        installPrefix = /opt/usr
-        desktopfile.path = /usr/share/applications/hildon       
+        desktopfile.files = $${TARGET}.desktop
+        desktopfile.path = /usr/share/applications/hildon
+        icon.files = $${TARGET}64.png
+        icon.path = /usr/share/icons/hicolor/64x64/apps
     } else {
-        installPrefix = /usr/local
+        desktopfile.files = $${TARGET}_harmattan.desktop
         desktopfile.path = /usr/share/applications
-        !isEqual(PWD,$$OUT_PWD) {
-            copyCommand = @echo Copying application data...
-            for(deploymentfolder, DEPLOYMENTFOLDERS) {
-                macx {
-                    target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
-                } else {
-                    target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
-                }
-                copyCommand += && $(MKDIR) $$target
-                copyCommand += && $(COPY_DIR) $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) $$target
+        icon.files = $${TARGET}80.png
+        icon.path = /usr/share/icons/hicolor/80x80/apps
+        copyCommand =
+        for(deploymentfolder, DEPLOYMENTFOLDERS) {
+            source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+            source = $$replace(source, \\\\, /)
+            macx {
+                target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
+            } else {
+                target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
             }
+            target = $$replace(target, \\\\, /)
+            sourcePathSegments = $$split(source, /)
+            targetFullPath = $$target/$$last(sourcePathSegments)
+            !isEqual(source,$$targetFullPath) {
+                !isEmpty(copyCommand):copyCommand += &&
+                copyCommand += $(MKDIR) \"$$target\"
+                copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\"
+            }
+        }
+        !isEmpty(copyCommand) {
+            copyCommand = @echo Copying application data... && $$copyCommand
             copydeploymentfolders.commands = $$copyCommand
             first.depends = $(first) copydeploymentfolders
             export(first.depends)
@@ -122,19 +107,17 @@ symbian {
             QMAKE_EXTRA_TARGETS += first copydeploymentfolders
         }
     }
+    installPrefix = /opt/$${TARGET}
     for(deploymentfolder, DEPLOYMENTFOLDERS) {
         item = item$${deploymentfolder}
         itemfiles = $${item}.files
         $$itemfiles = $$eval($${deploymentfolder}.source)
         itempath = $${item}.path
-        $$itempath = $${installPrefix}/share/$${TARGET}/$$eval($${deploymentfolder}.target)
+        $$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target)
         export($$itemfiles)
         export($$itempath)
         INSTALLS += $$item
     }
-    icon.files = $${TARGET}.png
-    icon.path = /usr/share/icons/hicolor/64x64/apps
-    desktopfile.files = $${TARGET}.desktop
     target.path = $${installPrefix}/bin
     export(icon.files)
     export(icon.path)