2023-02-26 23:47:07 +08:00
|
|
|
|
#include "Fluent.h"
|
|
|
|
|
|
|
|
|
|
#include <QFontDatabase>
|
|
|
|
|
#include <QQmlContext>
|
|
|
|
|
#include <QGuiApplication>
|
|
|
|
|
#include <QQuickWindow>
|
2023-03-06 14:22:13 +08:00
|
|
|
|
#include "FluColors.h"
|
2023-04-11 23:12:31 +08:00
|
|
|
|
#include "NativeEventFilter.h"
|
2023-03-06 14:22:13 +08:00
|
|
|
|
#include "FluTheme.h"
|
2023-02-27 18:46:39 +08:00
|
|
|
|
#include "WindowHelper.h"
|
2023-02-26 23:47:07 +08:00
|
|
|
|
#include "FluApp.h"
|
|
|
|
|
#include "Def.h"
|
|
|
|
|
|
|
|
|
|
Fluent* Fluent::m_instance = nullptr;
|
|
|
|
|
|
|
|
|
|
Fluent *Fluent::getInstance()
|
|
|
|
|
{
|
|
|
|
|
if(Fluent::m_instance == nullptr){
|
|
|
|
|
Fluent::m_instance = new Fluent;
|
|
|
|
|
}
|
|
|
|
|
return Fluent::m_instance;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QString Fluent::version() const
|
|
|
|
|
{
|
2023-04-03 22:45:18 +08:00
|
|
|
|
return QStringLiteral(VERSION_IN);
|
2023-02-26 23:47:07 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Fluent::registerTypes(const char *uri){
|
|
|
|
|
Q_INIT_RESOURCE(res);
|
|
|
|
|
int major = 1;
|
|
|
|
|
int minor = 0;
|
|
|
|
|
|
2023-02-27 18:46:39 +08:00
|
|
|
|
qmlRegisterType<WindowHelper>(uri,major,minor,"WindowHelper");
|
2023-03-06 14:22:13 +08:00
|
|
|
|
qmlRegisterType<FluColorSet>(uri,major,minor,"FluColorSet");
|
2023-03-31 22:05:25 +08:00
|
|
|
|
|
2023-04-09 19:29:50 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluStatusView.qml"),uri,major,minor,"FluStatusView");
|
2023-04-08 20:08:26 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluPagination.qml"),uri,major,minor,"FluPagination");
|
2023-04-07 18:27:50 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluToggleButton.qml"),uri,major,minor,"FluToggleButton");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluTableView.qml"),uri,major,minor,"FluTableView");
|
2023-04-04 15:09:34 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluPivotItem.qml"),uri,major,minor,"FluPivotItem");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluPivot.qml"),uri,major,minor,"FluPivot");
|
2023-04-02 14:05:54 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluFlipView.qml"),uri,major,minor,"FluFlipView");
|
2023-03-31 22:05:25 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluPaneItemExpander.qml"),uri,major,minor,"FluPaneItemExpander");
|
2023-03-27 18:24:35 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluTabView.qml"),uri,major,minor,"FluTabView");
|
2023-03-10 18:08:32 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluArea.qml"),uri,major,minor,"FluArea");
|
2023-03-20 18:22:32 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluBadge.qml"),uri,major,minor,"FluBadge");
|
2023-03-24 15:21:47 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluMediaPlayer.qml"),uri,major,minor,"FluMediaPlayer");
|
2023-03-10 18:08:32 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluContentPage.qml"),uri,major,minor,"FluContentPage");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluScrollablePage.qml"),uri,major,minor,"FluScrollablePage");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluPaneItemHeader.qml"),uri,major,minor,"FluPaneItemHeader");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluPaneItem.qml"),uri,major,minor,"FluPaneItem");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluPaneItemSeparator.qml"),uri,major,minor,"FluPaneItemSeparator");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluNavigationView.qml"),uri,major,minor,"FluNavigationView");
|
2023-03-22 11:54:19 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluCalendarPicker.qml"),uri,major,minor,"FluCalendarPicker");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluCalendarView.qml"),uri,major,minor,"FluCalendarView");
|
2023-03-11 14:43:07 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluDatePicker.qml"),uri,major,minor,"FluDatePicker");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluTimePicker.qml"),uri,major,minor,"FluTimePicker");
|
2023-03-23 17:40:10 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluColorView.qml"),uri,major,minor,"FluColorView");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluColorPicker.qml"),uri,major,minor,"FluColorPicker");
|
2023-03-14 18:23:12 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluCarousel.qml"),uri,major,minor,"FluCarousel");
|
2023-03-09 15:49:37 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluAutoSuggestBox.qml"),uri,major,minor,"FluAutoSuggestBox");
|
2023-03-08 18:14:21 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluExpander.qml"),uri,major,minor,"FluExpander");
|
2023-03-07 00:05:27 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluTreeView.qml"),uri,major,minor,"FluTreeView");
|
2023-03-06 18:22:36 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluContentDialog.qml"),uri,major,minor,"FluContentDialog");
|
2023-03-02 18:21:43 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluMenuItem.qml"),uri,major,minor,"FluMenuItem");
|
2023-03-08 11:46:40 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluMenu.qml"),uri,major,minor,"FluMenu");
|
2023-03-02 18:21:43 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluScrollBar.qml"),uri,major,minor,"FluScrollBar");
|
2023-03-03 18:19:48 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluTextButton.qml"),uri,major,minor,"FluTextButton");
|
2023-04-01 21:01:46 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluMultilineTextBox.qml"),uri,major,minor,"FluMultilineTextBox");
|
2023-02-28 18:29:00 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluTooltip.qml"),uri,major,minor,"FluTooltip");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluDivider.qml"),uri,major,minor,"FluDivider");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluIcon.qml"),uri,major,minor,"FluIcon");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluObject.qml"),uri,major,minor,"FluObject");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluInfoBar.qml"),uri,major,minor,"FluInfoBar");
|
2023-02-27 18:46:39 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluWindow.qml"),uri,major,minor,"FluWindow");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluRectangle.qml"),uri,major,minor,"FluRectangle");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluAppBar.qml"),uri,major,minor,"FluAppBar");
|
2023-02-26 23:47:07 +08:00
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluButton.qml"),uri,major,minor,"FluButton");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluCheckBox.qml"),uri,major,minor,"FluCheckBox");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluComboBox.qml"),uri,major,minor,"FluComboBox");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluDropDownButton.qml"),uri,major,minor,"FluDropDownButton");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluFilledButton.qml"),uri,major,minor,"FluFilledButton");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluIconButton.qml"),uri,major,minor,"FluIconButton");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluProgressBar.qml"),uri,major,minor,"FluProgressBar");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluProgressRing.qml"),uri,major,minor,"FluProgressRing");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluRadioButton.qml"),uri,major,minor,"FluRadioButton");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluSlider.qml"),uri,major,minor,"FluSlider");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluTextBox.qml"),uri,major,minor,"FluTextBox");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluText.qml"),uri,major,minor,"FluText");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluFilledButton.qml"),uri,major,minor,"FluFilledButton");
|
|
|
|
|
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluToggleSwitch.qml"),uri,major,minor,"FluToggleSwitch");
|
|
|
|
|
|
|
|
|
|
qmlRegisterUncreatableMetaObject(Fluent_Awesome::staticMetaObject, uri,major,minor,"FluentIcons", "Access to enums & flags only");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Fluent::initializeEngine(QQmlEngine *engine, const char *uri)
|
|
|
|
|
{
|
2023-04-11 23:12:31 +08:00
|
|
|
|
nativeEvent = new NativeEventFilter();
|
|
|
|
|
qApp->installNativeEventFilter(nativeEvent);
|
2023-02-26 23:47:07 +08:00
|
|
|
|
Q_UNUSED(engine)
|
|
|
|
|
Q_UNUSED(uri)
|
2023-03-09 23:11:59 +08:00
|
|
|
|
#ifdef Q_OS_WIN
|
2023-02-28 23:57:55 +08:00
|
|
|
|
QFont font;
|
|
|
|
|
font.setFamily("Microsoft YaHei");
|
|
|
|
|
QGuiApplication::setFont(font);
|
2023-03-14 18:23:12 +08:00
|
|
|
|
// QQuickWindow::setTextRenderType(QQuickWindow::NativeTextRendering);
|
2023-03-09 23:11:59 +08:00
|
|
|
|
#endif
|
2023-03-11 00:29:06 +08:00
|
|
|
|
QFontDatabase::addApplicationFont(":/com.zhuzichu/res/font/Segoe_Fluent_Icons.ttf");
|
2023-03-03 18:19:48 +08:00
|
|
|
|
FluApp* app = FluApp::getInstance();
|
|
|
|
|
engine->rootContext()->setContextProperty("FluApp",app);
|
2023-03-06 14:22:13 +08:00
|
|
|
|
FluColors* colors = FluColors::getInstance();
|
|
|
|
|
engine->rootContext()->setContextProperty("FluColors",colors);
|
|
|
|
|
FluTheme* theme = FluTheme::getInstance();
|
|
|
|
|
engine->rootContext()->setContextProperty("FluTheme",theme);
|
2023-02-26 23:47:07 +08:00
|
|
|
|
}
|