mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.9 KiB
104 lines
2.9 KiB
/* |
|
SPDX-FileCopyrightText: 2010 Andriy Rysin <[email protected]> |
|
SPDX-FileCopyrightText: 2021 Cyril Rossi <[email protected]> |
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later |
|
*/ |
|
|
|
#ifndef KCM_KEYBOARD_WIDGET_H_ |
|
#define KCM_KEYBOARD_WIDGET_H_ |
|
|
|
#include "ui_kcm_keyboard.h" |
|
|
|
#include <QTabWidget> |
|
|
|
#include <config-keyboard.h> |
|
#include "keyboard_config.h" |
|
|
|
class QWidget; |
|
class KeyboardConfig; |
|
class WorkspaceOptions; |
|
struct Rules; |
|
class Flags; |
|
class QString; |
|
class QPushButton; |
|
class LayoutsTableModel; |
|
class KCMiscKeyboardWidget; |
|
class KeyboardLayoutActionCollection; |
|
class KeyboardMiscSettings; |
|
|
|
class KCMKeyboardWidget : public QTabWidget |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
KCMKeyboardWidget(Rules *rules, KeyboardConfig *keyboardConfig, WorkspaceOptions &workspaceOptions, KCMiscKeyboardWidget *kcmMiscWidget, const QVariantList &args, QWidget *parent = nullptr); |
|
~KCMKeyboardWidget() override; |
|
|
|
void updateUI(); // load |
|
void save(); |
|
void defaults(); |
|
|
|
bool isSaveNeeded() const; |
|
bool isDefault() const; |
|
|
|
Q_SIGNALS: |
|
void changed(bool state); |
|
|
|
public Q_SLOTS: |
|
void setDefaultIndicator(bool visible); |
|
|
|
private Q_SLOTS: |
|
void updateUiDefaultIndicator(); |
|
void addLayout(); |
|
void removeLayout(); |
|
void layoutSelectionChanged(); |
|
// Set move UI values to config |
|
void uiChanged(); |
|
void scrollToGroupShortcut(); |
|
void scrollTo3rdLevelShortcut(); |
|
void clearGroupShortcuts(); |
|
void clear3rdLevelShortcuts(); |
|
void updateXkbShortcutsButtons(); |
|
void moveUp(); |
|
void moveDown(); |
|
void configureLayoutsChanged(); |
|
void configureXkbOptionsChanged(); |
|
void previewLayout(); |
|
void alternativeShortcutChanged(const QKeySequence &seq); |
|
void switchKeyboardShortcutChanged(); |
|
|
|
private: |
|
Rules *rules; |
|
Flags *flags; |
|
Ui::TabWidget *uiWidget; |
|
KeyboardConfig *keyboardConfig; |
|
WorkspaceOptions &m_workspaceOptions; |
|
KeyboardLayoutActionCollection *actionCollection; |
|
LayoutsTableModel *layoutsTableModel; |
|
bool uiUpdating; |
|
bool m_highlightVisible = false; |
|
|
|
void initializeLayoutsUI(); |
|
void initializeXkbOptionsUI(); |
|
void initializeKeyboardModelUI(); |
|
void updateHardwareUI(const QString &model); |
|
void updateLayoutsUI(); |
|
void updateShortcutsUI(); |
|
void updateSwitcingPolicyUI(KeyboardConfig::SwitchingPolicy policy); |
|
void updateXkbShortcutButton(const QString &groupName, QPushButton *button); |
|
void clearXkbGroup(const QString &groupName); |
|
void moveSelectedLayouts(int shift); |
|
void populateWithCurrentLayouts(); |
|
void populateWithCurrentXkbOptions(); |
|
void updateLoopCount(); |
|
void handleParameters(const QVariantList &args); |
|
void saveXkbOptions(); |
|
QStringList xkbOptionsFromUI() const; |
|
|
|
QString keyboardModelFromUI() const; |
|
KeyboardConfig::SwitchingPolicy switcingPolicyFromUI() const; |
|
void setDefaultIndicatorVisible(QWidget *widget, bool visible); |
|
}; |
|
|
|
#endif /* KCM_KEYBOARD_WIDGET_H_ */
|
|
|