Skip to content
This repository was archived by the owner on Mar 4, 2023. It is now read-only.

Commit b8af658

Browse files
committed
filedialog refactoring
1 parent dcd4d40 commit b8af658

File tree

4 files changed

+36
-120
lines changed

4 files changed

+36
-120
lines changed

AndroidFileDialog.qml

Lines changed: 7 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -6,63 +6,16 @@ import de.skycoder42.androidutils 1.1
66
FileChooser {
77
id: fileDialog
88

9-
property bool linkFileMode: true
9+
property var labsDialog: null
10+
property alias fileChooser: fileDialog
1011

11-
default property var data
12-
property int flags: Qt.Dialog
13-
property int modality: Qt.NonModal
14-
property Window parentWindow: null
15-
property int result: Dialog.Rejected
16-
property bool visible: false
17-
property string acceptLabel
18-
property string rejectLabel
19-
property alias currentFile: fileDialog.contentUrl
20-
property var currentFiles: [currentFile]
12+
property bool saveFile: false
13+
property int dialogFlags: 0
2114
property string defaultSuffix
15+
property string folder
2216
property alias file: fileDialog.contentUrl
23-
property int fileMode: FileDialog.OpenFile
24-
property var files: [file]
25-
property alias folder: fileDialog.contentUrl
2617
property var nameFilters
27-
property int options
2818

29-
onAccepted: result = Dialog.Accepted
30-
onRejected: result = Dialog.Rejected
31-
32-
function accept() {}
33-
function reject() {}
34-
function close() {}
35-
function done(result) {
36-
fileDialog.result = result;
37-
}
38-
39-
onTypeChanged: {
40-
if(!linkFileMode)
41-
return;
42-
43-
switch(type) {
44-
case FileChooser.GetContent:
45-
case FileChooser.OpenDocument:
46-
fileMode = FileDialog.OpenFile;
47-
break;
48-
case FileChooser.CreateDocument:
49-
fileMode = FileDialog.SaveFile
50-
break;
51-
}
52-
}
53-
54-
onFileModeChanged: {
55-
if(!linkFileMode)
56-
return;
57-
58-
switch(fileMode) {
59-
case FileDialog.OpenFile:
60-
case FileDialog.OpenFiles:
61-
fileMode = FileChooser.OpenDocument;
62-
break;
63-
case FileDialog.SaveFile:
64-
fileMode = FileChooser.CreateDocument;
65-
break;
66-
}
67-
}
19+
type: saveFile ? FileChooser.CreateDocument : FileChooser.OpenDocument
20+
contentUrl: folder + "file" + defaultSuffix
6821
}

Demo/ContentTab.qml

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import de.skycoder42.androidutils.demo 1.0
66

