Mercurial > octave
view libgui/src/gui-settings.h @ 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 | bd51beb6205e |
children | 0a5b15007766 |
line wrap: on
line source
//////////////////////////////////////////////////////////////////////// // // Copyright (C) 2019-2020 The Octave Project Developers // // See the file COPYRIGHT.md in the top-level directory of this // distribution or <https://octave.org/copyright/>. // // This file is part of Octave. // // Octave is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Octave is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Octave; see the file COPYING. If not, see // <https://www.gnu.org/licenses/>. // //////////////////////////////////////////////////////////////////////// #if ! defined (octave_gui_settings_h) #define octave_gui_settings_h 1 #include <QSettings> #include "gui-preferences.h" namespace octave { class gui_settings : public QSettings { Q_OBJECT public: gui_settings (const QString& file_name, QSettings::Format format, QObject *parent = nullptr) : QSettings (file_name, format, parent) { } gui_settings (QSettings::Format format, QSettings::Scope scope, const QString& organization, const QString& application = QString (), QObject *parent = nullptr) : QSettings (format, scope, organization, application, parent) { } // No copying! gui_settings (const gui_settings&) = delete; gui_settings& operator = (const gui_settings&) = delete; ~gui_settings (void) = default; using QSettings::value; QVariant value (const gui_pref& pref) const { if (pref.ignore) return pref.def; // ignore the current pref and always use default return value (pref.key, pref.def); } QString sc_value (const sc_pref& pref) const; QKeySequence sc_def_value (const sc_pref& pref) const; }; } #endif