diff --git a/src/calamares/CalamaresWindow.cpp b/src/calamares/CalamaresWindow.cpp index 2e2c776f3..f65e0acdf 100644 --- a/src/calamares/CalamaresWindow.cpp +++ b/src/calamares/CalamaresWindow.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include static inline int @@ -129,6 +130,13 @@ CalamaresWindow::getWidgetSidebar( int desiredWidth ) return sideBox; } +QWidget* +CalamaresWindow::getQmlSidebar( int desiredWidth ) +{ + QQuickWidget* w = new QQuickWidget( this ); + w->setSource( QUrl( ":/sidebar.qml" ) ); + return w; +} CalamaresWindow::CalamaresWindow( QWidget* parent ) : QWidget( parent ) @@ -176,10 +184,18 @@ CalamaresWindow::CalamaresWindow( QWidget* parent ) setLayout( mainLayout ); QWidget* sideBox = nullptr; - if ( branding->sidebarFlavor() == Calamares::Branding::SidebarFlavor::Widget ) + switch ( branding->sidebarFlavor() ) { + case Calamares::Branding::SidebarFlavor::Widget: sideBox = getWidgetSidebar( qBound( 100, CalamaresUtils::defaultFontHeight() * 12, w < windowPreferredWidth ? 100 : 190 ) ); + break; + case Calamares::Branding::SidebarFlavor::Qml: + sideBox = getQmlSidebar( + qBound( 100, CalamaresUtils::defaultFontHeight() * 12, w < windowPreferredWidth ? 100 : 190 ) ); + break; + default: + sideBox = nullptr; } if ( sideBox ) { diff --git a/src/calamares/CalamaresWindow.h b/src/calamares/CalamaresWindow.h index 00d50394e..5cbbdfca6 100644 --- a/src/calamares/CalamaresWindow.h +++ b/src/calamares/CalamaresWindow.h @@ -52,6 +52,7 @@ protected: private: QWidget* getWidgetSidebar( int desiredWidth ); + QWidget* getQmlSidebar( int desiredWidth ); QPointer< Calamares::DebugWindow > m_debugWindow; // Managed by self Calamares::ViewManager* m_viewManager;