MCPcopy Create free account
hub / github.com/IgKh/katvan / resetInputFile

Method resetInputFile

core/katvan_typstdriverwrapper.cpp:82–137  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

80}
81
82void TypstDriverWrapper::resetInputFile(const QString& sourceFileName)
83{
84 d_status = Status::INITIALIZING;
85 Q_EMIT compilationStatusChanged();
86
87 d_diagnosticsModel->setInputFileName(sourceFileName);
88
89 if (d_engine != nullptr) {
90 d_engine->deleteLater();
91 }
92
93 d_engine = new typstdriver::Engine(sourceFileName, d_compilerLogger, d_packageManager);
94 d_engine->moveToThread(d_thread);
95
96 auto onInitialized = [this]() {
97 d_status = Status::INITIALIZED;
98 Q_EMIT compilationStatusChanged();
99
100 QMetaObject::invokeMethod(d_engine, &typstdriver::Engine::applySettings, *d_settings);
101
102 bool hasPending = false;
103 if (d_pendingSource) {
104 setSource(d_pendingSource.value());
105
106 d_pendingSource = std::nullopt;
107 hasPending = true;
108 }
109 if (!d_pendingEdits.isEmpty()) {
110 for (const auto& edit : std::as_const(d_pendingEdits)) {
111 applyContentEdit(edit.from, edit.to, edit.text);
112 }
113
114 d_pendingEdits.clear();
115 hasPending = true;
116 }
117
118 if (hasPending) {
119 updatePreview();
120 }
121 };
122
123 connect(d_engine, &typstdriver::Engine::compilationFinished, this, &TypstDriverWrapper::compilationFinished);
124 connect(d_engine, &typstdriver::Engine::previewReady, this, &TypstDriverWrapper::previewReady);
125 connect(d_engine, &typstdriver::Engine::pageRendered, this, &TypstDriverWrapper::pageRenderComplete);
126 connect(d_engine, &typstdriver::Engine::exportFinished, this, &TypstDriverWrapper::exportFinished);
127 connect(d_engine, &typstdriver::Engine::jumpToPreview, this, &TypstDriverWrapper::jumpToPreview);
128 connect(d_engine, &typstdriver::Engine::jumpToEditor, this, &TypstDriverWrapper::jumpToEditor);
129 connect(d_engine, &typstdriver::Engine::toolTipReady, this, &TypstDriverWrapper::showEditorToolTip);
130 connect(d_engine, &typstdriver::Engine::completionsReady, this, &TypstDriverWrapper::completionsReady);
131 connect(d_engine, &typstdriver::Engine::metadataUpdated, this, &TypstDriverWrapper::metadataUpdatedInternal);
132 connect(d_engine, &typstdriver::Engine::pageWordCountUpdated, this, &TypstDriverWrapper::pageWordCountUpdated);
133 connect(d_engine, &typstdriver::Engine::symbolsJsonReady, this, &TypstDriverWrapper::symbolsJsonReady);
134 connect(d_engine, &typstdriver::Engine::initialized, this, onInitialized, Qt::SingleShotConnection);
135
136 QMetaObject::invokeMethod(d_engine, &typstdriver::Engine::init);
137}
138
139void TypstDriverWrapper::setSource(const QString& text)

Callers 1

setCurrentFileMethod · 0.80

Calls 2

setInputFileNameMethod · 0.80
clearMethod · 0.45

Tested by

no test coverage detected