Browse Source

fixup sample, export common components

pull/2/head
Skycoder42 7 years ago
parent
commit
37b5675da3
  1. 1
      examples/mvvmquick/SampleQuick/ResultView.qml
  2. 5
      examples/mvvmquick/SampleQuick/SampleQuick.pro
  3. 27
      examples/mvvmquick/SampleQuick/SampleView.qml
  4. 37
      examples/mvvmquick/SampleQuick/TabView.qml
  5. 20
      examples/mvvmquick/SampleQuick/qpmx.json
  6. 9
      src/imports/mvvmdatasyncquick/ChangeRemoteView.qml
  7. 9
      src/imports/mvvmdatasyncquick/DataSyncView.qml
  8. 19
      src/imports/mvvmdatasyncquick/ExportSetupView.qml
  9. 19
      src/imports/mvvmdatasyncquick/IdentityEditView.qml
  10. 24
      src/imports/mvvmquick/AlertDialog.qml
  11. 19
      src/imports/mvvmquick/MsgBoxBase.qml
  12. 9
      src/imports/mvvmquick/SettingsView.qml
  13. 12
      src/imports/mvvmquick/ToolBarLabel.qml
  14. 2
      src/imports/mvvmquick/mvvmquick.pro
  15. 2
      src/imports/mvvmquick/qmldir
  16. 6
      src/mvvmdatasynccore/datasyncviewmodel.cpp
  17. 4
      src/mvvmdatasynccore/networkexchangeviewmodel.cpp

1
examples/mvvmquick/SampleQuick/ResultView.qml

@ -3,7 +3,6 @@ import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import de.skycoder42.QtMvvm.Core 1.0 import de.skycoder42.QtMvvm.Core 1.0
import de.skycoder42.QtMvvm.Quick 1.0 import de.skycoder42.QtMvvm.Quick 1.0
import de.skycoder42.quickextras 2.0
import de.skycoder42.QtMvvm.Sample 1.0 import de.skycoder42.QtMvvm.Sample 1.0
AlertDialog { AlertDialog {

5
examples/mvvmquick/SampleQuick/SampleQuick.pro

@ -1,6 +1,6 @@
TEMPLATE = app TEMPLATE = app
QT += core gui qml quick mvvmquick widgets QT += core gui qml quick mvvmquick widgets quickcontrols2
TARGET = SampleQuick TARGET = SampleQuick
@ -45,6 +45,3 @@ samples_in_build {
QML_IMPORT_PATH = $$OUT_PWD/../../../qml QML_IMPORT_PATH = $$OUT_PWD/../../../qml
DEFINES += QML_PATH=\\\"$$QML_IMPORT_PATH\\\" DEFINES += QML_PATH=\\\"$$QML_IMPORT_PATH\\\"
} }
!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)

27
examples/mvvmquick/SampleQuick/SampleView.qml

