diff --git a/core/ModuleView.cpp b/core/ModuleView.cpp --- a/core/ModuleView.cpp +++ b/core/ModuleView.cpp @@ -61,6 +61,7 @@ QPushButton* mReset = nullptr; QPushButton* mDefault = nullptr; QPushButton* mHelp = nullptr; + QLabel* mHeader = nullptr; bool pageChangeSupressed; }; @@ -175,13 +176,25 @@ } // Create the scroller + QWidget *mainWidget = new QWidget( this ); + QVBoxLayout *layout = new QVBoxLayout( mainWidget ); + layout->setSpacing(0); + d->mHeader = new QLabel( mainWidget ); + QFont headerFont = d->mHeader->font(); + //Emulate the look and size of the header in the QML modules + headerFont.setPointSize(headerFont.pointSize() * 1.6); + headerFont.setWeight( QFont::Light ); + d->mHeader->setFont( headerFont ); + layout->addWidget(d->mHeader); + QScrollArea * moduleScroll = new QScrollArea( this ); + layout->addWidget(moduleScroll); // Prepare the scroll area moduleScroll->setWidgetResizable( true ); moduleScroll->setFrameStyle( QFrame::NoFrame ); moduleScroll->viewport()->setAutoFillBackground( false ); // Create the page - KPageWidgetItem *page = new KPageWidgetItem( moduleScroll, module->moduleName() ); + KPageWidgetItem *page = new KPageWidgetItem( mainWidget ); // Provide information to the users if( module->service()->hasServiceType(QStringLiteral("SystemSettingsExternalApp")) || // Is it an external app? @@ -217,15 +230,12 @@ return; } - page->setHeader( moduleInfo->comment() ); - page->setIcon( QIcon::fromTheme( moduleInfo->icon() ) ); - if( light ) { - return; - } - - if( moduleProxy && moduleProxy->realModule()->useRootOnlyMessage() ) { - page->setHeader( moduleInfo->comment() + QStringLiteral("
") + moduleProxy->realModule()->rootOnlyMessage() + QStringLiteral("") ); - page->setIcon( KDE::icon( moduleInfo->icon(), QStringList() << QStringLiteral("dialog-warning") ) ); + //HACK: not much other ways to detect is a qml kcm + if (moduleProxy->realModule()->inherits("KCModuleQml")) { + d->mHeader->setVisible( false ); + } else { + d->mHeader->setText(moduleInfo->comment()); + d->mHeader->setVisible( true ); } }