forked from qt-creator/qt-creator
QmlDesigner: Scan imports on startup
This makes the loading of the first project a lot faster. Task-number: QDS-9442 Change-Id: Ic84aa6df71db158ef5d0450ada79d96f35eb205b Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -17,19 +17,28 @@
|
|||||||
#include <coreplugin/imode.h>
|
#include <coreplugin/imode.h>
|
||||||
#include <coreplugin/modemanager.h>
|
#include <coreplugin/modemanager.h>
|
||||||
|
|
||||||
#include <projectexplorer/jsonwizard/jsonwizardfactory.h>
|
|
||||||
#include <projectexplorer/projectexplorer.h>
|
|
||||||
#include <projectexplorer/projectmanager.h>
|
|
||||||
#include "projectexplorer/target.h"
|
#include "projectexplorer/target.h"
|
||||||
|
#include <projectexplorer/devicesupport/idevice.h>
|
||||||
|
#include <projectexplorer/jsonwizard/jsonwizardfactory.h>
|
||||||
|
#include <projectexplorer/kitinformation.h>
|
||||||
|
#include <projectexplorer/kitmanager.h>
|
||||||
|
#include <projectexplorer/projectexplorer.h>
|
||||||
|
#include <projectexplorer/projectexplorerconstants.h>.h>
|
||||||
|
#include <projectexplorer/projectmanager.h>
|
||||||
|
|
||||||
#include <qmlprojectmanager/projectfilecontenttools.h>
|
#include <qmlprojectmanager/projectfilecontenttools.h>
|
||||||
#include <qmlprojectmanager/qmlproject.h>
|
#include <qmlprojectmanager/qmlproject.h>
|
||||||
|
|
||||||
|
#include <qtsupport/baseqtversion.h>
|
||||||
|
#include <qtsupport/qtkitinformation.h>
|
||||||
|
|
||||||
#include <qmldesigner/components/componentcore/theme.h>
|
#include <qmldesigner/components/componentcore/theme.h>
|
||||||
#include <qmldesigner/dynamiclicensecheck.h>
|
#include <qmldesigner/dynamiclicensecheck.h>
|
||||||
#include <qmldesigner/qmldesignerconstants.h>
|
#include <qmldesigner/qmldesignerconstants.h>
|
||||||
#include <qmldesigner/qmldesignerplugin.h>
|
#include <qmldesigner/qmldesignerplugin.h>
|
||||||
|
|
||||||
|
#include <qmljs/qmljsmodelmanagerinterface.h>
|
||||||
|
|
||||||
#include <utils/checkablemessagebox.h>
|
#include <utils/checkablemessagebox.h>
|
||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
#include <utils/icon.h>
|
#include <utils/icon.h>
|
||||||
@@ -638,6 +647,38 @@ void StudioWelcomePlugin::extensionsInitialized()
|
|||||||
|
|
||||||
bool StudioWelcomePlugin::delayedInitialize()
|
bool StudioWelcomePlugin::delayedInitialize()
|
||||||
{
|
{
|
||||||
|
QTimer::singleShot(2000, this, []() {
|
||||||
|
auto modelManager = QmlJS::ModelManagerInterface::instance();
|
||||||
|
if (!modelManager)
|
||||||
|
return;
|
||||||
|
|
||||||
|
QmlJS::PathsAndLanguages importPaths;
|
||||||
|
|
||||||
|
const QList<Kit *> kits = Utils::filtered(KitManager::kits(), [](const Kit *k) {
|
||||||
|
const QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(k);
|
||||||
|
const bool isQt6 = version && version->qtVersion().majorVersion() == 6;
|
||||||
|
|
||||||
|
return isQt6
|
||||||
|
&& ProjectExplorer::DeviceTypeKitAspect::deviceTypeId(k)
|
||||||
|
== ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE;
|
||||||
|
});
|
||||||
|
|
||||||
|
for (const Kit *kit : kits) {
|
||||||
|
const QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(kit);
|
||||||
|
|
||||||
|
const Utils::FilePath qmlPath = version->qmlPath();
|
||||||
|
importPaths.maybeInsert(qmlPath, QmlJS::Dialect::QmlQtQuick2);
|
||||||
|
|
||||||
|
QFutureInterface<void> result;
|
||||||
|
|
||||||
|
QmlJS::ModelManagerInterface::importScan(result,
|
||||||
|
QmlJS::ModelManagerInterface::workingCopy(),
|
||||||
|
importPaths,
|
||||||
|
modelManager,
|
||||||
|
false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user