From 5648bbbcbca0e6bbd71dbd9c49ab9de260e1c3c6 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 12 Dec 2012 14:15:38 +0100 Subject: [PATCH] Doc: remove example docs that were moved to qttools Remove docs and images for Multiple Inheritance and Text Finder examples that were moved to qttools/uitools. Change-Id: I29e8f76b2512e329c354a6d3676c9b2e09e35726 Reviewed-by: Friedemann Kleint Reviewed-by: David Schulz (cherry picked from commit a0a4c06736a71fedb69f01c1c4c423173a2a665e) Reviewed-by: Sergio Ahumada --- doc/src/examples/multipleinheritance.qdoc | 94 ------------ .../snippets/code/doc_src_examples_textfinder.pro | 6 - examples/tools/doc/textfinder.qdoc | 159 --------------------- .../images/textfinder-example-userinterface.png | Bin 7900 -> 0 bytes 4 files changed, 259 deletions(-) delete mode 100644 doc/src/examples/multipleinheritance.qdoc delete mode 100644 doc/src/snippets/code/doc_src_examples_textfinder.pro delete mode 100644 examples/tools/doc/textfinder.qdoc delete mode 100644 examples/widgets/doc/images/textfinder-example-userinterface.png diff --git a/doc/src/examples/multipleinheritance.qdoc b/doc/src/examples/multipleinheritance.qdoc deleted file mode 100644 index 541dc3c..0000000 --- a/doc/src/examples/multipleinheritance.qdoc +++ /dev/null @@ -1,94 +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 uitools/multipleinheritance - \title Multiple Inheritance Example - - The Multiple Inheritance Example shows how to use a form created with - Qt Designer in an application by subclassing both QWidget and the user - interface class, which is \c{Ui::CalculatorForm}. - - \image multipleinheritance-example.png - - To subclass the \c calculatorform.ui file and ensure that \c qmake - processes it with the \c uic, we have to include \c calculatorform.ui - in the \c .pro file, as shown below: - - \snippet examples/uitools/multipleinheritance/multipleinheritance.pro 0 - - When the project is compiled, the \c uic will generate a corresponding - \c ui_calculatorform.h. - - \section1 CalculatorForm Definition - - In the \c CalculatorForm definition, we include the \c ui_calculatorform.h - that was generated earlier. - - \snippet examples/uitools/multipleinheritance/calculatorform.h 0 - - As mentioned earlier, the class is a subclass of both QWidget and - \c{Ui::CalculatorForm}. - - \snippet examples/uitools/multipleinheritance/calculatorform.h 1 - - Two slots are defined according to the \l{Automatic Connections} - {automatic connection} naming convention required by \c uic. This is - to ensure that \l{QMetaObject}'s auto-connection facilities connect - all the signals and slots involved automatically. - - \section1 CalculatorForm Implementation - - In the constructor, we call \c setupUi() to load the user interface file. - Note that we do not need the \c{ui} prefix as \c CalculatorForm is a - subclass of the user interface class. - - \snippet examples/uitools/multipleinheritance/calculatorform.cpp 0 - - We include two slots, \c{on_inputSpinBox1_valueChanged()} and - \c{on_inputSpinBox2_valueChanged()}. These slots respond to the - \l{QSpinBox::valueChanged()}{valueChanged()} signal that both spin boxes - emit. Whenever there is a change in one spin box's value, we take that - value and add it to whatever value the other spin box has. - - \snippet examples/uitools/multipleinheritance/calculatorform.cpp 1 - \codeline - \snippet examples/uitools/multipleinheritance/calculatorform.cpp 2 - - \section1 \c main() Function - - The \c main() function instantiates QApplication and \c CalculatorForm. - The \c calculator object is displayed by invoking the \l{QWidget::show()} - {show()} function. - - \snippet examples/uitools/multipleinheritance/main.cpp 0 - - There are various approaches to include forms into applications. The - Multiple Inheritance approach is just one of them. See - \l{Using a Designer UI File in Your Application} for more information on - the other approaches available. -*/ diff --git a/doc/src/snippets/code/doc_src_examples_textfinder.pro b/doc/src/snippets/code/doc_src_examples_textfinder.pro deleted file mode 100644 index 4446e8e..0000000 --- a/doc/src/snippets/code/doc_src_examples_textfinder.pro +++ /dev/null @@ -1,6 +0,0 @@ -#! [0] -QT += uitools -HEADERS = textfinder.h -RESOURCES = textfinder.qrc -SOURCES = textfinder.cpp main.cpp -#! [0] diff --git a/examples/tools/doc/textfinder.qdoc b/examples/tools/doc/textfinder.qdoc deleted file mode 100644 index f958cf8..0000000 --- a/examples/tools/doc/textfinder.qdoc +++ /dev/null @@ -1,159 +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 uitools/textfinder - \title Text Finder Example - - \brief The Text Finder example demonstrates how to dynamically process forms - using the QtUiTools module. Dynamic form processing enables a form to - be processed at run-time only by changing the UI file for the project. - The program allows the user to look up a particular word within the - contents of a text file. This text file is included in the project's - resource and is loaded into the display at startup. - - \table - \row \li \inlineimage textfinder-example-find.png - \li \inlineimage textfinder-example-find2.png - \endtable - - \section1 Setting Up The Resource File - - The resources required for Text Finder are: - \list - \li \e{textfinder.ui} - the user interface file created in QtDesigner - \li \e{input.txt} - a text file containing some text to be displayed - in the QTextEdit - \endlist - - \e{textfinder.ui} contains all the necessary QWidget objects for the - Text Finder. A QLineEdit is used for the user input, a QTextEdit is - used to display the contents of \e{input.txt}, a QLabel is used to - display the text "Keyword", and a QPushButton is used for the "Find" - button. The screenshot below shows the preview obtained in QtDesigner. - - \image textfinder-example-userinterface.png - - A \e{textfinder.qrc} file is used to store both the \e{textfinder.ui} - and \e{input.txt} in the application's executable. The file contains - the following code: - - \quotefile examples/uitools/textfinder/textfinder.qrc - - For more information on resource files, see \l{The Qt Resource System}. - - To generate a form at run-time, the example is linked against the - QtUiTools module library. This is done in the \c{textfinder.pro} file - that contains the following lines: - - \snippet doc/src/snippets/code/doc_src_examples_textfinder.pro 0 - - \section1 TextFinder Class Definition - - The \c TextFinder class is a subclass of QWidget and it hosts the - \l{QWidget}s we need to access in the user interface. The QLabel in the - user interface is not declared here as we do not need to access it. - - \snippet examples/uitools/textfinder/textfinder.h 0 - - The slot \c{on_findButton_clicked()} is a slot named according to the - \l{Using a Designer UI File in Your Application#Automatic Connections} - {Automatic Connection} naming convention required - by \c uic. - - \section1 TextFinder Class Implementation - - The \c TextFinder class's constructor calls the \c loadUiFile() function - and then uses \c qFindChild() to access the user interface's - \l{QWidget}s. - - \snippet examples/uitools/textfinder/textfinder.cpp 0 - - We then use QMetaObject's system to enable signal and slot connections. - - \snippet examples/uitools/textfinder/textfinder.cpp 2 - - The loadTextFile() function is called to load \c{input.txt} into - QTextEdit to displays its contents. - - \snippet examples/uitools/textfinder/textfinder.cpp 3a - - The \c{TextFinder}'s layout is set with \l{QWidget::}{setLayout()}. - - \snippet examples/uitools/textfinder/textfinder.cpp 3b - - Finally, the window title is set to \e {Text Finder} and \c isFirstTime is - set to true. - - \c isFirstTime is used as a flag to indicate whether the search operation - has been performed more than once. This is further explained with the - \c{on_findButton_clicked()} function. - - The \c{loadUiFile()} function is used to load the user interface file - previously created in QtDesigner. The QUiLoader class is instantiated - and its \c load() function is used to load the form into \c{formWidget} - that acts as a place holder for the user interface. The function then - returns \c{formWidget} to its caller. - - \snippet examples/uitools/textfinder/textfinder.cpp 4 - - As mentioned earlier, the loadTextFile() function loads \e{input.txt} - into QTextEdit to display its contents. Data is read using QTextStream - into a QString object, \c line with the QTextStream::readAll() function. - The contents of \c line are then appended to \c{ui_textEdit}. - - \snippet examples/uitools/textfinder/textfinder.cpp 5 - - The \c{on_findButton_clicked()} function is a slot that is connected to - \c{ui_findButton}'s \c clicked() signal. The \c searchString is extracted - from the \c ui_lineEdit and the \c document is extracted from \c textEdit. - In event there is an empty \c searchString, a QMessageBox is used, - requesting the user to enter a word. Otherwise, we traverse through the - words in \c ui_textEdit, and highlight all ocurrences of the - \c searchString . Two QTextCursor objects are used: One to traverse through - the words in \c line and another to keep track of the edit blocks. - - \snippet examples/uitools/textfinder/textfinder.cpp 7 - - The \c isFirstTime flag is set to false the moment \c findButton is - clicked. This is necessary to undo the previous text highlight before - highlighting the user's next search string. Also, the \c found flag - is used to indicate if the \c searchString was found within the contents - of \c ui_textEdit. If it was not found, a QMessageBox is used - to inform the user. - - \snippet examples/uitools/textfinder/textfinder.cpp 9 - - \section1 \c main() Function - - \snippet examples/uitools/textfinder/main.cpp 0 - - The \c main() function initialises the \e{textfinder.qrc} resource file - and instantiates as well as displays \c TextFinder. - - \sa {Calculator Builder Example}, {World Time Clock Builder Example} - */ diff --git a/examples/widgets/doc/images/textfinder-example-userinterface.png b/examples/widgets/doc/images/textfinder-example-userinterface.png deleted file mode 100644 index 2bebe2e9dd836164fc31a252c8bcc8705ae6505c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7900 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 -- 2.7.4