diff options
Diffstat (limited to 'examples/tutorials/gettingStarted/gsQt/part5/main.cpp')
-rwxr-xr-x | examples/tutorials/gettingStarted/gsQt/part5/main.cpp | 117 |
1 files changed, 73 insertions, 44 deletions
diff --git a/examples/tutorials/gettingStarted/gsQt/part5/main.cpp b/examples/tutorials/gettingStarted/gsQt/part5/main.cpp index a97bab8..4a6257d 100755 --- a/examples/tutorials/gettingStarted/gsQt/part5/main.cpp +++ b/examples/tutorials/gettingStarted/gsQt/part5/main.cpp @@ -1,3 +1,42 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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 <QtGui> @@ -9,45 +48,32 @@ public: Notepad(); private slots: - void newDocument(); - void load(); + void open(); void save(); - void documentChanged(int index); - private: QTextEdit *textEdit; - QAction *newDocumentAction; - QAction *loadAction; + QAction *openAction; QAction *saveAction; QAction *exitAction; QMenu *fileMenu; - - QDockWidget *dockWidget; - QListWidget *listWidget; - - QStringList documents; - int documentCount; }; Notepad::Notepad() { - newDocumentAction = new QAction(tr("&New"), this); - loadAction = new QAction(tr("&Load"), this); + openAction = new QAction(tr("&Load"), this); saveAction = new QAction(tr("&Save"), this); exitAction = new QAction(tr("E&xit"), this); - connect(newDocumentAction, SIGNAL(triggered()), this, SLOT(newDocument())); - connect(loadAction, SIGNAL(triggered()), this, SLOT(load())); + connect(openAction, SIGNAL(triggered()), this, SLOT(open())); connect(saveAction, SIGNAL(triggered()), this, SLOT(save())); connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit())); fileMenu = menuBar()->addMenu(tr("&File")); - fileMenu->addAction(newDocumentAction); - fileMenu->addAction(loadAction); + fileMenu->addAction(openAction); fileMenu->addAction(saveAction); fileMenu->addSeparator(); fileMenu->addAction(exitAction); @@ -55,40 +81,43 @@ Notepad::Notepad() textEdit = new QTextEdit; setCentralWidget(textEdit); - listWidget = new QListWidget; - - connect(listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(documentChanged(int))); - - dockWidget = new QDockWidget; - dockWidget->setWidget(listWidget); - - addDockWidget(Qt::LeftDockWidgetArea, dockWidget); - - documentCount = 0; - newDocument(); - setWindowTitle(tr("Notepad")); } -void Notepad::documentChanged(int index) -{ - -} - -void Notepad::newDocument() +void Notepad::open() { - listWidget->addItem(tr("Document %1").arg(documentCount++)); - documents.append(""); -} - -void Notepad::load() -{ - + QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", + tr("Text Files (*.txt);;C++ Files (*.cpp *.h)")); + + if (fileName != "") { + QFile file(fileName); + if (!file.open(QIODevice::ReadOnly)) { + QMessageBox::critical(this, tr("Error"), tr("Could not open file")); + return; + } + QTextStream in(&file); + textEdit->setText(in.readAll()); + file.close(); + } } void Notepad::save() { + QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), "", + tr("Text Files (*.txt);;C++ Files (*.cpp *.h)")); + + if (fileName != "") { + QFile file(fileName); + if (!file.open(QIODevice::WriteOnly)) { + // error message + } else { + QTextStream stream(&file); + stream << textEdit->toPlainText(); + stream.flush(); + file.close(); + } + } } int main(int argv, char **args) @@ -99,7 +128,7 @@ int main(int argv, char **args) notepad.show(); return app.exec(); -}; +} #include "main.moc" |