summaryrefslogtreecommitdiffstats
path: root/examples/tools/doc/completer.qdoc
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2012-11-27 14:18:41 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-11-28 00:56:34 +0100
commitcb961007c534b260b779ed513d33843a9dce01f4 (patch)
treed780db451451d51ab10aa114a6e01f813e32c852 /examples/tools/doc/completer.qdoc
parent3d66b86cb7407201f091d16130b3da73e613cc5f (diff)
Examples: move widgets specific "tools" examples to the correct place
examples/tools -> examples/widgets/tools Change-Id: I8b9e23c45e07ce5cd9da8f24a9a9f7ae10b2b107 Reviewed-by: hjk <qthjk@ovi.com>
Diffstat (limited to 'examples/tools/doc/completer.qdoc')
-rw-r--r--examples/tools/doc/completer.qdoc249
1 files changed, 0 insertions, 249 deletions
diff --git a/examples/tools/doc/completer.qdoc b/examples/tools/doc/completer.qdoc
deleted file mode 100644
index d8a82b6aee..0000000000
--- a/examples/tools/doc/completer.qdoc
+++ /dev/null
@@ -1,249 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** 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 Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/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: http://www.gnu.org/copyleft/fdl.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \example completer
- \title Completer Example
-
- The Completer example shows how to provide string-completion facilities
- for an input widget based on data provided by a model.
-
- \image completer-example.png
-
- This example uses a custom item model, \c FileSystemModel, and a QCompleter object.
- QCompleter is a class that provides completions based on an item model. The
- type of model, the completion mode, and the case sensitivity can be
- selected using combo boxes.
-
- \section1 The Resource File
-
- The Completer example requires a resource file in order to store the
- \e{countries.txt} and \e{words.txt}. The resource file contains the
- following code:
-
- \quotefile completer/completer.qrc
-
- \section1 FileSystemModel Class Definition
-
- The \c FileSystemModel class is a subclass of QFileSystemModel, which provides a data
- model for the local filesystem.
-
- \snippet completer/fsmodel.h 0
-
- This class only has a constructor and a \c data() function as it is only
- created to enable \c data() to return the entire file path for the
- display role, unlike \l{QFileSystemModel}'s \c data() function that only returns
- the folder and not the drive label. This is further explained in
- \c FileSystemModel's implementation.
-
- \section1 FileSystemModel Class Implementation
-
- The constructor for the \c FileSystemModel class is used to pass \a parent to
- QFileSystemModel.
-
- \snippet completer/fsmodel.cpp 0
-
- As mentioned earlier, the \c data() function is reimplemented in order to
- get it to return the entire file parth for the display role. For example,
- with a QFileSystemModel, you will see "Program Files" in the view. However, with
- \c FileSystemModel, you will see "C:\\Program Files".
-
- \snippet completer/fsmodel.cpp 1
-
- The screenshots below illustrate this difference:
-
- \table
- \row \li \inlineimage completer-example-qdirmodel.png
- \li \inlineimage completer-example-dirmodel.png
- \endtable
-
- The Qt::EditRole, which QCompleter uses to look for matches, is left
- unchanged.
-
- \section1 MainWindow Class Definition
-
- The \c MainWindow class is a subclass of QMainWindow and implements five
- private slots - \c about(), \c changeCase(), \c changeMode(), \c changeModel(),
- and \c changeMaxVisible().
-
- \snippet completer/mainwindow.h 0
-
- Within the \c MainWindow class, we have two private functions:
- \c createMenu() and \c modelFromFile(). We also declare the private widgets
- needed - three QComboBox objects, a QCheckBox, a QCompleter, a QLabel, and
- a QLineEdit.
-
- \snippet completer/mainwindow.h 1
-
- \section1 MainWindow Class Implementation
-
- The constructor of \c MainWindow constructs a \c MainWindow with a parent
- widget and initializes the private members. The \c createMenu() function
- is then invoked.
-
- We set up three QComboBox objects, \c modelComb, \c modeCombo and
- \c caseCombo. By default, the \c modelCombo is set to QFileSystemModel,
- the \c modeCombo is set to "Filtered Popup" and the \c caseCombo is set
- to "Case Insensitive".
-
- \snippet completer/mainwindow.cpp 0
-
- The \c maxVisibleSpinBox is created and determines the number of visible
- item in the completer
-
- The \c wrapCheckBox is then set up. This \c checkBox determines if the
- \c{completer}'s \l{QCompleter::setWrapAround()}{setWrapAround()} property
- is enabled or disabled.
-
- \snippet completer/mainwindow.cpp 1
-
- We instantiate \c contentsLabel and set its size policy to
- \l{QSizePolicy::Fixed}{fixed}. The combo boxes' \l{QComboBox::activated()}
- {activated()} signals are then connected to their respective slots.
-
- \snippet completer/mainwindow.cpp 2
-
- The \c lineEdit is set up and then we arrange all the widgets using a
- QGridLayout. The \c changeModel() function is called, to initialize the
- \c completer.
-
- \snippet completer/mainwindow.cpp 3
-
- The \c createMenu() function is used to instantiate the QAction objects
- needed to fill the \c fileMenu and \c helpMenu. The actions'
- \l{QAction::triggered()}{triggered()} signals are connected to their
- respective slots.
-
- \snippet completer/mainwindow.cpp 4
-
- The \c modelFromFile() function accepts the \a fileName of a file and
- processes it depending on its contents.
-
- We first validate the \c file to ensure that it can be opened in
- QFile::ReadOnly mode. If this is unsuccessful, the function returns an
- empty QStringListModel.
-
- \snippet completer/mainwindow.cpp 5
-
- The mouse cursor is then overridden with Qt::WaitCursor before we fill
- a QStringList object, \c words, with the contents of \c file. Once this
- is done, we restore the mouse cursor.
-
- \snippet completer/mainwindow.cpp 6
-
- As mentioned earlier, the resources file contains two files -
- \e{countries.txt} and \e{words.txt}. If the \c file read is \e{words.txt},
- we return a QStringListModel with \c words as its QStringList and
- \c completer as its parent.
-
- \snippet completer/mainwindow.cpp 7
-
- If the \c file read is \e{countries.txt}, then we require a
- QStandardItemModel with \c words.count() rows, 2 columns, and \c completer
- as its parent.
-
- \snippet completer/mainwindow.cpp 8
-
- A standard line in \e{countries.txt} is:
- \quotation
- Norway NO
- \endquotation
-
- Hence, to populate the QStandardItemModel object, \c m, we have to
- split the country name and its symbol. Once this is done, we return
- \c m.
-
- \snippet completer/mainwindow.cpp 9
-
- The \c changeMode() function sets the \c{completer}'s mode, depending on
- the value of \c index.
-
- \snippet completer/mainwindow.cpp 10
-
- The \c changeModel() function changes the item model used based on the
- model selected by the user.
-
- A \c switch statement is used to change the item model based on the index
- of \c modelCombo. If \c case is 0, we use an unsorted QFileSystemModel, providing
- us with a file path excluding the drive label.
-
- \snippet completer/mainwindow.cpp 11
-
- Note that we create the model with \c completer as the parent as this
- allows us to replace the model with a new model. The \c completer will
- ensure that the old one is deleted the moment a new model is assigned
- to it.
-
- If \c case is 1, we use the \c DirModel we defined earlier, resulting in
- full paths for the files.
-
- \snippet completer/mainwindow.cpp 12
-
- When \c case is 2, we attempt to complete names of countries. This requires
- a QTreeView object, \c treeView. The country names are extracted from
- \e{countries.txt} and set the popup used to display completions to
- \c treeView.
-
- \snippet completer/mainwindow.cpp 13
-
- The screenshot below shows the Completer with the country list model.
-
- \image completer-example-country.png
-
- If \c case is 3, we attempt to complete words. This is done using a
- QStringListModel that contains data extracted from \e{words.txt}. The
- model is sorted \l{QCompleter::CaseInsensitivelySortedModel}
- {case insensitively}.
-
- The screenshot below shows the Completer with the word list model.
-
- \image completer-example-word.png
-
- Once the model type is selected, we call the \c changeMode() function and
- the \c changeCase() function and set the wrap option accordingly. The
- \c{wrapCheckBox}'s \l{QCheckBox::clicked()}{clicked()} signal is connected
- to the \c{completer}'s \l{QCompleter::setWrapAround()}{setWrapAround()}
- slot.
-
- \snippet completer/mainwindow.cpp 14
-
- The \c changeMaxVisible() update the maximum number of visible items in
- the completer.
-
- \snippet completer/mainwindow.cpp 15
-
- The \c about() function provides a brief description about the example.
-
- \snippet completer/mainwindow.cpp 16
-
- \section1 \c main() Function
-
- The \c main() function instantiates QApplication and \c MainWindow and
- invokes the \l{QWidget::show()}{show()} function.
-
- \snippet completer/main.cpp 0
- */