Bläddra i källkod

1.add shortcuts
2.update vision
3.fix open file in current window

zhuzhuyule 8 år sedan
förälder
incheckning
35c3d79439
7 ändrade filer med 72 tillägg och 37 borttagningar
  1. 1 1
      app/moe-action.js
  2. 26 7
      app/moe-app.js
  3. 13 13
      app/moe-menu.js
  4. 1 1
      package.json
  5. 8 9
      views/main/index.html
  6. 21 5
      views/main/moe-mode.js
  7. 2 1
      views/moe-localize.js

+ 1 - 1
app/moe-action.js

@@ -80,7 +80,7 @@ class MoeditorAction {
                 MoeditorFile.write(fileName, content);
                 if (fs.existsSync(fileName)) {
                     let w = require('electron').BrowserWindow.getFocusedWindow();
-                    if (typeof w.moeditorWindow == 'undefined' || w.moeditorWindow.changed) {
+                    if (typeof w.moeditorWindow == 'undefined' || w.moeditorWindow.changed || w.moeditorWindow.content) {
                         app.addRecentDocument(fileName);
                         moeApp.open(fileName);
                     } else {

+ 26 - 7
app/moe-app.js

@@ -144,34 +144,53 @@ class MoeditorApplication {
     }
 
     registerShortcuts() {
-        shortcut.register('Ctrl + N', () => {
+        shortcut.register('CmdOrCtrl + N', () => {
             MoeditorAction.openNew();
         });
 
-        shortcut.register('Ctrl + O', () => {
+        shortcut.register('CmdOrCtrl + H', () => {
+            MoeditorAction.openNewHexo();
+        });
+
+        shortcut.register('CmdOrCtrl + O', () => {
             MoeditorAction.open();
         });
 
-        shortcut.register('Ctrl + S', () => {
+        shortcut.register('CmdOrCtrl + S', () => {
             MoeditorAction.save();
         });
 
-        shortcut.register('Ctrl + Shift + S', () => {
+        shortcut.register('CmdOrCtrl + Shift + S', () => {
             MoeditorAction.saveAs();
         });
 
-        shortcut.register('Ctrl + Shift + R', () => {
+        shortcut.register('CmdOrCtrl + R', () => {
             let w = require('electron').BrowserWindow.getFocusedWindow();
             if (w) w.webContents.send('change-edit-mode', 'read');
         });
 
-        shortcut.register('Ctrl + Shift + G', () => {
+        shortcut.register('CmdOrCtrl + W', () => {
             let w = require('electron').BrowserWindow.getFocusedWindow();
             if (w) w.webContents.send('change-edit-mode', 'write');
         });
 
+        shortcut.register('CmdOrCtrl + P', () => {
+            let w = require('electron').BrowserWindow.getFocusedWindow();
+            if (w) w.webContents.send('change-edit-mode', 'changepreview');
+        });
+
+        shortcut.register('CmdOrCtrl + Shift + P', () => {
+            let w = require('electron').BrowserWindow.getFocusedWindow();
+            if (w) w.webContents.send('change-edit-mode', 'change');
+        });
+
+        shortcut.register('CmdOrCtrl + Alt + Shift + R', () => {
+            let w = require('electron').BrowserWindow.getFocusedWindow();
+            w.reload();
+        });
+
         /*
-        shortcut.register('Ctrl + Shift + P', () => {
+        shortcut.register('CmdOrCtrl + Shift + P', () => {
             let w = require('electron').BrowserWindow.getFocusedWindow();
             if (w) w.webContents.send('change-edit-mode', 'preview');
         });

+ 13 - 13
app/moe-menu.js

@@ -24,21 +24,21 @@ module.exports = (cb) => {
             submenu: [
                 {
                     localize() { this.label = __('New'); },
-                    accelerator: 'Command + N',
+                    accelerator: 'CmdOrCtrl+N',
                     click(item, w) {
                         cb.fileNew(w);
                     }
                 },
                 {
                     localize() { this.label = __('New Post'); },
-                    accelerator: 'Command + H',
+                    accelerator: 'CmdOrCtrl+H',
                     click(item, w) {
                         cb.fileNewHexo(w);
                     }
                 },
                 {
                     localize() { this.label = __('Open') + '...'; },
-                    accelerator: 'Command + O',
+                    accelerator: 'CmdOrCtrl+O',
                     click(item, w) {
                         cb.fileOpen(w);
                     }
@@ -48,13 +48,13 @@ module.exports = (cb) => {
                 },
                 {
                     localize() { this.label = __('Save'); },
-                    accelerator: 'Command + S',
+                    accelerator: 'CmdOrCtrl+S',
                     click(item, w) {
                         cb.fileSave(w);
                     }
                 },{
                     localize() { this.label = __('Save as'); },
-                    accelerator: 'Command + Option + S',
+                    accelerator: 'CmdOrCtrl+Shift+S',
                     click(item, w) {
                         cb.fileSaveAs(w);
                     }
@@ -65,13 +65,13 @@ module.exports = (cb) => {
                     submenu: [
                         {
                             localize() { this.label = 'HTML...'; },
-                            accelerator: 'Command + Option + E',
+                            accelerator: 'CmdOrCtrl+Shift+E',
                             click(item, w) {
                                 cb.fileExportHTML(w);
                             }
                         }, {
                             localize() { this.label = 'PDF...'; },
-                            accelerator: 'Command + Option + P',
+                            accelerator: 'CmdOrCtrl+Shift+P',
                             click(item, w) {
                                 cb.fileExportPDF(w);
                             }
@@ -122,21 +122,21 @@ module.exports = (cb) => {
                     submenu: [
                         {
                             localize() { this.label = __('Read Mode'); },
-                            accelerator: 'Command + Option + R',
+                            accelerator: 'CmdOrCtrl+Shift+R',
                             click(item, focusedWindow) {
                                 if (focusedWindow) cb.modeToRead(focusedWindow);
                             }
                         },
                         {
                             localize() { this.label = __('Write Mode'); },
-                            accelerator: 'Command + Option + G',
+                            accelerator: 'CmdOrCtrl+Shift+G',
                             click(item, focusedWindow) {
                                 if (focusedWindow) cb.modeToWrite(focusedWindow);
                             }
                         },
                         {
                             localize() { this.label = __('Preview Mode'); },
-                            // accelerator: 'Command + Option + P', // It's been used for `Export PDF`.
+                            // accelerator: 'CmdOrCtrl+Shift+P', // It's been used for `Export PDF`.
                             click(item, focusedWindow) {
                                 if (focusedWindow) cb.modeToPreview(focusedWindow);
                             }
@@ -154,7 +154,7 @@ module.exports = (cb) => {
                 },
                 {
                     localize() { this.label = __('Toggle Developer Tools'); },
-                    accelerator: process.platform === 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I',
+                    accelerator: process.platform === 'darwin' ? 'Alt+CmdOrCtrl+I' : 'Ctrl+Shift+I',
                     click(item, focusedWindow) {
                         if (focusedWindow)
                         focusedWindow.webContents.toggleDevTools();
@@ -168,7 +168,7 @@ module.exports = (cb) => {
             submenu: [
                 {
                     localize() { this.label = __('Close'); },
-                    accelerator: 'CmdOrCtrl+W',
+                    // accelerator: 'CmdOrCtrl+W',
                     role: 'close'
                 },
                 {
@@ -217,7 +217,7 @@ module.exports = (cb) => {
                 },
                 {
                     localize() { this.label = __('Preference') + '...'; },
-                    accelerator: 'Command + ,',
+                    accelerator: 'CmdOrCtrl+,',
                     click() {
                         cb.settings();
                     }

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "hexoeditor",
-  "version": "1.0.1",
+  "version": "1.1.8",
   "description": "This is markdown editor for Hexo.",
   "main": "app/index.js",
   "scripts": {

+ 8 - 9
views/main/index.html

@@ -117,11 +117,11 @@
         <div id="side-menu">
             <div id="logo">HexoEditor</div>
             <ul>
-                <li data-action="new" class="l10n">New</li>
-                <li data-action="newhexo" class="l10n">New Post</li>
-                <li data-action="open" class="l10n">Open</li>
-                <li data-action="save" class="l10n">Save</li>
-                <li data-action="save-as" class="l10n">Save as</li>
+                <li data-action="new" class="l10n" title="Ctrl+N">New</li>
+                <li data-action="newhexo" class="l10n" title="Ctrl+H">New Post</li>
+                <li data-action="open" class="l10n" title="Ctrl+O">Open</li>
+                <li data-action="save" class="l10n" title="Ctrl+S">Save</li>
+                <li data-action="save-as" class="l10n" title="Ctrl+Shift+S">Save as</li>
                 <li class="break"></li>
                 <li data-action="export-as-html" class="l10n">Export as HTML</li>
                 <li data-action="export-as-pdf" class="l10n">Export as PDF</li>
@@ -191,7 +191,6 @@
                             var modeMenu = document.getElementById('popup-menu-mode');
                             var modeMenuItems = modeMenu.getElementsByTagName('li');
                             modeMenuItems[index].click();
-                            window.updatePreview(true);
                         }
                     </script>
 
@@ -199,13 +198,13 @@
                     <!--<i class="fa fa-dot-circle-o" aria-hidden="true"></i>-->
                     <!--</div>-->
 
-                    <div class="button-bottom l10n-title"  title="Write Mode" onclick="clickItem(0)">
+                    <div class="button-bottom l10n-title"  title="Write Mode" exdata="(Ctrl+W)" onclick="clickItem(0)">
                         <i class="fa fa-pencil" aria-hidden="true"></i>
                     </div>
-                    <div class="button-bottom l10n-title"  title="Preview Mode" onclick="clickItem(6)">
+                    <div class="button-bottom l10n-title"  title="Preview Mode" exdata="(Ctrl+P)" onclick="clickItem(6)">
                         <i class="fa fa-pencil-square-o" aria-hidden="true"></i>
                     </div>
-                    <div class="button-bottom l10n-title"  title="Read Mode" onclick="clickItem(3)">
+                    <div class="button-bottom l10n-title"  title="Read Mode" exdata="(Ctrl+R)" onclick="clickItem(3)">
                         <i class="fa fa-eye" aria-hidden="true"></i>
                     </div>
                     <div class="button-bottom l10n-title" id="button-bottom-mode" title="Edit mode">

+ 21 - 5
views/main/moe-mode.js

@@ -80,6 +80,8 @@ document.addEventListener('DOMContentLoaded', () => {
         for (const it of modeMenuItems) it.getElementsByClassName('fa')[0].style.opacity = (it.attributes['data-name'].value === m) ? '1' : '0';
 
         window.editMode = m;
+        if (window.updatePreview)
+            window.updatePreview(true);
         moeApp.config.set('edit-mode', m);
         document.getElementById('main').classList.remove('notransition');
         setTimeout(() => {
@@ -99,15 +101,29 @@ document.addEventListener('DOMContentLoaded', () => {
     })
 
     require('electron').ipcRenderer.on('change-edit-mode', (e, arg) => {
-        if (arg === 'read' || arg === 'write') setMode(moeApp.config.get('edit-mode-' + arg));
-        else setMode('preview');
+        if (arg === 'read' || arg === 'write')
+            setMode(moeApp.config.get('edit-mode-' + arg));
+        else if (arg === 'change'){
+            if(document.querySelector('#main.write-mode'))
+                setMode(moeApp.config.get('edit-mode-read'));
+            else
+                setMode(moeApp.config.get('edit-mode-write'));
+        }else if (arg === 'changepreview'){
+            if(document.querySelector('#main.write-mode'))
+                setMode('preview');
+            else if(document.querySelector('#main.read-mode'))
+                setMode(moeApp.config.get('edit-mode-write'));
+            else
+                setMode(moeApp.config.get('edit-mode-read'));
+        } else
+            setMode('preview');
     });
 
     editor.addEventListener('transitionend', (e) => {
         if (e.target === editor && e.propertyName === 'width') window.editor.refresh();
     });
 
-    rightPanel.addEventListener('transitionend', (e) => {
-        if (e.target === rightPanel && (window.editMode.startsWith('read') || window.editMode.startsWith('preview'))) window.updatePreview(true);
-    });
+    // rightPanel.addEventListener('transitionend', (e) => {
+    //     if (e.target === rightPanel && (window.editMode.startsWith('read') || window.editMode.startsWith('preview'))) window.updatePreview(true);
+    // });
 });

+ 2 - 1
views/moe-localize.js

@@ -54,7 +54,8 @@ function localize() {
             e.setAttribute('data-origin-title', title);
         }
 
-        title = __(title);
+        let exdata = e.getAttribute('exdata');
+        title = __(title)+(exdata ? exdata : "");
 
         e.setAttribute('title', title);
     }