hbl917070 / Tiefsee4

An open-source image viewer for Windows with powerful features and ease of use
https://hbl917070.github.io/aeropic/
MIT License
268 stars 11 forks source link

瀏覽時,如果新增圖片就無法看見新圖片 #4

Closed nacl1415 closed 11 months ago

nacl1415 commented 1 year ago

我在瀏覽圖片,這時候SD同步產圖,但是產出來的新圖是看不見的 必須重開圖片程式才能載入新圖片 希望可以在同一個資料夾新圖片產生的時候 就自動載入程式裡 這樣就不用每次都要重新關閉打開 感謝作者

hbl917070 commented 1 year ago

自動更新檔案列表的運算成本不低,我也沒辦法保證這樣的功能一定能做出來。 手動更新檔案列表的功能倒是確定之後會做。 目前只能透過「載入檔案」的方式來觸發檔案列表更新, 例如:拉一張圖片進Tiefsee裡面、用快速拖曳重新載入同一張圖片 GIF 2023-5-10 上午 02-31-20

nacl1415 commented 1 year ago

提供一個思路給大大參考 在前往下一張圖片的時候 可以檢查實體路徑的下一張圖片名稱 是否與原本的下一張圖片 名稱相同 如果不同,則代表有新圖片產生 這時就載入新圖片

hbl917070 commented 1 year ago

Windows有提供監控資料夾是否發生變化的功能, 更新列表的成本之所以會高,是因為需要篩選檔案跟排序檔案, 像是SD產圖的資料夾,裡面就算有幾萬張圖片也不奇怪,如果用的是以日期來排序,那麼更新一次列表的處理時間可能會超過3秒。 如果設計成自動更新列表的話,那麼SD每產一張圖,Tiefsee就會卡3秒,這將會是災難。

按上下一張圖片的時候才更新列表,確實可以解決上述的問題, 但是按下一張圖片,載入的圖片卻跟列表顯示的圖片不一樣,是一件奇怪的事情

折中方案是,偵測到資料夾有變化,就跳出一個「更新列表」的按鈕,按了才更新列表

nacl1415 commented 1 year ago

當開啟"大量瀏覽"或"預覽功能"時 按下「更新列表」的按鈕,來刷新全局圖片列表 這個做法很合理也不會造成頻繁卡頓,同意支持

那是否有可能在不需要預覽圖時,實現正確瀏覽功能呢? 例如我自己在使用的時候,左側是沒有開啟圖片預覽列表的 那是否有機會在此模式下,實現正確讀取下一張的功能呢?

當"前往下一張圖片"時,因為沒有需要大量預覽 所以無需全面讀取,只需讀取正確的下一張圖就好

其中可能會遇到的問題是 上方標題有[6/107] 這種數列 代表共107張圖 目前是第6張 或許可以再沒有開啟預覽圖時,不顯示此資訊 這樣在系統上只需要專注於正確的讀取下一張圖片就好 (同理,讀取上一張也適用此概念)

hbl917070 commented 1 year ago

一般來說不會這樣子設計才對,我沒看過有什麼程式會因為開啟某個面板就導致運行邏輯不一樣的

我還是盡量試試看能不能實現自動更新吧,真的會有效能問題的話,就退回我說的折中方案

nacl1415 commented 1 year ago

了解! 辛苦了! 非常感謝作者大大

或許能把"自動更新" 這功能放入選項裡 讓有需要的人自行去啟用 可說明自動更新可能會有效能問題 就讓使用者自己去決定是否開啟 當然也可以有作者大大說的自動更新按鈕放在工具列 功能都可以同時並存,讓使用者自己選擇合適的方法

hbl917070 commented 11 months ago

4.1.2 加入自動偵測檔案變化的功能

當資料夾內的檔案發生變化(新增檔案、刪除檔案、重新命名),會自動同步到 Tiefsee 的 檔案預覽面板 GIF 2023-7-13 下午 09-56-38

如果檔案列表同步上出了問題或是需要重新排序,檔案預覽面板 的右鍵選單裡面有一個「重新載入」 2023-07-13 23-50-32

nacl1415 commented 11 months ago

太棒了! 等這個功能等了好久! 太感謝大大了!