瀏覽代碼

open file in current window

zhuzhuyule 8 年之前
父節點
當前提交
cec8056953
共有 2 個文件被更改,包括 32 次插入5 次删除
  1. 22 5
      app/moe-action.js
  2. 10 0
      views/main/moe-popmessage.js

+ 22 - 5
app/moe-action.js

@@ -71,7 +71,6 @@ class MoeditorAction {
     }
 
     static open() {
-        console.log('open',lastDir);
         const files = dialog.showOpenDialog(
             {
                 defaultPath: lastDir,
@@ -88,10 +87,28 @@ class MoeditorAction {
         //     app.addRecentDocument(file);
         //     moeApp.open(file);
         // }
-        if (files[0]) {
-            lastDir = path.dirname(files[0]);
-            app.addRecentDocument(file);
-            moeApp.open(file);
+        let filename = files[0];
+        if (filename) {
+            let w = require('electron').BrowserWindow.getFocusedWindow();
+            lastDir = path.dirname(filename);
+
+            if (typeof w.moeditorWindow == 'undefined' || w.moeditorWindow.changed ) {
+                app.addRecentDocument(filename);
+                moeApp.open(filename);
+            } else {
+                try {
+                    w.moeditorWindow.fileName = filename;
+                    w.moeditorWindow.directory = lastDir;
+                    w.moeditorWindow.fileContent = w.moeditorWindow.content = MoeditorFile.read(filename).toString();
+                    w.moeditorWindow.changed = false;
+                    w.moeditorWindow.window.setDocumentEdited(false);
+                    w.moeditorWindow.window.setRepresentedFilename(w.moeditorWindow.fileName);
+                    w.moeditorWindow.window.webContents.send('refresh-editor', {});
+                    moeApp.addRecentDocument(filename);
+                } catch (e) {
+
+                }
+            }
         }
     }
 

+ 10 - 0
views/main/moe-popmessage.js

@@ -37,4 +37,14 @@ document.addEventListener('DOMContentLoaded', () => {
             }, 1000);
         }
     });
+
+    ipcRenderer.on('refresh-editor', function () {
+        let w  = window.w;
+        if (w.fileName !== '') {
+            document.getElementsByTagName('title')[0].innerText = 'Moeditor - ' + require('path').basename(w.fileName);
+        }
+        document.querySelector('#editor textarea').innerText = w.content;
+        window.editor.setValue(w.content);
+        window.updatePreview(true);
+    })
 });