diff options
Diffstat (limited to 'examples/widgets/mainwindows/dockwidgets/mainwindow.cpp')
-rw-r--r-- | examples/widgets/mainwindows/dockwidgets/mainwindow.cpp | 345 |
1 files changed, 0 insertions, 345 deletions
diff --git a/examples/widgets/mainwindows/dockwidgets/mainwindow.cpp b/examples/widgets/mainwindows/dockwidgets/mainwindow.cpp deleted file mode 100644 index dba4a081df..0000000000 --- a/examples/widgets/mainwindows/dockwidgets/mainwindow.cpp +++ /dev/null @@ -1,345 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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 <QtWidgets> -#if defined(QT_PRINTSUPPORT_LIB) -#include <QtPrintSupport/qtprintsupportglobal.h> -#if QT_CONFIG(printdialog) -#include <QtPrintSupport> -#endif -#endif - -#include "mainwindow.h" -//! [0] - -//! [1] -MainWindow::MainWindow() - : textEdit(new QTextEdit) -{ - setCentralWidget(textEdit); - - createActions(); - createStatusBar(); - createDockWindows(); - - setWindowTitle(tr("Dock Widgets")); - - newLetter(); - setUnifiedTitleAndToolBarOnMac(true); -} -//! [1] - -//! [2] -void MainWindow::newLetter() -{ - textEdit->clear(); - - QTextCursor cursor(textEdit->textCursor()); - cursor.movePosition(QTextCursor::Start); - QTextFrame *topFrame = cursor.currentFrame(); - QTextFrameFormat topFrameFormat = topFrame->frameFormat(); - topFrameFormat.setPadding(16); - topFrame->setFrameFormat(topFrameFormat); - - QTextCharFormat textFormat; - QTextCharFormat boldFormat; - boldFormat.setFontWeight(QFont::Bold); - QTextCharFormat italicFormat; - italicFormat.setFontItalic(true); - - QTextTableFormat tableFormat; - tableFormat.setBorder(1); - tableFormat.setCellPadding(16); - tableFormat.setAlignment(Qt::AlignRight); - cursor.insertTable(1, 1, tableFormat); - cursor.insertText("The Firm", boldFormat); - cursor.insertBlock(); - cursor.insertText("321 City Street", textFormat); - cursor.insertBlock(); - cursor.insertText("Industry Park"); - cursor.insertBlock(); - cursor.insertText("Some Country"); - cursor.setPosition(topFrame->lastPosition()); - cursor.insertText(QDate::currentDate().toString("d MMMM yyyy"), textFormat); - cursor.insertBlock(); - cursor.insertBlock(); - cursor.insertText("Dear ", textFormat); - cursor.insertText("NAME", italicFormat); - cursor.insertText(",", textFormat); - for (int i = 0; i < 3; ++i) - cursor.insertBlock(); - cursor.insertText(tr("Yours sincerely,"), textFormat); - for (int i = 0; i < 3; ++i) - cursor.insertBlock(); - cursor.insertText("The Boss", textFormat); - cursor.insertBlock(); - cursor.insertText("ADDRESS", italicFormat); -} -//! [2] - -//! [3] -void MainWindow::print() -{ -#if defined(QT_PRINTSUPPORT_LIB) && QT_CONFIG(printdialog) - QTextDocument *document = textEdit->document(); - QPrinter printer; - - QPrintDialog dlg(&printer, this); - if (dlg.exec() != QDialog::Accepted) { - return; - } - - document->print(&printer); - statusBar()->showMessage(tr("Ready"), 2000); -#endif -} -//! [3] - -//! [4] -void MainWindow::save() -{ - QMimeDatabase mimeDatabase; - QString fileName = QFileDialog::getSaveFileName(this, - tr("Choose a file name"), ".", - mimeDatabase.mimeTypeForName("text/html").filterString()); - if (fileName.isEmpty()) - return; - QFile file(fileName); - if (!file.open(QFile::WriteOnly | QFile::Text)) { - QMessageBox::warning(this, tr("Dock Widgets"), - tr("Cannot write file %1:\n%2.") - .arg(QDir::toNativeSeparators(fileName), file.errorString())); - return; - } - - QTextStream out(&file); - QGuiApplication::setOverrideCursor(Qt::WaitCursor); - out << textEdit->toHtml(); - QGuiApplication::restoreOverrideCursor(); - - statusBar()->showMessage(tr("Saved '%1'").arg(fileName), 2000); -} -//! [4] - -//! [5] -void MainWindow::undo() -{ - QTextDocument *document = textEdit->document(); - document->undo(); -} -//! [5] - -//! [6] -void MainWindow::insertCustomer(const QString &customer) -{ - if (customer.isEmpty()) - return; - QStringList customerList = customer.split(", "); - QTextDocument *document = textEdit->document(); - QTextCursor cursor = document->find("NAME"); - if (!cursor.isNull()) { - cursor.beginEditBlock(); - cursor.insertText(customerList.at(0)); - QTextCursor oldcursor = cursor; - cursor = document->find("ADDRESS"); - if (!cursor.isNull()) { - for (int i = 1; i < customerList.size(); ++i) { - cursor.insertBlock(); - cursor.insertText(customerList.at(i)); - } - cursor.endEditBlock(); - } - else - oldcursor.endEditBlock(); - } -} -//! [6] - -//! [7] -void MainWindow::addParagraph(const QString ¶graph) -{ - if (paragraph.isEmpty()) - return; - QTextDocument *document = textEdit->document(); - QTextCursor cursor = document->find(tr("Yours sincerely,")); - if (cursor.isNull()) - return; - cursor.beginEditBlock(); - cursor.movePosition(QTextCursor::PreviousBlock, QTextCursor::MoveAnchor, 2); - cursor.insertBlock(); - cursor.insertText(paragraph); - cursor.insertBlock(); - cursor.endEditBlock(); - -} -//! [7] - -void MainWindow::about() -{ - QMessageBox::about(this, tr("About Dock Widgets"), - tr("The <b>Dock Widgets</b> example demonstrates how to " - "use Qt's dock widgets. You can enter your own text, " - "click a customer to add a customer name and " - "address, and click standard paragraphs to add them.")); -} - -void MainWindow::createActions() -{ - QMenu *fileMenu = menuBar()->addMenu(tr("&File")); - QToolBar *fileToolBar = addToolBar(tr("File")); - - const QIcon newIcon = QIcon::fromTheme("document-new", QIcon(":/images/new.png")); - QAction *newLetterAct = new QAction(newIcon, tr("&New Letter"), this); - newLetterAct->setShortcuts(QKeySequence::New); - newLetterAct->setStatusTip(tr("Create a new form letter")); - connect(newLetterAct, &QAction::triggered, this, &MainWindow::newLetter); - fileMenu->addAction(newLetterAct); - fileToolBar->addAction(newLetterAct); - - const QIcon saveIcon = QIcon::fromTheme("document-save", QIcon(":/images/save.png")); - QAction *saveAct = new QAction(saveIcon, tr("&Save..."), this); - saveAct->setShortcuts(QKeySequence::Save); - saveAct->setStatusTip(tr("Save the current form letter")); - connect(saveAct, &QAction::triggered, this, &MainWindow::save); - fileMenu->addAction(saveAct); - fileToolBar->addAction(saveAct); - - const QIcon printIcon = QIcon::fromTheme("document-print", QIcon(":/images/print.png")); - QAction *printAct = new QAction(printIcon, tr("&Print..."), this); - printAct->setShortcuts(QKeySequence::Print); - printAct->setStatusTip(tr("Print the current form letter")); - connect(printAct, &QAction::triggered, this, &MainWindow::print); - fileMenu->addAction(printAct); - fileToolBar->addAction(printAct); - - fileMenu->addSeparator(); - - QAction *quitAct = fileMenu->addAction(tr("&Quit"), this, &QWidget::close); - quitAct->setShortcuts(QKeySequence::Quit); - quitAct->setStatusTip(tr("Quit the application")); - - QMenu *editMenu = menuBar()->addMenu(tr("&Edit")); - QToolBar *editToolBar = addToolBar(tr("Edit")); - const QIcon undoIcon = QIcon::fromTheme("edit-undo", QIcon(":/images/undo.png")); - QAction *undoAct = new QAction(undoIcon, tr("&Undo"), this); - undoAct->setShortcuts(QKeySequence::Undo); - undoAct->setStatusTip(tr("Undo the last editing action")); - connect(undoAct, &QAction::triggered, this, &MainWindow::undo); - editMenu->addAction(undoAct); - editToolBar->addAction(undoAct); - - viewMenu = menuBar()->addMenu(tr("&View")); - - menuBar()->addSeparator(); - - QMenu *helpMenu = menuBar()->addMenu(tr("&Help")); - - QAction *aboutAct = helpMenu->addAction(tr("&About"), this, &MainWindow::about); - aboutAct->setStatusTip(tr("Show the application's About box")); - - QAction *aboutQtAct = helpMenu->addAction(tr("About &Qt"), qApp, &QApplication::aboutQt); - aboutQtAct->setStatusTip(tr("Show the Qt library's About box")); -} - -//! [8] -void MainWindow::createStatusBar() -{ - statusBar()->showMessage(tr("Ready")); -} -//! [8] - -//! [9] -void MainWindow::createDockWindows() -{ - QDockWidget *dock = new QDockWidget(tr("Customers"), this); - dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); - customerList = new QListWidget(dock); - customerList->addItems(QStringList() - << "John Doe, Harmony Enterprises, 12 Lakeside, Ambleton" - << "Jane Doe, Memorabilia, 23 Watersedge, Beaton" - << "Tammy Shea, Tiblanka, 38 Sea Views, Carlton" - << "Tim Sheen, Caraba Gifts, 48 Ocean Way, Deal" - << "Sol Harvey, Chicos Coffee, 53 New Springs, Eccleston" - << "Sally Hobart, Tiroli Tea, 67 Long River, Fedula"); - dock->setWidget(customerList); - addDockWidget(Qt::RightDockWidgetArea, dock); - viewMenu->addAction(dock->toggleViewAction()); - - dock = new QDockWidget(tr("Paragraphs"), this); - paragraphsList = new QListWidget(dock); - paragraphsList->addItems(QStringList() - << "Thank you for your payment which we have received today." - << "Your order has been dispatched and should be with you " - "within 28 days." - << "We have dispatched those items that were in stock. The " - "rest of your order will be dispatched once all the " - "remaining items have arrived at our warehouse. No " - "additional shipping charges will be made." - << "You made a small overpayment (less than $5) which we " - "will keep on account for you, or return at your request." - << "You made a small underpayment (less than $1), but we have " - "sent your order anyway. We'll add this underpayment to " - "your next bill." - << "Unfortunately you did not send enough money. Please remit " - "an additional $. Your order will be dispatched as soon as " - "the complete amount has been received." - << "You made an overpayment (more than $5). Do you wish to " - "buy more items, or should we return the excess to you?"); - dock->setWidget(paragraphsList); - addDockWidget(Qt::RightDockWidgetArea, dock); - viewMenu->addAction(dock->toggleViewAction()); - - connect(customerList, &QListWidget::currentTextChanged, - this, &MainWindow::insertCustomer); - connect(paragraphsList, &QListWidget::currentTextChanged, - this, &MainWindow::addParagraph); -} -//! [9] |