From 871f1020f411706decacc5e2501531c4678f80b2 Mon Sep 17 00:00:00 2001 From: Kevin Krammer Date: Wed, 7 Nov 2012 20:58:12 +0100 Subject: [PATCH] Implement file open --- examples/text-editor/editor.cpp | 16 ++++++++++++++++ examples/text-editor/editor.h | 1 + examples/text-editor/main.qml | 10 ++++++++++ 3 files changed, 27 insertions(+), 0 deletions(-) diff --git a/examples/text-editor/editor.cpp b/examples/text-editor/editor.cpp index bc31e74..9307d62 100644 --- a/examples/text-editor/editor.cpp +++ b/examples/text-editor/editor.cpp @@ -41,6 +41,22 @@ void Editor::newDocument() m_document->setModified(false); } +void Editor::open(const QString &fileName) +{ + if (fileName.isEmpty()) + return; + + QFile file(fileName); + if (!file.open(QIODevice::ReadOnly)) + return; + + QTextStream stream(&file); + m_document->setPlainText(stream.readAll()); + m_document->setModified(false); + + setFileName(fileName); +} + void Editor::save() { if (m_fileName.isEmpty()) { diff --git a/examples/text-editor/editor.h b/examples/text-editor/editor.h index e774435..7342608 100644 --- a/examples/text-editor/editor.h +++ b/examples/text-editor/editor.h @@ -26,6 +26,7 @@ class Editor : public QObject public Q_SLOTS: void newDocument(); + void open(const QString &fileName); void save(); private: diff --git a/examples/text-editor/main.qml b/examples/text-editor/main.qml index d84f474..4560a2b 100644 --- a/examples/text-editor/main.qml +++ b/examples/text-editor/main.qml @@ -19,6 +19,16 @@ MainWindow { } Action { + text: qsTr("Open") + onTriggered: { + FileDialog.nameFilters = [ qsTr("Plain text files (*.txt)"), qsTr("All files (*.*)") ] + var fileName = FileDialog.getOpenFileName() + if (fileName.length > 0) + _editor.open(fileName); + } + } + + Action { text: qsTr("Save") onTriggered: _editor.save() } -- 1.7.2.5