Mercurial > octave
comparison libgui/src/main-window.cc @ 28497:2813ac10ca1e stable
force non-native file dialogs on Mac ignoring current user pref (bug #52840)
* gui-preferences-global.h: for MacOS, use the new third parameter of the
gui_pref constructor for global_use_native_dialog indicating that the
pref will be ignored and the default value (no nativ file dialogs)
will always be taken
* gui-preferences.h (gui_pref): struct with a new boolean ignore key, which
is false when not given in the constructor;
(value): if ignore flag is true, just return the defaut and ignore the
value from the settings file
* dialog.cc (FileDialog): use reimplemented value method from gui_settings,
not the one from QSettings
* find-files-dialog.cc (browse_folders): dito
* file-editor-tab.cc (save_file_as): dito
* main-window.cc (handle_save_workspace_request): dito;
(handle_load_workspace_request): dito;
(browse_for_directory): dito:
(request_open_file): dito;
* shortcut-manager.cc (import_export): dito
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Mon, 22 Jun 2020 20:43:00 +0200 |
parents | 2a4c4c7dfc88 |
children | 7a640885171a 63167a1f1fb5 |
comparison
equal
deleted
inserted
replaced
28495:bc521cd24922 | 28497:2813ac10ca1e |
---|---|
393 { | 393 { |
394 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. | 394 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. |
395 int opts = 0; // No options by default. | 395 int opts = 0; // No options by default. |
396 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); | 396 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
397 gui_settings *settings = rmgr.get_settings (); | 397 gui_settings *settings = rmgr.get_settings (); |
398 if (! settings->value (global_use_native_dialogs.key, | 398 if (! settings->value (global_use_native_dialogs).toBool ()) |
399 global_use_native_dialogs.def).toBool ()) | |
400 opts = QFileDialog::DontUseNativeDialog; | 399 opts = QFileDialog::DontUseNativeDialog; |
401 | 400 |
402 QString file | 401 QString file |
403 = QFileDialog::getSaveFileName (this, tr ("Save Workspace As"), ".", | 402 = QFileDialog::getSaveFileName (this, tr ("Save Workspace As"), ".", |
404 nullptr, nullptr, QFileDialog::Option (opts)); | 403 nullptr, nullptr, QFileDialog::Option (opts)); |
419 { | 418 { |
420 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. | 419 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. |
421 int opts = 0; // No options by default. | 420 int opts = 0; // No options by default. |
422 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); | 421 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
423 gui_settings *settings = rmgr.get_settings (); | 422 gui_settings *settings = rmgr.get_settings (); |
424 if (! settings->value (global_use_native_dialogs.key, | 423 if (! settings->value (global_use_native_dialogs).toBool ()) |
425 global_use_native_dialogs.def).toBool ()) | |
426 opts = QFileDialog::DontUseNativeDialog; | 424 opts = QFileDialog::DontUseNativeDialog; |
427 | 425 |
428 QString file = file_arg; | 426 QString file = file_arg; |
429 | 427 |
430 if (file.isEmpty ()) | 428 if (file.isEmpty ()) |
992 { | 990 { |
993 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. | 991 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. |
994 int opts = QFileDialog::ShowDirsOnly; | 992 int opts = QFileDialog::ShowDirsOnly; |
995 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); | 993 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
996 gui_settings *settings = rmgr.get_settings (); | 994 gui_settings *settings = rmgr.get_settings (); |
997 if (! settings->value (global_use_native_dialogs.key, | 995 if (! settings->value (global_use_native_dialogs).toBool ()) |
998 global_use_native_dialogs.def).toBool ()) | |
999 opts = QFileDialog::DontUseNativeDialog; | 996 opts = QFileDialog::DontUseNativeDialog; |
1000 | 997 |
1001 QString dir | 998 QString dir |
1002 = QFileDialog::getExistingDirectory (this, tr ("Browse directories"), nullptr, | 999 = QFileDialog::getExistingDirectory (this, tr ("Browse directories"), nullptr, |
1003 QFileDialog::Option (opts)); | 1000 QFileDialog::Option (opts)); |
1266 fileDialog->setViewMode (QFileDialog::Detail); | 1263 fileDialog->setViewMode (QFileDialog::Detail); |
1267 fileDialog->setFileMode (QFileDialog::ExistingFiles); | 1264 fileDialog->setFileMode (QFileDialog::ExistingFiles); |
1268 fileDialog->setDirectory (m_current_directory_combo_box->itemText (0)); | 1265 fileDialog->setDirectory (m_current_directory_combo_box->itemText (0)); |
1269 | 1266 |
1270 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. | 1267 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. |
1271 if (! settings->value (global_use_native_dialogs.key, | 1268 if (! settings->value (global_use_native_dialogs).toBool ()) |
1272 global_use_native_dialogs.def).toBool ()) | |
1273 fileDialog->setOption(QFileDialog::DontUseNativeDialog); | 1269 fileDialog->setOption(QFileDialog::DontUseNativeDialog); |
1274 | 1270 |
1275 connect (fileDialog, SIGNAL (filesSelected (const QStringList&)), | 1271 connect (fileDialog, SIGNAL (filesSelected (const QStringList&)), |
1276 this, SLOT (request_open_files (const QStringList&))); | 1272 this, SLOT (request_open_files (const QStringList&))); |
1277 | 1273 |