Sailfish OS Code Beispiel: Datei/Ordner Auswahl in QML | Code and Create

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