From: Kevin Krammer Date: Wed, 7 Nov 2012 19:58:12 +0000 (+0100) Subject: Implement file open X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=871f1020f411706decacc5e2501531c4678f80b2;p=web%2Fkonrad%2FDeclarativeWidgets.git Implement file open --- 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() }