Mercurial > octave
diff libgui/src/main-window.cc @ 33352:c8dcba6e3ed8
make editor file dialogs modal
* file-editor-tab.cc (save_file_as): file dialog not a pointer,
make modal and show with exec(), get selected filter and files
after exec returns without using signal/slot mechaninsm;
(handle_save_as_filter_selected): removed slot;
(handle_save_file_as_answer): removed slot;
(handle_save_file_as_answer_close): removed slot;
(handle_save_file_as_answer_cancel): removed slot;
* file-editor-tab.h removed slots handle_save_file_as_answer,
handle_save_file_as_answer_close, handle_save_file_as_answer_cancel,
and handle_save_as_filter_selected
* main-window.cc (request_open_file): do not use pointer for file dialog,
use exec () and get selected files when exec return instead of using
signal/slot mechanism;
(request_open_files): remove slot
* main-window.h: remove slot request_open_files
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Sun, 07 Apr 2024 22:17:52 +0200 |
parents | a29e8d52c4e8 |
children | 689d4d069bbf |
line wrap: on
line diff
--- a/libgui/src/main-window.cc Sun Apr 07 13:33:33 2024 -0400 +++ b/libgui/src/main-window.cc Sun Apr 07 22:17:52 2024 +0200 @@ -1381,25 +1381,25 @@ if (is_internal) p = m_editor_window; - QFileDialog *fileDialog = new QFileDialog (p); + QFileDialog fileDialog (p); // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. if (! settings.bool_value (global_use_native_dialogs)) - fileDialog->setOption(QFileDialog::DontUseNativeDialog); - - fileDialog->setNameFilter (tr ("Octave Files (*.m);;All Files (*)")); - - fileDialog->setAcceptMode (QFileDialog::AcceptOpen); - fileDialog->setViewMode (QFileDialog::Detail); - fileDialog->setFileMode (QFileDialog::ExistingFiles); - fileDialog->setDirectory (m_current_directory_combo_box->itemText (0)); - - connect (fileDialog, &QFileDialog::filesSelected, - this, &main_window::request_open_files); - - fileDialog->setWindowModality (Qt::NonModal); - fileDialog->setAttribute (Qt::WA_DeleteOnClose); - fileDialog->show (); + fileDialog.setOption(QFileDialog::DontUseNativeDialog); + + fileDialog.setNameFilter (tr ("Octave Files (*.m);;All Files (*)")); + + fileDialog.setAcceptMode (QFileDialog::AcceptOpen); + fileDialog.setViewMode (QFileDialog::Detail); + fileDialog.setFileMode (QFileDialog::ExistingFiles); + fileDialog.setDirectory (m_current_directory_combo_box->itemText (0)); + + if (fileDialog.exec ()) + { + QStringList open_file_names = fileDialog.selectedFiles(); + for (int i = 0; i < open_file_names.count (); i++) + emit open_file_signal (open_file_names.at (i), m_file_encoding, -1); + } } // Create a new script @@ -2013,16 +2013,6 @@ m_file_encoding = new_encoding; } -// The following slot is called after files have been selected in the -// open file dialog, possibly with a new selected encoding stored in -// m_file_encoding -void -main_window::request_open_files (const QStringList& open_file_names) -{ - for (int i = 0; i < open_file_names.count (); i++) - emit open_file_signal (open_file_names.at (i), m_file_encoding, -1); -} - void main_window::profiler_session () {