summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-09-21 08:33:50 +0200
committerLiang Qi <liang.qi@qt.io>2016-09-21 08:33:50 +0200
commit4e26a18ede1775ae06bef7c272994e84510ebd9a (patch)
tree0543dca51dc0b4f7a42c755235db4b00d2f080b4 /src
parent271d1efc13d4534830e37fd12fa6202981da723c (diff)
parent3b093789b07c670e29d3275e26c4e7122db042ae (diff)
downloadqtquickcontrols-4e26a18ede1775ae06bef7c272994e84510ebd9a.tar.gz
Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: I20f0f7a50b55907f4a6e574bdfe92bc9538879d6
Diffstat (limited to 'src')
-rw-r--r--src/controls/Private/ScrollViewHelper.qml10
-rw-r--r--src/controls/Private/TreeViewItemDelegateLoader.qml2
-rw-r--r--src/controls/Private/qquickrangemodel.cpp33
-rw-r--r--src/controls/Private/qquickrangemodel_p.h7
-rw-r--r--src/controls/Private/qquickrangemodel_p_p.h3
-rw-r--r--src/controls/Private/qquickstyleitem.cpp2
-rw-r--r--src/controls/Private/qquicktreemodeladaptor.cpp51
-rw-r--r--src/controls/Private/qquicktreemodeladaptor_p.h5
-rw-r--r--src/controls/Slider.qml6
-rw-r--r--src/controls/SplitView.qml6
-rw-r--r--src/controls/Styles/Base/CheckBoxStyle.qml2
-rw-r--r--src/controls/TableViewColumn.qml2
-rw-r--r--src/controls/controls.pro2
-rw-r--r--src/controls/doc/src/qtquickcontrols-examples.qdoc6
-rw-r--r--src/controls/doc/src/qtquickcontrols-tableview.qdoc2
-rw-r--r--src/controls/qquickmenu.cpp17
-rw-r--r--src/controls/qquickmenu_p.h2
-rw-r--r--src/controls/qquickpopupwindow.cpp3
-rw-r--r--src/dialogs/qquickabstractcolordialog.cpp6
-rw-r--r--src/dialogs/qquickabstractcolordialog_p.h3
-rw-r--r--src/dialogs/qquickabstractfontdialog.cpp6
-rw-r--r--src/dialogs/qquickabstractfontdialog_p.h3
-rw-r--r--src/dialogs/qquickcolordialog.cpp6
-rw-r--r--src/dialogs/qquickcolordialog_p.h3
-rw-r--r--src/dialogs/qquickfontdialog.cpp6
-rw-r--r--src/dialogs/qquickfontdialog_p.h3
-rw-r--r--src/dialogs/qquickplatformfontdialog.cpp2
27 files changed, 157 insertions, 42 deletions
diff --git a/src/controls/Private/ScrollViewHelper.qml b/src/controls/Private/ScrollViewHelper.qml
index 066bc6cd..810de91d 100644
--- a/src/controls/Private/ScrollViewHelper.qml
+++ b/src/controls/Private/ScrollViewHelper.qml
@@ -134,6 +134,11 @@ Item {
anchors.right: cornerFill.left
anchors.leftMargin: leftMargin
anchors.bottomMargin: bottomMargin
+ onScrollAmountChanged: {
+ if (flickableItem && (flickableItem.atXBeginning || flickableItem.atXEnd)) {
+ value = flickableItem.contentX - flickableItem.originX
+ }
+ }
onValueChanged: {
if (!blockUpdates) {
flickableItem.contentX = value + flickableItem.originX
@@ -183,6 +188,11 @@ Item {
anchors.top: parent.top
anchors.topMargin: __scrollBarTopMargin + topMargin
anchors.rightMargin: rightMargin
+ onScrollAmountChanged: {
+ if (flickableItem && (flickableItem.atYBeginning || flickableItem.atYEnd)) {
+ value = flickableItem.contentY - flickableItem.originY
+ }
+ }
onValueChanged: {
if (flickableItem && !blockUpdates && enabled) {
flickableItem.contentY = value + flickableItem.originY
diff --git a/src/controls/Private/TreeViewItemDelegateLoader.qml b/src/controls/Private/TreeViewItemDelegateLoader.qml
index 4f8b26f6..e19215ed 100644
--- a/src/controls/Private/TreeViewItemDelegateLoader.qml
+++ b/src/controls/Private/TreeViewItemDelegateLoader.qml
@@ -81,7 +81,7 @@ TableViewItemDelegateLoader {
readonly property color textColor: __rowItem ? __rowItem.itemTextColor : "black"
readonly property string role: __column ? __column.role : ""
readonly property var value: model && model.hasOwnProperty(role) ? model[role] : ""
- readonly property var index: __treeModel.mapRowToModelIndex(row)
+ readonly property var index: model ? model["_q_TreeView_ModelIndex"] : __treeModel.index(-1,-1,null)
readonly property int depth: model && column === 0 ? model["_q_TreeView_ItemDepth"] : 0
readonly property bool hasChildren: model ? model["_q_TreeView_HasChildren"] : false
readonly property bool hasSibling: model ? model["_q_TreeView_HasSibling"] : false
diff --git a/src/controls/Private/qquickrangemodel.cpp b/src/controls/Private/qquickrangemodel.cpp
index d881e3c8..ca393c83 100644
--- a/src/controls/Private/qquickrangemodel.cpp
+++ b/src/controls/Private/qquickrangemodel.cpp
@@ -72,6 +72,9 @@ void QQuickRangeModel1Private::init()
posatmin = 0;
posatmax = 0;
inverted = false;
+ isComplete = false;
+ positionChanged = false;
+ valueChanged = false;
}
/*!
@@ -158,10 +161,16 @@ void QQuickRangeModel1Private::emitValueAndPositionIfChanged(const qreal oldValu
// unchanged. This will be the case when operating with values outside range:
const qreal newValue = q->value();
const qreal newPosition = q->position();
- if (!qFuzzyCompare(newValue, oldValue))
- emit q->valueChanged(newValue);
- if (!qFuzzyCompare(newPosition, oldPosition))
- emit q->positionChanged(newPosition);
+
+ if (isComplete) {
+ if (!qFuzzyCompare(newValue, oldValue))
+ emit q->valueChanged(newValue);
+ if (!qFuzzyCompare(newPosition, oldPosition))
+ emit q->positionChanged(newPosition);
+ } else {
+ positionChanged |= qFuzzyCompare(oldPosition, newPosition);
+ valueChanged |= !qFuzzyCompare(oldValue, newValue);
+ }
}
/*!
@@ -349,6 +358,22 @@ qreal QQuickRangeModel1::positionForValue(qreal value) const
return d->publicPosition(unconstrainedPosition);
}
+void QQuickRangeModel1::classBegin()
+{
+}
+
+void QQuickRangeModel1::componentComplete()
+{
+ Q_D(QQuickRangeModel1);
+ d->isComplete = true;
+ emit minimumChanged(minimum());
+ emit maximumChanged(maximum());
+ if (d->valueChanged)
+ emit valueChanged(value());
+ if (d->positionChanged)
+ emit positionChanged(position());
+}
+
/*!
\property QQuickRangeModel1::position
\brief the current position of the model
diff --git a/src/controls/Private/qquickrangemodel_p.h b/src/controls/Private/qquickrangemodel_p.h
index 0c93bed3..e5796725 100644
--- a/src/controls/Private/qquickrangemodel_p.h
+++ b/src/controls/Private/qquickrangemodel_p.h
@@ -47,7 +47,7 @@ QT_BEGIN_NAMESPACE
class QQuickRangeModel1Private;
-class QQuickRangeModel1 : public QObject
+class QQuickRangeModel1 : public QObject, public QQmlParserStatus
{
Q_OBJECT
Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY valueChanged USER true)
@@ -59,6 +59,8 @@ class QQuickRangeModel1 : public QObject
Q_PROPERTY(qreal positionAtMaximum READ positionAtMaximum WRITE setPositionAtMaximum NOTIFY positionAtMaximumChanged)
Q_PROPERTY(bool inverted READ inverted WRITE setInverted NOTIFY invertedChanged)
+ Q_INTERFACES(QQmlParserStatus)
+
public:
QQuickRangeModel1(QObject *parent = 0);
virtual ~QQuickRangeModel1();
@@ -90,6 +92,9 @@ public:
Q_INVOKABLE qreal valueForPosition(qreal position) const;
Q_INVOKABLE qreal positionForValue(qreal value) const;
+ void classBegin();
+ void componentComplete();
+
public Q_SLOTS:
void toMinimum();
void toMaximum();
diff --git a/src/controls/Private/qquickrangemodel_p_p.h b/src/controls/Private/qquickrangemodel_p_p.h
index 5c56814e..ab0627d3 100644
--- a/src/controls/Private/qquickrangemodel_p_p.h
+++ b/src/controls/Private/qquickrangemodel_p_p.h
@@ -70,6 +70,9 @@ public:
uint inverted : 1;
QQuickRangeModel1 *q_ptr;
+ bool isComplete;
+ bool positionChanged;
+ bool valueChanged;
inline qreal effectivePosAtMin() const {
return inverted ? posatmax : posatmin;
diff --git a/src/controls/Private/qquickstyleitem.cpp b/src/controls/Private/qquickstyleitem.cpp
index 3fe68230..1d79d634 100644
--- a/src/controls/Private/qquickstyleitem.cpp
+++ b/src/controls/Private/qquickstyleitem.cpp
@@ -70,7 +70,7 @@ static inline HIRect qt_hirectForQRect(const QRect &convertRect, const QRect &re
returned if it can't be obtained. It is the caller's responsibility to
CGContextRelease the context when finished using it.
- \warning This function is only available on Mac OS X.
+ \warning This function is only available on \macos.
\warning This function is duplicated in qmacstyle_mac.mm
*/
CGContextRef qt_mac_cg_context(const QPaintDevice *pdev)
diff --git a/src/controls/Private/qquicktreemodeladaptor.cpp b/src/controls/Private/qquicktreemodeladaptor.cpp
index 9c0dd71c..26db62a3 100644
--- a/src/controls/Private/qquicktreemodeladaptor.cpp
+++ b/src/controls/Private/qquicktreemodeladaptor.cpp
@@ -156,6 +156,7 @@ QHash<int, QByteArray> QQuickTreeModelAdaptor1::roleNames() const
modelRoleNames.insert(ExpandedRole, "_q_TreeView_ItemExpanded");
modelRoleNames.insert(HasChildrenRole, "_q_TreeView_HasChildren");
modelRoleNames.insert(HasSiblingRole, "_q_TreeView_HasSibling");
+ modelRoleNames.insert(ModelIndexRole, "_q_TreeView_ModelIndex");
return modelRoleNames;
}
@@ -180,6 +181,8 @@ QVariant QQuickTreeModelAdaptor1::data(const QModelIndex &index, int role) const
return !(modelIndex.flags() & Qt::ItemNeverHasChildren) && m_model->hasChildren(modelIndex);
case HasSiblingRole:
return modelIndex.row() != m_model->rowCount(modelIndex.parent()) - 1;
+ case ModelIndexRole:
+ return modelIndex;
default:
return m_model->data(modelIndex, role);
}
@@ -195,6 +198,7 @@ bool QQuickTreeModelAdaptor1::setData(const QModelIndex &index, const QVariant &
case ExpandedRole:
case HasChildrenRole:
case HasSiblingRole:
+ case ModelIndexRole:
return false;
default: {
const QModelIndex &pmi = mapToModel(index);
@@ -719,8 +723,11 @@ void QQuickTreeModelAdaptor1::modelRowsAboutToBeMoved(const QModelIndex & source
destIndex = itemIndex(m_model->index(destinationRow, 0, destinationParent));
}
- beginMoveRows(QModelIndex(), startIndex, endIndex, QModelIndex(), destIndex);
int totalMovedCount = endIndex - startIndex + 1;
+
+ const bool visibleRowsMoved = startIndex != destIndex &&
+ beginMoveRows(QModelIndex(), startIndex, endIndex, QModelIndex(), destIndex);
+
const QList<TreeItem> &buffer = m_items.mid(startIndex, totalMovedCount);
int bufferCopyOffset;
if (destIndex > endIndex) {
@@ -729,6 +736,7 @@ void QQuickTreeModelAdaptor1::modelRowsAboutToBeMoved(const QModelIndex & source
}
bufferCopyOffset = destIndex - totalMovedCount;
} else {
+ // NOTE: we will not enter this loop if startIndex == destIndex
for (int i = startIndex - 1; i >= destIndex; i--) {
m_items.swap(i, i + totalMovedCount); // Fast move from 1st to 2nd position
}
@@ -739,14 +747,49 @@ void QQuickTreeModelAdaptor1::modelRowsAboutToBeMoved(const QModelIndex & source
item.depth += depthDifference;
m_items.replace(bufferCopyOffset + i, item);
}
- endMoveRows();
+
+ if (visibleRowsMoved)
+ endMoveRows();
+
+ if (depthDifference != 0) {
+ const QModelIndex &topLeft = index(bufferCopyOffset, 0, QModelIndex());
+ const QModelIndex &bottomRight = index(bufferCopyOffset + totalMovedCount - 1, 0, QModelIndex());
+ const QVector<int> changedRole(1, DepthRole);
+ emit dataChanged(topLeft, bottomRight, changedRole);
+ }
}
}
void QQuickTreeModelAdaptor1::modelRowsMoved(const QModelIndex & sourceParent, int sourceStart, int sourceEnd, const QModelIndex & destinationParent, int destinationRow)
{
- if (!childrenVisible(sourceParent) && childrenVisible(destinationParent))
- modelRowsInserted(destinationParent, destinationRow, destinationRow + sourceEnd - sourceStart);
+ if (childrenVisible(destinationParent)) {
+ if (!childrenVisible(sourceParent))
+ modelRowsInserted(destinationParent, destinationRow, destinationRow + sourceEnd - sourceStart);
+ else {
+ int destIndex = -1;
+ if (destinationRow == m_model->rowCount(destinationParent)) {
+ const QModelIndex &emi = m_model->index(destinationRow - 1, 0, destinationParent);
+ destIndex = lastChildIndex(emi) + 1;
+ } else {
+ destIndex = itemIndex(m_model->index(destinationRow, 0, destinationParent));
+ }
+
+ const QModelIndex &emi = m_model->index(destinationRow + sourceEnd - sourceStart, 0, destinationParent);
+ int endIndex = -1;
+ if (isExpanded(emi)) {
+ int rowCount = m_model->rowCount(emi);
+ if (rowCount > 0)
+ endIndex = lastChildIndex(m_model->index(rowCount - 1, 0, emi));
+ }
+ if (endIndex == -1)
+ endIndex = itemIndex(emi);
+
+ const QModelIndex &topLeft = index(destIndex, 0, QModelIndex());
+ const QModelIndex &bottomRight = index(endIndex, 0, QModelIndex());
+ const QVector<int> changedRole(1, ModelIndexRole);
+ emit dataChanged(topLeft, bottomRight, changedRole);
+ }
+ }
ASSERT_CONSISTENCY();
}
diff --git a/src/controls/Private/qquicktreemodeladaptor_p.h b/src/controls/Private/qquicktreemodeladaptor_p.h
index ddad96cb..e7192314 100644
--- a/src/controls/Private/qquicktreemodeladaptor_p.h
+++ b/src/controls/Private/qquicktreemodeladaptor_p.h
@@ -77,10 +77,11 @@ public:
void resetRootIndex();
enum {
- DepthRole = Qt::UserRole - 4,
+ DepthRole = Qt::UserRole - 5,
ExpandedRole,
HasChildrenRole,
- HasSiblingRole
+ HasSiblingRole,
+ ModelIndexRole
};
QHash<int, QByteArray> roleNames() const;
diff --git a/src/controls/Slider.qml b/src/controls/Slider.qml
index f38db0e4..4023929a 100644
--- a/src/controls/Slider.qml
+++ b/src/controls/Slider.qml
@@ -176,9 +176,11 @@ Control {
/*! \internal
The extra arguments positionAtMinimum and positionAtMaximum are there to force
- re-evaluation of the handle position when the constraints change (QTBUG-41255).
+ re-evaluation of the handle position when the constraints change (QTBUG-41255),
+ and the same for range.minimumValue (QTBUG-51765).
*/
- property real __handlePos: range.valueForPosition(__horizontal ? fakeHandle.x : fakeHandle.y, range.positionAtMinimum, range.positionAtMaximum)
+ property real __handlePos: range.valueForPosition(__horizontal ? fakeHandle.x : fakeHandle.y,
+ range.positionAtMinimum, range.positionAtMaximum, range.minimumValue)
activeFocusOnTab: true
diff --git a/src/controls/SplitView.qml b/src/controls/SplitView.qml
index 6ad785ba..b95704d3 100644
--- a/src/controls/SplitView.qml
+++ b/src/controls/SplitView.qml
@@ -61,9 +61,13 @@ import QtQuick.Window 2.1
item will get all leftover space when other items have been laid out.
By default, the last visible child of the SplitView will have this set, but
it can be changed by explicitly setting fillWidth to \c true on another item.
+
As the fillWidth item will automatically be resized to fit the extra space, explicit assignments
- to width and height will be ignored (but \l{Layout::minimumWidth}{Layout.minimumWidth} and
+ to its width and height properties will be ignored (but \l{Layout::minimumWidth}{Layout.minimumWidth} and
\l{Layout::maximumWidth}{Layout.maximumWidth} will still be respected).
+ The initial sizes of other items should be set via their width and height properties.
+ Any binding assignment to an item's width or height will be broken as soon as the user
+ drags that item's splitter handle.
A handle can belong to the item either on the left or top side, or on the right or bottom side:
\list
diff --git a/src/controls/Styles/Base/CheckBoxStyle.qml b/src/controls/Styles/Base/CheckBoxStyle.qml
index 0baf244b..30057ca1 100644
--- a/src/controls/Styles/Base/CheckBoxStyle.qml
+++ b/src/controls/Styles/Base/CheckBoxStyle.qml
@@ -114,7 +114,7 @@ Style {
/*! This defines the indicator button. */
property Component indicator: Item {
implicitWidth: Math.round(TextSingleton.implicitHeight)
- height: width
+ implicitHeight: implicitWidth
Rectangle {
anchors.fill: parent
anchors.bottomMargin: -1
diff --git a/src/controls/TableViewColumn.qml b/src/controls/TableViewColumn.qml
index d1fd0c00..64e68515 100644
--- a/src/controls/TableViewColumn.qml
+++ b/src/controls/TableViewColumn.qml
@@ -77,7 +77,7 @@ QtObject {
/*! The model \c role of the column. */
property string role
- /*! The current width of the column
+ /*! The current width of the column.
The default value depends on platform. If only one
column is defined, the width expands to the viewport.
*/
diff --git a/src/controls/controls.pro b/src/controls/controls.pro
index 8efc2271..63d055d6 100644
--- a/src/controls/controls.pro
+++ b/src/controls/controls.pro
@@ -88,6 +88,8 @@ osx: LIBS_PRIVATE += -framework Carbon
$$PRIVATE_QML_FILES \
$$STYLES_QML_FILES \
$$SHADER_FILES
+ OTHER_FILES += $$QML_FILES
}
+
CONFIG += no_cxx_module
load(qml_plugin)
diff --git a/src/controls/doc/src/qtquickcontrols-examples.qdoc b/src/controls/doc/src/qtquickcontrols-examples.qdoc
index 70c8eabb..08f61e10 100644
--- a/src/controls/doc/src/qtquickcontrols-examples.qdoc
+++ b/src/controls/doc/src/qtquickcontrols-examples.qdoc
@@ -46,7 +46,7 @@
<tr><td style="border:0px">
\endraw
\image qtquickcontrols-example-gallery-osx.png
- \caption OS X
+ \caption \macos
\raw HTML
</td><td style="border:0px">
\endraw
@@ -157,7 +157,7 @@
import org.qtproject.example 1.0
\endcode
- For more information about registering C++ classses as QML types, see
+ For more information about registering C++ classes as QML types, see
\l {Defining QML Types from C++}.
\include examples-run.qdocinc
@@ -198,7 +198,7 @@
import org.qtproject.example 1.0
\endcode
- For more information about registering C++ classses as QML types, see
+ For more information about registering C++ classes as QML types, see
\l {Defining QML Types from C++}.
\include examples-run.qdocinc
diff --git a/src/controls/doc/src/qtquickcontrols-tableview.qdoc b/src/controls/doc/src/qtquickcontrols-tableview.qdoc
index cf86174a..ba16b115 100644
--- a/src/controls/doc/src/qtquickcontrols-tableview.qdoc
+++ b/src/controls/doc/src/qtquickcontrols-tableview.qdoc
@@ -243,7 +243,7 @@
\endcode
\b Example: To iterate over selected indexes, you can pass a callback function.
- \a rowIndex is passed as as an argument to the callback function.
+ \a rowIndex is passed as an argument to the callback function.
\code
tableview.selection.forEach( function(rowIndex) {console.log(rowIndex)} )
\endcode
diff --git a/src/controls/qquickmenu.cpp b/src/controls/qquickmenu.cpp
index ddb25790..67682ad3 100644
--- a/src/controls/qquickmenu.cpp
+++ b/src/controls/qquickmenu.cpp
@@ -442,6 +442,10 @@ void QQuickMenu1::__popup(const QRectF &targetRect, int atItemIndex, MenuType me
// parentWindow may not be a QQuickWindow (happens when using QQuickWidget)
if (m_platformMenu) {
+ if (m_windowConnection)
+ QObject::disconnect(m_windowConnection);
+ m_windowConnection = connect(parentWindow, &QWindow::visibleChanged, this,
+ &QQuickMenu1::platformMenuWindowVisibleChanged, Qt::UniqueConnection);
QRectF globalTargetRect = targetRect.translated(m_xOffset, m_yOffset);
if (visualItem()) {
if (qGuiApp->isRightToLeft()) {
@@ -571,6 +575,19 @@ void QQuickMenu1::windowVisibleChanged(bool v)
}
}
+void QQuickMenu1::platformMenuWindowVisibleChanged(bool visible)
+{
+ if (!visible) {
+ if (m_windowConnection) {
+ QObject::disconnect(m_windowConnection);
+ m_windowConnection = QMetaObject::Connection();
+ }
+ if (m_platformMenu) {
+ m_platformMenu->dismiss();
+ }
+ }
+}
+
void QQuickMenu1::clearPopupWindow()
{
m_popupWindow = 0;
diff --git a/src/controls/qquickmenu_p.h b/src/controls/qquickmenu_p.h
index a8a14c5a..800981dd 100644
--- a/src/controls/qquickmenu_p.h
+++ b/src/controls/qquickmenu_p.h
@@ -168,6 +168,7 @@ protected Q_SLOTS:
void updateText();
void windowVisibleChanged(bool);
+ void platformMenuWindowVisibleChanged(bool);
private:
QQuickWindow *findParentWindow();
@@ -208,6 +209,7 @@ private:
QFont m_font;
int m_triggerCount;
bool m_proxy;
+ QMetaObject::Connection m_windowConnection;
};
QT_END_NAMESPACE
diff --git a/src/controls/qquickpopupwindow.cpp b/src/controls/qquickpopupwindow.cpp
index 6d87ac47..9a6519ed 100644
--- a/src/controls/qquickpopupwindow.cpp
+++ b/src/controls/qquickpopupwindow.cpp
@@ -227,7 +227,8 @@ void QQuickPopupWindow1::hideEvent(QHideEvent *e)
{
if (QWindow *tp = !m_needsActivatedEvent ? transientParent() : 0) {
m_needsActivatedEvent = true;
- QWindowSystemInterface::handleWindowActivated(tp);
+ if (tp->isVisible())
+ QWindowSystemInterface::handleWindowActivated(tp);
}
QQuickWindow::hideEvent(e);
diff --git a/src/dialogs/qquickabstractcolordialog.cpp b/src/dialogs/qquickabstractcolordialog.cpp
index ee9e4023..a558b12c 100644
--- a/src/dialogs/qquickabstractcolordialog.cpp
+++ b/src/dialogs/qquickabstractcolordialog.cpp
@@ -124,4 +124,10 @@ void QQuickAbstractColorDialog::setShowAlphaChannel(bool arg)
emit showAlphaChannelChanged();
}
+void QQuickAbstractColorDialog::accept()
+{
+ setColor(m_currentColor);
+ QQuickAbstractDialog::accept();
+}
+
QT_END_NAMESPACE
diff --git a/src/dialogs/qquickabstractcolordialog_p.h b/src/dialogs/qquickabstractcolordialog_p.h
index 99be766c..16b39c26 100644
--- a/src/dialogs/qquickabstractcolordialog_p.h
+++ b/src/dialogs/qquickabstractcolordialog_p.h
@@ -96,6 +96,9 @@ Q_SIGNALS:
void currentColorChanged();
void selectionAccepted();
+protected Q_SLOTS:
+ virtual void accept();
+
protected:
QPlatformColorDialogHelper *m_dlgHelper;
QSharedPointer<QColorDialogOptions> m_options;
diff --git a/src/dialogs/qquickabstractfontdialog.cpp b/src/dialogs/qquickabstractfontdialog.cpp
index 9b0f0ec6..f94a36a0 100644
--- a/src/dialogs/qquickabstractfontdialog.cpp
+++ b/src/dialogs/qquickabstractfontdialog.cpp
@@ -154,4 +154,10 @@ void QQuickAbstractFontDialog::setProportionalFonts(bool arg)
emit proportionalFontsChanged();
}
+void QQuickAbstractFontDialog::accept()
+{
+ setFont(m_currentFont);
+ QQuickAbstractDialog::accept();
+}
+
QT_END_NAMESPACE
diff --git a/src/dialogs/qquickabstractfontdialog_p.h b/src/dialogs/qquickabstractfontdialog_p.h
index 3162be2a..f60c4ddb 100644
--- a/src/dialogs/qquickabstractfontdialog_p.h
+++ b/src/dialogs/qquickabstractfontdialog_p.h
@@ -101,6 +101,9 @@ Q_SIGNALS:
void currentFontChanged();
void selectionAccepted();
+protected Q_SLOTS:
+ virtual void accept();
+
protected:
QPlatformFontDialogHelper *m_dlgHelper;
QSharedPointer<QFontDialogOptions> m_options;
diff --git a/src/dialogs/qquickcolordialog.cpp b/src/dialogs/qquickcolordialog.cpp
index 875c6740..686bd850 100644
--- a/src/dialogs/qquickcolordialog.cpp
+++ b/src/dialogs/qquickcolordialog.cpp
@@ -118,10 +118,4 @@ QQuickColorDialog::~QQuickColorDialog()
\l Window or an \l Item.
*/
-void QQuickColorDialog::accept()
-{
- setColor(m_currentColor);
- QQuickAbstractColorDialog::accept();
-}
-
QT_END_NAMESPACE
diff --git a/src/dialogs/qquickcolordialog_p.h b/src/dialogs/qquickcolordialog_p.h
index d3c3463b..619b7b10 100644
--- a/src/dialogs/qquickcolordialog_p.h
+++ b/src/dialogs/qquickcolordialog_p.h
@@ -65,9 +65,6 @@ public:
explicit QQuickColorDialog(QObject *parent = 0);
~QQuickColorDialog();
-protected Q_SLOTS:
- virtual void accept();
-
protected:
virtual QPlatformColorDialogHelper *helper() { return 0; }
diff --git a/src/dialogs/qquickfontdialog.cpp b/src/dialogs/qquickfontdialog.cpp
index 0e27d29a..00acf238 100644
--- a/src/dialogs/qquickfontdialog.cpp
+++ b/src/dialogs/qquickfontdialog.cpp
@@ -119,10 +119,4 @@ QQuickFontDialog::~QQuickFontDialog()
\l Window or an \l Item.
*/
-void QQuickFontDialog::accept()
-{
- setFont(m_currentFont);
- QQuickAbstractFontDialog::accept();
-}
-
QT_END_NAMESPACE
diff --git a/src/dialogs/qquickfontdialog_p.h b/src/dialogs/qquickfontdialog_p.h
index 71301a76..bd04f536 100644
--- a/src/dialogs/qquickfontdialog_p.h
+++ b/src/dialogs/qquickfontdialog_p.h
@@ -65,9 +65,6 @@ public:
explicit QQuickFontDialog(QObject *parent = 0);
~QQuickFontDialog();
-protected Q_SLOTS:
- virtual void accept();
-
protected:
virtual QPlatformFontDialogHelper *helper() { return 0; }
diff --git a/src/dialogs/qquickplatformfontdialog.cpp b/src/dialogs/qquickplatformfontdialog.cpp
index 247e869e..2c501a1c 100644
--- a/src/dialogs/qquickplatformfontdialog.cpp
+++ b/src/dialogs/qquickplatformfontdialog.cpp
@@ -170,7 +170,7 @@ QPlatformFontDialogHelper *QQuickPlatformFontDialog::helper()
return m_dlgHelper;
connect(m_dlgHelper, SIGNAL(accept()), this, SLOT(accept()));
connect(m_dlgHelper, SIGNAL(reject()), this, SLOT(reject()));
- connect(m_dlgHelper, SIGNAL(currentFontChanged(QFont)), this, SLOT(setFont(QFont)));
+ connect(m_dlgHelper, SIGNAL(currentFontChanged(QFont)), this, SLOT(setCurrentFont(QFont)));
connect(m_dlgHelper, SIGNAL(fontSelected(QFont)), this, SLOT(setFont(QFont)));
}