diff --git a/src/libcalamaresui/viewpages/QmlViewStep.cpp b/src/libcalamaresui/viewpages/QmlViewStep.cpp index 82d04e8c4..d32e791d6 100644 --- a/src/libcalamaresui/viewpages/QmlViewStep.cpp +++ b/src/libcalamaresui/viewpages/QmlViewStep.cpp @@ -251,10 +251,13 @@ QmlViewStep::showQml() * is badly configured). */ QString -searchQmlFile( QmlViewStep::QmlSearch method, const QString& configuredName, const QString& moduleName ) +searchQmlFile( QmlViewStep::QmlSearch method, const QString& configuredName, const QString& moduleName, const Calamares::ModuleSystem::InstanceKey& i ) { using QmlSearch = Calamares::QmlViewStep::QmlSearch; + QString bPath( QStringLiteral( "%1/%2.qml" ) ); + QString qrPath( QStringLiteral( ":/%1.qml" ) ); + cDebug() << "Looking for QML for" << moduleName; QStringList candidates; if ( configuredName.startsWith( '/' ) ) @@ -265,13 +268,17 @@ searchQmlFile( QmlViewStep::QmlSearch method, const QString& configuredName, con { QString brandDir = Calamares::Branding::instance()->componentDirectory(); candidates << ( configuredName.isEmpty() ? QString() - : QStringLiteral( "%1/%2.qml" ).arg( brandDir, configuredName ) ) - << ( moduleName.isEmpty() ? QString() : QStringLiteral( "%1/%2.qml" ).arg( brandDir, moduleName ) ); + : bPath.arg( brandDir, configuredName ) ) + << ( moduleName.isEmpty() ? QString() : bPath.arg( brandDir, moduleName ) ) + << bPath.arg( brandDir, i.toString() ) + << bPath.arg( brandDir, i.module() ); } if ( ( method == QmlSearch::Both ) || ( method == QmlSearch::QrcOnly ) ) { - candidates << ( configuredName.isEmpty() ? QString() : QStringLiteral( ":/%1.qml" ).arg( configuredName ) ) - << ( moduleName.isEmpty() ? QString() : QStringLiteral( ":/%1.qml" ).arg( moduleName ) ); + candidates << ( configuredName.isEmpty() ? QString() : qrPath.arg( configuredName ) ) + << ( moduleName.isEmpty() ? QString() : qrPath.arg( moduleName ) ) + << qrPath.arg( i.toString() ) + << qrPath.arg( i.module() ); } for ( const QString& candidate : candidates ) { @@ -306,14 +313,9 @@ QmlViewStep::setConfigurationMap( const QVariantMap& configurationMap ) } QString qmlFile = CalamaresUtils::getString( configurationMap, "qmlFilename" ); - if ( qmlFile.isEmpty() ) - { - // TODO use the module instance - } - if ( !m_qmlComponent ) { - m_qmlFileName = searchQmlFile( m_searchMethod, qmlFile, m_name ); + m_qmlFileName = searchQmlFile( m_searchMethod, qmlFile, m_name, moduleInstanceKey() ); QObject* config = this->getConfig(); if ( config )