diff options
Diffstat (limited to 'examples/widgets/mainwindows/application')
-rw-r--r-- | examples/widgets/mainwindows/application/CMakeLists.txt | 58 | ||||
-rw-r--r-- | examples/widgets/mainwindows/application/application.pro | 13 | ||||
-rw-r--r-- | examples/widgets/mainwindows/application/application.qrc | 10 | ||||
-rw-r--r-- | examples/widgets/mainwindows/application/images/copy.png | bin | 1338 -> 0 bytes | |||
-rw-r--r-- | examples/widgets/mainwindows/application/images/cut.png | bin | 1323 -> 0 bytes | |||
-rw-r--r-- | examples/widgets/mainwindows/application/images/new.png | bin | 852 -> 0 bytes | |||
-rw-r--r-- | examples/widgets/mainwindows/application/images/open.png | bin | 2073 -> 0 bytes | |||
-rw-r--r-- | examples/widgets/mainwindows/application/images/paste.png | bin | 1645 -> 0 bytes | |||
-rw-r--r-- | examples/widgets/mainwindows/application/images/save.png | bin | 2699 -> 0 bytes | |||
-rw-r--r-- | examples/widgets/mainwindows/application/main.cpp | 79 | ||||
-rw-r--r-- | examples/widgets/mainwindows/application/mainwindow.cpp | 417 | ||||
-rw-r--r-- | examples/widgets/mainwindows/application/mainwindow.h | 102 |
12 files changed, 0 insertions, 679 deletions
diff --git a/examples/widgets/mainwindows/application/CMakeLists.txt b/examples/widgets/mainwindows/application/CMakeLists.txt deleted file mode 100644 index 53354d0460..0000000000 --- a/examples/widgets/mainwindows/application/CMakeLists.txt +++ /dev/null @@ -1,58 +0,0 @@ -# Generated from application.pro. - -cmake_minimum_required(VERSION 3.14) -project(application LANGUAGES CXX) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/mainwindows/application") - -find_package(Qt6 COMPONENTS Core) -find_package(Qt6 COMPONENTS Gui) -find_package(Qt6 COMPONENTS Widgets) - -qt_add_executable(application - main.cpp - mainwindow.cpp mainwindow.h -) -set_target_properties(application PROPERTIES - WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE TRUE -) -target_link_libraries(application PUBLIC - Qt::Core - Qt::Gui - Qt::Widgets -) - - -# Resources: -set(application_resource_files - "images/copy.png" - "images/cut.png" - "images/new.png" - "images/open.png" - "images/paste.png" - "images/save.png" -) - -qt6_add_resources(application "application" - PREFIX - "/" - FILES - ${application_resource_files} -) - -install(TARGETS application - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) diff --git a/examples/widgets/mainwindows/application/application.pro b/examples/widgets/mainwindows/application/application.pro deleted file mode 100644 index e55655a934..0000000000 --- a/examples/widgets/mainwindows/application/application.pro +++ /dev/null @@ -1,13 +0,0 @@ -QT += widgets -requires(qtConfig(filedialog)) - -HEADERS = mainwindow.h -SOURCES = main.cpp \ - mainwindow.cpp -#! [0] -RESOURCES = application.qrc -#! [0] - -# install -target.path = $$[QT_INSTALL_EXAMPLES]/widgets/mainwindows/application -INSTALLS += target diff --git a/examples/widgets/mainwindows/application/application.qrc b/examples/widgets/mainwindows/application/application.qrc deleted file mode 100644 index 0a776fab4d..0000000000 --- a/examples/widgets/mainwindows/application/application.qrc +++ /dev/null @@ -1,10 +0,0 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource> - <file>images/copy.png</file> - <file>images/cut.png</file> - <file>images/new.png</file> - <file>images/open.png</file> - <file>images/paste.png</file> - <file>images/save.png</file> -</qresource> -</RCC> diff --git a/examples/widgets/mainwindows/application/images/copy.png b/examples/widgets/mainwindows/application/images/copy.png Binary files differdeleted file mode 100644 index 2aeb28288f..0000000000 --- a/examples/widgets/mainwindows/application/images/copy.png +++ /dev/null diff --git a/examples/widgets/mainwindows/application/images/cut.png b/examples/widgets/mainwindows/application/images/cut.png Binary files differdeleted file mode 100644 index 54638e9386..0000000000 --- a/examples/widgets/mainwindows/application/images/cut.png +++ /dev/null diff --git a/examples/widgets/mainwindows/application/images/new.png b/examples/widgets/mainwindows/application/images/new.png Binary files differdeleted file mode 100644 index 12131b0100..0000000000 --- a/examples/widgets/mainwindows/application/images/new.png +++ /dev/null diff --git a/examples/widgets/mainwindows/application/images/open.png b/examples/widgets/mainwindows/application/images/open.png Binary files differdeleted file mode 100644 index 45fa2883a7..0000000000 --- a/examples/widgets/mainwindows/application/images/open.png +++ /dev/null diff --git a/examples/widgets/mainwindows/application/images/paste.png b/examples/widgets/mainwindows/application/images/paste.png Binary files differdeleted file mode 100644 index c14425cad1..0000000000 --- a/examples/widgets/mainwindows/application/images/paste.png +++ /dev/null diff --git a/examples/widgets/mainwindows/application/images/save.png b/examples/widgets/mainwindows/application/images/save.png Binary files differdeleted file mode 100644 index e65a29d5f1..0000000000 --- a/examples/widgets/mainwindows/application/images/save.png +++ /dev/null diff --git a/examples/widgets/mainwindows/application/main.cpp b/examples/widgets/mainwindows/application/main.cpp deleted file mode 100644 index 78db7134a3..0000000000 --- a/examples/widgets/mainwindows/application/main.cpp +++ /dev/null @@ -1,79 +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 <QApplication> -#include <QCommandLineParser> -#include <QCommandLineOption> - -#include "mainwindow.h" - -int main(int argc, char *argv[]) -{ - Q_INIT_RESOURCE(application); - - QApplication app(argc, argv); - QCoreApplication::setOrganizationName("QtProject"); - QCoreApplication::setApplicationName("Application Example"); - QCoreApplication::setApplicationVersion(QT_VERSION_STR); - QCommandLineParser parser; - parser.setApplicationDescription(QCoreApplication::applicationName()); - parser.addHelpOption(); - parser.addVersionOption(); - parser.addPositionalArgument("file", "The file to open."); - parser.process(app); - - MainWindow mainWin; - if (!parser.positionalArguments().isEmpty()) - mainWin.loadFile(parser.positionalArguments().first()); - mainWin.show(); - return app.exec(); -} -//! [0] diff --git a/examples/widgets/mainwindows/application/mainwindow.cpp b/examples/widgets/mainwindows/application/mainwindow.cpp deleted file mode 100644 index 9c0910ae63..0000000000 --- a/examples/widgets/mainwindows/application/mainwindow.cpp +++ /dev/null @@ -1,417 +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> - -#include "mainwindow.h" -//! [0] - -//! [1] -MainWindow::MainWindow() - : textEdit(new QPlainTextEdit) -//! [1] //! [2] -{ - setCentralWidget(textEdit); - - createActions(); - createStatusBar(); - - readSettings(); - - connect(textEdit->document(), &QTextDocument::contentsChanged, - this, &MainWindow::documentWasModified); - -#ifndef QT_NO_SESSIONMANAGER - connect(qApp, &QGuiApplication::commitDataRequest, - this, &MainWindow::commitData); -#endif - - setCurrentFile(QString()); - setUnifiedTitleAndToolBarOnMac(true); -} -//! [2] - -//! [3] -void MainWindow::closeEvent(QCloseEvent *event) -//! [3] //! [4] -{ - if (maybeSave()) { - writeSettings(); - event->accept(); - } else { - event->ignore(); - } -} -//! [4] - -//! [5] -void MainWindow::newFile() -//! [5] //! [6] -{ - if (maybeSave()) { - textEdit->clear(); - setCurrentFile(QString()); - } -} -//! [6] - -//! [7] -void MainWindow::open() -//! [7] //! [8] -{ - if (maybeSave()) { - QString fileName = QFileDialog::getOpenFileName(this); - if (!fileName.isEmpty()) - loadFile(fileName); - } -} -//! [8] - -//! [9] -bool MainWindow::save() -//! [9] //! [10] -{ - if (curFile.isEmpty()) { - return saveAs(); - } else { - return saveFile(curFile); - } -} -//! [10] - -//! [11] -bool MainWindow::saveAs() -//! [11] //! [12] -{ - QFileDialog dialog(this); - dialog.setWindowModality(Qt::WindowModal); - dialog.setAcceptMode(QFileDialog::AcceptSave); - if (dialog.exec() != QDialog::Accepted) - return false; - return saveFile(dialog.selectedFiles().first()); -} -//! [12] - -//! [13] -void MainWindow::about() -//! [13] //! [14] -{ - QMessageBox::about(this, tr("About Application"), - tr("The <b>Application</b> example demonstrates how to " - "write modern GUI applications using Qt, with a menu bar, " - "toolbars, and a status bar.")); -} -//! [14] - -//! [15] -void MainWindow::documentWasModified() -//! [15] //! [16] -{ - setWindowModified(textEdit->document()->isModified()); -} -//! [16] - -//! [17] -void MainWindow::createActions() -//! [17] //! [18] -{ - - QMenu *fileMenu = menuBar()->addMenu(tr("&File")); - QToolBar *fileToolBar = addToolBar(tr("File")); - const QIcon newIcon = QIcon::fromTheme("document-new", QIcon(":/images/new.png")); - QAction *newAct = new QAction(newIcon, tr("&New"), this); - newAct->setShortcuts(QKeySequence::New); - newAct->setStatusTip(tr("Create a new file")); - connect(newAct, &QAction::triggered, this, &MainWindow::newFile); - fileMenu->addAction(newAct); - fileToolBar->addAction(newAct); - -//! [19] - const QIcon openIcon = QIcon::fromTheme("document-open", QIcon(":/images/open.png")); - QAction *openAct = new QAction(openIcon, tr("&Open..."), this); - openAct->setShortcuts(QKeySequence::Open); - openAct->setStatusTip(tr("Open an existing file")); - connect(openAct, &QAction::triggered, this, &MainWindow::open); - fileMenu->addAction(openAct); - fileToolBar->addAction(openAct); -//! [18] //! [19] - - 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 document to disk")); - connect(saveAct, &QAction::triggered, this, &MainWindow::save); - fileMenu->addAction(saveAct); - fileToolBar->addAction(saveAct); - - const QIcon saveAsIcon = QIcon::fromTheme("document-save-as"); - QAction *saveAsAct = fileMenu->addAction(saveAsIcon, tr("Save &As..."), this, &MainWindow::saveAs); - saveAsAct->setShortcuts(QKeySequence::SaveAs); - saveAsAct->setStatusTip(tr("Save the document under a new name")); - -//! [20] - - fileMenu->addSeparator(); - - const QIcon exitIcon = QIcon::fromTheme("application-exit"); - QAction *exitAct = fileMenu->addAction(exitIcon, tr("E&xit"), this, &QWidget::close); - exitAct->setShortcuts(QKeySequence::Quit); -//! [20] - exitAct->setStatusTip(tr("Exit the application")); - -//! [21] - QMenu *editMenu = menuBar()->addMenu(tr("&Edit")); - QToolBar *editToolBar = addToolBar(tr("Edit")); -//! -#ifndef QT_NO_CLIPBOARD - const QIcon cutIcon = QIcon::fromTheme("edit-cut", QIcon(":/images/cut.png")); - QAction *cutAct = new QAction(cutIcon, tr("Cu&t"), this); -//! [21] - cutAct->setShortcuts(QKeySequence::Cut); - cutAct->setStatusTip(tr("Cut the current selection's contents to the " - "clipboard")); - connect(cutAct, &QAction::triggered, textEdit, &QPlainTextEdit::cut); - editMenu->addAction(cutAct); - editToolBar->addAction(cutAct); - - const QIcon copyIcon = QIcon::fromTheme("edit-copy", QIcon(":/images/copy.png")); - QAction *copyAct = new QAction(copyIcon, tr("&Copy"), this); - copyAct->setShortcuts(QKeySequence::Copy); - copyAct->setStatusTip(tr("Copy the current selection's contents to the " - "clipboard")); - connect(copyAct, &QAction::triggered, textEdit, &QPlainTextEdit::copy); - editMenu->addAction(copyAct); - editToolBar->addAction(copyAct); - - const QIcon pasteIcon = QIcon::fromTheme("edit-paste", QIcon(":/images/paste.png")); - QAction *pasteAct = new QAction(pasteIcon, tr("&Paste"), this); - pasteAct->setShortcuts(QKeySequence::Paste); - pasteAct->setStatusTip(tr("Paste the clipboard's contents into the current " - "selection")); - connect(pasteAct, &QAction::triggered, textEdit, &QPlainTextEdit::paste); - editMenu->addAction(pasteAct); - editToolBar->addAction(pasteAct); - - menuBar()->addSeparator(); - -#endif // !QT_NO_CLIPBOARD - - QMenu *helpMenu = menuBar()->addMenu(tr("&Help")); - QAction *aboutAct = helpMenu->addAction(tr("&About"), this, &MainWindow::about); - aboutAct->setStatusTip(tr("Show the application's About box")); - -//! [22] - - QAction *aboutQtAct = helpMenu->addAction(tr("About &Qt"), qApp, &QApplication::aboutQt); - aboutQtAct->setStatusTip(tr("Show the Qt library's About box")); -//! [22] - -//! [23] -#ifndef QT_NO_CLIPBOARD - cutAct->setEnabled(false); -//! [23] //! [24] - copyAct->setEnabled(false); - connect(textEdit, &QPlainTextEdit::copyAvailable, cutAct, &QAction::setEnabled); - connect(textEdit, &QPlainTextEdit::copyAvailable, copyAct, &QAction::setEnabled); -#endif // !QT_NO_CLIPBOARD -} -//! [24] - -//! [32] -void MainWindow::createStatusBar() -//! [32] //! [33] -{ - statusBar()->showMessage(tr("Ready")); -} -//! [33] - -//! [34] //! [35] -void MainWindow::readSettings() -//! [34] //! [36] -{ - QSettings settings(QCoreApplication::organizationName(), QCoreApplication::applicationName()); - const QByteArray geometry = settings.value("geometry", QByteArray()).toByteArray(); - if (geometry.isEmpty()) { - const QRect availableGeometry = screen()->availableGeometry(); - resize(availableGeometry.width() / 3, availableGeometry.height() / 2); - move((availableGeometry.width() - width()) / 2, - (availableGeometry.height() - height()) / 2); - } else { - restoreGeometry(geometry); - } -} -//! [35] //! [36] - -//! [37] //! [38] -void MainWindow::writeSettings() -//! [37] //! [39] -{ - QSettings settings(QCoreApplication::organizationName(), QCoreApplication::applicationName()); - settings.setValue("geometry", saveGeometry()); -} -//! [38] //! [39] - -//! [40] -bool MainWindow::maybeSave() -//! [40] //! [41] -{ - if (!textEdit->document()->isModified()) - return true; - const QMessageBox::StandardButton ret - = QMessageBox::warning(this, tr("Application"), - tr("The document has been modified.\n" - "Do you want to save your changes?"), - QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel); - switch (ret) { - case QMessageBox::Save: - return save(); - case QMessageBox::Cancel: - return false; - default: - break; - } - return true; -} -//! [41] - -//! [42] -void MainWindow::loadFile(const QString &fileName) -//! [42] //! [43] -{ - QFile file(fileName); - if (!file.open(QFile::ReadOnly | QFile::Text)) { - QMessageBox::warning(this, tr("Application"), - tr("Cannot read file %1:\n%2.") - .arg(QDir::toNativeSeparators(fileName), file.errorString())); - return; - } - - QTextStream in(&file); -#ifndef QT_NO_CURSOR - QGuiApplication::setOverrideCursor(Qt::WaitCursor); -#endif - textEdit->setPlainText(in.readAll()); -#ifndef QT_NO_CURSOR - QGuiApplication::restoreOverrideCursor(); -#endif - - setCurrentFile(fileName); - statusBar()->showMessage(tr("File loaded"), 2000); -} -//! [43] - -//! [44] -bool MainWindow::saveFile(const QString &fileName) -//! [44] //! [45] -{ - QString errorMessage; - - QGuiApplication::setOverrideCursor(Qt::WaitCursor); - QSaveFile file(fileName); - if (file.open(QFile::WriteOnly | QFile::Text)) { - QTextStream out(&file); - out << textEdit->toPlainText(); - if (!file.commit()) { - errorMessage = tr("Cannot write file %1:\n%2.") - .arg(QDir::toNativeSeparators(fileName), file.errorString()); - } - } else { - errorMessage = tr("Cannot open file %1 for writing:\n%2.") - .arg(QDir::toNativeSeparators(fileName), file.errorString()); - } - QGuiApplication::restoreOverrideCursor(); - - if (!errorMessage.isEmpty()) { - QMessageBox::warning(this, tr("Application"), errorMessage); - return false; - } - - setCurrentFile(fileName); - statusBar()->showMessage(tr("File saved"), 2000); - return true; -} -//! [45] - -//! [46] -void MainWindow::setCurrentFile(const QString &fileName) -//! [46] //! [47] -{ - curFile = fileName; - textEdit->document()->setModified(false); - setWindowModified(false); - - QString shownName = curFile; - if (curFile.isEmpty()) - shownName = "untitled.txt"; - setWindowFilePath(shownName); -} -//! [47] - -//! [48] -QString MainWindow::strippedName(const QString &fullFileName) -//! [48] //! [49] -{ - return QFileInfo(fullFileName).fileName(); -} -//! [49] -#ifndef QT_NO_SESSIONMANAGER -void MainWindow::commitData(QSessionManager &manager) -{ - if (manager.allowsInteraction()) { - if (!maybeSave()) - manager.cancel(); - } else { - // Non-interactive: save without asking - if (textEdit->document()->isModified()) - save(); - } -} -#endif diff --git a/examples/widgets/mainwindows/application/mainwindow.h b/examples/widgets/mainwindows/application/mainwindow.h deleted file mode 100644 index 1300247ce7..0000000000 --- a/examples/widgets/mainwindows/application/mainwindow.h +++ /dev/null @@ -1,102 +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$ -** -****************************************************************************/ - -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include <QMainWindow> - -QT_BEGIN_NAMESPACE -class QAction; -class QMenu; -class QPlainTextEdit; -class QSessionManager; -QT_END_NAMESPACE - -//! [0] -class MainWindow : public QMainWindow -{ - Q_OBJECT - -public: - MainWindow(); - - void loadFile(const QString &fileName); - -protected: - void closeEvent(QCloseEvent *event) override; - -private slots: - void newFile(); - void open(); - bool save(); - bool saveAs(); - void about(); - void documentWasModified(); -#ifndef QT_NO_SESSIONMANAGER - void commitData(QSessionManager &); -#endif - -private: - void createActions(); - void createStatusBar(); - void readSettings(); - void writeSettings(); - bool maybeSave(); - bool saveFile(const QString &fileName); - void setCurrentFile(const QString &fileName); - QString strippedName(const QString &fullFileName); - - QPlainTextEdit *textEdit; - QString curFile; -}; -//! [0] - -#endif |