view libgui/src/gui-settings.h @ 27724:19e80f22aa47

provide structure and settings value method for shortcut key sequences * QTerminal.cc (notice_settings): fix comparison of copy shortcut with the interrupt shortcut ctrl+c for dis-/enabling an extra action for the interrupt, more detailed comments on this * gui-preferences-sc.h: use new structure for defining shortcut preferences * gui-preferences.h: define new structure sc_pref for shortcut preferences with key name and default values as unsigned int (combinations of Qt::Key) and as QKeySequence::StandardKey togehter with three constructors for the different ways to initialize the structure * gui-settings.cc (sc_value): new method for reading the value of a key sequence from the preferences file testing the possible given default values with different type * gui-settings.h: new method sc_value
author Torsten Lilge <ttl-octave@mailbox.org>
date Wed, 20 Nov 2019 07:33:24 +0100
parents a36443e94f8a
children fa0582694fda
line wrap: on
line source

/*

Copyright (C) 2019 John W. Eaton

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
    {
      return value (pref.key, pref.def);
    }

    QVariant sc_value (const sc_pref& pref) const;

  };
}

#endif