File indexing completed on 2024-05-12 05:35:37

0001 /*
0002     SPDX-FileCopyrightText: 2000 Matthias Hölzer-Klüpfel <hoelzer@kde.org>
0003     SPDX-FileCopyrightText: 2014 Frederik Gladhorn <gladhorn@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 #pragma once
0009 
0010 #include <KQuickManagedConfigModule>
0011 #include <QColor>
0012 #include <QString>
0013 
0014 class MouseSettings;
0015 class BellSettings;
0016 class KeyboardSettings;
0017 class KeyboardFiltersSettings;
0018 class ScreenReaderSettings;
0019 class AccessibilityData;
0020 
0021 class KAccessConfig : public KQuickManagedConfigModule
0022 {
0023     Q_OBJECT
0024     Q_PROPERTY(MouseSettings *mouseSettings READ mouseSettings CONSTANT)
0025     Q_PROPERTY(BellSettings *bellSettings READ bellSettings CONSTANT)
0026     Q_PROPERTY(KeyboardSettings *keyboardSettings READ keyboardSettings CONSTANT)
0027     Q_PROPERTY(KeyboardFiltersSettings *keyboardFiltersSettings READ keyboardFiltersSettings CONSTANT)
0028     Q_PROPERTY(ScreenReaderSettings *screenReaderSettings READ screenReaderSettings CONSTANT)
0029     Q_PROPERTY(QString orcaLaunchFeedback READ orcaLaunchFeedback WRITE setOrcaLaunchFeedback NOTIFY orcaLaunchFeedbackChanged)
0030     Q_PROPERTY(QString desktopShortcutInfo MEMBER m_desktopShortcutInfo CONSTANT)
0031     Q_PROPERTY(bool screenReaderInstalled MEMBER m_screenReaderInstalled CONSTANT)
0032     Q_PROPERTY(bool bellIsDefaults READ bellIsDefaults NOTIFY bellIsDefaultsChanged)
0033     Q_PROPERTY(bool mouseIsDefaults READ mouseIsDefaults NOTIFY mouseIsDefaultsChanged)
0034     Q_PROPERTY(bool keyboardFiltersIsDefaults READ keyboardFiltersIsDefaults NOTIFY keyboardFiltersIsDefaultsChanged)
0035     Q_PROPERTY(bool keyboardModifiersIsDefaults READ keyboardModifiersIsDefaults NOTIFY keyboardModifiersIsDefaultsChanged)
0036     Q_PROPERTY(bool screenReaderIsDefaults READ screenReaderIsDefaults NOTIFY screenReaderIsDefaultsChanged)
0037 
0038 public:
0039     KAccessConfig(QObject *parent, const KPluginMetaData &);
0040     ~KAccessConfig() override;
0041 
0042     void save() override;
0043 
0044     Q_INVOKABLE void configureKNotify();
0045     Q_INVOKABLE void launchOrcaConfiguration();
0046     Q_INVOKABLE bool orcaInstalled();
0047 
0048     QString orcaLaunchFeedback() const;
0049 
0050     MouseSettings *mouseSettings() const;
0051     BellSettings *bellSettings() const;
0052     KeyboardSettings *keyboardSettings() const;
0053     KeyboardFiltersSettings *keyboardFiltersSettings() const;
0054     ScreenReaderSettings *screenReaderSettings() const;
0055 
0056     bool bellIsDefaults() const;
0057     bool mouseIsDefaults() const;
0058     bool keyboardFiltersIsDefaults() const;
0059     bool keyboardModifiersIsDefaults() const;
0060     bool screenReaderIsDefaults() const;
0061 
0062 Q_SIGNALS:
0063     void orcaLaunchFeedbackChanged();
0064     void bellIsDefaultsChanged();
0065     void mouseIsDefaultsChanged();
0066     void keyboardFiltersIsDefaultsChanged();
0067     void keyboardModifiersIsDefaultsChanged();
0068     void screenReaderIsDefaultsChanged();
0069 
0070 private:
0071     void setOrcaLaunchFeedback(const QString &value);
0072 
0073     AccessibilityData *m_data;
0074     QString m_orcaLaunchFeedback;
0075     QString m_desktopShortcutInfo;
0076     bool m_screenReaderInstalled;
0077 };