diff options
Diffstat (limited to 'examples/widgets/richtext/calendar/mainwindow.cpp')
-rw-r--r-- | examples/widgets/richtext/calendar/mainwindow.cpp | 226 |
1 files changed, 0 insertions, 226 deletions
diff --git a/examples/widgets/richtext/calendar/mainwindow.cpp b/examples/widgets/richtext/calendar/mainwindow.cpp deleted file mode 100644 index 2b8fd518af..0000000000 --- a/examples/widgets/richtext/calendar/mainwindow.cpp +++ /dev/null @@ -1,226 +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$ -** -****************************************************************************/ - -#include "mainwindow.h" - -#include <QtWidgets> - -//! [0] -MainWindow::MainWindow() -{ - selectedDate = QDate::currentDate(); - fontSize = 10; - - QWidget *centralWidget = new QWidget; -//! [0] - -//! [1] - QLabel *dateLabel = new QLabel(tr("Date:")); - QComboBox *monthCombo = new QComboBox; - - for (int month = 1; month <= 12; ++month) - monthCombo->addItem(QLocale::system().monthName(month)); - - QDateTimeEdit *yearEdit = new QDateTimeEdit; - yearEdit->setDisplayFormat("yyyy"); - yearEdit->setDateRange(QDate(1753, 1, 1), QDate(8000, 1, 1)); -//! [1] - - monthCombo->setCurrentIndex(selectedDate.month() - 1); - yearEdit->setDate(selectedDate); - -//! [2] - QLabel *fontSizeLabel = new QLabel(tr("Font size:")); - QSpinBox *fontSizeSpinBox = new QSpinBox; - fontSizeSpinBox->setRange(1, 64); - - editor = new QTextBrowser; - insertCalendar(); -//! [2] - -//! [3] - connect(monthCombo, &QComboBox::activated, - this, &MainWindow::setMonth); - connect(yearEdit, &QDateTimeEdit::dateChanged, - this, &MainWindow::setYear); - connect(fontSizeSpinBox, &QSpinBox::valueChanged, - this, &MainWindow::setFontSize); -//! [3] - - fontSizeSpinBox->setValue(10); - -//! [4] - QHBoxLayout *controlsLayout = new QHBoxLayout; - controlsLayout->addWidget(dateLabel); - controlsLayout->addWidget(monthCombo); - controlsLayout->addWidget(yearEdit); - controlsLayout->addSpacing(24); - controlsLayout->addWidget(fontSizeLabel); - controlsLayout->addWidget(fontSizeSpinBox); - controlsLayout->addStretch(1); - - QVBoxLayout *centralLayout = new QVBoxLayout; - centralLayout->addLayout(controlsLayout); - centralLayout->addWidget(editor, 1); - centralWidget->setLayout(centralLayout); - - setCentralWidget(centralWidget); -//! [4] -} - -//! [5] -void MainWindow::insertCalendar() -{ - editor->clear(); - QTextCursor cursor = editor->textCursor(); - cursor.beginEditBlock(); - - QDate date(selectedDate.year(), selectedDate.month(), 1); -//! [5] - -//! [6] - QTextTableFormat tableFormat; - tableFormat.setAlignment(Qt::AlignHCenter); - tableFormat.setBackground(QColor("#e0e0e0")); - tableFormat.setCellPadding(2); - tableFormat.setCellSpacing(4); -//! [6] //! [7] - QList<QTextLength> constraints; - constraints << QTextLength(QTextLength::PercentageLength, 14) - << QTextLength(QTextLength::PercentageLength, 14) - << QTextLength(QTextLength::PercentageLength, 14) - << QTextLength(QTextLength::PercentageLength, 14) - << QTextLength(QTextLength::PercentageLength, 14) - << QTextLength(QTextLength::PercentageLength, 14) - << QTextLength(QTextLength::PercentageLength, 14); - tableFormat.setColumnWidthConstraints(constraints); -//! [7] - -//! [8] - QTextTable *table = cursor.insertTable(1, 7, tableFormat); -//! [8] - -//! [9] - QTextFrame *frame = cursor.currentFrame(); - QTextFrameFormat frameFormat = frame->frameFormat(); - frameFormat.setBorder(1); - frame->setFrameFormat(frameFormat); -//! [9] - -//! [10] - QTextCharFormat format = cursor.charFormat(); - format.setFontPointSize(fontSize); - - QTextCharFormat boldFormat = format; - boldFormat.setFontWeight(QFont::Bold); - - QTextCharFormat highlightedFormat = boldFormat; - highlightedFormat.setBackground(Qt::yellow); -//! [10] - -//! [11] - for (int weekDay = 1; weekDay <= 7; ++weekDay) { - QTextTableCell cell = table->cellAt(0, weekDay-1); -//! [11] //! [12] - QTextCursor cellCursor = cell.firstCursorPosition(); - cellCursor.insertText(QLocale::system().dayName(weekDay), boldFormat); - } -//! [12] - -//! [13] - table->insertRows(table->rows(), 1); -//! [13] - - while (date.month() == selectedDate.month()) { - int weekDay = date.dayOfWeek(); - QTextTableCell cell = table->cellAt(table->rows()-1, weekDay-1); - QTextCursor cellCursor = cell.firstCursorPosition(); - - if (date == QDate::currentDate()) - cellCursor.insertText(QString("%1").arg(date.day()), highlightedFormat); - else - cellCursor.insertText(QString("%1").arg(date.day()), format); - - date = date.addDays(1); - if (weekDay == 7 && date.month() == selectedDate.month()) - table->insertRows(table->rows(), 1); - } - - cursor.endEditBlock(); -//! [14] - setWindowTitle(tr("Calendar for %1 %2" - ).arg(QLocale::system().monthName(selectedDate.month()) - ).arg(selectedDate.year())); -} -//! [14] - -//! [15] -void MainWindow::setFontSize(int size) -{ - fontSize = size; - insertCalendar(); -} -//! [15] - -//! [16] -void MainWindow::setMonth(int month) -{ - selectedDate = QDate(selectedDate.year(), month + 1, selectedDate.day()); - insertCalendar(); -} -//! [16] - -//! [17] -void MainWindow::setYear(QDate date) -{ - selectedDate = QDate(date.year(), selectedDate.month(), selectedDate.day()); - insertCalendar(); -} -//! [17] |