This commit is contained in:
朱子楚\zhuzi
2023-03-05 23:39:13 +08:00
parent 891270e6d1
commit b459b9dda6
16 changed files with 248 additions and 106 deletions

View File

@ -25,8 +25,9 @@ FluApp::FluApp(QObject *parent)
isDark(false);
}
void FluApp::setAppWindow(QWindow *window){
appWindow = window;
void FluApp::init(QWindow *window,QMap<QString, QVariant> properties){
this->appWindow = window;
this->properties = properties;
}
void FluApp::run(){
@ -40,6 +41,14 @@ void FluApp::navigate(const QString& route){
}
bool isAppWindow = route == initialRoute();
FramelessView *view = new FramelessView();
QMapIterator<QString, QVariant> iterator(properties);
while (iterator.hasNext()) {
iterator.next();
QString key = iterator.key();
QVariant value = iterator.value();
view->engine()->rootContext()->setContextProperty(key,value);
}
view->setColor(QColor(Qt::transparent));
QObject::connect(view, &QQuickView::statusChanged, view, [&](QQuickView::Status status) {
if (status == QQuickView::Status::Ready) {

View File

@ -27,7 +27,7 @@ public:
Q_INVOKABLE void navigate(const QString& route);
Q_INVOKABLE void setAppWindow(QWindow *window);
Q_INVOKABLE void init(QWindow *window,QMap<QString, QVariant> properties);
Q_SIGNAL void windowReady(FramelessView *view);
@ -37,20 +37,10 @@ public:
Q_INVOKABLE void clipText(const QString& text);
Q_INVOKABLE void setContextProperty(const QString &name, QObject *data){
if(engine){
engine->rootContext()->setContextProperty(name,data);
}
}
void setEngine(QQmlEngine *engine){
this->engine = engine;
}
private:
static FluApp* m_instance;
QQmlEngine *engine;
QMap<QString, QVariant> properties;
QWindow *appWindow;
};

View File

@ -72,6 +72,5 @@ void Fluent::initializeEngine(QQmlEngine *engine, const char *uri)
QGuiApplication::setFont(font);
QFontDatabase::addApplicationFont(":/com.zhuzichu/res/font/fontawesome-webfont.ttf");
FluApp* app = FluApp::getInstance();
app->setEngine(engine);
engine->rootContext()->setContextProperty("FluApp",app);
}

View File

@ -8,13 +8,10 @@ class Fluent: public QObject
{
Q_OBJECT
public:
static Fluent *getInstance();
Q_INVOKABLE QString version() const;
void registerTypes(const char *uri);
void initializeEngine(QQmlEngine *engine, const char *uri);
static Fluent *getInstance();
private:
static Fluent* m_instance;
};

View File

@ -13,6 +13,7 @@ Rectangle {
property color primaryColor : "#0064B0"
signal clicked
radius: 4
color:{
if(FluApp.isDark){
if(disabled){

View File

@ -20,11 +20,6 @@ MouseArea {
propagateComposedEvents: true
z: -65535
onReleased: {
Window.window.width = Window.window.width+1
Window.window.width = Window.window.width-1
}
onPressed :
(mouse)=> {
if (fixedSize) {