calamares/src/modules/keyboard/Config.h

85 lines
2.2 KiB
C
Raw Normal View History

/* === This file is part of Calamares - <https://calamares.io> ===
*
2020-08-22 01:19:58 +02:00
* SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot <groot@kde.org>
* SPDX-FileCopyrightText: 2020 Camilo Higuita <milo.h@aol.com>
* SPDX-License-Identifier: GPL-3.0-or-later
*
* Calamares is Free Software: see the License-Identifier above.
*
*/
#ifndef KEYBOARD_CONFIG_H
#define KEYBOARD_CONFIG_H
#include "Job.h"
#include "KeyboardLayoutModel.h"
2020-03-26 15:57:02 +01:00
#include <QAbstractListModel>
#include <QMap>
#include <QObject>
#include <QTimer>
2020-03-26 15:57:02 +01:00
#include <QUrl>
struct AdditionalLayoutInfo {
QString additionalLayout;
QString additionalVariant;
QString vconsoleKeymap;
};
class Config : public QObject
{
Q_OBJECT
2020-03-26 15:57:02 +01:00
Q_PROPERTY( KeyboardModelsModel* keyboardModelsModel READ keyboardModels CONSTANT FINAL )
Q_PROPERTY( KeyboardLayoutModel* keyboardLayoutsModel READ keyboardLayouts CONSTANT FINAL )
Q_PROPERTY( KeyboardVariantsModel* keyboardVariantsModel READ keyboardVariants CONSTANT FINAL )
Q_PROPERTY( QString prettyStatus READ prettyStatus NOTIFY prettyStatusChanged FINAL )
public:
Config( QObject* parent = nullptr );
void init();
Calamares::JobList createJobs();
QString prettyStatus() const;
void onActivate();
void finalize();
void setConfigurationMap( const QVariantMap& configurationMap );
static AdditionalLayoutInfo getAdditionalLayoutInfo( const QString& layout );
private:
void guessLayout( const QStringList& langParts );
2020-03-26 15:57:02 +01:00
void updateVariants( const QPersistentModelIndex& currentItem, QString currentVariant = QString() );
2020-03-26 15:57:02 +01:00
KeyboardModelsModel* m_keyboardModelsModel;
KeyboardLayoutModel* m_keyboardLayoutsModel;
KeyboardVariantsModel* m_keyboardVariantsModel;
QString m_selectedLayout;
QString m_selectedModel;
QString m_selectedVariant;
AdditionalLayoutInfo m_selectedLayoutsAdditionalLayoutInfo;
QTimer m_setxkbmapTimer;
// From configuration
QString m_xOrgConfFileName;
QString m_convertedKeymapPath;
bool m_writeEtcDefaultKeyboard = true;
protected:
2020-03-26 15:57:02 +01:00
KeyboardModelsModel* keyboardModels() const;
KeyboardLayoutModel* keyboardLayouts() const;
KeyboardVariantsModel* keyboardVariants() const;
signals:
void prettyStatusChanged();
};
#endif