@ -3,7 +3,6 @@ import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import de.skycoder42.QtMvvm.Core 1.0 import de.skycoder42.QtMvvm.Core 1.0
import de.skycoder42.QtMvvm.Quick 1.0 import de.skycoder42.QtMvvm.Quick 1.0
import de.skycoder42.quickextras 2.0
import de.skycoder42.QtMvvm.Sample 1.0 import de.skycoder42.QtMvvm.Sample 1.0
Page { Page {
@ -11,13 +10,27 @@ Page {
property SampleViewModel viewModel: null property SampleViewModel viewModel: null
readonly property bool presentAsRoot: true readonly property bool presentAsRoot: true
header: ActionBar { header: ContrastToolBar {
showMenuButton: true RowLayout {
title: qsTr("Sample") anchors.fill: parent
spacing: 0
onMenuButtonClicked: QuickPresenter.toggleDrawer() ToolButton {
text: "≣"
onClicked: QuickPresenter.toggleDrawer()
}
moreMenu: Menu { ToolBarLabel {
text: qsTr("Sample")
Layout.fillWidth: true
}
ToolButton {
text: "⋮"
onClicked: moreMenu.open()
Menu {
id: moreMenu
MenuItem { MenuItem {
text: qsTr("Another Input") text: qsTr("Another Input")
onTriggered: viewModel.getInput() onTriggered: viewModel.getInput()
@ -35,6 +48,8 @@ Page {
} }
} }
} }
}
}
PresenterProgress {} PresenterProgress {}

37
examples/mvvmquick/SampleQuick/TabView.qml

@ -3,24 +3,37 @@ import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import de.skycoder42.QtMvvm.Core 1.0 import de.skycoder42.QtMvvm.Core 1.0
import de.skycoder42.QtMvvm.Quick 1.0 import de.skycoder42.QtMvvm.Quick 1.0
import de.skycoder42.quickextras 2.0
import de.skycoder42.QtMvvm.Sample 1.0 import de.skycoder42.QtMvvm.Sample 1.0
Page { Page {
id: tabView id: tabView
property TabViewModel viewModel: null property TabViewModel viewModel: null
header: ActionBar { header: ContrastToolBar {
id: bar height: 56 + tabBar.height
showMenuButton: true
//showMenuAsBack: true
title: qsTr("Sample")
onMenuButtonClicked: QuickPresenter.toggleDrawer() GridLayout {
anchors.fill: parent
rowSpacing: 0
columnSpacing: 0
columns: 2
ToolButton {
text: "≣"
onClicked: QuickPresenter.toggleDrawer()
}
tabBar: TabBar { ToolBarLabel {
text: qsTr("Sample Tabs")
Layout.fillWidth: true
Layout.preferredHeight: 56
}
TabBar {
id: tabBar id: tabBar
currentIndex: 0 Layout.columnSpan: 2
Layout.fillWidth: true
onCurrentIndexChanged: swipe.setCurrentIndex(currentIndex)
TabButton { TabButton {
text: "+" text: "+"
@ -28,13 +41,14 @@ Page {
} }
} }
} }
}
PresenterProgress {} PresenterProgress {}
SwipeView { SwipeView {
id: swipe id: swipe
anchors.fill: parent anchors.fill: parent
currentIndex: bar.tabBarItem.currentIndex onCurrentIndexChanged: tabBar.setCurrentIndex(currentIndex)
} }
Component { Component {
@ -43,13 +57,11 @@ Page {
property TabItemViewModel viewModel: null property TabItemViewModel viewModel: null
text: viewModel.title text: viewModel.title
onClicked: swipe.setCurrentIndex(bar.tabBarItem.currentIndex)
} }
} }
function presentTab(item) { function presentTab(item) {
console.log("here"); console.log("here");
var tabBar = bar.tabBarItem;
tabBar.insertItem(tabBar.count - 1, _newTab.createObject(tabBar, {viewModel: item.viewModel})); tabBar.insertItem(tabBar.count - 1, _newTab.createObject(tabBar, {viewModel: item.viewModel}));
item.parent = swipe; item.parent = swipe;
swipe.addItem(item); swipe.addItem(item);
@ -58,7 +70,6 @@ Page {
} }
function afterPop() { function afterPop() {
var tabBar = bar.tabBarItem;
while(tabBar.count > 0) while(tabBar.count > 0)
tabBar.takeItem(0).destroy(); tabBar.takeItem(0).destroy();
while(swipe.count > 0) while(swipe.count > 0)

20
examples/mvvmquick/SampleQuick/qpmx.json

@ -1,20 +0,0 @@
{
"dependencies": [
{
"package": "de.skycoder42.quickextras",
"provider": "qpm",
"version": "2.1.0"
}
],
"license": {
"file": "",
"name": ""
},
"prcFile": "",
"priFile": "",
"priIncludes": [
],
"publishers": {
},
"source": false
}

9
src/imports/mvvmdatasyncquick/ChangeRemoteView.qml

@ -29,16 +29,9 @@ Page {
onClicked: QuickPresenter.popView() onClicked: QuickPresenter.popView()
} }
Label { ToolBarLabel {
id: _titleLabel id: _titleLabel
font.pointSize: 14
font.bold: true
elide: Label.ElideRight
horizontalAlignment: Qt.AlignLeft
verticalAlignment: Qt.AlignVCenter
Layout.fillWidth: true Layout.fillWidth: true
Layout.leftMargin: 16
text: qsTr("Change Remote") text: qsTr("Change Remote")
} }

9
src/imports/mvvmdatasyncquick/DataSyncView.qml

@ -20,16 +20,9 @@ Page {
anchors.fill: parent anchors.fill: parent
spacing: 0 spacing: 0
Label { ToolBarLabel {
id: _titleLabel id: _titleLabel
font.pointSize: 14
font.bold: true
elide: Label.ElideRight
horizontalAlignment: Qt.AlignLeft
verticalAlignment: Qt.AlignVCenter
Layout.fillWidth: true Layout.fillWidth: true
Layout.leftMargin: 16
text: qsTr("Synchronization") text: qsTr("Synchronization")
} }

19
src/imports/mvvmdatasyncquick/ExportSetupView.qml

@ -6,28 +6,11 @@ import de.skycoder42.QtMvvm.Core 1.0
import de.skycoder42.QtMvvm.Quick 1.0 import de.skycoder42.QtMvvm.Quick 1.0
import de.skycoder42.QtMvvm.DataSync.Core 1.0 import de.skycoder42.QtMvvm.DataSync.Core 1.0
Dialog { AlertDialog {
id: _exportSetupView id: _exportSetupView
property PExportSetupViewModel viewModel: null property PExportSetupViewModel viewModel: null
property real extraHeight: 0
property real baseWidth: 300
x: parent ? (parent.width - width) / 2 : 0
y: parent ? deltaY() : 0
width: parent ? Math.min(Math.max(implicitWidth, baseWidth), parent.width - 24) : implicitWidth
height: parent ? Math.min(implicitHeight, parent.height - 24) : implicitWidth
modal: true
focus: true
function deltaY() { //TODO move to common js file?
var unscaled = Qt.inputMethod.keyboardRectangle.height / Screen.devicePixelRatio;
var availHeight = (parent.height + extraHeight) - unscaled - 24; //margins
var rawDelta = (Math.max(0, availHeight - height) / 2);
return rawDelta + 12 - extraHeight; //spacing
}
title: viewModel.label title: viewModel.label
ColumnLayout { ColumnLayout {

19
src/imports/mvvmdatasyncquick/IdentityEditView.qml

@ -6,28 +6,11 @@ import de.skycoder42.QtMvvm.Core 1.0
import de.skycoder42.QtMvvm.Quick 1.0 import de.skycoder42.QtMvvm.Quick 1.0
import de.skycoder42.QtMvvm.DataSync.Core 1.0 import de.skycoder42.QtMvvm.DataSync.Core 1.0
Dialog { AlertDialog {
id: _identityEditView id: _identityEditView
property PIdentityEditViewModel viewModel: null property PIdentityEditViewModel viewModel: null
property real extraHeight: 0
property real baseWidth: 300
x: parent ? (parent.width - width) / 2 : 0
y: parent ? deltaY() : 0
width: parent ? Math.min(Math.max(implicitWidth, baseWidth), parent.width - 24) : implicitWidth
height: parent ? Math.min(implicitHeight, parent.height - 24) : implicitWidth
modal: true
focus: true
function deltaY() {
var unscaled = Qt.inputMethod.keyboardRectangle.height / Screen.devicePixelRatio;
var availHeight = (parent.height + extraHeight) - unscaled - 24; //margins
var rawDelta = (Math.max(0, availHeight - height) / 2);
return rawDelta + 12 - extraHeight; //spacing
}
title: qsTr("Edit Identity") title: qsTr("Edit Identity")
ColumnLayout { ColumnLayout {

24
src/imports/mvvmquick/AlertDialog.qml

@ -0,0 +1,24 @@
import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Window 2.2
Dialog {
id: _alertDialog
property real extraHeight: 0
property real baseWidth: 300
x: parent ? (parent.width - width) / 2 : 0
y: parent ? deltaY() : 0
width: parent ? Math.min(Math.max(implicitWidth, baseWidth), parent.width - 24) : implicitWidth
height: parent ? Math.min(implicitHeight, parent.height - 24) : implicitWidth
modal: true
focus: true
function deltaY() {
var unscaled = Qt.inputMethod.keyboardRectangle.height / Screen.devicePixelRatio;
var availHeight = (parent.height + extraHeight) - unscaled - 24; //margins
var rawDelta = (Math.max(0, availHeight - height) / 2);
return rawDelta + 12 - extraHeight; //spacing
}
}

19
src/imports/mvvmquick/MsgBoxBase.qml

@ -4,32 +4,15 @@ import QtQuick.Window 2.2
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import de.skycoder42.QtMvvm.Core 1.0 import de.skycoder42.QtMvvm.Core 1.0
Dialog { AlertDialog {
id: _msgBoxBase id: _msgBoxBase
property var msgConfig property var msgConfig
property MessageResult msgResult property MessageResult msgResult
property real extraHeight: 0
property real baseWidth: 300
property alias iconVisible: _icon.visible property alias iconVisible: _icon.visible
property alias iconSource: _icon.source property alias iconSource: _icon.source
x: parent ? (parent.width - width) / 2 : 0
y: parent ? deltaY() : 0
width: parent ? Math.min(Math.max(implicitWidth, baseWidth), parent.width - 24) : implicitWidth
height: parent ? Math.min(implicitHeight, parent.height - 24) : implicitWidth
modal: true
focus: true
function deltaY() {
var unscaled = Qt.inputMethod.keyboardRectangle.height / Screen.devicePixelRatio;
var availHeight = (parent.height + extraHeight) - unscaled - 24; //margins
var rawDelta = (Math.max(0, availHeight - height) / 2);
return rawDelta + 12 - extraHeight; //spacing
}
header: Pane { header: Pane {
id: _headerPane id: _headerPane
background: Item {} background: Item {}

9
src/imports/mvvmquick/SettingsView.qml

@ -29,15 +29,10 @@ Page {
Layout.fillHeight: true Layout.fillHeight: true
Layout.leftMargin: 16 Layout.leftMargin: 16
Label { ToolBarLabel {
id: _titleLabel id: _titleLabel
font.pointSize: 14
font.bold: true
elide: Label.ElideRight
horizontalAlignment: Qt.AlignLeft
verticalAlignment: Qt.AlignVCenter
anchors.fill: parent anchors.fill: parent
leftPadding: 0
text: qsTr("Settings") text: qsTr("Settings")
visible: !_searchField.visible visible: !_searchField.visible
} }

12
src/imports/mvvmquick/ToolBarLabel.qml

@ -0,0 +1,12 @@
import QtQuick 2.10
import QtQuick.Controls 2.3
Label {
id: _toolLabel
font.pointSize: 14
font.bold: true
elide: Label.ElideRight
horizontalAlignment: Qt.AlignLeft
verticalAlignment: Qt.AlignVCenter
leftPadding: 16
}

2
src/imports/mvvmquick/mvvmquick.pro

@ -31,7 +31,9 @@ QML_FILES += \
PopupPresenter.qml \ PopupPresenter.qml \
DialogPresenter.qml \ DialogPresenter.qml \
TintIcon.qml \ TintIcon.qml \
AlertDialog.qml \
ContrastToolBar.qml \ ContrastToolBar.qml \
ToolBarLabel.qml \
ActionButton.qml \ ActionButton.qml \
RoundActionButton.qml \ RoundActionButton.qml \
MsgBoxBase.qml \ MsgBoxBase.qml \

2
src/imports/mvvmquick/qmldir

@ -16,7 +16,9 @@ internal ListSection ListSection.qml
internal SectionListView SectionListView.qml internal SectionListView SectionListView.qml
internal OverviewListView OverviewListView.qml internal OverviewListView OverviewListView.qml
AlertDialog 1.0 AlertDialog.qml
ContrastToolBar 1.0 ContrastToolBar.qml ContrastToolBar 1.0 ContrastToolBar.qml
ToolBarLabel 1.0 ToolBarLabel.qml
ActionButton 1.0 ActionButton.qml ActionButton 1.0 ActionButton.qml
RoundActionButton 1.0 RoundActionButton.qml RoundActionButton 1.0 RoundActionButton.qml

6
src/mvvmdatasynccore/datasyncviewmodel.cpp

@ -156,7 +156,7 @@ void DataSyncViewModel::startImport()
config.setTitle(tr("Import account data")) config.setTitle(tr("Import account data"))
.setText(tr("Enter the password to decrypt the account data. " .setText(tr("Enter the password to decrypt the account data. "
"Then choose whether you want to keep you local data or not:")) "Then choose whether you want to keep you local data or not:"))
.setButtons(MessageConfig::YesToAll | MessageConfig::Yes | MessageConfig::Cancel) //TODO adjust to get ideal placement .setButtons(MessageConfig::YesToAll | MessageConfig::Yes | MessageConfig::Cancel)
.setButtonText(MessageConfig::YesToAll, tr("Reset data")) .setButtonText(MessageConfig::YesToAll, tr("Reset data"))
.setButtonText(MessageConfig::Yes, tr("Keep data")) .setButtonText(MessageConfig::Yes, tr("Keep data"))
.setViewProperties({ .setViewProperties({
@ -179,7 +179,7 @@ void DataSyncViewModel::startImport()
MessageConfig config{MessageConfig::TypeMessageBox, MessageConfig::SubTypeQuestion}; MessageConfig config{MessageConfig::TypeMessageBox, MessageConfig::SubTypeQuestion};
config.setTitle(tr("Import account data")) config.setTitle(tr("Import account data"))
.setText(tr("Keep the local data after changing the account?")) .setText(tr("Keep the local data after changing the account?"))
.setButtons(MessageConfig::YesToAll | MessageConfig::Yes | MessageConfig::Cancel) //TODO adjust to get ideal placement .setButtons(MessageConfig::YesToAll | MessageConfig::Yes | MessageConfig::Cancel)
.setButtonText(MessageConfig::YesToAll, tr("Reset data")) .setButtonText(MessageConfig::YesToAll, tr("Reset data"))
.setButtonText(MessageConfig::Yes, tr("Keep data")); .setButtonText(MessageConfig::Yes, tr("Keep data"));
auto res = CoreApp::showDialog(config); auto res = CoreApp::showDialog(config);
@ -210,7 +210,7 @@ void DataSyncViewModel::performReset()
"You will loose the connection to all other devices and get a new identity. " "You will loose the connection to all other devices and get a new identity. "
"You can either keep your data or reset it as well. " "You can either keep your data or reset it as well. "
"This cannot be undone!")) "This cannot be undone!"))
.setButtons(MessageConfig::YesToAll | MessageConfig::Yes | MessageConfig::Cancel) //TODO adjust to get ideal placement .setButtons(MessageConfig::YesToAll | MessageConfig::Yes | MessageConfig::Cancel)
.setButtonText(MessageConfig::YesToAll, tr("Reset data")) .setButtonText(MessageConfig::YesToAll, tr("Reset data"))
.setButtonText(MessageConfig::Yes, tr("Keep data")); .setButtonText(MessageConfig::Yes, tr("Keep data"));
auto res = CoreApp::showDialog(config); auto res = CoreApp::showDialog(config);

4
src/mvvmdatasynccore/networkexchangeviewmodel.cpp

@ -173,7 +173,7 @@ void NetworkExchangeViewModel::newUserData(const UserInfo &userInfo, bool truste
"Then choose whether you want to keep you local data or not:") "Then choose whether you want to keep you local data or not:")
.arg(userInfo.name()) .arg(userInfo.name())
.arg(ExchangeDevicesModel::fullAddress(userInfo))) .arg(ExchangeDevicesModel::fullAddress(userInfo)))
.setButtons(MessageConfig::YesToAll | MessageConfig::Yes | MessageConfig::Cancel) //TODO adjust to get ideal placement .setButtons(MessageConfig::YesToAll | MessageConfig::Yes | MessageConfig::Cancel)
.setButtonText(MessageConfig::YesToAll, tr("Reset data")) .setButtonText(MessageConfig::YesToAll, tr("Reset data"))
.setButtonText(MessageConfig::Yes, tr("Keep data")) .setButtonText(MessageConfig::Yes, tr("Keep data"))
.setViewProperties({ .setViewProperties({
@ -199,7 +199,7 @@ void NetworkExchangeViewModel::newUserData(const UserInfo &userInfo, bool truste
"Keep the local data after changing the account?") "Keep the local data after changing the account?")
.arg(userInfo.name()) .arg(userInfo.name())
.arg(ExchangeDevicesModel::fullAddress(userInfo))) .arg(ExchangeDevicesModel::fullAddress(userInfo)))
.setButtons(MessageConfig::YesToAll | MessageConfig::Yes | MessageConfig::Cancel) //TODO adjust to get ideal placement .setButtons(MessageConfig::YesToAll | MessageConfig::Yes | MessageConfig::Cancel)
.setButtonText(MessageConfig::YesToAll, tr("Reset data")) .setButtonText(MessageConfig::YesToAll, tr("Reset data"))
.setButtonText(MessageConfig::Yes, tr("Keep data")); .setButtonText(MessageConfig::Yes, tr("Keep data"));
auto res = CoreApp::showDialog(config); auto res = CoreApp::showDialog(config);

Loading…
Cancel
Save