FluentUI/src/FluApp.cpp

50 lines
1.4 KiB
C++
Raw Normal View History

2023-05-22 16:17:51 +08:00
#include "FluApp.h"
2023-02-26 23:47:07 +08:00
#include <QGuiApplication>
2023-02-27 18:46:39 +08:00
#include <QQuickItem>
2023-02-27 23:04:52 +08:00
#include <QTimer>
2023-03-30 17:16:57 +08:00
#include <QUuid>
2023-04-27 09:38:57 +08:00
#include <QFontDatabase>
2023-03-02 12:20:16 +08:00
#include <QClipboard>
2024-03-13 17:54:11 +08:00
#include <QTranslator>
2024-04-11 20:29:59 +08:00
#include <utility>
2024-04-17 21:39:55 +08:00
#include "FluentIconDef.h"
2023-04-27 17:29:39 +08:00
2024-04-11 14:51:43 +08:00
FluApp::FluApp(QObject *parent) : QObject{parent} {
_useSystemAppBar = false;
2023-04-27 17:29:39 +08:00
}
2024-04-11 14:51:43 +08:00
FluApp::~FluApp() = default;
2023-02-27 18:46:39 +08:00
2024-05-16 00:35:04 +08:00
void FluApp::init(QObject *launcher, QLocale locale) {
this->launcher(launcher);
2024-04-11 20:29:59 +08:00
_locale = std::move(locale);
2024-05-16 00:35:04 +08:00
_engine = qmlEngine(launcher);
2024-03-13 17:54:11 +08:00
_translator = new QTranslator(this);
2024-04-11 20:29:59 +08:00
QGuiApplication::installTranslator(_translator);
2024-03-15 00:04:15 +08:00
const QStringList uiLanguages = _locale.uiLanguages();
2024-04-11 14:51:43 +08:00
for (const QString &name: uiLanguages) {
2024-03-24 10:27:16 +08:00
const QString baseName = "fluentui_" + QLocale(name).name();
2024-04-11 14:51:43 +08:00
if (_translator->load(":/qt/qml/FluentUI/i18n/" + baseName)) {
2024-03-13 17:54:11 +08:00
_engine->retranslate();
break;
}
}
2023-02-26 23:47:07 +08:00
}
2024-04-17 21:39:55 +08:00
2024-04-28 20:22:05 +08:00
[[maybe_unused]] QJsonArray FluApp::iconData(const QString &keyword) {
2024-04-17 21:39:55 +08:00
QJsonArray arr;
2024-05-17 21:27:41 +08:00
QMetaEnum enumType = FluentIcons::staticMetaObject.enumerator(FluentIcons::staticMetaObject.indexOfEnumerator("Type"));
2024-04-17 21:39:55 +08:00
for (int i = 0; i <= enumType.keyCount() - 1; ++i) {
QString name = enumType.key(i);
int icon = enumType.value(i);
if (keyword.isEmpty() || name.contains(keyword)) {
QJsonObject obj;
obj.insert("name", name);
obj.insert("icon", icon);
arr.append(obj);
}
}
return arr;
}