From 8eacdfd2c032802ab57c92db355beaf00f93444d Mon Sep 17 00:00:00 2001 From: TheGag96 Date: Sat, 11 Feb 2017 16:59:46 -0600 Subject: [PATCH 1/2] Improved --- src/dlangui/dialogs/filedlg.d | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/dlangui/dialogs/filedlg.d b/src/dlangui/dialogs/filedlg.d index 0f4663ed..efde0d5b 100644 --- a/src/dlangui/dialogs/filedlg.d +++ b/src/dlangui/dialogs/filedlg.d @@ -456,6 +456,7 @@ class FileDialog : Dialog, CustomGridCellAdapter { return true; } if (action.id == StandardAction.Open || action.id == StandardAction.OpenDirectory || action.id == StandardAction.Save) { + _filename = _path ~ dirSeparator ~ toUTF8(_edFilename.text); if (_filename.length > 0) { Action result = _action; result.stringParam = _filename; @@ -542,10 +543,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 +636,6 @@ class FileDialog : Dialog, CustomGridCellAdapter { override void onShow() { _fileList.setFocus(); } - - void onFilenameTyped(EditableContent content) { - _filename = _path ~ dirSeparator ~ toUTF8(content.text); - } } interface OnPathSelectionHandler { @@ -1007,3 +1000,4 @@ class DirEditLine : FileNameEditLine { } //import dlangui.widgets.metadata; +//mixin(registerWidgets!(FileNameEditLine, DirEditLine)()); \ No newline at end of file From 2f72f5950a2b1bc87caa79f86c55b3de2fd308bd Mon Sep 17 00:00:00 2001 From: TheGag96 Date: Sat, 11 Feb 2017 17:21:26 -0600 Subject: [PATCH 2/2] Small fix for selecting directories --- src/dlangui/dialogs/filedlg.d | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/dlangui/dialogs/filedlg.d b/src/dlangui/dialogs/filedlg.d index efde0d5b..b4315461 100644 --- a/src/dlangui/dialogs/filedlg.d +++ b/src/dlangui/dialogs/filedlg.d @@ -456,8 +456,14 @@ class FileDialog : Dialog, CustomGridCellAdapter { return true; } if (action.id == StandardAction.Open || action.id == StandardAction.OpenDirectory || action.id == StandardAction.Save) { - _filename = _path ~ dirSeparator ~ toUTF8(_edFilename.text); - 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 @@ -467,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); @@ -1000,4 +1002,4 @@ class DirEditLine : FileNameEditLine { } //import dlangui.widgets.metadata; -//mixin(registerWidgets!(FileNameEditLine, DirEditLine)()); \ No newline at end of file +//mixin(registerWidgets!(FileNameEditLine, DirEditLine)());