mirror of https://github.com/logseq/logseq
feat(electron): refine app menu
parent
2432947607
commit
c297748bd8
|
@ -1,7 +1,7 @@
|
||||||
(ns electron.core
|
(ns electron.core
|
||||||
(:require [electron.handler :as handler]
|
(:require [electron.handler :as handler]
|
||||||
[electron.search :as search]
|
[electron.search :as search]
|
||||||
[electron.updater :refer [init-updater]]
|
[electron.updater :refer [init-updater] :as updater]
|
||||||
[electron.utils :refer [*win mac? linux? dev? logger get-win-from-sender restore-user-fetch-agent]]
|
[electron.utils :refer [*win mac? linux? dev? logger get-win-from-sender restore-user-fetch-agent]]
|
||||||
[electron.url :refer [logseq-url-handler]]
|
[electron.url :refer [logseq-url-handler]]
|
||||||
[clojure.string :as string]
|
[clojure.string :as string]
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
["fs-extra" :as fs]
|
["fs-extra" :as fs]
|
||||||
["path" :as path]
|
["path" :as path]
|
||||||
["os" :as os]
|
["os" :as os]
|
||||||
["electron" :refer [BrowserWindow app protocol ipcMain dialog] :as electron]
|
["electron" :refer [BrowserWindow Menu app protocol ipcMain dialog shell] :as electron]
|
||||||
["electron-deeplink" :refer [Deeplink]]
|
["electron-deeplink" :refer [Deeplink]]
|
||||||
[clojure.core.async :as async]
|
[clojure.core.async :as async]
|
||||||
[electron.state :as state]
|
[electron.state :as state]
|
||||||
|
@ -180,6 +180,35 @@
|
||||||
(.removeHandler ipcMain call-app-channel)
|
(.removeHandler ipcMain call-app-channel)
|
||||||
(.removeHandler ipcMain call-win-channel))))
|
(.removeHandler ipcMain call-win-channel))))
|
||||||
|
|
||||||
|
(defn- set-app-menu! []
|
||||||
|
(let [about-fn (fn []
|
||||||
|
(.showMessageBox dialog (clj->js {:title "Logseq"
|
||||||
|
:icon (path/join js/__dirname "icons/logseq.png")
|
||||||
|
:message (str "Version " updater/electron-version)})))
|
||||||
|
template (clj->js [{:role "fileMenu"
|
||||||
|
:submenu [{:label "New Window"
|
||||||
|
:click (fn []
|
||||||
|
(handler/open-new-window!))
|
||||||
|
:accelerator "CommandOrControl+N"
|
||||||
|
:acceleratorWorksWhenHidden false}
|
||||||
|
{:type "separator"}
|
||||||
|
{:role "close"
|
||||||
|
:label "Close Window"}
|
||||||
|
{:label "Quit Logseq"
|
||||||
|
:role "quit"}]}
|
||||||
|
{:role "editMenu"}
|
||||||
|
{:role "viewMenu"}
|
||||||
|
{:role "windowMenu"}
|
||||||
|
{:role "help"
|
||||||
|
:submenu [{:label "Official Documentation"
|
||||||
|
:click (fn []
|
||||||
|
(.openExternal shell "https://docs.logseq.com/"))}
|
||||||
|
{:role "about"
|
||||||
|
:label "About Logseq"
|
||||||
|
:click about-fn}]}])
|
||||||
|
menu (.buildFromTemplate Menu template)]
|
||||||
|
(.setApplicationMenu Menu menu)))
|
||||||
|
|
||||||
(defn- setup-deeplink! []
|
(defn- setup-deeplink! []
|
||||||
;; Works for Deeplink v1.0.9
|
;; Works for Deeplink v1.0.9
|
||||||
;; :mainWindow is only used for handeling window restoring on second-instance,
|
;; :mainWindow is only used for handeling window restoring on second-instance,
|
||||||
|
@ -210,6 +239,7 @@
|
||||||
{:scheme FILE_LSP_SCHEME
|
{:scheme FILE_LSP_SCHEME
|
||||||
:privileges privileges}]))
|
:privileges privileges}]))
|
||||||
|
|
||||||
|
(set-app-menu!)
|
||||||
(setup-deeplink!)
|
(setup-deeplink!)
|
||||||
|
|
||||||
(.on app "second-instance"
|
(.on app "second-instance"
|
||||||
|
|
Loading…
Reference in New Issue