summaryrefslogtreecommitdiffstats
path: root/examples/widgets/doc/src/coloreditorfactory.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/widgets/doc/src/coloreditorfactory.qdoc')
-rw-r--r--examples/widgets/doc/src/coloreditorfactory.qdoc155
1 files changed, 0 insertions, 155 deletions
diff --git a/examples/widgets/doc/src/coloreditorfactory.qdoc b/examples/widgets/doc/src/coloreditorfactory.qdoc
deleted file mode 100644
index 1471f75e78..0000000000
--- a/examples/widgets/doc/src/coloreditorfactory.qdoc
+++ /dev/null
@@ -1,155 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \example itemviews/coloreditorfactory
- \title Color Editor Factory Example
- \ingroup examples-itemviews
- \brief This example shows how to create an editor that can be used by
- a QItemDelegate.
-
- \image coloreditorfactoryimage.png
-
- When editing data in a QListView, QTableView, or QTreeView,
- editors are created and displayed by a \l{Delegate
- Classes}{delegate}. QItemDelegate, which is the default delegate
- used by Qt's \l{View Classes}{item views}, uses a
- QItemEditorFactory to create editors for it. A unique instance
- provided by QItemEditorFactory is by default installed on all
- item delegates.
-
- An item editor factory contains a collection of
- QItemEditorCreatorBase instances, which are specialized factories
- that produce editors for one particular QVariant data type (all
- models in Qt store their data in \l{QVariant}s). An editor can be any
- Qt or custom widget.
-
- In this example, we will create an editor (implemented in the \c
- ColorListEditor class) that can edit the QColor data type and be
- used by \l{QItemDelegate}s. We do this by creating a new
- QItemEditorCreatorBase that produces \c ColorListEditors and
- register it with a new factory, which we set as the default editor
- item factory (the unique factory instance). To test our editor, we
- have implemented the \c Window class, which displays a
- QTableWidget in which \l{QColor}s can be edited.
-
- \section1 Window Class Implementation
-
- In the Window class, we create the item editor creator
- base for our color editor and add it to the default factory.
- We also create a QTableWidget in which our editor can be
- tested. It is filled with some data and displayed in a window.
-
- We take a closer look at the constructor:
-
- \snippet itemviews/coloreditorfactory/window.cpp 0
-
- The QStandardItemEditorCreator is a convenience class that
- inherits QItemEditorCreatorBase. Its constructor takes a template
- class, of which instances are returned from
- \l{QItemEditorCreatorBase::}{createWidget()}. The creator uses a
- constructor that takes a QWidget as its only parameter; the
- template class must provide this. This way, there is no need to
- subclass QStandardItemEditorCreator.
-
- After the new factory has been set, all standard item delegates
- will use it (i.e, also delegates that were created before the new
- default factory was set).
-
- The \c createGUI() function sets up the table and fills it
- with data.
-
- \section1 ColorListEditor Definition
-
- The ColorListEditor inherits QComboBox and lets the user
- select a QColor from its popup list.
-
- \snippet itemviews/coloreditorfactory/colorlisteditor.h 0
-
- QItemDelegate manages the interaction between the editor and
- the model, i.e., it retrieves data to edit from the model and
- store data from the editor in the model. The data that is edited
- by an editor is stored in the editor's user data property, and the
- delegate uses Qt's \l{Qt's Property System}{property system} to
- access it by name. We declare our user data property with the
- Q_PROPERTY macro. The property is set to be the user type with the
- USER keyword.
-
- \section1 ColorListEditor Implementation
-
- The constructor of \c ColorListEditor simply calls \c
- populateList(), which we will look at later. We move on to the
- \c color() function:
-
- \snippet itemviews/coloreditorfactory/colorlisteditor.cpp 0
-
- We return the data that is selected in the combobox. The data
- is stored in the Qt::DecorationRole as the color is then also
- displayed in the popup list (as shown in the image above).
-
- \snippet itemviews/coloreditorfactory/colorlisteditor.cpp 1
-
- The \c findData() function searches the items in the combobox
- and returns the index of the item that has \c color in the
- Qt::Decoration role.
-
- \snippet itemviews/coloreditorfactory/colorlisteditor.cpp 2
-
- Qt knows some predefined colors by name. We simply loop
- through these to fill our editor with items.
-
- \section1 Further Customization of Item View Editors
-
- You can customize Qt's \l{Model/View Programming}{model view
- framework} in many ways. The procedure shown in this example is
- usually sufficient to provide custom editors. Further
- customization is achieved by subclassing QItemEditorFactory
- and QItemEditorCreatorBase. It is also possible to subclass
- QItemDelegate if you don't wish to use a factory at all.
-
- Possible suggestions are:
-
- \list
- \li If the editor widget has no user property defined, the delegate
- asks the factory for the property name, which it in turn
- asks the item editor creator for. In this case, you can use
- the QItemEditorCreator class, which takes the property
- name to use for editing as a constructor argument.
- \li If the editor requires other constructors or other
- initialization than provided by QItemEditorCreatorBase, you
- must reimplement
- QItemEditorCreatorBase::createWidget().
- \li You could also subclass QItemEditorFactory if you only want
- to provide editors for certain kinds of data or use another
- method of creating the editors than using creator bases.
- \endlist
-
- In this example, we use a standard QVariant data type. You can
- also use custom types. In the \l{Star Delegate Example}, we
- show how to store a custom data type in a QVariant and paint
- and edit it in a class that inherits QItemDelegate.
-*/