diff options
Diffstat (limited to 'examples/widgets/richtext/orderform')
-rw-r--r-- | examples/widgets/richtext/orderform/detailsdialog.cpp | 156 | ||||
-rw-r--r-- | examples/widgets/richtext/orderform/detailsdialog.h | 90 | ||||
-rw-r--r-- | examples/widgets/richtext/orderform/main.cpp | 55 | ||||
-rw-r--r-- | examples/widgets/richtext/orderform/mainwindow.cpp | 253 | ||||
-rw-r--r-- | examples/widgets/richtext/orderform/mainwindow.h | 76 | ||||
-rw-r--r-- | examples/widgets/richtext/orderform/orderform.desktop | 11 | ||||
-rw-r--r-- | examples/widgets/richtext/orderform/orderform.pro | 14 |
7 files changed, 655 insertions, 0 deletions
diff --git a/examples/widgets/richtext/orderform/detailsdialog.cpp b/examples/widgets/richtext/orderform/detailsdialog.cpp new file mode 100644 index 0000000000..3dbdee58c7 --- /dev/null +++ b/examples/widgets/richtext/orderform/detailsdialog.cpp @@ -0,0 +1,156 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** 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 Nokia Corporation 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 "detailsdialog.h" + +//! [0] +DetailsDialog::DetailsDialog(const QString &title, QWidget *parent) + : QDialog(parent) +{ + nameLabel = new QLabel(tr("Name:")); + addressLabel = new QLabel(tr("Address:")); + addressLabel->setAlignment(Qt::AlignLeft | Qt::AlignTop); + + nameEdit = new QLineEdit; + addressEdit = new QTextEdit; + + offersCheckBox = new QCheckBox(tr("Send information about products and " + "special offers")); + + setupItemsTable(); + + buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok + | QDialogButtonBox::Cancel); + + connect(buttonBox, SIGNAL(accepted()), this, SLOT(verify())); + connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); +//! [0] + +//! [1] + QGridLayout *mainLayout = new QGridLayout; + mainLayout->addWidget(nameLabel, 0, 0); + mainLayout->addWidget(nameEdit, 0, 1); + mainLayout->addWidget(addressLabel, 1, 0); + mainLayout->addWidget(addressEdit, 1, 1); + mainLayout->addWidget(itemsTable, 0, 2, 2, 1); + mainLayout->addWidget(offersCheckBox, 2, 1, 1, 2); + mainLayout->addWidget(buttonBox, 3, 0, 1, 3); + setLayout(mainLayout); + + setWindowTitle(title); +} +//! [1] + +//! [2] +void DetailsDialog::setupItemsTable() +{ + items << tr("T-shirt") << tr("Badge") << tr("Reference book") + << tr("Coffee cup"); + + itemsTable = new QTableWidget(items.count(), 2); + + for (int row = 0; row < items.count(); ++row) { + QTableWidgetItem *name = new QTableWidgetItem(items[row]); + name->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); + itemsTable->setItem(row, 0, name); + QTableWidgetItem *quantity = new QTableWidgetItem("1"); + itemsTable->setItem(row, 1, quantity); + } +} +//! [2] + +//! [3] +QList<QPair<QString, int> > DetailsDialog::orderItems() +{ + QList<QPair<QString, int> > orderList; + + for (int row = 0; row < items.count(); ++row) { + QPair<QString, int> item; + item.first = itemsTable->item(row, 0)->text(); + int quantity = itemsTable->item(row, 1)->data(Qt::DisplayRole).toInt(); + item.second = qMax(0, quantity); + orderList.append(item); + } + + return orderList; +} +//! [3] + +//! [4] +QString DetailsDialog::senderName() const +{ + return nameEdit->text(); +} +//! [4] + +//! [5] +QString DetailsDialog::senderAddress() const +{ + return addressEdit->toPlainText(); +} +//! [5] + +//! [6] +bool DetailsDialog::sendOffers() +{ + return offersCheckBox->isChecked(); +} +//! [6] + +//! [7] +void DetailsDialog::verify() +{ + if (!nameEdit->text().isEmpty() && !addressEdit->toPlainText().isEmpty()) { + accept(); + return; + } + + QMessageBox::StandardButton answer; + answer = QMessageBox::warning(this, tr("Incomplete Form"), + tr("The form does not contain all the necessary information.\n" + "Do you want to discard it?"), + QMessageBox::Yes | QMessageBox::No); + + if (answer == QMessageBox::Yes) + reject(); +} +//! [7] diff --git a/examples/widgets/richtext/orderform/detailsdialog.h b/examples/widgets/richtext/orderform/detailsdialog.h new file mode 100644 index 0000000000..ee964d082e --- /dev/null +++ b/examples/widgets/richtext/orderform/detailsdialog.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** 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 Nokia Corporation 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 DETAILSDIALOG_H +#define DETAILSDIALOG_H + +#include <QDialog> +#include <QList> +#include <QPair> +#include <QString> + +QT_BEGIN_NAMESPACE +class QCheckBox; +class QDialogButtonBox; +class QLabel; +class QLineEdit; +class QTableWidget; +class QTextEdit; +class QWidget; +QT_END_NAMESPACE + +//! [0] +class DetailsDialog : public QDialog +{ + Q_OBJECT + +public: + DetailsDialog(const QString &title, QWidget *parent); + +public slots: + void verify(); + +public: + QList<QPair<QString, int> > orderItems(); + QString senderName() const; + QString senderAddress() const; + bool sendOffers(); + +private: + void setupItemsTable(); + + QLabel *nameLabel; + QLabel *addressLabel; + QCheckBox *offersCheckBox; + QLineEdit *nameEdit; + QStringList items; + QTableWidget *itemsTable; + QTextEdit *addressEdit; + QDialogButtonBox *buttonBox; +}; +//! [0] + +#endif diff --git a/examples/widgets/richtext/orderform/main.cpp b/examples/widgets/richtext/orderform/main.cpp new file mode 100644 index 0000000000..fc14fbb625 --- /dev/null +++ b/examples/widgets/richtext/orderform/main.cpp @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** 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 Nokia Corporation 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 argc, char *argv[]) +{ + QApplication app(argc, argv); + MainWindow window; + window.resize(640, 480); + window.show(); + window.createSample(); + return app.exec(); +} +//! [0] diff --git a/examples/widgets/richtext/orderform/mainwindow.cpp b/examples/widgets/richtext/orderform/mainwindow.cpp new file mode 100644 index 0000000000..44b3cb4f9a --- /dev/null +++ b/examples/widgets/richtext/orderform/mainwindow.cpp @@ -0,0 +1,253 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** 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 Nokia Corporation 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> +#ifndef QT_NO_PRINTER +#include <QPrinter> +#include <QPrintDialog> +#endif + +#include "detailsdialog.h" +#include "mainwindow.h" + +//! [0] +MainWindow::MainWindow() +{ + QMenu *fileMenu = new QMenu(tr("&File"), this); + QAction *newAction = fileMenu->addAction(tr("&New...")); + newAction->setShortcuts(QKeySequence::New); + printAction = fileMenu->addAction(tr("&Print..."), this, SLOT(printFile())); + printAction->setShortcuts(QKeySequence::Print); + printAction->setEnabled(false); + QAction *quitAction = fileMenu->addAction(tr("E&xit")); + quitAction->setShortcuts(QKeySequence::Quit); + menuBar()->addMenu(fileMenu); + + letters = new QTabWidget; + + connect(newAction, SIGNAL(triggered()), this, SLOT(openDialog())); + connect(quitAction, SIGNAL(triggered()), this, SLOT(close())); + + setCentralWidget(letters); + setWindowTitle(tr("Order Form")); +} +//! [0] + +//! [1] +void MainWindow::createLetter(const QString &name, const QString &address, + QList<QPair<QString,int> > orderItems, + bool sendOffers) +{ + QTextEdit *editor = new QTextEdit; + int tabIndex = letters->addTab(editor, name); + letters->setCurrentIndex(tabIndex); +//! [1] + +//! [2] + QTextCursor cursor(editor->textCursor()); + cursor.movePosition(QTextCursor::Start); +//! [2] //! [3] + QTextFrame *topFrame = cursor.currentFrame(); + QTextFrameFormat topFrameFormat = topFrame->frameFormat(); + topFrameFormat.setPadding(16); + topFrame->setFrameFormat(topFrameFormat); + + QTextCharFormat textFormat; + QTextCharFormat boldFormat; + boldFormat.setFontWeight(QFont::Bold); + + QTextFrameFormat referenceFrameFormat; + referenceFrameFormat.setBorder(1); + referenceFrameFormat.setPadding(8); + referenceFrameFormat.setPosition(QTextFrameFormat::FloatRight); + referenceFrameFormat.setWidth(QTextLength(QTextLength::PercentageLength, 40)); + cursor.insertFrame(referenceFrameFormat); + + cursor.insertText("A company", boldFormat); + cursor.insertBlock(); + cursor.insertText("321 City Street"); + cursor.insertBlock(); + cursor.insertText("Industry Park"); + cursor.insertBlock(); + cursor.insertText("Another country"); +//! [3] + +//! [4] + cursor.setPosition(topFrame->lastPosition()); + + cursor.insertText(name, textFormat); + QString line; + foreach (line, address.split("\n")) { + cursor.insertBlock(); + cursor.insertText(line); + } +//! [4] //! [5] + cursor.insertBlock(); + cursor.insertBlock(); + + QDate date = QDate::currentDate(); + cursor.insertText(tr("Date: %1").arg(date.toString("d MMMM yyyy")), + textFormat); + cursor.insertBlock(); + + QTextFrameFormat bodyFrameFormat; + bodyFrameFormat.setWidth(QTextLength(QTextLength::PercentageLength, 100)); + cursor.insertFrame(bodyFrameFormat); +//! [5] + +//! [6] + cursor.insertText(tr("I would like to place an order for the following " + "items:"), textFormat); + cursor.insertBlock(); +//! [6] //! [7] + cursor.insertBlock(); +//! [7] + +//! [8] + QTextTableFormat orderTableFormat; + orderTableFormat.setAlignment(Qt::AlignHCenter); + QTextTable *orderTable = cursor.insertTable(1, 2, orderTableFormat); + + QTextFrameFormat orderFrameFormat = cursor.currentFrame()->frameFormat(); + orderFrameFormat.setBorder(1); + cursor.currentFrame()->setFrameFormat(orderFrameFormat); +//! [8] + +//! [9] + cursor = orderTable->cellAt(0, 0).firstCursorPosition(); + cursor.insertText(tr("Product"), boldFormat); + cursor = orderTable->cellAt(0, 1).firstCursorPosition(); + cursor.insertText(tr("Quantity"), boldFormat); +//! [9] + +//! [10] + for (int i = 0; i < orderItems.count(); ++i) { + QPair<QString,int> item = orderItems[i]; + int row = orderTable->rows(); + + orderTable->insertRows(row, 1); + cursor = orderTable->cellAt(row, 0).firstCursorPosition(); + cursor.insertText(item.first, textFormat); + cursor = orderTable->cellAt(row, 1).firstCursorPosition(); + cursor.insertText(QString("%1").arg(item.second), textFormat); + } +//! [10] + +//! [11] + cursor.setPosition(topFrame->lastPosition()); + + cursor.insertBlock(); +//! [11] //! [12] + cursor.insertText(tr("Please update my records to take account of the " + "following privacy information:")); + cursor.insertBlock(); +//! [12] + +//! [13] + QTextTable *offersTable = cursor.insertTable(2, 2); + + cursor = offersTable->cellAt(0, 1).firstCursorPosition(); + cursor.insertText(tr("I want to receive more information about your " + "company's products and special offers."), textFormat); + cursor = offersTable->cellAt(1, 1).firstCursorPosition(); + cursor.insertText(tr("I do not want to receive any promotional information " + "from your company."), textFormat); + + if (sendOffers) + cursor = offersTable->cellAt(0, 0).firstCursorPosition(); + else + cursor = offersTable->cellAt(1, 0).firstCursorPosition(); + + cursor.insertText("X", boldFormat); +//! [13] + +//! [14] + cursor.setPosition(topFrame->lastPosition()); + cursor.insertBlock(); + cursor.insertText(tr("Sincerely,"), textFormat); + cursor.insertBlock(); + cursor.insertBlock(); + cursor.insertBlock(); + cursor.insertText(name); + + printAction->setEnabled(true); +} +//! [14] + +//! [15] +void MainWindow::createSample() +{ + DetailsDialog dialog("Dialog with default values", this); + createLetter("Mr. Smith", "12 High Street\nSmall Town\nThis country", + dialog.orderItems(), true); +} +//! [15] + +//! [16] +void MainWindow::openDialog() +{ + DetailsDialog dialog(tr("Enter Customer Details"), this); + + if (dialog.exec() == QDialog::Accepted) + createLetter(dialog.senderName(), dialog.senderAddress(), + dialog.orderItems(), dialog.sendOffers()); +} +//! [16] + +//! [17] +void MainWindow::printFile() +{ +#ifndef QT_NO_PRINTER + QTextEdit *editor = static_cast<QTextEdit*>(letters->currentWidget()); +//! [18] + QPrinter printer; + + QPrintDialog *dialog = new QPrintDialog(&printer, this); + dialog->setWindowTitle(tr("Print Document")); + if (editor->textCursor().hasSelection()) + dialog->addEnabledOption(QAbstractPrintDialog::PrintSelection); + if (dialog->exec() != QDialog::Accepted) + return; +//! [18] + + editor->print(&printer); +#endif +} +//! [17] diff --git a/examples/widgets/richtext/orderform/mainwindow.h b/examples/widgets/richtext/orderform/mainwindow.h new file mode 100644 index 0000000000..e688f42a80 --- /dev/null +++ b/examples/widgets/richtext/orderform/mainwindow.h @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** 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 Nokia Corporation 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> +#include <QPair> + +QT_BEGIN_NAMESPACE +class QAction; +class QTabWidget; +QT_END_NAMESPACE + +//! [0] +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + MainWindow(); + void createSample(); + +public slots: + void openDialog(); + void printFile(); + +private: + void createLetter(const QString &name, const QString &address, + QList<QPair<QString,int> > orderItems, + bool sendOffers); + + QAction *printAction; + QTabWidget *letters; +}; +//! [0] + +#endif diff --git a/examples/widgets/richtext/orderform/orderform.desktop b/examples/widgets/richtext/orderform/orderform.desktop new file mode 100644 index 0000000000..4690cbc876 --- /dev/null +++ b/examples/widgets/richtext/orderform/orderform.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=Order Form +Exec=/opt/usr/bin/orderform +Icon=orderform +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/examples/widgets/richtext/orderform/orderform.pro b/examples/widgets/richtext/orderform/orderform.pro new file mode 100644 index 0000000000..4aefb99428 --- /dev/null +++ b/examples/widgets/richtext/orderform/orderform.pro @@ -0,0 +1,14 @@ +HEADERS = detailsdialog.h \ + mainwindow.h +SOURCES = detailsdialog.cpp \ + main.cpp \ + mainwindow.cpp + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/qtbase/richtext/orderform +sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS orderform.pro +sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/richtext/orderform +INSTALLS += target sources + +QT += widgets +!isEmpty(QT.printsupport.name): QT += printsupport |