summaryrefslogtreecommitdiffstats
path: root/src/widgets/doc
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/doc')
-rw-r--r--src/widgets/doc/snippets/code/doc_src_layout.cpp53
-rw-r--r--src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp21
-rw-r--r--src/widgets/doc/snippets/code/src_gui_itemviews_qtreewidget.cpp2
-rw-r--r--src/widgets/doc/snippets/code/src_gui_kernel_qapplication.cpp7
-rw-r--r--src/widgets/doc/snippets/code/src_gui_kernel_qlayout.cpp5
-rw-r--r--src/widgets/doc/snippets/code/src_gui_kernel_qlayoutitem.cpp3
-rw-r--r--src/widgets/doc/snippets/code/src_gui_qproxystyle.cpp8
-rw-r--r--src/widgets/doc/snippets/code/src_gui_widgets_qmenubar.cpp2
-rw-r--r--src/widgets/doc/snippets/code/src_gui_widgets_qsplashscreen.cpp4
-rw-r--r--src/widgets/doc/snippets/javastyle.cpp2
-rw-r--r--src/widgets/doc/snippets/simplemodel-use/main.cpp7
-rw-r--r--src/widgets/doc/src/model-view-programming.qdoc13
-rw-r--r--src/widgets/doc/src/widgets-and-layouts/layout.qdoc2
-rw-r--r--src/widgets/doc/src/widgets-and-layouts/stylesheet.qdoc24
14 files changed, 92 insertions, 61 deletions
diff --git a/src/widgets/doc/snippets/code/doc_src_layout.cpp b/src/widgets/doc/snippets/code/doc_src_layout.cpp
index 5e9a740244..7bbd781bb2 100644
--- a/src/widgets/doc/snippets/code/doc_src_layout.cpp
+++ b/src/widgets/doc/snippets/code/doc_src_layout.cpp
@@ -53,14 +53,15 @@
#define CARD_H
#include <QtWidgets>
-#include <QList>
+#include <QVector>
class CardLayout : public QLayout
{
public:
- CardLayout(QWidget *parent, int dist): QLayout(parent, 0, dist) {}
- CardLayout(QLayout *parent, int dist): QLayout(parent, dist) {}
- CardLayout(int dist): QLayout(dist) {}
+ CardLayout(int spacing): QLayout()
+ { setSpacing(spacing); }
+ CardLayout(int spacing, QWidget *parent): QLayout(parent)
+ { setSpacing(spacing); }
~CardLayout();
void addItem(QLayoutItem *item) override;
@@ -72,7 +73,7 @@ public:
void setGeometry(const QRect &rect) override;
private:
- QList<QLayoutItem*> list;
+ QVector<QLayoutItem*> m_items;
};
#endif
//! [0]
@@ -85,23 +86,23 @@ private:
//! [2]
int CardLayout::count() const
{
- // QList::size() returns the number of QLayoutItems in the list
- return list.size();
+ // QVector::size() returns the number of QLayoutItems in m_items
+ return m_items.size();
}
//! [2]
//! [3]
QLayoutItem *CardLayout::itemAt(int idx) const
{
- // QList::value() performs index checking, and returns 0 if we are
+ // QVector::value() performs index checking, and returns nullptr if we are
// outside the valid range
- return list.value(idx);
+ return m_items.value(idx);
}
QLayoutItem *CardLayout::takeAt(int idx)
{
- // QList::take does not do index checking
- return idx >= 0 && idx < list.size() ? list.takeAt(idx) : 0;
+ // QVector::take does not do index checking
+ return idx >= 0 && idx < m_items.size() ? m_items.takeAt(idx) : 0;
}
//! [3]
@@ -109,7 +110,7 @@ QLayoutItem *CardLayout::takeAt(int idx)
//! [4]
void CardLayout::addItem(QLayoutItem *item)
{
- list.append(item);
+ m_items.append(item);
}
//! [4]
@@ -129,14 +130,14 @@ void CardLayout::setGeometry(const QRect &r)
{
QLayout::setGeometry(r);
- if (list.size() == 0)
+ if (m_items.size() == 0)
return;
- int w = r.width() - (list.count() - 1) * spacing();
- int h = r.height() - (list.count() - 1) * spacing();
+ int w = r.width() - (m_items.count() - 1) * spacing();
+ int h = r.height() - (m_items.count() - 1) * spacing();
int i = 0;
- while (i < list.size()) {
- QLayoutItem *o = list.at(i);
+ while (i < m_items.size()) {
+ QLayoutItem *o = m_items.at(i);
QRect geom(r.x() + i * spacing(), r.y() + i * spacing(), w, h);
o->setGeometry(geom);
++i;
@@ -148,29 +149,29 @@ void CardLayout::setGeometry(const QRect &r)
//! [7]
QSize CardLayout::sizeHint() const
{
- QSize s(0,0);
- int n = list.count();
+ QSize s(0, 0);
+ int n = m_items.count();
if (n > 0)
- s = QSize(100,70); //start with a nice default size
+ s = QSize(100, 70); //start with a nice default size
int i = 0;
while (i < n) {
- QLayoutItem *o = list.at(i);
+ QLayoutItem *o = m_items.at(i);
s = s.expandedTo(o->sizeHint());
++i;
}
- return s + n*QSize(spacing(), spacing());
+ return s + n * QSize(spacing(), spacing());
}
QSize CardLayout::minimumSize() const
{
- QSize s(0,0);
- int n = list.count();
+ QSize s(0, 0);
+ int n = m_items.count();
int i = 0;
while (i < n) {
- QLayoutItem *o = list.at(i);
+ QLayoutItem *o = m_items.at(i);
s = s.expandedTo(o->minimumSize());
++i;
}
- return s + n*QSize(spacing(), spacing());
+ return s + n * QSize(spacing(), spacing());
}
//! [7]
diff --git a/src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp b/src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp
index 7ccd827a04..ed6043564b 100644
--- a/src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp
+++ b/src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp
@@ -89,11 +89,10 @@ dialog.setNameFilter("*.cpp *.cc *.C *.cxx *.c++");
//! [7]
-QStringList filters;
-filters << "Image files (*.png *.xpm *.jpg)"
- << "Text files (*.txt)"
- << "Any files (*)";
-
+const QStringList filters({"Image files (*.png *.xpm *.jpg)",
+ "Text files (*.txt)",
+ "Any files (*)"
+ });
QFileDialog dialog(this);
dialog.setNameFilters(filters);
dialog.exec();
@@ -131,10 +130,10 @@ QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
//! [12]
//! [13]
-QStringList mimeTypeFilters;
-mimeTypeFilters << "image/jpeg" // will show "JPEG image (*.jpeg *.jpg *.jpe)
- << "image/png" // will show "PNG image (*.png)"
- << "application/octet-stream"; // will show "All files (*)"
+QStringList mimeTypeFilters({"image/jpeg", // will show "JPEG image (*.jpeg *.jpg *.jpe)
+ "image/png", // will show "PNG image (*.png)"
+ "application/octet-stream" // will show "All files (*)"
+ });
QFileDialog dialog(this);
dialog.setMimeTypeFilters(mimeTypeFilters);
@@ -146,13 +145,13 @@ dialog.exec();
//! [14]
//! [15]
-auto fileOpenCompleted = [](const QString &fileName, const QByteArray &fileContent) {
+auto fileContentReady = [](const QString &fileName, const QByteArray &fileContent) {
if (fileName.isEmpty()) {
// No file was selected
} else {
// Use fileName and fileContent
}
-}
+};
QFileDialog::getOpenFileContent("Images (*.png *.xpm *.jpg)", fileContentReady);
//! [15]
diff --git a/src/widgets/doc/snippets/code/src_gui_itemviews_qtreewidget.cpp b/src/widgets/doc/snippets/code/src_gui_itemviews_qtreewidget.cpp
index 792cc48ca7..f1e3b6ea45 100644
--- a/src/widgets/doc/snippets/code/src_gui_itemviews_qtreewidget.cpp
+++ b/src/widgets/doc/snippets/code/src_gui_itemviews_qtreewidget.cpp
@@ -53,6 +53,6 @@ QTreeWidget *treeWidget = new QTreeWidget();
treeWidget->setColumnCount(1);
QList<QTreeWidgetItem *> items;
for (int i = 0; i < 10; ++i)
- items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item: %1").arg(i))));
+ items.append(new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr), QStringList(QString("item: %1").arg(i))));
treeWidget->insertTopLevelItems(0, items);
//! [0]
diff --git a/src/widgets/doc/snippets/code/src_gui_kernel_qapplication.cpp b/src/widgets/doc/snippets/code/src_gui_kernel_qapplication.cpp
index 0a70c1d32a..5e1f0883e7 100644
--- a/src/widgets/doc/snippets/code/src_gui_kernel_qapplication.cpp
+++ b/src/widgets/doc/snippets/code/src_gui_kernel_qapplication.cpp
@@ -51,9 +51,10 @@
//! [0]
QCoreApplication* createApplication(int &argc, char *argv[])
{
- for (int i = 1; i < argc; ++i)
+ for (int i = 1; i < argc; ++i) {
if (!qstrcmp(argv[i], "-no-gui"))
return new QCoreApplication(argc, argv);
+ }
return new QApplication(argc, argv);
}
@@ -187,14 +188,14 @@ for (const QString &command : commands)
//! [12]
-QWidget *widget = qApp->widgetAt(x, y);
+QWidget *widget = QApplication::widgetAt(x, y);
if (widget)
widget = widget->window();
//! [12]
//! [13]
-QWidget *widget = qApp->widgetAt(point);
+QWidget *widget = QApplication::widgetAt(point);
if (widget)
widget = widget->window();
//! [13]
diff --git a/src/widgets/doc/snippets/code/src_gui_kernel_qlayout.cpp b/src/widgets/doc/snippets/code/src_gui_kernel_qlayout.cpp
index 1a716029a9..c55834ebfb 100644
--- a/src/widgets/doc/snippets/code/src_gui_kernel_qlayout.cpp
+++ b/src/widgets/doc/snippets/code/src_gui_kernel_qlayout.cpp
@@ -70,8 +70,9 @@ void MyWidget::paintEvent(QPaintEvent *)
//! [1]
QLayoutItem *child;
-while ((child = layout->takeAt(0)) != 0) {
+while ((child = layout->takeAt(0)) != nullptr) {
...
- delete child;
+ delete child->widget(); // delete the widget
+ delete child; // delete the layout item
}
//! [1]
diff --git a/src/widgets/doc/snippets/code/src_gui_kernel_qlayoutitem.cpp b/src/widgets/doc/snippets/code/src_gui_kernel_qlayoutitem.cpp
index d9f70b91ed..dd0f860c01 100644
--- a/src/widgets/doc/snippets/code/src_gui_kernel_qlayoutitem.cpp
+++ b/src/widgets/doc/snippets/code/src_gui_kernel_qlayoutitem.cpp
@@ -52,8 +52,7 @@
int MyLayout::heightForWidth(int w) const
{
if (cache_dirty || cached_width != w) {
- // not all C++ compilers support "mutable"
- MyLayout *that = (MyLayout*)this;
+ MyLayout *that = const_cast<MyLayout *>(this);
int h = calculateHeightForWidth(w);
that->cached_hfw = h;
return h;
diff --git a/src/widgets/doc/snippets/code/src_gui_qproxystyle.cpp b/src/widgets/doc/snippets/code/src_gui_qproxystyle.cpp
index 3169d1c193..98dc0ff55b 100644
--- a/src/widgets/doc/snippets/code/src_gui_qproxystyle.cpp
+++ b/src/widgets/doc/snippets/code/src_gui_qproxystyle.cpp
@@ -53,8 +53,8 @@ class MyProxyStyle : public QProxyStyle
{
public:
- int styleHint(StyleHint hint, const QStyleOption *option = 0,
- const QWidget *widget = 0, QStyleHintReturn *returnData = 0) const override
+ int styleHint(StyleHint hint, const QStyleOption *option = nullptr,
+ const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const override
{
if (hint == QStyle::SH_UnderlineShortcut)
return 1;
@@ -72,8 +72,8 @@ public:
class MyProxyStyle : public QProxyStyle
{
public:
- int styleHint(StyleHint hint, const QStyleOption *option = 0,
- const QWidget *widget = 0, QStyleHintReturn *returnData = 0) const override
+ int styleHint(StyleHint hint, const QStyleOption *option = nullptr,
+ const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const override
{
if (hint == QStyle::SH_UnderlineShortcut)
return 0;
diff --git a/src/widgets/doc/snippets/code/src_gui_widgets_qmenubar.cpp b/src/widgets/doc/snippets/code/src_gui_widgets_qmenubar.cpp
index b82c67b379..b52b0064ad 100644
--- a/src/widgets/doc/snippets/code/src_gui_widgets_qmenubar.cpp
+++ b/src/widgets/doc/snippets/code/src_gui_widgets_qmenubar.cpp
@@ -54,5 +54,5 @@ menubar->addMenu(fileMenu);
//! [1]
-QMenuBar *menuBar = new QMenuBar(0);
+QMenuBar *menuBar = new QMenuBar(nullptr);
//! [1]
diff --git a/src/widgets/doc/snippets/code/src_gui_widgets_qsplashscreen.cpp b/src/widgets/doc/snippets/code/src_gui_widgets_qsplashscreen.cpp
index b9c0b1a38b..91aa8a9c4e 100644
--- a/src/widgets/doc/snippets/code/src_gui_widgets_qsplashscreen.cpp
+++ b/src/widgets/doc/snippets/code/src_gui_widgets_qsplashscreen.cpp
@@ -56,10 +56,10 @@ splash->show();
... // Loading some items
splash->showMessage("Loaded modules");
-qApp->processEvents();
+QCoreApplication::processEvents();
... // Establishing connections
splash->showMessage("Established connections");
-qApp->processEvents();
+QCoreApplication::processEvents();
//! [0]
diff --git a/src/widgets/doc/snippets/javastyle.cpp b/src/widgets/doc/snippets/javastyle.cpp
index de3143f753..54a4ade921 100644
--- a/src/widgets/doc/snippets/javastyle.cpp
+++ b/src/widgets/doc/snippets/javastyle.cpp
@@ -2589,7 +2589,7 @@ int JavaStyle::styleHint(StyleHint hint, const QStyleOption *option,
switch (hint) {
case SH_Table_GridLineColor: {
- ret = static_cast<int>(option->palette.color(QPalette::Mid).rgb());
+ ret = static_cast<int>(option->palette.color(QPalette::Mid).rgba());
break;
}
case QStyle::SH_Menu_Scrollable:
diff --git a/src/widgets/doc/snippets/simplemodel-use/main.cpp b/src/widgets/doc/snippets/simplemodel-use/main.cpp
index 3e106c8eea..940669e101 100644
--- a/src/widgets/doc/snippets/simplemodel-use/main.cpp
+++ b/src/widgets/doc/snippets/simplemodel-use/main.cpp
@@ -79,8 +79,11 @@ int main(int argc, char *argv[])
//! [0]
QFileSystemModel *model = new QFileSystemModel;
- QModelIndex parentIndex = model->index(QDir::currentPath());
- int numRows = model->rowCount(parentIndex);
+ connect(model, &QFileSystemModel::directoryLoaded, [model](const QString &directory) {
+ QModelIndex parentIndex = model->index(directory);
+ int numRows = model->rowCount(parentIndex);
+ });
+ model->setRootPath(QDir::currentPath);
//! [0]
//! [1]
diff --git a/src/widgets/doc/src/model-view-programming.qdoc b/src/widgets/doc/src/model-view-programming.qdoc
index 236582ef3f..ede1ebf932 100644
--- a/src/widgets/doc/src/model-view-programming.qdoc
+++ b/src/widgets/doc/src/model-view-programming.qdoc
@@ -465,14 +465,19 @@
Although this does not show a normal way of using a model, it demonstrates
the conventions used by models when dealing with model indexes.
+ QFileSystemModel loading is asynchronous to minimize system resource use.
+ We have to take that into account when dealing with this model.
+
We construct a file system model in the following way:
\snippet simplemodel-use/main.cpp 0
- In this case, we set up a default QFileSystemModel, obtain a parent index
- using a specific implementation of \l{QFileSystemModel::}{index()}
- provided by that model, and we count the number of rows in the model using
- the \l{QFileSystemModel::}{rowCount()} function.
+ In this case, we start by setting up a default QFileSystemModel. We connect
+ it to a lambda, in which we will obtain a parent index using a specific
+ implementation of \l{QFileSystemModel::}{index()} provided by that model.
+ In the lambda, we count the number of rows in the model using the
+ \l{QFileSystemModel::}{rowCount()} function. Finally, we set the root path
+ of the QFileSystemModel so it starts loading data and triggers the lambda.
For simplicity, we are only interested in the items in the first column
of the model. We examine each row in turn, obtaining a model index for
diff --git a/src/widgets/doc/src/widgets-and-layouts/layout.qdoc b/src/widgets/doc/src/widgets-and-layouts/layout.qdoc
index 65569a9cd2..e42e6d42ec 100644
--- a/src/widgets/doc/src/widgets-and-layouts/layout.qdoc
+++ b/src/widgets/doc/src/widgets-and-layouts/layout.qdoc
@@ -300,7 +300,7 @@
\list
\li A data structure to store the items handled by the layout. Each
item is a \l{QLayoutItem}{QLayoutItem}. We will use a
- QList in this example.
+ QVector in this example.
\li \l{QLayout::}{addItem()}, how to add items to the layout.
\li \l{QLayout::}{setGeometry()}, how to perform the layout.
\li \l{QLayout::}{sizeHint()}, the preferred size of the layout.
diff --git a/src/widgets/doc/src/widgets-and-layouts/stylesheet.qdoc b/src/widgets/doc/src/widgets-and-layouts/stylesheet.qdoc
index 84233e4b62..35bad6786a 100644
--- a/src/widgets/doc/src/widgets-and-layouts/stylesheet.qdoc
+++ b/src/widgets/doc/src/widgets-and-layouts/stylesheet.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
@@ -59,6 +59,11 @@
\li \l{Qt Style Sheets Examples}
\endlist
+ \note If Qt Style Sheets are used on the same widget as functions that
+ set the appearance of widgets, such as \l QWidget::setFont() or
+ \l QTreeWidgetItem::setBackground(), style sheets will take precedence
+ if the settings conflict.
+
\target overview
\section1 Overview
@@ -988,6 +993,9 @@
\li Supports the \l{box model}. Supports the \l{#default-ps}{:default},
\l{#flat-ps}{:flat}, \l{#checked-ps}{:checked} pseudo states.
+ Since 5.15, the \l{#icon-prop}{icon} property can be set to
+ override the button icon.
+
For QPushButton with a menu, the menu indicator is styled
using the \l{#menu-indicator-sub}{::menu-indicator}
subcontrol. Appearance of checkable push buttons can be
@@ -1941,6 +1949,20 @@
See also \l{#width-prop}{width}.
\row
+ \li \b{\c icon} \target icon-prop
+ \li \l{#Url}{Url}+
+ \li The icon that is used, for widgets that have an icon.
+
+ The only widget currently supporting this property is QPushButton.
+
+ \note It's the application's responsibilty to assign an icon to a
+ button (using the QAbstractButton API), and not the style's. So be
+ careful setting it unless your stylesheet is targeting a specific
+ application.
+
+ Available since 5.15.
+
+ \row
\li \b{\c icon-size} \target icon-size-prop
\li \l{#Length}{Length}
\li The width and height of the icon in a widget.