diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2023-05-16 14:17:35 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2023-05-16 18:33:18 +0200 |
commit | 11da92ba94570e5eec01597fe09f0a9a48acc677 (patch) | |
tree | 9b833f8184622d03d61e138516c994aa8086fce3 /examples/widgets | |
parent | cb2ff3b73310c7c2dbffe4a170e356027ebe1b0d (diff) | |
download | qtbase-11da92ba94570e5eec01597fe09f0a9a48acc677.tar.gz |
Convert "extension" dialog example into snippets
Pick-to: 6.5
Task-number: QTBUG-108751
Change-Id: I8ca4e058b832674dc0c8b84024cb70a667ee8db4
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Diffstat (limited to 'examples/widgets')
-rw-r--r-- | examples/widgets/dialogs/CMakeLists.txt | 1 | ||||
-rw-r--r-- | examples/widgets/dialogs/dialogs.pro | 1 | ||||
-rw-r--r-- | examples/widgets/dialogs/extension/CMakeLists.txt | 37 | ||||
-rw-r--r-- | examples/widgets/dialogs/extension/extension.pro | 9 | ||||
-rw-r--r-- | examples/widgets/dialogs/extension/finddialog.cpp | 77 | ||||
-rw-r--r-- | examples/widgets/dialogs/extension/finddialog.h | 41 | ||||
-rw-r--r-- | examples/widgets/dialogs/extension/main.cpp | 16 | ||||
-rw-r--r-- | examples/widgets/doc/src/extension.qdoc | 121 |
8 files changed, 0 insertions, 303 deletions
diff --git a/examples/widgets/dialogs/CMakeLists.txt b/examples/widgets/dialogs/CMakeLists.txt index a4031a6807..c40dc94ccb 100644 --- a/examples/widgets/dialogs/CMakeLists.txt +++ b/examples/widgets/dialogs/CMakeLists.txt @@ -5,7 +5,6 @@ if(QT_FEATURE_wizard) qt_internal_add_example(classwizard) qt_internal_add_example(trivialwizard) endif() -qt_internal_add_example(extension) qt_internal_add_example(standarddialogs) qt_internal_add_example(tabdialog) if(QT_FEATURE_wizard AND TARGET Qt6::PrintSupport) diff --git a/examples/widgets/dialogs/dialogs.pro b/examples/widgets/dialogs/dialogs.pro index 1983c854a1..14dbec67b6 100644 --- a/examples/widgets/dialogs/dialogs.pro +++ b/examples/widgets/dialogs/dialogs.pro @@ -2,7 +2,6 @@ QT_FOR_CONFIG += widgets TEMPLATE = subdirs SUBDIRS = classwizard \ - extension \ licensewizard \ standarddialogs \ tabdialog \ diff --git a/examples/widgets/dialogs/extension/CMakeLists.txt b/examples/widgets/dialogs/extension/CMakeLists.txt deleted file mode 100644 index 8dd008cc20..0000000000 --- a/examples/widgets/dialogs/extension/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: BSD-3-Clause - -cmake_minimum_required(VERSION 3.16) -project(extension LANGUAGES CXX) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/dialogs/extension") - -find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) - -qt_standard_project_setup() - -qt_add_executable(extension - finddialog.cpp finddialog.h - main.cpp -) - -set_target_properties(extension PROPERTIES - WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE TRUE -) - -target_link_libraries(extension PRIVATE - Qt6::Core - Qt6::Gui - Qt6::Widgets -) - -install(TARGETS extension - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) diff --git a/examples/widgets/dialogs/extension/extension.pro b/examples/widgets/dialogs/extension/extension.pro deleted file mode 100644 index f51052cd56..0000000000 --- a/examples/widgets/dialogs/extension/extension.pro +++ /dev/null @@ -1,9 +0,0 @@ -QT += widgets - -HEADERS = finddialog.h -SOURCES = finddialog.cpp \ - main.cpp - -# install -target.path = $$[QT_INSTALL_EXAMPLES]/widgets/dialogs/extension -INSTALLS += target diff --git a/examples/widgets/dialogs/extension/finddialog.cpp b/examples/widgets/dialogs/extension/finddialog.cpp deleted file mode 100644 index f6b5943467..0000000000 --- a/examples/widgets/dialogs/extension/finddialog.cpp +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include <QtWidgets> - -#include "finddialog.h" - -//! [0] -FindDialog::FindDialog(QWidget *parent) - : QDialog(parent) -{ - label = new QLabel(tr("Find &what:")); - lineEdit = new QLineEdit; - label->setBuddy(lineEdit); - - caseCheckBox = new QCheckBox(tr("Match &case")); - fromStartCheckBox = new QCheckBox(tr("Search from &start")); - fromStartCheckBox->setChecked(true); - -//! [1] - findButton = new QPushButton(tr("&Find")); - findButton->setDefault(true); - - moreButton = new QPushButton(tr("&More")); - moreButton->setCheckable(true); -//! [0] - moreButton->setAutoDefault(false); - -//! [1] - -//! [2] - extension = new QWidget; - - wholeWordsCheckBox = new QCheckBox(tr("&Whole words")); - backwardCheckBox = new QCheckBox(tr("Search &backward")); - searchSelectionCheckBox = new QCheckBox(tr("Search se&lection")); -//! [2] - -//! [3] - buttonBox = new QDialogButtonBox(Qt::Vertical); - buttonBox->addButton(findButton, QDialogButtonBox::ActionRole); - buttonBox->addButton(moreButton, QDialogButtonBox::ActionRole); - - connect(moreButton, &QAbstractButton::toggled, extension, &QWidget::setVisible); - - QVBoxLayout *extensionLayout = new QVBoxLayout; - extensionLayout->setContentsMargins(QMargins()); - extensionLayout->addWidget(wholeWordsCheckBox); - extensionLayout->addWidget(backwardCheckBox); - extensionLayout->addWidget(searchSelectionCheckBox); - extension->setLayout(extensionLayout); -//! [3] - -//! [4] - QHBoxLayout *topLeftLayout = new QHBoxLayout; - topLeftLayout->addWidget(label); - topLeftLayout->addWidget(lineEdit); - - QVBoxLayout *leftLayout = new QVBoxLayout; - leftLayout->addLayout(topLeftLayout); - leftLayout->addWidget(caseCheckBox); - leftLayout->addWidget(fromStartCheckBox); - - QGridLayout *mainLayout = new QGridLayout; - mainLayout->setSizeConstraint(QLayout::SetFixedSize); - mainLayout->addLayout(leftLayout, 0, 0); - mainLayout->addWidget(buttonBox, 0, 1); - mainLayout->addWidget(extension, 1, 0, 1, 2); - mainLayout->setRowStretch(2, 1); - - setLayout(mainLayout); - - setWindowTitle(tr("Extension")); -//! [4] //! [5] - extension->hide(); -} -//! [5] diff --git a/examples/widgets/dialogs/extension/finddialog.h b/examples/widgets/dialogs/extension/finddialog.h deleted file mode 100644 index 61bc442f46..0000000000 --- a/examples/widgets/dialogs/extension/finddialog.h +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#ifndef FINDDIALOG_H -#define FINDDIALOG_H - -#include <QDialog> - -QT_BEGIN_NAMESPACE -class QCheckBox; -class QDialogButtonBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -QT_END_NAMESPACE - -//! [0] -class FindDialog : public QDialog -{ - Q_OBJECT - -public: - FindDialog(QWidget *parent = nullptr); - -private: - QLabel *label; - QLineEdit *lineEdit; - QCheckBox *caseCheckBox; - QCheckBox *fromStartCheckBox; - QCheckBox *wholeWordsCheckBox; - QCheckBox *searchSelectionCheckBox; - QCheckBox *backwardCheckBox; - QDialogButtonBox *buttonBox; - QPushButton *findButton; - QPushButton *moreButton; - QWidget *extension; -}; -//! [0] - -#endif diff --git a/examples/widgets/dialogs/extension/main.cpp b/examples/widgets/dialogs/extension/main.cpp deleted file mode 100644 index 730a0347f4..0000000000 --- a/examples/widgets/dialogs/extension/main.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include <QApplication> - -#include "finddialog.h" - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - FindDialog dialog; - - dialog.show(); - - return app.exec(); -} diff --git a/examples/widgets/doc/src/extension.qdoc b/examples/widgets/doc/src/extension.qdoc deleted file mode 100644 index 8f35e0e196..0000000000 --- a/examples/widgets/doc/src/extension.qdoc +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only - -/*! - \example dialogs/extension - \title Extension Example - \ingroup examples-dialogs - - \brief The Extension example shows how to add an extension to a QDialog - using the QAbstractButton::toggled() signal and the - QWidget::setVisible() slot. - - \image extension-example.png Screenshot of the Extension example - - The Extension application lets the user add search parameters in - a dialog and launch a simple or advanced search. - - The simple search has two options: \uicontrol {Match case} and \uicontrol - {Search from start}. The advanced search offers search for \uicontrol {Whole words}, - \uicontrol {Search backward}, and \uicontrol {Search selection}. The - application starts with simple search as the default. Click the \uicontrol More button - to show the advanced search options: - - \image extension_more.png Screenshot of the Extension example - - \section1 FindDialog Class Definition - - The \c FindDialog class inherits QDialog. QDialog is the - base class for dialog windows. A dialog window is a top-level - window mostly used for short-term tasks and brief communications - with the user. - - \snippet dialogs/extension/finddialog.h 0 - - The \c FindDialog widget is the main application widget, and - displays the application's search options and controlling - buttons. - - In addition to the constructor, there are several child widgets: - - \list - \li A QLineEdit with an associated QLabel to let the - user type a word to search for. - \li Several \l {QCheckBox}{QCheckBox}es to facilitate the search options. - \li Three \l {QPushButton}{QPushButton}s: - \list - \li the \uicontrol Find button to start a search - \li the \uicontrol More button to enable an advanced search - \li a QWidget representing the application's extension part - \endlist - \endlist - - \section1 FindDialog Class Implementation - - Create the standard child widgets for the simple search in the constructor: - the QLineEdit with the associated QLabel, two {QCheckBox}es and all the - \l {QPushButton}{QPushButton}s. - - \snippet dialogs/extension/finddialog.cpp 0 - - This snippet illustrates how you can define a shortcut key - for a widget. A shortcut should be defined by putting the ampersand - character (\c &) in front of the letter that should - become the shortcut. - For example, for \uicontrol {Find what}, pressing \uicontrol Alt - and \uicontrol w transfers focus to the QLineEdit widget. - Shortcuts can also be used for checking on or off a checkmark. - For example, pressing \uicontrol Alt and \uicontrol c puts the check mark - on \uicontrol {Match Case} if it was unchecked and vice versa. - It is the QLabel::setBuddy() method that links a widget to the shortcut - character if it has been defined. - - Set the \uicontrol Find button's default property to true, using the - QPushButton::setDefault() function. Then the push button will be - pressed if the user presses the Enter (or Return) key. Note that a - QDialog can only have one default button. - - \snippet dialogs/extension/finddialog.cpp 2 - - Create the extension widget, and the \l {QCheckBox}{QCheckBox}es associated - with the advanced search options. - - \snippet dialogs/extension/finddialog.cpp 3 - - Now that the extension widget is created, connect the \uicontrol - More button's \l{QAbstractButton::toggled()}{toggled()} signal to - the extension widget's \l{QWidget::setVisible()}{setVisible()} slot. - - The QAbstractButton::toggled() signal is emitted whenever a - checkable button changes its state. The signal's argument is true - if the button is checked, or false if the button is unchecked. The - QWidget::setVisible() slot sets the widget's visible status. If - the status is true the widget is shown, otherwise the widget is - hidden. - - Since the \uicontrol More button is checkable, the connection makes - sure that the extension widget is shown depending on the state of - the \uicontrol More button. - - Create checkboxes associated with the advanced search options in - a layout installed on the extension widget. - - \snippet dialogs/extension/finddialog.cpp 4 - - Before creating the main layout, create several child layouts - for the widgets. First align the QLabel and its buddy, the - QLineEdit, using a QHBoxLayout. Then align the QLabel and the QLineEdit - vertically with the checkboxes associated with the simple search, - using a QVBoxLayout. Create also a QVBoxLayout for the buttons. - Finally, lay out the two latter layouts and the extension widget - using a QGridLayout. - - \snippet dialogs/extension/finddialog.cpp 5 - - Hide the extension widget using the QWidget::hide() - function, making the application only show the simple search - options when it starts. When the user wants to access the advanced - search options, the dialog only needs to change the visibility of - the extension widget. Qt's layout management takes care of the - dialog's appearance. -*/ |