Skip to content

Commit

Permalink
Add example application
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewvogt committed Apr 8, 2016
1 parent 3e7d3ad commit 99cd170
Show file tree
Hide file tree
Showing 2 changed files with 144 additions and 0 deletions.
142 changes: 142 additions & 0 deletions example/Silica/FileBrowser.qml
@@ -0,0 +1,142 @@
import QtQuick 2.0
import Nemo.FileManager 1.0
import Sailfish.Silica 1.0

ApplicationWindow {
id: root

initialPage: Component {
Page {
SilicaListView {
id: lisView

anchors.fill: parent
model: fileModel

header: PageHeader {
title: fileModel.directoryName
}

delegate: ListItem {
height: Theme.itemSizeMedium

Image {
id: icon
anchors.verticalCenter: parent.verticalCenter
x: Theme.horizontalPageMargin
source: "image://theme/icon-m-" + (model.isDir ? "folder" : "file-other") + (highlighted ? '?' + Theme.highlightColor : '')
}

Item {
id: description
anchors {
verticalCenter: parent.verticalCenter
verticalCenterOffset: -Theme.paddingMedium
right: parent.right
rightMargin: Theme.horizontalPageMargin
left: icon.right
leftMargin: Theme.paddingMedium
}
height: fileNameLabel.height
baselineOffset: fileNameLabel.baselineOffset
Label {
id: fileNameLabel
text: model.fileName
color: highlighted ? Theme.highlightColor : Theme.primaryColor
truncationMode: TruncationMode.Fade
width: parent.width - sizeLabel.width - Theme.paddingMedium
}
Label {
id: sizeLabel
text: Format.formatFileSize(model.size)
font.pixelSize: Theme.fontSizeExtraSmall
anchors.right: parent.right
anchors.baseline: parent.baseline
color: highlighted ? Theme.highlightColor : Theme.primaryColor
}
}

Row {
spacing: Theme.paddingSmall
anchors {
top: description.bottom
right: description.right
}

Label {
opacity: 0.6
color: highlighted ? Theme.highlightColor : Theme.primaryColor
font.pixelSize: Theme.fontSizeExtraSmall
anchors.verticalCenter: parent.verticalCenter
text: model.mimeType
visible: !model.isDir
}

Label {
opacity: 0.6
color: highlighted ? Theme.highlightColor : Theme.primaryColor
font.pixelSize: Theme.fontSizeExtraSmall
anchors.verticalCenter: parent.verticalCenter
text: Format.formatDate(model.modified, Format.Timepoint)
}
}

onClicked: {
if (model.isDir) {
fileModel.path = model.absolutePath
}
}
}

VerticalScrollDecorator {}

PullDownMenu {
id: menu

property var action
onActiveChanged: {
if (!active && action) {
action()
action = undefined
}
}

MenuItem {
visible: fileModel.includeDirectories
text: 'Sort Directories: ' + (fileModel.directorySort == FileModel.SortDirectoriesBeforeFiles ? 'first' : 'last')
onClicked: menu.action = function() { fileModel.directorySort = (fileModel.directorySort == FileModel.SortDirectoriesBeforeFiles ? FileModel.SortDirectoriesAfterFiles : FileModel.SortDirectoriesBeforeFiles) }
}
MenuItem {
text: 'Show Directories: ' + (fileModel.includeDirectories ? 'on' : 'off')
onClicked: menu.action = function() { fileModel.includeDirectories = !fileModel.includeDirectories }
}
MenuItem {
text: 'Sort by: ' + (fileModel.sortBy == FileModel.SortByModified ? 'Time'
: (fileModel.sortBy == FileModel.SortByName ? 'Name'
: (fileModel.sortBy == FileModel.SortByExtension ? 'Type' : 'Size')))
onClicked: menu.action = function() {
fileModel.sortBy = (fileModel.sortBy == FileModel.SortByModified ? FileModel.SortByName
: (fileModel.sortBy == FileModel.SortByName ? FileModel.SortByExtension
: (fileModel.sortBy == FileModel.SortByExtension ? FileModel.SortBySize :FileModel.SortByModified)))
}
}
MenuItem {
text: 'Order: ' + (fileModel.sortOrder == Qt.AscendingOrder ? 'Ascending' : 'Descending')
onClicked: menu.action = function() { fileModel.sortOrder = (fileModel.sortOrder == Qt.AscendingOrder ? Qt.DescendingOrder : Qt.AscendingOrder) }
}
}
}
}
}

FileModel {
id: fileModel
active: true
includeDirectories: true
includeParentDirectory: true
directorySort: FileModel.SortDirectoriesBeforeFiles
sortBy: FileModel.SortByName
sortOrder: Qt.AscendingOrder
path: "."
}
}
2 changes: 2 additions & 0 deletions src/src.pro
Expand Up @@ -24,3 +24,5 @@ HEADERS += filemodel.h fileengine.h fileworker.h \
statfileinfo.h

INCLUDEPATH += $$PWD

OTHER_FILES += ../example/*/*.qml

0 comments on commit 99cd170

Please sign in to comment.