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