Closed jcjgraf closed 4 years ago
Thanks for the clear and detailed bug report! Let me know in case the issue persists even after 6220889363e1c155020a33de06769b4517d3aacc.
While the first problem is fixed, the second one is still persistent.
Additionally, I have noticed that when you are in thumbnail mode and want to remove the current and next image, and for that click x
twice rather rapidly, only the current image is removed. I do not know how easily this is fixable.
I must say I cannot reproduce either of the two issues unfortunately.
Concerning pressing x
rapidly, do you press x
again when the current thumbnail is still displayed? There is a delay in the working directory handler of 300 ms, for playing you can set the WAIT_TIME_MS
in api.working_directory
to something lower and see if this solves the issue for you.
This manual delay was a bit of a hack to avoid issues with programs that write images to disk partially, not all at once. For example when editing the current image in gimp and then overwriting it, I get error messages like
[21:50:53] ERROR <vimiv> '~/Images/Test/Test_003.jpg' cannot be read as image
Corrupt JPEG data: premature end of data segment
when removing the delay.
There is almost certainly a better solution, I just haven't found one yet :laughing:
You are right, this change fixed the problem also for the second scenario. But there is a follow-up bug. I have repeated the steps as described in reproduce of the initial comment. As expected, no images are displayed after deletion. But when I randomly pressing h,j,k,l
keys (while still beeing in the now empty thumbnail view), vimiv will crash. I was able to reproduce this multiple times. See errror log below.
Also, I have noticed another case where deleted images are still displayed:
m
:open %m
:delete %m
It all makes sense concerning the deletion and the delay. It is not really an issue, but rather something I have noticed while trying to debug this problem.
Run vimiv-qt with config .venv/bin/vimiv --log-level debug --debug plugins tagger --config ~/.config/vimiv/vimiv.conf [22:02:30] DEBUGStart: vimiv --log-level debug --debug plugins tagger --config /home/jeanclaude/.config/vimiv/vimiv.conf [22:02:30] DEBUG Updating 'monitor_filesystem' with 'True' [22:02:30] DEBUG Updating 'shuffle' with 'False' [22:02:30] DEBUG Updating 'startup_library' with 'True' [22:02:30] DEBUG Updating 'style' with 'default' [22:02:30] DEBUG Updating 'command.history_limit' with '100' [22:02:30] DEBUG Updating 'completion.fuzzy' with 'False' [22:02:30] DEBUG Updating 'search.ignore_case' with 'True' [22:02:30] DEBUG Updating 'search.incremental' with 'True' [22:02:30] DEBUG Updating 'image.autoplay' with 'True' [22:02:30] DEBUG Updating 'image.autowrite' with 'ask' [22:02:30] DEBUG Updating 'image.overzoom' with '1.0' [22:02:30] DEBUG Updating 'library.width' with '0.3' [22:02:30] DEBUG Updating 'library.show_hidden' with 'False' [22:02:30] DEBUG Updating 'thumbnail.size' with '128' [22:02:30] DEBUG Updating 'slideshow.delay' with '2.0' [22:02:30] DEBUG Updating 'slideshow.indicator' with 'slideshow:' [22:02:30] DEBUG Updating 'statusbar.collapse_home' with 'True' [22:02:30] DEBUG Updating 'statusbar.show' with 'True' [22:02:30] DEBUG Updating 'statusbar.message_timeout' with '60000' [22:02:30] DEBUG Updating 'statusbar.mark_indicator' with '*' [22:02:30] DEBUG Updating 'statusbar.left' with '{pwd}' [22:02:30] DEBUG Updating 'statusbar.left_image' with '{index}/{total} {basename} [{zoomlevel}]' [22:02:30] DEBUG Updating 'statusbar.left_thumbnail' with '{thumbnail-index}/{thumbnail-total} {thumbnail-name}' [22:02:30] DEBUG Updating 'statusbar.left_manipulate' with '{basename} {image-size} Modified: {modified} {processing}' [22:02:30] DEBUG Updating 'statusbar.center_thumbnail' with '{thumbnail-size}' [22:02:30] DEBUG Updating 'statusbar.center' with '{slideshow-indicator} {slideshow-delay} {transformation-info}' [22:02:30] DEBUG Updating 'statusbar.right' with '{keys} {mark-count} {mode}' [22:02:30] DEBUG Updating 'statusbar.right_image' with '{keys} {mark-indicator} {mark-count} {mode}' [22:02:30] DEBUG Updating 'keyhint.delay' with '500' [22:02:30] DEBUG Updating 'keyhint.timeout' with '5000' [22:02:30] DEBUG Updating 'title.fallback' with 'vimiv' [22:02:30] DEBUG Updating 'title.image' with 'vimiv - {basename}' [22:02:30] DEBUG No option 'current_keyset' in section: 'METADATA' in configfile [22:02:30] DEBUG Adding statusbar formatter 'left_image' with '{index}/{total} {basename} [{zoomlevel}]' [22:02:30] DEBUG Adding statusbar formatter 'left_thumbnail' with '{thumbnail-index}/{thumbnail-total} {thumbnail-name}' [22:02:30] DEBUG Adding statusbar formatter 'left_manipulate' with '{basename} {image-size} Modified: {modified} {processing}' [22:02:30] DEBUG Adding statusbar formatter 'center_thumbnail' with '{thumbnail-size}' [22:02:30] DEBUG Adding statusbar formatter 'right_image' with '{keys} {mark-indicator} {mark-count} {mode}' [22:02:30] DEBUG Plugins in config: 'rawprev', 'importer', 'tagger' [22:02:30] DEBUG Keyset 1: 'Make' found [22:02:30] DEBUG Keyset 2: 'Model' found [22:02:30] DEBUG Keyset 3: 'DateTime' found [22:02:30] DEBUG Setting 'metadata.current_keyset' to 'Make' [22:02:30] DEBUG Read configuration from '/home/jeanclaude/.config/vimiv/vimiv.conf' [22:02:30] DEBUG Reading keybindings from '/home/jeanclaude/.config/vimiv/keys.conf' [22:02:30] DEBUG Reading keybindings from section 'GLOBAL' [22:02:30] DEBUG Read keybinding ' ': 'command' for mode 'global' [22:02:30] DEBUG Read keybinding 'o': 'command --text='open '' for mode 'global' [22:02:30] DEBUG Read keybinding 'yy': 'copy-name' for mode 'global' [22:02:30] DEBUG Read keybinding 'ya': 'copy-name --abspath' for mode 'global' [22:02:30] DEBUG Read keybinding 'yA': 'copy-name --abspath --primary' for mode 'global' [22:02:30] DEBUG Read keybinding 'yY': 'copy-name --primary' for mode 'global' [22:02:30] DEBUG Read keybinding 'x': 'delete %' for mode 'global' [22:02:30] DEBUG Read keybinding 'gi': 'enter image' for mode 'global' [22:02:30] DEBUG Read keybinding 'gl': 'enter library' for mode 'global' [22:02:30] DEBUG Read keybinding 'gm': 'enter manipulate' for mode 'global' [22:02:30] DEBUG Read keybinding 'gt': 'enter thumbnail' for mode 'global' [22:02:30] DEBUG Read keybinding 'f': 'fullscreen' for mode 'global' [22:02:30] DEBUG Read keybinding 'G': 'goto -1' for mode 'global' [22:02:30] DEBUG Read keybinding 'gg': 'goto 1' for mode 'global' [22:02:30] DEBUG Read keybinding 'm': 'mark %' for mode 'global' [22:02:30] DEBUG Read keybinding 'q': 'quit' for mode 'global' [22:02:30] DEBUG Read keybinding '.': 'repeat-command' for mode 'global' [22:02:30] DEBUG Read keybinding 'j': 'scroll down' for mode 'global' [22:02:30] DEBUG Read keybinding 'h': 'scroll left' for mode 'global' [22:02:30] DEBUG Read keybinding 'l': 'scroll right' for mode 'global' [22:02:30] DEBUG Read keybinding 'k': 'scroll up' for mode 'global' [22:02:30] DEBUG Read keybinding '/': 'search' for mode 'global' [22:02:30] DEBUG Read keybinding '?': 'search --reverse' for mode 'global' [22:02:30] DEBUG Read keybinding 'N': 'search-next' for mode 'global' [22:02:30] DEBUG Read keybinding 'P': 'search-prev' for mode 'global' [22:02:30] DEBUG Read keybinding 'b': 'set statusbar.show!' for mode 'global' [22:02:30] DEBUG Read keybinding 'tl': 'toggle library' for mode 'global' [22:02:30] DEBUG Read keybinding 'tm': 'toggle manipulate' for mode 'global' [22:02:30] DEBUG Read keybinding 'tt': 'toggle thumbnail' for mode 'global' [22:02:30] DEBUG Reading keybindings from section 'IMAGE' [22:02:30] DEBUG Read keybinding 'M': 'center' for mode 'image' [22:02:30] DEBUG Read keybinding '|': 'flip' for mode 'image' [22:02:30] DEBUG Read keybinding '_': 'flip --vertical' for mode 'image' [22:02:30] DEBUG Read keybinding ' ': 'goto -1' for mode 'image' [22:02:30] DEBUG Read keybinding ' ': 'goto 1' for mode 'image' [22:02:30] DEBUG Read keybinding ' ': 'next' for mode 'image' [22:02:30] DEBUG Read keybinding 'n': 'next' for mode 'image' [22:02:30] DEBUG Read keybinding ' ': 'play-or-pause' for mode 'image' [22:02:30] DEBUG Read keybinding ' ': 'prev' for mode 'image' [22:02:30] DEBUG Read keybinding 'p': 'prev' for mode 'image' [22:02:30] DEBUG Read keybinding '>': 'rotate' for mode 'image' [22:02:30] DEBUG Read keybinding '<': 'rotate --counter-clockwise' for mode 'image' [22:02:30] DEBUG Read keybinding 'W': 'scale --level=1' for mode 'image' [22:02:30] DEBUG Read keybinding 'w': 'scale --level=fit' for mode 'image' [22:02:30] DEBUG Read keybinding 'E': 'scale --level=fit-height' for mode 'image' [22:02:30] DEBUG Read keybinding 'e': 'scale --level=fit-width' for mode 'image' [22:02:30] DEBUG Read keybinding 'J': 'scroll-edge down' for mode 'image' [22:02:30] DEBUG Read keybinding 'H': 'scroll-edge left' for mode 'image' [22:02:30] DEBUG Read keybinding 'L': 'scroll-edge right' for mode 'image' [22:02:30] DEBUG Read keybinding 'K': 'scroll-edge up' for mode 'image' [22:02:30] DEBUG Read keybinding 'sl': 'set slideshow.delay +0.5' for mode 'image' [22:02:30] DEBUG Read keybinding 'sh': 'set slideshow.delay -0.5' for mode 'image' [22:02:30] DEBUG Read keybinding 'ss': 'slideshow' for mode 'image' [22:02:30] DEBUG Read keybinding '+': 'zoom in' for mode 'image' [22:02:30] DEBUG Read keybinding '-': 'zoom out' for mode 'image' [22:02:30] DEBUG Reading keybindings from section 'LIBRARY' [22:02:30] DEBUG Read keybinding 'go': 'goto 1 --open-selected' for mode 'library' [22:02:30] DEBUG Read keybinding 'n': 'scroll down --open-selected' for mode 'library' [22:02:30] DEBUG Read keybinding 'p': 'scroll up --open-selected' for mode 'library' [22:02:30] DEBUG Read keybinding 'L': 'set library.width +0.05' for mode 'library' [22:02:30] DEBUG Read keybinding 'H': 'set library.width -0.05' for mode 'library' [22:02:30] DEBUG Reading keybindings from section 'THUMBNAIL' [22:02:30] DEBUG Read keybinding '+': 'zoom in' for mode 'thumbnail' [22:02:30] DEBUG Read keybinding '-': 'zoom out' for mode 'thumbnail' [22:02:30] DEBUG Reading keybindings from section 'COMMAND' [22:02:30] DEBUG Read keybinding ' ': 'complete' for mode 'command' [22:02:30] DEBUG Read keybinding ' ': 'complete --inverse' for mode 'command' [22:02:30] DEBUG Read keybinding ' p': 'history next' for mode 'command' [22:02:30] DEBUG Read keybinding ' n': 'history prev' for mode 'command' [22:02:30] DEBUG Read keybinding ' ': 'history-substr-search next' for mode 'command' [22:02:30] DEBUG Read keybinding ' ': 'history-substr-search prev' for mode 'command' [22:02:30] DEBUG Read keybinding ' ': 'leave-commandline' for mode 'command' [22:02:30] DEBUG Reading keybindings from section 'MANIPULATE' [22:02:30] DEBUG Read keybinding ' ': 'command' for mode 'manipulate' [22:02:30] DEBUG Read keybinding 'f': 'fullscreen' for mode 'manipulate' [22:02:30] DEBUG Read keybinding 'b': 'set statusbar.show!' for mode 'manipulate' [22:02:30] DEBUG Read keybindings from '/home/jeanclaude/.config/vimiv/keys.conf' [22:02:30] DEBUG Parsing style 'default' [22:02:30] DEBUG Creating default style [22:02:30] DEBUG Initializing style with colors: #ffffff #e0e0e0 #d6d6d6 #8e908c #969896 #4d4d4c #282a2e #1d1f21 #c82829 #f5871f #eab700 #718c00 #3e999f #81a2be #8959a8 #a3685a font: 10pt Monospace [22:02:30] DEBUG Registering 'vimiv.app.Application' [22:02:30] DEBUG Setting up wakeup filedescriptor for unix-like systems [22:02:30] DEBUG Trying to retrieve icon from theme [22:02:30] DEBUG Initialized crash handler [22:02:30] DEBUG Trying to retrieve icon from project directory [22:02:30] DEBUG Registering 'vimiv.imutils.filelist.SignalHandler' [22:02:30] DEBUG Registering 'vimiv.imutils._file_handler.ImageFileHandler' [22:02:30] DEBUG Registering 'vimiv.imutils.imtransform.Transform' [22:02:30] DEBUG Initializing UI [22:02:30] DEBUG Registering 'vimiv.gui.mainwindow.MainWindow' [22:02:30] DEBUG Set 'vimiv.gui.image.ScrollableImage' as widget of 'Mode.IMAGE' [22:02:30] DEBUG Registering 'vimiv.gui.image.ScrollableImage' [22:02:30] DEBUG Set 'vimiv.gui.thumbnail.ThumbnailView' as widget of 'Mode.THUMBNAIL' [22:02:30] DEBUG Registering 'vimiv.gui.thumbnail.ThumbnailView' [22:02:30] DEBUG Set 'vimiv.gui.library.Library' as widget of 'Mode.LIBRARY' [22:02:30] DEBUG Registering 'vimiv.gui.library.Library' [22:02:30] DEBUG Registering 'vimiv.gui.commandwidget.CommandWidget' [22:02:30] DEBUG Set 'vimiv.gui.commandline.CommandLine' as widget of 'Mode.COMMAND' [22:02:30] DEBUG Registering 'vimiv.gui.commandline.CommandLine' [22:02:30] DEBUG Registering 'vimiv.gui.completionwidget.CompletionView' [22:02:30] DEBUG Registering 'vimiv.gui.metadatawidget.MetadataWidget' [22:02:30] DEBUG Loading plugins... [22:02:30] DEBUG Available app plugins: 'demo', 'imageformats', 'print' [22:02:30] DEBUG Available user plugins: 'importer', 'rawprev', 'tagger' [22:02:30] DEBUG Loading plugin 'print' from '/home/jeanclaude/Documents/Programming/vimiv-qt/vimiv/plugins' [22:02:30] DEBUG Registering 'print.PrintHandler' [22:02:30] DEBUG Initialized 'print' [22:02:30] DEBUG Loaded 'print' successfully [22:02:30] DEBUG Loading plugin 'rawprev' from '/home/jeanclaude/.local/share/vimiv/plugins' [22:02:30] DEBUG Initialized RawPrev [22:02:30] DEBUG Initialized 'rawprev' [22:02:30] DEBUG Loaded 'rawprev' successfully [22:02:30] DEBUG Loading plugin 'importer' from '/home/jeanclaude/.local/share/vimiv/plugins' [22:02:30] DEBUG Registering 'importer.ImportHandler' [22:02:30] DEBUG Initialized ImportHandler [22:02:30] DEBUG Destination path already exists or created successfully [22:02:30] DEBUG Initialized 'importer' [22:02:30] DEBUG Loaded 'importer' successfully [22:02:30] DEBUG Loading plugin 'tagger' from '/home/jeanclaude/.local/share/vimiv/plugins' [22:02:30] DEBUG Registering 'tagger.Tagger' delete keep [22:02:30] DEBUG Initialized Tagger [22:02:30] DEBUG Initialized 'tagger' [22:02:30] DEBUG Loaded 'tagger' successfully [22:02:30] DEBUG Plugin loading completed [22:02:30] DEBUG Opening paths [22:02:30] DEBUG init_paths: No valid paths retrieved [22:02:30] DEBUG Changing directory to '/home/jeanclaude/Documents/Programming/vimiv-qt' [22:02:30] DEBUG Updating library for new/reloaded directory [22:02:30] DEBUG No stored position, falling back to 0 [22:02:30] DEBUG Selecting library row 0 [22:02:30] DEBUG Monitoring /home/jeanclaude/Documents/Programming/vimiv-qt [22:02:30] DEBUG Directory change completed [22:02:30] DEBUG Leaving mode image [22:02:30] DEBUG Could not focus Mode.LIBRARY widget [22:02:30] DEBUG Entered mode Mode.LIBRARY [22:02:30] DEBUG Updating status: startup paths initialized [22:02:30] DEBUG Retrieving instance from objreg for 'ScrollableImage.transformation_info' [22:02:30] DEBUG Retrieving instance from objreg for 'Mark.mark_count' [22:02:30] DEBUG Startup completed, starting Qt main loop [22:02:31] DEBUG Clearing status messages: KeyPressEvent [22:02:31] DEBUG EventHandlerMixin: handling h for mode library [22:02:31] DEBUG EventHandlerMixin: found command for event [22:02:31] DEBUG Running 'scroll left' [22:02:31] DEBUG Split text into parts '['scroll left']' [22:02:31] DEBUG Handling part 0 'scroll left' [22:02:31] DEBUG Retrieving instance from objreg for 'Library.scroll' [22:02:31] DEBUG Scrolling in direction 'Direction.Left' [22:02:31] DEBUG Changing directory to '/home/jeanclaude/Documents/Programming' [22:02:31] DEBUG Updating library for new/reloaded directory [22:02:31] DEBUG Retrieved stored position from path: 17 [22:02:31] DEBUG Selecting library row 17 [22:02:31] DEBUG Monitoring /home/jeanclaude/Documents/Programming [22:02:31] DEBUG Directory change completed [22:02:31] DEBUG Updating status: ran command [22:02:31] DEBUG Ran 'scroll left' succesfully [22:02:31] DEBUG Clearing status messages: KeyPressEvent [22:02:31] DEBUG EventHandlerMixin: handling h for mode library [22:02:31] DEBUG EventHandlerMixin: found command for event [22:02:31] DEBUG Running 'scroll left' [22:02:31] DEBUG Split text into parts '['scroll left']' [22:02:31] DEBUG Handling part 0 'scroll left' [22:02:31] DEBUG Scrolling in direction 'Direction.Left' [22:02:31] DEBUG Changing directory to '/home/jeanclaude/Documents' [22:02:31] DEBUG Updating library for new/reloaded directory [22:02:31] DEBUG Retrieved stored position from path: 12 [22:02:31] DEBUG Selecting library row 12 [22:02:31] DEBUG Monitoring /home/jeanclaude/Documents [22:02:31] DEBUG Directory change completed [22:02:31] DEBUG Updating status: ran command [22:02:31] DEBUG Ran 'scroll left' succesfully [22:02:32] DEBUG Clearing status messages: KeyPressEvent [22:02:32] DEBUG EventHandlerMixin: handling k for mode library [22:02:32] DEBUG EventHandlerMixin: found command for event [22:02:32] DEBUG Running 'scroll up' [22:02:32] DEBUG Split text into parts '['scroll up']' [22:02:32] DEBUG Handling part 0 'scroll up' [22:02:32] DEBUG Scrolling in direction 'Direction.Up' [22:02:32] DEBUG Selecting library row 11 [22:02:32] DEBUG Updating status: ran command [22:02:32] DEBUG Ran 'scroll up' succesfully [22:02:32] DEBUG Clearing status messages: KeyPressEvent [22:02:32] DEBUG EventHandlerMixin: handling k for mode library [22:02:32] DEBUG EventHandlerMixin: found command for event [22:02:32] DEBUG Running 'scroll up' [22:02:32] DEBUG Split text into parts '['scroll up']' [22:02:32] DEBUG Handling part 0 'scroll up' [22:02:32] DEBUG Scrolling in direction 'Direction.Up' [22:02:32] DEBUG Selecting library row 10 [22:02:32] DEBUG Updating status: ran command [22:02:32] DEBUG
When deleting images using the
x
key, the image does not do not disappear from the thumbnail view under certain circumstances.Reproduce:
x
Expected Behaviour
Actual Behaviour:
EDIT: I have just noticed another case where the thumbnail view keeps displaying deleted imaged:
Reproduce:
m
:open %m
:delete %m
Expected Behaviour
Actual Behaviour