mirror of https://github.com/logseq/logseq
feat(paste): toggle between pasting text or file when they both exist (#7198)
* feat(paste): toggle between pasting text or file when they both existpull/7279/head
parent
e326e39576
commit
1a216aa1aa
|
@ -346,6 +346,12 @@
|
||||||
logical-outdenting?
|
logical-outdenting?
|
||||||
config-handler/toggle-logical-outdenting!))
|
config-handler/toggle-logical-outdenting!))
|
||||||
|
|
||||||
|
(defn perferred-pasting-file [t perferred-pasting-file?]
|
||||||
|
(toggle "preferred_pasting_file"
|
||||||
|
(t :settings-page/preferred-pasting-file)
|
||||||
|
perferred-pasting-file?
|
||||||
|
config-handler/toggle-perferred-pasting-file!))
|
||||||
|
|
||||||
(defn tooltip-row [t enable-tooltip?]
|
(defn tooltip-row [t enable-tooltip?]
|
||||||
(toggle "enable_tooltip"
|
(toggle "enable_tooltip"
|
||||||
(t :settings-page/enable-tooltip)
|
(t :settings-page/enable-tooltip)
|
||||||
|
@ -555,6 +561,7 @@
|
||||||
enable-timetracking? (state/enable-timetracking?)
|
enable-timetracking? (state/enable-timetracking?)
|
||||||
enable-all-pages-public? (state/all-pages-public?)
|
enable-all-pages-public? (state/all-pages-public?)
|
||||||
logical-outdenting? (state/logical-outdenting?)
|
logical-outdenting? (state/logical-outdenting?)
|
||||||
|
perferred-pasting-file? (state/perferred-pasting-file?)
|
||||||
enable-tooltip? (state/enable-tooltip?)
|
enable-tooltip? (state/enable-tooltip?)
|
||||||
enable-shortcut-tooltip? (state/sub :ui/shortcut-tooltip?)
|
enable-shortcut-tooltip? (state/sub :ui/shortcut-tooltip?)
|
||||||
show-brackets? (state/show-brackets?)
|
show-brackets? (state/show-brackets?)
|
||||||
|
@ -568,6 +575,7 @@
|
||||||
(show-brackets-row t show-brackets?)
|
(show-brackets-row t show-brackets?)
|
||||||
(when (util/electron?) (switch-spell-check-row t))
|
(when (util/electron?) (switch-spell-check-row t))
|
||||||
(outdenting-row t logical-outdenting?)
|
(outdenting-row t logical-outdenting?)
|
||||||
|
(perferred-pasting-file t perferred-pasting-file?)
|
||||||
(when-not (or (util/mobile?) (mobile-util/native-platform?))
|
(when-not (or (util/mobile?) (mobile-util/native-platform?))
|
||||||
(shortcut-tooltip-row t enable-shortcut-tooltip?))
|
(shortcut-tooltip-row t enable-shortcut-tooltip?))
|
||||||
(when-not (or (util/mobile?) (mobile-util/native-platform?))
|
(when-not (or (util/mobile?) (mobile-util/native-platform?))
|
||||||
|
|
|
@ -213,6 +213,7 @@
|
||||||
:settings-page/custom-date-format "Preferred date format"
|
:settings-page/custom-date-format "Preferred date format"
|
||||||
:settings-page/preferred-file-format "Preferred file format"
|
:settings-page/preferred-file-format "Preferred file format"
|
||||||
:settings-page/preferred-workflow "Preferred workflow"
|
:settings-page/preferred-workflow "Preferred workflow"
|
||||||
|
:settings-page/preferred-pasting-file "Preferred pasting file"
|
||||||
:settings-page/enable-shortcut-tooltip "Enable shortcut tooltip"
|
:settings-page/enable-shortcut-tooltip "Enable shortcut tooltip"
|
||||||
:settings-page/enable-timetracking "Timetracking"
|
:settings-page/enable-timetracking "Timetracking"
|
||||||
:settings-page/enable-tooltip "Tooltips"
|
:settings-page/enable-tooltip "Tooltips"
|
||||||
|
|
|
@ -47,3 +47,7 @@
|
||||||
(defn toggle-ui-enable-tooltip! []
|
(defn toggle-ui-enable-tooltip! []
|
||||||
(let [enable-tooltip? (state/enable-tooltip?)]
|
(let [enable-tooltip? (state/enable-tooltip?)]
|
||||||
(set-config! :ui/enable-tooltip? (not enable-tooltip?))))
|
(set-config! :ui/enable-tooltip? (not enable-tooltip?))))
|
||||||
|
|
||||||
|
(defn toggle-perferred-pasting-file! []
|
||||||
|
(let [perferred-pasting-file? (state/perferred-pasting-file?)]
|
||||||
|
(set-config! :editor/perferred-pasting-file? (not perferred-pasting-file?))))
|
|
@ -178,26 +178,30 @@
|
||||||
(state/set-state! :editor/on-paste? true)
|
(state/set-state! :editor/on-paste? true)
|
||||||
(let [input (state/get-input)]
|
(let [input (state/get-input)]
|
||||||
(if raw-paste?
|
(if raw-paste?
|
||||||
(utils/getClipText
|
(utils/getClipText
|
||||||
(fn [clipboard-data]
|
(fn [clipboard-data]
|
||||||
(when-let [_ (state/get-input)]
|
(when-let [_ (state/get-input)]
|
||||||
(let [text (or (when (gp-util/url? clipboard-data)
|
(let [text (or (when (gp-util/url? clipboard-data)
|
||||||
(wrap-macro-url clipboard-data))
|
(wrap-macro-url clipboard-data))
|
||||||
clipboard-data)]
|
clipboard-data)]
|
||||||
(paste-text-or-blocks-aux input e text nil))))
|
(paste-text-or-blocks-aux input e text nil))))
|
||||||
(fn [error]
|
(fn [error]
|
||||||
(js/console.error error)))
|
(js/console.error error)))
|
||||||
(let [clipboard-data (gobj/get e "clipboardData")
|
(let [clipboard-data (gobj/get e "clipboardData")
|
||||||
html (when-not raw-paste? (.getData clipboard-data "text/html"))
|
html (when-not raw-paste? (.getData clipboard-data "text/html"))
|
||||||
text (.getData clipboard-data "text")]
|
text (.getData clipboard-data "text")
|
||||||
(if-not (and (string/blank? text) (string/blank? html))
|
files (.-files clipboard-data)
|
||||||
(paste-text-or-blocks-aux input e text html)
|
paste-file-if-exiist (fn []
|
||||||
(when id
|
(when id
|
||||||
(let [_handled
|
(let [_handled
|
||||||
(let [clipboard-data (gobj/get e "clipboardData")
|
(let [clipboard-data (gobj/get e "clipboardData")
|
||||||
files (.-files clipboard-data)]
|
files (.-files clipboard-data)]
|
||||||
(when-let [file (first files)]
|
(when-let [file (first files)]
|
||||||
(when-let [block (state/get-edit-block)]
|
(when-let [block (state/get-edit-block)]
|
||||||
(editor-handler/upload-asset id #js[file] (:block/format block)
|
(editor-handler/upload-asset id #js[file] (:block/format block)
|
||||||
editor-handler/*asset-uploading? true))))]
|
editor-handler/*asset-uploading? true))))]
|
||||||
(util/stop e))))))))))
|
(util/stop e))))]
|
||||||
|
(cond
|
||||||
|
(and (string/blank? text) (string/blank? html)) (paste-file-if-exiist)
|
||||||
|
(and (seq files) (state/perferred-pasting-file?)) (paste-file-if-exiist)
|
||||||
|
:else (paste-text-or-blocks-aux input e text html))))))))
|
||||||
|
|
|
@ -649,6 +649,10 @@ Similar to re-frame subscriptions"
|
||||||
[]
|
[]
|
||||||
(:editor/logical-outdenting? (sub-config)))
|
(:editor/logical-outdenting? (sub-config)))
|
||||||
|
|
||||||
|
(defn perferred-pasting-file?
|
||||||
|
[]
|
||||||
|
(:editor/perferred-pasting-file? (sub-config)))
|
||||||
|
|
||||||
(defn doc-mode-enter-for-new-line?
|
(defn doc-mode-enter-for-new-line?
|
||||||
[]
|
[]
|
||||||
(and (document-mode?)
|
(and (document-mode?)
|
||||||
|
|
Loading…
Reference in New Issue