Implement file open
authorKevin Krammer <kevin.krammer@kdab.com>
Wed, 7 Nov 2012 19:58:12 +0000 (20:58 +0100)
committerKevin Krammer <kevin.krammer@kdab.com>
Wed, 7 Nov 2012 19:58:12 +0000 (20:58 +0100)
examples/text-editor/editor.cpp
examples/text-editor/editor.h
examples/text-editor/main.qml

index bc31e74..9307d62 100644 (file)
@@ -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()) {
index e774435..7342608 100644 (file)
@@ -26,6 +26,7 @@ class Editor : public QObject
 
   public Q_SLOTS:
     void newDocument();
+    void open(const QString &fileName);
     void save();
 
   private:
index d84f474..4560a2b 100644 (file)
@@ -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()
       }