Changeset View
Changeset View
Standalone View
Standalone View
kcmcontainer.cpp
Show All 20 Lines | |||||
21 | */ | 21 | */ | ||
22 | 22 | | |||
23 | #include "kcmcontainer.h" | 23 | #include "kcmcontainer.h" | ||
24 | 24 | | |||
25 | //KDE | 25 | //KDE | ||
26 | #include <KLocalizedString> | 26 | #include <KLocalizedString> | ||
27 | 27 | | |||
28 | //QT | 28 | //QT | ||
29 | #include <QApplication> | ||||
29 | #include <QVBoxLayout> | 30 | #include <QVBoxLayout> | ||
30 | #include <QStyle> | 31 | #include <QStyle> | ||
31 | 32 | | |||
32 | KcmContainer::KcmContainer(QWidget *parent) : QScrollArea(parent), m_titleLabel(nullptr), | 33 | KcmContainer::KcmContainer(QWidget *parent) : QScrollArea(parent), m_titleLabel(nullptr), | ||
33 | m_centerWidget(nullptr), m_mod(nullptr), m_kcmTopEdge(-1) | 34 | m_centerWidget(nullptr), m_mod(nullptr), m_kcmTopEdge(-1) | ||
34 | { | 35 | { | ||
35 | setWidgetResizable( true ); | 36 | setWidgetResizable( true ); | ||
36 | setFrameStyle( QFrame::NoFrame ); | 37 | setFrameStyle( QFrame::NoFrame ); | ||
Show All 18 Lines | 48 | { | |||
55 | delete m_centerWidget; | 56 | delete m_centerWidget; | ||
56 | m_centerWidget = new QWidget(this); | 57 | m_centerWidget = new QWidget(this); | ||
57 | m_centerWidget->setContentsMargins(0,0,0,0); | 58 | m_centerWidget->setContentsMargins(0,0,0,0); | ||
58 | 59 | | |||
59 | QVBoxLayout *centerWidgetLayout = new QVBoxLayout(m_centerWidget); | 60 | QVBoxLayout *centerWidgetLayout = new QVBoxLayout(m_centerWidget); | ||
60 | centerWidgetLayout->setContentsMargins(0, 0, 0, 0); | 61 | centerWidgetLayout->setContentsMargins(0, 0, 0, 0); | ||
61 | 62 | | |||
62 | QFont font; | 63 | QFont font; | ||
63 | font.setPointSize(qRound(font.pointSize() * 1.4)); | 64 | // Adapted from KTitleWidget to match KCM qml title size | ||
65 | font.setPointSize(qRound(QApplication::font().pointSize() * 1.6)); | ||||
64 | 66 | | |||
65 | m_titleLabel = new QLabel(m_centerWidget); | 67 | m_titleLabel = new QLabel(m_centerWidget); | ||
66 | m_titleLabel->setFont(font); | 68 | m_titleLabel->setFont(font); | ||
67 | m_titleLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); | 69 | m_titleLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); | ||
68 | m_titleLabel->setContentsMargins(style()->pixelMetric(QStyle::PM_DefaultFrameWidth), 0, 0, 0); | 70 | m_titleLabel->setContentsMargins(style()->pixelMetric(QStyle::PM_DefaultFrameWidth), 0, 0, 0); | ||
69 | m_titleLabel->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); | 71 | m_titleLabel->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); | ||
70 | 72 | | |||
71 | centerWidgetLayout->addWidget(m_titleLabel); | 73 | centerWidgetLayout->addWidget(m_titleLabel); | ||
72 | setWidget(m_centerWidget); | 74 | setWidget(m_centerWidget); | ||
73 | m_centerWidget->setAutoFillBackground(false); | 75 | m_centerWidget->setAutoFillBackground(false); | ||
74 | setKcmTopEdge(m_kcmTopEdge); | 76 | setKcmTopEdge(m_kcmTopEdge); | ||
75 | } | 77 | } | ||
76 | 78 | | |||
77 | void KcmContainer::setKcm(const KCModuleInfo &info) | 79 | void KcmContainer::setKcm(const KCModuleInfo &info) | ||
78 | { | 80 | { | ||
79 | setContainerLayout(); | 81 | setContainerLayout(); | ||
80 | 82 | | |||
81 | m_mod = new KCModuleProxy(info); | 83 | m_mod = new KCModuleProxy(info); | ||
82 | m_modInfo = info; | 84 | m_modInfo = info; | ||
83 | 85 | | |||
86 | // Adpated from systemsettings ModuleView::updatePageIconHeader similar hack | ||||
87 | if (!m_mod->realModule()->inherits("KCModuleQml") ) { | ||||
88 | m_centerWidget->setContentsMargins(5,5,5,5); | ||||
89 | } | ||||
90 | | ||||
84 | setKcmTitle(info); | 91 | setKcmTitle(info); | ||
85 | 92 | | |||
86 | m_mod->setWhatsThis(m_mod->quickHelp()); | 93 | m_mod->setWhatsThis(m_mod->quickHelp()); | ||
87 | m_centerWidget->layout()->addWidget(m_mod); | 94 | m_centerWidget->layout()->addWidget(m_mod); | ||
88 | } | 95 | } | ||
89 | 96 | | |||
90 | void KcmContainer::setKcmTopEdge(int y) | 97 | void KcmContainer::setKcmTopEdge(int y) | ||
91 | { | 98 | { | ||
92 | m_kcmTopEdge = y; | 99 | m_kcmTopEdge = y; | ||
93 | if (m_kcmTopEdge < 0) { | 100 | if (m_kcmTopEdge < 0) { | ||
94 | return; | 101 | return; | ||
95 | } | 102 | } | ||
96 | 103 | | |||
97 | if (m_titleLabel) { | 104 | if (m_titleLabel) { | ||
98 | int spacing = style()->layoutSpacing(QSizePolicy::DefaultType, QSizePolicy::DefaultType, Qt::Vertical); | 105 | int spacing = style()->layoutSpacing(QSizePolicy::DefaultType, QSizePolicy::DefaultType, Qt::Vertical); | ||
99 | m_titleLabel->setMinimumHeight(m_kcmTopEdge - spacing); | 106 | m_titleLabel->setMinimumHeight(m_kcmTopEdge - spacing); | ||
100 | } | 107 | } | ||
101 | } | 108 | } | ||
102 | 109 | | |||
103 | void KcmContainer::setKcmTitle(const KCModuleInfo &info) | 110 | void KcmContainer::setKcmTitle(const KCModuleInfo &info) | ||
104 | { | 111 | { | ||
112 | //HACK: not much other ways to detect is a qml kcm | ||||
113 | // Adpated from systemsettings ModuleView::updatePageIconHeader similar hack | ||||
114 | if (m_mod->realModule()->inherits("KCModuleQml") ) { | ||||
115 | m_titleLabel->setVisible(false); | ||||
116 | } | ||||
105 | m_titleLabel->setText(info.comment()); | 117 | m_titleLabel->setText(info.comment()); | ||
106 | } | 118 | } | ||
107 | 119 | | |||
108 | QString KcmContainer::helpPath() const | 120 | QString KcmContainer::helpPath() const | ||
109 | { | 121 | { | ||
110 | if(m_mod == nullptr) { | 122 | if(m_mod == nullptr) { | ||
111 | return QString(); | 123 | return QString(); | ||
112 | } | 124 | } | ||
Show All 27 Lines |