aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickpopup.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-04-18 16:59:58 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-05-26 08:52:05 +0000
commit68aea0a4234e6f0faa108ea186643b7c27ab8ce7 (patch)
tree7d3f4cd51f5ad0e433d94ea4acdac05943550905 /src/quicktemplates2/qquickpopup.cpp
parentbb49cde2decbee22f0d732d6e2f56a14c2970b24 (diff)
Add support for propagating palettes
Change-Id: Icd965d8a79f022f4375e2134621cbc3897014015 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickpopup.cpp')
-rw-r--r--src/quicktemplates2/qquickpopup.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp
index 045b0fb8..23d3ad2c 100644
--- a/src/quicktemplates2/qquickpopup.cpp
+++ b/src/quicktemplates2/qquickpopup.cpp
@@ -1347,6 +1347,53 @@ void QQuickPopup::resetFont()
d->popupItem->resetFont();
}
+
+/*!
+ \since QtQuick.Controls 2.3
+ \qmlproperty palette QtQuick.Controls::Popup::palette
+
+ This property holds the palette currently set for the popup.
+
+ Popup propagates explicit palette properties to its children. If you change a specific
+ property on a popup's palette, that property propagates to all of the popup's children,
+ overriding any system defaults for that property.
+
+ \code
+ Popup {
+ palette.text: "red"
+
+ Column {
+ Label {
+ text: qsTr("This will use red color...")
+ }
+
+ Switch {
+ text: qsTr("... and so will this")
+ }
+ }
+ }
+ \endcode
+
+ \sa Control::palette, ApplicationWindow::palette
+*/
+QPalette QQuickPopup::palette() const
+{
+ Q_D(const QQuickPopup);
+ return d->popupItem->palette();
+}
+
+void QQuickPopup::setPalette(const QPalette &palette)
+{
+ Q_D(QQuickPopup);
+ d->popupItem->setPalette(palette);
+}
+
+void QQuickPopup::resetPalette()
+{
+ Q_D(QQuickPopup);
+ d->popupItem->resetPalette();
+}
+
QQuickWindow *QQuickPopup::window() const
{
Q_D(const QQuickPopup);
@@ -1389,6 +1436,7 @@ void QQuickPopup::setParentItem(QQuickItem *parent)
QQuickControlPrivate *p = QQuickControlPrivate::get(d->popupItem);
p->resolveFont();
+ p->resolvePalette();
if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(parent->window()))
p->updateLocale(window->locale(), false); // explicit=false
} else {
@@ -2104,6 +2152,13 @@ void QQuickPopup::paddingChange(const QMarginsF &newPadding, const QMarginsF &ol
emit availableHeightChanged();
}
+void QQuickPopup::paletteChange(const QPalette &newPalette, const QPalette &oldPalette)
+{
+ Q_UNUSED(newPalette);
+ Q_UNUSED(oldPalette);
+ emit paletteChanged();
+}
+
void QQuickPopup::spacingChange(qreal newSpacing, qreal oldSpacing)
{
Q_UNUSED(newSpacing);
@@ -2116,6 +2171,11 @@ QFont QQuickPopup::defaultFont() const
return QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont);
}
+QPalette QQuickPopup::defaultPalette() const
+{
+ return QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette);
+}
+
#if QT_CONFIG(accessibility)
QAccessible::Role QQuickPopup::accessibleRole() const
{