77
Pane {
88
FileDialog {
9-
id: chooser
9+
id: fileDialog
1010

11-
type: modeBox.model.get(modeBox.currentIndex).value
11+
saveFile: openBox.checked
1212

13-
onAccepted: AndroidUtils.showToast("File choosen: " + chooser.contentUrl, true)
13+
onAccepted: AndroidUtils.showToast("File choosen: " + fileDialog.file, true)
1414
onRejected: AndroidUtils.showToast("file choosing aborted!")
1515
}
1616

@@ -26,51 +26,40 @@ Pane {
2626

2727
TextField {
2828
id: contentField
29-
text: chooser.contentUrl
29+
text: fileDialog.file
3030

3131
Layout.fillWidth: true
32-
Layout.columnSpan: 3
32+
Layout.columnSpan: 2
3333

3434
onEditingFinished: chooser.contentUrl = contentField.text
3535
}
3636

37-
ComboBox {
38-
id: modeBox
39-
textRole: "key"
40-
41-
Layout.fillWidth: true
42-
Layout.columnSpan: 3
43-
44-
model: ListModel {
45-
ListElement { key: "GetContent"; value: FileChooser.GetContent }
46-
ListElement { key: "OpenDocument"; value: FileChooser.OpenDocument }
47-
ListElement { key: "CreateDocument"; value: FileChooser.CreateDocument }
48-
}
49-
50-
currentIndex: 1
37+
CheckBox {
38+
id: openBox
39+
text: "Get save file"
5140
}
5241

5342
Button {
5443
id: chooserButton
5544
Layout.fillWidth: true
5645
text: "Open file chooser"
57-
onClicked: chooser.open()
46+
onClicked: fileDialog.open()
5847
}
5948

6049
Button {
6150
id: editButton
6251
Layout.fillWidth: true
6352
text: "Display/Edit File"
6453

65-
onClicked: opener.openFile(chooser.contentUrl)
54+
onClicked: opener.openFile(fileDialog.file)
6655
}
6756

6857
Button {
6958
id: saveButton
7059
Layout.fillWidth: true
7160
text: "Save File"
7261

73-
onClicked: opener.saveFile(chooser.contentUrl, editField.text)
62+
onClicked: opener.saveFile(fileDialog.file, editField.text)
7463
}
7564

7665
TextArea {

FileDialog.qml

Lines changed: 9 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,17 @@
1-
import Qt.labs.platform 1.0
1+
import Qt.labs.platform 1.0 as Labs
22
import de.skycoder42.androidutils 1.1
33

4-
FileDialog {
4+
Labs.FileDialog {
55
id: fileDialog
66

7-
property bool linkFileMode: true
7+
property alias labsDialog: fileDialog
8+
property var fileChooser: null
89

9-
property alias contentUrl: fileDialog.file
10-
property int type: FileChooser.OpenDocument
11-
property string mimeType: "*/*"
10+
property bool saveFile: false
11+
property alias dialogFlags: fileDialog.options
1212
property int chooserFlags: FileChooser.OpenableFlag
13+
property string mimeType: "*/*"
1314

14-
onTypeChanged: {
15-
if(!linkFileMode)
16-
return;
17-
18-
switch(type) {
19-
case FileChooser.GetContent:
20-
case FileChooser.OpenDocument:
21-
fileMode = FileDialog.OpenFile;
22-
break;
23-
case FileChooser.CreateDocument:
24-
fileMode = FileDialog.SaveFile
25-
break;
26-
}
27-
}
28-
29-
onFileModeChanged: {
30-
if(!linkFileMode)
31-
return;
32-
33-
switch(fileMode) {
34-
case FileDialog.OpenFile:
35-
case FileDialog.OpenFiles:
36-
fileMode = FileChooser.OpenDocument;
37-
break;
38-
case FileDialog.SaveFile:
39-
fileMode = FileChooser.CreateDocument;
40-
break;
41-
}
42-
}
15+
fileMode: saveFile ? Labs.FileDialog.SaveFile : Labs.FileDialog.OpenFile
16+
modality: Qt.WindowModal
4317
}

qpm.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@
22
"name": "de.skycoder42.androidutils",
33
"description": "Utils for easy c++ and qml integration of common android features",
44
"author": {
5-
"name": "Skycoder",
6-
"email": "[email protected]"
5+
"name": "Skycoder",
6+
"email": "[email protected]"
77
},
88
"repository": {
9-
"type": "GITHUB",
10-
"url": "https://github.com/Skycoder42/AndroidUtils.git"
9+
"type": "GITHUB",
10+
"url": "https://github.com/Skycoder42/AndroidUtils.git"
1111
},
1212
"version": {
13-
"label": "1.1.1",
14-
"revision": "",
15-
"fingerprint": ""
13+
"label": "1.1.1",
14+
"revision": "",
15+
"fingerprint": ""
1616
},
1717
"dependencies": [
18-
18+
1919
],
2020
"license": "BSD_3_CLAUSE",
2121
"pri_filename": "de_skycoder42_androidutils.pri",
2222
"webpage": "https://github.com/Skycoder42/AndroidUtils"
23-
}
23+
}

0 commit comments

Comments
 (0)