1
0
Эх сурвалжийг харах

fix: missing db persistency when creating new window via file menu (#5600)

* fix: missing db persistency when creating new window via file menu

* fix: remove the deprecated new window shortcut config

Co-authored-by: Tienson Qin <[email protected]>
Junyi Du 3 жил өмнө
parent
commit
c09fd7f70c

+ 4 - 2
src/electron/electron/core.cljs

@@ -2,7 +2,7 @@
   (:require [electron.handler :as handler]
             [electron.search :as search]
             [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 get-graph-name]]
             [electron.url :refer [logseq-url-handler]]
             [clojure.string :as string]
             [promesa.core :as p]
@@ -201,7 +201,9 @@
                        {:role "fileMenu"
                         :submenu [{:label "New Window"
                                    :click (fn []
-                                            (handler/open-new-window!))
+                                            (p/let [graph-name (get-graph-name (state/get-graph-path))
+                                                    _     (handler/broadcast-persist-graph! graph-name)]
+                                                   (handler/open-new-window!)))
                                    :accelerator "CommandOrControl+N"
                                    :acceleratorWorksWhenHidden false}
                                   (if mac?

+ 4 - 2
src/electron/electron/handler.cljs

@@ -398,6 +398,7 @@
     (watcher/watch-dir! window dir)))
 
 (defn open-new-window!
+  "Persist db first before calling! Or may break db persistency"
   []
   (let [win (win/create-main-window)]
     (win/on-close-actions! win close-watcher-when-orphaned!)
@@ -461,8 +462,9 @@
   (println "Error: no ipc handler for: " (bean/->js args)))
 
 (defn broadcast-persist-graph!
-  "Sends persist graph event to the renderer contains the target graph.
-   Returns a promise."
+  "Receive graph-name (not graph path)
+   Sends persist graph event to the renderer contains the target graph.
+   Returns a promise<void>."
   [graph-name]
   (p/create (fn [resolve _reject]
               (let [graph-path (utils/get-graph-dir graph-name)

+ 6 - 0
src/electron/electron/utils.cljs

@@ -121,9 +121,15 @@
          (send (name kind) (bean/->js payload))))))
 
 (defn get-graph-dir
+  "required by all internal state in the electron section"
   [graph-name]
   (string/replace graph-name "logseq_local_" ""))
 
+(defn get-graph-name
+  "reversing `get-graph-dir`"
+  [graph-dir]
+  (str "logseq_local_" graph-dir))
+
 ;; Keep update with the normalization in main
 (defn normalize
   [s]

+ 1 - 7
src/main/frontend/modules/shortcut/config.cljs

@@ -345,10 +345,6 @@
    :ui/toggle-contents              {:binding "alt+shift+c"
                                      :fn      ui-handler/toggle-contents!}
 
-   :ui/open-new-window              {:binding "mod+n"
-                                     :inactive (not (util/electron?))
-                                     :fn      #(state/pub-event! [:graph/open-new-window nil])}
-
    :command/toggle-favorite         {:binding "mod+shift+f"
                                      :fn      page-handler/toggle-favorite!}
 
@@ -525,7 +521,6 @@
                           :ui/toggle-help
                           :ui/toggle-theme
                           :ui/toggle-contents
-                          :ui/open-new-window
                           :editor/open-file-in-default-app
                           :editor/open-file-in-directory
                           :editor/copy-current-file
@@ -581,8 +576,7 @@
     :go/tomorrow
     :go/next-journal
     :go/prev-journal
-    :go/keyboard-shortcuts
-    :ui/open-new-window]
+    :go/keyboard-shortcuts]
 
    :shortcut.category/block-editing
    [:editor/backspace

+ 7 - 7
src/main/frontend/modules/shortcut/dicts.cljc

@@ -106,7 +106,7 @@
    :ui/toggle-help                 "Toggle help"
    :ui/toggle-theme                "Toggle between dark/light theme"
    :ui/toggle-contents             "Toggle Contents in sidebar"
-   :ui/open-new-window             "Open another window"
+  ;;  :ui/open-new-window             "Open another window"
    :command/toggle-favorite        "Add to/remove from favorites"
    :editor/open-file-in-default-app "Open file in default app"
    :editor/open-file-in-directory   "Open file in parent directory"
@@ -539,7 +539,7 @@
              :command.sidebar/clear "Fjern alt i høyre sidestolpe"
              :command.sidebar/open-today-page "Åpne dagens side i høyre sidestolpe"
              :command.ui/goto-plugins "Gå til dashbord for utvidelser"
-             :command.ui/open-new-window "Åpne et nytt vindu"
+            ;;  :command.ui/open-new-window "Åpne et nytt vindu"
              :command.ui/select-theme-color "Velg tilgjengelige temafarger"
              :command.ui/toggle-cards "Veksle kort"}
 
@@ -719,7 +719,7 @@
              :command.graph/save                      "Salvar gráfico atual no computador"
              :command.misc/copy                       "Copiar (copiar seleção ou referência do bloco)"
              :command.ui/goto-plugins                 "Ir para o painel de plugins"
-             :command.ui/open-new-window              "Abra uma nova janela"
+            ;;  :command.ui/open-new-window              "Abra uma nova janela"
              :command.editor/select-down              "Selecione o conteúdo abaixo"
              :command.editor/select-up                "Selecione o conteúdo acima"}
 
@@ -761,7 +761,7 @@
              :command.go/next-journal                 "次の日誌へ移動"
              :command.go/prev-journal                 "前の日誌へ移動"
              :command.go/keyboard-shortcuts           "キーボードショートカットへ移動"
-             :command.ui/open-new-window              "別のウィンドウを開く"
+            ;;  :command.ui/open-new-window              "別のウィンドウを開く"
              :command.go/search-in-page               "ページ内を検索"
              :command.ui/toggle-document-mode         "ドキュメントモードのトグル"
              :command.ui/toggle-contents              "目次のトグル"
@@ -935,7 +935,7 @@
              :command.ui/toggle-help                 "Attiva/disattiva aiuto"
              :command.ui/toggle-theme                "Passa dal tema scuro a quello chiaro"
              :command.ui/toggle-contents             "Attiva/disattiva i contenuti nella barra laterale"
-             :command.ui/open-new-window             "Apri un'altra finestra"
+            ;;  :command.ui/open-new-window             "Apri un'altra finestra"
              :command.command/toggle-favorite        "Aggiungi a/rimuovi dai preferiti"
              :command.editor/open-file-in-default-app "Apri file nell'app predefinita"
              :command.editor/open-file-in-directory   "Apri file nella directory principale"
@@ -1061,7 +1061,7 @@
              :command.ui/toggle-help                 "Yardımı aç/kapat"
              :command.ui/toggle-theme                "Koyu ve açık tema arasında geçiş yap"
              :command.ui/toggle-contents             "Kenar çubuğundaki içeriği aç/kapat"
-             :command.ui/open-new-window             "Başka bir pencere aç"
+            ;;  :command.ui/open-new-window             "Başka bir pencere aç"
              :command.command/toggle-favorite        "Sık kullanılanlara ekle/çıkar"
              :command.editor/open-file-in-default-app "Dosyayı varsayılan uygulamada aç"
              :command.editor/open-file-in-directory   "Dosyayı üst dizinde aç"
@@ -1111,7 +1111,7 @@
              :command.go/next-journal                 "다음 일지로 이동"
              :command.go/prev-journal                 "이전 일지로 이동"
              :command.go/keyboard-shortcuts           "키보드 단축키로 이동"
-             :command.ui/open-new-window              "새 창 열기"
+            ;;  :command.ui/open-new-window              "새 창 열기"
              :command.go/search-in-page               "페이지 안에서 검색"
              :command.ui/toggle-document-mode         "문서 모드 토글"
              :command.ui/toggle-contents              "목차 토글"