Mercurial > jwe > octave
changeset 27639:57b9cf9d8796
simplify loop over tabs in file_editor::find_tab_widget
* file-editor-tab.h (file_editor_tab::file_name): New function.
* file-editor (file_editor::find_tab_widget): Loop over simple list of
tabs directly instead a map from filenames to tab info.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 04 Nov 2019 23:50:16 -0500 |
parents | fd009322dd9f |
children | a10b3e56d678 |
files | libgui/src/m-editor/file-editor-tab.h libgui/src/m-editor/file-editor.cc |
diffstat | 2 files changed, 18 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor-tab.h Mon Nov 04 17:05:09 2019 -0500 +++ b/libgui/src/m-editor/file-editor-tab.h Mon Nov 04 23:50:16 2019 -0500 @@ -65,6 +65,8 @@ void update_breakpoints (); + QString file_name (void) const { return m_file_name; } + signals: void tab_ready_to_close (void);
--- a/libgui/src/m-editor/file-editor.cc Mon Nov 04 17:05:09 2019 -0500 +++ b/libgui/src/m-editor/file-editor.cc Mon Nov 04 23:50:16 2019 -0500 @@ -2606,26 +2606,25 @@ // Check whether this file is already open in the editor. QWidget * file_editor::find_tab_widget (const QString& file) { - // Have all file editor tabs signal what their filenames are. - m_editor_tab_map.clear (); - emit fetab_file_name_query (nullptr); - - // Check all tabs for the given file name - QWidget *retval = nullptr; - - for (auto p = m_editor_tab_map.cbegin (); - p != m_editor_tab_map.cend (); p++) + std::string std_file = file.toStdString (); + + std::list<file_editor_tab *> fe_tab_lst = m_tab_widget->tab_list (); + + for (auto fe_tab : fe_tab_lst) { - QString tab_file = p->first; - if (same_file (file.toStdString (), tab_file.toStdString ()) - || file == tab_file) // needed as same_file ("","") is false. - { - retval = p->second.fet_ID; - break; - } + QString tab_file = fe_tab->file_name (); + + // We check file == tab_file because + // + // same_file ("", "") + // + // is false + + if (same_file (std_file, tab_file.toStdString ()) || file == tab_file) + return fe_tab; } - return retval; + return nullptr; } QAction * file_editor::add_action (QMenu *menu, const QString& text,