Mercurial > hg > octave-terminal
changeset 15312:d81105896288
m-editor: open a new file from the directory of the last active tab
* file-editor-tab.cc, file-editor-tab.h: new get_file_name method & open_file with a directory
* file-editor.cc: request_open_file with the path to the last active file
author | Thorsten Liebig <thorsten.liebig@gmx.de> |
---|---|
date | Tue, 04 Sep 2012 22:34:48 +0200 |
parents | 704ab1b4c369 |
children | 34ae358bd566 |
files | libgui/src/m-editor/file-editor-tab.cc libgui/src/m-editor/file-editor-tab.h libgui/src/m-editor/file-editor.cc |
diffstat | 3 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor-tab.cc +++ b/libgui/src/m-editor/file-editor-tab.cc @@ -603,13 +603,14 @@ } bool -file_editor_tab::open_file () +file_editor_tab::open_file (QString dir) { QString openFileName; QFileDialog fileDialog(this); fileDialog.setNameFilter(SAVE_FILE_FILTER); fileDialog.setAcceptMode(QFileDialog::AcceptOpen); fileDialog.setViewMode(QFileDialog::Detail); + fileDialog.setDirectory(dir); if (fileDialog.exec () == QDialog::Accepted) { openFileName = fileDialog.selectedFiles().at(0);
--- a/libgui/src/m-editor/file-editor-tab.h +++ b/libgui/src/m-editor/file-editor-tab.h @@ -64,7 +64,7 @@ void set_modified (bool modified = true); - bool open_file (); + bool open_file (QString dir = QString ()); void load_file (QString fileName); void new_file (); bool save_file (); @@ -73,6 +73,8 @@ void run_file (); void file_has_changed (QString fileName); + + QString get_file_name () const {return _file_name;} signals: void file_name_changed (QString fileName);
--- a/libgui/src/m-editor/file-editor.cc +++ b/libgui/src/m-editor/file-editor.cc @@ -98,11 +98,16 @@ void file_editor::request_open_file () { + file_editor_tab *current_tab = active_editor_tab (); file_editor_tab *fileEditorTab = new file_editor_tab (this); if (fileEditorTab) { add_file_editor_tab (fileEditorTab); - if (!fileEditorTab->open_file ()) + QString dir = QDir::currentPath (); + // get the filename of the last active tab to open a new file from there + if (current_tab) + dir = QDir::cleanPath (current_tab->get_file_name ()); + if (!fileEditorTab->open_file (dir)) { // If no file was loaded, remove the tab again. _tab_widget->removeTab (_tab_widget->indexOf (fileEditorTab));