summaryrefslogtreecommitdiffstats
path: root/src/gui/doc/snippets/textdocument-blocks/mainwindow.cpp
blob: a55336b01ca60a8c26f18dc74a9a18478f0dddca (plain)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
// Copyright (C) 2016 The Qt Company Ltd.// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause#include <QtWidgets>#include"mainwindow.h"MainWindow::MainWindow(){ QMenu *fileMenu =newQMenu(tr("&File")); QAction *saveAction = fileMenu->addAction(tr("&Save...")); saveAction->setShortcut(tr("Ctrl+S")); QAction *quitAction = fileMenu->addAction(tr("E&xit")); quitAction->setShortcut(tr("Ctrl+Q")); QMenu *insertMenu =newQMenu(tr("&Insert")); QAction *calendarAction = insertMenu->addAction(tr("&Calendar")); calendarAction->setShortcut(tr("Ctrl+I"));menuBar()->addMenu(fileMenu);menuBar()->addMenu(insertMenu);//! [0] editor =newQTextEdit(this);//! [0]connect(saveAction, &QAction::triggered,this, &MainWindow::saveFile);connect(quitAction, &QAction::triggered,this, &MainWindow::close);connect(calendarAction, &QAction::triggered,this, &MainWindow::insertCalendar);setCentralWidget(editor);setWindowTitle(tr("Text Document Writer"));}voidMainWindow::saveFile(){ QString fileName =QFileDialog::getSaveFileName(this,tr("Save document as:"),"",tr("XML (*.xml)"));if(!fileName.isEmpty()) {if(writeXml(fileName))setWindowTitle(fileName);elseQMessageBox::warning(this,tr("Warning"),tr("Failed to save the document."),QMessageBox::Cancel,QMessageBox::NoButton);}}voidMainWindow::insertCalendar(){//! [1] QTextCursor cursor(editor->textCursor()); cursor.movePosition(QTextCursor::Start); QTextCharFormat format(cursor.charFormat()); format.setFontFamily("Courier"); QTextCharFormat boldFormat = format; boldFormat.setFontWeight(QFont::Bold); cursor.insertBlock(); cursor.insertText(" ", boldFormat); QDate date =QDate::currentDate();int year = date.year(), month = date.month();for(int weekDay =1; weekDay <=7; ++weekDay) { cursor.insertText(QString("%1 ").arg(QLocale::system().dayName(weekDay),3), boldFormat);} cursor.insertBlock(); cursor.insertText(" ", format);for(int column =1; column <QDate(year, month,1).dayOfWeek(); ++column) { cursor.insertText(" ", format);}for(int day =1; day <= date.daysInMonth(); ++day) {//! [1] //! [2]int weekDay =QDate(year, month, day).dayOfWeek();if(QDate(year, month, day) == date) cursor.insertText(QString("%1 ").arg(day,3), boldFormat);else cursor.insertText(QString("%1 ").arg(day,3), format);if(weekDay ==7) { cursor.insertBlock(); cursor.insertText(" ", format);}//! [2] //! [3]}//! [3]}
close