26 changed files with 416 additions and 24 deletions
@ -0,0 +1,43 @@ |
|||
TEMPLATE = app |
|||
|
|||
QT += quick mvvmquick mvvmdatasyncquick widgets |
|||
|
|||
TARGET = DataSyncSampleQuick |
|||
|
|||
SOURCES += main.cpp |
|||
|
|||
RESOURCES += qml.qrc |
|||
|
|||
target.path = $$[QT_INSTALL_EXAMPLES]/mvvmdatasyncquick/$$TARGET |
|||
INSTALLS += target |
|||
|
|||
#not found by linker? |
|||
linux:!android { |
|||
LIBS += -L$$OUT_PWD/../../../lib #required to make this the first place to search |
|||
LIBS += -L$$[QT_INSTALL_LIBS] -licudata |
|||
LIBS += -L$$[QT_INSTALL_LIBS] -licui18n |
|||
LIBS += -L$$[QT_INSTALL_LIBS] -licuuc |
|||
} |
|||
|
|||
#add lib dir to rpath |
|||
mac: QMAKE_LFLAGS += '-Wl,-rpath,\'$$OUT_PWD/../../../lib\'' |
|||
|
|||
#link to core lib |
|||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../mvvmdatasynccore/DataSyncSampleCore/release/ -lDataSyncSampleCore |
|||
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../mvvmdatasynccore/DataSyncSampleCore/debug/ -lDataSyncSampleCore |
|||
else:unix: LIBS += -L$$OUT_PWD/../../mvvmdatasynccore/DataSyncSampleCore/ -lDataSyncSampleCore |
|||
|
|||
INCLUDEPATH += $$PWD/../../mvvmdatasynccore/DataSyncSampleCore |
|||
DEPENDPATH += $$PWD/../../mvvmdatasynccore/DataSyncSampleCore |
|||
|
|||
win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../../mvvmdatasynccore/DataSyncSampleCore/release/libDataSyncSampleCore.a |
|||
else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../../mvvmdatasynccore/DataSyncSampleCore/debug/libDataSyncSampleCore.a |
|||
else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../../mvvmdatasynccore/DataSyncSampleCore/release/DataSyncSampleCore.lib |
|||
else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../../mvvmdatasynccore/DataSyncSampleCore/debug/DataSyncSampleCore.lib |
|||
else:unix: PRE_TARGETDEPS += $$OUT_PWD/../../mvvmdatasynccore/DataSyncSampleCore/libDataSyncSampleCore.a |
|||
|
|||
# thanks to qmlc files, only the import path must be fixed |
|||
samples_in_build { |
|||
QML_IMPORT_PATH = $$OUT_PWD/../../../qml |
|||
DEFINES += QML_PATH=\\\"$$QML_IMPORT_PATH\\\" |
|||
} |
@ -0,0 +1,77 @@ |
|||
import QtQuick 2.10 |
|||
import QtQuick.Controls 2.3 |
|||
import QtQuick.Layouts 1.3 |
|||
import de.skycoder42.QtMvvm.Core 1.0 |
|||
import de.skycoder42.QtMvvm.Quick 1.0 |
|||
import de.skycoder42.QtMvvm.Sample 1.0 |
|||
|
|||
Page { |
|||
id: sampleView |
|||
property SampleViewModel viewModel: null |
|||
readonly property bool presentAsRoot: true |
|||
|
|||
header: ToolBar { |
|||
height: 56 |
|||
|
|||
Label { |
|||
anchors.fill: parent |
|||
font.pointSize: 16 |
|||
font.bold: true |
|||
elide: Label.ElideRight |
|||
horizontalAlignment: Qt.AlignLeft |
|||
verticalAlignment: Qt.AlignVCenter |
|||
leftPadding: 10 |
|||
text: qsTr("Datasync Sample") |
|||
} |
|||
} |
|||
|
|||
PresenterProgress {} |
|||
|
|||
Pane { |
|||
anchors.fill: parent |
|||
GridLayout { |
|||
id: grid |
|||
anchors.fill: parent |
|||
|
|||
columns: 2 |
|||
|
|||
ListView { |
|||
id: mainList |
|||
Layout.columnSpan: 2 |
|||
Layout.fillHeight: true |
|||
Layout.fillWidth: true |
|||
clip: true |
|||
model: viewModel.model |
|||
|
|||
delegate: ItemDelegate { |
|||
width: parent.width |
|||
text: key |
|||
onPressAndHold: viewModel.removeAt(index) |
|||
} |
|||
} |
|||
|
|||
TextField { |
|||
id: addField |
|||
placeholderText: "Key" |
|||
Layout.fillWidth: true |
|||
} |
|||
|
|||
Button { |
|||
id: addButton |
|||
text: qsTr("Add") |
|||
onClicked: { |
|||
viewModel.addData(addField.text); |
|||
addField.clear(); |
|||
} |
|||
} |
|||
|
|||
Button { |
|||
id: syncButton |
|||
text: qsTr("Sync Status") |
|||
onClicked: viewModel.showSyncInfo() |
|||
Layout.columnSpan: 2 |
|||
Layout.fillWidth: true |
|||
} |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,26 @@ |
|||
#include <QtWidgets/QApplication> |
|||
#include <QtQml/QQmlApplicationEngine> |
|||
|
|||
#include <samplecoreapp.h> |
|||
#include <sampleviewmodel.h> |
|||
|
|||
QTMVVM_REGISTER_CORE_APP(SampleCoreApp) |
|||
|
|||
int main(int argc, char *argv[]) |
|||
{ |
|||
#ifdef QML_PATH |
|||
qputenv("QML2_IMPORT_PATH", QML_PATH); |
|||
#endif |
|||
|
|||
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); |
|||
QApplication app(argc, argv); |
|||
|
|||
qmlRegisterUncreatableType<SampleViewModel>("de.skycoder42.QtMvvm.Sample", 1, 0, "SampleViewModel", QStringLiteral("ViewModels cannot be created")); |
|||
|
|||
QQmlApplicationEngine engine; |
|||
engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); |
|||
if (engine.rootObjects().isEmpty()) |
|||
return -1; |
|||
|
|||
return app.exec(); |
|||
} |
@ -0,0 +1,6 @@ |
|||
import QtQuick 2.10 |
|||
import de.skycoder42.QtMvvm.Quick 1.0 |
|||
|
|||
QtMvvmApp { |
|||
title: qsTr("QtMvvm Quick Sample") |
|||
} |
@ -0,0 +1,8 @@ |
|||
<RCC> |
|||
<qresource prefix="/"> |
|||
<file>main.qml</file> |
|||
</qresource> |
|||
<qresource prefix="/qtmvvm/views"> |
|||
<file>SampleView.qml</file> |
|||
</qresource> |
|||
</RCC> |
@ -0,0 +1,4 @@ |
|||
TEMPLATE = subdirs |
|||
|
|||
SUBDIRS += \ |
|||
DataSyncSampleQuick |
@ -1,9 +1,11 @@ |
|||
TEMPLATE = subdirs |
|||
CONFIG += ordered |
|||
|
|||
SUBDIRS += \ |
|||
mvvmquick \ |
|||
mvvmcore |
|||
|
|||
qtHaveModule(datasync) { |
|||
SUBDIRS += mvvmdatasynccore |
|||
SUBDIRS += mvvmdatasynccore \ |
|||
mvvmdatasyncquick |
|||
} |
|||
|
@ -0,0 +1,5 @@ |
|||
import QtQuick 2.10 |
|||
|
|||
Item { |
|||
|
|||
} |
@ -0,0 +1,3 @@ |
|||
{ |
|||
"Keys" : [ ] |
|||
} |
@ -0,0 +1,40 @@ |
|||
QT += core qml quick mvvmdatasyncquick |
|||
CXX_MODULE = mvvmdatasyncquick |
|||
TARGETPATH = de/skycoder42/QtMvvm/DataSync/Quick |
|||
TARGET = declarative_mvvmdatasyncquick |
|||
IMPORT_VERSION = $$MODULE_VERSION_IMPORT |
|||
DEFINES += "VERSION_MAJOR=$$MODULE_VERSION_MAJOR" |
|||
DEFINES += "VERSION_MINOR=$$MODULE_VERSION_MINOR" |
|||
|
|||
HEADERS += \ |
|||
qtmvvmdatasyncquick_plugin.h \ |
|||
testdummy.h |
|||
|
|||
SOURCES += \ |
|||
qtmvvmdatasyncquick_plugin.cpp \ |
|||
testdummy.cpp |
|||
|
|||
QML_FILES += \ |
|||
DataSyncView.qml |
|||
|
|||
OTHER_FILES += qmldir |
|||
|
|||
generate_qmltypes { |
|||
typeextra1.target = qmltypes |
|||
typeextra1.depends += export LD_LIBRARY_PATH := "$$shadowed($$dirname(_QMAKE_CONF_))/lib/:$(LD_LIBRARY_PATH)" |
|||
typeextra2.target = qmltypes |
|||
typeextra2.depends += export QML2_IMPORT_PATH := "$$shadowed($$dirname(_QMAKE_CONF_))/qml/" |
|||
QMAKE_EXTRA_TARGETS += typeextra1 typeextra2 |
|||
} |
|||
|
|||
CONFIG += qmlcache |
|||
load(qml_plugin) |
|||
|
|||
generate_qmltypes { |
|||
qmltypes.depends = ../../../qml/$$TARGETPATH/$(TARGET) #overwrite the target deps |
|||
qmltypes.commands += "2>/dev/null" # kill invalid qml warnings |
|||
|
|||
mfirst.target = all |
|||
mfirst.depends += qmltypes |
|||
QMAKE_EXTRA_TARGETS += mfirst |
|||
} |
@ -0,0 +1,50 @@ |
|||
import QtQuick.tooling 1.2 |
|||
|
|||
// This file describes the plugin-supplied types contained in the library. |
|||
// It is used for QML tooling purposes only. |
|||
// |
|||
// This file was auto-generated by: |
|||
// 'qmlplugindump -nonrelocatable de.skycoder42.QtMvvm.DataSync.Quick 1.0' |
|||
|
|||
Module { |
|||
dependencies: [ |
|||
"Qt.labs.platform 1.0", |
|||
"QtGraphicalEffects 1.0", |
|||
"QtQml 2.2", |
|||
"QtQml.Models 2.3", |
|||
"QtQuick 2.8", |
|||
"QtQuick.Window 2.1", |
|||
"de.skycoder42.QtMvvm.Core 1.0", |
|||
"de.skycoder42.QtMvvm.DataSync.Core 1.0", |
|||
"de.skycoder42.QtMvvm.Quick 1.0" |
|||
] |
|||
Component { |
|||
name: "TestDummy" |
|||
prototype: "QObject" |
|||
exports: ["de.skycoder42.QtMvvm.DataSync.Quick/TestDummy 1.0"] |
|||
exportMetaObjectRevisions: [0] |
|||
} |
|||
Component { |
|||
prototype: "QQuickPlatformFileDialog" |
|||
name: "de.skycoder42.QtMvvm.Quick/FileDialog 1.0" |
|||
exports: ["de.skycoder42.QtMvvm.Quick/FileDialog 1.0"] |
|||
exportMetaObjectRevisions: [0] |
|||
isComposite: true |
|||
defaultProperty: "data" |
|||
Property { name: "msgConfig"; type: "QVariant" } |
|||
Property { name: "msgResult"; type: "QtMvvm::MessageResult"; isPointer: true } |
|||
Property { name: "mimeTypes"; type: "QVariant" } |
|||
Signal { name: "closed" } |
|||
} |
|||
Component { |
|||
prototype: "QQuickPlatformFolderDialog" |
|||
name: "de.skycoder42.QtMvvm.Quick/FolderDialog 1.0" |
|||
exports: ["de.skycoder42.QtMvvm.Quick/FolderDialog 1.0"] |
|||
exportMetaObjectRevisions: [0] |
|||
isComposite: true |
|||
defaultProperty: "data" |
|||
Property { name: "msgConfig"; type: "QVariant" } |
|||
Property { name: "msgResult"; type: "QtMvvm::MessageResult"; isPointer: true } |
|||
Signal { name: "closed" } |
|||
} |
|||
} |
@ -0,0 +1,6 @@ |
|||
module de.skycoder42.QtMvvm.DataSync.Quick |
|||
plugin declarative_mvvmdatasyncquick |
|||
classname QtMvvmDataSyncQuickDeclarativeModule |
|||
typeinfo plugins.qmltypes |
|||
depends de.skycoder42.QtMvvm.DataSync.Core 1.0 |
|||
depends de.skycoder42.QtMvvm.Quick 1.0 |
@ -0,0 +1,20 @@ |
|||
#include "qtmvvmdatasyncquick_plugin.h" |
|||
|
|||
#include <QtQml> |
|||
|
|||
#include "testdummy.h" |
|||
|
|||
QtMvvmDataSyncQuickDeclarativeModule::QtMvvmDataSyncQuickDeclarativeModule(QObject *parent) : |
|||
QQmlExtensionPlugin(parent) |
|||
{} |
|||
|
|||
void QtMvvmDataSyncQuickDeclarativeModule::registerTypes(const char *uri) |
|||
{ |
|||
Q_ASSERT(qstrcmp(uri, "de.skycoder42.QtMvvm.DataSync.Quick") == 0); |
|||
|
|||
//Version 1.0
|
|||
qmlRegisterType<TestDummy>(uri, 1, 0, "TestDummy"); |
|||
|
|||
// Check to make shure no module update is forgotten
|
|||
static_assert(VERSION_MAJOR == 1 && VERSION_MINOR == 0, "QML module version needs to be updated"); |
|||
} |
@ -0,0 +1,16 @@ |
|||
#ifndef QTMVVMDATASYNCQUICK_PLUGIN_H |
|||
#define QTMVVMDATASYNCQUICK_PLUGIN_H |
|||
|
|||
#include <QtQml/QQmlExtensionPlugin> |
|||
|
|||
class QtMvvmDataSyncQuickDeclarativeModule : public QQmlExtensionPlugin |
|||
{ |
|||
Q_OBJECT |
|||
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) |
|||
|
|||
public: |
|||
QtMvvmDataSyncQuickDeclarativeModule(QObject *parent = nullptr); |
|||
void registerTypes(const char *uri) override; |
|||
}; |
|||
|
|||
#endif // QTMVVMDATASYNCQUICK_PLUGIN_H
|
@ -0,0 +1,6 @@ |
|||
#include "testdummy.h" |
|||
|
|||
TestDummy::TestDummy(QObject *parent) : QObject(parent) |
|||
{ |
|||
|
|||
} |
@ -0,0 +1,17 @@ |
|||
#ifndef TESTDUMMY_H |
|||
#define TESTDUMMY_H |
|||
|
|||
#include <QObject> |
|||
|
|||
class TestDummy : public QObject //TODO remove again
|
|||
{ |
|||
Q_OBJECT |
|||
public: |
|||
explicit TestDummy(QObject *parent = nullptr); |
|||
|
|||
signals: |
|||
|
|||
public slots: |
|||
}; |
|||
|
|||
#endif // TESTDUMMY_H
|
@ -0,0 +1,34 @@ |
|||
TARGET = QtMvvmDataSyncQuick |
|||
|
|||
QT = core gui quick mvvmdatasynccore mvvmquick mvvmdatasynccore-private |
|||
|
|||
HEADERS += \ |
|||
qtmvvmdatasyncquick_global.h |
|||
|
|||
SOURCES += |
|||
|
|||
TRANSLATIONS += \ |
|||
translations/qtmvvmdatasyncquick_de.ts \ |
|||
translations/qtmvvmdatasyncquick_template.ts |
|||
|
|||
DISTFILES += $$TRANSLATIONS |
|||
|
|||
qpmx_ts_target.path = $$[QT_INSTALL_TRANSLATIONS] |
|||
qpmx_ts_target.depends += lrelease |
|||
|
|||
load(qt_module) |
|||
|
|||
win32 { |
|||
QMAKE_TARGET_PRODUCT = "$$TARGET" |
|||
QMAKE_TARGET_COMPANY = "Skycoder42" |
|||
QMAKE_TARGET_COPYRIGHT = "Felix Barz" |
|||
} else:mac { |
|||
QMAKE_TARGET_BUNDLE_PREFIX = "com.skycoder42." |
|||
} |
|||
|
|||
!ReleaseBuild:!DebugBuild:!system(qpmx -d $$shell_quote($$_PRO_FILE_PWD_) --qmake-run init $$QPMX_EXTRA_OPTIONS $$shell_quote($$QMAKE_QMAKE) $$shell_quote($$OUT_PWD)): error(qpmx initialization failed. Check the compilation log for details.) |
|||
else: include($$OUT_PWD/qpmx_generated.pri) |
|||
|
|||
qpmx_ts_target.files -= $$OUT_PWD/$$QPMX_WORKINGDIR/qtmvvmdatasyncquick_template.qm |
|||
qpmx_ts_target.files += translations/qtmvvmdatasyncquick_template.ts |
|||
|
@ -0,0 +1,14 @@ |
|||
{ |
|||
"dependencies": [], |
|||
"license": { |
|||
"file": "", |
|||
"name": "" |
|||
}, |
|||
"prcFile": "", |
|||
"priFile": "", |
|||
"priIncludes": [ |
|||
], |
|||
"publishers": { |
|||
}, |
|||
"source": false |
|||
} |
@ -0,0 +1,12 @@ |
|||
#ifndef MVVMDATASYNCQUICK_GLOBAL_H |
|||
#define MVVMDATASYNCQUICK_GLOBAL_H |
|||
|
|||
#include <QtCore/qglobal.h> |
|||
|
|||
#if defined(QT_BUILD_MVVMDATASYNCQUICK_LIB) |
|||
# define Q_MVVMDATASYNCQUICK_EXPORT Q_DECL_EXPORT |
|||
#else |
|||
# define Q_MVVMDATASYNCQUICK_EXPORT Q_DECL_IMPORT |
|||
#endif |
|||
|
|||
#endif // MVVMDATASYNCQUICK_GLOBAL_H
|
Loading…
Reference in new issue