* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
import CameraPlus 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
Column {
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import "CameraToolBar.js" as Layout
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import QtCamera 1.0
import CameraPlus 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
Item {
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
ToolIcon {
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
import "data.js" as Data
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import QtCamera 1.0
import CameraPlus 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
import "data.js" as Data
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
import "data.js" as Data
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
import CameraPlus 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
Column {
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
import "data.js" as Data
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
import "data.js" as Data
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
Image {
anchors.left: parent.left
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import QtCamera 1.0
CaptureButton {
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import QtCamera 1.0
import CameraPlus 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import CameraPlus 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import CameraPlus 1.0
import com.nokia.meego 1.1
import QtCamera 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
Rectangle {
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
Row {
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import QtCamera 1.0
import CameraPlus 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.0
Rectangle {
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
Item {
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
import "data.js" as Data
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
ToolIcon {
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
import CameraPlus 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import CameraPlus 1.0
import QtCamera 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
Column {
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
import "data.js" as Data
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
import "data.js" as Data
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import CameraPlus 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import CameraPlus 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import QtCamera 1.0
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import QtQuick 1.1
+@IMPORT_QT_QUICK@
import com.nokia.meego 1.1
import com.nokia.extras 1.1
import QtCamera 1.0
#include "qt_private/qdeclarativedebughelper_p.h"
#endif /* QMLJSDEBUGGER */
+#include <QAbstractFileEngineHandler>
+#include "qmlfileengine.h"
+
+class QmlFileEngineHandler : public QAbstractFileEngineHandler {
+ QAbstractFileEngine *create(const QString& fileName) const {
+ QString fn = fileName.toLower();
+ if (fn.startsWith(':') && fn.endsWith(".qml")) {
+ return new QmlFileEngine(fileName);
+ }
+
+ return 0;
+ }
+};
+
Q_DECL_EXPORT int main(int argc, char *argv[]) {
QApplication::setAttribute(Qt::AA_X11InitThreads, true);
QApplication app(argc, argv);
+ QmlFileEngineHandler handler;
+ Q_UNUSED(handler);
+
#ifdef QMLJSDEBUGGER
QDeclarativeDebugHelper::enableDebugging();
#endif /* QMLJSDEBUGGER */
--- /dev/null
+// -*- c++ -*-
+
+/*!
+ * This file is part of CameraPlus.
+ *
+ * Copyright (C) 2012-2013 Mohammed Sameer <msameer@foolab.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "qmlfileengine.h"
+#include <QResource>
+#include <QDateTime>
+
+// TODO: support mmap extension
+
+QmlFileEngine::QmlFileEngine(const QString& fileName) :
+ QFSFileEngine(fileName),
+ m_res(new QResource(fileName)),
+ m_off(0) {
+
+}
+
+void QmlFileEngine::setFileName(const QString& file) {
+ m_res->setFileName(file);
+}
+
+bool QmlFileEngine::open(QIODevice::OpenMode flags) {
+ if (!m_res->isValid() || m_res->fileName().isEmpty()) {
+ return false;
+ }
+
+ if (flags & QIODevice::WriteOnly) {
+ return false;
+ }
+
+ m_off = 0;
+
+ if (m_res->isCompressed()) {
+ m_data = qUncompress(m_res->data(), m_res->size());
+ }
+ else {
+ m_data = QByteArray::fromRawData((const char *)m_res->data(), m_res->size());
+ }
+
+ m_data.replace("@IMPORT_QT_QUICK@", "import QtQuick 1.1");
+
+ return true;
+}
+
+bool QmlFileEngine::close() {
+ m_data.clear();
+ m_off = 0;
+
+ return true;
+}
+
+bool QmlFileEngine::flush() {
+ return true;
+}
+
+qint64 QmlFileEngine::size() const {
+ return m_data.size();
+}
+
+qint64 QmlFileEngine::pos() const {
+ return m_off;
+}
+
+bool QmlFileEngine::atEnd() const {
+ return m_off == m_data.size();
+}
+
+bool QmlFileEngine::seek(qint64 pos) {
+ if (pos > m_data.size()) {
+ return false;
+ }
+
+ return true;
+}
+
+qint64 QmlFileEngine::read(char *data, qint64 len) {
+ if (len > m_data.size() - m_off) {
+ len = m_data.size() - m_off;
+ }
+
+ if (len <= 0) {
+ return 0;
+ }
+
+ memcpy(data, m_data.data() + m_off, len);
+
+ m_off += len;
+
+ return len;
+}
+
+qint64 QmlFileEngine::write(const char *data, qint64 len) {
+ Q_UNUSED(data);
+ Q_UNUSED(len);
+
+ return false;
+}
+
+bool QmlFileEngine::remove() {
+ return false;
+}
+
+bool QmlFileEngine::copy(const QString& newName) {
+ Q_UNUSED(newName);
+
+ return false;
+}
+
+bool QmlFileEngine::rename(const QString& newName) {
+ Q_UNUSED(newName);
+
+ return false;
+}
+
+bool QmlFileEngine::link(const QString& newName) {
+ Q_UNUSED(newName);
+
+ return false;
+}
+
+bool QmlFileEngine::isSequential() const {
+ return false;
+}
+
+bool QmlFileEngine::isRelativePath() const {
+ return false;
+}
+
+bool QmlFileEngine::mkdir(const QString& dirName, bool createParentDirectories) const {
+ Q_UNUSED(dirName);
+ Q_UNUSED(createParentDirectories);
+
+ return false;
+}
+
+bool QmlFileEngine::rmdir(const QString& dirName, bool recurseParentDirectories) const {
+ Q_UNUSED(dirName);
+ Q_UNUSED(recurseParentDirectories);
+
+ return false;
+}
+
+bool QmlFileEngine::setSize(qint64 size) {
+ Q_UNUSED(size);
+
+ return false;
+}
+
+QStringList QmlFileEngine::entryList(QDir::Filters filters, const QStringList& filterNames) const {
+ Q_UNUSED(filters);
+ Q_UNUSED(filterNames);
+
+ return QStringList();
+}
+
+bool QmlFileEngine::caseSensitive() const {
+ return true;
+}
+
+QFSFileEngine::FileFlags QmlFileEngine::fileFlags(FileFlags type) const {
+ QFSFileEngine::FileFlags flags = 0;
+
+ if (!m_res->isValid()) {
+ return flags;
+ }
+
+ if (type & TypesMask) {
+ flags |= FileType;
+ }
+
+ if (type & FlagsMask) {
+ flags |= ExistsFlag;
+ }
+
+ return flags;
+}
+
+bool QmlFileEngine::setPermissions(uint perms) {
+ Q_UNUSED(perms);
+
+ return false;
+}
+
+QString QmlFileEngine::fileName(QAbstractFileEngine::FileName file) const {
+ Q_UNUSED(file);
+
+ // TODO:
+ return QString();
+}
+
+uint QmlFileEngine::ownerId(FileOwner owner) const {
+ Q_UNUSED(owner);
+
+ return -2;
+}
+
+QString QmlFileEngine::owner(FileOwner owner) const {
+ Q_UNUSED(owner);
+
+ return QString();
+}
+
+QDateTime QmlFileEngine::fileTime(FileTime time) const {
+ Q_UNUSED(time);
+
+ return QDateTime();
+}
--- /dev/null
+// -*- c++ -*-
+
+/*!
+ * This file is part of CameraPlus.
+ *
+ * Copyright (C) 2012-2013 Mohammed Sameer <msameer@foolab.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef QML_FILE_ENGINE_H
+#define QML_FILE_ENGINE_H
+
+#include <QFSFileEngine>
+
+class QResource;
+
+class QmlFileEngine : public QFSFileEngine {
+public:
+ QmlFileEngine(const QString& fileName);
+
+ virtual void setFileName(const QString& file);
+ virtual bool open(QIODevice::OpenMode flags);
+ virtual bool close();
+ virtual bool flush();
+ virtual qint64 size() const;
+ virtual qint64 pos() const;
+ virtual bool atEnd() const;
+ virtual bool seek(qint64 pos);
+ virtual qint64 read(char *data, qint64 len);
+ virtual qint64 write(const char *data, qint64 len);
+ virtual bool remove();
+ virtual bool copy(const QString& newName);
+ virtual bool rename(const QString& newName);
+ virtual bool link(const QString& newName);
+ virtual bool isSequential() const;
+ virtual bool isRelativePath() const;
+ virtual bool mkdir(const QString& dirName, bool createParentDirectories) const;
+ virtual bool rmdir(const QString& dirName, bool recurseParentDirectories) const;
+ virtual bool setSize(qint64 size);
+ virtual QStringList entryList(QDir::Filters filters, const QStringList& filterNames) const;
+ virtual bool caseSensitive() const;
+ virtual FileFlags fileFlags(FileFlags type) const;
+ virtual bool setPermissions(uint perms);
+ virtual QString fileName(QAbstractFileEngine::FileName file) const;
+ virtual uint ownerId(FileOwner owner) const;
+ virtual QString owner(FileOwner owner) const;
+ virtual QDateTime fileTime(FileTime time) const;
+ // TODO:
+ // virtual Iterator *beginEntryList(QDir::Filters filters, const QStringList &filterNames);
+ // virtual Iterator *endEntryList();
+ // bool extension(Extension extension, const ExtensionOption *option = 0, ExtensionReturn *output = 0);
+ // bool supportsExtension(Extension extension) const;
+
+private:
+ QResource *m_res;
+ QByteArray m_data;
+ qint64 m_off;
+};
+
+#endif /* QML_FILE_ENGINE_H */
cameraresources.cpp compass.cpp orientation.cpp geocode.cpp mountprotector.cpp \
trackerstore.cpp focusrectangle.cpp sharehelper.cpp deletehelper.cpp galleryhelper.cpp \
postcapturemodel.cpp batteryinfo.cpp gridlines.cpp deviceinfo.cpp devicekeys.cpp \
- platformsettings.cpp dbusservice.cpp
+ platformsettings.cpp dbusservice.cpp qmlfileengine.cpp
HEADERS += settings.h filenaming.h quillitem.h displaystate.h fsmonitor.h \
cameraresources.h compass.h orientation.h geocode.h mountprotector.h \
trackerstore.h focusrectangle.h sharehelper.h deletehelper.h galleryhelper.h \
postcapturemodel.h batteryinfo.h gridlines.h deviceinfo.h devicekeys.h \
- platformsettings.h dbusservice.h
+ platformsettings.h dbusservice.h qmlfileengine.h
RESOURCES += ../qml/qml.qrc