Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: If1baf48f0f396fb223672d14f0e1847ac42ca1a6
This commit is contained in:
commit
3d2832790a
@ -185,12 +185,22 @@ qsizetype QCborArray::size() const noexcept
|
||||
return d ? d->elements.size() : 0;
|
||||
}
|
||||
|
||||
/*!
|
||||
Empties this array.
|
||||
|
||||
\sa isEmpty()
|
||||
*/
|
||||
void QCborArray::clear()
|
||||
{
|
||||
d.reset();
|
||||
}
|
||||
|
||||
/*!
|
||||
\fn bool QCborArray::isEmpty() const
|
||||
|
||||
Returns true if this QCborArray is empty (that is if size() is 0).
|
||||
|
||||
\sa size()
|
||||
\sa size(), clear()
|
||||
*/
|
||||
|
||||
/*!
|
||||
|
@ -180,6 +180,7 @@ public:
|
||||
|
||||
qsizetype size() const noexcept;
|
||||
bool isEmpty() const { return size() == 0; }
|
||||
void clear();
|
||||
|
||||
QCborValue at(qsizetype i) const;
|
||||
QCborValue first() const { return at(0); }
|
||||
|
@ -270,7 +270,7 @@ QCborMap &QCborMap::operator=(const QCborMap &other) noexcept
|
||||
|
||||
Returns true if this map is empty (that is, size() is 0).
|
||||
|
||||
\sa size()
|
||||
\sa size(), clear()
|
||||
*/
|
||||
|
||||
/*!
|
||||
@ -283,6 +283,16 @@ qsizetype QCborMap::size() const noexcept
|
||||
return d ? d->elements.size() / 2 : 0;
|
||||
}
|
||||
|
||||
/*!
|
||||
Empties this map.
|
||||
|
||||
\sa isEmpty()
|
||||
*/
|
||||
void QCborMap::clear()
|
||||
{
|
||||
d.reset();
|
||||
}
|
||||
|
||||
/*!
|
||||
Returns a list of all keys in this map.
|
||||
|
||||
|
@ -184,6 +184,7 @@ public:
|
||||
|
||||
qsizetype size() const noexcept Q_DECL_PURE_FUNCTION;
|
||||
bool isEmpty() const { return size() == 0; }
|
||||
void clear();
|
||||
QVector<QCborValue> keys() const;
|
||||
|
||||
QCborValue value(qint64 key) const
|
||||
|
@ -984,11 +984,15 @@ bool QOpenGLContext::makeCurrent(QSurface *surface)
|
||||
#endif
|
||||
}
|
||||
|
||||
QOpenGLContext *previous = QOpenGLContextPrivate::setCurrentContext(this);
|
||||
if (!d->platformGLContext->makeCurrent(surface->surfaceHandle())) {
|
||||
QOpenGLContextPrivate::setCurrentContext(previous);
|
||||
if (!d->platformGLContext->makeCurrent(surface->surfaceHandle()))
|
||||
return false;
|
||||
}
|
||||
|
||||
QOpenGLContextPrivate::setCurrentContext(this);
|
||||
#ifndef QT_NO_DEBUG
|
||||
QOpenGLContextPrivate::toggleMakeCurrentTracker(this, true);
|
||||
#endif
|
||||
|
||||
d->surface = surface;
|
||||
|
||||
static bool needsWorkaroundSet = false;
|
||||
static bool needsWorkaround = false;
|
||||
@ -1030,14 +1034,8 @@ bool QOpenGLContext::makeCurrent(QSurface *surface)
|
||||
if (needsWorkaround)
|
||||
d->workaround_brokenFBOReadBack = true;
|
||||
|
||||
d->surface = surface;
|
||||
|
||||
d->shareGroup->d_func()->deletePendingResources(this);
|
||||
|
||||
#ifndef QT_NO_DEBUG
|
||||
QOpenGLContextPrivate::toggleMakeCurrentTracker(this, true);
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -169,7 +169,11 @@ QHash<QPlatformTheme::Palette, QPalette*> qt_mac_createRolePalettes()
|
||||
// Cheap approximation for NSVisualEffectView (see deprecation note for selectedMenuItemTextColor)
|
||||
selectedMenuItemColor = [[NSColor selectedContentBackgroundColor] highlightWithLevel:0.4];
|
||||
} else {
|
||||
selectedMenuItemColor = [NSColor selectedMenuItemTextColor];
|
||||
// selectedMenuItemColor would presumably be the correct color to use as the background
|
||||
// for selected menu items. But that color is always blue, and doesn't follow the
|
||||
// appearance color in system preferences. So we therefore deliberatly choose to use
|
||||
// keyboardFocusIndicatorColor instead, which appears to have the same color value.
|
||||
selectedMenuItemColor = [NSColor keyboardFocusIndicatorColor];
|
||||
}
|
||||
pal.setBrush(QPalette::Highlight, qt_mac_toQColor(selectedMenuItemColor));
|
||||
qc = qt_mac_toQColor([NSColor labelColor]);
|
||||
|
@ -80,7 +80,7 @@ QT_FOR_EACH_STATIC_TYPE(RETURN_METATYPENAME_STRING)
|
||||
return 0;
|
||||
}
|
||||
|
||||
Generator::Generator(ClassDef *classDef, const QList<QByteArray> &metaTypes, const QHash<QByteArray, QByteArray> &knownQObjectClasses, const QHash<QByteArray, QByteArray> &knownGadgets, FILE *outfile)
|
||||
Generator::Generator(ClassDef *classDef, const QVector<QByteArray> &metaTypes, const QHash<QByteArray, QByteArray> &knownQObjectClasses, const QHash<QByteArray, QByteArray> &knownGadgets, FILE *outfile)
|
||||
: out(outfile), cdef(classDef), metaTypes(metaTypes), knownQObjectClasses(knownQObjectClasses)
|
||||
, knownGadgets(knownGadgets)
|
||||
{
|
||||
@ -461,7 +461,7 @@ void Generator::generateCode()
|
||||
//
|
||||
// Build extra array
|
||||
//
|
||||
QList<QByteArray> extraList;
|
||||
QVector<QByteArray> extraList;
|
||||
QHash<QByteArray, QByteArray> knownExtraMetaObject = knownGadgets;
|
||||
knownExtraMetaObject.unite(knownQObjectClasses);
|
||||
|
||||
|
@ -39,7 +39,7 @@ class Generator
|
||||
ClassDef *cdef;
|
||||
QVector<uint> meta_data;
|
||||
public:
|
||||
Generator(ClassDef *classDef, const QList<QByteArray> &metaTypes, const QHash<QByteArray, QByteArray> &knownQObjectClasses, const QHash<QByteArray, QByteArray> &knownGadgets, FILE *outfile = 0);
|
||||
Generator(ClassDef *classDef, const QVector<QByteArray> &metaTypes, const QHash<QByteArray, QByteArray> &knownQObjectClasses, const QHash<QByteArray, QByteArray> &knownGadgets, FILE *outfile = 0);
|
||||
void generateCode();
|
||||
private:
|
||||
bool registerableMetaType(const QByteArray &propertyType);
|
||||
@ -64,9 +64,9 @@ private:
|
||||
|
||||
void strreg(const QByteArray &); // registers a string
|
||||
int stridx(const QByteArray &); // returns a string's id
|
||||
QList<QByteArray> strings;
|
||||
QVector<QByteArray> strings;
|
||||
QByteArray purestSuperClass;
|
||||
QList<QByteArray> metaTypes;
|
||||
QVector<QByteArray> metaTypes;
|
||||
QHash<QByteArray, QByteArray> knownQObjectClasses;
|
||||
QHash<QByteArray, QByteArray> knownGadgets;
|
||||
};
|
||||
|
@ -65,7 +65,7 @@ struct EnumDef
|
||||
{
|
||||
QByteArray name;
|
||||
QByteArray enumName;
|
||||
QList<QByteArray> values;
|
||||
QVector<QByteArray> values;
|
||||
bool isEnumClass; // c++11 enum class
|
||||
EnumDef() : isEnumClass(false) {}
|
||||
};
|
||||
@ -207,10 +207,10 @@ public:
|
||||
bool noInclude;
|
||||
bool mustIncludeQPluginH;
|
||||
QByteArray includePath;
|
||||
QList<QByteArray> includeFiles;
|
||||
QVector<QByteArray> includeFiles;
|
||||
QVector<ClassDef> classList;
|
||||
QMap<QByteArray, QByteArray> interface2IdMap;
|
||||
QList<QByteArray> metaTypes;
|
||||
QVector<QByteArray> metaTypes;
|
||||
// map from class name to fully qualified name
|
||||
QHash<QByteArray, QByteArray> knownQObjectClasses;
|
||||
QHash<QByteArray, QByteArray> knownGadgets;
|
||||
|
@ -1816,8 +1816,12 @@ QModelIndex QTableView::moveCursor(CursorAction cursorAction, Qt::KeyboardModifi
|
||||
break;
|
||||
case MovePageUp: {
|
||||
int newRow = rowAt(visualRect(current).bottom() - d->viewport->height());
|
||||
if (newRow == -1)
|
||||
newRow = d->logicalRow(0);
|
||||
if (newRow == -1) {
|
||||
int visualRow = 0;
|
||||
while (visualRow < bottom && isRowHidden(d->logicalRow(visualRow)))
|
||||
++visualRow;
|
||||
newRow = d->logicalRow(visualRow);
|
||||
}
|
||||
return d->model->index(newRow, current.column(), d->root);
|
||||
}
|
||||
case MovePageDown: {
|
||||
|
@ -109,10 +109,11 @@ static int menuBarHeightForWidth(QWidget *menubar, int w)
|
||||
|
||||
/*!
|
||||
Constructs a new top-level QLayout, with parent \a parent.
|
||||
\a parent may not be 0.
|
||||
\a parent may not be a \c nullptr.
|
||||
|
||||
There can be only one top-level layout for a widget. It is
|
||||
returned by QWidget::layout().
|
||||
The layout is set directly as the top-level layout for
|
||||
\a parent. There can be only one top-level layout for a
|
||||
widget. It is returned by QWidget::layout().
|
||||
*/
|
||||
QLayout::QLayout(QWidget *parent)
|
||||
: QObject(*new QLayoutPrivate, parent)
|
||||
|
@ -546,23 +546,26 @@ void tst_QItemView::walkScreen(QAbstractItemView *view)
|
||||
}
|
||||
}
|
||||
|
||||
void walkIndex(QModelIndex index, QAbstractItemView *view)
|
||||
void walkIndex(const QModelIndex &index, const QAbstractItemView *view)
|
||||
{
|
||||
QRect visualRect = view->visualRect(index);
|
||||
//if (index.column() == 0)
|
||||
//qDebug() << index << visualRect;
|
||||
int width = visualRect.width();
|
||||
int height = visualRect.height();
|
||||
const QRect visualRect = view->visualRect(index);
|
||||
const int width = visualRect.width();
|
||||
const int height = visualRect.height();
|
||||
|
||||
for (int w = 0; w < width; ++w)
|
||||
if (width == 0 || height == 0)
|
||||
return;
|
||||
|
||||
const auto widths = (width < 2) ? QVector<int>({ 0, 1 }) : QVector<int>({ 0, 1, width / 2, width - 2, width - 1 });
|
||||
const auto heights = (height < 2) ? QVector<int>({ 0, 1 }) : QVector<int>({ 0, 1, height / 2, height - 2, height - 1 });
|
||||
for (int w : widths)
|
||||
{
|
||||
for (int h = 0; h < height; ++h)
|
||||
for (int h : heights)
|
||||
{
|
||||
QPoint point(visualRect.x()+w, visualRect.y()+h);
|
||||
if (view->indexAt(point) != index) {
|
||||
const QPoint point(visualRect.x() + w, visualRect.y() + h);
|
||||
const auto idxAt = view->indexAt(point);
|
||||
if (idxAt != index)
|
||||
qDebug() << "index" << index << "visualRect" << visualRect << point << view->indexAt(point);
|
||||
}
|
||||
QCOMPARE(view->indexAt(point), index);
|
||||
QCOMPARE(idxAt, index);
|
||||
}
|
||||
}
|
||||
|
||||
@ -579,7 +582,7 @@ void walkIndex(QModelIndex index, QAbstractItemView *view)
|
||||
a bug it will point it out, but the above tests should have already found the basic bugs
|
||||
because it is easier to figure out the problem in those tests then this one.
|
||||
*/
|
||||
void checkChildren(QAbstractItemView *currentView, const QModelIndex &parent = QModelIndex(), int currentDepth=0)
|
||||
void checkChildren(const QAbstractItemView *currentView, const QModelIndex &parent = QModelIndex(), int currentDepth = 0)
|
||||
{
|
||||
QAbstractItemModel *currentModel = currentView->model();
|
||||
|
||||
@ -623,7 +626,6 @@ void tst_QItemView::indexAt()
|
||||
view->setHorizontalScrollMode((QAbstractItemView::ScrollMode)hscroll);
|
||||
view->show();
|
||||
view->setModel(treeModel);
|
||||
#if 0
|
||||
checkChildren(view);
|
||||
|
||||
QModelIndex index = view->model()->index(0, 0);
|
||||
@ -636,7 +638,6 @@ void tst_QItemView::indexAt()
|
||||
QPoint p(1, view->height()/2);
|
||||
QModelIndex idx = view->indexAt(p);
|
||||
QCOMPARE(idx, QModelIndex());
|
||||
#endif
|
||||
}
|
||||
|
||||
void tst_QItemView::scrollTo_data()
|
||||
|
@ -1353,6 +1353,11 @@ void tst_QTableView::moveCursorBiggerJump()
|
||||
QCOMPARE(view.indexAt(QPoint(0,0)), model.index(7,0));
|
||||
QTest::keyClick(&view, Qt::Key_PageUp);
|
||||
QCOMPARE(view.indexAt(QPoint(0,0)), model.index(0,0));
|
||||
|
||||
QTest::keyClick(&view, Qt::Key_PageDown);
|
||||
view.verticalHeader()->hideSection(0);
|
||||
QTest::keyClick(&view, Qt::Key_PageUp);
|
||||
QTRY_COMPARE(view.currentIndex().row(), view.rowAt(0));
|
||||
}
|
||||
|
||||
void tst_QTableView::hideRows_data()
|
||||
|
Loading…
x
Reference in New Issue
Block a user