quickshell/src/core/generation.hpp
outfoxxed 9f38908bdf
core/intercept: do not intercept non qml files
Avoids forcing Images to lazy load which causes unexpected flashes.
2024-03-19 21:30:46 -07:00

49 lines
1.2 KiB
C++

#pragma once
#include <qcontainerfwd.h>
#include <qfilesystemwatcher.h>
#include <qobject.h>
#include <qqmlincubator.h>
#include <qtclasshelpermacros.h>
#include "incubator.hpp"
#include "qsintercept.hpp"
#include "scan.hpp"
#include "shell.hpp"
#include "singleton.hpp"
class EngineGeneration: public QObject {
Q_OBJECT;
public:
explicit EngineGeneration(QmlScanner scanner);
~EngineGeneration() override;
Q_DISABLE_COPY_MOVE(EngineGeneration);
// assumes root has been initialized, consumes old generation
void onReload(EngineGeneration* old);
void setWatchingFiles(bool watching);
void registerIncubationController(QQmlIncubationController* controller);
static EngineGeneration* findObjectGeneration(QObject* object);
QmlScanner scanner;
QsUrlInterceptor urlInterceptor;
QsInterceptNetworkAccessManagerFactory interceptNetFactory;
QQmlEngine engine;
ShellRoot* root = nullptr;
SingletonRegistry singletonRegistry;
QFileSystemWatcher* watcher = nullptr;
DelayedQmlIncubationController delayedIncubationController;
signals:
void filesChanged();
private slots:
void incubationControllerDestroyed();
private:
void assignIncubationController();
QVector<QQmlIncubationController*> incubationControllers;
};