Merge pull request #328 from TheGag96/master

Improved the file dialog path selection again
This commit is contained in:
Vadim Lopatin 2017-04-03 05:04:56 +03:00 committed by GitHub
commit 9427a8fe75
1 changed files with 9 additions and 13 deletions

View File

@ -456,7 +456,14 @@ class FileDialog : Dialog, CustomGridCellAdapter {
return true;
}
if (action.id == StandardAction.Open || action.id == StandardAction.OpenDirectory || action.id == StandardAction.Save) {
if (_filename.length > 0) {
auto baseFilename = toUTF8(_edFilename.text);
_filename = _path ~ dirSeparator ~ baseFilename;
if (action.id != StandardAction.OpenDirectory && isDir(_filename)) {
auto row = _fileList.row();
onItemActivated(row);
return true;
} else if (baseFilename.length > 0) {
Action result = _action;
result.stringParam = _filename;
// success if either selected dir & has to open dir or if selected file
@ -466,10 +473,6 @@ class FileDialog : Dialog, CustomGridCellAdapter {
close(result);
return true;
}
} else if (_filename.length == 0){
auto row = _fileList.row();
onItemActivated(row);
return true;
}
}
return super.handleAction(action);
@ -542,10 +545,6 @@ class FileDialog : Dialog, CustomGridCellAdapter {
if (_flags & FileDialogFlag.SelectDirectory) {
_edFilename.visibility = Visibility.Gone;
}
if ((_flags & FileDialogFlag.Save) && !(_flags & FileDialogFlag.FileMustExist)) {
_edFilename.contentChange = &onFilenameTyped;
}
//_edFilename.layoutWeight = 0;
fnlayout.addChild(_edFilename);
@ -639,10 +638,6 @@ class FileDialog : Dialog, CustomGridCellAdapter {
override void onShow() {
_fileList.setFocus();
}
void onFilenameTyped(EditableContent content) {
_filename = _path ~ dirSeparator ~ toUTF8(content.text);
}
}
interface OnPathSelectionHandler {
@ -1007,3 +1002,4 @@ class DirEditLine : FileNameEditLine {
}
//import dlangui.widgets.metadata;
//mixin(registerWidgets!(FileNameEditLine, DirEditLine)());