diff options
Diffstat (limited to 'sowatchui')
| -rw-r--r-- | sowatchui/main.cpp | 14 | ||||
| -rw-r--r-- | sowatchui/qml/MainPage.qml | 9 | ||||
| -rw-r--r-- | sowatchui/qml/ServiceLoader.qml | 7 | ||||
| -rw-r--r-- | sowatchui/qml/main.qml | 43 | ||||
| -rw-r--r-- | sowatchui/qml/sowatch.js | 29 | ||||
| -rw-r--r-- | sowatchui/qmlapplicationviewer/qmlapplicationviewer.cpp | 200 | ||||
| -rw-r--r-- | sowatchui/qmlapplicationviewer/qmlapplicationviewer.h | 47 | ||||
| -rw-r--r-- | sowatchui/qmlapplicationviewer/qmlapplicationviewer.pri | 146 | ||||
| -rw-r--r-- | sowatchui/sowatch.desktop | 11 | ||||
| -rw-r--r-- | sowatchui/sowatch.svg | 93 | ||||
| -rw-r--r-- | sowatchui/sowatch64.png | bin | 0 -> 3400 bytes | |||
| -rw-r--r-- | sowatchui/sowatch80.png | bin | 0 -> 4945 bytes | |||
| -rw-r--r-- | sowatchui/sowatch_harmattan.desktop | 11 | ||||
| -rw-r--r-- | sowatchui/sowatchui.pro | 48 | 
14 files changed, 658 insertions, 0 deletions
| diff --git a/sowatchui/main.cpp b/sowatchui/main.cpp new file mode 100644 index 0000000..54a65fa --- /dev/null +++ b/sowatchui/main.cpp @@ -0,0 +1,14 @@ +#include <QtGui/QApplication> +#include "qmlapplicationviewer.h" + +Q_DECL_EXPORT int main(int argc, char *argv[]) +{ +    QScopedPointer<QApplication> app(createApplication(argc, argv)); +    QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create()); + +    viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto); +	viewer->setMainQmlFile(QLatin1String("qml/main.qml")); +    viewer->showExpanded(); + +    return app->exec(); +} diff --git a/sowatchui/qml/MainPage.qml b/sowatchui/qml/MainPage.qml new file mode 100644 index 0000000..45b72f3 --- /dev/null +++ b/sowatchui/qml/MainPage.qml @@ -0,0 +1,9 @@ +import QtQuick 1.1 +import com.nokia.meego 1.0 + +import "sowatch.js" as Sowatch + +Page { +    tools: commonTools + +} diff --git a/sowatchui/qml/ServiceLoader.qml b/sowatchui/qml/ServiceLoader.qml new file mode 100644 index 0000000..8128ca7 --- /dev/null +++ b/sowatchui/qml/ServiceLoader.qml @@ -0,0 +1,7 @@ +import QtQuick 1.1 +import QtMobility.serviceframework 1.1 + +Service { +	id: sowatch +	interfaceName: "com.javispedro.sowatch.service" +} diff --git a/sowatchui/qml/main.qml b/sowatchui/qml/main.qml new file mode 100644 index 0000000..8697b6d --- /dev/null +++ b/sowatchui/qml/main.qml @@ -0,0 +1,43 @@ +import QtQuick 1.1 +import com.nokia.meego 1.0 + +import "sowatch.js" as Sowatch + +PageStackWindow { +    id: appWindow + +    initialPage: mainPage + +    MainPage { +        id: mainPage +    } + +    ToolBarLayout { +        id: commonTools +        visible: true +        ToolIcon { +            platformIconId: "toolbar-view-menu" +            anchors.right: (parent === undefined) ? undefined : parent.right +            onClicked: (myMenu.status == DialogStatus.Closed) ? myMenu.open() : myMenu.close() +        } +    } + +    Menu { +        id: myMenu +        visualParent: pageStack +        MenuLayout { +			MenuItem { +				text: qsTr("Start service") +				onClicked: { +					Sowatch.start(); +				} +			} +			MenuItem { +				text: qsTr("Stop service") +				onClicked: { +					Sowatch.stop(); +				} +			} +        } +    } +} diff --git a/sowatchui/qml/sowatch.js b/sowatchui/qml/sowatch.js new file mode 100644 index 0000000..f2d48dd --- /dev/null +++ b/sowatchui/qml/sowatch.js @@ -0,0 +1,29 @@ +var service = null; + +function getService() { +	var component = Qt.createComponent("ServiceLoader.qml"); +	if (component.status == Component.Ready) { +		var loader = component.createObject(null); +		service = loader.serviceObject; +	} +} + +function checkService() { +	if (service === null) { +		getService(); +	} +} + +function start() { +	getService(); +} + +function stop() { +	checkService(); +	service.terminate(); +} + +function restart() { +	stop(); +	start(); +} diff --git a/sowatchui/qmlapplicationviewer/qmlapplicationviewer.cpp b/sowatchui/qmlapplicationviewer/qmlapplicationviewer.cpp new file mode 100644 index 0000000..8ba6e88 --- /dev/null +++ b/sowatchui/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -0,0 +1,200 @@ +// checksum 0x78c version 0x60010 +/* +  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 <QtDeclarative/QDeclarativeComponent> +#include <QtDeclarative/QDeclarativeEngine> +#include <QtDeclarative/QDeclarativeContext> +#include <QtGui/QApplication> + +#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 +{ +    QmlApplicationViewerPrivate(QDeclarativeView *view_) : view(view_) {} + +    QString mainQmlFile; +    QDeclarativeView *view; +    friend class QmlApplicationViewer; +    QString adjustPath(const QString &path); +}; + +QString QmlApplicationViewerPrivate::adjustPath(const QString &path) +{ +#ifdef Q_OS_UNIX +#ifdef Q_OS_MAC +    if (!QDir::isAbsolutePath(path)) +        return QCoreApplication::applicationDirPath() +                + QLatin1String("/../Resources/") + path; +#else +    QString pathInInstallDir; +    const QString applicationDirPath = QCoreApplication::applicationDirPath(); +    pathInInstallDir = QString::fromAscii("%1/../%2").arg(applicationDirPath, path); + +    if (QFileInfo(pathInInstallDir).exists()) +        return pathInInstallDir; +#endif +#endif +    return path; +} + +QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) +    : QDeclarativeView(parent) +    , d(new QmlApplicationViewerPrivate(this)) +{ +    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(d->view->engine()); +#endif +#if !defined(NO_QMLOBSERVER) +    new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view); +#endif +#endif +} + +QmlApplicationViewer::QmlApplicationViewer(QDeclarativeView *view, QWidget *parent) +    : QDeclarativeView(parent) +    , d(new QmlApplicationViewerPrivate(view)) +{ +    connect(view->engine(), SIGNAL(quit()), view, SLOT(close())); +    view->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(d->view->engine()); +#endif +#if !defined(NO_QMLOBSERVER) +    new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view); +#endif +#endif +} + +QmlApplicationViewer::~QmlApplicationViewer() +{ +    delete d; +} + +QmlApplicationViewer *QmlApplicationViewer::create() +{ +#ifdef HARMATTAN_BOOSTER +    return new QmlApplicationViewer(MDeclarativeCache::qDeclarativeView(), 0); +#else +    return new QmlApplicationViewer(); +#endif +} + +void QmlApplicationViewer::setMainQmlFile(const QString &file) +{ +    d->mainQmlFile = d->adjustPath(file); +    d->view->setSource(QUrl::fromLocalFile(d->mainQmlFile)); +} + +void QmlApplicationViewer::addImportPath(const QString &path) +{ +    d->view->engine()->addImportPath(d->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) +    d->view->showFullScreen(); +#elif defined(Q_WS_MAEMO_5) +    d->view->showMaximized(); +#else +    d->view->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/sowatchui/qmlapplicationviewer/qmlapplicationviewer.h b/sowatchui/qmlapplicationviewer/qmlapplicationviewer.h new file mode 100644 index 0000000..f8008f5 --- /dev/null +++ b/sowatchui/qmlapplicationviewer/qmlapplicationviewer.h @@ -0,0 +1,47 @@ +// checksum 0x82ed version 0x60010 +/* +  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: +    explicit QmlApplicationViewer(QDeclarativeView *view, QWidget *parent); +    class QmlApplicationViewerPrivate *d; +}; + +QApplication *createApplication(int &argc, char **argv); + +#endif // QMLAPPLICATIONVIEWER_H diff --git a/sowatchui/qmlapplicationviewer/qmlapplicationviewer.pri b/sowatchui/qmlapplicationviewer/qmlapplicationviewer.pri new file mode 100644 index 0000000..57842a7 --- /dev/null +++ b/sowatchui/qmlapplicationviewer/qmlapplicationviewer.pri @@ -0,0 +1,146 @@ +# checksum 0x368d version 0x60010 +# 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. +# It is recommended not to modify this file, since newer versions of Qt Creator +# may offer an updated version of it. + +QT += declarative + +SOURCES += $$PWD/qmlapplicationviewer.cpp +HEADERS += $$PWD/qmlapplicationviewer.h +INCLUDEPATH += $$PWD + +# Include JS debugger library if QMLJSDEBUGGER_PATH is set +!isEmpty(QMLJSDEBUGGER_PATH) { +	include($$QMLJSDEBUGGER_PATH/qmljsdebugger-lib.pri) +} else { +	DEFINES -= QMLJSDEBUGGER +} + +contains(CONFIG,qdeclarative-boostable):contains(MEEGO_EDITION,harmattan) { +	DEFINES += HARMATTAN_BOOSTER +} +# This file was generated by an application wizard of Qt Creator. +# The code below handles deployment to Symbian and Maemo, aswell as copying +# of the application data to shadow build directories on desktop. +# It is recommended not to modify this file, since newer versions of Qt Creator +# may offer an updated version of it. + +defineTest(qtcAddDeployment) { +for(deploymentfolder, DEPLOYMENTFOLDERS) { +	item = item$${deploymentfolder} +	itemsources = $${item}.sources +	$$itemsources = $$eval($${deploymentfolder}.source) +	itempath = $${item}.path +	$$itempath= $$eval($${deploymentfolder}.target) +	export($$itemsources) +	export($$itempath) +	DEPLOYMENT += $$item +} + +MAINPROFILEPWD = $$PWD + +symbian { +	isEmpty(ICON):exists($${TARGET}.svg):ICON = $${TARGET}.svg +	isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 +} else:win32 { +	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) +		export(copydeploymentfolders.commands) +		QMAKE_EXTRA_TARGETS += first copydeploymentfolders +	} +} else:unix { +	maemo5 { +		desktopfile.files = $${TARGET}.desktop +		desktopfile.path = /usr/share/applications/hildon +		icon.files = $${TARGET}64.png +		icon.path = /usr/share/icons/hicolor/64x64/apps +	} else:!isEmpty(MEEGO_VERSION_MAJOR) { +		desktopfile.files = $${TARGET}_harmattan.desktop +		desktopfile.path = /usr/share/applications +		icon.files = $${TARGET}80.png +		icon.path = /usr/share/icons/hicolor/80x80/apps +	} else { # Assumed to be a Desktop Unix +		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) +			export(copydeploymentfolders.commands) +			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}/$$eval($${deploymentfolder}.target) +		export($$itemfiles) +		export($$itempath) +		INSTALLS += $$item +	} + +	!isEmpty(desktopfile.path) { +		export(icon.files) +		export(icon.path) +		export(desktopfile.files) +		export(desktopfile.path) +		INSTALLS += icon desktopfile +	} + +	target.path = $${installPrefix}/bin +	export(target.path) +	INSTALLS += target +} + +export (ICON) +export (INSTALLS) +export (DEPLOYMENT) +export (TARGET.EPOCHEAPSIZE) +export (TARGET.CAPABILITY) +export (LIBS) +export (QMAKE_EXTRA_TARGETS) +} diff --git a/sowatchui/sowatch.desktop b/sowatchui/sowatch.desktop new file mode 100644 index 0000000..d1e799d --- /dev/null +++ b/sowatchui/sowatch.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=Sowatch +Exec=/opt/sowatch/bin/sowatch +Icon=sowatch64 +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/sowatchui/sowatch.svg b/sowatchui/sowatch.svg new file mode 100644 index 0000000..566acfa --- /dev/null +++ b/sowatchui/sowatch.svg @@ -0,0 +1,93 @@ +<?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> diff --git a/sowatchui/sowatch64.png b/sowatchui/sowatch64.pngBinary files differ new file mode 100644 index 0000000..707d5c4 --- /dev/null +++ b/sowatchui/sowatch64.png diff --git a/sowatchui/sowatch80.png b/sowatchui/sowatch80.pngBinary files differ new file mode 100644 index 0000000..6ad8096 --- /dev/null +++ b/sowatchui/sowatch80.png diff --git a/sowatchui/sowatch_harmattan.desktop b/sowatchui/sowatch_harmattan.desktop new file mode 100644 index 0000000..64383b1 --- /dev/null +++ b/sowatchui/sowatch_harmattan.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=Sowatch +Exec=/usr/bin/invoker --type=d -s /opt/sowatch/bin/sowatch +Icon=/usr/share/icons/hicolor/80x80/apps/sowatch80.png +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/sowatchui/sowatchui.pro b/sowatchui/sowatchui.pro new file mode 100644 index 0000000..297e394 --- /dev/null +++ b/sowatchui/sowatchui.pro @@ -0,0 +1,48 @@ +TARGET=sowatch + +# Add more folders to ship with the application, here +qml_folder.source = qml +qml_folder.target = . +DEPLOYMENTFOLDERS = qml_folder + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +symbian:TARGET.UID3 = 0xE5EBE65C + +# Smart Installer package's UID +# This UID is from the protected range and therefore the package will +# fail to install if self-signed. By default qmake uses the unprotected +# range value if unprotected UID is defined for the application and +# 0x2002CCCF value if protected UID is given to the application +#symbian:DEPLOYMENT.installer_header = 0x2002CCCF + +# Allow network access on Symbian +symbian:TARGET.CAPABILITY += NetworkServices + +# If your application uses the Qt Mobility libraries, uncomment the following +# lines and add the respective components to the MOBILITY variable. +CONFIG += mobility +MOBILITY += serviceframework + +# Speed up launching on MeeGo/Harmattan when using applauncherd daemon +CONFIG += qdeclarative-boostable + +# Add dependency to Symbian components +# CONFIG += qt-components + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Please do not modify the following two lines. Required for deployment. +include(qmlapplicationviewer/qmlapplicationviewer.pri) +qtcAddDeployment() + +OTHER_FILES += \ +	qml/MainPage.qml \ +	qml/main.qml \ +    sowatch_harmattan.desktop \ +    sowatch.desktop + + + | 
