Browse Source

add menu more button to quick module

pull/2/head
Skycoder42 7 years ago
parent
commit
06c2c258ea
  1. 12
      examples/mvvmdatasyncquick/DataSyncSampleQuick/SampleView.qml
  2. 39
      examples/mvvmquick/SampleQuick/SampleView.qml
  3. 3
      examples/mvvmquick/SampleQuick/TabView.qml
  4. 53
      src/imports/mvvmdatasyncquick/DataSyncView.qml
  5. 21
      src/imports/mvvmdatasyncquick/qtmvvmdatasyncquick_plugin.qrc
  6. 37
      src/imports/mvvmquick/MenuButton.qml
  7. 0
      src/imports/mvvmquick/icons/ic_more_vert_white_24px.svg
  8. 1
      src/imports/mvvmquick/mvvmquick.pro
  9. 1
      src/imports/mvvmquick/qmldir
  10. 39
      src/imports/mvvmquick/qtmvvmquick_plugin.qrc

12
examples/mvvmdatasyncquick/DataSyncSampleQuick/SampleView.qml

@ -10,17 +10,9 @@ Page {
property SampleViewModel viewModel: null
readonly property bool presentAsRoot: true
header: ToolBar {
height: 56
Label {
header: ContrastToolBar {
ToolBarLabel {
anchors.fill: parent
font.pointSize: 16
font.bold: true
elide: Label.ElideRight
horizontalAlignment: Qt.AlignLeft
verticalAlignment: Qt.AlignVCenter
leftPadding: 10
text: qsTr("Datasync Sample")
}
}

39
examples/mvvmquick/SampleQuick/SampleView.qml

@ -15,8 +15,9 @@ Page {
anchors.fill: parent
spacing: 0
ToolButton {
ActionButton {
text: "≣"
display: AbstractButton.TextOnly
onClicked: QuickPresenter.toggleDrawer()
}
@ -25,27 +26,21 @@ Page {
Layout.fillWidth: true
}
ToolButton {
text: "⋮"
onClicked: moreMenu.open()
Menu {
id: moreMenu
MenuItem {
text: qsTr("Another Input")
onTriggered: viewModel.getInput()
}
MenuItem {
text: qsTr("Add Files")
onTriggered: viewModel.getFiles()
}
MenuSeparator {}
MenuItem {
text: qsTr("About")
onTriggered: viewModel.about()
}
MenuButton {
MenuItem {
text: qsTr("Another Input")
onTriggered: viewModel.getInput()
}
MenuItem {
text: qsTr("Add Files")
onTriggered: viewModel.getFiles()
}
MenuSeparator {}
MenuItem {
text: qsTr("About")
onTriggered: viewModel.about()
}
}
}

3
examples/mvvmquick/SampleQuick/TabView.qml

@ -18,8 +18,9 @@ Page {
columnSpacing: 0
columns: 2
ToolButton {
ActionButton {
text: "≣"
display: AbstractButton.TextOnly
onClicked: QuickPresenter.toggleDrawer()
}

53
src/imports/mvvmdatasyncquick/DataSyncView.qml

@ -41,50 +41,31 @@ Page {
onClicked: viewModel.showDeviceInfo()
}
ActionButton {
MenuButton {
id: _moreButton
icon.source: "image://svg/de/skycoder42/qtmvvm/quick/icons/ic_more_vert"
text: qsTr("More…")
checkable: true
checked: _moreMenu.visible
MouseArea { //used to catch mouse events to prevent flickering
visible: _moreMenu.visible
anchors.fill: parent
}
Menu {
id: _moreMenu
visible: _moreButton.checked
MenuItem {
text: qsTr("Update exchange key")
onClicked: viewModel.accountManager.updateExchangeKey()
}
MenuSeparator {}
MenuItem {
text: qsTr("Update exchange key")
onClicked: viewModel.accountManager.updateExchangeKey()
}
MenuItem {
text: qsTr("Reload devices list")
onClicked: viewModel.accountManager.listDevices()
}
MenuSeparator {}
MenuSeparator {}
MenuItem {
text: qsTr("Reload devices list")
onClicked: viewModel.accountManager.listDevices()
}
MenuItem {
text: qsTr("Change remote server")
onClicked: viewModel.changeRemote()
}
MenuSeparator {}
MenuItem {
text: qsTr("Reset Identity")
onClicked: viewModel.performReset()
}
MenuItem {
text: qsTr("Change remote server")
onClicked: viewModel.changeRemote()
}
Component.onCompleted: {
if(QuickPresenter.currentStyle !== "Material")
_moreMenu.y = Qt.binding(function(){return _moreButton.height});
MenuItem {
text: qsTr("Reset Identity")
onClicked: viewModel.performReset()
}
}
}

21
src/imports/mvvmdatasyncquick/qtmvvmdatasyncquick_plugin.qrc

@ -1,13 +1,12 @@
<RCC>
<qresource prefix="/de/skycoder42/qtmvvm/quick/icons">
<file alias="ic_sync.svg">icons/ic_sync_white_24px.svg</file>
<file alias="ic_fingerprint.svg">icons/ic_fingerprint_white_24px.svg</file>
<file alias="ic_more_vert.svg">icons/ic_more_vert_white_24px.svg</file>
<file alias="ic_delete_forever.svg">icons/ic_delete_forever_white_24px.svg</file>
<file alias="ic_add.svg">icons/ic_add_white_24px.svg</file>
<file alias="ic_export.svg">icons/ic_call_made_white_24px.svg</file>
<file alias="ic_import.svg">icons/ic_call_received_white_24px.svg</file>
<file alias="ic_exchange.svg">icons/ic_import_export_white_24px.svg</file>
<file alias="ic_check.svg">icons/ic_check_white_24px.svg</file>
</qresource>
<qresource prefix="/de/skycoder42/qtmvvm/quick/icons">
<file alias="ic_sync.svg">icons/ic_sync_white_24px.svg</file>
<file alias="ic_fingerprint.svg">icons/ic_fingerprint_white_24px.svg</file>
<file alias="ic_delete_forever.svg">icons/ic_delete_forever_white_24px.svg</file>
<file alias="ic_add.svg">icons/ic_add_white_24px.svg</file>
<file alias="ic_export.svg">icons/ic_call_made_white_24px.svg</file>
<file alias="ic_import.svg">icons/ic_call_received_white_24px.svg</file>
<file alias="ic_exchange.svg">icons/ic_import_export_white_24px.svg</file>
<file alias="ic_check.svg">icons/ic_check_white_24px.svg</file>
</qresource>
</RCC>

37
src/imports/mvvmquick/MenuButton.qml

@ -0,0 +1,37 @@
import QtQuick 2.10
import QtQuick.Controls 2.3
import de.skycoder42.QtMvvm.Quick 1.0
ActionButton {
id: _menuButton
icon.name: "view-more-symbolic"
icon.source: "image://svg/de/skycoder42/qtmvvm/quick/icons/ic_more_vert"
text: qsTr("More…")
checkable: true
checked: _moreMenu.visible
property alias moreMenu: _moreMenu
default property alias menuContent: _moreMenu.contentData
MouseArea { //used to catch mouse events to prevent flickering
visible: _moreMenu.visible
anchors.fill: parent
}
Menu {
id: _moreMenu
visible: _menuButton.checked
}
Component.onCompleted: {
if(QuickPresenter.currentStyle !== "Material") {
_moreMenu.y = Qt.binding(function(){
return _menuButton.height + Math.max(0, (parent.height - _menuButton.height)/2);
});
} else {
_moreMenu.y = Qt.binding(function(){
return Math.min(0, (_menuButton.height - parent.height)/2);
});
}
}
}

0
src/imports/mvvmdatasyncquick/icons/ic_more_vert_white_24px.svg → src/imports/mvvmquick/icons/ic_more_vert_white_24px.svg

Before

Width:  |  Height:  |  Size: 309 B

After

Width:  |  Height:  |  Size: 309 B

1
src/imports/mvvmquick/mvvmquick.pro

@ -36,6 +36,7 @@ QML_FILES += \
ToolBarLabel.qml \
ActionButton.qml \
RoundActionButton.qml \
MenuButton.qml \
MsgBoxBase.qml \
MsgBox.qml \
InputDialog.qml \

1
src/imports/mvvmquick/qmldir

@ -21,6 +21,7 @@ ContrastToolBar 1.0 ContrastToolBar.qml
ToolBarLabel 1.0 ToolBarLabel.qml
ActionButton 1.0 ActionButton.qml
RoundActionButton 1.0 RoundActionButton.qml
MenuButton 1.0 MenuButton.qml
PresenterProgress 1.0 PresenterProgress.qml
PresentingStackView 1.0 PresentingStackView.qml

39
src/imports/mvvmquick/qtmvvmquick_plugin.qrc

@ -1,21 +1,22 @@
<RCC>
<qresource prefix="/de/skycoder42/qtmvvm/quick/icons">
<file alias="ic_error.svg">icons/ic_error_white_24px.svg</file>
<file alias="ic_help.svg">icons/ic_help_white_24px.svg</file>
<file alias="ic_info.svg">icons/ic_info_white_24px.svg</file>
<file alias="ic_warning.svg">icons/ic_warning_white_24px.svg</file>
<file alias="ic_close.svg">icons/ic_close_white_24px.svg</file>
<file alias="ic_search.svg">icons/ic_search_white_24px.svg</file>
<file alias="ic_settings_backup_restore.svg">icons/ic_settings_backup_restore_white_24px.svg</file>
<file alias="ic_chevron_right.svg">icons/ic_chevron_right_white_24px.svg</file>
</qresource>
<qresource prefix="/de/skycoder42/qtmvvm/quick/qml">
<file>FileDialog.qml</file>
<file>FolderDialog.qml</file>
<file>AndroidFileDialog.qml</file>
<file>AndroidFolderDialog.qml</file>
</qresource>
<qresource prefix="/de/skycoder42/qtmvvm/icons">
<file alias="settings.svg">icons/ic_settings_white_24px.svg</file>
</qresource>
<qresource prefix="/de/skycoder42/qtmvvm/quick/icons">
<file alias="ic_error.svg">icons/ic_error_white_24px.svg</file>
<file alias="ic_help.svg">icons/ic_help_white_24px.svg</file>
<file alias="ic_info.svg">icons/ic_info_white_24px.svg</file>
<file alias="ic_warning.svg">icons/ic_warning_white_24px.svg</file>
<file alias="ic_close.svg">icons/ic_close_white_24px.svg</file>
<file alias="ic_search.svg">icons/ic_search_white_24px.svg</file>
<file alias="ic_settings_backup_restore.svg">icons/ic_settings_backup_restore_white_24px.svg</file>
<file alias="ic_chevron_right.svg">icons/ic_chevron_right_white_24px.svg</file>
<file alias="ic_more_vert.svg">icons/ic_more_vert_white_24px.svg</file>
</qresource>
<qresource prefix="/de/skycoder42/qtmvvm/quick/qml">
<file>FileDialog.qml</file>
<file>FolderDialog.qml</file>
<file>AndroidFileDialog.qml</file>
<file>AndroidFolderDialog.qml</file>
</qresource>
<qresource prefix="/de/skycoder42/qtmvvm/icons">
<file alias="settings.svg">icons/ic_settings_white_24px.svg</file>
</qresource>
</RCC>

Loading…
Cancel
Save