Mercurial > octave
diff libgui/src/settings-dialog.cc @ 26096:1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
New qt option "use_native_file_dialogs" to control application of
QFileDialog::DontUseNativeDialog:
* libgui/src/dialog.cc (FileDialog):
* libgui/src/files-dock-widget.cc (popdownmenu_search_dir):
* libgui/src/find-files-dialog.cc (browse_folders):
* libgui/src/m-editor/file-editor-tab.cc (save_file_as):
* libgui/src/main-window.cc (handle_save_workspace_request,
handle_load_workspace_request, browse_for_directory, request_open_file):
* libgui/src/settings-dialog.cc (get_dir):
* libgui/src/shortcut-manager.cc (do_import_export):
* libgui/src/variable-editor.cc (save):
New checkbox "cb_use_native_file_dialogs" associated with qt option
"use_native_file_dialogs":
* libgui/src/settings-dialog.cc (settings_dialog, write_changed_settings):
* libgui/src/settings-dialog.ui:
author | Kai T. Ohlhus <k.ohlhus@gmail.com> |
---|---|
date | Sat, 17 Nov 2018 10:41:07 +0100 |
parents | 38a881b8fbec |
children | a332d83cc659 |
line wrap: on
line diff
--- a/libgui/src/settings-dialog.cc Fri Nov 16 19:52:35 2018 +0100 +++ b/libgui/src/settings-dialog.cc Sat Nov 17 10:41:07 2018 +0100 @@ -190,8 +190,14 @@ sb_3d_title->setValue (settings->value ("DockWidgets/widget_title_3d", 50).toInt ()); cb_widget_custom_style->setChecked (settings->value ("DockWidgets/widget_title_custom_style", false).toBool ()); + // Native file dialogs. + // FIXME: This preference can be deprecated / removed if all display + // managers, especially KDE, run those dialogs without hangs or + // delays from the start (bug #54607). + cb_use_native_file_dialogs->setChecked (settings->value ("use_native_file_dialogs", true).toBool ()); + // Cursor blinking: consider old terminal related setting if not yet set - // TODO: This pref. can be deprecated / removed if Qt adds support for + // FIXME: This pref. can be deprecated / removed if Qt adds support for // getting the cursor blink preferences from all OS environments if (settings->contains ("cursor_blinking")) { @@ -524,8 +530,14 @@ void settings_dialog::get_dir (QLineEdit *line_edit, const QString& title) { + // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. + int opts = QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks; + if (! resource_manager::get_settings ()->value ("use_native_file_dialogs", + true).toBool ()) + opts |= QFileDialog::DontUseNativeDialog; + QString dir = QFileDialog::getExistingDirectory - (this, title, line_edit->text (), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); + (this, title, line_edit->text (), QFileDialog::Option (opts)); line_edit->setText (dir); } @@ -810,6 +822,9 @@ icon_size = 1; settings->setValue ("toolbar_icon_size", icon_size); + // native file dialogs + settings->setValue ("use_native_file_dialogs", cb_use_native_file_dialogs->isChecked ()); + // cursor blinking settings->setValue ("cursor_blinking", cb_cursor_blinking->isChecked ());