summaryrefslogtreecommitdiffstats
path: root/examples/tools
diff options
context:
space:
mode:
Diffstat (limited to 'examples/tools')
-rw-r--r--examples/tools/codecs/codecs.desktop11
-rw-r--r--examples/tools/codecs/codecs.pro15
-rw-r--r--examples/tools/codecs/encodedfiles/iso-8859-1.txt6
-rw-r--r--examples/tools/codecs/encodedfiles/iso-8859-15.txt8
-rw-r--r--examples/tools/codecs/encodedfiles/utf-16.txtbin162 -> 0 bytes
-rw-r--r--examples/tools/codecs/encodedfiles/utf-16be.txtbin160 -> 0 bytes
-rw-r--r--examples/tools/codecs/encodedfiles/utf-16le.txtbin160 -> 0 bytes
-rw-r--r--examples/tools/codecs/encodedfiles/utf-8.txt6
-rw-r--r--examples/tools/codecs/main.cpp51
-rw-r--r--examples/tools/codecs/mainwindow.cpp202
-rw-r--r--examples/tools/codecs/mainwindow.h87
-rw-r--r--examples/tools/codecs/previewform.cpp101
-rw-r--r--examples/tools/codecs/previewform.h79
-rw-r--r--examples/tools/completer/completer.desktop11
-rw-r--r--examples/tools/completer/completer.pro16
-rw-r--r--examples/tools/completer/completer.qrc6
-rw-r--r--examples/tools/completer/fsmodel.cpp63
-rw-r--r--examples/tools/completer/fsmodel.h60
-rw-r--r--examples/tools/completer/main.cpp54
-rw-r--r--examples/tools/completer/mainwindow.cpp281
-rw-r--r--examples/tools/completer/mainwindow.h89
-rw-r--r--examples/tools/completer/resources/countries.txt241
-rw-r--r--examples/tools/completer/resources/wordlist.txt1485
-rw-r--r--examples/tools/contiguouscache/randomlistmodel.h3
-rw-r--r--examples/tools/customcompleter/customcompleter.desktop11
-rw-r--r--examples/tools/customcompleter/customcompleter.pro16
-rw-r--r--examples/tools/customcompleter/customcompleter.qrc5
-rw-r--r--examples/tools/customcompleter/main.cpp54
-rw-r--r--examples/tools/customcompleter/mainwindow.cpp117
-rw-r--r--examples/tools/customcompleter/mainwindow.h76
-rw-r--r--examples/tools/customcompleter/resources/wordlist.txt1454
-rw-r--r--examples/tools/customcompleter/textedit.cpp173
-rw-r--r--examples/tools/customcompleter/textedit.h78
-rw-r--r--examples/tools/customtypesending/window.h2
-rw-r--r--examples/tools/doc/completer-example-country.pngbin12387 -> 0 bytes
-rw-r--r--examples/tools/doc/completer-example-word.pngbin11702 -> 0 bytes
-rw-r--r--examples/tools/doc/completer-example.pngbin10486 -> 0 bytes
-rw-r--r--examples/tools/doc/completer.qdoc249
-rw-r--r--examples/tools/doc/echoplugin.qdoc208
-rw-r--r--examples/tools/doc/echopluginexample.pngbin5921 -> 0 bytes
-rw-r--r--examples/tools/doc/i18n.qdoc37
-rw-r--r--examples/tools/doc/plugandpaint-plugindialog.pngbin8706 -> 0 bytes
-rw-r--r--examples/tools/doc/plugandpaint.pngbin7540 -> 0 bytes
-rw-r--r--examples/tools/doc/plugandpaint.qdoc540
-rw-r--r--examples/tools/doc/regexp-example.pngbin16250 -> 0 bytes
-rw-r--r--examples/tools/doc/regexp.qdoc37
-rw-r--r--examples/tools/doc/settingseditor-example.pngbin19473 -> 0 bytes
-rw-r--r--examples/tools/doc/settingseditor.qdoc37
-rw-r--r--examples/tools/doc/styleplugin.qdoc137
-rw-r--r--examples/tools/doc/stylepluginexample.pngbin5259 -> 0 bytes
-rw-r--r--examples/tools/doc/textfinder-example-userinterface.pngbin7900 -> 0 bytes
-rw-r--r--examples/tools/doc/treemodelcompleter-example.pngbin25235 -> 0 bytes
-rw-r--r--examples/tools/doc/treemodelcompleter.qdoc171
-rw-r--r--examples/tools/doc/undo.qdoc43
-rw-r--r--examples/tools/doc/undodemo.pngbin84941 -> 0 bytes
-rw-r--r--examples/tools/doc/undoframework.qdoc291
-rw-r--r--examples/tools/doc/undoframeworkexample.pngbin18026 -> 0 bytes
-rw-r--r--examples/tools/echoplugin/echoplugin.pro13
-rw-r--r--examples/tools/echoplugin/echowindow/echointerface.h63
-rw-r--r--examples/tools/echoplugin/echowindow/echowindow.cpp118
-rw-r--r--examples/tools/echoplugin/echowindow/echowindow.desktop11
-rw-r--r--examples/tools/echoplugin/echowindow/echowindow.h79
-rw-r--r--examples/tools/echoplugin/echowindow/echowindow.pro23
-rw-r--r--examples/tools/echoplugin/echowindow/main.cpp56
-rw-r--r--examples/tools/echoplugin/plugin/echoplugin.cpp50
-rw-r--r--examples/tools/echoplugin/plugin/echoplugin.h60
-rw-r--r--examples/tools/echoplugin/plugin/echoplugin.json1
-rw-r--r--examples/tools/echoplugin/plugin/plugin.desktop11
-rw-r--r--examples/tools/echoplugin/plugin/plugin.pro18
-rw-r--r--examples/tools/i18n/i18n.desktop11
-rw-r--r--examples/tools/i18n/i18n.pro30
-rw-r--r--examples/tools/i18n/i18n.qrc18
-rw-r--r--examples/tools/i18n/languagechooser.cpp166
-rw-r--r--examples/tools/i18n/languagechooser.h85
-rw-r--r--examples/tools/i18n/main.cpp54
-rw-r--r--examples/tools/i18n/mainwindow.cpp95
-rw-r--r--examples/tools/i18n/mainwindow.h76
-rw-r--r--examples/tools/i18n/translations/i18n_ar.qmbin736 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_ar.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_cs.qmbin796 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_cs.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_de.qmbin848 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_de.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_el.qmbin804 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_el.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_en.qmbin810 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_en.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_eo.qmbin806 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_eo.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_fr.qmbin844 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_fr.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_it.qmbin808 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_it.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_jp.qmbin722 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_jp.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_ko.qmbin690 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_ko.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_no.qmbin804 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_no.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_ru.qmbin806 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_ru.ts59
-rw-r--r--examples/tools/i18n/translations/i18n_sv.qmbin814 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_sv.ts57
-rw-r--r--examples/tools/i18n/translations/i18n_zh.qmbin700 -> 0 bytes
-rw-r--r--examples/tools/i18n/translations/i18n_zh.ts57
-rw-r--r--examples/tools/plugandpaint/interfaces.h114
-rw-r--r--examples/tools/plugandpaint/main.cpp55
-rw-r--r--examples/tools/plugandpaint/mainwindow.cpp309
-rw-r--r--examples/tools/plugandpaint/mainwindow.h103
-rw-r--r--examples/tools/plugandpaint/paintarea.cpp195
-rw-r--r--examples/tools/plugandpaint/paintarea.h91
-rw-r--r--examples/tools/plugandpaint/plugandpaint.desktop11
-rw-r--r--examples/tools/plugandpaint/plugandpaint.pro25
-rw-r--r--examples/tools/plugandpaint/plugindialog.cpp156
-rw-r--r--examples/tools/plugandpaint/plugindialog.h76
-rw-r--r--examples/tools/plugandpaintplugins/basictools/basictools.json1
-rw-r--r--examples/tools/plugandpaintplugins/basictools/basictools.pro18
-rw-r--r--examples/tools/plugandpaintplugins/basictools/basictoolsplugin.cpp191
-rw-r--r--examples/tools/plugandpaintplugins/basictools/basictoolsplugin.h89
-rw-r--r--examples/tools/plugandpaintplugins/extrafilters/extrafilters.json1
-rw-r--r--examples/tools/plugandpaintplugins/extrafilters/extrafilters.pro19
-rw-r--r--examples/tools/plugandpaintplugins/extrafilters/extrafiltersplugin.cpp122
-rw-r--r--examples/tools/plugandpaintplugins/extrafilters/extrafiltersplugin.h65
-rw-r--r--examples/tools/plugandpaintplugins/plugandpaintplugins.pro11
-rw-r--r--examples/tools/regexp/main.cpp51
-rw-r--r--examples/tools/regexp/regexp.desktop11
-rw-r--r--examples/tools/regexp/regexp.pro13
-rw-r--r--examples/tools/regexp/regexpdialog.cpp188
-rw-r--r--examples/tools/regexp/regexpdialog.h85
-rw-r--r--examples/tools/settingseditor/inifiles/licensepage.ini46
-rw-r--r--examples/tools/settingseditor/inifiles/qsa.ini26
-rw-r--r--examples/tools/settingseditor/locationdialog.cpp216
-rw-r--r--examples/tools/settingseditor/locationdialog.h84
-rw-r--r--examples/tools/settingseditor/main.cpp51
-rw-r--r--examples/tools/settingseditor/mainwindow.cpp222
-rw-r--r--examples/tools/settingseditor/mainwindow.h91
-rw-r--r--examples/tools/settingseditor/settingseditor.desktop11
-rw-r--r--examples/tools/settingseditor/settingseditor.pro19
-rw-r--r--examples/tools/settingseditor/settingstree.cpp262
-rw-r--r--examples/tools/settingseditor/settingstree.h90
-rw-r--r--examples/tools/settingseditor/variantdelegate.cpp316
-rw-r--r--examples/tools/settingseditor/variantdelegate.h81
-rw-r--r--examples/tools/styleplugin/plugin/plugin.pro25
-rw-r--r--examples/tools/styleplugin/plugin/simplestyle.cpp48
-rw-r--r--examples/tools/styleplugin/plugin/simplestyle.h60
-rw-r--r--examples/tools/styleplugin/plugin/simplestyle.json3
-rw-r--r--examples/tools/styleplugin/plugin/simplestyleplugin.cpp60
-rw-r--r--examples/tools/styleplugin/plugin/simplestyleplugin.h65
-rw-r--r--examples/tools/styleplugin/styleplugin.pro11
-rw-r--r--examples/tools/styleplugin/stylewindow/main.cpp57
-rw-r--r--examples/tools/styleplugin/stylewindow/stylewindow.cpp60
-rw-r--r--examples/tools/styleplugin/stylewindow/stylewindow.h54
-rw-r--r--examples/tools/styleplugin/stylewindow/stylewindow.pro19
-rw-r--r--examples/tools/tools.pro19
-rw-r--r--examples/tools/treemodelcompleter/main.cpp54
-rw-r--r--examples/tools/treemodelcompleter/mainwindow.cpp246
-rw-r--r--examples/tools/treemodelcompleter/mainwindow.h88
-rw-r--r--examples/tools/treemodelcompleter/resources/treemodel.txt20
-rw-r--r--examples/tools/treemodelcompleter/treemodelcompleter.cpp97
-rw-r--r--examples/tools/treemodelcompleter/treemodelcompleter.desktop11
-rw-r--r--examples/tools/treemodelcompleter/treemodelcompleter.h70
-rw-r--r--examples/tools/treemodelcompleter/treemodelcompleter.pro16
-rw-r--r--examples/tools/treemodelcompleter/treemodelcompleter.qrc5
-rw-r--r--examples/tools/undo/commands.cpp180
-rw-r--r--examples/tools/undo/commands.h112
-rw-r--r--examples/tools/undo/document.cpp445
-rw-r--r--examples/tools/undo/document.h125
-rw-r--r--examples/tools/undo/icons/background.pngbin93 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/blue.pngbin1659 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/circle.pngbin1359 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/exit.pngbin1731 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/fileclose.pngbin1121 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/filenew.pngbin1266 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/fileopen.pngbin1771 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/filesave.pngbin1022 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/green.pngbin1766 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/ok.pngbin979 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/rectangle.pngbin690 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/red.pngbin1653 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/redo.pngbin985 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/remove.pngbin1833 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/triangle.pngbin850 -> 0 bytes
-rw-r--r--examples/tools/undo/icons/undo.pngbin962 -> 0 bytes
-rw-r--r--examples/tools/undo/main.cpp56
-rw-r--r--examples/tools/undo/mainwindow.cpp446
-rw-r--r--examples/tools/undo/mainwindow.h87
-rw-r--r--examples/tools/undo/mainwindow.ui322
-rw-r--r--examples/tools/undo/undo.pro18
-rw-r--r--examples/tools/undo/undo.qrc20
-rw-r--r--examples/tools/undoframework/commands.cpp168
-rw-r--r--examples/tools/undoframework/commands.h104
-rw-r--r--examples/tools/undoframework/diagramitem.cpp64
-rw-r--r--examples/tools/undoframework/diagramitem.h71
-rw-r--r--examples/tools/undoframework/diagramscene.cpp76
-rw-r--r--examples/tools/undoframework/diagramscene.h74
-rw-r--r--examples/tools/undoframework/images/cross.pngbin114 -> 0 bytes
-rw-r--r--examples/tools/undoframework/main.cpp57
-rw-r--r--examples/tools/undoframework/mainwindow.cpp206
-rw-r--r--examples/tools/undoframework/mainwindow.h99
-rw-r--r--examples/tools/undoframework/undoframework.desktop11
-rw-r--r--examples/tools/undoframework/undoframework.pro20
-rw-r--r--examples/tools/undoframework/undoframework.qrc6
202 files changed, 6 insertions, 15813 deletions
diff --git a/examples/tools/codecs/codecs.desktop b/examples/tools/codecs/codecs.desktop
deleted file mode 100644
index bba62207f8..0000000000
--- a/examples/tools/codecs/codecs.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Codecs
-Exec=/opt/usr/bin/codecs
-Icon=codecs
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/tools/codecs/codecs.pro b/examples/tools/codecs/codecs.pro
deleted file mode 100644
index 377dfaa8c9..0000000000
--- a/examples/tools/codecs/codecs.pro
+++ /dev/null
@@ -1,15 +0,0 @@
-HEADERS += mainwindow.h \
- previewform.h
-SOURCES += main.cpp \
- mainwindow.cpp \
- previewform.cpp
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/codecs
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS encodedfiles codecs.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/codecs
-INSTALLS += target sources
-
-QT += widgets
-
-simulator: warning(This example might not fully work on Simulator platform)
diff --git a/examples/tools/codecs/encodedfiles/iso-8859-1.txt b/examples/tools/codecs/encodedfiles/iso-8859-1.txt
deleted file mode 100644
index d7fcacae66..0000000000
--- a/examples/tools/codecs/encodedfiles/iso-8859-1.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Paulo Coelho: O Gênio e as Rosas
-Anna Hallström, Urban Östberg: Svår svenska
-Darrell Huff: How to Lie with Statistics
-Franz Kafka: Das Schloß
-Walter Moers: Die 13½ Leben des Käpt'n Blaubär
-Dag Solstad: Forsøk på å beskrive det ugjennomtrengelige
diff --git a/examples/tools/codecs/encodedfiles/iso-8859-15.txt b/examples/tools/codecs/encodedfiles/iso-8859-15.txt
deleted file mode 100644
index be2d83c98d..0000000000
--- a/examples/tools/codecs/encodedfiles/iso-8859-15.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Paulo Coelho: O Gênio e as Rosas
-Jean-Pierre Coffe: À table en famille avec 15 ¤ par jour
-Anna Hallström, Urban Östberg: Svår svenska
-Darrell Huff: How to Lie with Statistics
-Franz Kafka: Das Schloß
-Helena Lehecková: T¨ekkiä suomalaisille
-Arthur Rimbaud: ¼uvres complètes
-Dag Solstad: Forsøk på å beskrive det ugjennomtrengelige
diff --git a/examples/tools/codecs/encodedfiles/utf-16.txt b/examples/tools/codecs/encodedfiles/utf-16.txt
deleted file mode 100644
index 371f06f7fa..0000000000
--- a/examples/tools/codecs/encodedfiles/utf-16.txt
+++ /dev/null
Binary files differ
diff --git a/examples/tools/codecs/encodedfiles/utf-16be.txt b/examples/tools/codecs/encodedfiles/utf-16be.txt
deleted file mode 100644
index d8ae6428bc..0000000000
--- a/examples/tools/codecs/encodedfiles/utf-16be.txt
+++ /dev/null
Binary files differ
diff --git a/examples/tools/codecs/encodedfiles/utf-16le.txt b/examples/tools/codecs/encodedfiles/utf-16le.txt
deleted file mode 100644
index 3779264c7c..0000000000
--- a/examples/tools/codecs/encodedfiles/utf-16le.txt
+++ /dev/null
Binary files differ
diff --git a/examples/tools/codecs/encodedfiles/utf-8.txt b/examples/tools/codecs/encodedfiles/utf-8.txt
deleted file mode 100644
index a5e4ae6fa7..0000000000
--- a/examples/tools/codecs/encodedfiles/utf-8.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Språk: Norsk
-Γλώσσα: Ελληνικά
-Язык: РуÑÑкий
-언어 : 한국어
-言語: 日本語
-Langage : Français
diff --git a/examples/tools/codecs/main.cpp b/examples/tools/codecs/main.cpp
deleted file mode 100644
index f03543e449..0000000000
--- a/examples/tools/codecs/main.cpp
+++ /dev/null
@@ -1,51 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-
-#include "mainwindow.h"
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
- MainWindow mainWin;
- mainWin.show();
- return app.exec();
-}
diff --git a/examples/tools/codecs/mainwindow.cpp b/examples/tools/codecs/mainwindow.cpp
deleted file mode 100644
index 4009e30720..0000000000
--- a/examples/tools/codecs/mainwindow.cpp
+++ /dev/null
@@ -1,202 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "mainwindow.h"
-#include "previewform.h"
-
-MainWindow::MainWindow()
-{
- textEdit = new QTextEdit;
- textEdit->setLineWrapMode(QTextEdit::NoWrap);
- setCentralWidget(textEdit);
-
- findCodecs();
-
- previewForm = new PreviewForm(this);
- previewForm->setCodecList(codecs);
-
- createActions();
- createMenus();
-
- setWindowTitle(tr("Codecs"));
- resize(500, 400);
-}
-
-void MainWindow::open()
-{
- QString fileName = QFileDialog::getOpenFileName(this);
- if (!fileName.isEmpty()) {
- QFile file(fileName);
- if (!file.open(QFile::ReadOnly)) {
- QMessageBox::warning(this, tr("Codecs"),
- tr("Cannot read file %1:\n%2")
- .arg(fileName)
- .arg(file.errorString()));
- return;
- }
-
- QByteArray data = file.readAll();
-
- previewForm->setEncodedData(data);
- if (previewForm->exec())
- textEdit->setPlainText(previewForm->decodedString());
- }
-}
-
-void MainWindow::save()
-{
- QString fileName = QFileDialog::getSaveFileName(this);
- if (!fileName.isEmpty()) {
- QFile file(fileName);
- if (!file.open(QFile::WriteOnly | QFile::Text)) {
- QMessageBox::warning(this, tr("Codecs"),
- tr("Cannot write file %1:\n%2")
- .arg(fileName)
- .arg(file.errorString()));
- return;
- }
-
- QAction *action = qobject_cast<QAction *>(sender());
- QByteArray codecName = action->data().toByteArray();
-
- QTextStream out(&file);
- out.setCodec(codecName.constData());
- out << textEdit->toPlainText();
- }
-}
-
-void MainWindow::about()
-{
- QMessageBox::about(this, tr("About Codecs"),
- tr("The <b>Codecs</b> example demonstrates how to read and write "
- "files using various encodings."));
-}
-
-void MainWindow::aboutToShowSaveAsMenu()
-{
- QString currentText = textEdit->toPlainText();
-
- foreach (QAction *action, saveAsActs) {
- QByteArray codecName = action->data().toByteArray();
- QTextCodec *codec = QTextCodec::codecForName(codecName);
- action->setVisible(codec && codec->canEncode(currentText));
- }
-}
-
-void MainWindow::findCodecs()
-{
- QMap<QString, QTextCodec *> codecMap;
- QRegExp iso8859RegExp("ISO[- ]8859-([0-9]+).*");
-
- foreach (int mib, QTextCodec::availableMibs()) {
- QTextCodec *codec = QTextCodec::codecForMib(mib);
-
- QString sortKey = codec->name().toUpper();
- int rank;
-
- if (sortKey.startsWith("UTF-8")) {
- rank = 1;
- } else if (sortKey.startsWith("UTF-16")) {
- rank = 2;
- } else if (iso8859RegExp.exactMatch(sortKey)) {
- if (iso8859RegExp.cap(1).size() == 1)
- rank = 3;
- else
- rank = 4;
- } else {
- rank = 5;
- }
- sortKey.prepend(QChar('0' + rank));
-
- codecMap.insert(sortKey, codec);
- }
- codecs = codecMap.values();
-}
-
-void MainWindow::createActions()
-{
- openAct = new QAction(tr("&Open..."), this);
- openAct->setShortcuts(QKeySequence::Open);
- connect(openAct, SIGNAL(triggered()), this, SLOT(open()));
-
- foreach (QTextCodec *codec, codecs) {
- QString text = tr("%1...").arg(QString(codec->name()));
-
- QAction *action = new QAction(text, this);
- action->setData(codec->name());
- connect(action, SIGNAL(triggered()), this, SLOT(save()));
- saveAsActs.append(action);
- }
-
- exitAct = new QAction(tr("E&xit"), this);
- exitAct->setShortcuts(QKeySequence::Quit);
- connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));
-
- aboutAct = new QAction(tr("&About"), this);
- connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
-
- aboutQtAct = new QAction(tr("About &Qt"), this);
- connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
-}
-
-void MainWindow::createMenus()
-{
- saveAsMenu = new QMenu(tr("&Save As"), this);
- foreach (QAction *action, saveAsActs)
- saveAsMenu->addAction(action);
- connect(saveAsMenu, SIGNAL(aboutToShow()),
- this, SLOT(aboutToShowSaveAsMenu()));
-
- fileMenu = new QMenu(tr("&File"), this);
- fileMenu->addAction(openAct);
- fileMenu->addMenu(saveAsMenu);
- fileMenu->addSeparator();
- fileMenu->addAction(exitAct);
-
- helpMenu = new QMenu(tr("&Help"), this);
- helpMenu->addAction(aboutAct);
- helpMenu->addAction(aboutQtAct);
-
- menuBar()->addMenu(fileMenu);
- menuBar()->addSeparator();
- menuBar()->addMenu(helpMenu);
-}
diff --git a/examples/tools/codecs/mainwindow.h b/examples/tools/codecs/mainwindow.h
deleted file mode 100644
index 1e04c3bf65..0000000000
--- a/examples/tools/codecs/mainwindow.h
+++ /dev/null
@@ -1,87 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QList>
-#include <QMainWindow>
-
-QT_BEGIN_NAMESPACE
-class QAction;
-class QMenu;
-class QTextCodec;
-class QTextEdit;
-QT_END_NAMESPACE
-class PreviewForm;
-
-class MainWindow : public QMainWindow
-{
- Q_OBJECT
-
-public:
- MainWindow();
-
-private slots:
- void open();
- void save();
- void about();
- void aboutToShowSaveAsMenu();
-
-private:
- void findCodecs();
- void createActions();
- void createMenus();
-
- QTextEdit *textEdit;
- PreviewForm *previewForm;
- QList<QTextCodec *> codecs;
-
- QMenu *fileMenu;
- QMenu *helpMenu;
- QMenu *saveAsMenu;
- QAction *openAct;
- QList<QAction *> saveAsActs;
- QAction *exitAct;
- QAction *aboutAct;
- QAction *aboutQtAct;
-};
-
-#endif
diff --git a/examples/tools/codecs/previewform.cpp b/examples/tools/codecs/previewform.cpp
deleted file mode 100644
index dc518555d2..0000000000
--- a/examples/tools/codecs/previewform.cpp
+++ /dev/null
@@ -1,101 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "previewform.h"
-
-PreviewForm::PreviewForm(QWidget *parent)
- : QDialog(parent)
-{
- encodingComboBox = new QComboBox;
-
- encodingLabel = new QLabel(tr("&Encoding:"));
- encodingLabel->setBuddy(encodingComboBox);
-
- textEdit = new QTextEdit;
- textEdit->setLineWrapMode(QTextEdit::NoWrap);
- textEdit->setReadOnly(true);
-
- buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
- | QDialogButtonBox::Cancel);
-
- connect(encodingComboBox, SIGNAL(activated(int)),
- this, SLOT(updateTextEdit()));
- connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
- connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
-
- QGridLayout *mainLayout = new QGridLayout;
- mainLayout->addWidget(encodingLabel, 0, 0);
- mainLayout->addWidget(encodingComboBox, 0, 1);
- mainLayout->addWidget(textEdit, 1, 0, 1, 2);
- mainLayout->addWidget(buttonBox, 2, 0, 1, 2);
- setLayout(mainLayout);
-
- setWindowTitle(tr("Choose Encoding"));
- resize(400, 300);
-}
-
-void PreviewForm::setCodecList(const QList<QTextCodec *> &list)
-{
- encodingComboBox->clear();
- foreach (QTextCodec *codec, list)
- encodingComboBox->addItem(codec->name(), codec->mibEnum());
-}
-
-void PreviewForm::setEncodedData(const QByteArray &data)
-{
- encodedData = data;
- updateTextEdit();
-}
-
-void PreviewForm::updateTextEdit()
-{
- int mib = encodingComboBox->itemData(
- encodingComboBox->currentIndex()).toInt();
- QTextCodec *codec = QTextCodec::codecForMib(mib);
-
- QTextStream in(&encodedData);
- in.setAutoDetectUnicode(false);
- in.setCodec(codec);
- decodedStr = in.readAll();
-
- textEdit->setPlainText(decodedStr);
-}
diff --git a/examples/tools/codecs/previewform.h b/examples/tools/codecs/previewform.h
deleted file mode 100644
index d8e2838e8e..0000000000
--- a/examples/tools/codecs/previewform.h
+++ /dev/null
@@ -1,79 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef PREVIEWFORM_H
-#define PREVIEWFORM_H
-
-#include <QDialog>
-#include <QList>
-
-QT_BEGIN_NAMESPACE
-class QComboBox;
-class QDialogButtonBox;
-class QLabel;
-class QTextCodec;
-class QTextEdit;
-QT_END_NAMESPACE
-
-class PreviewForm : public QDialog
-{
- Q_OBJECT
-
-public:
- PreviewForm(QWidget *parent = 0);
-
- void setCodecList(const QList<QTextCodec *> &list);
- void setEncodedData(const QByteArray &data);
- QString decodedString() const { return decodedStr; }
-
-private slots:
- void updateTextEdit();
-
-private:
- QByteArray encodedData;
- QString decodedStr;
-
- QComboBox *encodingComboBox;
- QLabel *encodingLabel;
- QTextEdit *textEdit;
- QDialogButtonBox *buttonBox;
-};
-
-#endif
diff --git a/examples/tools/completer/completer.desktop b/examples/tools/completer/completer.desktop
deleted file mode 100644
index f7e2d155d8..0000000000
--- a/examples/tools/completer/completer.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Completer
-Exec=/opt/usr/bin/completer
-Icon=completer
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/tools/completer/completer.pro b/examples/tools/completer/completer.pro
deleted file mode 100644
index a735b7ceae..0000000000
--- a/examples/tools/completer/completer.pro
+++ /dev/null
@@ -1,16 +0,0 @@
-HEADERS = fsmodel.h \
- mainwindow.h
-SOURCES = fsmodel.cpp \
- main.cpp \
- mainwindow.cpp
-RESOURCES = completer.qrc
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/completer
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS completer.pro resources
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/completer
-INSTALLS += target sources
-
-QT += widgets
-
-simulator: warning(This example might not fully work on Simulator platform)
diff --git a/examples/tools/completer/completer.qrc b/examples/tools/completer/completer.qrc
deleted file mode 100644
index 4f57e1a824..0000000000
--- a/examples/tools/completer/completer.qrc
+++ /dev/null
@@ -1,6 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource prefix="/">
- <file>resources/countries.txt</file>
- <file>resources/wordlist.txt</file>
-</qresource>
-</RCC>
diff --git a/examples/tools/completer/fsmodel.cpp b/examples/tools/completer/fsmodel.cpp
deleted file mode 100644
index 5967f3d3a7..0000000000
--- a/examples/tools/completer/fsmodel.cpp
+++ /dev/null
@@ -1,63 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "fsmodel.h"
-
-//! [0]
-FileSystemModel::FileSystemModel(QObject *parent)
- : QFileSystemModel(parent)
-{
-}
-//! [0]
-
-//! [1]
-QVariant FileSystemModel::data(const QModelIndex &index, int role) const
-{
- if (role == Qt::DisplayRole && index.column() == 0) {
- QString path = QDir::toNativeSeparators(filePath(index));
- if (path.endsWith(QDir::separator()))
- path.chop(1);
- return path;
- }
-
- return QFileSystemModel::data(index, role);
-}
-
-//! [1]
diff --git a/examples/tools/completer/fsmodel.h b/examples/tools/completer/fsmodel.h
deleted file mode 100644
index 8b7b8eb6bc..0000000000
--- a/examples/tools/completer/fsmodel.h
+++ /dev/null
@@ -1,60 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef FILESYSTEMMODEL_H
-#define FILESYSTEMMODEL_H
-
-#include <QFileSystemModel>
-
-// With a QFileSystemModel, set on a view, you will see "Program Files" in the view
-// But with this model, you will see "C:\Program Files" in the view.
-// We acheive this, by having the data() return the entire file path for
-// the display role. Note that the Qt::EditRole over which the QCompleter
-// looks for matches is left unchanged
-//! [0]
-class FileSystemModel : public QFileSystemModel
-{
-public:
- FileSystemModel(QObject *parent = 0);
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
-};
-//! [0]
-
-#endif
diff --git a/examples/tools/completer/main.cpp b/examples/tools/completer/main.cpp
deleted file mode 100644
index 3f80523eb7..0000000000
--- a/examples/tools/completer/main.cpp
+++ /dev/null
@@ -1,54 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include "mainwindow.h"
-
-//! [0]
-int main(int argc, char *argv[])
-{
- Q_INIT_RESOURCE(completer);
-
- QApplication app(argc, argv);
- MainWindow window;
- window.show();
- return app.exec();
-}
-//! [0]
diff --git a/examples/tools/completer/mainwindow.cpp b/examples/tools/completer/mainwindow.cpp
deleted file mode 100644
index 97b5b1b88f..0000000000
--- a/examples/tools/completer/mainwindow.cpp
+++ /dev/null
@@ -1,281 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-#include "fsmodel.h"
-#include "mainwindow.h"
-
-//! [0]
-MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent), completer(0), lineEdit(0)
-{
- createMenu();
-
- QWidget *centralWidget = new QWidget;
-
- QLabel *modelLabel = new QLabel;
- modelLabel->setText(tr("Model"));
-
- modelCombo = new QComboBox;
- modelCombo->addItem(tr("QFileSytemModel"));
- modelCombo->addItem(tr("QFileSytemModel that shows full path"));
- modelCombo->addItem(tr("Country list"));
- modelCombo->addItem(tr("Word list"));
- modelCombo->setCurrentIndex(0);
-
- QLabel *modeLabel = new QLabel;
- modeLabel->setText(tr("Completion Mode"));
- modeCombo = new QComboBox;
- modeCombo->addItem(tr("Inline"));
- modeCombo->addItem(tr("Filtered Popup"));
- modeCombo->addItem(tr("Unfiltered Popup"));
- modeCombo->setCurrentIndex(1);
-
- QLabel *caseLabel = new QLabel;
- caseLabel->setText(tr("Case Sensitivity"));
- caseCombo = new QComboBox;
- caseCombo->addItem(tr("Case Insensitive"));
- caseCombo->addItem(tr("Case Sensitive"));
- caseCombo->setCurrentIndex(0);
-//! [0]
-
-//! [1]
- QLabel *maxVisibleLabel = new QLabel;
- maxVisibleLabel->setText(tr("Max Visible Items"));
- maxVisibleSpinBox = new QSpinBox;
- maxVisibleSpinBox->setRange(3,25);
- maxVisibleSpinBox->setValue(10);
-
- wrapCheckBox = new QCheckBox;
- wrapCheckBox->setText(tr("Wrap around completions"));
- wrapCheckBox->setChecked(true);
-//! [1]
-
-//! [2]
- contentsLabel = new QLabel;
- contentsLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
-
- connect(modelCombo, SIGNAL(activated(int)), this, SLOT(changeModel()));
- connect(modeCombo, SIGNAL(activated(int)), this, SLOT(changeMode(int)));
- connect(caseCombo, SIGNAL(activated(int)), this, SLOT(changeCase(int)));
- connect(maxVisibleSpinBox, SIGNAL(valueChanged(int)), this, SLOT(changeMaxVisible(int)));
-//! [2]
-
-//! [3]
- lineEdit = new QLineEdit;
-
- QGridLayout *layout = new QGridLayout;
- layout->addWidget(modelLabel, 0, 0); layout->addWidget(modelCombo, 0, 1);
- layout->addWidget(modeLabel, 1, 0); layout->addWidget(modeCombo, 1, 1);
- layout->addWidget(caseLabel, 2, 0); layout->addWidget(caseCombo, 2, 1);
- layout->addWidget(maxVisibleLabel, 3, 0); layout->addWidget(maxVisibleSpinBox, 3, 1);
- layout->addWidget(wrapCheckBox, 4, 0);
- layout->addWidget(contentsLabel, 5, 0, 1, 2);
- layout->addWidget(lineEdit, 6, 0, 1, 2);
- centralWidget->setLayout(layout);
- setCentralWidget(centralWidget);
-
- changeModel();
-
- setWindowTitle(tr("Completer"));
- lineEdit->setFocus();
-}
-//! [3]
-
-//! [4]
-void MainWindow::createMenu()
-{
- QAction *exitAction = new QAction(tr("Exit"), this);
- QAction *aboutAct = new QAction(tr("About"), this);
- QAction *aboutQtAct = new QAction(tr("About Qt"), this);
-
- connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
- connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
- connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
-
- QMenu* fileMenu = menuBar()->addMenu(tr("File"));
- fileMenu->addAction(exitAction);
-
- QMenu* helpMenu = menuBar()->addMenu(tr("About"));
- helpMenu->addAction(aboutAct);
- helpMenu->addAction(aboutQtAct);
-}
-//! [4]
-
-//! [5]
-QAbstractItemModel *MainWindow::modelFromFile(const QString& fileName)
-{
- QFile file(fileName);
- if (!file.open(QFile::ReadOnly))
- return new QStringListModel(completer);
-//! [5]
-
-//! [6]
-#ifndef QT_NO_CURSOR
- QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
-#endif
- QStringList words;
-
- while (!file.atEnd()) {
- QByteArray line = file.readLine();
- if (!line.isEmpty())
- words << line.trimmed();
- }
-
-#ifndef QT_NO_CURSOR
- QApplication::restoreOverrideCursor();
-#endif
-//! [6]
-
-//! [7]
- if (!fileName.contains(QLatin1String("countries.txt")))
- return new QStringListModel(words, completer);
-//! [7]
-
- // The last two chars of the countries.txt file indicate the country
- // symbol. We put that in column 2 of a standard item model
-//! [8]
- QStandardItemModel *m = new QStandardItemModel(words.count(), 2, completer);
-//! [8] //! [9]
- for (int i = 0; i < words.count(); ++i) {
- QModelIndex countryIdx = m->index(i, 0);
- QModelIndex symbolIdx = m->index(i, 1);
- QString country = words[i].mid(0, words[i].length() - 2).trimmed();
- QString symbol = words[i].right(2);
- m->setData(countryIdx, country);
- m->setData(symbolIdx, symbol);
- }
-
- return m;
-}
-//! [9]
-
-//! [10]
-void MainWindow::changeMode(int index)
-{
- QCompleter::CompletionMode mode;
- if (index == 0)
- mode = QCompleter::InlineCompletion;
- else if (index == 1)
- mode = QCompleter::PopupCompletion;
- else
- mode = QCompleter::UnfilteredPopupCompletion;
-
- completer->setCompletionMode(mode);
-}
-//! [10]
-
-void MainWindow::changeCase(int cs)
-{
- completer->setCaseSensitivity(cs ? Qt::CaseSensitive : Qt::CaseInsensitive);
-}
-
-//! [11]
-void MainWindow::changeModel()
-{
- delete completer;
- completer = new QCompleter(this);
- completer->setMaxVisibleItems(maxVisibleSpinBox->value());
-
- switch (modelCombo->currentIndex()) {
- default:
- case 0:
- { // Unsorted QFileSystemModel
- QFileSystemModel *fsModel = new QFileSystemModel(completer);
- fsModel->setRootPath("");
- completer->setModel(fsModel);
- contentsLabel->setText(tr("Enter file path"));
- }
- break;
-//! [11] //! [12]
- case 1:
- { // FileSystemModel that shows full paths
- FileSystemModel *fsModel = new FileSystemModel(completer);
- completer->setModel(fsModel);
- fsModel->setRootPath("");
- contentsLabel->setText(tr("Enter file path"));
- }
- break;
-//! [12] //! [13]
- case 2:
- { // Country List
- completer->setModel(modelFromFile(":/resources/countries.txt"));
- QTreeView *treeView = new QTreeView;
- completer->setPopup(treeView);
- treeView->setRootIsDecorated(false);
- treeView->header()->hide();
- treeView->header()->setStretchLastSection(false);
- treeView->header()->setSectionResizeMode(0, QHeaderView::Stretch);
- treeView->header()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
- contentsLabel->setText(tr("Enter name of your country"));
- }
- break;
-//! [13] //! [14]
- case 3:
- { // Word list
- completer->setModel(modelFromFile(":/resources/wordlist.txt"));
- completer->setModelSorting(QCompleter::CaseInsensitivelySortedModel);
- contentsLabel->setText(tr("Enter a word"));
- }
- break;
- }
-
- changeMode(modeCombo->currentIndex());
- changeCase(caseCombo->currentIndex());
- completer->setWrapAround(wrapCheckBox->isChecked());
- lineEdit->setCompleter(completer);
- connect(wrapCheckBox, SIGNAL(clicked(bool)), completer, SLOT(setWrapAround(bool)));
-}
-//! [14]
-
-//! [15]
-void MainWindow::changeMaxVisible(int max)
-{
- completer->setMaxVisibleItems(max);
-}
-//! [15]
-
-//! [16]
-void MainWindow::about()
-{
- QMessageBox::about(this, tr("About"), tr("This example demonstrates the "
- "different features of the QCompleter class."));
-}
-//! [16]
diff --git a/examples/tools/completer/mainwindow.h b/examples/tools/completer/mainwindow.h
deleted file mode 100644
index b3c57f1a51..0000000000
--- a/examples/tools/completer/mainwindow.h
+++ /dev/null
@@ -1,89 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-
-QT_BEGIN_NAMESPACE
-class QAbstractItemModel;
-class QComboBox;
-class QCompleter;
-class QLabel;
-class QLineEdit;
-class QProgressBar;
-class QCheckBox;
-class QSpinBox;
-QT_END_NAMESPACE
-
-//! [0]
-class MainWindow : public QMainWindow
-{
- Q_OBJECT
-
-public:
- MainWindow(QWidget *parent = 0);
-
-private slots:
- void about();
- void changeCase(int);
- void changeMode(int);
- void changeModel();
- void changeMaxVisible(int);
-//! [0]
-
-//! [1]
-private:
- void createMenu();
- QAbstractItemModel *modelFromFile(const QString& fileName);
-
- QComboBox *caseCombo;
- QComboBox *modeCombo;
- QComboBox *modelCombo;
- QSpinBox *maxVisibleSpinBox;
- QCheckBox *wrapCheckBox;
- QCompleter *completer;
- QLabel *contentsLabel;
- QLineEdit *lineEdit;
-};
-//! [1]
-
-#endif // MAINWINDOW_H
diff --git a/examples/tools/completer/resources/countries.txt b/examples/tools/completer/resources/countries.txt
deleted file mode 100644
index 5854fbc977..0000000000
--- a/examples/tools/completer/resources/countries.txt
+++ /dev/null
@@ -1,241 +0,0 @@
-Afghanistan AF
-Albania AL
-Algeria DZ
-American Samoa AS
-Andorra AD
-Angola AO
-Anguilla AI
-Antarctica AQ
-Antigua And Barbuda AG
-Argentina AR
-Armenia AM
-Aruba AW
-Australia AU
-Austria AT
-Azerbaijan AZ
-Bahamas BS
-Bahrain BH
-Bangladesh BD
-Barbados BB
-Belarus BY
-Belgium BE
-Belize BZ
-Benin BJ
-Bermuda BM
-Bhutan BT
-Bolivia BO
-Bosnia And Herzegowina BA
-Botswana BW
-Bouvet Island BV
-Brazil BR
-British Indian Ocean Territory IO
-British Virgin Islands VG
-Brunei Darussalam BN
-Bulgaria BG
-Burkina Faso BF
-Burundi BI
-Cambodia KH
-Cameroon CM
-Canada CA
-Cape Verde CV
-Cayman Islands KY
-Central African Republic CF
-Chad TD
-Chile CL
-China CN
-Christmas Island CX
-Cocos Islands CC
-Colombia CO
-Comoros KM
-Cook Islands CK
-Costa Rica CR
-Croatia HR
-Cuba CU
-Cyprus CY
-Czech Republic CZ
-Democratic Republic Of Congo CD
-Democratic Republic Of Korea KP
-Denmark DK
-Djibouti DJ
-Dominica DM
-Dominican Republic DO
-EastTimor TL
-Ecuador EC
-Egypt EG
-El Salvador SV
-Equatorial Guinea GQ
-Eritrea ER
-Estonia EE
-Ethiopia ET
-Falkland Islands FK
-Faroe Islands FO
-Fiji FJ
-Finland FI
-France FR
-French Guiana GF
-French Polynesia PF
-French Southern Territories TF
-Gabon GA
-Gambia GM
-Georgia GE
-Germany DE
-Ghana GH
-Gibraltar GI
-Greece GR
-Greenland GL
-Grenada GD
-Guadeloupe GP
-Guam GU
-Guatemala GT
-Guinea GN
-Guinea Bissau GW
-Guyana GY
-Haiti HT
-Heard And McDonald Islands HM
-Honduras HN
-Hong Kong HK
-Hungary HU
-Iceland IS
-India IN
-Indonesia ID
-Iran IR
-Iraq IQ
-Ireland IE
-Israel IL
-Italy IT
-Ivory Coast CI
-Jamaica JM
-Japan JP
-Jordan JO
-Kazakhstan KZ
-Kenya KE
-Kiribati KI
-Kuwait KW
-Kyrgyzstan KG
-Lao LA
-Latvia LV
-Lebanon LB
-Lesotho LS
-Liberia LR
-Libyan Arab Jamahiriya LY
-Liechtenstein LI
-Lithuania LT
-Luxembourg LU
-Macau MO
-Macedonia MK
-Madagascar MG
-Malawi MW
-Malaysia MY
-Maldives MV
-Mali ML
-Malta MT
-Marshall Islands MH
-Martinique MQ
-Mauritania MR
-Mauritius MU
-Mayotte YT
-Metropolitan France FX
-Mexico MX
-Micronesia FM
-Moldova MD
-Monaco MC
-Mongolia MN
-Montserrat MS
-Morocco MA
-Mozambique MZ
-Myanmar MM
-Namibia NA
-Nauru NR
-Nepal NP
-Netherlands NL
-Netherlands Antilles AN
-New Caledonia NC
-New Zealand NZ
-Nicaragua NI
-Niger NE
-Nigeria NG
-Niue NU
-Norfolk Island NF
-Northern Mariana Islands MP
-Norway NO
-Oman OM
-Pakistan PK
-Palau PW
-Palestinian Territory PS
-Panama PA
-Papua New Guinea PG
-Paraguay PY
-Peoples Republic Of Congo CG
-Peru PE
-Philippines PH
-Pitcairn PN
-Poland PL
-Portugal PT
-Puerto Rico PR
-Qatar QA
-Republic Of Korea KR
-Reunion RE
-Romania RO
-Russian Federation RU
-Rwanda RW
-Saint Kitts And Nevis KN
-Samoa WS
-San Marino SM
-Sao Tome And Principe ST
-Saudi Arabia SA
-Senegal SN
-Serbia And Montenegro CS
-Seychelles SC
-Sierra Leone SL
-Singapore SG
-Slovakia SK
-Slovenia SI
-Solomon Islands SB
-Somalia SO
-South Africa ZA
-South Georgia And The South Sandwich Islands GS
-Spain ES
-Sri Lanka LK
-St Helena SH
-St Lucia LC
-St Pierre And Miquelon PM
-St Vincent And The Grenadines VC
-Sudan SD
-Suriname SR
-Svalbard And Jan Mayen Islands SJ
-Swaziland SZ
-Sweden SE
-Switzerland CH
-Syrian Arab Republic SY
-Taiwan TW
-Tajikistan TJ
-Tanzania TZ
-Thailand TH
-Togo TG
-Tokelau TK
-Tonga TO
-Trinidad And Tobago TT
-Tunisia TN
-Turkey TR
-Turkmenistan TM
-Turks And Caicos Islands TC
-Tuvalu TV
-US Virgin Islands VI
-Uganda UG
-Ukraine UA
-United Arab Emirates AE
-United Kingdom GB
-United States US
-United States Minor Outlying Islands UM
-Uruguay UY
-Uzbekistan UZ
-Vanuatu VU
-Vatican City State VA
-Venezuela VE
-Viet Nam VN
-Wallis And Futuna Islands WF
-Western Sahara EH
-Yemen YE
-Yugoslavia YU
-Zambia ZM
-Zimbabwe ZW
diff --git a/examples/tools/completer/resources/wordlist.txt b/examples/tools/completer/resources/wordlist.txt
deleted file mode 100644
index 1f56e36d47..0000000000
--- a/examples/tools/completer/resources/wordlist.txt
+++ /dev/null
@@ -1,1485 +0,0 @@
-A4
-able
-about
-above
-absence
-absolutely
-abstract
-access
-according
-accumulated
-achieve
-achieving
-activity
-acts
-actual
-actually
-add
-added
-adding
-addition
-additionally
-additions
-addresses
-adjust
-adjustments
-advanced
-advice
-after
-afterwards
-again
-agenda
-aim
-algorithm
-all
-allocated
-allow
-allowed
-allowing
-allows
-along
-alpha
-already
-also
-alternative
-alternatively
-although
-American
-an
-and
-announced
-annoy
-another
-answer
-answers
-any
-anything
-anyway
-apart
-API
-appear
-appears
-appendices
-appendix
-appends
-application
-applications
-apply
-approach
-approaches
-appropriate
-Arabic
-arbitrary
-are
-areas
-ARGB
-argument
-arguments
-around
-arrangements
-arrive
-arrived
-Arthur
-article
-articles
-as
-asked
-aspects
-assume
-at
-attachment
-attempt
-attempting
-attend
-attendees
-attributes
-authors
-auto-detect
-auto-detecting
-availability
-available
-avoid
-away
-back
-background
-backgrounds
-bandwidth
-bandwidths
-Barcelona
-base
-based
-basic
-basically
-basics
-be
-because
-been
-before
-behave
-behavior
-behind
-being
-below
-benefits
-Berkeley
-between
-bit
-bits
-bitwise
-black
-blended
-blending
-blends
-block
-blue
-BMP
-body
-bold
-booking
-bool
-Boston
-both
-bottom
-box
-boxes
-braces
-break
-breaks
-broad
-browsers
-buffer
-buffers
-build
-builds
-built
-bundled
-burdens
-busy
-but
-by
-bypass
-bypassing
-bytes
-calendar
-call
-called
-calling
-calls
-Cambridge
-can
-canonical
-canonicalised
-cap
-capabilities
-capacity
-caption
-card
-care
-case
-cast
-catch
-causing
-centre
-certain
-challenges
-chance
-change
-changes
-changing
-channel
-channels
-chapter
-char
-chart
-charts
-check
-checks
-Chicago
-chit-chat
-chosen
-chunk
-circle
-citation
-city
-claim
-class
-classes
-clause
-clauses
-clear
-clearing
-client
-clients
-close
-closed
-co-author
-code
-colon
-color
-color-coded
-colorize
-colorizer
-colors
-colour
-column
-columns
-combine
-combined
-combines
-combining
-comes
-command
-commands
-comment
-common
-communicate
-community
-compiled
-complement
-complete
-completely
-completeness
-completes
-completion
-complex
-compliant
-component
-components
-compositing
-composition
-compression
-computation
-computer
-concepts
-conclusion
-concurrent
-configurable
-congested
-congestion
-connect
-connected
-connection
-connections
-cons
-consider
-consisting
-consists
-construct
-constructed
-constructing
-constructor
-constructs
-consume
-contact
-contain
-containing
-contains
-contents
-contents
-continue
-continued
-contributors
-control
-controlled
-controller
-controller
-controlling
-controls
-controls
-conventions
-cook
-cooperation
-copy
-copyright
-core
-cores
-corollary
-correct
-correctly
-corresponding
-could
-couple
-coworkers
-CPU
-create
-creates
-creating
-cross-platform
-crucial
-cultures
-current
-currently
-custom
-customized
-cut
-data
-database
-datasets
-datum
-day
-days
-deal
-dealing
-decide
-decouple
-decoupled
-deeply
-def
-default
-define
-defines
-definition
-definitions
-delegate
-delete
-demo
-demonstrate
-demonstrations
-deployed
-describe
-describes
-design
-desktop
-desktops
-destination
-destinations
-destructor
-details
-detect
-determine
-determines
-developer
-developers
-development
-developments
-device
-devices
-diagram
-dialogs
-dictionary
-did
-difference
-differences
-different
-differs
-digital
-direct
-direct
-directions
-directly
-directory
-discuss
-display
-displaying
-displays
-distribute
-distribution
-disturbing
-divide
-do
-documentation
-documents
-does
-done
-down
-downLimit
-download
-downloaded
-downloading
-draw
-drawing
-drawn
-drop
-drop-in
-Duff
-during
-DVD
-dynamic
-dynamically
-dynamics
-each
-earlier
-easily
-editing
-editors
-education
-effect
-effectively
-effects
-either
-ellipse
-ellipses
-elliptical
-else
-email
-e-mail
-embedded
-emit
-emits
-empty
-enable
-enables
-encapsulates
-enclose
-end
-endnote
-endnotes
-end-user
-engineer
-engineering
-English
-enjoys
-enough
-ensure
-ensures
-entails
-enter
-entire
-entitled
-entries
-entry
-environment
-erases
-error
-errors
-especially
-established
-etc.
-Europe
-even
-evenly
-event
-events
-eventually
-every
-everyone
-example
-examples
-except
-exception
-excessive
-exclusive
-existing
-exists
-expand
-expected
-expense
-export
-exposes
-extend
-extended
-extending
-extensible
-extension
-external
-extra
-extract
-faces
-facilities
-factory
-fade
-failure
-fairness
-falls
-false
-family
-fashion
-fast
-faster
-features
-February
-feedback
-feel
-fetch
-fetching
-few
-fields
-figure
-figures
-file
-file name
-files
-filled
-filler
-final
-finally
-find
-fine
-finish
-finished
-first
-flow
-fly
-focus
-followed
-following
-font
-foot
-footnote
-footnotes
-for
-form
-format
-formats
-format-specific
-forms
-formula
-formulas
-forum
-found
-framework
-France
-from
-front
-full
-fully
-function
-functionality
-function-based
-functions
-future
-gain
-games
-gap
-general
-generic
-Germany
-get
-gill
-give
-given
-gives
-giving
-global
-go
-goes
-got
-gradient
-gradient-filled
-graph
-graphical
-graphics
-gray
-great
-greatly
-green
-grey
-group
-growing
-gui
-GUI
-hack
-had
-half
-Hamburg
-hand
-handing
-handle
-handler
-handlers
-handles
-handling
-happens
-hardware
-harmonica
-has
-have
-having
-he
-head
-header
-headers
-hear
-height
-help
-helper
-here
-high
-high-complexity
-high-level
-highlight
-highly
-hints
-his
-hold
-holder
-holding
-hole
-home
-horizontal
-host
-hosting
-hours
-Houston
-how
-however
-huge
-hyphen
-ID
-idea
-ideally
-if
-Illinois
-illustrate
-illustrated
-illustrates
-image
-images
-impact
-implement
-implementation
-implementations
-implemented
-implementing
-implements
-import
-important
-improvements
-in
-include
-included
-includes
-including
-inclusion
-incoming
-inconvenient
-indent
-index
-indicate
-inexpensively
-influence
-info
-information
-ingenious
-inherits
-initial
-initially
-inner
-input
-inspired
-install
-installs
-instance
-instead
-instructs
-integer
-integers
-integration
-intended
-intensive
-interest
-interests
-interface
-interfaces
-interfere
-internal
-interval
-into
-intriguing
-intro
-introduce
-introduced
-invalid
-invented
-inverse
-invocation
-involved
-Irish
-irregular
-is
-ISO
-ISPs
-issue
-issues
-it
-items
-iterate
-its
-itself
-job
-join
-JPEG
-jungle
-just
-Karaoke
-keep
-keeping
-key
-kind
-king
-known
-label
-labels
-landscape
-language
-large
-last
-later
-latest
-lawn
-layout
-lead
-leader
-leaders
-lean
-leaves
-leaving
-left
-lemma
-length
-less
-let
-level
-levels
-libraries
-library
-lies
-like
-likely
-limit
-limiting
-limits
-line
-linear
-lines
-linewidth
-link
-linked
-linking
-Linux
-list
-lists
-little
-lives
-load
-loading
-loads
-located
-location
-locations
-logo
-long
-longer
-look
-looked
-looking
-looks
-lookup
-lookups
-loop
-lout
-low
-lower-case
-low-level
-macro
-made
-magazine
-magic
-main
-major
-make
-makes
-making
-manage
-managed
-managing
-mandatory
-manipulate
-manipulation
-manner
-many
-map
-maps
-March
-margin
-mask
-masking
-Massachusetts
-match
-mathematical
-maximum
-may
-means
-meet
-member
-members
-memory
-merged
-method
-might
-milliseconds
-minimize
-minimum
-minor
-mix
-MNG
-mode
-model
-models
-modes
-modified
-module
-moments
-monitored
-monthly
-more
-most
-mostly
-move
-much
-multitude
-Munich
-must
-name
-named
-names
-necessary
-need
-needed
-needs
-network
-new
-news
-newsletter
-next
-nicely
-no
-none
-non-Qt
-non-trivial
-non-zero
-normally
-Norway
-not
-note
-notes
-nothing
-notifies
-notify
-now
-null
-number
-numbered
-numbering
-numbers
-Nydalen
-object
-objects
-obtain
-obtaining
-odd
-of
-off
-office
-offset
-offsets
-often
-old
-on
-once
-one
-ones
-online
-only
-on-screen
-onto
-opacity
-opaque
-open
-opens
-operates
-operating
-operation
-operations
-operator
-opportunity
-opposed
-optimize
-option
-optionally
-options
-or
-OR
-order
-ordinary
-original
-originally
-Oslo
-other
-otherwise
-our
-out
-outer
-outgoing
-output
-outside
-over
-overcoming
-overrides
-overview
-own
-owner
-owners
-pace
-Pacific
-package
-packages
-packets
-page
-pages
-paint
-painted
-painting
-paragraph
-paragraphs
-parameters
-parent
-Paris
-parse
-part
-partial
-partially
-particular
-partners
-parts
-party
-passed
-passing
-patches
-path
-pattern
-patterns
-pause
-PDF
-peek
-pending
-perform
-performed
-performs
-permission
-permutations
-personal
-pick
-pie
-pipe
-pixel
-pixels
-place
-places
-planning
-platform-independent
-platforms
-play
-players
-playing
-please
-pleasing
-plugin
-plugin-enabled
-plugins
-plus
-PNG
-pointer
-pop
-popular
-populates
-porter
-Porter
-portrait
-possibility
-possible
-potential
-potentially
-power
-powers
-preceded
-presence
-present
-prevent
-prevents
-previous
-previously
-primarily
-primary
-primitives
-printed
-printing
-prior
-probably
-problem
-process
-processes
-processing
-produce
-produced
-produces
-products
-programming
-programs
-project
-projects
-proof
-proper
-properly
-properties
-property
-proposed
-proposition
-pros
-protocols
-proud
-provide
-provided
-provides
-provision
-proxy
-public
-published
-punch
-punches
-pursuing
-put
-Qt
-Qtopia
-Qt-related
-quality
-quarter
-quarterly
-queried
-queries
-query
-question
-questions
-radial
-ragged
-range
-rate
-rate-controlled
-rates
-rather
-ratio
-raw
-read
-reader
-reading
-reads
-ready
-real
-realistic
-really
-real-time
-received
-recent
-recognized
-recommended
-recompile
-rectangle
-rectangular
-red
-redistribute
-reducing
-reference
-references
-reflect
-regardless
-regional
-register
-registered
-registration
-reimplement
-reimplementation
-reimplemented
-release
-released
-releases
-reliable
-rely
-remains
-remember
-removed
-removes
-repeatedly
-replace
-report
-represent
-represented
-represents
-reproduced
-requested
-require
-required
-requires
-resetting
-resides
-resolve
-respective
-respectively
-response
-rest
-restart
-result
-resulting
-resume
-return
-returning
-returns
-reuse
-revealing
-rich
-riches
-right
-roadshow
-role
-Roman
-round-trip
-router
-routers
-rule
-run
-runner
-runners
-running
-runs
-run-time
-sake
-sales
-salespeople
-same
-sample
-San Jose
-save
-saved
-saves
-say
-scalable
-scale
-scanline
-scanline-level
-scene
-scenes
-schedule
-school
-script
-seam
-seamless
-search
-searches
-searching
-second
-seconds
-section
-sections
-security
-see
-seen
-selection
-seminar
-seminars
-sending
-separated
-separates
-series
-service
-services
-set
-setting
-setup
-seven
-seventh
-several
-shade
-shadow
-shape
-shares
-shaves
-shine
-shorter
-should
-show
-shown
-shows
-side
-signal
-signals
-signature
-significantly
-similar
-similarily
-similarly
-simple
-simplest
-simplified
-simplifying
-simply
-simulate
-simultaneous
-since
-single
-size
-sizes
-slightly
-slope
-slot
-slowing
-small
-smaller
-so
-socket
-sockets
-software
-solutions
-solved
-some
-soon
-sort
-sorting
-source
-sources
-south
-space
-special
-specialized
-specific
-specifically
-specification
-specifications
-specified
-specify
-speed
-spend
-split
-SQL
-standard
-standards
-start
-starts
-starve
-state
-states
-static
-steady
-stealing
-step
-still
-stop
-stopwatch
-store
-stored
-stores
-straightforward
-stream
-string
-strings
-structure
-structured
-strut
-style
-styles
-styling
-subclass
-subclassing
-subdirectory
-subsection
-subsections
-succeeds
-success
-successful
-successfully
-such
-suggestion
-suggestions
-suitable
-support
-supported
-supports
-suppose
-supposes
-sure
-switch
-switches
-symbol
-symbols
-synonyms
-system
-systems
-table
-tables
-tags
-take
-takes
-tap
-target
-targets
-TCP
-team
-technically-focused
-technique
-technology
-template
-templates
-Texas
-text
-than
-that
-the
-their
-them
-then
-theorem
-there
-these
-they
-thickness
-thin
-third
-this
-those
-three
-throttling
-through
-tightly
-time
-timer
-times
-tiny
-tips
-title
-titles
-to
-together
-too
-top
-torrent
-total
-tour
-trademarks
-traffic
-training
-transaction
-transfer
-transferred
-transferring
-transfers
-translucency
-translucent
-transparency
-transparent
-travel
-traveled
-true
-try
-turn
-twice
-two
-type
-typed
-typical
-typically
-unable
-under
-underlying
-understanding
-undoes
-unique
-united
-unlike
-unpack
-unsigned
-until
-untouched
-up
-update
-updated
-updates
-upload
-uploading
-uploads
-up-to-date
-us
-use
-used
-useful
-user
-user-friendly
-users
-uses
-using
-usual
-usually
-valid
-value
-values
-variable
-variation
-variety
-various
-vector
-venturing
-verifying
-versa
-version
-versions
-vertical
-very
-via
-vice
-virtual
-visual
-void
-VP
-waiting
-Wales
-want
-wants
-was
-way
-ways
-we
-web
-website
-well
-were
-what
-when
-whenever
-where
-whether
-which
-while
-whistle
-white
-who
-whole
-why
-widget
-widgets
-width
-widths
-will
-window
-windows
-wish
-with
-without
-word
-words
-work
-working
-works
-would
-wrap
-wrapper
-write
-writes
-writing
-writings
-written
-X
-X11
-XOR
-year
-years
-yes
-you
-your
-zero
diff --git a/examples/tools/contiguouscache/randomlistmodel.h b/examples/tools/contiguouscache/randomlistmodel.h
index 043fdf7a40..58427f0c53 100644
--- a/examples/tools/contiguouscache/randomlistmodel.h
+++ b/examples/tools/contiguouscache/randomlistmodel.h
@@ -43,7 +43,8 @@
#include <QContiguousCache>
#include <QAbstractListModel>
-class QTimer;
+QT_FORWARD_DECLARE_CLASS(QTimer)
+
class RandomListModel : public QAbstractListModel
{
Q_OBJECT
diff --git a/examples/tools/customcompleter/customcompleter.desktop b/examples/tools/customcompleter/customcompleter.desktop
deleted file mode 100644
index bbc21112ad..0000000000
--- a/examples/tools/customcompleter/customcompleter.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Custom Completer
-Exec=/opt/usr/bin/customcompleter
-Icon=customcompleter
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/tools/customcompleter/customcompleter.pro b/examples/tools/customcompleter/customcompleter.pro
deleted file mode 100644
index b61cb510e9..0000000000
--- a/examples/tools/customcompleter/customcompleter.pro
+++ /dev/null
@@ -1,16 +0,0 @@
-HEADERS = mainwindow.h \
- textedit.h
-SOURCES = main.cpp \
- mainwindow.cpp \
- textedit.cpp
-RESOURCES = customcompleter.qrc
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/customcompleter
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS customcompleter.pro resources
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/customcompleter
-INSTALLS += target sources
-
-QT += widgets
-
-simulator: warning(This example might not fully work on Simulator platform)
diff --git a/examples/tools/customcompleter/customcompleter.qrc b/examples/tools/customcompleter/customcompleter.qrc
deleted file mode 100644
index d7da1bf9a6..0000000000
--- a/examples/tools/customcompleter/customcompleter.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource prefix="/">
- <file>resources/wordlist.txt</file>
-</qresource>
-</RCC>
diff --git a/examples/tools/customcompleter/main.cpp b/examples/tools/customcompleter/main.cpp
deleted file mode 100644
index 893c73026d..0000000000
--- a/examples/tools/customcompleter/main.cpp
+++ /dev/null
@@ -1,54 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include "mainwindow.h"
-
-//! [0]
-int main(int argc, char *argv[])
-{
- Q_INIT_RESOURCE(customcompleter);
-
- QApplication app(argc, argv);
- MainWindow window;
- window.show();
- return app.exec();
-}
-//! [0]
diff --git a/examples/tools/customcompleter/mainwindow.cpp b/examples/tools/customcompleter/mainwindow.cpp
deleted file mode 100644
index 702176eb1e..0000000000
--- a/examples/tools/customcompleter/mainwindow.cpp
+++ /dev/null
@@ -1,117 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-#include "mainwindow.h"
-#include "textedit.h"
-
-//! [0]
-MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent), completer(0)
-{
- createMenu();
-
- completingTextEdit = new TextEdit;
- completer = new QCompleter(this);
- completer->setModel(modelFromFile(":/resources/wordlist.txt"));
- completer->setModelSorting(QCompleter::CaseInsensitivelySortedModel);
- completer->setCaseSensitivity(Qt::CaseInsensitive);
- completer->setWrapAround(false);
- completingTextEdit->setCompleter(completer);
-
- setCentralWidget(completingTextEdit);
- resize(500, 300);
- setWindowTitle(tr("Completer"));
-}
-//! [0]
-
-//! [1]
-void MainWindow::createMenu()
-{
- QAction *exitAction = new QAction(tr("Exit"), this);
- QAction *aboutAct = new QAction(tr("About"), this);
- QAction *aboutQtAct = new QAction(tr("About Qt"), this);
-
- connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
- connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
- connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
-
- QMenu* fileMenu = menuBar()->addMenu(tr("File"));
- fileMenu->addAction(exitAction);
-
- QMenu* helpMenu = menuBar()->addMenu(tr("About"));
- helpMenu->addAction(aboutAct);
- helpMenu->addAction(aboutQtAct);
-}
-//! [1]
-
-//! [2]
-QAbstractItemModel *MainWindow::modelFromFile(const QString& fileName)
-{
- QFile file(fileName);
- if (!file.open(QFile::ReadOnly))
- return new QStringListModel(completer);
-
-#ifndef QT_NO_CURSOR
- QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
-#endif
- QStringList words;
-
- while (!file.atEnd()) {
- QByteArray line = file.readLine();
- if (!line.isEmpty())
- words << line.trimmed();
- }
-
-#ifndef QT_NO_CURSOR
- QApplication::restoreOverrideCursor();
-#endif
- return new QStringListModel(words, completer);
-}
-//! [2]
-
-//! [3]
-void MainWindow::about()
-{
- QMessageBox::about(this, tr("About"), tr("This example demonstrates the "
- "different features of the QCompleter class."));
-}
-//! [3]
-
diff --git a/examples/tools/customcompleter/mainwindow.h b/examples/tools/customcompleter/mainwindow.h
deleted file mode 100644
index 2dae198a49..0000000000
--- a/examples/tools/customcompleter/mainwindow.h
+++ /dev/null
@@ -1,76 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-
-QT_BEGIN_NAMESPACE
-class QAbstractItemModel;
-class QComboBox;
-class QCompleter;
-class QLabel;
-class QLineEdit;
-class QProgressBar;
-QT_END_NAMESPACE
-class TextEdit;
-
-//! [0]
-class MainWindow : public QMainWindow
-{
- Q_OBJECT
-
-public:
- MainWindow(QWidget *parent = 0);
-
-private slots:
- void about();
-
-private:
- void createMenu();
- QAbstractItemModel *modelFromFile(const QString& fileName);
-
- QCompleter *completer;
- TextEdit *completingTextEdit;
-};
-//! [0]
-
-#endif // MAINWINDOW_H
diff --git a/examples/tools/customcompleter/resources/wordlist.txt b/examples/tools/customcompleter/resources/wordlist.txt
deleted file mode 100644
index f8b581a405..0000000000
--- a/examples/tools/customcompleter/resources/wordlist.txt
+++ /dev/null
@@ -1,1454 +0,0 @@
-A4
-able
-about
-above
-absence
-absolutely
-abstract
-access
-according
-accumulated
-achieve
-achieving
-activity
-acts
-actual
-actually
-add
-added
-adding
-addition
-additionally
-additions
-addresses
-adjust
-adjustments
-advanced
-advice
-after
-afterwards
-again
-agenda
-aim
-algorithm
-all
-allocated
-allow
-allowed
-allowing
-allows
-along
-alpha
-already
-also
-alternative
-alternatively
-although
-American
-an
-and
-announced
-annoy
-another
-answer
-answers
-any
-anything
-anyway
-apart
-API
-appear
-appears
-appendices
-appendix
-appends
-application
-applications
-apply
-approach
-approaches
-appropriate
-Arabic
-arbitrary
-are
-areas
-ARGB
-argument
-arguments
-around
-arrangements
-arrive
-arrived
-Arthur
-article
-articles
-as
-asked
-aspects
-assume
-at
-attachment
-attempt
-attempting
-attend
-attendees
-attributes
-authors
-availability
-available
-avoid
-away
-back
-background
-backgrounds
-bandwidth
-bandwidths
-Barcelona
-base
-based
-basic
-basically
-basics
-be
-because
-been
-before
-behave
-behavior
-behind
-being
-below
-benefits
-Berkeley
-between
-bit
-bits
-bitwise
-black
-blended
-blending
-blends
-block
-blue
-BMP
-body
-bold
-booking
-bool
-Boston
-both
-bottom
-box
-boxes
-braces
-break
-breaks
-broad
-browsers
-buffer
-buffers
-build
-builds
-built
-bundled
-burdens
-busy
-but
-by
-bypass
-bypassing
-bytes
-calendar
-call
-called
-calling
-calls
-Cambridge
-can
-canonical
-canonicalised
-cap
-capabilities
-capacity
-caption
-card
-care
-case
-cast
-catch
-causing
-centre
-certain
-challenges
-chance
-change
-changes
-changing
-channel
-channels
-chapter
-char
-chart
-charts
-check
-checks
-Chicago
-chosen
-chunk
-circle
-citation
-city
-claim
-class
-classes
-clause
-clauses
-clear
-clearing
-client
-clients
-close
-closed
-code
-colon
-color
-colorize
-colorizer
-colors
-colour
-column
-columns
-combine
-combined
-combines
-combining
-comes
-command
-commands
-comment
-common
-communicate
-community
-compiled
-complement
-complete
-completely
-completeness
-completes
-completion
-complex
-compliant
-component
-components
-compositing
-composition
-compression
-computation
-computer
-concepts
-conclusion
-concurrent
-configurable
-congested
-congestion
-connect
-connected
-connection
-connections
-cons
-consider
-consisting
-consists
-construct
-constructed
-constructing
-constructor
-constructs
-consume
-contact
-contain
-containing
-contains
-contents
-contents
-continue
-continued
-contributors
-control
-controlled
-controller
-controller
-controlling
-controls
-controls
-conventions
-cook
-cooperation
-copy
-copyright
-core
-cores
-corollary
-correct
-correctly
-corresponding
-could
-couple
-coworkers
-CPU
-create
-creates
-creating
-crucial
-cultures
-current
-currently
-custom
-customized
-cut
-data
-database
-datasets
-datum
-day
-days
-deal
-dealing
-decide
-decouple
-decoupled
-deeply
-def
-default
-define
-defines
-definition
-definitions
-delegate
-delete
-demo
-demonstrate
-demonstrations
-deployed
-describe
-describes
-design
-desktop
-desktops
-destination
-destinations
-destructor
-details
-detect
-determine
-determines
-developer
-developers
-development
-developments
-device
-devices
-diagram
-dialogs
-dictionary
-did
-difference
-differences
-different
-differs
-digital
-direct
-direct
-directions
-directly
-directory
-discuss
-display
-displaying
-displays
-distribute
-distribution
-disturbing
-divide
-do
-documentation
-documents
-does
-done
-down
-downLimit
-download
-downloaded
-downloading
-draw
-drawing
-drawn
-drop
-Duff
-during
-DVD
-dynamic
-dynamically
-dynamics
-each
-earlier
-easily
-editing
-editors
-education
-effect
-effectively
-effects
-either
-ellipse
-ellipses
-elliptical
-else
-email
-embedded
-emit
-emits
-empty
-enable
-enables
-encapsulates
-enclose
-end
-endnote
-endnotes
-engineer
-engineering
-English
-enjoys
-enough
-ensure
-ensures
-entails
-enter
-entire
-entitled
-entries
-entry
-environment
-erases
-error
-errors
-especially
-established
-etc.
-Europe
-even
-evenly
-event
-events
-eventually
-every
-everyone
-example
-examples
-except
-exception
-excessive
-exclusive
-existing
-exists
-expand
-expected
-expense
-export
-exposes
-extend
-extended
-extending
-extensible
-extension
-external
-extra
-extract
-faces
-facilities
-factory
-fade
-failure
-fairness
-falls
-false
-family
-fashion
-fast
-faster
-features
-February
-feedback
-feel
-fetch
-fetching
-few
-fields
-figure
-figures
-file
-file name
-files
-filled
-filler
-final
-finally
-find
-fine
-finish
-finished
-first
-flow
-fly
-focus
-followed
-following
-font
-foot
-footnote
-footnotes
-for
-form
-format
-formats
-forms
-formula
-formulas
-forum
-found
-framework
-France
-from
-front
-full
-fully
-function
-functionality
-functions
-future
-gain
-games
-gap
-general
-generic
-Germany
-get
-gill
-give
-given
-gives
-giving
-global
-go
-goes
-got
-gradient
-graph
-graphical
-graphics
-gray
-great
-greatly
-green
-grey
-group
-growing
-gui
-GUI
-hack
-had
-half
-Hamburg
-hand
-handing
-handle
-handler
-handlers
-handles
-handling
-happens
-hardware
-harmonica
-has
-have
-having
-he
-head
-header
-headers
-hear
-height
-help
-helper
-here
-high
-highlight
-highly
-hints
-his
-hold
-holder
-holding
-hole
-home
-horizontal
-host
-hosting
-hours
-Houston
-how
-however
-huge
-hyphen
-ID
-idea
-ideally
-if
-Illinois
-illustrate
-illustrated
-illustrates
-image
-images
-impact
-implement
-implementation
-implementations
-implemented
-implementing
-implements
-import
-important
-improvements
-in
-include
-included
-includes
-including
-inclusion
-incoming
-inconvenient
-indent
-index
-indicate
-inexpensively
-influence
-info
-information
-ingenious
-inherits
-initial
-initially
-inner
-input
-inspired
-install
-installs
-instance
-instead
-instructs
-integer
-integers
-integration
-intended
-intensive
-interest
-interests
-interface
-interfaces
-interfere
-internal
-interval
-into
-intriguing
-intro
-introduce
-introduced
-invalid
-invented
-inverse
-invocation
-involved
-Irish
-irregular
-is
-ISO
-ISPs
-issue
-issues
-it
-items
-iterate
-its
-itself
-job
-join
-JPEG
-jungle
-just
-Karaoke
-keep
-keeping
-key
-kind
-king
-known
-label
-labels
-landscape
-language
-large
-last
-later
-latest
-lawn
-layout
-lead
-leader
-leaders
-lean
-leaves
-leaving
-left
-lemma
-length
-less
-let
-level
-levels
-libraries
-library
-lies
-like
-likely
-limit
-limiting
-limits
-line
-linear
-lines
-linewidth
-link
-linked
-linking
-Linux
-list
-lists
-little
-lives
-load
-loading
-loads
-located
-location
-locations
-logo
-long
-longer
-look
-looked
-looking
-looks
-lookup
-lookups
-loop
-lout
-low
-macro
-made
-magazine
-magic
-main
-major
-make
-makes
-making
-manage
-managed
-managing
-mandatory
-manipulate
-manipulation
-manner
-many
-map
-maps
-March
-margin
-mask
-masking
-Massachusetts
-match
-mathematical
-maximum
-may
-means
-meet
-member
-members
-memory
-merged
-method
-might
-milliseconds
-minimize
-minimum
-minor
-mix
-MNG
-mode
-model
-models
-modes
-modified
-module
-moments
-monitored
-monthly
-more
-most
-mostly
-move
-much
-multitude
-Munich
-must
-name
-named
-names
-necessary
-need
-needed
-needs
-network
-new
-news
-newsletter
-next
-nicely
-no
-none
-normally
-Norway
-not
-note
-notes
-nothing
-notifies
-notify
-now
-null
-number
-numbered
-numbering
-numbers
-Nydalen
-object
-objects
-obtain
-obtaining
-odd
-of
-off
-office
-offset
-offsets
-often
-old
-on
-once
-one
-ones
-online
-only
-onto
-opacity
-opaque
-open
-opens
-operates
-operating
-operation
-operations
-operator
-opportunity
-opposed
-optimize
-option
-optionally
-options
-or
-OR
-order
-ordinary
-original
-originally
-Oslo
-other
-otherwise
-our
-out
-outer
-outgoing
-output
-outside
-over
-overcoming
-overrides
-overview
-own
-owner
-owners
-pace
-Pacific
-package
-packages
-packets
-page
-pages
-paint
-painted
-painting
-paragraph
-paragraphs
-parameters
-parent
-Paris
-parse
-part
-partial
-partially
-particular
-partners
-parts
-party
-passed
-passing
-patches
-path
-pattern
-patterns
-pause
-PDF
-peek
-pending
-perform
-performed
-performs
-permission
-permutations
-personal
-pick
-pie
-pipe
-pixel
-pixels
-place
-places
-planning
-platforms
-play
-players
-playing
-please
-pleasing
-plugin
-plugins
-plus
-PNG
-pointer
-pop
-popular
-populates
-porter
-Porter
-portrait
-possibility
-possible
-potential
-potentially
-power
-powers
-preceded
-presence
-present
-prevent
-prevents
-previous
-previously
-primarily
-primary
-primitives
-printed
-printing
-prior
-probably
-problem
-process
-processes
-processing
-produce
-produced
-produces
-products
-programming
-programs
-project
-projects
-proof
-proper
-properly
-properties
-property
-proposed
-proposition
-pros
-protocols
-proud
-provide
-provided
-provides
-provision
-proxy
-public
-published
-punch
-punches
-pursuing
-put
-Qt
-Qtopia
-quality
-quarter
-quarterly
-queried
-queries
-query
-question
-questions
-radial
-ragged
-range
-rate
-rates
-rather
-ratio
-raw
-read
-reader
-reading
-reads
-ready
-real
-realistic
-really
-received
-recent
-recognized
-recommended
-recompile
-rectangle
-rectangular
-red
-redistribute
-reducing
-reference
-references
-reflect
-regardless
-regional
-register
-registered
-registration
-reimplement
-reimplementation
-reimplemented
-release
-released
-releases
-reliable
-rely
-remains
-remember
-removed
-removes
-repeatedly
-replace
-report
-represent
-represented
-represents
-reproduced
-requested
-require
-required
-requires
-resetting
-resides
-resolve
-respective
-respectively
-response
-rest
-restart
-result
-resulting
-resume
-return
-returning
-returns
-reuse
-revealing
-rich
-riches
-right
-roadshow
-role
-Roman
-router
-routers
-rule
-run
-runner
-runners
-running
-runs
-sake
-sales
-salespeople
-same
-sample
-San Jose
-save
-saved
-saves
-say
-scalable
-scale
-scanline
-scene
-scenes
-schedule
-school
-script
-seam
-seamless
-search
-searches
-searching
-second
-seconds
-section
-sections
-security
-see
-seen
-selection
-seminar
-seminars
-sending
-separated
-separates
-series
-service
-services
-set
-setting
-setup
-seven
-seventh
-several
-shade
-shadow
-shape
-shares
-shaves
-shine
-shorter
-should
-show
-shown
-shows
-side
-signal
-signals
-signature
-significantly
-similar
-similarily
-similarly
-simple
-simplest
-simplified
-simplifying
-simply
-simulate
-simultaneous
-since
-single
-size
-sizes
-slightly
-slope
-slot
-slowing
-small
-smaller
-so
-socket
-sockets
-software
-solutions
-solved
-some
-soon
-sort
-sorting
-source
-sources
-south
-space
-special
-specialized
-specific
-specifically
-specification
-specifications
-specified
-specify
-speed
-spend
-split
-SQL
-standard
-standards
-start
-starts
-starve
-state
-states
-static
-steady
-stealing
-step
-still
-stop
-stopwatch
-store
-stored
-stores
-straightforward
-stream
-string
-strings
-structure
-structured
-strut
-style
-styles
-styling
-subclass
-subclassing
-subdirectory
-subsection
-subsections
-succeeds
-success
-successful
-successfully
-such
-suggestion
-suggestions
-suitable
-support
-supported
-supports
-suppose
-supposes
-sure
-switch
-switches
-symbol
-symbols
-synonyms
-system
-systems
-table
-tables
-tags
-take
-takes
-tap
-target
-targets
-TCP
-team
-technique
-technology
-template
-templates
-Texas
-text
-than
-that
-the
-their
-them
-then
-theorem
-there
-these
-they
-thickness
-thin
-third
-this
-those
-three
-throttling
-through
-tightly
-time
-timer
-times
-tiny
-tips
-title
-titles
-to
-together
-too
-top
-torrent
-total
-tour
-trademarks
-traffic
-training
-transaction
-transfer
-transferred
-transferring
-transfers
-translucency
-translucent
-transparency
-transparent
-travel
-traveled
-true
-try
-turn
-twice
-two
-type
-typed
-typical
-typically
-unable
-under
-underlying
-understanding
-undoes
-unique
-united
-unlike
-unpack
-unsigned
-until
-untouched
-up
-update
-updated
-updates
-upload
-uploading
-uploads
-us
-use
-used
-useful
-user
-users
-uses
-using
-usual
-usually
-valid
-value
-values
-variable
-variation
-variety
-various
-vector
-venturing
-verifying
-versa
-version
-versions
-vertical
-very
-via
-vice
-virtual
-visual
-void
-VP
-waiting
-Wales
-want
-wants
-was
-way
-ways
-we
-web
-website
-well
-were
-what
-when
-whenever
-where
-whether
-which
-while
-whistle
-white
-who
-whole
-why
-widget
-widgets
-width
-widths
-will
-window
-windows
-wish
-with
-without
-word
-words
-work
-working
-works
-would
-wrap
-wrapper
-write
-writes
-writing
-writings
-written
-X
-X11
-XOR
-year
-years
-yes
-you
-your
-zero
diff --git a/examples/tools/customcompleter/textedit.cpp b/examples/tools/customcompleter/textedit.cpp
deleted file mode 100644
index 65054e736d..0000000000
--- a/examples/tools/customcompleter/textedit.cpp
+++ /dev/null
@@ -1,173 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "textedit.h"
-#include <QCompleter>
-#include <QKeyEvent>
-#include <QAbstractItemView>
-#include <QtDebug>
-#include <QApplication>
-#include <QModelIndex>
-#include <QAbstractItemModel>
-#include <QScrollBar>
-
-//! [0]
-TextEdit::TextEdit(QWidget *parent)
-: QTextEdit(parent), c(0)
-{
- setPlainText(tr("This TextEdit provides autocompletions for words that have more than"
- " 3 characters. You can trigger autocompletion using ") +
- QKeySequence("Ctrl+E").toString(QKeySequence::NativeText));
-}
-//! [0]
-
-//! [1]
-TextEdit::~TextEdit()
-{
-}
-//! [1]
-
-//! [2]
-void TextEdit::setCompleter(QCompleter *completer)
-{
- if (c)
- QObject::disconnect(c, 0, this, 0);
-
- c = completer;
-
- if (!c)
- return;
-
- c->setWidget(this);
- c->setCompletionMode(QCompleter::PopupCompletion);
- c->setCaseSensitivity(Qt::CaseInsensitive);
- QObject::connect(c, SIGNAL(activated(QString)),
- this, SLOT(insertCompletion(QString)));
-}
-//! [2]
-
-//! [3]
-QCompleter *TextEdit::completer() const
-{
- return c;
-}
-//! [3]
-
-//! [4]
-void TextEdit::insertCompletion(const QString& completion)
-{
- if (c->widget() != this)
- return;
- QTextCursor tc = textCursor();
- int extra = completion.length() - c->completionPrefix().length();
- tc.movePosition(QTextCursor::Left);
- tc.movePosition(QTextCursor::EndOfWord);
- tc.insertText(completion.right(extra));
- setTextCursor(tc);
-}
-//! [4]
-
-//! [5]
-QString TextEdit::textUnderCursor() const
-{
- QTextCursor tc = textCursor();
- tc.select(QTextCursor::WordUnderCursor);
- return tc.selectedText();
-}
-//! [5]
-
-//! [6]
-void TextEdit::focusInEvent(QFocusEvent *e)
-{
- if (c)
- c->setWidget(this);
- QTextEdit::focusInEvent(e);
-}
-//! [6]
-
-//! [7]
-void TextEdit::keyPressEvent(QKeyEvent *e)
-{
- if (c && c->popup()->isVisible()) {
- // The following keys are forwarded by the completer to the widget
- switch (e->key()) {
- case Qt::Key_Enter:
- case Qt::Key_Return:
- case Qt::Key_Escape:
- case Qt::Key_Tab:
- case Qt::Key_Backtab:
- e->ignore();
- return; // let the completer do default behavior
- default:
- break;
- }
- }
-
- bool isShortcut = ((e->modifiers() & Qt::ControlModifier) && e->key() == Qt::Key_E); // CTRL+E
- if (!c || !isShortcut) // do not process the shortcut when we have a completer
- QTextEdit::keyPressEvent(e);
-//! [7]
-
-//! [8]
- const bool ctrlOrShift = e->modifiers() & (Qt::ControlModifier | Qt::ShiftModifier);
- if (!c || (ctrlOrShift && e->text().isEmpty()))
- return;
-
- static QString eow("~!@#$%^&*()_+{}|:\"<>?,./;'[]\\-="); // end of word
- bool hasModifier = (e->modifiers() != Qt::NoModifier) && !ctrlOrShift;
- QString completionPrefix = textUnderCursor();
-
- if (!isShortcut && (hasModifier || e->text().isEmpty()|| completionPrefix.length() < 3
- || eow.contains(e->text().right(1)))) {
- c->popup()->hide();
- return;
- }
-
- if (completionPrefix != c->completionPrefix()) {
- c->setCompletionPrefix(completionPrefix);
- c->popup()->setCurrentIndex(c->completionModel()->index(0, 0));
- }
- QRect cr = cursorRect();
- cr.setWidth(c->popup()->sizeHintForColumn(0)
- + c->popup()->verticalScrollBar()->sizeHint().width());
- c->complete(cr); // popup it up!
-}
-//! [8]
-
diff --git a/examples/tools/customcompleter/textedit.h b/examples/tools/customcompleter/textedit.h
deleted file mode 100644
index 67d83241e3..0000000000
--- a/examples/tools/customcompleter/textedit.h
+++ /dev/null
@@ -1,78 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef TEXTEDIT_H
-#define TEXTEDIT_H
-
-#include <QTextEdit>
-
-QT_BEGIN_NAMESPACE
-class QCompleter;
-QT_END_NAMESPACE
-
-//! [0]
-class TextEdit : public QTextEdit
-{
- Q_OBJECT
-
-public:
- TextEdit(QWidget *parent = 0);
- ~TextEdit();
-
- void setCompleter(QCompleter *c);
- QCompleter *completer() const;
-
-protected:
- void keyPressEvent(QKeyEvent *e);
- void focusInEvent(QFocusEvent *e);
-
-private slots:
- void insertCompletion(const QString &completion);
-
-private:
- QString textUnderCursor() const;
-
-private:
- QCompleter *c;
-};
-//! [0]
-
-#endif // TEXTEDIT_H
-
diff --git a/examples/tools/customtypesending/window.h b/examples/tools/customtypesending/window.h
index 1e60dd6aef..1d7b0b5dc8 100644
--- a/examples/tools/customtypesending/window.h
+++ b/examples/tools/customtypesending/window.h
@@ -44,7 +44,7 @@
#include <QWidget>
#include "message.h"
-class QTextEdit;
+QT_FORWARD_DECLARE_CLASS(QTextEdit)
//! [Window class definition]
class Window : public QWidget
diff --git a/examples/tools/doc/completer-example-country.png b/examples/tools/doc/completer-example-country.png
deleted file mode 100644
index fa7c8a9938..0000000000
--- a/examples/tools/doc/completer-example-country.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/doc/completer-example-word.png b/examples/tools/doc/completer-example-word.png
deleted file mode 100644
index aa3fb9c333..0000000000
--- a/examples/tools/doc/completer-example-word.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/doc/completer-example.png b/examples/tools/doc/completer-example.png
deleted file mode 100644
index dcaa253bd8..0000000000
--- a/examples/tools/doc/completer-example.png
+++ /dev/null
Binary files differ
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
- */
diff --git a/examples/tools/doc/echoplugin.qdoc b/examples/tools/doc/echoplugin.qdoc
deleted file mode 100644
index 5950083b2a..0000000000
--- a/examples/tools/doc/echoplugin.qdoc
+++ /dev/null
@@ -1,208 +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 echoplugin
- \title Echo Plugin Example
-
- This example shows how to create a Qt plugin.
-
- \image echopluginexample.png
-
- There are two kinds of plugins in Qt: plugins that extend Qt
- itself and plugins that extend applications written in Qt. In this
- example, we show the procedure of implementing plugins that extend
- applications. When you create a plugin you declare an interface,
- which is a class with only pure virtual functions. This interface
- is inherited by the class that implements the plugin. The class is
- stored in a shared library and can therefore be loaded by
- applications at run-time. When loaded, the plugin is dynamically
- cast to the interface using Qt's \l{Meta-Object
- System}{meta-object system}. The plugin \l{How to Create Qt
- Plugins}{overview document} gives a high-level introduction to
- plugins.
-
- We have implemented a plugin, the \c EchoPlugin, which implements
- the \c EchoInterface. The interface consists of \c echo(), which
- takes a QString as argument. The \c EchoPlugin returns the string
- unaltered (i.e., it works as the familiar echo command found in
- both Unix and Windows).
-
- We test the plugin in \c EchoWindow: when you push the QPushButton
- (as seen in the image above), the application sends the text in
- the QLineEdit to the plugin, which echoes it back to the
- application. The answer from the plugin is displayed in the
- QLabel.
-
-
- \section1 EchoWindow Class Definition
-
- The \c EchoWindow class lets us test the \c EchoPlugin through a
- GUI.
-
- \snippet echoplugin/echowindow/echowindow.h 0
-
- We load the plugin in \c loadPlugin() and cast it to \c
- EchoInterface. When the user clicks the \c button we take the
- text in \c lineEdit and call the interface's \c echo() with it.
-
-
- \section1 EchoWindow Class Implementation
-
- We start with a look at the constructor:
-
- \snippet echoplugin/echowindow/echowindow.cpp 0
-
- We create the widgets and set a title for the window. We then load
- the plugin. \c loadPlugin() returns false if the plugin could not
- be loaded, in which case we disable the widgets. If you wish a
- more detailed error message, you can use
- \l{QPluginLoader::}{errorString()}; we will look more closely at
- QPluginLoader later.
-
- Here is the implementation of \c sendEcho():
-
- \snippet echoplugin/echowindow/echowindow.cpp 1
-
- This slot is called when the user pushes \c button or presses
- enter in \c lineEdit. We call \c echo() of the echo interface. In
- our example this is the \c EchoPlugin, but it could be any plugin
- that inherit the \c EchoInterface. We take the QString returned
- from \c echo() and display it in the \c label.
-
- Here is the implementation of \c createGUI():
-
- \snippet echoplugin/echowindow/echowindow.cpp 2
-
- We create the widgets and lay them out in a grid layout. We
- connect the label and line edit to our \c sendEcho() slot.
-
- Here is the \c loadPlugin() function:
-
- \snippet echoplugin/echowindow/echowindow.cpp 3
-
- Access to plugins at run-time is provided by QPluginLoader. You
- supply it with the filename of the shared library the plugin is
- stored in and call \l{QPluginLoader::}{instance()}, which loads
- and returns the root component of the plugin (i.e., it resolves
- the type of the plugin and creates a QObject instance of it). If
- the plugin was not successfully loaded, it will be null, so we
- return false. If it was loaded correctly, we can cast the plugin
- to our \c EchoInterface and return true. In the case that the
- plugin loaded does not implement the \c EchoInterface, \c
- instance() will return null, but this cannot happen in our
- example. Notice that the location of the plugin is not the same
- for all platforms.
-
-
- \section1 EchoInterface Class Definition
-
- The \c EchoInterface defines the functions that the plugin will
- provide. An interface is a class that only consists of pure
- virtual functions. If non virtual functions were present in the
- class you would get misleading compile errors in the moc files.
-
- \snippet echoplugin/echowindow/echointerface.h 0
-
- We declare \c echo(). In our \c EchoPlugin we use this method to
- return, or echo, \a message.
-
- We use the Q_DECLARE_INTERFACE macro to let \l{Meta-Object
- System}{Qt's meta object system} aware of the interface. We do
- this so that it will be possible to identify plugins that
- implements the interface at run-time. The second argument is a
- string that must identify the interface in a unique way.
-
-
- \section1 EchoPlugin Class Definition
-
- We inherit both QObject and \c EchoInterface to make this class a
- plugin. The Q_INTERFACES macro tells Qt which interfaces the class
- implements. In our case we only implement the \c EchoInterface.
- If a class implements more than one interface, they are given as
- a comma separated list.
-
- \snippet echoplugin/plugin/echoplugin.h 0
-
-
- \section1 EchoPlugin Class Implementation
-
- Here is the implementation of \c echo():
-
- \snippet echoplugin/plugin/echoplugin.cpp 0
-
- We simply return the functions parameter.
-
- \snippet echoplugin/plugin/echoplugin.cpp 1
-
- We use the Q_EXPORT_PLUGIN2 macro to let Qt know that the \c
- EchoPlugin class is a plugin. The first parameter is the name of
- the plugin; it is usual to give the plugin and the library file it
- is stored in the same name.
-
- \section1 The \c main() function
-
- \snippet echoplugin/echowindow/main.cpp 0
-
- We create an \c EchoWindow and display it as a top-level window.
-
- \section1 The Profiles
-
- When creating plugins the profiles need to be adjusted.
- We show here what changes need to be done.
-
- The profile in the echoplugin directory uses the \c subdirs
- template and simply includes includes to directories in which
- the echo window and echo plugin lives:
-
- \snippet echoplugin/echoplugin.pro 0
-
- The profile for the echo window does not need any plugin specific
- settings. We move on to the plugin profile:
-
- \snippet echoplugin/plugin/plugin.pro 0
-
- We need to set the TEMPLATE as we now want to make a library
- instead of an executable. We also need to tell qmake that we are
- creating a plugin. The \c EchoInterface that the plugin implements
- lives in the \c echowindow directory, so we need to add that
- directory to the include path. We set the TARGET of the project,
- which is the name of the library file in which the plugin will be
- stored; qmake appends the appropriate file extension depending on
- the platform. By convention the target should have the same name
- as the plugin (set with Q_EXPORT_PLUGIN2)
-
- \section1 Further reading and examples
-
- You can find an overview of the macros needed to create plugins
- \l{Macros for Defining Plugins}{here}.
-
- We give an example of a plugin that extend Qt in the \l{Style
- Plugin Example}{style plugin} example. The \l{Plug & Paint
- Example}{plug and paint} example shows how to create static
- plugins.
-*/
diff --git a/examples/tools/doc/echopluginexample.png b/examples/tools/doc/echopluginexample.png
deleted file mode 100644
index 7cb1e4d63b..0000000000
--- a/examples/tools/doc/echopluginexample.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/doc/i18n.qdoc b/examples/tools/doc/i18n.qdoc
deleted file mode 100644
index da6b9703b9..0000000000
--- a/examples/tools/doc/i18n.qdoc
+++ /dev/null
@@ -1,37 +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 i18n
- \title I18N Example
-
- The Internationalization (I18N) example demonstrates Qt's support for translated
- text. Developers can write the initial application text in one language, and
- translations can be provided later without any modifications to the code.
-
- \image i18n-example.png
-*/
diff --git a/examples/tools/doc/plugandpaint-plugindialog.png b/examples/tools/doc/plugandpaint-plugindialog.png
deleted file mode 100644
index 4b601bd58b..0000000000
--- a/examples/tools/doc/plugandpaint-plugindialog.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/doc/plugandpaint.png b/examples/tools/doc/plugandpaint.png
deleted file mode 100644
index bd5d001f91..0000000000
--- a/examples/tools/doc/plugandpaint.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/doc/plugandpaint.qdoc b/examples/tools/doc/plugandpaint.qdoc
deleted file mode 100644
index 31007314c5..0000000000
--- a/examples/tools/doc/plugandpaint.qdoc
+++ /dev/null
@@ -1,540 +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 plugandpaint
- \title Plug & Paint Example
-
- The Plug & Paint example demonstrates how to write Qt
- applications that can be extended through plugins.
-
- \image plugandpaint.png Screenshot of the Plug & Paint example
-
- A plugin is a dynamic library that can be loaded at run-time to
- extend an application. Qt makes it possible to create custom
- plugins and to load them using QPluginLoader. To ensure that
- plugins don't get lost, it is also possible to link them
- statically to the executable. The Plug & Paint example uses
- plugins to support custom brushes, shapes, and image filters. A
- single plugin can provide multiple brushes, shapes, and/or
- filters.
-
- If you want to learn how to make your own application extensible
- through plugins, we recommend that you start by reading this
- overview, which explains how to make an application use plugins.
- Afterward, you can read the
- \l{plugandpaintplugins/basictools}{Basic Tools} and
- \l{plugandpaintplugins/extrafilters}{Extra Filters}
- overviews, which show how to implement static and dynamic
- plugins, respectively.
-
- Plug & Paint consists of the following classes:
-
- \list
- \li \c MainWindow is a QMainWindow subclass that provides the menu
- system and that contains a \c PaintArea as the central widget.
- \li \c PaintArea is a QWidget that allows the user to draw using a
- brush and to insert shapes.
- \li \c PluginDialog is a dialog that shows information about the
- plugins detected by the application.
- \li \c BrushInterface, \c ShapeInterface, and \c FilterInterface are
- abstract base classes that can be implemented by plugins to
- provide custom brushes, shapes, and image filters.
- \endlist
-
- \section1 The Plugin Interfaces
-
- We will start by reviewing the interfaces defined in \c
- interfaces.h. These interfaces are used by the Plug & Paint
- application to access extra functionality. They are implemented
- in the plugins.
-
-
- \snippet plugandpaint/interfaces.h 0
-
- The \c BrushInterface class declares four pure virtual functions.
- The first pure virtual function, \c brushes(), returns a list of
- strings that identify the brushes provided by the plugin. By
- returning a QStringList instead of a QString, we make it possible
- for a single plugin to provide multiple brushes. The other
- functions have a \c brush parameter to identify which brush
- (among those returned by \c brushes()) is used.
-
- \c mousePress(), \c mouseMove(), and \c mouseRelease() take a
- QPainter and one or two \l{QPoint}s, and return a QRect
- identifying which portion of the image was altered by the brush.
-
- The class also has a virtual destructor. Interface classes
- usually don't need such a destructor (because it would make
- little sense to \c delete the object that implements the
- interface through a pointer to the interface), but some compilers
- emit a warning for classes that declare virtual functions but no
- virtual destructor. We provide the destructor to keep these
- compilers happy.
-
- \snippet plugandpaint/interfaces.h 1
-
- The \c ShapeInterface class declares a \c shapes() function that
- works the same as \c{BrushInterface}'s \c brushes() function, and
- a \c generateShape() function that has a \c shape parameter.
- Shapes are represented by a QPainterPath, a data type that can
- represent arbitrary 2D shapes or combinations of shapes. The \c
- parent parameter can be used by the plugin to pop up a dialog
- asking the user to specify more information.
-
- \snippet plugandpaint/interfaces.h 2
-
- The \c FilterInterface class declares a \c filters() function
- that returns a list of filter names, and a \c filterImage()
- function that applies a filter to an image.
-
- \snippet plugandpaint/interfaces.h 4
-
- To make it possible to query at run-time whether a plugin
- implements a given interface, we must use the \c
- Q_DECLARE_INTERFACE() macro. The first argument is the name of
- the interface. The second argument is a string identifying the
- interface in a unique way. By convention, we use a "Java package
- name" syntax to identify interfaces. If we later change the
- interfaces, we must use a different string to identify the new
- interface; otherwise, the application might crash. It is therefore
- a good idea to include a version number in the string, as we did
- above.
-
- The \l{plugandpaintplugins/basictools}{Basic Tools} plugin
- and the \l{plugandpaintplugins/extrafilters}{Extra Filters}
- plugin shows how to derive from \c BrushInterface, \c
- ShapeInterface, and \c FilterInterface.
-
- A note on naming: It might have been tempting to give the \c
- brushes(), \c shapes(), and \c filters() functions a more generic
- name, such as \c keys() or \c features(). However, that would
- have made multiple inheritance impractical. When creating
- interfaces, we should always try to give unique names to the pure
- virtual functions.
-
- \section1 The MainWindow Class
-
- The \c MainWindow class is a standard QMainWindow subclass, as
- found in many of the other examples (e.g.,
- \l{mainwindows/application}{Application}). Here, we'll
- concentrate on the parts of the code that are related to plugins.
-
- \snippet plugandpaint/mainwindow.cpp 4
-
- The \c loadPlugins() function is called from the \c MainWindow
- constructor to detect plugins and update the \uicontrol{Brush},
- \uicontrol{Shapes}, and \uicontrol{Filters} menus. We start by handling static
- plugins (available through QPluginLoader::staticInstances())
-
- To the application that uses the plugin, a Qt plugin is simply a
- QObject. That QObject implements plugin interfaces using multiple
- inheritance.
-
- \snippet plugandpaint/mainwindow.cpp 5
-
- The next step is to load dynamic plugins. We initialize the \c
- pluginsDir member variable to refer to the \c plugins
- subdirectory of the Plug & Paint example. On Unix, this is just a
- matter of initializing the QDir variable with
- QApplication::applicationDirPath(), the path of the executable
- file, and to do a \l{QDir::cd()}{cd()}. On Windows and Mac OS X,
- this file is usually located in a subdirectory, so we need to
- take this into account.
-
- \snippet plugandpaint/mainwindow.cpp 6
- \snippet plugandpaint/mainwindow.cpp 7
- \snippet plugandpaint/mainwindow.cpp 8
-
- We use QDir::entryList() to get a list of all files in that
- directory. Then we iterate over the result using \l foreach and
- try to load the plugin using QPluginLoader.
-
- The QObject provided by the plugin is accessible through
- QPluginLoader::instance(). If the dynamic library isn't a Qt
- plugin, or if it was compiled against an incompatible version of
- the Qt library, QPluginLoader::instance() returns a null pointer.
-
- If QPluginLoader::instance() is non-null, we add it to the menus.
-
- \snippet plugandpaint/mainwindow.cpp 9
-
- At the end, we enable or disable the \uicontrol{Brush}, \uicontrol{Shapes},
- and \uicontrol{Filters} menus based on whether they contain any items.
-
- \snippet plugandpaint/mainwindow.cpp 10
-
- For each plugin (static or dynamic), we check which interfaces it
- implements using \l qobject_cast(). First, we try to cast the
- plugin instance to a \c BrushInterface; if it works, we call the
- private function \c addToMenu() with the list of brushes returned
- by \c brushes(). Then we do the same with the \c ShapeInterface
- and the \c FilterInterface.
-
- \snippet plugandpaint/mainwindow.cpp 3
-
- The \c aboutPlugins() slot is called on startup and can be
- invoked at any time through the \uicontrol{About Plugins} action. It
- pops up a \c PluginDialog, providing information about the loaded
- plugins.
-
- \image plugandpaint-plugindialog.png Screenshot of the Plugin dialog
-
-
- The \c addToMenu() function is called from \c loadPlugin() to
- create \l{QAction}s for custom brushes, shapes, or filters and
- add them to the relevant menu. The QAction is created with the
- plugin from which it comes from as the parent; this makes it
- convenient to get access to the plugin later.
-
- \snippet plugandpaint/mainwindow.cpp 0
-
- The \c changeBrush() slot is invoked when the user chooses one of
- the brushes from the \uicontrol{Brush} menu. We start by finding out
- which action invoked the slot using QObject::sender(). Then we
- get the \c BrushInterface out of the plugin (which we
- conveniently passed as the QAction's parent) and we call \c
- PaintArea::setBrush() with the \c BrushInterface and the string
- identifying the brush. Next time the user draws on the paint
- area, \c PaintArea will use this brush.
-
- \snippet plugandpaint/mainwindow.cpp 1
-
- The \c insertShape() is invoked when the use chooses one of the
- shapes from the \uicontrol{Shapes} menu. We retrieve the QAction that
- invoked the slot, then the \c ShapeInterface associated with that
- QAction, and finally we call \c ShapeInterface::generateShape()
- to obtain a QPainterPath.
-
- \snippet plugandpaint/mainwindow.cpp 2
-
- The \c applyFilter() slot is similar: We retrieve the QAction
- that invoked the slot, then the \c FilterInterface associated to
- that QAction, and finally we call \c
- FilterInterface::filterImage() to apply the filter onto the
- current image.
-
- \section1 The PaintArea Class
-
- The \c PaintArea class contains some code that deals with \c
- BrushInterface, so we'll review it briefly.
-
- \snippet plugandpaint/paintarea.cpp 0
-
- In \c setBrush(), we simply store the \c BrushInterface and the
- brush that are given to us by \c MainWindow.
-
- \snippet plugandpaint/paintarea.cpp 1
-
- In the \l{QWidget::mouseMoveEvent()}{mouse move event handler},
- we call the \c BrushInterface::mouseMove() function on the
- current \c BrushInterface, with the current brush. The mouse
- press and mouse release handlers are very similar.
-
- \section1 The PluginDialog Class
-
- The \c PluginDialog class provides information about the loaded
- plugins to the user. Its constructor takes a path to the plugins
- and a list of plugin file names. It calls \c findPlugins()
- to fill the QTreeWdiget with information about the plugins:
-
- \snippet plugandpaint/plugindialog.cpp 0
-
- The \c findPlugins() is very similar to \c
- MainWindow::loadPlugins(). It uses QPluginLoader to access the
- static and dynamic plugins. Its helper function \c
- populateTreeWidget() uses \l qobject_cast() to find out which
- interfaces are implemented by the plugins:
-
- \snippet plugandpaint/plugindialog.cpp 1
-
- \section1 Importing Static Plugins
-
- The \l{plugandpaintplugins/basictools}{Basic Tools} plugin
- is built as a static plugin, to ensure that it is always
- available to the application. This requires using the
- Q_IMPORT_PLUGIN() macro somewhere in the application (in a \c
- .cpp file) and specifying the plugin in the \c .pro file.
-
- For Plug & Paint, we have chosen to put Q_IMPORT_PLUGIN() in \c
- main.cpp:
-
- \snippet plugandpaint/main.cpp 0
-
- The argument to Q_IMPORT_PLUGIN() is the plugin's name, as
- specified with Q_EXPORT_PLUGIN2() in the \l{Exporting the
- Plugin}{plugin}.
-
- In the \c .pro file, we need to specify the static library.
- Here's the project file for building Plug & Paint:
-
- \snippet plugandpaint/plugandpaint.pro 0
-
- The \c LIBS line variable specifies the library \c pnp_basictools
- located in the \c ../plugandpaintplugins/basictools directory.
- (Although the \c LIBS syntax has a distinct Unix flavor, \c qmake
- supports it on all platforms.)
-
- The \c CONFIG() code at the end is necessary for this example
- because the example is part of the Qt distribution and Qt can be
- configured to be built simultaneously in debug and in release
- modes. You don't need to for your own plugin applications.
-
- This completes our review of the Plug & Paint application. At
- this point, you might want to take a look at the
- \l{plugandpaintplugins/basictools}{Basic Tools} example
- plugin.
-*/
-
-/*!
- \example plugandpaintplugins/basictools
- \title Plug & Paint Basic Tools Example
-
- The Basic Tools example is a static plugin for the
- \l{plugandpaint}{Plug & Paint} example. It provides a set
- of basic brushes, shapes, and filters. Through the Basic Tools
- example, we will review the four steps involved in writing a Qt
- plugin:
-
- \list 1
- \li Declare a plugin class.
- \li Implement the interfaces provided by the plugin.
- \li Export the plugin using the Q_EXPORT_PLUGIN2() macro.
- \li Build the plugin using an adequate \c .pro file.
- \endlist
-
- \section1 Declaration of the Plugin Class
-
- \snippet plugandpaintplugins/basicbasictoolsplugin.h 0
-
- We start by including \c interfaces.h, which defines the plugin
- interfaces for the \l{plugandpaint}{Plug & Paint}
- application. For the \c #include to work, we need to add an \c
- INCLUDEPATH entry to the \c .pro file with the path to Qt's \c
- examples/tools directory.
-
- The \c BasicToolsPlugin class is a QObject subclass that
- implements the \c BrushInterface, the \c ShapeInterface, and the
- \c FilterInterface. This is done through multiple inheritance.
- The \c Q_INTERFACES() macro is necessary to tell \l{moc}, Qt's
- meta-object compiler, that the base classes are plugin
- interfaces. Without the \c Q_INTERFACES() macro, we couldn't use
- \l qobject_cast() in the \l{plugandpaint}{Plug & Paint}
- application to detect interfaces.
-
- \snippet plugandpaintplugins/basicbasictoolsplugin.h 2
-
- In the \c public section of the class, we declare all the
- functions from the three interfaces.
-
- \section1 Implementation of the Brush Interface
-
- Let's now review the implementation of the \c BasicToolsPlugin
- member functions inherited from \c BrushInterface.
-
- \snippet plugandpaintplugins/basicbasictoolsplugin.cpp 0
-
- The \c brushes() function returns a list of brushes provided by
- this plugin. We provide three brushes: \uicontrol{Pencil}, \uicontrol{Air
- Brush}, and \uicontrol{Random Letters}.
-
- \snippet plugandpaintplugins/basicbasictoolsplugin.cpp 1
-
- On a mouse press event, we just call \c mouseMove() to draw the
- spot where the event occurred.
-
- \snippet plugandpaintplugins/basicbasictoolsplugin.cpp 2
-
- In \c mouseMove(), we start by saving the state of the QPainter
- and we compute a few variables that we'll need later.
-
- \snippet plugandpaintplugins/basicbasictoolsplugin.cpp 3
-
- Then comes the brush-dependent part of the code:
-
- \list
- \li If the brush is \uicontrol{Pencil}, we just call
- QPainter::drawLine() with the current QPen.
-
- \li If the brush is \uicontrol{Air Brush}, we start by setting the
- painter's QBrush to Qt::Dense6Pattern to obtain a dotted
- pattern. Then we draw a circle filled with that QBrush several
- times, resulting in a thick line.
-
- \li If the brush is \uicontrol{Random Letters}, we draw a random letter
- at the new cursor position. Most of the code is for setting
- the font to be bold and larger than the default font and for
- computing an appropriate bounding rect.
- \endlist
-
- At the end, we restore the painter state to what it was upon
- entering the function and we return the bounding rectangle.
-
- \snippet plugandpaintplugins/basicbasictoolsplugin.cpp 4
-
- When the user releases the mouse, we do nothing and return an
- empty QRect.
-
- \section1 Implementation of the Shape Interface
-
- \snippet plugandpaintplugins/basicbasictoolsplugin.cpp 5
-
- The plugin provides three shapes: \uicontrol{Circle}, \uicontrol{Star}, and
- \uicontrol{Text...}. The three dots after \uicontrol{Text} are there because
- the shape pops up a dialog asking for more information. We know
- that the shape names will end up in a menu, so we include the
- three dots in the shape name.
-
- A cleaner but more complicated design would have been to
- distinguish between the internal shape name and the name used in
- the user interface.
-
- \snippet plugandpaintplugins/basicbasictoolsplugin.cpp 6
-
- The \c generateShape() creates a QPainterPath for the specified
- shape. If the shape is \uicontrol{Text}, we pop up a QInputDialog to
- let the user enter some text.
-
- \section1 Implementation of the Filter Interface
-
- \snippet plugandpaintplugins/basicbasictoolsplugin.cpp 7
-
- The plugin provides three filters: \uicontrol{Invert Pixels}, \uicontrol{Swap
- RGB}, and \uicontrol{Grayscale}.
-
- \snippet plugandpaintplugins/basicbasictoolsplugin.cpp 8
-
- The \c filterImage() function takes a filter name and a QImage as
- parameters and returns an altered QImage. The first thing we do
- is to convert the image to a 32-bit RGB format, to ensure that
- the algorithms will work as expected. For example,
- QImage::invertPixels(), which is used to implement the
- \uicontrol{Invert Pixels} filter, gives counterintuitive results for
- 8-bit images, because they invert the indices into the color
- table instead of inverting the color table's entries.
-
- \section1 Exporting the Plugin
-
- Whereas applications have a \c main() function as their entry
- point, plugins need to contain exactly one occurrence of the
- Q_EXPORT_PLUGIN2() macro to specify which class provides the
- plugin:
-
- \snippet plugandpaintplugins/basicbasictoolsplugin.cpp 9
-
- This line may appear in any \c .cpp file that is part of the
- plugin's source code.
-
- \section1 The .pro File
-
- Here's the project file for building the Basic Tools plugin:
-
- \snippet plugandpaintplugins/basicbasictools.pro 0
-
- The \c .pro file differs from typical \c .pro files in many
- respects. First, it starts with a \c TEMPLATE entry specifying \c
- lib. (The default template is \c app.) It also adds \c plugin to
- the \c CONFIG variable. This is necessary on some platforms to
- avoid generating symbolic links with version numbers in the file
- name, which is appropriate for most dynamic libraries but not for
- plugins.
-
- To make the plugin a static plugin, all that is required is to
- specify \c static in addition to \c plugin. The
- \l{plugandpaintplugins/extrafilters}{Extra Filters} plugin,
- which is compiled as a dynamic plugin, doesn't specify \c static
- in its \c .pro file.
-
- The \c INCLUDEPATH variable sets the search paths for global
- headers (i.e., header files included using \c{#include <...>}).
- We add Qt's \c examples/tools directory (strictly speaking,
- \c{examples/tools/plugandpaintplugins/basictools/../..}) to the
- list, so that we can include \c <plugandpaint/interfaces.h>.
-
- The \c TARGET variable specifies which name we want to give the
- target library. We use \c pnp_ as the prefix to show that the
- plugin is designed to work with Plug & Paint. On Unix, \c lib is
- also prepended to that name. On all platforms, a
- platform-specific suffix is appended (e.g., \c .dll on Windows,
- \c .a on Linux).
-
- The \c CONFIG() code at the end is necessary for this example
- because the example is part of the Qt distribution and Qt can be
- configured to be built simultaneously in debug and in release
- modes. You don't need to for your own plugins.
-*/
-
-/*!
- \example plugandpaintplugins/extrafilters
- \title Plug & Paint Extra Filters Example
-
- The Extra Filters example is a plugin for the
- \l{plugandpaint}{Plug & Paint} example. It provides a set
- of filters in addition to those provided by the
- \l{plugandpaintplugins/basictools}{Basic Tools} plugin.
-
- Since the approach is identical to
- \l{plugandpaintplugins/basictools}{Basic Tools}, we won't
- review the code here. The only part of interest is the
- \c .pro file, since Extra Filters is a dynamic plugin
- (\l{plugandpaintplugins/basictools}{Basic Tools} is
- linked statically into the Plug & Paint executable).
-
- Here's the project file for building the Extra Filters plugin:
-
- \snippet plugandpaintplugins/extrafilters/extrafilters.pro 0
-
- The \c .pro file differs from typical \c .pro files in many
- respects. First, it starts with a \c TEMPLATE entry specifying \c
- lib. (The default template is \c app.) It also adds \c plugin to
- the \c CONFIG variable. This is necessary on some platforms to
- avoid generating symbolic links with version numbers in the file
- name, which is appropriate for most dynamic libraries but not for
- plugins.
-
- The \c INCLUDEPATH variable sets the search paths for global
- headers (i.e., header files included using \c{#include <...>}).
- We add Qt's \c examples/tools directory (strictly speaking,
- \c{examples/tools/plugandpaintplugins/basictools/../..}) to the
- list, so that we can include \c <plugandpaint/interfaces.h>.
-
- The \c TARGET variable specifies which name we want to give the
- target library. We use \c pnp_ as the prefix to show that the
- plugin is designed to work with Plug & Paint. On Unix, \c lib is
- also prepended to that name. On all platforms, a
- platform-specific suffix is appended (e.g., \c .dll on Windows,
- \c .so on Linux).
-
- The \c DESTDIR variable specifies where we want to install the
- plugin. We put it in Plug & Paint's \c plugins subdirectory,
- since that's where the application looks for dynamic plugins.
-
- The \c CONFIG() code at the end is necessary for this example
- because the example is part of the Qt distribution and Qt can be
- configured to be built simultaneously in debug and in release
- modes. You don't need to for your own plugins.
-*/
diff --git a/examples/tools/doc/regexp-example.png b/examples/tools/doc/regexp-example.png
deleted file mode 100644
index 0f31a2f93f..0000000000
--- a/examples/tools/doc/regexp-example.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/doc/regexp.qdoc b/examples/tools/doc/regexp.qdoc
deleted file mode 100644
index f90e6a899d..0000000000
--- a/examples/tools/doc/regexp.qdoc
+++ /dev/null
@@ -1,37 +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 regexp
- \title Regular Expressions Example
-
- The Regular Expressions (RegExp) example shows how regular expressions in Qt are
- applied to text by providing an environment in which new regular expressions can be
- created and tested on custom text strings.
-
- \image regexp-example.png
-*/
diff --git a/examples/tools/doc/settingseditor-example.png b/examples/tools/doc/settingseditor-example.png
deleted file mode 100644
index 7a5be05fd0..0000000000
--- a/examples/tools/doc/settingseditor-example.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/doc/settingseditor.qdoc b/examples/tools/doc/settingseditor.qdoc
deleted file mode 100644
index d4985f226b..0000000000
--- a/examples/tools/doc/settingseditor.qdoc
+++ /dev/null
@@ -1,37 +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 settingseditor
- \title Settings Editor Example
-
- The Settings Editor example shows how Qt's standard settings support is used in an
- application by providing an editor that enables the user to view the settings for
- installed applications, and modify those that can be edited.
-
- \image settingseditor-example.png
-*/
diff --git a/examples/tools/doc/styleplugin.qdoc b/examples/tools/doc/styleplugin.qdoc
deleted file mode 100644
index 088c660727..0000000000
--- a/examples/tools/doc/styleplugin.qdoc
+++ /dev/null
@@ -1,137 +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 styleplugin
- \title Style Plugin Example
-
- This example shows how to create a plugin that extends Qt with a new
- GUI look and feel.
-
- \image stylepluginexample.png
-
- A plugin in Qt is a class stored in a shared library that can be
- loaded by a QPluginLoader at run-time. When you create plugins in
- Qt, they either extend a Qt application or Qt itself. Writing a
- plugin that extends Qt itself is achieved by inheriting one of the
- plugin \l{Plugin Classes}{base classes}, reimplementing functions
- from that class, and adding a macro. In this example we extend Qt
- by adding a new GUI look and feel (i.e., making a new QStyle
- available). A high-level introduction to plugins is given in the
- plugin \l{How to Create Qt Plugins}{overview document}.
-
- Plugins that provide new styles inherit the QStylePlugin base
- class. Style plugins are loaded by Qt and made available through
- QStyleFactory; we will look at this later. We have implemented \c
- SimpleStylePlugin, which provides \c SimpleStyle. The new style
- contributes to widget styling by drawing button backgrounds in
- red - not a major contribution, but it still makes a new style.
-
- The new style is platform agnostic in the sense that it is not
- based on any specific style implementation, but uses QProxyStyle
- to merely tweak the looks in the current application style that
- defaults to the native system style.
-
- \note On some platforms, the native style will prevent the button
- from having a red background. In this case, try to run the example
- in another style (e.g., fusion).
-
- We test the plugin with \c StyleWindow, in which we display a
- QPushButton. The \c SimpleStyle and \c StyleWindow classes do not
- contain any plugin specific functionality and their implementations
- are trivial; we will therefore leap past them and head on to the \c
- SimpleStylePlugin and the \c main() function. After we have looked
- at that, we examine the plugin's profile.
-
-
- \section1 SimpleStylePlugin Class Definition
-
- \c SimpleStylePlugin inherits QStylePlugin and is the plugin
- class.
-
- \snippet styleplugin/plugin/simplestyleplugin.h 0
-
- \c keys() returns a list of style names that this plugin can
- create, while \c create() takes such a string and returns the
- QStyle corresponding to the key. Both functions are pure virtual
- functions reimplemented from QStylePlugin. When an application
- requests an instance of the \c SimpleStyle style, which this
- plugin creates, Qt will create it with this plugin.
-
-
- \section1 SimpleStylePlugin Class Implementation
-
- Here is the implementation of \c keys():
-
- \snippet styleplugin/plugin/simplestyleplugin.cpp 0
-
- Since this plugin only supports one style, we return a QStringList
- with the class name of that style.
-
- Here is the \c create() function:
-
- \snippet styleplugin/plugin/simplestyleplugin.cpp 1
-
- Note that the key for style plugins are case insensitive.
- The case sensitivity varies from plugin to plugin, so you need to
- check this when implementing new plugins.
-
- \section1 The \c main() function
-
- \snippet styleplugin/stylewindow/main.cpp 0
-
- Qt loads the available style plugins when the QApplication object
- is initialized. The QStyleFactory class knows about all styles and
- produces them with \l{QStyleFactory::}{create()} (it is a
- wrapper around all the style plugins).
-
- \section1 The Simple Style Plugin Profile
-
- The \c SimpleStylePlugin lives in its own directory and have
- its own profile:
-
- \snippet styleplugin/plugin/plugin.pro 0
-
- In the plugin profile we need to set the lib template as we are
- building a shared library instead of an executable. We must also
- set the config to plugin. We set the library to be stored in the
- styles folder under stylewindow because this is a path in which Qt
- will search for style plugins.
-
- \section1 Related articles and examples
-
- In addition to the plugin \l{How to Create Qt Plugins}{overview
- document}, we have other examples and articles that concern
- plugins.
-
- In the \l{Echo Plugin Example}{echo plugin example} we show how to
- implement plugins that extends Qt applications rather than Qt
- itself, which is the case with the style plugin of this example.
- The \l{Plug & Paint Example}{plug & paint} example shows how to
- implement a static plugin as well as being a more involved example
- on plugins that extend applications.
-*/
diff --git a/examples/tools/doc/stylepluginexample.png b/examples/tools/doc/stylepluginexample.png
deleted file mode 100644
index 05d8c6b5cf..0000000000
--- a/examples/tools/doc/stylepluginexample.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/doc/textfinder-example-userinterface.png b/examples/tools/doc/textfinder-example-userinterface.png
deleted file mode 100644
index 2bebe2e9dd..0000000000
--- a/examples/tools/doc/textfinder-example-userinterface.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/doc/treemodelcompleter-example.png b/examples/tools/doc/treemodelcompleter-example.png
deleted file mode 100644
index 000405fe39..0000000000
--- a/examples/tools/doc/treemodelcompleter-example.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/doc/treemodelcompleter.qdoc b/examples/tools/doc/treemodelcompleter.qdoc
deleted file mode 100644
index b4491f6104..0000000000
--- a/examples/tools/doc/treemodelcompleter.qdoc
+++ /dev/null
@@ -1,171 +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 treemodelcompleter
- \title Tree Model Completer Example
-
- The Tree Model Completer example shows how to provide completion
- facilities for a hierarchical model, using a period as the separator
- to access Child, GrandChild and GrandGrandChild level objects.
-
- \image treemodelcompleter-example.png
-
- Similar to the \l{Completer Example}, we provide QComboBox objects to
- enable selection for completion mode and case sensitivity, as well as
- a QCheckBox for wrap completions.
-
- \section1 The Resource File
-
- The contents of the TreeModelCompleter is read from \e treemodel.txt.
- This file is embedded within the \e treemodelcompleter.qrc resource file,
- which contains the following:
-
- \quotefile treemodelcompleter/treemodelcompleter.qrc
-
- \section1 TreeModelCompleter Class Definition
-
- The \c TreeModelCompleter is a subclass of QCompleter with two
- constructors - one with \a parent as an argument and another with
- \a parent and \a model as arguments.
-
- \snippet treemodelcompleter/treemodelcompleter.h 0
-
- The class reimplements the protected functions
- \l{QCompleter::splitPath()}{splitPath()} and
- \l{QCompleter::pathFromIndex()}{pathFromIndex()} to suit a tree model.
- For more information on customizing QCompleter to suit tree models, refer
- to \l{QCompleter#Handling Tree Models}{Handling Tree Models}.
-
- \c TreeModelCompleter also has a separator property which is declared
- using the Q_PROPERTY() macro. The separator has READ and WRITE attributes
- and the corresponding functions \c separator() and \c setSeparator(). For
- more information on Q_PROPERTY(), refer to \l{Qt's Property System}.
-
- \section1 TreeModelCompleter Class Implementation
-
- The first constructor constructs a \c TreeModelCompleter object with a
- parent while the second constructor constructs an object with a parent
- and a QAbstractItemModel, \a model.
-
- \snippet treemodelcompleter/treemodelcompleter.cpp 0
- \codeline
- \snippet treemodelcompleter/treemodelcompleter.cpp 1
-
- The \c separator() function is a getter function that returns the
- separator string.
-
- \snippet treemodelcompleter/treemodelcompleter.cpp 2
-
- As mentioned earlier, the \c splitPath() function is reimplemented because
- the default implementation is more suited to QDirModel or list models. In
- order for QCompleter to split the path into a list of strings that are
- matched at each level, we split it using QString::split() with \c sep as its
- separator.
-
- \snippet treemodelcompleter/treemodelcompleter.cpp 3
-
- The \c pathFromIndex() function returns data for the completionRole() for a
- tree model. This function is reimplemented as its default implementation is
- more suitable for list models. If there is no separator, we use
- \l{QCompleter}'s default implementation, otherwise we use the
- \l{QStringList::prepend()}{prepend()} function to navigate upwards and
- accumulate the data. The function then returns a QStringList, \c dataList,
- using a separator to join objects of different levels.
-
- \snippet treemodelcompleter/treemodelcompleter.cpp 4
-
- \section1 MainWindow Class Definition
-
- The \c MainWindow class is a subclass of QMainWindow and implements five
- custom slots: \c about(), \c changeCase(), \c changeMode(),
- \c highlight(), and \c updateContentsLabel().
-
- \snippet treemodelcompleter/mainwindow.h 0
-
- In addition, the class has two private functions, \c createMenu() and
- \c modelFromFile(), as well as private instances of QTreeView, QComboBox,
- QLabel, \c TreeModelCompleter and QLineEdit.
-
- \snippet treemodelcompleter/mainwindow.h 1
-
- \section1 MainWindow Class Implementation
-
- The \c{MainWindow}'s constructor creates a \c MainWindow object with a
- parent and initializes the \c completer and \c lineEdit. The
- \c createMenu() function is invoked to set up the "File" menu and "Help"
- menu. The \c{completer}'s model is set to the QAbstractItemModel obtained
- from \c modelFromFile(), and the \l{QCompleter::highlighted()}
- {highlighted()} signal is connected to \c{MainWindow}'s \c highlight()
- slot.
-
- \snippet treemodelcompleter/mainwindow.cpp 0
-
- The QLabel objects \c modelLabel, \c modeLabel and \c caseLabel are
- instantiated. Also, the QComboBox objects, \c modeCombo and \c caseCombo,
- are instantiated and populated. By default, the \c{completer}'s mode is
- "Filtered Popup" and the case is insensitive.
-
- \snippet treemodelcompleter/mainwindow.cpp 1
- \codeline
- \snippet treemodelcompleter/mainwindow.cpp 2
-
- We use a QGridLayout to place all the objects in the \c MainWindow.
-
- \snippet treemodelcompleter/mainwindow.cpp 3
-
- The \c createMenu() function sets up the QAction objects required and
- adds them to the "File" menu and "Help" menu. The
- \l{QAction::triggered()}{triggered()} signals from these actions are
- connected to their respective slots.
-
- \snippet treemodelcompleter/mainwindow.cpp 4
-
- The \c changeMode() function accepts an \a index corresponding to the
- user's choice of completion mode and changes the \c{completer}'s mode
- accordingly.
-
- \snippet treemodelcompleter/mainwindow.cpp 5
-
- The \c about() function provides a brief description on the Tree Model
- Completer example.
-
- \snippet treemodelcompleter/mainwindow.cpp 6
-
- The \c changeCase() function alternates between \l{Qt::CaseSensitive}
- {Case Sensitive} and \l{Qt::CaseInsensitive}{Case Insensitive} modes,
- depending on the value of \a cs.
-
- \snippet treemodelcompleter/mainwindow.cpp 7
-
- \section1 \c main() Function
-
- The \c main() function instantiates \c MainWindow and invokes the
- \l{QWidget::show()}{show()} function to display it.
-
- \snippet treemodelcompleter/main.cpp 0
-*/
diff --git a/examples/tools/doc/undo.qdoc b/examples/tools/doc/undo.qdoc
deleted file mode 100644
index 545a23c520..0000000000
--- a/examples/tools/doc/undo.qdoc
+++ /dev/null
@@ -1,43 +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 undo
- \title Undo Framework
-
- This example shows Qt's undo framework in action.
-
- \image undodemo.png
-
- Qt's undo framework is an implementation of the Command
- pattern, which provides advanced undo/redo functionality.
-
- To show the abilities of the framework, we have implemented a
- small diagram application in which the diagram items are geometric
- primitives. You can edit the diagram in the following ways: add,
- move, change the color of, and delete the items.
-*/
diff --git a/examples/tools/doc/undodemo.png b/examples/tools/doc/undodemo.png
deleted file mode 100644
index 85c3622738..0000000000
--- a/examples/tools/doc/undodemo.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/doc/undoframework.qdoc b/examples/tools/doc/undoframework.qdoc
deleted file mode 100644
index 0a798be5a7..0000000000
--- a/examples/tools/doc/undoframework.qdoc
+++ /dev/null
@@ -1,291 +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 undoframework
- \title Undo Framework Example
-
- This example shows how to implement undo/redo functionality
- with the Qt undo framework.
-
- \image undoframeworkexample.png The Undo Diagram Example
-
- In the Qt undo framework, all actions that the user performs are
- implemented in classes that inherit QUndoCommand. An undo command
- class knows how to both \l{QUndoCommand::}{redo()} - or just do
- the first time - and \l{QUndoCommand::}{undo()} an action. For
- each action the user performs, a command is placed on a
- QUndoStack. Since the stack contains all commands executed
- (stacked in chronological order) on the document, it can roll the
- state of the document backwards and forwards by undoing and redoing
- its commands. See the \l{Overview of Qt's Undo Framework}{overview
- document} for a high-level introduction to the undo framework.
-
- The undo example implements a simple diagram application. It is
- possible to add and delete items, which are either box or
- rectangular shaped, and move the items by dragging them with the
- mouse. The undo stack is shown in a QUndoView, which is a list in
- which the commands are shown as list items. Undo and redo are
- available through the edit menu. The user can also select a command
- from the undo view.
-
- We use the \l{Graphics View Framework}{graphics view
- framework} to implement the diagram. We only treat the related
- code briefly as the framework has examples of its own (e.g., the
- \l{Diagram Scene Example}).
-
- The example consists of the following classes:
-
- \list
- \li \c MainWindow is the main window and arranges the
- example's widgets. It creates the commands based
- on user input and keeps them on the command stack.
- \li \c AddCommand adds an item to the scene.
- \li \c DeleteCommand deletes an item from the scene.
- \li \c MoveCommand when an item is moved the MoveCommand keeps record
- of the start and stop positions of the move, and it
- moves the item according to these when \c redo() and \c undo()
- is called.
- \li \c DiagramScene inherits QGraphicsScene and
- emits signals for the \c MoveComands when an item is moved.
- \li \c DiagramItem inherits QGraphicsPolygonItem and represents
- an item in the diagram.
- \endlist
-
- \section1 MainWindow Class Definition
-
- \snippet undoframework/mainwindow.h 0
-
- The \c MainWindow class maintains the undo stack, i.e., it creates
- \l{QUndoCommand}s and pushes and pops them from the stack when it
- receives the \c triggered() signal from \c undoAction and \c
- redoAction.
-
- \section1 MainWindow Class Implementation
-
- We will start with a look at the constructor:
-
- \snippet undoframework/mainwindow.cpp 0
-
- In the constructor, we set up the DiagramScene and QGraphicsView.
-
- Here is the \c createUndoView() function:
-
- \snippet undoframework/mainwindow.cpp 1
-
- The QUndoView is a widget that display the text, which is set with
- the \l{QUndoCommand::}{setText()} function, for each QUndoCommand
- in the undo stack in a list.
-
- Here is the \c createActions() function:
-
- \snippet undoframework/mainwindow.cpp 2
- \codeline
- \snippet undoframework/mainwindow.cpp 3
- \dots
- \snippet undoframework/mainwindow.cpp 5
-
- The \c createActions() function sets up all the examples actions
- in the manner shown above. The
- \l{QUndoStack::}{createUndoAction()} and
- \l{QUndoStack::}{createRedoAction()} helps us crate actions that
- are disabled and enabled based on the state of the stack. Also,
- the text of the action will be updated automatically based on the
- \l{QUndoCommand::}{text()} of the undo commands. For the other
- actions we have implemented slots in the \c MainWindow class.
-
- Here is the \c createMenus() function:
-
- \snippet undoframework/mainwindow.cpp 6
-
- \dots
- \snippet undoframework/mainwindow.cpp 7
- \dots
- \snippet undoframework/mainwindow.cpp 8
-
- We have to use the QMenu \c aboutToShow() and \c aboutToHide()
- signals since we only want \c deleteAction to be enabled when we
- have selected an item.
-
- Here is the \c itemMoved() slot:
-
- \snippet undoframework/mainwindow.cpp 9
-
- We simply push a MoveCommand on the stack, which calls \c redo()
- on it.
-
- Here is the \c deleteItem() slot:
-
- \snippet undoframework/mainwindow.cpp 10
-
- An item must be selected to be deleted. We need to check if it is
- selected as the \c deleteAction may be enabled even if an item is
- not selected. This can happen as we do not catch a signal or event
- when an item is selected.
-
- Here is the \c itemMenuAboutToShow() and itemMenuAboutToHide() slots:
-
- \snippet undoframework/mainwindow.cpp 11
- \codeline
- \snippet undoframework/mainwindow.cpp 12
-
- We implement \c itemMenuAboutToShow() and \c itemMenuAboutToHide()
- to get a dynamic item menu. These slots are connected to the
- \l{QMenu::}{aboutToShow()} and \l{QMenu::}{aboutToHide()} signals.
- We need this to disable or enable the \c deleteAction.
-
- Here is the \c addBox() slot:
-
- \snippet undoframework/mainwindow.cpp 13
-
- The \c addBox() function creates an AddCommand and pushes it on
- the undo stack.
-
- Here is the \c addTriangle() sot:
-
- \snippet undoframework/mainwindow.cpp 14
-
- The \c addTriangle() function creates an AddCommand and pushes it
- on the undo stack.
-
- Here is the implementation of \c about():
-
- \snippet undoframework/mainwindow.cpp 15
-
- The about slot is triggered by the \c aboutAction and displays an
- about box for the example.
-
- \section1 AddCommand Class Definition
-
- \snippet undoframework/commands.h 2
-
- The \c AddCommand class adds DiagramItem graphics items to the
- DiagramScene.
-
- \section1 AddCommand Class Implementation
-
- We start with the constructor:
-
- \snippet undoframework/commands.cpp 7
-
- We first create the DiagramItem to add to the DiagramScene. The
- \l{QUndoCommand::}{setText()} function let us set a QString that
- describes the command. We use this to get custom messages in the
- QUndoView and in the menu of the main window.
-
- \snippet undoframework/commands.cpp 8
-
- \c undo() removes the item from the scene.
-
- \snippet undoframework/commands.cpp 9
-
- We set the position of the item as we do not do this in the
- constructor.
-
- \section1 DeleteCommand Class Definition
-
- \snippet undoframework/commands.h 1
-
- The DeleteCommand class implements the functionality to remove an
- item from the scene.
-
- \section1 DeleteCommand Class Implementation
-
- \snippet undoframework/commands.cpp 4
-
- We know that there must be one selected item as it is not possible
- to create a DeleteCommand unless the item to be deleted is
- selected and that only one item can be selected at any time.
- The item must be unselected if it is inserted back into the
- scene.
-
- \snippet undoframework/commands.cpp 5
-
- The item is simply reinserted into the scene.
-
- \snippet undoframework/commands.cpp 6
-
- The item is removed from the scene.
-
- \section1 MoveCommand Class Definition
-
- \snippet undoframework/commands.h 0
-
- The \l{QUndoCommand::}{mergeWith()} is reimplemented to make
- consecutive moves of an item one MoveCommand, i.e, the item will
- be moved back to the start position of the first move.
-
- \section1 MoveCommand Class Implementation
-
-
- The constructor of MoveCommand looks like this:
-
- \snippet undoframework/commands.cpp 0
-
- We save both the old and new positions for undo and redo
- respectively.
-
- \snippet undoframework/commands.cpp 2
-
- We simply set the items old position and update the scene.
-
- \snippet undoframework/commands.cpp 3
-
- We set the item to its new position.
-
- \snippet undoframework/commands.cpp 1
-
- Whenever a MoveCommand is created, this function is called to
- check if it should be merged with the previous command. It is the
- previous command object that is kept on the stack. The function
- returns true if the command is merged; otherwise false.
-
- We first check whether it is the same item that has been moved
- twice, in which case we merge the commands. We update the position
- of the item so that it will take the last position in the move
- sequence when undone.
-
- \section1 DiagramScene Class Definition
-
- \snippet undoframework/diagramscene.h 0
-
- The DiagramScene implements the functionality to move a
- DiagramItem with the mouse. It emits a signal when a move is
- completed. This is caught by the \c MainWindow, which makes
- MoveCommands. We do not examine the implementation of DiagramScene
- as it only deals with graphics framework issues.
-
- \section1 The \c main() Function
-
- The \c main() function of the program looks like this:
-
- \snippet undoframework/main.cpp 0
-
- We draw a grid in the background of the DiagramScene, so we use a
- resource file. The rest of the function creates the \c MainWindow and
- shows it as a top level window.
-*/
diff --git a/examples/tools/doc/undoframeworkexample.png b/examples/tools/doc/undoframeworkexample.png
deleted file mode 100644
index 7e0a1df260..0000000000
--- a/examples/tools/doc/undoframeworkexample.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/echoplugin/echoplugin.pro b/examples/tools/echoplugin/echoplugin.pro
deleted file mode 100644
index ffd48fd25f..0000000000
--- a/examples/tools/echoplugin/echoplugin.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-#! [0]
-TEMPLATE = subdirs
-SUBDIRS = echowindow \
- plugin
-#! [0]
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/echoplugin
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS echoplugin.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/echoplugin
-INSTALLS += target sources
-
-QT += widgets
diff --git a/examples/tools/echoplugin/echowindow/echointerface.h b/examples/tools/echoplugin/echowindow/echointerface.h
deleted file mode 100644
index 9c85fdccff..0000000000
--- a/examples/tools/echoplugin/echowindow/echointerface.h
+++ /dev/null
@@ -1,63 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef ECHOINTERFACE_H
-#define ECHOINTERFACE_H
-
-#include <QString>
-
-//! [0]
-class EchoInterface
-{
-public:
- virtual ~EchoInterface() {}
- virtual QString echo(const QString &message) = 0;
-};
-
-
-QT_BEGIN_NAMESPACE
-
-#define EchoInterface_iid "org.qt-project.Qt.Examples.EchoInterface"
-
-Q_DECLARE_INTERFACE(EchoInterface, EchoInterface_iid)
-QT_END_NAMESPACE
-
-//! [0]
-#endif
diff --git a/examples/tools/echoplugin/echowindow/echowindow.cpp b/examples/tools/echoplugin/echowindow/echowindow.cpp
deleted file mode 100644
index 7cc97e16eb..0000000000
--- a/examples/tools/echoplugin/echowindow/echowindow.cpp
+++ /dev/null
@@ -1,118 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "echowindow.h"
-
-//! [0]
-EchoWindow::EchoWindow()
-{
- createGUI();
- setLayout(layout);
- setWindowTitle("Echo Plugin Example");
-
- if (!loadPlugin()) {
- QMessageBox::information(this, "Error", "Could not load the plugin");
- lineEdit->setEnabled(false);
- button->setEnabled(false);
- }
-}
-//! [0]
-
-//! [1]
-void EchoWindow::sendEcho()
-{
- QString text = echoInterface->echo(lineEdit->text());
- label->setText(text);
-}
-//! [1]
-
-//! [2]
-void EchoWindow::createGUI()
-{
- lineEdit = new QLineEdit;
- label = new QLabel;
- label->setFrameStyle(QFrame::Box | QFrame::Plain);
- button = new QPushButton(tr("Send Message"));
-
- connect(lineEdit, SIGNAL(editingFinished()),
- this, SLOT(sendEcho()));
- connect(button, SIGNAL(clicked()),
- this, SLOT(sendEcho()));
-
- layout = new QGridLayout;
- layout->addWidget(new QLabel(tr("Message:")), 0, 0);
- layout->addWidget(lineEdit, 0, 1);
- layout->addWidget(new QLabel(tr("Answer:")), 1, 0);
- layout->addWidget(label, 1, 1);
- layout->addWidget(button, 2, 1, Qt::AlignRight);
- layout->setSizeConstraint(QLayout::SetFixedSize);
-}
-//! [2]
-
-//! [3]
-bool EchoWindow::loadPlugin()
-{
- QDir pluginsDir(qApp->applicationDirPath());
-#if defined(Q_OS_WIN)
- if (pluginsDir.dirName().toLower() == "debug" || pluginsDir.dirName().toLower() == "release")
- pluginsDir.cdUp();
-#elif defined(Q_OS_MAC)
- if (pluginsDir.dirName() == "MacOS") {
- pluginsDir.cdUp();
- pluginsDir.cdUp();
- pluginsDir.cdUp();
- }
-#endif
- pluginsDir.cd("plugins");
- foreach (QString fileName, pluginsDir.entryList(QDir::Files)) {
- QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName));
- QObject *plugin = pluginLoader.instance();
- if (plugin) {
- echoInterface = qobject_cast<EchoInterface *>(plugin);
- if (echoInterface)
- return true;
- }
- }
-
- return false;
-}
-//! [3]
diff --git a/examples/tools/echoplugin/echowindow/echowindow.desktop b/examples/tools/echoplugin/echowindow/echowindow.desktop
deleted file mode 100644
index 7b36de401d..0000000000
--- a/examples/tools/echoplugin/echowindow/echowindow.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Echo Window
-Exec=/opt/usr/bin/echowindow
-Icon=echowindow
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/tools/echoplugin/echowindow/echowindow.h b/examples/tools/echoplugin/echowindow/echowindow.h
deleted file mode 100644
index fca3c707e1..0000000000
--- a/examples/tools/echoplugin/echowindow/echowindow.h
+++ /dev/null
@@ -1,79 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef ECHODIALOG_H
-#define ECHODIALOG_H
-
-#include <QWidget>
-
-#include "echointerface.h"
-
-QT_BEGIN_NAMESPACE
-class QString;
-class QLineEdit;
-class QLabel;
-class QPushButton;
-class QGridLayout;
-QT_END_NAMESPACE
-
-//! [0]
-class EchoWindow : public QWidget
-{
- Q_OBJECT
-
-public:
- EchoWindow();
-
-private slots:
- void sendEcho();
-
-private:
- void createGUI();
- bool loadPlugin();
-
- EchoInterface *echoInterface;
- QLineEdit *lineEdit;
- QLabel *label;
- QPushButton *button;
- QGridLayout *layout;
-};
-//! [0]
-
-#endif
diff --git a/examples/tools/echoplugin/echowindow/echowindow.pro b/examples/tools/echoplugin/echowindow/echowindow.pro
deleted file mode 100644
index 90bc831de1..0000000000
--- a/examples/tools/echoplugin/echowindow/echowindow.pro
+++ /dev/null
@@ -1,23 +0,0 @@
-HEADERS = echowindow.h \
- echointerface.h
-SOURCES = echowindow.cpp \
- main.cpp
-
-TARGET = echoplugin
-QMAKE_PROJECT_NAME = echopluginwindow
-win32 {
- CONFIG(debug, release|debug):DESTDIR = ../debug/
- CONFIG(release, release|debug):DESTDIR = ../release/
-} else {
- DESTDIR = ../
-}
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/echoplugin
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS echowindow.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/echoplugin/echowindow
-INSTALLS += target sources
-
-QT += widgets
-
-simulator: warning(This example might not fully work on Simulator platform)
diff --git a/examples/tools/echoplugin/echowindow/main.cpp b/examples/tools/echoplugin/echowindow/main.cpp
deleted file mode 100644
index e49b761170..0000000000
--- a/examples/tools/echoplugin/echowindow/main.cpp
+++ /dev/null
@@ -1,56 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "echowindow.h"
-#include "echointerface.h"
-
-//! [0]
-int main(int argv, char *args[])
-{
- QApplication app(argv, args);
-
- EchoWindow window;
- window.show();
-
- return app.exec();
-}
-//! [0]
diff --git a/examples/tools/echoplugin/plugin/echoplugin.cpp b/examples/tools/echoplugin/plugin/echoplugin.cpp
deleted file mode 100644
index 5345c5352d..0000000000
--- a/examples/tools/echoplugin/plugin/echoplugin.cpp
+++ /dev/null
@@ -1,50 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "echoplugin.h"
-
-//! [0]
-QString EchoPlugin::echo(const QString &message)
-{
- return message;
-}
-//! [0]
diff --git a/examples/tools/echoplugin/plugin/echoplugin.h b/examples/tools/echoplugin/plugin/echoplugin.h
deleted file mode 100644
index 69d76f76fd..0000000000
--- a/examples/tools/echoplugin/plugin/echoplugin.h
+++ /dev/null
@@ -1,60 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef ECHOPLUGIN_H
-#define ECHOPLUGIN_H
-
-#include <QObject>
-#include <QtPlugin>
-#include "echointerface.h"
-
-//! [0]
-class EchoPlugin : public QObject, EchoInterface
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.Examples.EchoInterface" FILE "echoplugin.json")
- Q_INTERFACES(EchoInterface)
-
-public:
- QString echo(const QString &message);
-};
-//! [0]
-
-#endif
diff --git a/examples/tools/echoplugin/plugin/echoplugin.json b/examples/tools/echoplugin/plugin/echoplugin.json
deleted file mode 100644
index 0967ef424b..0000000000
--- a/examples/tools/echoplugin/plugin/echoplugin.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/examples/tools/echoplugin/plugin/plugin.desktop b/examples/tools/echoplugin/plugin/plugin.desktop
deleted file mode 100644
index 5aba4d1c87..0000000000
--- a/examples/tools/echoplugin/plugin/plugin.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Echo Plugin
-Exec=/opt/usr/bin/plugin
-Icon=plugin
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/tools/echoplugin/plugin/plugin.pro b/examples/tools/echoplugin/plugin/plugin.pro
deleted file mode 100644
index 532a382586..0000000000
--- a/examples/tools/echoplugin/plugin/plugin.pro
+++ /dev/null
@@ -1,18 +0,0 @@
-#! [0]
-TEMPLATE = lib
-CONFIG += plugin
-INCLUDEPATH += ../echowindow
-HEADERS = echoplugin.h
-SOURCES = echoplugin.cpp
-OTHER_FILES += echoplugin.json
-TARGET = $$qtLibraryTarget(echoplugin)
-DESTDIR = ../plugins
-#! [0]
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/echoplugin/plugin
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS plugin.pro echoplugin.json
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/echoplugin/plugin
-INSTALLS += target sources
-
-QT += widgets
diff --git a/examples/tools/i18n/i18n.desktop b/examples/tools/i18n/i18n.desktop
deleted file mode 100644
index e1632c4d04..0000000000
--- a/examples/tools/i18n/i18n.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=I18N
-Exec=/opt/usr/bin/i18n
-Icon=i18n
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/tools/i18n/i18n.pro b/examples/tools/i18n/i18n.pro
deleted file mode 100644
index a02e25dcd0..0000000000
--- a/examples/tools/i18n/i18n.pro
+++ /dev/null
@@ -1,30 +0,0 @@
-HEADERS = languagechooser.h \
- mainwindow.h
-SOURCES = languagechooser.cpp \
- main.cpp \
- mainwindow.cpp
-RESOURCES += i18n.qrc
-TRANSLATIONS += translations/i18n_ar.ts \
- translations/i18n_cs.ts \
- translations/i18n_de.ts \
- translations/i18n_el.ts \
- translations/i18n_en.ts \
- translations/i18n_eo.ts \
- translations/i18n_fr.ts \
- translations/i18n_it.ts \
- translations/i18n_jp.ts \
- translations/i18n_ko.ts \
- translations/i18n_no.ts \
- translations/i18n_ru.ts \
- translations/i18n_sv.ts \
- translations/i18n_zh.ts
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/i18n
-sources.files = $$SOURCES $$HEADERS $$RESOURCES translations i18n.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/i18n
-INSTALLS += target sources
-
-QT += widgets
-
-simulator: warning(This example might not fully work on Simulator platform)
diff --git a/examples/tools/i18n/i18n.qrc b/examples/tools/i18n/i18n.qrc
deleted file mode 100644
index 16a89f140b..0000000000
--- a/examples/tools/i18n/i18n.qrc
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
- <file>translations/i18n_ar.qm</file>
- <file>translations/i18n_cs.qm</file>
- <file>translations/i18n_de.qm</file>
- <file>translations/i18n_el.qm</file>
- <file>translations/i18n_en.qm</file>
- <file>translations/i18n_eo.qm</file>
- <file>translations/i18n_fr.qm</file>
- <file>translations/i18n_it.qm</file>
- <file>translations/i18n_jp.qm</file>
- <file>translations/i18n_ko.qm</file>
- <file>translations/i18n_no.qm</file>
- <file>translations/i18n_ru.qm</file>
- <file>translations/i18n_sv.qm</file>
- <file>translations/i18n_zh.qm</file>
-</qresource>
-</RCC>
diff --git a/examples/tools/i18n/languagechooser.cpp b/examples/tools/i18n/languagechooser.cpp
deleted file mode 100644
index 0728e29547..0000000000
--- a/examples/tools/i18n/languagechooser.cpp
+++ /dev/null
@@ -1,166 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "languagechooser.h"
-#include "mainwindow.h"
-
-#ifdef Q_WS_MAC
-QT_BEGIN_NAMESPACE
-extern void qt_mac_set_menubar_merge(bool merge);
-QT_END_NAMESPACE
-#endif
-
-LanguageChooser::LanguageChooser(QWidget *parent)
- : QDialog(parent, Qt::WindowStaysOnTopHint)
-{
- groupBox = new QGroupBox("Languages");
-
- QGridLayout *groupBoxLayout = new QGridLayout;
-
- QStringList qmFiles = findQmFiles();
- for (int i = 0; i < qmFiles.size(); ++i) {
- QCheckBox *checkBox = new QCheckBox(languageName(qmFiles[i]));
- qmFileForCheckBoxMap.insert(checkBox, qmFiles[i]);
- connect(checkBox, SIGNAL(toggled(bool)), this, SLOT(checkBoxToggled()));
- groupBoxLayout->addWidget(checkBox, i / 2, i % 2);
- }
- groupBox->setLayout(groupBoxLayout);
-
- buttonBox = new QDialogButtonBox;
-
- showAllButton = buttonBox->addButton("Show All",
- QDialogButtonBox::ActionRole);
- hideAllButton = buttonBox->addButton("Hide All",
- QDialogButtonBox::ActionRole);
-
- connect(showAllButton, SIGNAL(clicked()), this, SLOT(showAll()));
- connect(hideAllButton, SIGNAL(clicked()), this, SLOT(hideAll()));
-
- QVBoxLayout *mainLayout = new QVBoxLayout;
- mainLayout->addWidget(groupBox);
- mainLayout->addWidget(buttonBox);
- setLayout(mainLayout);
-
-#ifdef Q_WS_MAC
- qt_mac_set_menubar_merge(false);
-#endif
-
- setWindowTitle("I18N");
-}
-
-bool LanguageChooser::eventFilter(QObject *object, QEvent *event)
-{
- if (event->type() == QEvent::Close) {
- MainWindow *window = qobject_cast<MainWindow *>(object);
- if (window) {
- QCheckBox *checkBox = mainWindowForCheckBoxMap.key(window);
- if (checkBox)
- checkBox->setChecked(false);
- }
- }
- return QWidget::eventFilter(object, event);
-}
-
-void LanguageChooser::closeEvent(QCloseEvent * /* event */)
-{
- qApp->quit();
-}
-
-void LanguageChooser::checkBoxToggled()
-{
- QCheckBox *checkBox = qobject_cast<QCheckBox *>(sender());
- MainWindow *window = mainWindowForCheckBoxMap[checkBox];
- if (!window) {
- QTranslator translator;
- translator.load(qmFileForCheckBoxMap[checkBox]);
- qApp->installTranslator(&translator);
-
- window = new MainWindow;
- window->setPalette(colorForLanguage(checkBox->text()));
-
- window->installEventFilter(this);
- mainWindowForCheckBoxMap.insert(checkBox, window);
- }
- window->setVisible(checkBox->isChecked());
-}
-
-void LanguageChooser::showAll()
-{
- foreach (QCheckBox *checkBox, qmFileForCheckBoxMap.keys())
- checkBox->setChecked(true);
-}
-
-void LanguageChooser::hideAll()
-{
- foreach (QCheckBox *checkBox, qmFileForCheckBoxMap.keys())
- checkBox->setChecked(false);
-}
-
-QStringList LanguageChooser::findQmFiles()
-{
- QDir dir(":/translations");
- QStringList fileNames = dir.entryList(QStringList("*.qm"), QDir::Files,
- QDir::Name);
- QMutableStringListIterator i(fileNames);
- while (i.hasNext()) {
- i.next();
- i.setValue(dir.filePath(i.value()));
- }
- return fileNames;
-}
-
-QString LanguageChooser::languageName(const QString &qmFile)
-{
- QTranslator translator;
- translator.load(qmFile);
-
- return translator.translate("MainWindow", "English");
-}
-
-QColor LanguageChooser::colorForLanguage(const QString &language)
-{
- uint hashValue = qHash(language);
- int red = 156 + (hashValue & 0x3F);
- int green = 156 + ((hashValue >> 6) & 0x3F);
- int blue = 156 + ((hashValue >> 12) & 0x3F);
- return QColor(red, green, blue);
-}
diff --git a/examples/tools/i18n/languagechooser.h b/examples/tools/i18n/languagechooser.h
deleted file mode 100644
index 4d350674e5..0000000000
--- a/examples/tools/i18n/languagechooser.h
+++ /dev/null
@@ -1,85 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef LANGUAGECHOOSER_H
-#define LANGUAGECHOOSER_H
-
-#include <QDialog>
-#include <QMap>
-#include <QStringList>
-
-QT_BEGIN_NAMESPACE
-class QAbstractButton;
-class QCheckBox;
-class QDialogButtonBox;
-class QGroupBox;
-QT_END_NAMESPACE
-class MainWindow;
-
-class LanguageChooser : public QDialog
-{
- Q_OBJECT
-
-public:
- LanguageChooser(QWidget *parent = 0);
-
-protected:
- bool eventFilter(QObject *object, QEvent *event);
- void closeEvent(QCloseEvent *event);
-
-private slots:
- void checkBoxToggled();
- void showAll();
- void hideAll();
-
-private:
- QStringList findQmFiles();
- QString languageName(const QString &qmFile);
- QColor colorForLanguage(const QString &language);
-
- QGroupBox *groupBox;
- QDialogButtonBox *buttonBox;
- QAbstractButton *showAllButton;
- QAbstractButton *hideAllButton;
- QMap<QCheckBox *, QString> qmFileForCheckBoxMap;
- QMap<QCheckBox *, MainWindow *> mainWindowForCheckBoxMap;
-};
-
-#endif
diff --git a/examples/tools/i18n/main.cpp b/examples/tools/i18n/main.cpp
deleted file mode 100644
index f57f2b4b2e..0000000000
--- a/examples/tools/i18n/main.cpp
+++ /dev/null
@@ -1,54 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-
-#include "languagechooser.h"
-#include "mainwindow.h"
-
-int main(int argc, char *argv[])
-{
- Q_INIT_RESOURCE(i18n);
-
- QApplication app(argc, argv);
- LanguageChooser chooser;
- chooser.show();
- return app.exec();
-}
diff --git a/examples/tools/i18n/mainwindow.cpp b/examples/tools/i18n/mainwindow.cpp
deleted file mode 100644
index a2e6da5e38..0000000000
--- a/examples/tools/i18n/mainwindow.cpp
+++ /dev/null
@@ -1,95 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "mainwindow.h"
-
-static const char * const listEntries[] = {
- QT_TRANSLATE_NOOP("MainWindow", "First"),
- QT_TRANSLATE_NOOP("MainWindow", "Second"),
- QT_TRANSLATE_NOOP("MainWindow", "Third"),
- 0
-};
-
-MainWindow::MainWindow()
-{
- centralWidget = new QWidget;
- setCentralWidget(centralWidget);
-
- createGroupBox();
-
- listWidget = new QListWidget;
- for (int i = 0; listEntries[i]; ++i)
- listWidget->addItem(tr(listEntries[i]));
-
- QVBoxLayout *mainLayout = new QVBoxLayout;
- mainLayout->addWidget(groupBox);
- mainLayout->addWidget(listWidget);
- centralWidget->setLayout(mainLayout);
-
- exitAction = new QAction(tr("E&xit"), this);
- connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
-
- fileMenu = menuBar()->addMenu(tr("&File"));
- fileMenu->setPalette(QPalette(Qt::red));
- fileMenu->addAction(exitAction);
-
- setWindowTitle(tr("Language: %1").arg(tr("English")));
- statusBar()->showMessage(tr("Internationalization Example"));
-
- if (tr("LTR") == "RTL")
- setLayoutDirection(Qt::RightToLeft);
-}
-
-void MainWindow::createGroupBox()
-{
- groupBox = new QGroupBox(tr("View"));
- perspectiveRadioButton = new QRadioButton(tr("Perspective"));
- isometricRadioButton = new QRadioButton(tr("Isometric"));
- obliqueRadioButton = new QRadioButton(tr("Oblique"));
- perspectiveRadioButton->setChecked(true);
-
- QVBoxLayout *groupBoxLayout = new QVBoxLayout;
- groupBoxLayout->addWidget(perspectiveRadioButton);
- groupBoxLayout->addWidget(isometricRadioButton);
- groupBoxLayout->addWidget(obliqueRadioButton);
- groupBox->setLayout(groupBoxLayout);
-}
diff --git a/examples/tools/i18n/mainwindow.h b/examples/tools/i18n/mainwindow.h
deleted file mode 100644
index ab1131227d..0000000000
--- a/examples/tools/i18n/mainwindow.h
+++ /dev/null
@@ -1,76 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-
-QT_BEGIN_NAMESPACE
-class QAction;
-class QGroupBox;
-class QLabel;
-class QListWidget;
-class QMenu;
-class QRadioButton;
-QT_END_NAMESPACE
-
-class MainWindow : public QMainWindow
-{
- Q_OBJECT
-
-public:
- MainWindow();
-
-private:
- void createGroupBox();
-
- QWidget *centralWidget;
- QLabel *label;
- QGroupBox *groupBox;
- QListWidget *listWidget;
- QRadioButton *perspectiveRadioButton;
- QRadioButton *isometricRadioButton;
- QRadioButton *obliqueRadioButton;
- QMenu *fileMenu;
- QAction *exitAction;
-};
-
-#endif
diff --git a/examples/tools/i18n/translations/i18n_ar.qm b/examples/tools/i18n/translations/i18n_ar.qm
deleted file mode 100644
index a134c468bb..0000000000
--- a/examples/tools/i18n/translations/i18n_ar.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_ar.ts b/examples/tools/i18n/translations/i18n_ar.ts
deleted file mode 100644
index a7ec2c9404..0000000000
--- a/examples/tools/i18n/translations/i18n_ar.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>First</source>
- <translation>أول</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>مثال التدويل</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>متماثل</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>اللغة: %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>العربية</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>مصمت</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>منظور</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>ثانى</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>ثالث</translation>
- </message>
- <message>
- <source>View</source>
- <translation>مرئى</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>أخرج</translation>
- </message>
- <message>
- <source>&amp;File</source>
- <translation>الملÙ</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>RTL</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_cs.qm b/examples/tools/i18n/translations/i18n_cs.qm
deleted file mode 100644
index 5b7ff95b05..0000000000
--- a/examples/tools/i18n/translations/i18n_cs.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_cs.ts b/examples/tools/i18n/translations/i18n_cs.ts
deleted file mode 100644
index 6c4dee9b2e..0000000000
--- a/examples/tools/i18n/translations/i18n_cs.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>View</source>
- <translation>Pohled</translation>
- </message>
- <message>
- <source>&amp;File</source>
- <translation>&amp;Soubor</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>&amp;Konec</translation>
- </message>
- <message>
- <source>First</source>
- <translation>První</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>Třetí</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>Jayzk: %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>Český</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>Nakloněný</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>Druhý</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>Isometrický</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>Perspektivní</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>Ukázka lokalizace</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_de.qm b/examples/tools/i18n/translations/i18n_de.qm
deleted file mode 100644
index 177fc49b8b..0000000000
--- a/examples/tools/i18n/translations/i18n_de.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_de.ts b/examples/tools/i18n/translations/i18n_de.ts
deleted file mode 100644
index 249a61d020..0000000000
--- a/examples/tools/i18n/translations/i18n_de.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>View</source>
- <translation>Ansicht</translation>
- </message>
- <message>
- <source>&amp;File</source>
- <translation>&amp;Datei</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>Be&amp;enden</translation>
- </message>
- <message>
- <source>First</source>
- <translation>Erstens</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>Drittens</translation>
- </message>
- <message>
- <source>English</source>
- <translation>Deutsch</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>Sprache: %1</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>Schief</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>Zweitens</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>Isometrisch</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>Perspektivisch</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>Internationalisierungsbeispiel</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_el.qm b/examples/tools/i18n/translations/i18n_el.qm
deleted file mode 100644
index 5483291bb0..0000000000
--- a/examples/tools/i18n/translations/i18n_el.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_el.ts b/examples/tools/i18n/translations/i18n_el.ts
deleted file mode 100644
index d23a0aad3e..0000000000
--- a/examples/tools/i18n/translations/i18n_el.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>&amp;File</source>
- <translation>&amp;ΑÏχείο</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>Έ&amp;ξοδος</translation>
- </message>
- <message>
- <source>First</source>
- <translation>ΠÏώτο</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>ΠαÏάδειγμα διεθνοποίησης</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>ΙσομετÏική</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>Γλώσσα: %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>Ελληνικά</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>Πλάγια</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>ΠÏοοπτική</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>ΔεÏτεÏο</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>ΤÏίτο</translation>
- </message>
- <message>
- <source>View</source>
- <translation>Όψη</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_en.qm b/examples/tools/i18n/translations/i18n_en.qm
deleted file mode 100644
index 9190ac7e6f..0000000000
--- a/examples/tools/i18n/translations/i18n_en.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_en.ts b/examples/tools/i18n/translations/i18n_en.ts
deleted file mode 100644
index ca38e958c1..0000000000
--- a/examples/tools/i18n/translations/i18n_en.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>E&amp;xit</source>
- <translation>E&amp;xit</translation>
- </message>
- <message>
- <source>&amp;File</source>
- <translation>&amp;File</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>Internationalization Example</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>Language: %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>English</translation>
- </message>
- <message>
- <source>View</source>
- <translation>View</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>Perspective</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>Isometric</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>Oblique</translation>
- </message>
- <message>
- <source>First</source>
- <translation>First</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>Second</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>Third</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_eo.qm b/examples/tools/i18n/translations/i18n_eo.qm
deleted file mode 100644
index a8457bef06..0000000000
--- a/examples/tools/i18n/translations/i18n_eo.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_eo.ts b/examples/tools/i18n/translations/i18n_eo.ts
deleted file mode 100644
index 16a37becd9..0000000000
--- a/examples/tools/i18n/translations/i18n_eo.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>&amp;File</source>
- <translation>&amp;Dosiero</translation>
- </message>
- <message>
- <source>First</source>
- <translation>Unue</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>Ekzemplo pri internaciigo</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>Isometria</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>Lingvo: %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>Esperanto</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>Oblikva</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>Perspektiva</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>Due</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>Trie</translation>
- </message>
- <message>
- <source>View</source>
- <translation>Aspekto</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>&amp;Fini</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_fr.qm b/examples/tools/i18n/translations/i18n_fr.qm
deleted file mode 100644
index 3e8a69b80d..0000000000
--- a/examples/tools/i18n/translations/i18n_fr.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_fr.ts b/examples/tools/i18n/translations/i18n_fr.ts
deleted file mode 100644
index 0012892ef2..0000000000
--- a/examples/tools/i18n/translations/i18n_fr.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>View</source>
- <translation>Vue</translation>
- </message>
- <message>
- <source>&amp;File</source>
- <translation>&amp;Fichier</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>&amp;Quitter</translation>
- </message>
- <message>
- <source>First</source>
- <translation>Premier</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>Troisième</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>Langue : %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>Français</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>Oblique</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>Deuxième</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>Isométrique</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>Perspective</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>Exemple d&apos;internationalisation</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_it.qm b/examples/tools/i18n/translations/i18n_it.qm
deleted file mode 100644
index 3dffd30548..0000000000
--- a/examples/tools/i18n/translations/i18n_it.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_it.ts b/examples/tools/i18n/translations/i18n_it.ts
deleted file mode 100644
index d516a277b6..0000000000
--- a/examples/tools/i18n/translations/i18n_it.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>First</source>
- <translation>Primo</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>Esempio di localizzazione</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>Isometrica</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>Lingua: %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>Italiano</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>Obliqua</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>Prospettica</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>Secondo</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>Terzo</translation>
- </message>
- <message>
- <source>View</source>
- <translation>Vista</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>&amp;Esci</translation>
- </message>
- <message>
- <source>&amp;File</source>
- <translation>&amp;File</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_jp.qm b/examples/tools/i18n/translations/i18n_jp.qm
deleted file mode 100644
index 017bc96cfc..0000000000
--- a/examples/tools/i18n/translations/i18n_jp.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_jp.ts b/examples/tools/i18n/translations/i18n_jp.ts
deleted file mode 100644
index 067b5a8a0b..0000000000
--- a/examples/tools/i18n/translations/i18n_jp.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>&amp;File</source>
- <translation>ファイル(&amp;F)</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>終了(&amp;X)</translation>
- </message>
- <message>
- <source>First</source>
- <translation>第一行</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>国際化(i18n)ã®ä¾‹</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>等角投影法</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>言語: %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>日本語</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>æ–œã‚投影法</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>é è¿‘法</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>第二行</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>第三行</translation>
- </message>
- <message>
- <source>View</source>
- <translation>表示方å¼</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_ko.qm b/examples/tools/i18n/translations/i18n_ko.qm
deleted file mode 100644
index d61b93db39..0000000000
--- a/examples/tools/i18n/translations/i18n_ko.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_ko.ts b/examples/tools/i18n/translations/i18n_ko.ts
deleted file mode 100644
index bfd5924518..0000000000
--- a/examples/tools/i18n/translations/i18n_ko.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>&amp;File</source>
- <translation>파ì¼&amp;F</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>종료&amp;X</translation>
- </message>
- <message>
- <source>First</source>
- <translation>첫번째</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>국제화 예제</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>등측ë„</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>언어 : %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>한국어</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>ë¹—ê°</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>ì›ê·¼í™”법</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>ë‘번째</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>세번째</translation>
- </message>
- <message>
- <source>View</source>
- <translation>보기</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_no.qm b/examples/tools/i18n/translations/i18n_no.qm
deleted file mode 100644
index c84b0d74ba..0000000000
--- a/examples/tools/i18n/translations/i18n_no.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_no.ts b/examples/tools/i18n/translations/i18n_no.ts
deleted file mode 100644
index 2e06974997..0000000000
--- a/examples/tools/i18n/translations/i18n_no.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>View</source>
- <translation>Vis</translation>
- </message>
- <message>
- <source>&amp;File</source>
- <translation>&amp;Fil</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>&amp;Avslutt</translation>
- </message>
- <message>
- <source>First</source>
- <translation>Første</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>Tredje</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>Språk: %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>Norsk</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>Skjevt</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>Andre</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>Isometrisk</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>Perspektiv</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>Internasjonaliseringseksempel</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_ru.qm b/examples/tools/i18n/translations/i18n_ru.qm
deleted file mode 100644
index a76e1b8703..0000000000
--- a/examples/tools/i18n/translations/i18n_ru.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_ru.ts b/examples/tools/i18n/translations/i18n_ru.ts
deleted file mode 100644
index 748cc12fd9..0000000000
--- a/examples/tools/i18n/translations/i18n_ru.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="ru">
-<defaultcodec></defaultcodec>
-<context>
- <name>MainWindow</name>
- <message>
- <source>View</source>
- <translation>Вид</translation>
- </message>
- <message>
- <source>&amp;File</source>
- <translation>Файл</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>Выход</translation>
- </message>
- <message>
- <source>First</source>
- <translation>Первый</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>Третий</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>Язык: %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>РуÑÑкий</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>КурÑив</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>Второй</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>ИзометричеÑкий</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>ПерÑпектива</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>Пример интернационализации</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_sv.qm b/examples/tools/i18n/translations/i18n_sv.qm
deleted file mode 100644
index 7204b308b1..0000000000
--- a/examples/tools/i18n/translations/i18n_sv.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_sv.ts b/examples/tools/i18n/translations/i18n_sv.ts
deleted file mode 100644
index ac4ab98bd3..0000000000
--- a/examples/tools/i18n/translations/i18n_sv.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>View</source>
- <translation>Visa</translation>
- </message>
- <message>
- <source>&amp;File</source>
- <translation>&amp;Arkiv</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>&amp;Avsluta</translation>
- </message>
- <message>
- <source>First</source>
- <translation>Första</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>Tredje</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>Språk: %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>Svenska</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>Skevt</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>Andra</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>Isometriskt</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>Perspektivt</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>Internationaliseringsexempel</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/i18n/translations/i18n_zh.qm b/examples/tools/i18n/translations/i18n_zh.qm
deleted file mode 100644
index 32053f4633..0000000000
--- a/examples/tools/i18n/translations/i18n_zh.qm
+++ /dev/null
Binary files differ
diff --git a/examples/tools/i18n/translations/i18n_zh.ts b/examples/tools/i18n/translations/i18n_zh.ts
deleted file mode 100644
index 3b715470a8..0000000000
--- a/examples/tools/i18n/translations/i18n_zh.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE TS><TS>
-<context>
- <name>MainWindow</name>
- <message>
- <source>View</source>
- <translation>视图</translation>
- </message>
- <message>
- <source>&amp;File</source>
- <translation>文件[&amp;F]</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation>退出[&amp;x]</translation>
- </message>
- <message>
- <source>First</source>
- <translation>第一个</translation>
- </message>
- <message>
- <source>Third</source>
- <translation>第三个</translation>
- </message>
- <message>
- <source>Language: %1</source>
- <translation>语言: %1</translation>
- </message>
- <message>
- <source>English</source>
- <translation>简体中文</translation>
- </message>
- <message>
- <source>Oblique</source>
- <translation>斜投影</translation>
- </message>
- <message>
- <source>Second</source>
- <translation>第二个</translation>
- </message>
- <message>
- <source>Isometric</source>
- <translation>等角投影</translation>
- </message>
- <message>
- <source>Perspective</source>
- <translation>é€è§†æŠ•å½±</translation>
- </message>
- <message>
- <source>Internationalization Example</source>
- <translation>国际化范例</translation>
- </message>
- <message>
- <source>LTR</source>
- <translation>LTR</translation>
- </message>
-</context>
-</TS>
diff --git a/examples/tools/plugandpaint/interfaces.h b/examples/tools/plugandpaint/interfaces.h
deleted file mode 100644
index b2261a1eb2..0000000000
--- a/examples/tools/plugandpaint/interfaces.h
+++ /dev/null
@@ -1,114 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef INTERFACES_H
-#define INTERFACES_H
-
-#include <QtPlugin>
-
-QT_BEGIN_NAMESPACE
-class QImage;
-class QPainter;
-class QWidget;
-class QPainterPath;
-class QPoint;
-class QRect;
-class QString;
-class QStringList;
-QT_END_NAMESPACE
-
-//! [0]
-class BrushInterface
-{
-public:
- virtual ~BrushInterface() {}
-
- virtual QStringList brushes() const = 0;
- virtual QRect mousePress(const QString &brush, QPainter &painter,
- const QPoint &pos) = 0;
- virtual QRect mouseMove(const QString &brush, QPainter &painter,
- const QPoint &oldPos, const QPoint &newPos) = 0;
- virtual QRect mouseRelease(const QString &brush, QPainter &painter,
- const QPoint &pos) = 0;
-};
-//! [0]
-
-//! [1]
-class ShapeInterface
-{
-public:
- virtual ~ShapeInterface() {}
-
- virtual QStringList shapes() const = 0;
- virtual QPainterPath generateShape(const QString &shape,
- QWidget *parent) = 0;
-};
-//! [1]
-
-//! [2]
-class FilterInterface
-{
-public:
- virtual ~FilterInterface() {}
-
- virtual QStringList filters() const = 0;
- virtual QImage filterImage(const QString &filter, const QImage &image,
- QWidget *parent) = 0;
-};
-//! [2]
-
-QT_BEGIN_NAMESPACE
-//! [3] //! [4]
-#define BrushInterface_iid "org.qt-project.Qt.Examples.PlugAndPaint.BrushInterface"
-
-Q_DECLARE_INTERFACE(BrushInterface, BrushInterface_iid)
-//! [3]
-
-#define ShapeInterface_iid "org.qt-project.Qt.Examples.PlugAndPaint.ShapeInterface"
-
-Q_DECLARE_INTERFACE(ShapeInterface, ShapeInterface_iid)
-//! [5]
-#define FilterInterface_iid "org.qt-project.Qt.Examples.PlugAndPaint.FilterInterface"
-
-Q_DECLARE_INTERFACE(FilterInterface, FilterInterface_iid)
-//! [4] //! [5]
-QT_END_NAMESPACE
-
-#endif
diff --git a/examples/tools/plugandpaint/main.cpp b/examples/tools/plugandpaint/main.cpp
deleted file mode 100644
index 3b290da62b..0000000000
--- a/examples/tools/plugandpaint/main.cpp
+++ /dev/null
@@ -1,55 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-#include "mainwindow.h"
-#include <QtPlugin>
-#include <QApplication>
-
-Q_IMPORT_PLUGIN(BasicToolsPlugin)
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
- MainWindow window;
- window.show();
- return app.exec();
-}
-//! [0]
diff --git a/examples/tools/plugandpaint/mainwindow.cpp b/examples/tools/plugandpaint/mainwindow.cpp
deleted file mode 100644
index 5626cdb82c..0000000000
--- a/examples/tools/plugandpaint/mainwindow.cpp
+++ /dev/null
@@ -1,309 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-#include "interfaces.h"
-#include "mainwindow.h"
-#include "paintarea.h"
-#include "plugindialog.h"
-
-#include <QPluginLoader>
-#include <QTimer>
-
-#include <QScrollArea>
-#include <QMessageBox>
-#include <QActionGroup>
-#include <QAction>
-#include <QMenu>
-#include <QMenuBar>
-#include <QFileDialog>
-#include <QColorDialog>
-#include <QInputDialog>
-#include <QApplication>
-
-MainWindow::MainWindow() :
- paintArea(new PaintArea),
- scrollArea(new QScrollArea)
-{
- scrollArea->setBackgroundRole(QPalette::Dark);
- scrollArea->setWidget(paintArea);
- setCentralWidget(scrollArea);
-
- createActions();
- createMenus();
- loadPlugins();
-
- setWindowTitle(tr("Plug & Paint"));
-
- if (!brushActionGroup->actions().isEmpty())
- brushActionGroup->actions().first()->trigger();
-
- QTimer::singleShot(500, this, SLOT(aboutPlugins()));
-}
-
-void MainWindow::open()
-{
- const QString fileName = QFileDialog::getOpenFileName(this,
- tr("Open File"),
- QDir::currentPath());
- if (!fileName.isEmpty()) {
- if (!paintArea->openImage(fileName)) {
- QMessageBox::information(this, tr("Plug & Paint"),
- tr("Cannot load %1.").arg(fileName));
- return;
- }
- paintArea->adjustSize();
- }
-}
-
-bool MainWindow::saveAs()
-{
- const QString initialPath = QDir::currentPath() + "/untitled.png";
-
- const QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"),
- initialPath);
- if (fileName.isEmpty()) {
- return false;
- } else {
- return paintArea->saveImage(fileName, "png");
- }
-}
-
-void MainWindow::brushColor()
-{
- const QColor newColor = QColorDialog::getColor(paintArea->brushColor());
- if (newColor.isValid())
- paintArea->setBrushColor(newColor);
-}
-
-void MainWindow::brushWidth()
-{
- bool ok;
- const int newWidth = QInputDialog::getInt(this, tr("Plug & Paint"),
- tr("Select brush width:"),
- paintArea->brushWidth(),
- 1, 50, 1, &ok);
- if (ok)
- paintArea->setBrushWidth(newWidth);
-}
-
-//! [0]
-void MainWindow::changeBrush()
-{
- QAction *action = qobject_cast<QAction *>(sender());
- BrushInterface *iBrush = qobject_cast<BrushInterface *>(action->parent());
- const QString brush = action->text();
-
- paintArea->setBrush(iBrush, brush);
-}
-//! [0]
-
-//! [1]
-void MainWindow::insertShape()
-{
- QAction *action = qobject_cast<QAction *>(sender());
- ShapeInterface *iShape = qobject_cast<ShapeInterface *>(action->parent());
-
- const QPainterPath path = iShape->generateShape(action->text(), this);
- if (!path.isEmpty())
- paintArea->insertShape(path);
-}
-//! [1]
-
-//! [2]
-void MainWindow::applyFilter()
-{
- QAction *action = qobject_cast<QAction *>(sender());
- FilterInterface *iFilter =
- qobject_cast<FilterInterface *>(action->parent());
-
- const QImage image = iFilter->filterImage(action->text(), paintArea->image(),
- this);
- paintArea->setImage(image);
-}
-//! [2]
-
-void MainWindow::about()
-{
- QMessageBox::about(this, tr("About Plug & Paint"),
- tr("The <b>Plug & Paint</b> example demonstrates how to write Qt "
- "applications that can be extended through plugins."));
-}
-
-//! [3]
-void MainWindow::aboutPlugins()
-{
- PluginDialog dialog(pluginsDir.path(), pluginFileNames, this);
- dialog.exec();
-}
-//! [3]
-
-void MainWindow::createActions()
-{
- openAct = new QAction(tr("&Open..."), this);
- openAct->setShortcuts(QKeySequence::Open);
- connect(openAct, SIGNAL(triggered()), this, SLOT(open()));
-
- saveAsAct = new QAction(tr("&Save As..."), this);
- saveAsAct->setShortcuts(QKeySequence::SaveAs);
- connect(saveAsAct, SIGNAL(triggered()), this, SLOT(saveAs()));
-
- exitAct = new QAction(tr("E&xit"), this);
- exitAct->setShortcuts(QKeySequence::Quit);
- connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));
-
- brushColorAct = new QAction(tr("&Brush Color..."), this);
- connect(brushColorAct, SIGNAL(triggered()), this, SLOT(brushColor()));
-
- brushWidthAct = new QAction(tr("&Brush Width..."), this);
- connect(brushWidthAct, SIGNAL(triggered()), this, SLOT(brushWidth()));
-
- brushActionGroup = new QActionGroup(this);
-
- aboutAct = new QAction(tr("&About"), this);
- connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
-
- aboutQtAct = new QAction(tr("About &Qt"), this);
- connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
-
- aboutPluginsAct = new QAction(tr("About &Plugins"), this);
- connect(aboutPluginsAct, SIGNAL(triggered()), this, SLOT(aboutPlugins()));
-}
-
-void MainWindow::createMenus()
-{
- fileMenu = menuBar()->addMenu(tr("&File"));
- fileMenu->addAction(openAct);
- fileMenu->addAction(saveAsAct);
- fileMenu->addSeparator();
- fileMenu->addAction(exitAct);
-
- brushMenu = menuBar()->addMenu(tr("&Brush"));
- brushMenu->addAction(brushColorAct);
- brushMenu->addAction(brushWidthAct);
- brushMenu->addSeparator();
-
- shapesMenu = menuBar()->addMenu(tr("&Shapes"));
-
- filterMenu = menuBar()->addMenu(tr("&Filter"));
-
- menuBar()->addSeparator();
-
- helpMenu = menuBar()->addMenu(tr("&Help"));
- helpMenu->addAction(aboutAct);
- helpMenu->addAction(aboutQtAct);
- helpMenu->addAction(aboutPluginsAct);
-}
-
-//! [4]
-void MainWindow::loadPlugins()
-{
- foreach (QObject *plugin, QPluginLoader::staticInstances())
- populateMenus(plugin);
-//! [4] //! [5]
-
- pluginsDir = QDir(qApp->applicationDirPath());
-
-#if defined(Q_OS_WIN)
- if (pluginsDir.dirName().toLower() == "debug" || pluginsDir.dirName().toLower() == "release")
- pluginsDir.cdUp();
-#elif defined(Q_OS_MAC)
- if (pluginsDir.dirName() == "MacOS") {
- pluginsDir.cdUp();
- pluginsDir.cdUp();
- pluginsDir.cdUp();
- }
-#endif
- pluginsDir.cd("plugins");
-//! [5]
-
-//! [6]
- foreach (QString fileName, pluginsDir.entryList(QDir::Files)) {
- QPluginLoader loader(pluginsDir.absoluteFilePath(fileName));
- QObject *plugin = loader.instance();
- if (plugin) {
- populateMenus(plugin);
- pluginFileNames += fileName;
-//! [6] //! [7]
- }
-//! [7] //! [8]
- }
-//! [8]
-
-//! [9]
- brushMenu->setEnabled(!brushActionGroup->actions().isEmpty());
- shapesMenu->setEnabled(!shapesMenu->actions().isEmpty());
- filterMenu->setEnabled(!filterMenu->actions().isEmpty());
-}
-//! [9]
-
-//! [10]
-void MainWindow::populateMenus(QObject *plugin)
-{
- BrushInterface *iBrush = qobject_cast<BrushInterface *>(plugin);
- if (iBrush)
- addToMenu(plugin, iBrush->brushes(), brushMenu, SLOT(changeBrush()),
- brushActionGroup);
-
- ShapeInterface *iShape = qobject_cast<ShapeInterface *>(plugin);
- if (iShape)
- addToMenu(plugin, iShape->shapes(), shapesMenu, SLOT(insertShape()));
-
- FilterInterface *iFilter = qobject_cast<FilterInterface *>(plugin);
- if (iFilter)
- addToMenu(plugin, iFilter->filters(), filterMenu, SLOT(applyFilter()));
-}
-//! [10]
-
-void MainWindow::addToMenu(QObject *plugin, const QStringList &texts,
- QMenu *menu, const char *member,
- QActionGroup *actionGroup)
-{
- foreach (QString text, texts) {
- QAction *action = new QAction(text, plugin);
- connect(action, SIGNAL(triggered()), this, member);
- menu->addAction(action);
-
- if (actionGroup) {
- action->setCheckable(true);
- actionGroup->addAction(action);
- }
- }
-}
diff --git a/examples/tools/plugandpaint/mainwindow.h b/examples/tools/plugandpaint/mainwindow.h
deleted file mode 100644
index c4ea76dec4..0000000000
--- a/examples/tools/plugandpaint/mainwindow.h
+++ /dev/null
@@ -1,103 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QDir>
-#include <QMainWindow>
-#include <QStringList>
-
-QT_BEGIN_NAMESPACE
-class QAction;
-class QActionGroup;
-class QMenu;
-class QScrollArea;
-QT_END_NAMESPACE
-class PaintArea;
-
-class MainWindow : public QMainWindow
-{
- Q_OBJECT
-
-public:
- MainWindow();
-
-private slots:
- void open();
- bool saveAs();
- void brushColor();
- void brushWidth();
- void changeBrush();
- void insertShape();
- void applyFilter();
- void about();
- void aboutPlugins();
-
-private:
- void createActions();
- void createMenus();
- void loadPlugins();
- void populateMenus(QObject *plugin);
- void addToMenu(QObject *plugin, const QStringList &texts, QMenu *menu,
- const char *member, QActionGroup *actionGroup = 0);
-
- PaintArea *paintArea;
- QScrollArea *scrollArea;
- QDir pluginsDir;
- QStringList pluginFileNames;
-
- QMenu *fileMenu;
- QMenu *brushMenu;
- QMenu *shapesMenu;
- QMenu *filterMenu;
- QMenu *helpMenu;
- QActionGroup *brushActionGroup;
- QAction *openAct;
- QAction *saveAsAct;
- QAction *exitAct;
- QAction *brushWidthAct;
- QAction *brushColorAct;
- QAction *aboutAct;
- QAction *aboutQtAct;
- QAction *aboutPluginsAct;
-};
-
-#endif
diff --git a/examples/tools/plugandpaint/paintarea.cpp b/examples/tools/plugandpaint/paintarea.cpp
deleted file mode 100644
index 5cae92cb31..0000000000
--- a/examples/tools/plugandpaint/paintarea.cpp
+++ /dev/null
@@ -1,195 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-#include "interfaces.h"
-#include "paintarea.h"
-
-#include <QPainter>
-#include <QMouseEvent>
-
-PaintArea::PaintArea(QWidget *parent) :
- QWidget(parent),
- theImage(500, 400, QImage::Format_RGB32),
- color(Qt::blue),
- thickness(3),
- brushInterface(0),
- lastPos(-1, -1)
-{
- setAttribute(Qt::WA_StaticContents);
- setAttribute(Qt::WA_NoBackground);
-
- theImage.fill(qRgb(255, 255, 255));
-}
-
-bool PaintArea::openImage(const QString &fileName)
-{
- QImage image;
- if (!image.load(fileName))
- return false;
-
- setImage(image);
- return true;
-}
-
-bool PaintArea::saveImage(const QString &fileName, const char *fileFormat)
-{
- return theImage.save(fileName, fileFormat);
-}
-
-void PaintArea::setImage(const QImage &image)
-{
- theImage = image.convertToFormat(QImage::Format_RGB32);
- update();
- updateGeometry();
-}
-
-void PaintArea::insertShape(const QPainterPath &path)
-{
- pendingPath = path;
-#ifndef QT_NO_CURSOR
- setCursor(Qt::CrossCursor);
-#endif
-}
-
-void PaintArea::setBrushColor(const QColor &color)
-{
- this->color = color;
-}
-
-void PaintArea::setBrushWidth(int width)
-{
- thickness = width;
-}
-
-//! [0]
-void PaintArea::setBrush(BrushInterface *brushInterface, const QString &brush)
-{
- this->brushInterface = brushInterface;
- this->brush = brush;
-}
-//! [0]
-
-QSize PaintArea::sizeHint() const
-{
- return theImage.size();
-}
-
-void PaintArea::paintEvent(QPaintEvent * /* event */)
-{
- QPainter painter(this);
- painter.drawImage(QPoint(0, 0), theImage);
-}
-
-void PaintArea::mousePressEvent(QMouseEvent *event)
-{
- if (event->button() == Qt::LeftButton) {
- if (!pendingPath.isEmpty()) {
- QPainter painter(&theImage);
- setupPainter(painter);
-
- const QRectF boundingRect = pendingPath.boundingRect();
- QLinearGradient gradient(boundingRect.topRight(),
- boundingRect.bottomLeft());
- gradient.setColorAt(0.0, QColor(color.red(), color.green(),
- color.blue(), 63));
- gradient.setColorAt(1.0, QColor(color.red(), color.green(),
- color.blue(), 191));
- painter.setBrush(gradient);
- painter.translate(event->pos() - boundingRect.center());
- painter.drawPath(pendingPath);
-
- pendingPath = QPainterPath();
-#ifndef QT_NO_CURSOR
- unsetCursor();
-#endif
- update();
- } else {
- if (brushInterface) {
- QPainter painter(&theImage);
- setupPainter(painter);
- const QRect rect = brushInterface->mousePress(brush, painter,
- event->pos());
- update(rect);
- }
-
- lastPos = event->pos();
- }
- }
-}
-
-//! [1]
-void PaintArea::mouseMoveEvent(QMouseEvent *event)
-{
- if ((event->buttons() & Qt::LeftButton) && lastPos != QPoint(-1, -1)) {
- if (brushInterface) {
- QPainter painter(&theImage);
- setupPainter(painter);
- const QRect rect = brushInterface->mouseMove(brush, painter, lastPos,
- event->pos());
- update(rect);
- }
-
- lastPos = event->pos();
- }
-}
-//! [1]
-
-void PaintArea::mouseReleaseEvent(QMouseEvent *event)
-{
- if (event->button() == Qt::LeftButton && lastPos != QPoint(-1, -1)) {
- if (brushInterface) {
- QPainter painter(&theImage);
- setupPainter(painter);
- QRect rect = brushInterface->mouseRelease(brush, painter,
- event->pos());
- update(rect);
- }
-
- lastPos = QPoint(-1, -1);
- }
-}
-
-void PaintArea::setupPainter(QPainter &painter)
-{
- painter.setRenderHint(QPainter::Antialiasing, true);
- painter.setPen(QPen(color, thickness, Qt::SolidLine, Qt::RoundCap,
- Qt::RoundJoin));
-}
diff --git a/examples/tools/plugandpaint/paintarea.h b/examples/tools/plugandpaint/paintarea.h
deleted file mode 100644
index 1bc0f810e0..0000000000
--- a/examples/tools/plugandpaint/paintarea.h
+++ /dev/null
@@ -1,91 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef PAINTAREA_H
-#define PAINTAREA_H
-
-#include <QColor>
-#include <QImage>
-#include <QPainterPath>
-#include <QWidget>
-
-class BrushInterface;
-
-class PaintArea : public QWidget
-{
- Q_OBJECT
-
-public:
- PaintArea(QWidget *parent = 0);
-
- bool openImage(const QString &fileName);
- bool saveImage(const QString &fileName, const char *fileFormat);
- void setImage(const QImage &image);
- void insertShape(const QPainterPath &path);
- void setBrushColor(const QColor &color);
- void setBrushWidth(int width);
- void setBrush(BrushInterface *brushInterface, const QString &brush);
-
- QImage image() const { return theImage; }
- QColor brushColor() const { return color; }
- int brushWidth() const { return thickness; }
- QSize sizeHint() const;
-
-protected:
- void paintEvent(QPaintEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
-
-private:
- void setupPainter(QPainter &painter);
-
- QImage theImage;
- QColor color;
- int thickness;
-
- BrushInterface *brushInterface;
- QString brush;
- QPoint lastPos;
-
- QPainterPath pendingPath;
-};
-
-#endif
diff --git a/examples/tools/plugandpaint/plugandpaint.desktop b/examples/tools/plugandpaint/plugandpaint.desktop
deleted file mode 100644
index e39d512225..0000000000
--- a/examples/tools/plugandpaint/plugandpaint.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Plug appnameplaceholder Paint
-Exec=/opt/usr/bin/plugandpaint
-Icon=plugandpaint
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/tools/plugandpaint/plugandpaint.pro b/examples/tools/plugandpaint/plugandpaint.pro
deleted file mode 100644
index d9b836c7ae..0000000000
--- a/examples/tools/plugandpaint/plugandpaint.pro
+++ /dev/null
@@ -1,25 +0,0 @@
-#! [0]
-HEADERS = interfaces.h \
- mainwindow.h \
- paintarea.h \
- plugindialog.h
-SOURCES = main.cpp \
- mainwindow.cpp \
- paintarea.cpp \
- plugindialog.cpp
-
-LIBS = -L$${QT_BUILD_TREE}/examples/tools/plugandpaint/plugins -lpnp_basictools
-
-if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
- mac:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)_debug
- win32:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)d
-}
-#! [0]
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/plugandpaint
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS plugandpaint.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/plugandpaint
-INSTALLS += target sources
-
-QT += widgets
diff --git a/examples/tools/plugandpaint/plugindialog.cpp b/examples/tools/plugandpaint/plugindialog.cpp
deleted file mode 100644
index 597f90c349..0000000000
--- a/examples/tools/plugandpaint/plugindialog.cpp
+++ /dev/null
@@ -1,156 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-#include "interfaces.h"
-#include "plugindialog.h"
-
-#include <QPluginLoader>
-#include <QStringList>
-#include <QDir>
-
-#include <QLabel>
-#include <QGridLayout>
-#include <QPushButton>
-#include <QTreeWidget>
-#include <QTreeWidgetItem>
-#include <QHeaderView>
-
-PluginDialog::PluginDialog(const QString &path, const QStringList &fileNames,
- QWidget *parent) :
- QDialog(parent),
- label(new QLabel),
- treeWidget(new QTreeWidget),
- okButton(new QPushButton(tr("OK")))
-{
- treeWidget->setAlternatingRowColors(false);
- treeWidget->setSelectionMode(QAbstractItemView::NoSelection);
- treeWidget->setColumnCount(1);
- treeWidget->header()->hide();
-
- okButton->setDefault(true);
-
- connect(okButton, SIGNAL(clicked()), this, SLOT(close()));
-
- QGridLayout *mainLayout = new QGridLayout;
- mainLayout->setColumnStretch(0, 1);
- mainLayout->setColumnStretch(2, 1);
- mainLayout->addWidget(label, 0, 0, 1, 3);
- mainLayout->addWidget(treeWidget, 1, 0, 1, 3);
- mainLayout->addWidget(okButton, 2, 1);
- setLayout(mainLayout);
-
- interfaceIcon.addPixmap(style()->standardPixmap(QStyle::SP_DirOpenIcon),
- QIcon::Normal, QIcon::On);
- interfaceIcon.addPixmap(style()->standardPixmap(QStyle::SP_DirClosedIcon),
- QIcon::Normal, QIcon::Off);
- featureIcon.addPixmap(style()->standardPixmap(QStyle::SP_FileIcon));
-
- setWindowTitle(tr("Plugin Information"));
- findPlugins(path, fileNames);
-}
-
-//! [0]
-void PluginDialog::findPlugins(const QString &path,
- const QStringList &fileNames)
-{
- label->setText(tr("Plug & Paint found the following plugins\n"
- "(looked in %1):")
- .arg(QDir::toNativeSeparators(path)));
-
- const QDir dir(path);
-
- foreach (QObject *plugin, QPluginLoader::staticInstances())
- populateTreeWidget(plugin, tr("%1 (Static Plugin)")
- .arg(plugin->metaObject()->className()));
-
- foreach (QString fileName, fileNames) {
- QPluginLoader loader(dir.absoluteFilePath(fileName));
- QObject *plugin = loader.instance();
- if (plugin)
- populateTreeWidget(plugin, fileName);
- }
-}
-//! [0]
-
-//! [1]
-void PluginDialog::populateTreeWidget(QObject *plugin, const QString &text)
-{
- QTreeWidgetItem *pluginItem = new QTreeWidgetItem(treeWidget);
- pluginItem->setText(0, text);
- treeWidget->setItemExpanded(pluginItem, true);
-
- QFont boldFont = pluginItem->font(0);
- boldFont.setBold(true);
- pluginItem->setFont(0, boldFont);
-
- if (plugin) {
- BrushInterface *iBrush = qobject_cast<BrushInterface *>(plugin);
- if (iBrush)
- addItems(pluginItem, "BrushInterface", iBrush->brushes());
-
- ShapeInterface *iShape = qobject_cast<ShapeInterface *>(plugin);
- if (iShape)
- addItems(pluginItem, "ShapeInterface", iShape->shapes());
-
- FilterInterface *iFilter =
- qobject_cast<FilterInterface *>(plugin);
- if (iFilter)
- addItems(pluginItem, "FilterInterface", iFilter->filters());
- }
-}
-//! [1]
-
-void PluginDialog::addItems(QTreeWidgetItem *pluginItem,
- const char *interfaceName,
- const QStringList &features)
-{
- QTreeWidgetItem *interfaceItem = new QTreeWidgetItem(pluginItem);
- interfaceItem->setText(0, interfaceName);
- interfaceItem->setIcon(0, interfaceIcon);
-
- foreach (QString feature, features) {
- if (feature.endsWith("..."))
- feature.chop(3);
- QTreeWidgetItem *featureItem = new QTreeWidgetItem(interfaceItem);
- featureItem->setText(0, feature);
- featureItem->setIcon(0, featureIcon);
- }
-}
diff --git a/examples/tools/plugandpaint/plugindialog.h b/examples/tools/plugandpaint/plugindialog.h
deleted file mode 100644
index ff4a5d9c09..0000000000
--- a/examples/tools/plugandpaint/plugindialog.h
+++ /dev/null
@@ -1,76 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef PLUGINDIALOG_H
-#define PLUGINDIALOG_H
-
-#include <QDialog>
-#include <QIcon>
-
-QT_BEGIN_NAMESPACE
-class QLabel;
-class QPushButton;
-class QStringList;
-class QTreeWidget;
-class QTreeWidgetItem;
-QT_END_NAMESPACE
-
-class PluginDialog : public QDialog
-{
- Q_OBJECT
-
-public:
- PluginDialog(const QString &path, const QStringList &fileNames,
- QWidget *parent = 0);
-
-private:
- void findPlugins(const QString &path, const QStringList &fileNames);
- void populateTreeWidget(QObject *plugin, const QString &text);
- void addItems(QTreeWidgetItem *pluginItem, const char *interfaceName,
- const QStringList &features);
-
- QLabel *label;
- QTreeWidget *treeWidget;
- QPushButton *okButton;
- QIcon interfaceIcon;
- QIcon featureIcon;
-};
-
-#endif
diff --git a/examples/tools/plugandpaintplugins/basictools/basictools.json b/examples/tools/plugandpaintplugins/basictools/basictools.json
deleted file mode 100644
index 0967ef424b..0000000000
--- a/examples/tools/plugandpaintplugins/basictools/basictools.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/examples/tools/plugandpaintplugins/basictools/basictools.pro b/examples/tools/plugandpaintplugins/basictools/basictools.pro
deleted file mode 100644
index 3190e45c46..0000000000
--- a/examples/tools/plugandpaintplugins/basictools/basictools.pro
+++ /dev/null
@@ -1,18 +0,0 @@
-#! [0]
-TEMPLATE = lib
-CONFIG += plugin static
-INCLUDEPATH += ../..
-HEADERS = basictoolsplugin.h
-SOURCES = basictoolsplugin.cpp
-OTHER_FILES += basictools.json
-TARGET = $$qtLibraryTarget(pnp_basictools)
-DESTDIR = ../../plugandpaint/plugins
-#! [0]
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/plugandpaint/plugins
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS basictools.pro basictools.json
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/plugandpaintplugins/basictools
-INSTALLS += target sources
-
-QT += widgets
diff --git a/examples/tools/plugandpaintplugins/basictools/basictoolsplugin.cpp b/examples/tools/plugandpaintplugins/basictools/basictoolsplugin.cpp
deleted file mode 100644
index e0d68bac45..0000000000
--- a/examples/tools/plugandpaintplugins/basictools/basictoolsplugin.cpp
+++ /dev/null
@@ -1,191 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include <math.h>
-#include <stdlib.h>
-
-#include "basictoolsplugin.h"
-
-const float Pi = 3.14159f;
-
-//! [0]
-QStringList BasicToolsPlugin::brushes() const
-{
- return QStringList() << tr("Pencil") << tr("Air Brush")
- << tr("Random Letters");
-}
-//! [0]
-
-//! [1]
-QRect BasicToolsPlugin::mousePress(const QString &brush, QPainter &painter,
- const QPoint &pos)
-{
- return mouseMove(brush, painter, pos, pos);
-}
-//! [1]
-
-//! [2]
-QRect BasicToolsPlugin::mouseMove(const QString &brush, QPainter &painter,
- const QPoint &oldPos, const QPoint &newPos)
-{
- painter.save();
-
- int rad = painter.pen().width() / 2;
- QRect boundingRect = QRect(oldPos, newPos).normalized()
- .adjusted(-rad, -rad, +rad, +rad);
- QColor color = painter.pen().color();
- int thickness = painter.pen().width();
- QColor transparentColor(color.red(), color.green(), color.blue(), 0);
-//! [2] //! [3]
-
- if (brush == tr("Pencil")) {
- painter.drawLine(oldPos, newPos);
- } else if (brush == tr("Air Brush")) {
- int numSteps = 2 + (newPos - oldPos).manhattanLength() / 2;
-
- painter.setBrush(QBrush(color, Qt::Dense6Pattern));
- painter.setPen(Qt::NoPen);
-
- for (int i = 0; i < numSteps; ++i) {
- int x = oldPos.x() + i * (newPos.x() - oldPos.x()) / (numSteps - 1);
- int y = oldPos.y() + i * (newPos.y() - oldPos.y()) / (numSteps - 1);
-
- painter.drawEllipse(x - (thickness / 2), y - (thickness / 2),
- thickness, thickness);
- }
- } else if (brush == tr("Random Letters")) {
- QChar ch('A' + (qrand() % 26));
-
- QFont biggerFont = painter.font();
- biggerFont.setBold(true);
- biggerFont.setPointSize(biggerFont.pointSize() + thickness);
- painter.setFont(biggerFont);
-
- painter.drawText(newPos, QString(ch));
-
- QFontMetrics metrics(painter.font());
- boundingRect = metrics.boundingRect(ch);
- boundingRect.translate(newPos);
- boundingRect.adjust(-10, -10, +10, +10);
- }
- painter.restore();
- return boundingRect;
-}
-//! [3]
-
-//! [4]
-QRect BasicToolsPlugin::mouseRelease(const QString & /* brush */,
- QPainter & /* painter */,
- const QPoint & /* pos */)
-{
- return QRect(0, 0, 0, 0);
-}
-//! [4]
-
-//! [5]
-QStringList BasicToolsPlugin::shapes() const
-{
- return QStringList() << tr("Circle") << tr("Star") << tr("Text...");
-}
-//! [5]
-
-//! [6]
-QPainterPath BasicToolsPlugin::generateShape(const QString &shape,
- QWidget *parent)
-{
- QPainterPath path;
-
- if (shape == tr("Circle")) {
- path.addEllipse(0, 0, 50, 50);
- } else if (shape == tr("Star")) {
- path.moveTo(90, 50);
- for (int i = 1; i < 5; ++i) {
- path.lineTo(50 + 40 * cos(0.8 * i * Pi),
- 50 + 40 * sin(0.8 * i * Pi));
- }
- path.closeSubpath();
- } else if (shape == tr("Text...")) {
- QString text = QInputDialog::getText(parent, tr("Text Shape"),
- tr("Enter text:"),
- QLineEdit::Normal, tr("Qt"));
- if (!text.isEmpty()) {
- QFont timesFont("Times", 50);
- timesFont.setStyleStrategy(QFont::ForceOutline);
- path.addText(0, 0, timesFont, text);
- }
- }
-
- return path;
-}
-//! [6]
-
-//! [7]
-QStringList BasicToolsPlugin::filters() const
-{
- return QStringList() << tr("Invert Pixels") << tr("Swap RGB")
- << tr("Grayscale");
-}
-//! [7]
-
-//! [8]
-QImage BasicToolsPlugin::filterImage(const QString &filter, const QImage &image,
- QWidget * /* parent */)
-{
- QImage result = image.convertToFormat(QImage::Format_RGB32);
-
- if (filter == tr("Invert Pixels")) {
- result.invertPixels();
- } else if (filter == tr("Swap RGB")) {
- result = result.rgbSwapped();
- } else if (filter == tr("Grayscale")) {
- for (int y = 0; y < result.height(); ++y) {
- for (int x = 0; x < result.width(); ++x) {
- int pixel = result.pixel(x, y);
- int gray = qGray(pixel);
- int alpha = qAlpha(pixel);
- result.setPixel(x, y, qRgba(gray, gray, gray, alpha));
- }
- }
- }
- return result;
-}
-//! [8]
diff --git a/examples/tools/plugandpaintplugins/basictools/basictoolsplugin.h b/examples/tools/plugandpaintplugins/basictools/basictoolsplugin.h
deleted file mode 100644
index b5159803f6..0000000000
--- a/examples/tools/plugandpaintplugins/basictools/basictoolsplugin.h
+++ /dev/null
@@ -1,89 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef BASICTOOLSPLUGIN_H
-#define BASICTOOLSPLUGIN_H
-
-#include <QRect>
-#include <QObject>
-#include <QtPlugin>
-#include <QStringList>
-#include <QPainterPath>
-#include <QImage>
-
-//! [0]
-#include <plugandpaint/interfaces.h>
-
-//! [1]
-class BasicToolsPlugin : public QObject,
- public BrushInterface,
- public ShapeInterface,
- public FilterInterface
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.Examples.PlugAndPaint.BrushInterface" FILE "basictools.json")
- Q_INTERFACES(BrushInterface ShapeInterface FilterInterface)
-//! [0]
-
-//! [2]
-public:
-//! [1]
- // BrushInterface
- QStringList brushes() const;
- QRect mousePress(const QString &brush, QPainter &painter,
- const QPoint &pos);
- QRect mouseMove(const QString &brush, QPainter &painter,
- const QPoint &oldPos, const QPoint &newPos);
- QRect mouseRelease(const QString &brush, QPainter &painter,
- const QPoint &pos);
-
- // ShapeInterface
- QStringList shapes() const;
- QPainterPath generateShape(const QString &shape, QWidget *parent);
-
- // FilterInterface
- QStringList filters() const;
- QImage filterImage(const QString &filter, const QImage &image,
- QWidget *parent);
-//! [3]
-};
-//! [2] //! [3]
-
-#endif
diff --git a/examples/tools/plugandpaintplugins/extrafilters/extrafilters.json b/examples/tools/plugandpaintplugins/extrafilters/extrafilters.json
deleted file mode 100644
index 0967ef424b..0000000000
--- a/examples/tools/plugandpaintplugins/extrafilters/extrafilters.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/examples/tools/plugandpaintplugins/extrafilters/extrafilters.pro b/examples/tools/plugandpaintplugins/extrafilters/extrafilters.pro
deleted file mode 100644
index bc7ccffc0a..0000000000
--- a/examples/tools/plugandpaintplugins/extrafilters/extrafilters.pro
+++ /dev/null
@@ -1,19 +0,0 @@
-#! [0]
-TEMPLATE = lib
-CONFIG += plugin
-INCLUDEPATH += ../..
-HEADERS = extrafiltersplugin.h
-SOURCES = extrafiltersplugin.cpp
-OTHER_FILES += extrafilters.json
-TARGET = $$qtLibraryTarget(pnp_extrafilters)
-DESTDIR = ../../plugandpaint/plugins
-
-#! [0]
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/plugandpaint/plugins
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS extrafilters.pro extrafilters.json
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/plugandpaintplugins/extrafilters
-INSTALLS += target sources
-
-
-QT += widgets
diff --git a/examples/tools/plugandpaintplugins/extrafilters/extrafiltersplugin.cpp b/examples/tools/plugandpaintplugins/extrafilters/extrafiltersplugin.cpp
deleted file mode 100644
index 297f164428..0000000000
--- a/examples/tools/plugandpaintplugins/extrafilters/extrafiltersplugin.cpp
+++ /dev/null
@@ -1,122 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include <math.h>
-#include <stdlib.h>
-
-#include "extrafiltersplugin.h"
-
-QStringList ExtraFiltersPlugin::filters() const
-{
- return QStringList() << tr("Flip Horizontally") << tr("Flip Vertically")
- << tr("Smudge...") << tr("Threshold...");
-}
-
-QImage ExtraFiltersPlugin::filterImage(const QString &filter,
- const QImage &image, QWidget *parent)
-{
- QImage original = image.convertToFormat(QImage::Format_RGB32);
- QImage result = original;
-
- if (filter == tr("Flip Horizontally")) {
- for (int y = 0; y < original.height(); ++y) {
- for (int x = 0; x < original.width(); ++x) {
- int pixel = original.pixel(original.width() - x - 1, y);
- result.setPixel(x, y, pixel);
- }
- }
- } else if (filter == tr("Flip Vertically")) {
- for (int y = 0; y < original.height(); ++y) {
- for (int x = 0; x < original.width(); ++x) {
- int pixel = original.pixel(x, original.height() - y - 1);
- result.setPixel(x, y, pixel);
- }
- }
- } else if (filter == tr("Smudge...")) {
- bool ok;
- int numIters = QInputDialog::getInt(parent, tr("Smudge Filter"),
- tr("Enter number of iterations:"),
- 5, 1, 20, 1, &ok);
- if (ok) {
- for (int i = 0; i < numIters; ++i) {
- for (int y = 1; y < original.height() - 1; ++y) {
- for (int x = 1; x < original.width() - 1; ++x) {
- int p1 = original.pixel(x, y);
- int p2 = original.pixel(x, y + 1);
- int p3 = original.pixel(x, y - 1);
- int p4 = original.pixel(x + 1, y);
- int p5 = original.pixel(x - 1, y);
-
- int red = (qRed(p1) + qRed(p2) + qRed(p3) + qRed(p4)
- + qRed(p5)) / 5;
- int green = (qGreen(p1) + qGreen(p2) + qGreen(p3)
- + qGreen(p4) + qGreen(p5)) / 5;
- int blue = (qBlue(p1) + qBlue(p2) + qBlue(p3)
- + qBlue(p4) + qBlue(p5)) / 5;
- int alpha = (qAlpha(p1) + qAlpha(p2) + qAlpha(p3)
- + qAlpha(p4) + qAlpha(p5)) / 5;
-
- result.setPixel(x, y, qRgba(red, green, blue, alpha));
- }
- }
- }
- }
- } else if (filter == tr("Threshold...")) {
- bool ok;
- int threshold = QInputDialog::getInt(parent, tr("Threshold Filter"),
- tr("Enter threshold:"),
- 10, 1, 256, 1, &ok);
- if (ok) {
- int factor = 256 / threshold;
- for (int y = 0; y < original.height(); ++y) {
- for (int x = 0; x < original.width(); ++x) {
- int pixel = original.pixel(x, y);
- result.setPixel(x, y, qRgba(qRed(pixel) / factor * factor,
- qGreen(pixel) / factor * factor,
- qBlue(pixel) / factor * factor,
- qAlpha(pixel)));
- }
- }
- }
- }
- return result;
-}
diff --git a/examples/tools/plugandpaintplugins/extrafilters/extrafiltersplugin.h b/examples/tools/plugandpaintplugins/extrafilters/extrafiltersplugin.h
deleted file mode 100644
index 7add7abb53..0000000000
--- a/examples/tools/plugandpaintplugins/extrafilters/extrafiltersplugin.h
+++ /dev/null
@@ -1,65 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef EXTRAFILTERSPLUGIN_H
-#define EXTRAFILTERSPLUGIN_H
-
-//! [0]
-#include <QObject>
-#include <QtPlugin>
-#include <QStringList>
-#include <QImage>
-
-#include <plugandpaint/interfaces.h>
-
-class ExtraFiltersPlugin : public QObject, public FilterInterface
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.Examples.PlugAndPaint.FilterInterface" FILE "extrafilters.json")
- Q_INTERFACES(FilterInterface)
-
-public:
- QStringList filters() const;
- QImage filterImage(const QString &filter, const QImage &image,
- QWidget *parent);
-};
-//! [0]
-
-#endif
diff --git a/examples/tools/plugandpaintplugins/plugandpaintplugins.pro b/examples/tools/plugandpaintplugins/plugandpaintplugins.pro
deleted file mode 100644
index 8eab48e92d..0000000000
--- a/examples/tools/plugandpaintplugins/plugandpaintplugins.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS = basictools \
- extrafilters
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/plugandpaintplugins
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS plugandpaintplugins.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/plugandpaintplugins
-INSTALLS += target sources
-
-QT += widgets
diff --git a/examples/tools/regexp/main.cpp b/examples/tools/regexp/main.cpp
deleted file mode 100644
index f48a6444f1..0000000000
--- a/examples/tools/regexp/main.cpp
+++ /dev/null
@@ -1,51 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-
-#include "regexpdialog.h"
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
- RegExpDialog dialog;
- dialog.show();
- return app.exec();
-}
diff --git a/examples/tools/regexp/regexp.desktop b/examples/tools/regexp/regexp.desktop
deleted file mode 100644
index b3ae14e360..0000000000
--- a/examples/tools/regexp/regexp.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Regular Expressions
-Exec=/opt/usr/bin/regexp
-Icon=regexp
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/tools/regexp/regexp.pro b/examples/tools/regexp/regexp.pro
deleted file mode 100644
index 8e88511ead..0000000000
--- a/examples/tools/regexp/regexp.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-HEADERS = regexpdialog.h
-SOURCES = regexpdialog.cpp \
- main.cpp
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/regexp
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS regexp.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/regexp
-INSTALLS += target sources
-
-QT += widgets
-
-simulator: warning(This example might not fully work on Simulator platform)
diff --git a/examples/tools/regexp/regexpdialog.cpp b/examples/tools/regexp/regexpdialog.cpp
deleted file mode 100644
index 178433ee34..0000000000
--- a/examples/tools/regexp/regexpdialog.cpp
+++ /dev/null
@@ -1,188 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "regexpdialog.h"
-
-RegExpDialog::RegExpDialog(QWidget *parent)
- : QDialog(parent)
-{
- patternComboBox = new QComboBox;
- patternComboBox->setEditable(true);
- patternComboBox->setSizePolicy(QSizePolicy::Expanding,
- QSizePolicy::Preferred);
-
- patternLabel = new QLabel(tr("&Pattern:"));
- patternLabel->setBuddy(patternComboBox);
-
- escapedPatternLineEdit = new QLineEdit;
- escapedPatternLineEdit->setReadOnly(true);
- QPalette palette = escapedPatternLineEdit->palette();
- palette.setBrush(QPalette::Base,
- palette.brush(QPalette::Disabled, QPalette::Base));
- escapedPatternLineEdit->setPalette(palette);
-
- escapedPatternLabel = new QLabel(tr("&Escaped Pattern:"));
- escapedPatternLabel->setBuddy(escapedPatternLineEdit);
-
- syntaxComboBox = new QComboBox;
- syntaxComboBox->addItem(tr("Regular expression v1"), QRegExp::RegExp);
- syntaxComboBox->addItem(tr("Regular expression v2"), QRegExp::RegExp2);
- syntaxComboBox->addItem(tr("Wildcard"), QRegExp::Wildcard);
- syntaxComboBox->addItem(tr("Fixed string"), QRegExp::FixedString);
- syntaxComboBox->addItem(tr("W3C Xml Schema 1.1"), QRegExp::W3CXmlSchema11);
-
- syntaxLabel = new QLabel(tr("&Pattern Syntax:"));
- syntaxLabel->setBuddy(syntaxComboBox);
-
- textComboBox = new QComboBox;
- textComboBox->setEditable(true);
- textComboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
-
- textLabel = new QLabel(tr("&Text:"));
- textLabel->setBuddy(textComboBox);
-
- caseSensitiveCheckBox = new QCheckBox(tr("Case &Sensitive"));
- caseSensitiveCheckBox->setChecked(true);
- minimalCheckBox = new QCheckBox(tr("&Minimal"));
-
- indexLabel = new QLabel(tr("Index of Match:"));
- indexEdit = new QLineEdit;
- indexEdit->setReadOnly(true);
-
- matchedLengthLabel = new QLabel(tr("Matched Length:"));
- matchedLengthEdit = new QLineEdit;
- matchedLengthEdit->setReadOnly(true);
-
- for (int i = 0; i < MaxCaptures; ++i) {
- captureLabels[i] = new QLabel(tr("Capture %1:").arg(i));
- captureEdits[i] = new QLineEdit;
- captureEdits[i]->setReadOnly(true);
- }
- captureLabels[0]->setText(tr("Match:"));
-
- QHBoxLayout *checkBoxLayout = new QHBoxLayout;
- checkBoxLayout->addWidget(caseSensitiveCheckBox);
- checkBoxLayout->addWidget(minimalCheckBox);
- checkBoxLayout->addStretch(1);
-
- QGridLayout *mainLayout = new QGridLayout;
- mainLayout->addWidget(patternLabel, 0, 0);
- mainLayout->addWidget(patternComboBox, 0, 1);
- mainLayout->addWidget(escapedPatternLabel, 1, 0);
- mainLayout->addWidget(escapedPatternLineEdit, 1, 1);
- mainLayout->addWidget(syntaxLabel, 2, 0);
- mainLayout->addWidget(syntaxComboBox, 2, 1);
- mainLayout->addLayout(checkBoxLayout, 3, 0, 1, 2);
- mainLayout->addWidget(textLabel, 4, 0);
- mainLayout->addWidget(textComboBox, 4, 1);
- mainLayout->addWidget(indexLabel, 5, 0);
- mainLayout->addWidget(indexEdit, 5, 1);
- mainLayout->addWidget(matchedLengthLabel, 6, 0);
- mainLayout->addWidget(matchedLengthEdit, 6, 1);
-
- for (int j = 0; j < MaxCaptures; ++j) {
- mainLayout->addWidget(captureLabels[j], 7 + j, 0);
- mainLayout->addWidget(captureEdits[j], 7 + j, 1);
- }
- setLayout(mainLayout);
-
- connect(patternComboBox, SIGNAL(editTextChanged(QString)),
- this, SLOT(refresh()));
- connect(textComboBox, SIGNAL(editTextChanged(QString)),
- this, SLOT(refresh()));
- connect(caseSensitiveCheckBox, SIGNAL(toggled(bool)),
- this, SLOT(refresh()));
- connect(minimalCheckBox, SIGNAL(toggled(bool)), this, SLOT(refresh()));
- connect(syntaxComboBox, SIGNAL(currentIndexChanged(int)),
- this, SLOT(refresh()));
-
- patternComboBox->addItem(tr("[A-Za-z_]+([A-Za-z_0-9]*)"));
- textComboBox->addItem(tr("(10 + delta4) * 32"));
-
- setWindowTitle(tr("RegExp"));
- setFixedHeight(sizeHint().height());
- refresh();
-}
-
-void RegExpDialog::refresh()
-{
- setUpdatesEnabled(false);
-
- QString pattern = patternComboBox->currentText();
- QString text = textComboBox->currentText();
-
- QString escaped = pattern;
- escaped.replace("\\", "\\\\");
- escaped.replace("\"", "\\\"");
- escaped.prepend("\"");
- escaped.append("\"");
- escapedPatternLineEdit->setText(escaped);
-
- QRegExp rx(pattern);
- Qt::CaseSensitivity cs = Qt::CaseInsensitive;
- if (caseSensitiveCheckBox->isChecked())
- cs = Qt::CaseSensitive;
- rx.setCaseSensitivity(cs);
- rx.setMinimal(minimalCheckBox->isChecked());
- QRegExp::PatternSyntax syntax = QRegExp::PatternSyntax(
- syntaxComboBox->itemData(syntaxComboBox->currentIndex()).toInt());
- rx.setPatternSyntax(syntax);
-
- QPalette palette = patternComboBox->palette();
- if (rx.isValid()) {
- palette.setColor(QPalette::Text,
- textComboBox->palette().color(QPalette::Text));
- } else {
- palette.setColor(QPalette::Text, Qt::red);
- }
- patternComboBox->setPalette(palette);
-
- indexEdit->setText(QString::number(rx.indexIn(text)));
- matchedLengthEdit->setText(QString::number(rx.matchedLength()));
- for (int i = 0; i < MaxCaptures; ++i) {
- captureLabels[i]->setEnabled(i <= rx.captureCount());
- captureEdits[i]->setEnabled(i <= rx.captureCount());
- captureEdits[i]->setText(rx.cap(i));
- }
-
- setUpdatesEnabled(true);
-}
diff --git a/examples/tools/regexp/regexpdialog.h b/examples/tools/regexp/regexpdialog.h
deleted file mode 100644
index df730586bc..0000000000
--- a/examples/tools/regexp/regexpdialog.h
+++ /dev/null
@@ -1,85 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef REGEXPDIALOG_H
-#define REGEXPDIALOG_H
-
-#include <QDialog>
-
-QT_BEGIN_NAMESPACE
-class QCheckBox;
-class QComboBox;
-class QLabel;
-class QLineEdit;
-QT_END_NAMESPACE
-
-class RegExpDialog : public QDialog
-{
- Q_OBJECT
-
-public:
- RegExpDialog(QWidget *parent = 0);
-
-private slots:
- void refresh();
-
-private:
- QLabel *patternLabel;
- QLabel *escapedPatternLabel;
- QLabel *syntaxLabel;
- QLabel *textLabel;
- QComboBox *patternComboBox;
- QLineEdit *escapedPatternLineEdit;
- QComboBox *textComboBox;
- QCheckBox *caseSensitiveCheckBox;
- QCheckBox *minimalCheckBox;
- QComboBox *syntaxComboBox;
-
- QLabel *indexLabel;
- QLabel *matchedLengthLabel;
- QLineEdit *indexEdit;
- QLineEdit *matchedLengthEdit;
-
- enum { MaxCaptures = 6 };
- QLabel *captureLabels[MaxCaptures];
- QLineEdit *captureEdits[MaxCaptures];
-};
-
-#endif
diff --git a/examples/tools/settingseditor/inifiles/licensepage.ini b/examples/tools/settingseditor/inifiles/licensepage.ini
deleted file mode 100644
index 608d1b7885..0000000000
--- a/examples/tools/settingseditor/inifiles/licensepage.ini
+++ /dev/null
@@ -1,46 +0,0 @@
-[Field%201]
-Bottom=89
-Flags=MULTILINE|VSCROLL|READONLY
-Left=4
-Right=296
-State=No license agreement file found. Please contact support.
-Top=14
-Type=Text
-
-[Field%202]
-Bottom=8
-Left=4
-Right=294
-Text=Press Page Down to see the rest of the agreement.
-Top=0
-Type=Label
-
-[Field%203]
-Bottom=111
-Left=4
-Right=297
-Text=If you accept the terms of the agreement, select the first option below. You must accept the agreement to install this software. Click Next to continue.
-Top=92
-Type=Label
-
-[Field%204]
-Bottom=129
-Flags=GROUP|NOTIFY
-Left=4
-Right=299
-Text=I &accept the terms in the License Agreement
-Top=120
-Type=RadioButton
-
-[Field%205]
-Bottom=140
-Flags=NOTIFY
-Left=4
-Right=300
-State=1
-Text=I &do not accept the terms in the License Agreement
-Top=129
-Type=RadioButton
-
-[Settings]
-NumFields=5
diff --git a/examples/tools/settingseditor/inifiles/qsa.ini b/examples/tools/settingseditor/inifiles/qsa.ini
deleted file mode 100644
index 56a2964ee5..0000000000
--- a/examples/tools/settingseditor/inifiles/qsa.ini
+++ /dev/null
@@ -1,26 +0,0 @@
-[Field%201]
-Bottom=65
-Left=0
-Right=299
-Text=QSA Build Options
-Top=9
-Type=Groupbox
-
-[Field%202]
-Bottom=37
-Left=20
-Right=284
-Text=Don't compile QSA Workbench into QSA.
-Top=27
-Type=Checkbox
-
-[Field%203]
-Bottom=56
-Left=20
-Right=247
-Text=Don't compile QSA Workbench nor QSA Editor into QSA.
-Top=45
-Type=Checkbox
-
-[Settings]
-NumFields=3
diff --git a/examples/tools/settingseditor/locationdialog.cpp b/examples/tools/settingseditor/locationdialog.cpp
deleted file mode 100644
index dd725a02cb..0000000000
--- a/examples/tools/settingseditor/locationdialog.cpp
+++ /dev/null
@@ -1,216 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "locationdialog.h"
-
-LocationDialog::LocationDialog(QWidget *parent)
- : QDialog(parent)
-{
- formatComboBox = new QComboBox;
- formatComboBox->addItem(tr("Native"));
- formatComboBox->addItem(tr("INI"));
-
- scopeComboBox = new QComboBox;
- scopeComboBox->addItem(tr("User"));
- scopeComboBox->addItem(tr("System"));
-
- organizationComboBox = new QComboBox;
- organizationComboBox->addItem(tr("Qt"));
- organizationComboBox->setEditable(true);
-
- applicationComboBox = new QComboBox;
- applicationComboBox->addItem(tr("Any"));
- applicationComboBox->addItem(tr("Application Example"));
- applicationComboBox->addItem(tr("Assistant"));
- applicationComboBox->addItem(tr("Designer"));
- applicationComboBox->addItem(tr("Linguist"));
- applicationComboBox->setEditable(true);
- applicationComboBox->setCurrentIndex(3);
-
- formatLabel = new QLabel(tr("&Format:"));
- formatLabel->setBuddy(formatComboBox);
-
- scopeLabel = new QLabel(tr("&Scope:"));
- scopeLabel->setBuddy(scopeComboBox);
-
- organizationLabel = new QLabel(tr("&Organization:"));
- organizationLabel->setBuddy(organizationComboBox);
-
- applicationLabel = new QLabel(tr("&Application:"));
- applicationLabel->setBuddy(applicationComboBox);
-
- locationsGroupBox = new QGroupBox(tr("Setting Locations"));
-
- QStringList labels;
- labels << tr("Location") << tr("Access");
-
- locationsTable = new QTableWidget;
- locationsTable->setSelectionMode(QAbstractItemView::SingleSelection);
- locationsTable->setSelectionBehavior(QAbstractItemView::SelectRows);
- locationsTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
- locationsTable->setColumnCount(2);
- locationsTable->setHorizontalHeaderLabels(labels);
- locationsTable->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
- locationsTable->horizontalHeader()->resizeSection(1, 180);
-
- buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
- | QDialogButtonBox::Cancel);
-
- connect(formatComboBox, SIGNAL(activated(int)),
- this, SLOT(updateLocationsTable()));
- connect(scopeComboBox, SIGNAL(activated(int)),
- this, SLOT(updateLocationsTable()));
- connect(organizationComboBox->lineEdit(),
- SIGNAL(editingFinished()),
- this, SLOT(updateLocationsTable()));
- connect(applicationComboBox->lineEdit(),
- SIGNAL(editingFinished()),
- this, SLOT(updateLocationsTable()));
- connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
- connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
-
- QVBoxLayout *locationsLayout = new QVBoxLayout;
- locationsLayout->addWidget(locationsTable);
- locationsGroupBox->setLayout(locationsLayout);
-
- QGridLayout *mainLayout = new QGridLayout;
- mainLayout->addWidget(formatLabel, 0, 0);
- mainLayout->addWidget(formatComboBox, 0, 1);
- mainLayout->addWidget(scopeLabel, 1, 0);
- mainLayout->addWidget(scopeComboBox, 1, 1);
- mainLayout->addWidget(organizationLabel, 2, 0);
- mainLayout->addWidget(organizationComboBox, 2, 1);
- mainLayout->addWidget(applicationLabel, 3, 0);
- mainLayout->addWidget(applicationComboBox, 3, 1);
- mainLayout->addWidget(locationsGroupBox, 4, 0, 1, 2);
- mainLayout->addWidget(buttonBox, 5, 0, 1, 2);
- setLayout(mainLayout);
-
- updateLocationsTable();
-
- setWindowTitle(tr("Open Application Settings"));
- resize(650, 400);
-}
-
-QSettings::Format LocationDialog::format() const
-{
- if (formatComboBox->currentIndex() == 0)
- return QSettings::NativeFormat;
- else
- return QSettings::IniFormat;
-}
-
-QSettings::Scope LocationDialog::scope() const
-{
- if (scopeComboBox->currentIndex() == 0)
- return QSettings::UserScope;
- else
- return QSettings::SystemScope;
-}
-
-QString LocationDialog::organization() const
-{
- return organizationComboBox->currentText();
-}
-
-QString LocationDialog::application() const
-{
- if (applicationComboBox->currentText() == tr("Any"))
- return "";
- else
- return applicationComboBox->currentText();
-}
-
-void LocationDialog::updateLocationsTable()
-{
- locationsTable->setUpdatesEnabled(false);
- locationsTable->setRowCount(0);
-
- for (int i = 0; i < 2; ++i) {
- if (i == 0 && scope() == QSettings::SystemScope)
- continue;
-
- QSettings::Scope actualScope = (i == 0) ? QSettings::UserScope
- : QSettings::SystemScope;
- for (int j = 0; j < 2; ++j) {
- if (j == 0 && application().isEmpty())
- continue;
-
- QString actualApplication;
- if (j == 0)
- actualApplication = application();
- QSettings settings(format(), actualScope, organization(),
- actualApplication);
-
- int row = locationsTable->rowCount();
- locationsTable->setRowCount(row + 1);
-
- QTableWidgetItem *item0 = new QTableWidgetItem;
- item0->setText(settings.fileName());
-
- QTableWidgetItem *item1 = new QTableWidgetItem;
- bool disable = (settings.childKeys().isEmpty()
- && settings.childGroups().isEmpty());
-
- if (row == 0) {
- if (settings.isWritable()) {
- item1->setText(tr("Read-write"));
- disable = false;
- } else {
- item1->setText(tr("Read-only"));
- }
- buttonBox->button(QDialogButtonBox::Ok)->setDisabled(disable);
- } else {
- item1->setText(tr("Read-only fallback"));
- }
-
- if (disable) {
- item0->setFlags(item0->flags() & ~Qt::ItemIsEnabled);
- item1->setFlags(item1->flags() & ~Qt::ItemIsEnabled);
- }
-
- locationsTable->setItem(row, 0, item0);
- locationsTable->setItem(row, 1, item1);
- }
- }
- locationsTable->setUpdatesEnabled(true);
-}
diff --git a/examples/tools/settingseditor/locationdialog.h b/examples/tools/settingseditor/locationdialog.h
deleted file mode 100644
index e9bf2bfbda..0000000000
--- a/examples/tools/settingseditor/locationdialog.h
+++ /dev/null
@@ -1,84 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef LOCATIONDIALOG_H
-#define LOCATIONDIALOG_H
-
-#include <QDialog>
-#include <QSettings>
-
-QT_BEGIN_NAMESPACE
-class QComboBox;
-class QDialogButtonBox;
-class QGroupBox;
-class QLabel;
-class QTableWidget;
-QT_END_NAMESPACE
-
-class LocationDialog : public QDialog
-{
- Q_OBJECT
-
-public:
- LocationDialog(QWidget *parent = 0);
-
- QSettings::Format format() const;
- QSettings::Scope scope() const;
- QString organization() const;
- QString application() const;
-
-private slots:
- void updateLocationsTable();
-
-private:
- QLabel *formatLabel;
- QLabel *scopeLabel;
- QLabel *organizationLabel;
- QLabel *applicationLabel;
- QComboBox *formatComboBox;
- QComboBox *scopeComboBox;
- QComboBox *organizationComboBox;
- QComboBox *applicationComboBox;
- QGroupBox *locationsGroupBox;
- QTableWidget *locationsTable;
- QDialogButtonBox *buttonBox;
-};
-
-#endif
diff --git a/examples/tools/settingseditor/main.cpp b/examples/tools/settingseditor/main.cpp
deleted file mode 100644
index f03543e449..0000000000
--- a/examples/tools/settingseditor/main.cpp
+++ /dev/null
@@ -1,51 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-
-#include "mainwindow.h"
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
- MainWindow mainWin;
- mainWin.show();
- return app.exec();
-}
diff --git a/examples/tools/settingseditor/mainwindow.cpp b/examples/tools/settingseditor/mainwindow.cpp
deleted file mode 100644
index e899f6021f..0000000000
--- a/examples/tools/settingseditor/mainwindow.cpp
+++ /dev/null
@@ -1,222 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "locationdialog.h"
-#include "mainwindow.h"
-#include "settingstree.h"
-
-MainWindow::MainWindow()
-{
- settingsTree = new SettingsTree;
- setCentralWidget(settingsTree);
-
- locationDialog = 0;
-
- createActions();
- createMenus();
-
- autoRefreshAct->setChecked(true);
- fallbacksAct->setChecked(true);
-
- setWindowTitle(tr("Settings Editor"));
- resize(500, 600);
-}
-
-void MainWindow::openSettings()
-{
- if (!locationDialog)
- locationDialog = new LocationDialog(this);
-
- if (locationDialog->exec()) {
- QSettings *settings = new QSettings(locationDialog->format(),
- locationDialog->scope(),
- locationDialog->organization(),
- locationDialog->application());
- setSettingsObject(settings);
- fallbacksAct->setEnabled(true);
- }
-}
-
-void MainWindow::openIniFile()
-{
- QString fileName = QFileDialog::getOpenFileName(this, tr("Open INI File"),
- "", tr("INI Files (*.ini *.conf)"));
- if (!fileName.isEmpty()) {
- QSettings *settings = new QSettings(fileName, QSettings::IniFormat);
- setSettingsObject(settings);
- fallbacksAct->setEnabled(false);
- }
-}
-
-void MainWindow::openPropertyList()
-{
- QString fileName = QFileDialog::getOpenFileName(this,
- tr("Open Property List"),
- "", tr("Property List Files (*.plist)"));
- if (!fileName.isEmpty()) {
- QSettings *settings = new QSettings(fileName, QSettings::NativeFormat);
- setSettingsObject(settings);
- fallbacksAct->setEnabled(false);
- }
-}
-
-void MainWindow::openRegistryPath()
-{
- QString path = QInputDialog::getText(this, tr("Open Registry Path"),
- tr("Enter the path in the Windows registry:"),
- QLineEdit::Normal, "HKEY_CURRENT_USER\\");
- if (!path.isEmpty()) {
- QSettings *settings = new QSettings(path, QSettings::NativeFormat);
- setSettingsObject(settings);
- fallbacksAct->setEnabled(false);
- }
-}
-
-void MainWindow::about()
-{
- QMessageBox::about(this, tr("About Settings Editor"),
- tr("The <b>Settings Editor</b> example shows how to access "
- "application settings using Qt."));
-}
-
-void MainWindow::createActions()
-{
- openSettingsAct = new QAction(tr("&Open Application Settings..."), this);
- openSettingsAct->setShortcuts(QKeySequence::Open);
- connect(openSettingsAct, SIGNAL(triggered()), this, SLOT(openSettings()));
-
- openIniFileAct = new QAction(tr("Open I&NI File..."), this);
- openIniFileAct->setShortcut(tr("Ctrl+N"));
- connect(openIniFileAct, SIGNAL(triggered()), this, SLOT(openIniFile()));
-
- openPropertyListAct = new QAction(tr("Open Mac &Property List..."), this);
- openPropertyListAct->setShortcut(tr("Ctrl+P"));
- connect(openPropertyListAct, SIGNAL(triggered()),
- this, SLOT(openPropertyList()));
-
- openRegistryPathAct = new QAction(tr("Open Windows &Registry Path..."),
- this);
- openRegistryPathAct->setShortcut(tr("Ctrl+G"));
- connect(openRegistryPathAct, SIGNAL(triggered()),
- this, SLOT(openRegistryPath()));
-
- refreshAct = new QAction(tr("&Refresh"), this);
- refreshAct->setShortcut(tr("Ctrl+R"));
- refreshAct->setEnabled(false);
- connect(refreshAct, SIGNAL(triggered()), settingsTree, SLOT(refresh()));
-
- exitAct = new QAction(tr("E&xit"), this);
- exitAct->setShortcuts(QKeySequence::Quit);
- connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));
-
- autoRefreshAct = new QAction(tr("&Auto-Refresh"), this);
- autoRefreshAct->setShortcut(tr("Ctrl+A"));
- autoRefreshAct->setCheckable(true);
- autoRefreshAct->setEnabled(false);
- connect(autoRefreshAct, SIGNAL(triggered(bool)),
- settingsTree, SLOT(setAutoRefresh(bool)));
- connect(autoRefreshAct, SIGNAL(triggered(bool)),
- refreshAct, SLOT(setDisabled(bool)));
-
- fallbacksAct = new QAction(tr("&Fallbacks"), this);
- fallbacksAct->setShortcut(tr("Ctrl+F"));
- fallbacksAct->setCheckable(true);
- fallbacksAct->setEnabled(false);
- connect(fallbacksAct, SIGNAL(triggered(bool)),
- settingsTree, SLOT(setFallbacksEnabled(bool)));
-
- aboutAct = new QAction(tr("&About"), this);
- connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
-
- aboutQtAct = new QAction(tr("About &Qt"), this);
- connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
-
-#ifndef Q_OS_MAC
- openPropertyListAct->setEnabled(false);
-#endif
-#ifndef Q_OS_WIN
- openRegistryPathAct->setEnabled(false);
-#endif
-}
-
-void MainWindow::createMenus()
-{
- fileMenu = menuBar()->addMenu(tr("&File"));
- fileMenu->addAction(openSettingsAct);
- fileMenu->addAction(openIniFileAct);
- fileMenu->addAction(openPropertyListAct);
- fileMenu->addAction(openRegistryPathAct);
- fileMenu->addSeparator();
- fileMenu->addAction(refreshAct);
- fileMenu->addSeparator();
- fileMenu->addAction(exitAct);
-
- optionsMenu = menuBar()->addMenu(tr("&Options"));
- optionsMenu->addAction(autoRefreshAct);
- optionsMenu->addAction(fallbacksAct);
-
- menuBar()->addSeparator();
-
- helpMenu = menuBar()->addMenu(tr("&Help"));
- helpMenu->addAction(aboutAct);
- helpMenu->addAction(aboutQtAct);
-}
-
-void MainWindow::setSettingsObject(QSettings *settings)
-{
- settings->setFallbacksEnabled(fallbacksAct->isChecked());
- settingsTree->setSettingsObject(settings);
-
- refreshAct->setEnabled(true);
- autoRefreshAct->setEnabled(true);
-
- QString niceName = settings->fileName();
- niceName.replace("\\", "/");
- int pos = niceName.lastIndexOf("/");
- if (pos != -1)
- niceName.remove(0, pos + 1);
-
- if (!settings->isWritable())
- niceName = tr("%1 (read only)").arg(niceName);
-
- setWindowTitle(tr("%1 - %2").arg(niceName).arg(tr("Settings Editor")));
-}
diff --git a/examples/tools/settingseditor/mainwindow.h b/examples/tools/settingseditor/mainwindow.h
deleted file mode 100644
index febbbe9078..0000000000
--- a/examples/tools/settingseditor/mainwindow.h
+++ /dev/null
@@ -1,91 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-
-QT_BEGIN_NAMESPACE
-class QAction;
-class QMenu;
-class QSettings;
-QT_END_NAMESPACE
-class LocationDialog;
-class SettingsTree;
-
-class MainWindow : public QMainWindow
-{
- Q_OBJECT
-
-public:
- MainWindow();
-
-private slots:
- void openSettings();
- void openIniFile();
- void openPropertyList();
- void openRegistryPath();
- void about();
-
-private:
- void createActions();
- void createMenus();
- void setSettingsObject(QSettings *settings);
-
- SettingsTree *settingsTree;
- LocationDialog *locationDialog;
-
- QMenu *fileMenu;
- QMenu *optionsMenu;
- QMenu *helpMenu;
- QAction *openSettingsAct;
- QAction *openIniFileAct;
- QAction *openPropertyListAct;
- QAction *openRegistryPathAct;
- QAction *refreshAct;
- QAction *exitAct;
- QAction *autoRefreshAct;
- QAction *fallbacksAct;
- QAction *aboutAct;
- QAction *aboutQtAct;
-};
-
-#endif
diff --git a/examples/tools/settingseditor/settingseditor.desktop b/examples/tools/settingseditor/settingseditor.desktop
deleted file mode 100644
index b8561a6f3a..0000000000
--- a/examples/tools/settingseditor/settingseditor.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Settings Editor
-Exec=/opt/usr/bin/settingseditor
-Icon=settingseditor
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/tools/settingseditor/settingseditor.pro b/examples/tools/settingseditor/settingseditor.pro
deleted file mode 100644
index 2499b22436..0000000000
--- a/examples/tools/settingseditor/settingseditor.pro
+++ /dev/null
@@ -1,19 +0,0 @@
-HEADERS = locationdialog.h \
- mainwindow.h \
- settingstree.h \
- variantdelegate.h
-SOURCES = locationdialog.cpp \
- main.cpp \
- mainwindow.cpp \
- settingstree.cpp \
- variantdelegate.cpp
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/settingseditor
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS settingseditor.pro inifiles
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/settingseditor
-INSTALLS += target sources
-
-QT += widgets
-
-simulator: warning(This example might not fully work on Simulator platform)
diff --git a/examples/tools/settingseditor/settingstree.cpp b/examples/tools/settingseditor/settingstree.cpp
deleted file mode 100644
index 050473e777..0000000000
--- a/examples/tools/settingseditor/settingstree.cpp
+++ /dev/null
@@ -1,262 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "settingstree.h"
-#include "variantdelegate.h"
-
-SettingsTree::SettingsTree(QWidget *parent)
- : QTreeWidget(parent)
-{
- setItemDelegate(new VariantDelegate(this));
-
- QStringList labels;
- labels << tr("Setting") << tr("Type") << tr("Value");
- setHeaderLabels(labels);
- header()->setSectionResizeMode(0, QHeaderView::Stretch);
- header()->setSectionResizeMode(2, QHeaderView::Stretch);
-
- settings = 0;
- refreshTimer.setInterval(2000);
- autoRefresh = false;
-
- groupIcon.addPixmap(style()->standardPixmap(QStyle::SP_DirClosedIcon),
- QIcon::Normal, QIcon::Off);
- groupIcon.addPixmap(style()->standardPixmap(QStyle::SP_DirOpenIcon),
- QIcon::Normal, QIcon::On);
- keyIcon.addPixmap(style()->standardPixmap(QStyle::SP_FileIcon));
-
- connect(&refreshTimer, SIGNAL(timeout()), this, SLOT(maybeRefresh()));
-}
-
-void SettingsTree::setSettingsObject(QSettings *settings)
-{
- delete this->settings;
- this->settings = settings;
- clear();
-
- if (settings) {
- settings->setParent(this);
- refresh();
- if (autoRefresh)
- refreshTimer.start();
- } else {
- refreshTimer.stop();
- }
-}
-
-QSize SettingsTree::sizeHint() const
-{
- return QSize(800, 600);
-}
-
-void SettingsTree::setAutoRefresh(bool autoRefresh)
-{
- this->autoRefresh = autoRefresh;
- if (settings) {
- if (autoRefresh) {
- maybeRefresh();
- refreshTimer.start();
- } else {
- refreshTimer.stop();
- }
- }
-}
-
-void SettingsTree::setFallbacksEnabled(bool enabled)
-{
- if (settings) {
- settings->setFallbacksEnabled(enabled);
- refresh();
- }
-}
-
-void SettingsTree::maybeRefresh()
-{
- if (state() != EditingState)
- refresh();
-}
-
-void SettingsTree::refresh()
-{
- if (!settings)
- return;
-
- disconnect(this, SIGNAL(itemChanged(QTreeWidgetItem*,int)),
- this, SLOT(updateSetting(QTreeWidgetItem*)));
-
- settings->sync();
- updateChildItems(0);
-
- connect(this, SIGNAL(itemChanged(QTreeWidgetItem*,int)),
- this, SLOT(updateSetting(QTreeWidgetItem*)));
-}
-
-bool SettingsTree::event(QEvent *event)
-{
- if (event->type() == QEvent::WindowActivate) {
- if (isActiveWindow() && autoRefresh)
- maybeRefresh();
- }
- return QTreeWidget::event(event);
-}
-
-void SettingsTree::updateSetting(QTreeWidgetItem *item)
-{
- QString key = item->text(0);
- QTreeWidgetItem *ancestor = item->parent();
- while (ancestor) {
- key.prepend(ancestor->text(0) + "/");
- ancestor = ancestor->parent();
- }
-
- settings->setValue(key, item->data(2, Qt::UserRole));
- if (autoRefresh)
- refresh();
-}
-
-void SettingsTree::updateChildItems(QTreeWidgetItem *parent)
-{
- int dividerIndex = 0;
-
- foreach (QString group, settings->childGroups()) {
- QTreeWidgetItem *child;
- int childIndex = findChild(parent, group, dividerIndex);
- if (childIndex != -1) {
- child = childAt(parent, childIndex);
- child->setText(1, "");
- child->setText(2, "");
- child->setData(2, Qt::UserRole, QVariant());
- moveItemForward(parent, childIndex, dividerIndex);
- } else {
- child = createItem(group, parent, dividerIndex);
- }
- child->setIcon(0, groupIcon);
- ++dividerIndex;
-
- settings->beginGroup(group);
- updateChildItems(child);
- settings->endGroup();
- }
-
- foreach (QString key, settings->childKeys()) {
- QTreeWidgetItem *child;
- int childIndex = findChild(parent, key, 0);
-
- if (childIndex == -1 || childIndex >= dividerIndex) {
- if (childIndex != -1) {
- child = childAt(parent, childIndex);
- for (int i = 0; i < child->childCount(); ++i)
- delete childAt(child, i);
- moveItemForward(parent, childIndex, dividerIndex);
- } else {
- child = createItem(key, parent, dividerIndex);
- }
- child->setIcon(0, keyIcon);
- ++dividerIndex;
- } else {
- child = childAt(parent, childIndex);
- }
-
- QVariant value = settings->value(key);
- if (value.type() == QVariant::Invalid) {
- child->setText(1, "Invalid");
- } else {
- child->setText(1, value.typeName());
- }
- child->setText(2, VariantDelegate::displayText(value));
- child->setData(2, Qt::UserRole, value);
- }
-
- while (dividerIndex < childCount(parent))
- delete childAt(parent, dividerIndex);
-}
-
-QTreeWidgetItem *SettingsTree::createItem(const QString &text,
- QTreeWidgetItem *parent, int index)
-{
- QTreeWidgetItem *after = 0;
- if (index != 0)
- after = childAt(parent, index - 1);
-
- QTreeWidgetItem *item;
- if (parent)
- item = new QTreeWidgetItem(parent, after);
- else
- item = new QTreeWidgetItem(this, after);
-
- item->setText(0, text);
- item->setFlags(item->flags() | Qt::ItemIsEditable);
- return item;
-}
-
-QTreeWidgetItem *SettingsTree::childAt(QTreeWidgetItem *parent, int index)
-{
- if (parent)
- return parent->child(index);
- else
- return topLevelItem(index);
-}
-
-int SettingsTree::childCount(QTreeWidgetItem *parent)
-{
- if (parent)
- return parent->childCount();
- else
- return topLevelItemCount();
-}
-
-int SettingsTree::findChild(QTreeWidgetItem *parent, const QString &text,
- int startIndex)
-{
- for (int i = startIndex; i < childCount(parent); ++i) {
- if (childAt(parent, i)->text(0) == text)
- return i;
- }
- return -1;
-}
-
-void SettingsTree::moveItemForward(QTreeWidgetItem *parent, int oldIndex,
- int newIndex)
-{
- for (int i = 0; i < oldIndex - newIndex; ++i)
- delete childAt(parent, newIndex);
-}
diff --git a/examples/tools/settingseditor/settingstree.h b/examples/tools/settingseditor/settingstree.h
deleted file mode 100644
index 60086c3c38..0000000000
--- a/examples/tools/settingseditor/settingstree.h
+++ /dev/null
@@ -1,90 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef SETTINGSTREE_H
-#define SETTINGSTREE_H
-
-#include <QIcon>
-#include <QTimer>
-#include <QTreeWidget>
-
-QT_BEGIN_NAMESPACE
-class QSettings;
-QT_END_NAMESPACE
-
-class SettingsTree : public QTreeWidget
-{
- Q_OBJECT
-
-public:
- SettingsTree(QWidget *parent = 0);
-
- void setSettingsObject(QSettings *settings);
- QSize sizeHint() const;
-
-public slots:
- void setAutoRefresh(bool autoRefresh);
- void setFallbacksEnabled(bool enabled);
- void maybeRefresh();
- void refresh();
-
-protected:
- bool event(QEvent *event);
-
-private slots:
- void updateSetting(QTreeWidgetItem *item);
-
-private:
- void updateChildItems(QTreeWidgetItem *parent);
- QTreeWidgetItem *createItem(const QString &text, QTreeWidgetItem *parent,
- int index);
- QTreeWidgetItem *childAt(QTreeWidgetItem *parent, int index);
- int childCount(QTreeWidgetItem *parent);
- int findChild(QTreeWidgetItem *parent, const QString &text, int startIndex);
- void moveItemForward(QTreeWidgetItem *parent, int oldIndex, int newIndex);
-
- QSettings *settings;
- QTimer refreshTimer;
- bool autoRefresh;
- QIcon groupIcon;
- QIcon keyIcon;
-};
-
-#endif
diff --git a/examples/tools/settingseditor/variantdelegate.cpp b/examples/tools/settingseditor/variantdelegate.cpp
deleted file mode 100644
index 7b1da5a863..0000000000
--- a/examples/tools/settingseditor/variantdelegate.cpp
+++ /dev/null
@@ -1,316 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "variantdelegate.h"
-
-VariantDelegate::VariantDelegate(QObject *parent)
- : QItemDelegate(parent)
-{
- boolExp.setPattern("true|false");
- boolExp.setCaseSensitivity(Qt::CaseInsensitive);
-
- byteArrayExp.setPattern("[\\x00-\\xff]*");
- charExp.setPattern(".");
- colorExp.setPattern("\\(([0-9]*),([0-9]*),([0-9]*),([0-9]*)\\)");
- doubleExp.setPattern("");
- pointExp.setPattern("\\((-?[0-9]*),(-?[0-9]*)\\)");
- rectExp.setPattern("\\((-?[0-9]*),(-?[0-9]*),(-?[0-9]*),(-?[0-9]*)\\)");
- signedIntegerExp.setPattern("-?[0-9]*");
- sizeExp = pointExp;
- unsignedIntegerExp.setPattern("[0-9]*");
-
- dateExp.setPattern("([0-9]{,4})-([0-9]{,2})-([0-9]{,2})");
- timeExp.setPattern("([0-9]{,2}):([0-9]{,2}):([0-9]{,2})");
- dateTimeExp.setPattern(dateExp.pattern() + "T" + timeExp.pattern());
-}
-
-void VariantDelegate::paint(QPainter *painter,
- const QStyleOptionViewItem &option,
- const QModelIndex &index) const
-{
- if (index.column() == 2) {
- QVariant value = index.model()->data(index, Qt::UserRole);
- if (!isSupportedType(value.type())) {
- QStyleOptionViewItem myOption = option;
- myOption.state &= ~QStyle::State_Enabled;
- QItemDelegate::paint(painter, myOption, index);
- return;
- }
- }
-
- QItemDelegate::paint(painter, option, index);
-}
-
-QWidget *VariantDelegate::createEditor(QWidget *parent,
- const QStyleOptionViewItem & /* option */,
- const QModelIndex &index) const
-{
- if (index.column() != 2)
- return 0;
-
- QVariant originalValue = index.model()->data(index, Qt::UserRole);
- if (!isSupportedType(originalValue.type()))
- return 0;
-
- QLineEdit *lineEdit = new QLineEdit(parent);
- lineEdit->setFrame(false);
-
- QRegExp regExp;
-
- switch (originalValue.type()) {
- case QVariant::Bool:
- regExp = boolExp;
- break;
- case QVariant::ByteArray:
- regExp = byteArrayExp;
- break;
- case QVariant::Char:
- regExp = charExp;
- break;
- case QVariant::Color:
- regExp = colorExp;
- break;
- case QVariant::Date:
- regExp = dateExp;
- break;
- case QVariant::DateTime:
- regExp = dateTimeExp;
- break;
- case QVariant::Double:
- regExp = doubleExp;
- break;
- case QVariant::Int:
- case QVariant::LongLong:
- regExp = signedIntegerExp;
- break;
- case QVariant::Point:
- regExp = pointExp;
- break;
- case QVariant::Rect:
- regExp = rectExp;
- break;
- case QVariant::Size:
- regExp = sizeExp;
- break;
- case QVariant::Time:
- regExp = timeExp;
- break;
- case QVariant::UInt:
- case QVariant::ULongLong:
- regExp = unsignedIntegerExp;
- break;
- default:
- ;
- }
-
- if (!regExp.isEmpty()) {
- QValidator *validator = new QRegExpValidator(regExp, lineEdit);
- lineEdit->setValidator(validator);
- }
-
- return lineEdit;
-}
-
-void VariantDelegate::setEditorData(QWidget *editor,
- const QModelIndex &index) const
-{
- QVariant value = index.model()->data(index, Qt::UserRole);
- if (QLineEdit *lineEdit = qobject_cast<QLineEdit *>(editor))
- lineEdit->setText(displayText(value));
-}
-
-void VariantDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
- const QModelIndex &index) const
-{
- QLineEdit *lineEdit = qobject_cast<QLineEdit *>(editor);
- if (!lineEdit->isModified())
- return;
-
- QString text = lineEdit->text();
- const QValidator *validator = lineEdit->validator();
- if (validator) {
- int pos;
- if (validator->validate(text, pos) != QValidator::Acceptable)
- return;
- }
-
- QVariant originalValue = index.model()->data(index, Qt::UserRole);
- QVariant value;
-
- switch (originalValue.type()) {
- case QVariant::Char:
- value = text.at(0);
- break;
- case QVariant::Color:
- colorExp.exactMatch(text);
- value = QColor(qMin(colorExp.cap(1).toInt(), 255),
- qMin(colorExp.cap(2).toInt(), 255),
- qMin(colorExp.cap(3).toInt(), 255),
- qMin(colorExp.cap(4).toInt(), 255));
- break;
- case QVariant::Date:
- {
- QDate date = QDate::fromString(text, Qt::ISODate);
- if (!date.isValid())
- return;
- value = date;
- }
- break;
- case QVariant::DateTime:
- {
- QDateTime dateTime = QDateTime::fromString(text, Qt::ISODate);
- if (!dateTime.isValid())
- return;
- value = dateTime;
- }
- break;
- case QVariant::Point:
- pointExp.exactMatch(text);
- value = QPoint(pointExp.cap(1).toInt(), pointExp.cap(2).toInt());
- break;
- case QVariant::Rect:
- rectExp.exactMatch(text);
- value = QRect(rectExp.cap(1).toInt(), rectExp.cap(2).toInt(),
- rectExp.cap(3).toInt(), rectExp.cap(4).toInt());
- break;
- case QVariant::Size:
- sizeExp.exactMatch(text);
- value = QSize(sizeExp.cap(1).toInt(), sizeExp.cap(2).toInt());
- break;
- case QVariant::StringList:
- value = text.split(",");
- break;
- case QVariant::Time:
- {
- QTime time = QTime::fromString(text, Qt::ISODate);
- if (!time.isValid())
- return;
- value = time;
- }
- break;
- default:
- value = text;
- value.convert(originalValue.type());
- }
-
- model->setData(index, displayText(value), Qt::DisplayRole);
- model->setData(index, value, Qt::UserRole);
-}
-
-bool VariantDelegate::isSupportedType(QVariant::Type type)
-{
- switch (type) {
- case QVariant::Bool:
- case QVariant::ByteArray:
- case QVariant::Char:
- case QVariant::Color:
- case QVariant::Date:
- case QVariant::DateTime:
- case QVariant::Double:
- case QVariant::Int:
- case QVariant::LongLong:
- case QVariant::Point:
- case QVariant::Rect:
- case QVariant::Size:
- case QVariant::String:
- case QVariant::StringList:
- case QVariant::Time:
- case QVariant::UInt:
- case QVariant::ULongLong:
- return true;
- default:
- return false;
- }
-}
-
-QString VariantDelegate::displayText(const QVariant &value)
-{
- switch (value.type()) {
- case QVariant::Bool:
- case QVariant::ByteArray:
- case QVariant::Char:
- case QVariant::Double:
- case QVariant::Int:
- case QVariant::LongLong:
- case QVariant::String:
- case QVariant::UInt:
- case QVariant::ULongLong:
- return value.toString();
- case QVariant::Color:
- {
- QColor color = qvariant_cast<QColor>(value);
- return QString("(%1,%2,%3,%4)")
- .arg(color.red()).arg(color.green())
- .arg(color.blue()).arg(color.alpha());
- }
- case QVariant::Date:
- return value.toDate().toString(Qt::ISODate);
- case QVariant::DateTime:
- return value.toDateTime().toString(Qt::ISODate);
- case QVariant::Invalid:
- return "<Invalid>";
- case QVariant::Point:
- {
- QPoint point = value.toPoint();
- return QString("(%1,%2)").arg(point.x()).arg(point.y());
- }
- case QVariant::Rect:
- {
- QRect rect = value.toRect();
- return QString("(%1,%2,%3,%4)")
- .arg(rect.x()).arg(rect.y())
- .arg(rect.width()).arg(rect.height());
- }
- case QVariant::Size:
- {
- QSize size = value.toSize();
- return QString("(%1,%2)").arg(size.width()).arg(size.height());
- }
- case QVariant::StringList:
- return value.toStringList().join(',');
- case QVariant::Time:
- return value.toTime().toString(Qt::ISODate);
- default:
- break;
- }
- return QString("<%1>").arg(value.typeName());
-}
diff --git a/examples/tools/settingseditor/variantdelegate.h b/examples/tools/settingseditor/variantdelegate.h
deleted file mode 100644
index a886f7938a..0000000000
--- a/examples/tools/settingseditor/variantdelegate.h
+++ /dev/null
@@ -1,81 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef VARIANTDELEGATE_H
-#define VARIANTDELEGATE_H
-
-#include <QItemDelegate>
-#include <QRegExp>
-
-class VariantDelegate : public QItemDelegate
-{
- Q_OBJECT
-
-public:
- VariantDelegate(QObject *parent = 0);
-
- void paint(QPainter *painter, const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
- QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
- void setEditorData(QWidget *editor, const QModelIndex &index) const;
- void setModelData(QWidget *editor, QAbstractItemModel *model,
- const QModelIndex &index) const;
-
- static bool isSupportedType(QVariant::Type type);
- static QString displayText(const QVariant &value);
-
-private:
- mutable QRegExp boolExp;
- mutable QRegExp byteArrayExp;
- mutable QRegExp charExp;
- mutable QRegExp colorExp;
- mutable QRegExp dateExp;
- mutable QRegExp dateTimeExp;
- mutable QRegExp doubleExp;
- mutable QRegExp pointExp;
- mutable QRegExp rectExp;
- mutable QRegExp signedIntegerExp;
- mutable QRegExp sizeExp;
- mutable QRegExp timeExp;
- mutable QRegExp unsignedIntegerExp;
-};
-
-#endif
diff --git a/examples/tools/styleplugin/plugin/plugin.pro b/examples/tools/styleplugin/plugin/plugin.pro
deleted file mode 100644
index c13af5a36c..0000000000
--- a/examples/tools/styleplugin/plugin/plugin.pro
+++ /dev/null
@@ -1,25 +0,0 @@
-#! [0]
-TEMPLATE = lib
-CONFIG += plugin
-HEADERS = simplestyle.h \
- simplestyleplugin.h
-SOURCES = simplestyle.cpp \
- simplestyleplugin.cpp
-OTHER_FILES += simplestyle.json
-TARGET = simplestyleplugin
-#! [0]
-win32 {
- CONFIG(debug, release|debug):DESTDIR = ../debug/styles/
- CONFIG(release, release|debug):DESTDIR = ../release/styles/
-} else {
- DESTDIR = ../styles/
-}
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/styleplugin/styles
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS plugin.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/styleplugin/plugin
-INSTALLS += target sources
-
-
-QT += widgets
diff --git a/examples/tools/styleplugin/plugin/simplestyle.cpp b/examples/tools/styleplugin/plugin/simplestyle.cpp
deleted file mode 100644
index 7f47a36335..0000000000
--- a/examples/tools/styleplugin/plugin/simplestyle.cpp
+++ /dev/null
@@ -1,48 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "simplestyle.h"
-
-void SimpleStyle::polish(QPalette &palette)
-{
- palette.setBrush(QPalette::Button, Qt::red);
-}
diff --git a/examples/tools/styleplugin/plugin/simplestyle.h b/examples/tools/styleplugin/plugin/simplestyle.h
deleted file mode 100644
index 15d5fb3b7f..0000000000
--- a/examples/tools/styleplugin/plugin/simplestyle.h
+++ /dev/null
@@ -1,60 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef SIMPLESTYLE_H
-#define SIMPLESTYLE_H
-
-#include <QProxyStyle>
-
-QT_BEGIN_NAMESPACE
-class QPalette;
-QT_END_NAMESPACE
-
-class SimpleStyle : public QProxyStyle
-{
- Q_OBJECT
-
-public:
- SimpleStyle() {};
-
- void polish(QPalette &palette);
-};
-
-#endif
diff --git a/examples/tools/styleplugin/plugin/simplestyle.json b/examples/tools/styleplugin/plugin/simplestyle.json
deleted file mode 100644
index a708e2aafe..0000000000
--- a/examples/tools/styleplugin/plugin/simplestyle.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "Keys": [ "simplestyle" ]
-}
diff --git a/examples/tools/styleplugin/plugin/simplestyleplugin.cpp b/examples/tools/styleplugin/plugin/simplestyleplugin.cpp
deleted file mode 100644
index 08c2a8720c..0000000000
--- a/examples/tools/styleplugin/plugin/simplestyleplugin.cpp
+++ /dev/null
@@ -1,60 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "simplestyleplugin.h"
-#include "simplestyle.h"
-
-//! [0]
-QStringList SimpleStylePlugin::keys() const
-{
- return QStringList() << "SimpleStyle";
-}
-//! [0]
-
-//! [1]
-QStyle *SimpleStylePlugin::create(const QString &key)
-{
- if (key.toLower() == "simplestyle")
- return new SimpleStyle;
- return 0;
-}
-//! [1]
diff --git a/examples/tools/styleplugin/plugin/simplestyleplugin.h b/examples/tools/styleplugin/plugin/simplestyleplugin.h
deleted file mode 100644
index ac585dd80a..0000000000
--- a/examples/tools/styleplugin/plugin/simplestyleplugin.h
+++ /dev/null
@@ -1,65 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef SIMPLESTYLEPLUGIN_H
-#define SIMPLESTYLEPLUGIN_H
-
-#include <QStylePlugin>
-
-QT_BEGIN_NAMESPACE
-class QStringList;
-class QStyle;
-QT_END_NAMESPACE
-
-//! [0]
-class SimpleStylePlugin : public QStylePlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QStyleFactoryInterface" FILE "simplestyle.json")
-
-public:
- SimpleStylePlugin() {}
-
- QStringList keys() const;
- QStyle *create(const QString &key);
-};
-//! [0]
-
-#endif
diff --git a/examples/tools/styleplugin/styleplugin.pro b/examples/tools/styleplugin/styleplugin.pro
deleted file mode 100644
index 63805a14cc..0000000000
--- a/examples/tools/styleplugin/styleplugin.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS = stylewindow \
- plugin
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/styleplugin
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS styleplugin.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/styleplugin
-INSTALLS += target sources
-
-QT += widgets
diff --git a/examples/tools/styleplugin/stylewindow/main.cpp b/examples/tools/styleplugin/stylewindow/main.cpp
deleted file mode 100644
index 5f791e0774..0000000000
--- a/examples/tools/styleplugin/stylewindow/main.cpp
+++ /dev/null
@@ -1,57 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "stylewindow.h"
-
-//! [0]
-int main(int argv, char *args[])
-{
- QApplication app(argv, args);
- QApplication::setStyle(QStyleFactory::create("simplestyle"));
-
- StyleWindow window;
- window.resize(200, 50);
- window.show();
-
- return app.exec();
-}
-//! [0]
diff --git a/examples/tools/styleplugin/stylewindow/stylewindow.cpp b/examples/tools/styleplugin/stylewindow/stylewindow.cpp
deleted file mode 100644
index 83d6634152..0000000000
--- a/examples/tools/styleplugin/stylewindow/stylewindow.cpp
+++ /dev/null
@@ -1,60 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "stylewindow.h"
-
-StyleWindow::StyleWindow()
-{
- QPushButton *styledButton = new QPushButton(tr("Big Red Button"));
-
- QGridLayout *layout = new QGridLayout;
- layout->addWidget(styledButton);
-
- QGroupBox *styleBox = new QGroupBox(tr("A simple style button"));
- styleBox->setLayout(layout);
-
- QGridLayout *outerLayout = new QGridLayout;
- outerLayout->addWidget(styleBox, 0, 0);
- setLayout(outerLayout);
-
- setWindowTitle(tr("Style Plugin Example"));
-}
diff --git a/examples/tools/styleplugin/stylewindow/stylewindow.h b/examples/tools/styleplugin/stylewindow/stylewindow.h
deleted file mode 100644
index fa8cdbadd2..0000000000
--- a/examples/tools/styleplugin/stylewindow/stylewindow.h
+++ /dev/null
@@ -1,54 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef STYLEWINDOW_H
-#define STYLEWINDOW_H
-
-#include <QWidget>
-
-class StyleWindow : public QWidget
-{
- Q_OBJECT
-
-public:
- StyleWindow();
-};
-
-#endif
diff --git a/examples/tools/styleplugin/stylewindow/stylewindow.pro b/examples/tools/styleplugin/stylewindow/stylewindow.pro
deleted file mode 100644
index 658a46134b..0000000000
--- a/examples/tools/styleplugin/stylewindow/stylewindow.pro
+++ /dev/null
@@ -1,19 +0,0 @@
-HEADERS = stylewindow.h
-SOURCES = stylewindow.cpp \
- main.cpp
-
-TARGET = styleplugin
-win32 {
- debug:DESTDIR = ../debug/
- release:DESTDIR = ../release/
-} else {
- DESTDIR = ../
-}
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/styleplugin
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS stylewindow.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/styleplugin/stylewindow
-INSTALLS += target sources
-
-QT += widgets
diff --git a/examples/tools/tools.pro b/examples/tools/tools.pro
index c0e5b5aa75..4f02e01f61 100644
--- a/examples/tools/tools.pro
+++ b/examples/tools/tools.pro
@@ -1,21 +1,8 @@
TEMPLATE = subdirs
CONFIG += ordered
-SUBDIRS = codecs \
- completer \
- customcompleter \
- echoplugin \
- i18n \
- contiguouscache \
- plugandpaintplugins \
- plugandpaint \
- regexp \
- settingseditor \
- styleplugin \
- treemodelcompleter \
- undo \
- undoframework
-
-plugandpaint.depends = plugandpaintplugins
+SUBDIRS = contiguouscache \
+ customtype \
+ customtypesending
# install
target.path = $$[QT_INSTALL_EXAMPLES]/tools
diff --git a/examples/tools/treemodelcompleter/main.cpp b/examples/tools/treemodelcompleter/main.cpp
deleted file mode 100644
index 65990ca54c..0000000000
--- a/examples/tools/treemodelcompleter/main.cpp
+++ /dev/null
@@ -1,54 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include "mainwindow.h"
-
-//! [0]
-int main(int argc, char *argv[])
-{
- Q_INIT_RESOURCE(treemodelcompleter);
-
- QApplication app(argc, argv);
- MainWindow window;
- window.show();
- return app.exec();
-}
-//! [0]
diff --git a/examples/tools/treemodelcompleter/mainwindow.cpp b/examples/tools/treemodelcompleter/mainwindow.cpp
deleted file mode 100644
index 851fde5fff..0000000000
--- a/examples/tools/treemodelcompleter/mainwindow.cpp
+++ /dev/null
@@ -1,246 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-#include "treemodelcompleter.h"
-#include "mainwindow.h"
-
-//! [0]
-MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent), completer(0), lineEdit(0)
-{
- createMenu();
-
- completer = new TreeModelCompleter(this);
- completer->setModel(modelFromFile(":/resources/treemodel.txt"));
- completer->setSeparator(QLatin1String("."));
- QObject::connect(completer, SIGNAL(highlighted(QModelIndex)),
- this, SLOT(highlight(QModelIndex)));
-
- QWidget *centralWidget = new QWidget;
-
- QLabel *modelLabel = new QLabel;
- modelLabel->setText(tr("Tree Model<br>(Double click items to edit)"));
-
- QLabel *modeLabel = new QLabel;
- modeLabel->setText(tr("Completion Mode"));
- modeCombo = new QComboBox;
- modeCombo->addItem(tr("Inline"));
- modeCombo->addItem(tr("Filtered Popup"));
- modeCombo->addItem(tr("Unfiltered Popup"));
- modeCombo->setCurrentIndex(1);
-
- QLabel *caseLabel = new QLabel;
- caseLabel->setText(tr("Case Sensitivity"));
- caseCombo = new QComboBox;
- caseCombo->addItem(tr("Case Insensitive"));
- caseCombo->addItem(tr("Case Sensitive"));
- caseCombo->setCurrentIndex(0);
-//! [0]
-
-//! [1]
- QLabel *separatorLabel = new QLabel;
- separatorLabel->setText(tr("Tree Separator"));
-
- QLineEdit *separatorLineEdit = new QLineEdit;
- separatorLineEdit->setText(completer->separator());
- connect(separatorLineEdit, SIGNAL(textChanged(QString)),
- completer, SLOT(setSeparator(QString)));
-
- QCheckBox *wrapCheckBox = new QCheckBox;
- wrapCheckBox->setText(tr("Wrap around completions"));
- wrapCheckBox->setChecked(completer->wrapAround());
- connect(wrapCheckBox, SIGNAL(clicked(bool)), completer, SLOT(setWrapAround(bool)));
-
- contentsLabel = new QLabel;
- contentsLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- connect(separatorLineEdit, SIGNAL(textChanged(QString)),
- this, SLOT(updateContentsLabel(QString)));
-
- treeView = new QTreeView;
- treeView->setModel(completer->model());
- treeView->header()->hide();
- treeView->expandAll();
-//! [1]
-
-//! [2]
- connect(modeCombo, SIGNAL(activated(int)), this, SLOT(changeMode(int)));
- connect(caseCombo, SIGNAL(activated(int)), this, SLOT(changeCase(int)));
-
- lineEdit = new QLineEdit;
- lineEdit->setCompleter(completer);
-//! [2]
-
-//! [3]
- QGridLayout *layout = new QGridLayout;
- layout->addWidget(modelLabel, 0, 0); layout->addWidget(treeView, 0, 1);
- layout->addWidget(modeLabel, 1, 0); layout->addWidget(modeCombo, 1, 1);
- layout->addWidget(caseLabel, 2, 0); layout->addWidget(caseCombo, 2, 1);
- layout->addWidget(separatorLabel, 3, 0); layout->addWidget(separatorLineEdit, 3, 1);
- layout->addWidget(wrapCheckBox, 4, 0);
- layout->addWidget(contentsLabel, 5, 0, 1, 2);
- layout->addWidget(lineEdit, 6, 0, 1, 2);
- centralWidget->setLayout(layout);
- setCentralWidget(centralWidget);
-
- changeCase(caseCombo->currentIndex());
- changeMode(modeCombo->currentIndex());
-
- setWindowTitle(tr("Tree Model Completer"));
- lineEdit->setFocus();
-}
-//! [3]
-
-//! [4]
-void MainWindow::createMenu()
-{
- QAction *exitAction = new QAction(tr("Exit"), this);
- QAction *aboutAct = new QAction(tr("About"), this);
- QAction *aboutQtAct = new QAction(tr("About Qt"), this);
-
- connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
- connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
- connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
-
- QMenu* fileMenu = menuBar()->addMenu(tr("File"));
- fileMenu->addAction(exitAction);
-
- QMenu* helpMenu = menuBar()->addMenu(tr("About"));
- helpMenu->addAction(aboutAct);
- helpMenu->addAction(aboutQtAct);
-}
-//! [4]
-
-//! [5]
-void MainWindow::changeMode(int index)
-{
- QCompleter::CompletionMode mode;
- if (index == 0)
- mode = QCompleter::InlineCompletion;
- else if (index == 1)
- mode = QCompleter::PopupCompletion;
- else
- mode = QCompleter::UnfilteredPopupCompletion;
-
- completer->setCompletionMode(mode);
-}
-//! [5]
-
-QAbstractItemModel *MainWindow::modelFromFile(const QString& fileName)
-{
- QFile file(fileName);
- if (!file.open(QFile::ReadOnly))
- return new QStringListModel(completer);
-
-#ifndef QT_NO_CURSOR
- QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
-#endif
- QStringList words;
-
- QStandardItemModel *model = new QStandardItemModel(completer);
- QVector<QStandardItem *> parents(10);
- parents[0] = model->invisibleRootItem();
-
- while (!file.atEnd()) {
- QString line = file.readLine();
- QString trimmedLine = line.trimmed();
- if (line.isEmpty() || trimmedLine.isEmpty())
- continue;
-
- QRegExp re("^\\s+");
- int nonws = re.indexIn(line);
- int level = 0;
- if (nonws == -1) {
- level = 0;
- } else {
- if (line.startsWith("\t")) {
- level = re.cap(0).length();
- } else {
- level = re.cap(0).length()/4;
- }
- }
-
- if (level+1 >= parents.size())
- parents.resize(parents.size()*2);
-
- QStandardItem *item = new QStandardItem;
- item->setText(trimmedLine);
- parents[level]->appendRow(item);
- parents[level+1] = item;
- }
-
-#ifndef QT_NO_CURSOR
- QApplication::restoreOverrideCursor();
-#endif
-
- return model;
-}
-
-void MainWindow::highlight(const QModelIndex &index)
-{
- QAbstractItemModel *completionModel = completer->completionModel();
- QAbstractProxyModel *proxy = qobject_cast<QAbstractProxyModel *>(completionModel);
- if (!proxy)
- return;
- QModelIndex sourceIndex = proxy->mapToSource(index);
- treeView->selectionModel()->select(sourceIndex, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
- treeView->scrollTo(index);
-}
-
-//! [6]
-void MainWindow::about()
-{
- QMessageBox::about(this, tr("About"), tr("This example demonstrates how "
- "to use a QCompleter with a custom tree model."));
-}
-//! [6]
-
-//! [7]
-void MainWindow::changeCase(int cs)
-{
- completer->setCaseSensitivity(cs ? Qt::CaseSensitive : Qt::CaseInsensitive);
-}
-//! [7]
-
-void MainWindow::updateContentsLabel(const QString& sep)
-{
- contentsLabel->setText(tr("Type path from model above with items at each level separated by a '%1'").arg(sep));
-}
-
diff --git a/examples/tools/treemodelcompleter/mainwindow.h b/examples/tools/treemodelcompleter/mainwindow.h
deleted file mode 100644
index 206a41c2fc..0000000000
--- a/examples/tools/treemodelcompleter/mainwindow.h
+++ /dev/null
@@ -1,88 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-#include <QModelIndex>
-
-class TreeModelCompleter;
-QT_BEGIN_NAMESPACE
-class QAbstractItemModel;
-class QComboBox;
-class QLabel;
-class QLineEdit;
-class QProgressBar;
-class QCheckBox;
-class QTreeView;
-QT_END_NAMESPACE
-
-//! [0]
-class MainWindow : public QMainWindow
-{
- Q_OBJECT
-
-public:
- MainWindow(QWidget *parent = 0);
-
-private slots:
- void about();
- void changeCase(int);
- void changeMode(int);
- void highlight(const QModelIndex&);
- void updateContentsLabel(const QString&);
-//! [0]
-
-//! [1]
-private:
- void createMenu();
- QAbstractItemModel *modelFromFile(const QString& fileName);
-
- QTreeView *treeView;
- QComboBox *caseCombo;
- QComboBox *modeCombo;
- QLabel *contentsLabel;
- TreeModelCompleter *completer;
- QLineEdit *lineEdit;
-};
-//! [1]
-
-#endif // MAINWINDOW_H
diff --git a/examples/tools/treemodelcompleter/resources/treemodel.txt b/examples/tools/treemodelcompleter/resources/treemodel.txt
deleted file mode 100644
index 06c90077af..0000000000
--- a/examples/tools/treemodelcompleter/resources/treemodel.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Parent1
- Child1
- GrandChild1
- GrandChild2
- GrandChild3
- GrandGrandChild1
- Child2
- GrandChild1
- GrandGrandChild1
- GrandChild2
- Child3
-
-Parent2
- Child1
- GrandChild1
- Child2
- Child3
- GrandChild1
- GrandChild2
-
diff --git a/examples/tools/treemodelcompleter/treemodelcompleter.cpp b/examples/tools/treemodelcompleter/treemodelcompleter.cpp
deleted file mode 100644
index 71adaac077..0000000000
--- a/examples/tools/treemodelcompleter/treemodelcompleter.cpp
+++ /dev/null
@@ -1,97 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "treemodelcompleter.h"
-#include <QStringList>
-
-//! [0]
-TreeModelCompleter::TreeModelCompleter(QObject *parent)
- : QCompleter(parent)
-{
-}
-//! [0]
-
-//! [1]
-TreeModelCompleter::TreeModelCompleter(QAbstractItemModel *model, QObject *parent)
- : QCompleter(model, parent)
-{
-}
-//! [1]
-
-void TreeModelCompleter::setSeparator(const QString &separator)
-{
- sep = separator;
-}
-
-//! [2]
-QString TreeModelCompleter::separator() const
-{
- return sep;
-}
-//! [2]
-
-//! [3]
-QStringList TreeModelCompleter::splitPath(const QString &path) const
-{
- if (sep.isNull()) {
- return QCompleter::splitPath(path);
- }
-
- return path.split(sep);
-}
-//! [3]
-
-//! [4]
-QString TreeModelCompleter::pathFromIndex(const QModelIndex &index) const
-{
- if (sep.isNull()) {
- return QCompleter::pathFromIndex(index);
- }
-
- // navigate up and accumulate data
- QStringList dataList;
- for (QModelIndex i = index; i.isValid(); i = i.parent()) {
- dataList.prepend(model()->data(i, completionRole()).toString());
- }
-
- return dataList.join(sep);
-}
-//! [4]
-
diff --git a/examples/tools/treemodelcompleter/treemodelcompleter.desktop b/examples/tools/treemodelcompleter/treemodelcompleter.desktop
deleted file mode 100644
index a54aa7b66e..0000000000
--- a/examples/tools/treemodelcompleter/treemodelcompleter.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Tree Model Completer
-Exec=/opt/usr/bin/treemodelcompleter
-Icon=treemodelcompleter
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/tools/treemodelcompleter/treemodelcompleter.h b/examples/tools/treemodelcompleter/treemodelcompleter.h
deleted file mode 100644
index f0288805d3..0000000000
--- a/examples/tools/treemodelcompleter/treemodelcompleter.h
+++ /dev/null
@@ -1,70 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef TREEMODELCOMPLETER_H
-#define TREEMODELCOMPLETER_H
-
-#include <QCompleter>
-
-//! [0]
-class TreeModelCompleter : public QCompleter
-{
- Q_OBJECT
- Q_PROPERTY(QString separator READ separator WRITE setSeparator)
-
-public:
- explicit TreeModelCompleter(QObject *parent = 0);
- explicit TreeModelCompleter(QAbstractItemModel *model, QObject *parent = 0);
-
- QString separator() const;
-public slots:
- void setSeparator(const QString &separator);
-
-protected:
- QStringList splitPath(const QString &path) const;
- QString pathFromIndex(const QModelIndex &index) const;
-
-private:
- QString sep;
-};
-//! [0]
-
-#endif // TREEMODELCOMPLETER_H
-
diff --git a/examples/tools/treemodelcompleter/treemodelcompleter.pro b/examples/tools/treemodelcompleter/treemodelcompleter.pro
deleted file mode 100644
index ffdf9b647d..0000000000
--- a/examples/tools/treemodelcompleter/treemodelcompleter.pro
+++ /dev/null
@@ -1,16 +0,0 @@
-HEADERS = treemodelcompleter.h \
- mainwindow.h
-SOURCES = treemodelcompleter.cpp \
- main.cpp \
- mainwindow.cpp
-RESOURCES = treemodelcompleter.qrc
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/treemodelcompleter
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS treemodelcompleter.pro resources
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/treemodelcompleter
-INSTALLS += target sources
-
-QT += widgets
-
-simulator: warning(This example might not fully work on Simulator platform)
diff --git a/examples/tools/treemodelcompleter/treemodelcompleter.qrc b/examples/tools/treemodelcompleter/treemodelcompleter.qrc
deleted file mode 100644
index 1130fcd641..0000000000
--- a/examples/tools/treemodelcompleter/treemodelcompleter.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource prefix="/">
- <file>resources/treemodel.txt</file>
-</qresource>
-</RCC>
diff --git a/examples/tools/undo/commands.cpp b/examples/tools/undo/commands.cpp
deleted file mode 100644
index ee299bc3af..0000000000
--- a/examples/tools/undo/commands.cpp
+++ /dev/null
@@ -1,180 +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 demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** 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 Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "commands.h"
-
-static const int setShapeRectCommandId = 1;
-static const int setShapeColorCommandId = 2;
-
-/******************************************************************************
-** AddShapeCommand
-*/
-
-AddShapeCommand::AddShapeCommand(Document *doc, const Shape &shape, QUndoCommand *parent)
- : QUndoCommand(parent)
-{
- m_doc = doc;
- m_shape = shape;
-}
-
-void AddShapeCommand::undo()
-{
- m_doc->deleteShape(m_shapeName);
-}
-
-void AddShapeCommand::redo()
-{
- // A shape only gets a name when it is inserted into a document
- m_shapeName = m_doc->addShape(m_shape);
- setText(QObject::tr("Add %1").arg(m_shapeName));
-}
-
-/******************************************************************************
-** RemoveShapeCommand
-*/
-
-RemoveShapeCommand::RemoveShapeCommand(Document *doc, const QString &shapeName,
- QUndoCommand *parent)
- : QUndoCommand(parent)
-{
- setText(QObject::tr("Remove %1").arg(shapeName));
- m_doc = doc;
- m_shape = doc->shape(shapeName);
- m_shapeName = shapeName;
-}
-
-void RemoveShapeCommand::undo()
-{
- m_shapeName = m_doc->addShape(m_shape);
-}
-
-void RemoveShapeCommand::redo()
-{
- m_doc->deleteShape(m_shapeName);
-}
-
-/******************************************************************************
-** SetShapeColorCommand
-*/
-
-SetShapeColorCommand::SetShapeColorCommand(Document *doc, const QString &shapeName,
- const QColor &color, QUndoCommand *parent)
- : QUndoCommand(parent)
-{
- setText(QObject::tr("Set %1's color").arg(shapeName));
-
- m_doc = doc;
- m_shapeName = shapeName;
- m_oldColor = doc->shape(shapeName).color();
- m_newColor = color;
-}
-
-void SetShapeColorCommand::undo()
-{
- m_doc->setShapeColor(m_shapeName, m_oldColor);
-}
-
-void SetShapeColorCommand::redo()
-{
- m_doc->setShapeColor(m_shapeName, m_newColor);
-}
-
-bool SetShapeColorCommand::mergeWith(const QUndoCommand *command)
-{
- if (command->id() != setShapeColorCommandId)
- return false;
-
- const SetShapeColorCommand *other = static_cast<const SetShapeColorCommand*>(command);
- if (m_shapeName != other->m_shapeName)
- return false;
-
- m_newColor = other->m_newColor;
- return true;
-}
-
-int SetShapeColorCommand::id() const
-{
- return setShapeColorCommandId;
-}
-
-/******************************************************************************
-** SetShapeRectCommand
-*/
-
-SetShapeRectCommand::SetShapeRectCommand(Document *doc, const QString &shapeName,
- const QRect &rect, QUndoCommand *parent)
- : QUndoCommand(parent)
-{
- setText(QObject::tr("Change %1's geometry").arg(shapeName));
-
- m_doc = doc;
- m_shapeName = shapeName;
- m_oldRect = doc->shape(shapeName).rect();
- m_newRect = rect;
-}
-
-void SetShapeRectCommand::undo()
-{
- m_doc->setShapeRect(m_shapeName, m_oldRect);
-}
-
-void SetShapeRectCommand::redo()
-{
- m_doc->setShapeRect(m_shapeName, m_newRect);
-}
-
-bool SetShapeRectCommand::mergeWith(const QUndoCommand *command)
-{
- if (command->id() != setShapeRectCommandId)
- return false;
-
- const SetShapeRectCommand *other = static_cast<const SetShapeRectCommand*>(command);
- if (m_shapeName != other->m_shapeName)
- return false;
-
- m_newRect = other->m_newRect;
- return true;
-}
-
-int SetShapeRectCommand::id() const
-{
- return setShapeRectCommandId;
-}
diff --git a/examples/tools/undo/commands.h b/examples/tools/undo/commands.h
deleted file mode 100644
index 23dde1c81c..0000000000
--- a/examples/tools/undo/commands.h
+++ /dev/null
@@ -1,112 +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 demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** 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 Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef COMMANDS_H
-#define COMMANDS_H
-
-#include <QUndoCommand>
-#include "document.h"
-
-class AddShapeCommand : public QUndoCommand
-{
-public:
- AddShapeCommand(Document *doc, const Shape &shape, QUndoCommand *parent = 0);
- void undo();
- void redo();
-
-private:
- Document *m_doc;
- Shape m_shape;
- QString m_shapeName;
-};
-
-class RemoveShapeCommand : public QUndoCommand
-{
-public:
- RemoveShapeCommand(Document *doc, const QString &shapeName, QUndoCommand *parent = 0);
- void undo();
- void redo();
-
-private:
- Document *m_doc;
- Shape m_shape;
- QString m_shapeName;
-};
-
-class SetShapeColorCommand : public QUndoCommand
-{
-public:
- SetShapeColorCommand(Document *doc, const QString &shapeName, const QColor &color,
- QUndoCommand *parent = 0);
-
- void undo();
- void redo();
-
- bool mergeWith(const QUndoCommand *command);
- int id() const;
-
-private:
- Document *m_doc;
- QString m_shapeName;
- QColor m_oldColor;
- QColor m_newColor;
-};
-
-class SetShapeRectCommand : public QUndoCommand
-{
-public:
- SetShapeRectCommand(Document *doc, const QString &shapeName, const QRect &rect,
- QUndoCommand *parent = 0);
-
- void undo();
- void redo();
-
- bool mergeWith(const QUndoCommand *command);
- int id() const;
-
-private:
- Document *m_doc;
- QString m_shapeName;
- QRect m_oldRect;
- QRect m_newRect;
-};
-
-#endif // COMMANDS_H
diff --git a/examples/tools/undo/document.cpp b/examples/tools/undo/document.cpp
deleted file mode 100644
index 5970ab72a1..0000000000
--- a/examples/tools/undo/document.cpp
+++ /dev/null
@@ -1,445 +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 demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** 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 Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <qevent.h>
-#include <QPainter>
-#include <QTextStream>
-#include <QUndoStack>
-#include "document.h"
-#include "commands.h"
-
-static const int resizeHandleWidth = 6;
-
-/******************************************************************************
-** Shape
-*/
-
-const QSize Shape::minSize(80, 50);
-
-Shape::Shape(Type type, const QColor &color, const QRect &rect)
- : m_type(type), m_rect(rect), m_color(color)
-{
-}
-
-Shape::Type Shape::type() const
-{
- return m_type;
-}
-
-QRect Shape::rect() const
-{
- return m_rect;
-}
-
-QColor Shape::color() const
-{
- return m_color;
-}
-
-QString Shape::name() const
-{
- return m_name;
-}
-
-QRect Shape::resizeHandle() const
-{
- QPoint br = m_rect.bottomRight();
- return QRect(br - QPoint(resizeHandleWidth, resizeHandleWidth), br);
-}
-
-QString Shape::typeToString(Type type)
-{
- QString result;
-
- switch (type) {
- case Rectangle:
- result = QLatin1String("Rectangle");
- break;
- case Circle:
- result = QLatin1String("Circle");
- break;
- case Triangle:
- result = QLatin1String("Triangle");
- break;
- }
-
- return result;
-}
-
-Shape::Type Shape::stringToType(const QString &s, bool *ok)
-{
- if (ok != 0)
- *ok = true;
-
- if (s == QLatin1String("Rectangle"))
- return Rectangle;
- if (s == QLatin1String("Circle"))
- return Circle;
- if (s == QLatin1String("Triangle"))
- return Triangle;
-
- if (ok != 0)
- *ok = false;
- return Rectangle;
-}
-
-/******************************************************************************
-** Document
-*/
-
-Document::Document(QWidget *parent)
- : QWidget(parent), m_currentIndex(-1), m_mousePressIndex(-1), m_resizeHandlePressed(false)
-{
- m_undoStack = new QUndoStack(this);
-
- setAutoFillBackground(true);
- setBackgroundRole(QPalette::Base);
-
- QPalette pal = palette();
- pal.setBrush(QPalette::Base, QPixmap(":/icons/background.png"));
- pal.setColor(QPalette::HighlightedText, Qt::red);
- setPalette(pal);
-}
-
-QString Document::addShape(const Shape &shape)
-{
- QString name = Shape::typeToString(shape.type());
- name = uniqueName(name);
-
- m_shapeList.append(shape);
- m_shapeList[m_shapeList.count() - 1].m_name = name;
- setCurrentShape(m_shapeList.count() - 1);
-
- return name;
-}
-
-void Document::deleteShape(const QString &shapeName)
-{
- int index = indexOf(shapeName);
- if (index == -1)
- return;
-
- update(m_shapeList.at(index).rect());
-
- m_shapeList.removeAt(index);
-
- if (index <= m_currentIndex) {
- m_currentIndex = -1;
- if (index == m_shapeList.count())
- --index;
- setCurrentShape(index);
- }
-}
-
-Shape Document::shape(const QString &shapeName) const
-{
- int index = indexOf(shapeName);
- if (index == -1)
- return Shape();
- return m_shapeList.at(index);
-}
-
-void Document::setShapeRect(const QString &shapeName, const QRect &rect)
-{
- int index = indexOf(shapeName);
- if (index == -1)
- return;
-
- Shape &shape = m_shapeList[index];
-
- update(shape.rect());
- update(rect);
-
- shape.m_rect = rect;
-}
-
-void Document::setShapeColor(const QString &shapeName, const QColor &color)
-{
-
- int index = indexOf(shapeName);
- if (index == -1)
- return;
-
- Shape &shape = m_shapeList[index];
- shape.m_color = color;
-
- update(shape.rect());
-}
-
-QUndoStack *Document::undoStack() const
-{
- return m_undoStack;
-}
-
-bool Document::load(QTextStream &stream)
-{
- m_shapeList.clear();
-
- while (!stream.atEnd()) {
- QString shapeType, shapeName, colorName;
- int left, top, width, height;
- stream >> shapeType >> shapeName >> colorName >> left >> top >> width >> height;
- if (stream.status() != QTextStream::Ok)
- return false;
- bool ok;
- Shape::Type type = Shape::stringToType(shapeType, &ok);
- if (!ok)
- return false;
- QColor color(colorName);
- if (!color.isValid())
- return false;
-
- Shape shape(type);
- shape.m_name = shapeName;
- shape.m_color = color;
- shape.m_rect = QRect(left, top, width, height);
-
- m_shapeList.append(shape);
- }
-
- m_currentIndex = m_shapeList.isEmpty() ? -1 : 0;
-
- return true;
-}
-
-void Document::save(QTextStream &stream)
-{
- for (int i = 0; i < m_shapeList.count(); ++i) {
- const Shape &shape = m_shapeList.at(i);
- QRect r = shape.rect();
- stream << Shape::typeToString(shape.type()) << QLatin1Char(' ')
- << shape.name() << QLatin1Char(' ')
- << shape.color().name() << QLatin1Char(' ')
- << r.left() << QLatin1Char(' ')
- << r.top() << QLatin1Char(' ')
- << r.width() << QLatin1Char(' ')
- << r.height();
- if (i != m_shapeList.count() - 1)
- stream << QLatin1Char('\n');
- }
- m_undoStack->setClean();
-}
-
-QString Document::fileName() const
-{
- return m_fileName;
-}
-
-void Document::setFileName(const QString &fileName)
-{
- m_fileName = fileName;
-}
-
-int Document::indexAt(const QPoint &pos) const
-{
- for (int i = m_shapeList.count() - 1; i >= 0; --i) {
- if (m_shapeList.at(i).rect().contains(pos))
- return i;
- }
- return -1;
-}
-
-void Document::mousePressEvent(QMouseEvent *event)
-{
- event->accept();
- int index = indexAt(event->pos());;
- if (index != -1) {
- setCurrentShape(index);
-
- const Shape &shape = m_shapeList.at(index);
- m_resizeHandlePressed = shape.resizeHandle().contains(event->pos());
-
- if (m_resizeHandlePressed)
- m_mousePressOffset = shape.rect().bottomRight() - event->pos();
- else
- m_mousePressOffset = event->pos() - shape.rect().topLeft();
- }
- m_mousePressIndex = index;
-}
-
-void Document::mouseReleaseEvent(QMouseEvent *event)
-{
- event->accept();
- m_mousePressIndex = -1;
-}
-
-void Document::mouseMoveEvent(QMouseEvent *event)
-{
- event->accept();
-
- if (m_mousePressIndex == -1)
- return;
-
- const Shape &shape = m_shapeList.at(m_mousePressIndex);
-
- QRect rect;
- if (m_resizeHandlePressed) {
- rect = QRect(shape.rect().topLeft(), event->pos() + m_mousePressOffset);
- } else {
- rect = shape.rect();
- rect.moveTopLeft(event->pos() - m_mousePressOffset);
- }
-
- QSize size = rect.size().expandedTo(Shape::minSize);
- rect.setSize(size);
-
- m_undoStack->push(new SetShapeRectCommand(this, shape.name(), rect));
-}
-
-static QGradient gradient(const QColor &color, const QRect &rect)
-{
- QColor c = color;
- c.setAlpha(160);
- QLinearGradient result(rect.topLeft(), rect.bottomRight());
- result.setColorAt(0, c.dark(150));
- result.setColorAt(0.5, c.light(200));
- result.setColorAt(1, c.dark(150));
- return result;
-}
-
-static QPolygon triangle(const QRect &rect)
-{
- QPolygon result(3);
- result.setPoint(0, rect.center().x(), rect.top());
- result.setPoint(1, rect.right(), rect.bottom());
- result.setPoint(2, rect.left(), rect.bottom());
- return result;
-}
-
-void Document::paintEvent(QPaintEvent *event)
-{
- QRegion paintRegion = event->region();
- QPainter painter(this);
- QPalette pal = palette();
-
- for (int i = 0; i < m_shapeList.count(); ++i) {
- const Shape &shape = m_shapeList.at(i);
-
- if (!paintRegion.contains(shape.rect()))
- continue;
-
- QPen pen = pal.text().color();
- pen.setWidth(i == m_currentIndex ? 2 : 1);
- painter.setPen(pen);
- painter.setBrush(gradient(shape.color(), shape.rect()));
-
- QRect rect = shape.rect();
- rect.adjust(1, 1, -resizeHandleWidth/2, -resizeHandleWidth/2);
-
- // paint the shape
- switch (shape.type()) {
- case Shape::Rectangle:
- painter.drawRect(rect);
- break;
- case Shape::Circle:
- painter.setRenderHint(QPainter::Antialiasing);
- painter.drawEllipse(rect);
- painter.setRenderHint(QPainter::Antialiasing, false);
- break;
- case Shape::Triangle:
- painter.setRenderHint(QPainter::Antialiasing);
- painter.drawPolygon(triangle(rect));
- painter.setRenderHint(QPainter::Antialiasing, false);
- break;
- }
-
- // paint the resize handle
- painter.setPen(pal.text().color());
- painter.setBrush(Qt::white);
- painter.drawRect(shape.resizeHandle().adjusted(0, 0, -1, -1));
-
- // paint the shape name
- painter.setBrush(pal.text());
- if (shape.type() == Shape::Triangle)
- rect.adjust(0, rect.height()/2, 0, 0);
- painter.drawText(rect, Qt::AlignCenter, shape.name());
- }
-}
-
-void Document::setCurrentShape(int index)
-{
- QString currentName;
-
- if (m_currentIndex != -1)
- update(m_shapeList.at(m_currentIndex).rect());
-
- m_currentIndex = index;
-
- if (m_currentIndex != -1) {
- const Shape &current = m_shapeList.at(m_currentIndex);
- update(current.rect());
- currentName = current.name();
- }
-
- emit currentShapeChanged(currentName);
-}
-
-int Document::indexOf(const QString &shapeName) const
-{
- for (int i = 0; i < m_shapeList.count(); ++i) {
- if (m_shapeList.at(i).name() == shapeName)
- return i;
- }
- return -1;
-}
-
-QString Document::uniqueName(const QString &name) const
-{
- QString unique;
-
- for (int i = 0; ; ++i) {
- unique = name;
- if (i > 0)
- unique += QString::number(i);
- if (indexOf(unique) == -1)
- break;
- }
-
- return unique;
-}
-
-QString Document::currentShapeName() const
-{
- if (m_currentIndex == -1)
- return QString();
- return m_shapeList.at(m_currentIndex).name();
-}
-
diff --git a/examples/tools/undo/document.h b/examples/tools/undo/document.h
deleted file mode 100644
index 1c18e02aa1..0000000000
--- a/examples/tools/undo/document.h
+++ /dev/null
@@ -1,125 +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 demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** 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 Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef DOCUMENT_H
-#define DOCUMENT_H
-
-#include <QWidget>
-
-QT_FORWARD_DECLARE_CLASS(QUndoStack)
-QT_FORWARD_DECLARE_CLASS(QTextStream)
-
-class Shape
-{
-public:
- enum Type { Rectangle, Circle, Triangle };
-
- explicit Shape(Type type = Rectangle, const QColor &color = Qt::red, const QRect &rect = QRect());
-
- Type type() const;
- QString name() const;
- QRect rect() const;
- QRect resizeHandle() const;
- QColor color() const;
-
- static QString typeToString(Type type);
- static Type stringToType(const QString &s, bool *ok = 0);
-
- static const QSize minSize;
-
-private:
- Type m_type;
- QRect m_rect;
- QColor m_color;
- QString m_name;
-
- friend class Document;
-};
-
-class Document : public QWidget
-{
- Q_OBJECT
-
-public:
- Document(QWidget *parent = 0);
-
- QString addShape(const Shape &shape);
- void deleteShape(const QString &shapeName);
- Shape shape(const QString &shapeName) const;
- QString currentShapeName() const;
-
- void setShapeRect(const QString &shapeName, const QRect &rect);
- void setShapeColor(const QString &shapeName, const QColor &color);
-
- bool load(QTextStream &stream);
- void save(QTextStream &stream);
-
- QString fileName() const;
- void setFileName(const QString &fileName);
-
- QUndoStack *undoStack() const;
-
-signals:
- void currentShapeChanged(const QString &shapeName);
-
-protected:
- void paintEvent(QPaintEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
-
-private:
- void setCurrentShape(int index);
- int indexOf(const QString &shapeName) const;
- int indexAt(const QPoint &pos) const;
- QString uniqueName(const QString &name) const;
-
- QList<Shape> m_shapeList;
- int m_currentIndex;
- int m_mousePressIndex;
- QPoint m_mousePressOffset;
- bool m_resizeHandlePressed;
- QString m_fileName;
-
- QUndoStack *m_undoStack;
-};
-
-#endif // DOCUMENT_H
diff --git a/examples/tools/undo/icons/background.png b/examples/tools/undo/icons/background.png
deleted file mode 100644
index 3bc5ed8cf0..0000000000
--- a/examples/tools/undo/icons/background.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/blue.png b/examples/tools/undo/icons/blue.png
deleted file mode 100644
index 4e181bb61a..0000000000
--- a/examples/tools/undo/icons/blue.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/circle.png b/examples/tools/undo/icons/circle.png
deleted file mode 100644
index ed16c6e144..0000000000
--- a/examples/tools/undo/icons/circle.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/exit.png b/examples/tools/undo/icons/exit.png
deleted file mode 100644
index 539cb2ead9..0000000000
--- a/examples/tools/undo/icons/exit.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/fileclose.png b/examples/tools/undo/icons/fileclose.png
deleted file mode 100644
index c5483d14ab..0000000000
--- a/examples/tools/undo/icons/fileclose.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/filenew.png b/examples/tools/undo/icons/filenew.png
deleted file mode 100644
index 57e57e343b..0000000000
--- a/examples/tools/undo/icons/filenew.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/fileopen.png b/examples/tools/undo/icons/fileopen.png
deleted file mode 100644
index 33e0d6394c..0000000000
--- a/examples/tools/undo/icons/fileopen.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/filesave.png b/examples/tools/undo/icons/filesave.png
deleted file mode 100644
index 57fd5e2f34..0000000000
--- a/examples/tools/undo/icons/filesave.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/green.png b/examples/tools/undo/icons/green.png
deleted file mode 100644
index e2e7cc9e50..0000000000
--- a/examples/tools/undo/icons/green.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/ok.png b/examples/tools/undo/icons/ok.png
deleted file mode 100644
index e355ea91bc..0000000000
--- a/examples/tools/undo/icons/ok.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/rectangle.png b/examples/tools/undo/icons/rectangle.png
deleted file mode 100644
index 3a7d9795fd..0000000000
--- a/examples/tools/undo/icons/rectangle.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/red.png b/examples/tools/undo/icons/red.png
deleted file mode 100644
index 58c3e7253b..0000000000
--- a/examples/tools/undo/icons/red.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/redo.png b/examples/tools/undo/icons/redo.png
deleted file mode 100644
index 5591517e1c..0000000000
--- a/examples/tools/undo/icons/redo.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/remove.png b/examples/tools/undo/icons/remove.png
deleted file mode 100644
index 7a7b048c0a..0000000000
--- a/examples/tools/undo/icons/remove.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/triangle.png b/examples/tools/undo/icons/triangle.png
deleted file mode 100644
index 2969131c31..0000000000
--- a/examples/tools/undo/icons/triangle.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/icons/undo.png b/examples/tools/undo/icons/undo.png
deleted file mode 100644
index 8cf63a8ec9..0000000000
--- a/examples/tools/undo/icons/undo.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undo/main.cpp b/examples/tools/undo/main.cpp
deleted file mode 100644
index b62e1aca75..0000000000
--- a/examples/tools/undo/main.cpp
+++ /dev/null
@@ -1,56 +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 demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** 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 Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include "mainwindow.h"
-
-int main(int argc, char **argv)
-{
- Q_INIT_RESOURCE(undo);
-
- QApplication app(argc, argv);
-
- MainWindow win;
- win.resize(800, 600);
- win.show();
-
- return app.exec();
-};
diff --git a/examples/tools/undo/mainwindow.cpp b/examples/tools/undo/mainwindow.cpp
deleted file mode 100644
index 22cea1dbbf..0000000000
--- a/examples/tools/undo/mainwindow.cpp
+++ /dev/null
@@ -1,446 +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 demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** 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 Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QUndoGroup>
-#include <QUndoStack>
-#include <QFileDialog>
-#include <QMessageBox>
-#include <QTextStream>
-#include <QToolButton>
-#include "document.h"
-#include "mainwindow.h"
-#include "commands.h"
-
-MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
-{
- setupUi(this);
-
- QWidget *w = documentTabs->widget(0);
- documentTabs->removeTab(0);
- delete w;
-
- connect(actionOpen, SIGNAL(triggered()), this, SLOT(openDocument()));
- connect(actionClose, SIGNAL(triggered()), this, SLOT(closeDocument()));
- connect(actionNew, SIGNAL(triggered()), this, SLOT(newDocument()));
- connect(actionSave, SIGNAL(triggered()), this, SLOT(saveDocument()));
- connect(actionExit, SIGNAL(triggered()), this, SLOT(close()));
- connect(actionRed, SIGNAL(triggered()), this, SLOT(setShapeColor()));
- connect(actionGreen, SIGNAL(triggered()), this, SLOT(setShapeColor()));
- connect(actionBlue, SIGNAL(triggered()), this, SLOT(setShapeColor()));
- connect(actionAddCircle, SIGNAL(triggered()), this, SLOT(addShape()));
- connect(actionAddRectangle, SIGNAL(triggered()), this, SLOT(addShape()));
- connect(actionAddTriangle, SIGNAL(triggered()), this, SLOT(addShape()));
- connect(actionRemoveShape, SIGNAL(triggered()), this, SLOT(removeShape()));
- connect(actionAddRobot, SIGNAL(triggered()), this, SLOT(addRobot()));
- connect(actionAddSnowman, SIGNAL(triggered()), this, SLOT(addSnowman()));
- connect(actionAbout, SIGNAL(triggered()), this, SLOT(about()));
- connect(actionAboutQt, SIGNAL(triggered()), this, SLOT(aboutQt()));
-
- connect(undoLimit, SIGNAL(valueChanged(int)), this, SLOT(updateActions()));
- connect(documentTabs, SIGNAL(currentChanged(int)), this, SLOT(updateActions()));
-
- actionOpen->setShortcut(QString("Ctrl+O"));
- actionClose->setShortcut(QString("Ctrl+W"));
- actionNew->setShortcut(QString("Ctrl+N"));
- actionSave->setShortcut(QString("Ctrl+S"));
- actionExit->setShortcut(QString("Ctrl+Q"));
- actionRemoveShape->setShortcut(QString("Del"));
- actionRed->setShortcut(QString("Alt+R"));
- actionGreen->setShortcut(QString("Alt+G"));
- actionBlue->setShortcut(QString("Alt+B"));
- actionAddCircle->setShortcut(QString("Alt+C"));
- actionAddRectangle->setShortcut(QString("Alt+L"));
- actionAddTriangle->setShortcut(QString("Alt+T"));
-
- m_undoGroup = new QUndoGroup(this);
- undoView->setGroup(m_undoGroup);
- undoView->setCleanIcon(QIcon(":/icons/ok.png"));
-
- QAction *undoAction = m_undoGroup->createUndoAction(this);
- QAction *redoAction = m_undoGroup->createRedoAction(this);
- undoAction->setIcon(QIcon(":/icons/undo.png"));
- redoAction->setIcon(QIcon(":/icons/redo.png"));
- menuShape->insertAction(menuShape->actions().at(0), undoAction);
- menuShape->insertAction(undoAction, redoAction);
-
- toolBar->addAction(undoAction);
- toolBar->addAction(redoAction);
-
- newDocument();
- updateActions();
-};
-
-void MainWindow::updateActions()
-{
- Document *doc = currentDocument();
- m_undoGroup->setActiveStack(doc == 0 ? 0 : doc->undoStack());
- QString shapeName = doc == 0 ? QString() : doc->currentShapeName();
-
- actionAddRobot->setEnabled(doc != 0);
- actionAddSnowman->setEnabled(doc != 0);
- actionAddCircle->setEnabled(doc != 0);
- actionAddRectangle->setEnabled(doc != 0);
- actionAddTriangle->setEnabled(doc != 0);
- actionClose->setEnabled(doc != 0);
- actionSave->setEnabled(doc != 0 && !doc->undoStack()->isClean());
- undoLimit->setEnabled(doc != 0 && doc->undoStack()->count() == 0);
-
- if (shapeName.isEmpty()) {
- actionRed->setEnabled(false);
- actionGreen->setEnabled(false);
- actionBlue->setEnabled(false);
- actionRemoveShape->setEnabled(false);
- } else {
- Shape shape = doc->shape(shapeName);
- actionRed->setEnabled(shape.color() != Qt::red);
- actionGreen->setEnabled(shape.color() != Qt::green);
- actionBlue->setEnabled(shape.color() != Qt::blue);
- actionRemoveShape->setEnabled(true);
- }
-
- if (doc != 0) {
- int index = documentTabs->indexOf(doc);
- Q_ASSERT(index != -1);
- static const QIcon unsavedIcon(":/icons/filesave.png");
- documentTabs->setTabIcon(index, doc->undoStack()->isClean() ? QIcon() : unsavedIcon);
-
- if (doc->undoStack()->count() == 0)
- doc->undoStack()->setUndoLimit(undoLimit->value());
- }
-}
-
-void MainWindow::openDocument()
-{
- QString fileName = QFileDialog::getOpenFileName(this);
- if (fileName.isEmpty())
- return;
-
- QFile file(fileName);
- if (!file.open(QIODevice::ReadOnly)) {
- QMessageBox::warning(this,
- tr("File error"),
- tr("Failed to open\n%1").arg(fileName));
- return;
- }
- QTextStream stream(&file);
-
- Document *doc = new Document();
- if (!doc->load(stream)) {
- QMessageBox::warning(this,
- tr("Parse error"),
- tr("Failed to parse\n%1").arg(fileName));
- delete doc;
- return;
- }
-
- doc->setFileName(fileName);
- addDocument(doc);
-}
-
-QString MainWindow::fixedWindowTitle(const Document *doc) const
-{
- QString title = doc->fileName();
-
- if (title.isEmpty())
- title = tr("Unnamed");
- else
- title = QFileInfo(title).fileName();
-
- QString result;
-
- for (int i = 0; ; ++i) {
- result = title;
- if (i > 0)
- result += QString::number(i);
-
- bool unique = true;
- for (int j = 0; j < documentTabs->count(); ++j) {
- const QWidget *widget = documentTabs->widget(j);
- if (widget == doc)
- continue;
- if (result == documentTabs->tabText(j)) {
- unique = false;
- break;
- }
- }
-
- if (unique)
- break;
- }
-
- return result;
-}
-
-void MainWindow::addDocument(Document *doc)
-{
- if (documentTabs->indexOf(doc) != -1)
- return;
- m_undoGroup->addStack(doc->undoStack());
- documentTabs->addTab(doc, fixedWindowTitle(doc));
- connect(doc, SIGNAL(currentShapeChanged(QString)), this, SLOT(updateActions()));
- connect(doc->undoStack(), SIGNAL(indexChanged(int)), this, SLOT(updateActions()));
- connect(doc->undoStack(), SIGNAL(cleanChanged(bool)), this, SLOT(updateActions()));
-
- setCurrentDocument(doc);
-}
-
-void MainWindow::setCurrentDocument(Document *doc)
-{
- documentTabs->setCurrentWidget(doc);
-}
-
-Document *MainWindow::currentDocument() const
-{
- return qobject_cast<Document*>(documentTabs->currentWidget());
-}
-
-void MainWindow::removeDocument(Document *doc)
-{
- int index = documentTabs->indexOf(doc);
- if (index == -1)
- return;
-
- documentTabs->removeTab(index);
- m_undoGroup->removeStack(doc->undoStack());
- disconnect(doc, SIGNAL(currentShapeChanged(QString)), this, SLOT(updateActions()));
- disconnect(doc->undoStack(), SIGNAL(indexChanged(int)), this, SLOT(updateActions()));
- disconnect(doc->undoStack(), SIGNAL(cleanChanged(bool)), this, SLOT(updateActions()));
-
- if (documentTabs->count() == 0) {
- newDocument();
- updateActions();
- }
-}
-
-void MainWindow::saveDocument()
-{
- Document *doc = currentDocument();
- if (doc == 0)
- return;
-
- for (;;) {
- QString fileName = doc->fileName();
-
- if (fileName.isEmpty())
- fileName = QFileDialog::getSaveFileName(this);
- if (fileName.isEmpty())
- break;
-
- QFile file(fileName);
- if (!file.open(QIODevice::WriteOnly)) {
- QMessageBox::warning(this,
- tr("File error"),
- tr("Failed to open\n%1").arg(fileName));
- doc->setFileName(QString());
- } else {
- QTextStream stream(&file);
- doc->save(stream);
- doc->setFileName(fileName);
-
- int index = documentTabs->indexOf(doc);
- Q_ASSERT(index != -1);
- documentTabs->setTabText(index, fixedWindowTitle(doc));
-
- break;
- }
- }
-}
-
-void MainWindow::closeDocument()
-{
- Document *doc = currentDocument();
- if (doc == 0)
- return;
-
- if (!doc->undoStack()->isClean()) {
- int button
- = QMessageBox::warning(this,
- tr("Unsaved changes"),
- tr("Would you like to save this document?"),
- QMessageBox::Yes, QMessageBox::No);
- if (button == QMessageBox::Yes)
- saveDocument();
- }
-
- removeDocument(doc);
- delete doc;
-}
-
-void MainWindow::newDocument()
-{
- addDocument(new Document());
-}
-
-static QColor randomColor()
-{
- int r = (int) (3.0*(rand()/(RAND_MAX + 1.0)));
- switch (r) {
- case 0:
- return Qt::red;
- case 1:
- return Qt::green;
- default:
- break;
- }
- return Qt::blue;
-}
-
-static QRect randomRect(const QSize &s)
-{
- QSize min = Shape::minSize;
-
- int left = (int) ((0.0 + s.width() - min.width())*(rand()/(RAND_MAX + 1.0)));
- int top = (int) ((0.0 + s.height() - min.height())*(rand()/(RAND_MAX + 1.0)));
- int width = (int) ((0.0 + s.width() - left - min.width())*(rand()/(RAND_MAX + 1.0))) + min.width();
- int height = (int) ((0.0 + s.height() - top - min.height())*(rand()/(RAND_MAX + 1.0))) + min.height();
-
- return QRect(left, top, width, height);
-}
-
-void MainWindow::addShape()
-{
- Document *doc = currentDocument();
- if (doc == 0)
- return;
-
- Shape::Type type;
-
- if (sender() == actionAddCircle)
- type = Shape::Circle;
- else if (sender() == actionAddRectangle)
- type = Shape::Rectangle;
- else if (sender() == actionAddTriangle)
- type = Shape::Triangle;
- else return;
-
- Shape newShape(type, randomColor(), randomRect(doc->size()));
- doc->undoStack()->push(new AddShapeCommand(doc, newShape));
-}
-
-void MainWindow::removeShape()
-{
- Document *doc = currentDocument();
- if (doc == 0)
- return;
-
- QString shapeName = doc->currentShapeName();
- if (shapeName.isEmpty())
- return;
-
- doc->undoStack()->push(new RemoveShapeCommand(doc, shapeName));
-}
-
-void MainWindow::setShapeColor()
-{
- Document *doc = currentDocument();
- if (doc == 0)
- return;
-
- QString shapeName = doc->currentShapeName();
- if (shapeName.isEmpty())
- return;
-
- QColor color;
-
- if (sender() == actionRed)
- color = Qt::red;
- else if (sender() == actionGreen)
- color = Qt::green;
- else if (sender() == actionBlue)
- color = Qt::blue;
- else
- return;
-
- if (color == doc->shape(shapeName).color())
- return;
-
- doc->undoStack()->push(new SetShapeColorCommand(doc, shapeName, color));
-}
-
-void MainWindow::addSnowman()
-{
- Document *doc = currentDocument();
- if (doc == 0)
- return;
-
- // Create a macro command using beginMacro() and endMacro()
-
- doc->undoStack()->beginMacro(tr("Add snowman"));
- doc->undoStack()->push(new AddShapeCommand(doc,
- Shape(Shape::Circle, Qt::blue, QRect(51, 30, 97, 95))));
- doc->undoStack()->push(new AddShapeCommand(doc,
- Shape(Shape::Circle, Qt::blue, QRect(27, 123, 150, 133))));
- doc->undoStack()->push(new AddShapeCommand(doc,
- Shape(Shape::Circle, Qt::blue, QRect(11, 253, 188, 146))));
- doc->undoStack()->endMacro();
-}
-
-void MainWindow::addRobot()
-{
- Document *doc = currentDocument();
- if (doc == 0)
- return;
-
- // Compose a macro command by explicitly adding children to a parent command
-
- QUndoCommand *parent = new QUndoCommand(tr("Add robot"));
-
- new AddShapeCommand(doc, Shape(Shape::Rectangle, Qt::green, QRect(115, 15, 81, 70)), parent);
- new AddShapeCommand(doc, Shape(Shape::Rectangle, Qt::green, QRect(82, 89, 148, 188)), parent);
- new AddShapeCommand(doc, Shape(Shape::Rectangle, Qt::green, QRect(76, 280, 80, 165)), parent);
- new AddShapeCommand(doc, Shape(Shape::Rectangle, Qt::green, QRect(163, 280, 80, 164)), parent);
- new AddShapeCommand(doc, Shape(Shape::Circle, Qt::blue, QRect(116, 25, 80, 50)), parent);
- new AddShapeCommand(doc, Shape(Shape::Rectangle, Qt::green, QRect(232, 92, 80, 127)), parent);
- new AddShapeCommand(doc, Shape(Shape::Rectangle, Qt::green, QRect(2, 92, 80, 125)), parent);
-
- doc->undoStack()->push(parent);
-}
-
-void MainWindow::about()
-{
- QMessageBox::about(this, tr("About Undo"), tr("The Undo demonstration shows how to use the Qt Undo framework."));
-}
-
-void MainWindow::aboutQt()
-{
- QMessageBox::aboutQt(this, tr("About Qt"));
-}
diff --git a/examples/tools/undo/mainwindow.h b/examples/tools/undo/mainwindow.h
deleted file mode 100644
index 3218c889e4..0000000000
--- a/examples/tools/undo/mainwindow.h
+++ /dev/null
@@ -1,87 +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 demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** 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 Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-#include "ui_mainwindow.h"
-
-class Document;
-
-class MainWindow : public QMainWindow, public Ui::MainWindow
-{
- Q_OBJECT
-
-public:
- MainWindow(QWidget *parent = 0);
-
- void addDocument(Document *doc);
- void removeDocument(Document *doc);
- void setCurrentDocument(Document *doc);
- Document *currentDocument() const;
-
-public slots:
- void openDocument();
- void saveDocument();
- void closeDocument();
- void newDocument();
-
- void addShape();
- void removeShape();
- void setShapeColor();
-
- void addSnowman();
- void addRobot();
-
- void about();
- void aboutQt();
-
-private slots:
- void updateActions();
-
-private:
- QUndoGroup *m_undoGroup;
-
- QString fixedWindowTitle(const Document *doc) const;
-};
-
-#endif // MAINWINDOW_H
diff --git a/examples/tools/undo/mainwindow.ui b/examples/tools/undo/mainwindow.ui
deleted file mode 100644
index 91a0b437e5..0000000000
--- a/examples/tools/undo/mainwindow.ui
+++ /dev/null
@@ -1,322 +0,0 @@
-<ui version="4.0" >
- <class>MainWindow</class>
- <widget class="QMainWindow" name="MainWindow" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>567</width>
- <height>600</height>
- </rect>
- </property>
- <property name="iconSize" >
- <size>
- <width>32</width>
- <height>32</height>
- </size>
- </property>
- <widget class="QWidget" name="centralwidget" >
- <layout class="QVBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>0</number>
- </property>
- <item>
- <widget class="QTabWidget" name="documentTabs" >
- <property name="currentIndex" >
- <number>0</number>
- </property>
- <widget class="QWidget" name="tab" >
- <attribute name="title" >
- <string>Tab 1</string>
- </attribute>
- </widget>
- </widget>
- </item>
- </layout>
- </widget>
- <widget class="QMenuBar" name="menubar" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>567</width>
- <height>27</height>
- </rect>
- </property>
- <widget class="QMenu" name="menuFile" >
- <property name="title" >
- <string>File</string>
- </property>
- <addaction name="actionNew" />
- <addaction name="actionOpen" />
- <addaction name="actionSave" />
- <addaction name="actionClose" />
- <addaction name="separator" />
- <addaction name="actionExit" />
- </widget>
- <widget class="QMenu" name="menuShape" >
- <property name="title" >
- <string>Edit</string>
- </property>
- <widget class="QMenu" name="menuMacros" >
- <property name="title" >
- <string>Macros</string>
- </property>
- <addaction name="actionAddRobot" />
- <addaction name="actionAddSnowman" />
- </widget>
- <addaction name="separator" />
- <addaction name="actionAddCircle" />
- <addaction name="actionAddRectangle" />
- <addaction name="actionAddTriangle" />
- <addaction name="actionRemoveShape" />
- <addaction name="separator" />
- <addaction name="actionRed" />
- <addaction name="actionGreen" />
- <addaction name="actionBlue" />
- <addaction name="separator" />
- <addaction name="menuMacros" />
- </widget>
- <widget class="QMenu" name="menuHelp" >
- <property name="title" >
- <string>Help</string>
- </property>
- <addaction name="actionAbout" />
- <addaction name="actionAboutQt" />
- </widget>
- <addaction name="menuFile" />
- <addaction name="menuShape" />
- <addaction name="menuHelp" />
- </widget>
- <widget class="QStatusBar" name="statusbar" />
- <widget class="QToolBar" name="toolBar" >
- <property name="windowTitle" >
- <string>File actions</string>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <attribute name="toolBarArea" >
- <enum>TopToolBarArea</enum>
- </attribute>
- <attribute name="toolBarBreak" >
- <bool>false</bool>
- </attribute>
- <addaction name="actionNew" />
- <addaction name="actionOpen" />
- <addaction name="actionSave" />
- <addaction name="actionClose" />
- <addaction name="separator" />
- </widget>
- <widget class="QToolBar" name="shapeToolBar" >
- <property name="windowTitle" >
- <string>Shape actions</string>
- </property>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <attribute name="toolBarArea" >
- <enum>LeftToolBarArea</enum>
- </attribute>
- <attribute name="toolBarBreak" >
- <bool>false</bool>
- </attribute>
- <addaction name="actionAddRectangle" />
- <addaction name="actionAddCircle" />
- <addaction name="actionAddTriangle" />
- <addaction name="actionRemoveShape" />
- <addaction name="separator" />
- <addaction name="actionRed" />
- <addaction name="actionGreen" />
- <addaction name="actionBlue" />
- </widget>
- <widget class="QDockWidget" name="dockWidget" >
- <property name="windowTitle" >
- <string>Undo Stack</string>
- </property>
- <attribute name="dockWidgetArea" >
- <number>2</number>
- </attribute>
- <widget class="QWidget" name="dockWidgetContents" >
- <layout class="QVBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>4</number>
- </property>
- <item>
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QLabel" name="label" >
- <property name="text" >
- <string>Undo limit</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="undoLimit" />
- </item>
- </layout>
- </item>
- <item>
- <widget class="QUndoView" name="undoView" >
- <property name="alternatingRowColors" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </widget>
- <action name="actionOpen" >
- <property name="icon" >
- <iconset resource="undo.qrc" >:/icons/fileopen.png</iconset>
- </property>
- <property name="text" >
- <string>&amp;Open</string>
- </property>
- </action>
- <action name="actionClose" >
- <property name="icon" >
- <iconset resource="undo.qrc" >:/icons/fileclose.png</iconset>
- </property>
- <property name="text" >
- <string>&amp;Close</string>
- </property>
- </action>
- <action name="actionNew" >
- <property name="icon" >
- <iconset resource="undo.qrc" >:/icons/filenew.png</iconset>
- </property>
- <property name="text" >
- <string>&amp;New</string>
- </property>
- </action>
- <action name="actionSave" >
- <property name="icon" >
- <iconset resource="undo.qrc" >:/icons/filesave.png</iconset>
- </property>
- <property name="text" >
- <string>&amp;Save</string>
- </property>
- </action>
- <action name="actionExit" >
- <property name="icon" >
- <iconset resource="undo.qrc" >:/icons/exit.png</iconset>
- </property>
- <property name="text" >
- <string>E&amp;xit</string>
- </property>
- </action>
- <action name="actionRed" >
- <property name="icon" >
- <iconset resource="undo.qrc" >:/icons/red.png</iconset>
- </property>
- <property name="text" >
- <string>Red</string>
- </property>
- </action>
- <action name="actionGreen" >
- <property name="icon" >
- <iconset resource="undo.qrc" >:/icons/green.png</iconset>
- </property>
- <property name="text" >
- <string>Green</string>
- </property>
- </action>
- <action name="actionBlue" >
- <property name="icon" >
- <iconset resource="undo.qrc" >:/icons/blue.png</iconset>
- </property>
- <property name="text" >
- <string>Blue</string>
- </property>
- </action>
- <action name="actionAddRectangle" >
- <property name="icon" >
- <iconset resource="undo.qrc" >:/icons/rectangle.png</iconset>
- </property>
- <property name="text" >
- <string>Add Rectangle</string>
- </property>
- </action>
- <action name="actionAddCircle" >
- <property name="icon" >
- <iconset resource="undo.qrc" >:/icons/circle.png</iconset>
- </property>
- <property name="text" >
- <string>Add Circle</string>
- </property>
- </action>
- <action name="actionRemoveShape" >
- <property name="icon" >
- <iconset resource="undo.qrc" >:/icons/remove.png</iconset>
- </property>
- <property name="text" >
- <string>Remove Shape</string>
- </property>
- </action>
- <action name="actionAddRobot" >
- <property name="text" >
- <string>Add robot</string>
- </property>
- </action>
- <action name="actionAddSnowman" >
- <property name="text" >
- <string>Add snowan</string>
- </property>
- </action>
- <action name="actionAddTriangle" >
- <property name="icon" >
- <iconset resource="undo.qrc" >:/icons/triangle.png</iconset>
- </property>
- <property name="text" >
- <string>addTriangle</string>
- </property>
- </action>
- <action name="actionAbout" >
- <property name="text" >
- <string>About</string>
- </property>
- </action>
- <action name="actionAboutQt" >
- <property name="text" >
- <string>About Qt</string>
- </property>
- </action>
- </widget>
- <customwidgets>
- <customwidget>
- <class>QUndoView</class>
- <extends>QListView</extends>
- <header>qundoview.h</header>
- </customwidget>
- </customwidgets>
- <resources>
- <include location="undo.qrc" />
- </resources>
- <connections/>
-</ui>
diff --git a/examples/tools/undo/undo.pro b/examples/tools/undo/undo.pro
deleted file mode 100644
index e61b678a93..0000000000
--- a/examples/tools/undo/undo.pro
+++ /dev/null
@@ -1,18 +0,0 @@
-SOURCES += main.cpp mainwindow.cpp commands.cpp document.cpp
-HEADERS += mainwindow.h commands.h document.h
-FORMS += mainwindow.ui
-
-build_all:!build_pass {
- CONFIG -= build_all
- CONFIG += release
-}
-
-RESOURCES += undo.qrc
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/undo
-sources.files = $$SOURCES $$HEADERS *.pro icons $$RESOURCES $$FORMS
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/undo
-INSTALLS += target sources
-
-QT += widgets
diff --git a/examples/tools/undo/undo.qrc b/examples/tools/undo/undo.qrc
deleted file mode 100644
index 65619b8f1a..0000000000
--- a/examples/tools/undo/undo.qrc
+++ /dev/null
@@ -1,20 +0,0 @@
-<RCC>
- <qresource prefix="/" >
- <file>icons/background.png</file>
- <file>icons/blue.png</file>
- <file>icons/circle.png</file>
- <file>icons/exit.png</file>
- <file>icons/fileclose.png</file>
- <file>icons/filenew.png</file>
- <file>icons/fileopen.png</file>
- <file>icons/filesave.png</file>
- <file>icons/green.png</file>
- <file>icons/ok.png</file>
- <file>icons/rectangle.png</file>
- <file>icons/red.png</file>
- <file>icons/redo.png</file>
- <file>icons/remove.png</file>
- <file>icons/triangle.png</file>
- <file>icons/undo.png</file>
- </qresource>
-</RCC>
diff --git a/examples/tools/undoframework/commands.cpp b/examples/tools/undoframework/commands.cpp
deleted file mode 100644
index 2a1fad95ea..0000000000
--- a/examples/tools/undoframework/commands.cpp
+++ /dev/null
@@ -1,168 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "commands.h"
-#include "diagramitem.h"
-
-//! [0]
-MoveCommand::MoveCommand(DiagramItem *diagramItem, const QPointF &oldPos,
- QUndoCommand *parent)
- : QUndoCommand(parent)
-{
- myDiagramItem = diagramItem;
- newPos = diagramItem->pos();
- myOldPos = oldPos;
-}
-//! [0]
-
-//! [1]
-bool MoveCommand::mergeWith(const QUndoCommand *command)
-{
- const MoveCommand *moveCommand = static_cast<const MoveCommand *>(command);
- DiagramItem *item = moveCommand->myDiagramItem;
-
- if (myDiagramItem != item)
- return false;
-
- newPos = item->pos();
- setText(QObject::tr("Move %1")
- .arg(createCommandString(myDiagramItem, newPos)));
-
- return true;
-}
-//! [1]
-
-//! [2]
-void MoveCommand::undo()
-{
- myDiagramItem->setPos(myOldPos);
- myDiagramItem->scene()->update();
- setText(QObject::tr("Move %1")
- .arg(createCommandString(myDiagramItem, newPos)));
-}
-//! [2]
-
-//! [3]
-void MoveCommand::redo()
-{
- myDiagramItem->setPos(newPos);
- setText(QObject::tr("Move %1")
- .arg(createCommandString(myDiagramItem, newPos)));
-}
-//! [3]
-
-//! [4]
-DeleteCommand::DeleteCommand(QGraphicsScene *scene, QUndoCommand *parent)
- : QUndoCommand(parent)
-{
- myGraphicsScene = scene;
- QList<QGraphicsItem *> list = myGraphicsScene->selectedItems();
- list.first()->setSelected(false);
- myDiagramItem = static_cast<DiagramItem *>(list.first());
- setText(QObject::tr("Delete %1")
- .arg(createCommandString(myDiagramItem, myDiagramItem->pos())));
-}
-//! [4]
-
-//! [5]
-void DeleteCommand::undo()
-{
- myGraphicsScene->addItem(myDiagramItem);
- myGraphicsScene->update();
-}
-//! [5]
-
-//! [6]
-void DeleteCommand::redo()
-{
- myGraphicsScene->removeItem(myDiagramItem);
-}
-//! [6]
-
-//! [7]
-AddCommand::AddCommand(DiagramItem::DiagramType addType,
- QGraphicsScene *scene, QUndoCommand *parent)
- : QUndoCommand(parent)
-{
- static int itemCount = 0;
-
- myGraphicsScene = scene;
- myDiagramItem = new DiagramItem(addType);
- initialPosition = QPointF((itemCount * 15) % int(scene->width()),
- (itemCount * 15) % int(scene->height()));
- scene->update();
- ++itemCount;
- setText(QObject::tr("Add %1")
- .arg(createCommandString(myDiagramItem, initialPosition)));
-}
-//! [7]
-
-AddCommand::~AddCommand()
-{
- if (!myDiagramItem->scene())
- delete myDiagramItem;
-}
-
-//! [8]
-void AddCommand::undo()
-{
- myGraphicsScene->removeItem(myDiagramItem);
- myGraphicsScene->update();
-}
-//! [8]
-
-//! [9]
-void AddCommand::redo()
-{
- myGraphicsScene->addItem(myDiagramItem);
- myDiagramItem->setPos(initialPosition);
- myGraphicsScene->clearSelection();
- myGraphicsScene->update();
-}
-//! [9]
-
-QString createCommandString(DiagramItem *item, const QPointF &pos)
-{
- return QObject::tr("%1 at (%2, %3)")
- .arg(item->diagramType() == DiagramItem::Box ? "Box" : "Triangle")
- .arg(pos.x()).arg(pos.y());
-}
diff --git a/examples/tools/undoframework/commands.h b/examples/tools/undoframework/commands.h
deleted file mode 100644
index 7318668285..0000000000
--- a/examples/tools/undoframework/commands.h
+++ /dev/null
@@ -1,104 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef COMMANDS_H
-#define COMMANDS_H
-
-#include <QUndoCommand>
-
-#include "diagramitem.h"
-
-//! [0]
-class MoveCommand : public QUndoCommand
-{
-public:
- enum { Id = 1234 };
-
- MoveCommand(DiagramItem *diagramItem, const QPointF &oldPos,
- QUndoCommand *parent = 0);
-
- void undo();
- void redo();
- bool mergeWith(const QUndoCommand *command);
- int id() const { return Id; }
-
-private:
- DiagramItem *myDiagramItem;
- QPointF myOldPos;
- QPointF newPos;
-};
-//! [0]
-
-//! [1]
-class DeleteCommand : public QUndoCommand
-{
-public:
- explicit DeleteCommand(QGraphicsScene *graphicsScene, QUndoCommand *parent = 0);
-
- void undo();
- void redo();
-
-private:
- DiagramItem *myDiagramItem;
- QGraphicsScene *myGraphicsScene;
-};
-//! [1]
-
-//! [2]
-class AddCommand : public QUndoCommand
-{
-public:
- AddCommand(DiagramItem::DiagramType addType, QGraphicsScene *graphicsScene,
- QUndoCommand *parent = 0);
- ~AddCommand();
-
- void undo();
- void redo();
-
-private:
- DiagramItem *myDiagramItem;
- QGraphicsScene *myGraphicsScene;
- QPointF initialPosition;
-};
-//! [2]
-
-QString createCommandString(DiagramItem *item, const QPointF &point);
-
-#endif
diff --git a/examples/tools/undoframework/diagramitem.cpp b/examples/tools/undoframework/diagramitem.cpp
deleted file mode 100644
index 611069cd88..0000000000
--- a/examples/tools/undoframework/diagramitem.cpp
+++ /dev/null
@@ -1,64 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "diagramitem.h"
-
-DiagramItem::DiagramItem(DiagramType diagramType, QGraphicsItem *item)
- : QGraphicsPolygonItem(item)
-{
- if (diagramType == Box) {
- boxPolygon << QPointF(0, 0) << QPointF(0, 30) << QPointF(30, 30)
- << QPointF(30, 0) << QPointF(0, 0);
- setPolygon(boxPolygon);
- } else {
- trianglePolygon << QPointF(15, 0) << QPointF(30, 30) << QPointF(0, 30)
- << QPointF(15, 0);
- setPolygon(trianglePolygon);
- }
-
- QColor color(static_cast<int>(qrand()) % 256,
- static_cast<int>(qrand()) % 256, static_cast<int>(qrand()) % 256);
- QBrush brush(color);
- setBrush(brush);
- setFlag(QGraphicsItem::ItemIsSelectable);
- setFlag(QGraphicsItem::ItemIsMovable);
-}
diff --git a/examples/tools/undoframework/diagramitem.h b/examples/tools/undoframework/diagramitem.h
deleted file mode 100644
index 7b7fefa7f7..0000000000
--- a/examples/tools/undoframework/diagramitem.h
+++ /dev/null
@@ -1,71 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef DIAGRAMITEM_H
-#define DIAGRAMITEM_H
-
-#include <QGraphicsPolygonItem>
-
-QT_BEGIN_NAMESPACE
-class QGraphicsItem;
-class QGraphicsScene;
-class QGraphicsSceneMouseEvent;
-class QPointF;
-QT_END_NAMESPACE
-
-class DiagramItem : public QGraphicsPolygonItem
-{
-public:
- enum { Type = UserType + 1 };
- enum DiagramType { Box, Triangle };
-
- explicit DiagramItem(DiagramType diagramType, QGraphicsItem *item = 0);
-
- DiagramType diagramType() const {
- return polygon() == boxPolygon ? Box : Triangle;
- }
- int type() const { return Type; }
-
-private:
- QPolygonF boxPolygon;
- QPolygonF trianglePolygon;
-};
-
-#endif
diff --git a/examples/tools/undoframework/diagramscene.cpp b/examples/tools/undoframework/diagramscene.cpp
deleted file mode 100644
index 2c40b71219..0000000000
--- a/examples/tools/undoframework/diagramscene.cpp
+++ /dev/null
@@ -1,76 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "diagramscene.h"
-#include "diagramitem.h"
-
-DiagramScene::DiagramScene(QObject *parent)
- : QGraphicsScene(parent)
-{
- movingItem = 0;
-}
-
-void DiagramScene::mousePressEvent(QGraphicsSceneMouseEvent *event)
-{
- QPointF mousePos(event->buttonDownScenePos(Qt::LeftButton).x(),
- event->buttonDownScenePos(Qt::LeftButton).y());
- const QList<QGraphicsItem *> itemList = items(mousePos);
- movingItem = itemList.isEmpty() ? 0 : itemList.first();
-
- if (movingItem != 0 && event->button() == Qt::LeftButton) {
- oldPos = movingItem->pos();
- }
-
- clearSelection();
- QGraphicsScene::mousePressEvent(event);
-}
-
-void DiagramScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
-{
- if (movingItem != 0 && event->button() == Qt::LeftButton) {
- if (oldPos != movingItem->pos())
- emit itemMoved(qgraphicsitem_cast<DiagramItem *>(movingItem),
- oldPos);
- movingItem = 0;
- }
- QGraphicsScene::mouseReleaseEvent(event);
-}
diff --git a/examples/tools/undoframework/diagramscene.h b/examples/tools/undoframework/diagramscene.h
deleted file mode 100644
index e6150a3da0..0000000000
--- a/examples/tools/undoframework/diagramscene.h
+++ /dev/null
@@ -1,74 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef DIAGRAMSCENE_H
-#define DIAGRAMSCENE_H
-
-#include <QObject>
-#include <QGraphicsScene>
-
-class DiagramItem;
-QT_BEGIN_NAMESPACE
-class QGraphicsSceneDragDropEvent;
-class QGraphicsViewItem;
-QT_END_NAMESPACE
-
-//! [0]
-class DiagramScene : public QGraphicsScene
-{
- Q_OBJECT
-
-public:
- DiagramScene(QObject *parent = 0);
-
-signals:
- void itemMoved(DiagramItem *movedItem, const QPointF &movedFromPosition);
-
-protected:
- void mousePressEvent(QGraphicsSceneMouseEvent *event);
- void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
-
-private:
- QGraphicsItem *movingItem;
- QPointF oldPos;
-};
-//! [0]
-
-#endif
diff --git a/examples/tools/undoframework/images/cross.png b/examples/tools/undoframework/images/cross.png
deleted file mode 100644
index 09e5e8c2ad..0000000000
--- a/examples/tools/undoframework/images/cross.png
+++ /dev/null
Binary files differ
diff --git a/examples/tools/undoframework/main.cpp b/examples/tools/undoframework/main.cpp
deleted file mode 100644
index 19ba6ec095..0000000000
--- a/examples/tools/undoframework/main.cpp
+++ /dev/null
@@ -1,57 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "mainwindow.h"
-
-//! [0]
-int main(int argv, char *args[])
-{
- Q_INIT_RESOURCE(undoframework);
-
- QApplication app(argv, args);
-
- MainWindow mainWindow;
- mainWindow.show();
-
- return app.exec();
-}
-//! [0]
diff --git a/examples/tools/undoframework/mainwindow.cpp b/examples/tools/undoframework/mainwindow.cpp
deleted file mode 100644
index 6ac3818113..0000000000
--- a/examples/tools/undoframework/mainwindow.cpp
+++ /dev/null
@@ -1,206 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "mainwindow.h"
-#include "diagramscene.h"
-#include "diagramitem.h"
-#include "commands.h"
-
-//! [0]
-MainWindow::MainWindow()
-{
- undoStack = new QUndoStack(this);
-
- createActions();
- createMenus();
-
- createUndoView();
-
- diagramScene = new DiagramScene();
- QBrush pixmapBrush(QPixmap(":/images/cross.png").scaled(30, 30));
- diagramScene->setBackgroundBrush(pixmapBrush);
- diagramScene->setSceneRect(QRect(0, 0, 500, 500));
-
- connect(diagramScene, SIGNAL(itemMoved(DiagramItem*,QPointF)),
- this, SLOT(itemMoved(DiagramItem*,QPointF)));
-
- setWindowTitle("Undo Framework");
- QGraphicsView *view = new QGraphicsView(diagramScene);
- setCentralWidget(view);
- resize(700, 500);
-}
-//! [0]
-
-//! [1]
-void MainWindow::createUndoView()
-{
- undoView = new QUndoView(undoStack);
- undoView->setWindowTitle(tr("Command List"));
- undoView->show();
- undoView->setAttribute(Qt::WA_QuitOnClose, false);
-}
-//! [1]
-
-//! [2]
-void MainWindow::createActions()
-{
- deleteAction = new QAction(tr("&Delete Item"), this);
- deleteAction->setShortcut(tr("Del"));
- connect(deleteAction, SIGNAL(triggered()), this, SLOT(deleteItem()));
-//! [2] //! [3]
-
-//! [3] //! [4]
- addBoxAction = new QAction(tr("Add &Box"), this);
-//! [4]
- addBoxAction->setShortcut(tr("Ctrl+O"));
- connect(addBoxAction, SIGNAL(triggered()), this, SLOT(addBox()));
-
- addTriangleAction = new QAction(tr("Add &Triangle"), this);
- addTriangleAction->setShortcut(tr("Ctrl+T"));
- connect(addTriangleAction, SIGNAL(triggered()), this, SLOT(addTriangle()));
-
-//! [5]
- undoAction = undoStack->createUndoAction(this, tr("&Undo"));
- undoAction->setShortcuts(QKeySequence::Undo);
-
- redoAction = undoStack->createRedoAction(this, tr("&Redo"));
- redoAction->setShortcuts(QKeySequence::Redo);
-//! [5]
-
- exitAction = new QAction(tr("E&xit"), this);
- exitAction->setShortcuts(QKeySequence::Quit);
- connect(exitAction, SIGNAL(triggered()), this, SLOT(close()));
-
- aboutAction = new QAction(tr("&About"), this);
- QList<QKeySequence> aboutShortcuts;
- aboutShortcuts << tr("Ctrl+A") << tr("Ctrl+B");
- aboutAction->setShortcuts(aboutShortcuts);
- connect(aboutAction, SIGNAL(triggered()), this, SLOT(about()));
-}
-
-//! [6]
-void MainWindow::createMenus()
-{
-//! [6]
- fileMenu = menuBar()->addMenu(tr("&File"));
- fileMenu->addAction(exitAction);
-
-//! [7]
- editMenu = menuBar()->addMenu(tr("&Edit"));
- editMenu->addAction(undoAction);
- editMenu->addAction(redoAction);
- editMenu->addSeparator();
- editMenu->addAction(deleteAction);
- connect(editMenu, SIGNAL(aboutToShow()),
- this, SLOT(itemMenuAboutToShow()));
- connect(editMenu, SIGNAL(aboutToHide()),
- this, SLOT(itemMenuAboutToHide()));
-
-//! [7]
- itemMenu = menuBar()->addMenu(tr("&Item"));
- itemMenu->addAction(addBoxAction);
- itemMenu->addAction(addTriangleAction);
-
- helpMenu = menuBar()->addMenu(tr("&About"));
- helpMenu->addAction(aboutAction);
-//! [8]
-}
-//! [8]
-
-//! [9]
-void MainWindow::itemMoved(DiagramItem *movedItem,
- const QPointF &oldPosition)
-{
- undoStack->push(new MoveCommand(movedItem, oldPosition));
-}
-//! [9]
-
-//! [10]
-void MainWindow::deleteItem()
-{
- if (diagramScene->selectedItems().isEmpty())
- return;
-
- QUndoCommand *deleteCommand = new DeleteCommand(diagramScene);
- undoStack->push(deleteCommand);
-}
-//! [10]
-
-//! [11]
-void MainWindow::itemMenuAboutToHide()
-{
- deleteAction->setEnabled(true);
-}
-//! [11]
-
-//! [12]
-void MainWindow::itemMenuAboutToShow()
-{
- deleteAction->setEnabled(!diagramScene->selectedItems().isEmpty());
-}
-//! [12]
-
-//! [13]
-void MainWindow::addBox()
-{
- QUndoCommand *addCommand = new AddCommand(DiagramItem::Box, diagramScene);
- undoStack->push(addCommand);
-}
-//! [13]
-
-//! [14]
-void MainWindow::addTriangle()
-{
- QUndoCommand *addCommand = new AddCommand(DiagramItem::Triangle,
- diagramScene);
- undoStack->push(addCommand);
-}
-//! [14]
-
-//! [15]
-void MainWindow::about()
-{
- QMessageBox::about(this, tr("About Undo"),
- tr("The <b>Undo</b> example demonstrates how to "
- "use Qt's undo framework."));
-}
-//! [15]
diff --git a/examples/tools/undoframework/mainwindow.h b/examples/tools/undoframework/mainwindow.h
deleted file mode 100644
index f61b0abb1b..0000000000
--- a/examples/tools/undoframework/mainwindow.h
+++ /dev/null
@@ -1,99 +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 examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-
-QT_BEGIN_NAMESPACE
-class QAction;
-class QToolBar;
-class QMenu;
-class QUndoStack;
-class QUndoView;
-QT_END_NAMESPACE
-class DiagramScene;
-class DiagramItem;
-
-//! [0]
-class MainWindow : public QMainWindow
-{
- Q_OBJECT
-
-public:
- MainWindow();
-
-public slots:
- void itemMoved(DiagramItem *movedDiagram, const QPointF &moveStartPosition);
-
-private slots:
- void deleteItem();
- void addBox();
- void addTriangle();
- void about();
- void itemMenuAboutToShow();
- void itemMenuAboutToHide();
-
-private:
- void createActions();
- void createMenus();
- void createUndoView();
-
- QAction *deleteAction;
- QAction *addBoxAction;
- QAction *addTriangleAction;
- QAction *undoAction;
- QAction *redoAction;
- QAction *exitAction;
- QAction *aboutAction;
-
- QMenu *fileMenu;
- QMenu *editMenu;
- QMenu *itemMenu;
- QMenu *helpMenu;
-
- DiagramScene *diagramScene;
- QUndoStack *undoStack;
- QUndoView *undoView;
-};
-//! [0]
-
-#endif
diff --git a/examples/tools/undoframework/undoframework.desktop b/examples/tools/undoframework/undoframework.desktop
deleted file mode 100644
index 24b7f320f4..0000000000
--- a/examples/tools/undoframework/undoframework.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Undo Framework
-Exec=/opt/usr/bin/undoframework
-Icon=undoframework
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/tools/undoframework/undoframework.pro b/examples/tools/undoframework/undoframework.pro
deleted file mode 100644
index d50247442a..0000000000
--- a/examples/tools/undoframework/undoframework.pro
+++ /dev/null
@@ -1,20 +0,0 @@
-HEADERS = commands.h \
- diagramitem.h \
- diagramscene.h \
- mainwindow.h
-SOURCES = commands.cpp \
- diagramitem.cpp \
- diagramscene.cpp \
- main.cpp \
- mainwindow.cpp
-RESOURCES = undoframework.qrc
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/tools/undoframework
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS undoframework.pro README images
-sources.path = $$[QT_INSTALL_EXAMPLES]/tools/undoframework
-INSTALLS += target sources
-
-QT += widgets
-
-simulator: warning(This example might not fully work on Simulator platform)
diff --git a/examples/tools/undoframework/undoframework.qrc b/examples/tools/undoframework/undoframework.qrc
deleted file mode 100644
index 6321d94d8d..0000000000
--- a/examples/tools/undoframework/undoframework.qrc
+++ /dev/null
@@ -1,6 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
- <qresource>
- <file>images/cross.png</file>
- </qresource>
- </RCC>
-