forked from 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.
33 lines
1.0 KiB
33 lines
1.0 KiB
3 years ago
|
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||
|
// SPDX-FileCopyrightText: 2021 Harald Sitter <[email protected]>
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include <QObject>
|
||
|
|
||
|
class Language : public QObject
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
Q_PROPERTY(State state MEMBER state NOTIFY stateChanged)
|
||
|
public:
|
||
|
enum class State {
|
||
|
Complete, // already complete, mustn't call complete()
|
||
|
Incomplete, // the language is installed but lacks packages to be considered complete
|
||
|
Installing, // the language is currently installing associated packages to complete itself
|
||
|
};
|
||
|
Q_ENUM(State);
|
||
|
|
||
|
explicit Language(const QString &code_, QObject *parent = nullptr);
|
||
|
explicit Language(const QString &code_, State state_, QObject *parent = nullptr);
|
||
|
|
||
|
const QString code;
|
||
|
State state = State::Complete;
|
||
|
QStringList packages = {};
|
||
|
|
||
|
void reloadCompleteness(); // only used by model, not invokable from qml
|
||
|
Q_INVOKABLE void complete(); // called by qml when completion is requested
|
||
|
|
||
|
Q_SIGNALS:
|
||
|
void stateChanged();
|
||
|
};
|