File indexing completed on 2024-05-12 17:07:15
0001 /* 0002 SPDX-FileCopyrightText: 2010 Andriy Rysin <rysin@kde.org> 0003 SPDX-FileCopyrightText: 2021 Cyril Rossi <cyril.rossi@enioka.com> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #pragma once 0009 0010 #include "x11_helper.h" 0011 0012 #include <QList> 0013 #include <QMap> 0014 #include <QPair> 0015 #include <QString> 0016 #include <QStringList> 0017 0018 #include "keyboardsettings.h" 0019 0020 /** 0021 * This class provides configuration options for keyboard module 0022 */ 0023 class KeyboardConfig : public KeyboardSettingsBase 0024 { 0025 public: 0026 static const int NO_LOOPING; // = -1; 0027 0028 enum SwitchingPolicy { 0029 SWITCH_POLICY_GLOBAL = 0, 0030 SWITCH_POLICY_DESKTOP = 1, 0031 SWITCH_POLICY_APPLICATION = 2, 0032 SWITCH_POLICY_WINDOW = 3, 0033 }; 0034 0035 QList<LayoutUnit> layouts; 0036 0037 KeyboardConfig(QObject *parent); 0038 0039 // Getter/setter for switchMode options with SwitchingPolicy enum type values 0040 SwitchingPolicy switchingPolicy() const; 0041 void setSwitchingPolicy(SwitchingPolicy switchingPolicy); 0042 SwitchingPolicy defaultSwitchingPolicyValue() const; 0043 0044 bool layoutsSaveNeeded() const; 0045 0046 // Initialize layouts list when activating 'Configure Layouts' option and there is none. 0047 QList<LayoutUnit> getDefaultLayouts() const; 0048 QList<LayoutUnit> getExtraLayouts() const; 0049 0050 void setDefaults() override; 0051 void load(); 0052 void save(); 0053 0054 static QString getSwitchingPolicyString(SwitchingPolicy switchingPolicy); 0055 0056 private: 0057 QList<LayoutUnit> m_referenceLayouts; 0058 int m_referenceLayoutLoopCount; 0059 };