X-Git-Url: https://www.flypig.org.uk/git/?p=openvpnui.git;a=blobdiff_plain;f=qml%2Ffilebrowse%2Fcomponents%2FDirPopup.qml;fp=qml%2Ffilebrowse%2Fcomponents%2FDirPopup.qml;h=b7a4eeec0c4a2595ddee4ac198e641f580d1b6e1;hp=0000000000000000000000000000000000000000;hb=e24363e314aca32e7bee952f02f517a04a8dc5f2;hpb=ee3968ffa08d4e0fcbad87765efa3aeb32ff0554 diff --git a/qml/filebrowse/components/DirPopup.qml b/qml/filebrowse/components/DirPopup.qml new file mode 100644 index 0000000..b7a4eee --- /dev/null +++ b/qml/filebrowse/components/DirPopup.qml @@ -0,0 +1,117 @@ +import QtQuick 2.0 +import Sailfish.Silica 1.0 +import "../pages/functions.js" as Functions + +// This component displays a list of dir options on top of a page +Item { + id: item + property int menuTop: 100 + + property int _selectedMenu: 0 + property Item _contextMenu + + function show() + { + if (!_contextMenu) + _contextMenu = contextMenuComponent.createObject(rect); + _selectedMenu = 0; + + // update spaces + var rootSpace = engine.diskSpace("/"); + if (rootSpace.length > 0) { + _contextMenu.rootSpaceText = qsTr("Root (%1)").arg(rootSpace[0]); + _contextMenu.rootSpaceSubtext = rootSpace[1]; + } else { + _contextMenu.rootSpaceText = qsTr("Root"); + _contextMenu.rootSpaceSubtext = ""; + } + + var sdCardSpace = engine.diskSpace(Functions.sdcardPath()); + if (sdCardSpace.length > 0) { + _contextMenu.sdCardSpaceText = qsTr("SD Card (%1)").arg(sdCardSpace[0]); + _contextMenu.sdCardSpaceSubtext = sdCardSpace[1]; + } else { + _contextMenu.sdCardSpaceText = qsTr("SD Card"); + _contextMenu.sdCardSpaceSubtext = ""; + } + + _contextMenu.show(rect); + } + + Column { + anchors.fill: parent + + Item { + id: spacer + width: parent.width + height: menuTop + } + // bg rectangle for context menu so it covers underlying items + Rectangle { + id: rect + color: "black" + width: parent.width + height: _contextMenu ? _contextMenu.height : 0 + } + } + + Component { + id: contextMenuComponent + ContextMenu { + + property string sdCardSpaceText: "" + property string sdCardSpaceSubtext: "" + property string rootSpaceText: "" + property string rootSpaceSubtext: "" + + // delayed action so that menu has already closed when page transition happens + onClosed: { + if (_selectedMenu == 1) { + Functions.goToHome(); + + } else if (_selectedMenu == 2) { + var sdcard = Functions.sdcardPath(); + if (engine.exists(sdcard)) { + Functions.goToFolder(sdcard); + } else { + // this assumes that the page has a notificationPanel + notificationPanel.showText(qsTr("SD Card not found"), sdcard); + } + + } else if (_selectedMenu == 3) { + var androidSdcard = Functions.androidSdcardPath(); + if (engine.exists(androidSdcard)) { + Functions.goToFolder(androidSdcard); + } else { + // this assumes that the page has a notificationPanel + notificationPanel.showText(qsTr("Android Storage not found"), androidSdcard); + } + + } else if (_selectedMenu == 4) { + Functions.goToRoot(); + } + _selectedMenu = 0; + } + + MenuItem { + text: qsTr("Home") + onClicked: _selectedMenu = 1 + } + DoubleMenuItem { + text: sdCardSpaceText + subtext: sdCardSpaceSubtext + onClicked: _selectedMenu = 2 + } + MenuItem { + text: qsTr("Android Storage") + onClicked: _selectedMenu = 3 + } + DoubleMenuItem { + text: rootSpaceText + subtext: rootSpaceSubtext + onClicked: _selectedMenu = 4 + } + } + } + +}