Sailfish OS Code Beispiel: Datei/Ordner Auswahl in QML
Einleitung
Sailfish OS bietet im Gegensatz zum QT-Standard derzeit keinen einheitlichen Dateidialog. Da ich für meine Todos-App einen benötige, dachte ich mir ich veröffentliche folgende kleine, rein in Silica/QML umgesetzte, Lösung. Ich hoffe sie hilft anderen (angehenden) Sailfish OS Entwicklern bei der Lösung dieses doch sehr häufig auftretenden Problems.
Wie benutze ich den Dialog in meiner App?
Wie jeden anderen Dialog in einer Sailfish OS App; QML Datei unter pages (...) ablegen und aufrufen. Beispiel:
onClicked: {
var cacFileSelect = pageStack.push(Qt.resolvedUrl("cacFileSelect.qml"), {
// Optionen
})
cacFileSelect.accepted.connect(function() {
// "cacFileSelect.selectedFileName" beinhaltet die Auswahl
})
}
Optionen
Beim Aufruf des Dialogs können folgende Parameter mitgegeben werden:
- setRootFolder - Setzt den Stammordner des Dialogs. Es ist nicht möglich in einen Übergeordneten Ordner zu wechseln. (Standard: /home/nemo)
- setFolder - Ordner der beim Aufruf des Dialogs geöffnet wird (Standard: /home/nemo)
- setShowHidden - Versteckte Dateien anzeigen (Standard: false)
Links
Quellcode (github) | Beispiel App (OpenRepos.net)
Weiterführende Doku zu Qt.labs.folderlistmodel