Finally! :-)
That makes sense... so I can use the default columns for Downloads and extended columns for the many folders where it helps to know when files have been sync'd or the length of videos.
Problem selecting new files
Forum rules
READ THIS AND DO IT!!!
Please include the following information:
1) Your XYplorer Version (e.g., v28.00.0801)
2) Your Windows Version (e.g., Win 11)
3) Your Screen Scaling Percentage (e.g., 125%).
We strongly recommend adding your Windows Version and Screen Scaling Percentage to the Location field in your Profile or to your Signature. That way, you only have to type them once, and we won't have to search for that vital information.
When attaching an Image, please use the Attachment tab at the bottom of your post and click "Add files".
READ THIS AND DO IT!!!
1) Your XYplorer Version (e.g., v28.00.0801)
2) Your Windows Version (e.g., Win 11)
3) Your Screen Scaling Percentage (e.g., 125%).
Re: Problem selecting new files
Alright, hearing that slow columns can be problematic made it easier to capture the bug.
I made a test folder with some files and started a batch script that renames "test.txt" to "test.bat" and back. The recorded GIFs are best viewed with a video player like MPC-HC, frame by frame with Ctrl+Right/Left (VLC does not play the GIF).
In the first GIF, I have the slow column Custom size circles visible, and renaming happens every 5 seconds.
I mark "test_158.txt" and keep Ctrl pressed. Just when the batch renaming triggers a list refresh, I right-click "test_152.txt". File "test_152.txt", under the cursor, gets replaced by "test_009.zip", and the context menu shows up afterwards. Still keeping Ctrl pressed, I left-click "test_024.zip". In that moment, "test_024.zip" turns into "test_010.zip". Once the re-sorting is finished, I am unaware that "test_010.zip" got selected because that file is off screen. I release the Ctrl key and right-click "test_152.txt", but nothing happens because of another list refresh. The second right-click and delete on "test_152.txt" reveals that not one but two files were selected.
In the second GIF, I removed the slow column and renaming happens every second. The file sorting bug is not present, but XYplorer doesn't register mouse clicks when a list refresh is happening. I this a separate second bug?
It can be argued that slow columns come with a drawback. But the list was sorted by Modified, not by the slow Circle size. Does XYplorer not sort by Modified first, and then calculate and draw the size circles?
I noticed that the two wrongly placed files "test_009.zip" and "test_010.zip" were at positions 5 and 6 in the list. These are their positions in the list when it is sorted by Name!
Maybe triggering a list refresh sorts it by Name internally first, before the list gets sorted by the selected column and redrawn. When users interact with the list during a refresh, the wrong files can be selected and XYplorer briefly draws the internally sorted file. This does happen sometimes without interactions, where it doesn't cause trouble, but it is visible.
I made a test folder with some files and started a batch script that renames "test.txt" to "test.bat" and back. The recorded GIFs are best viewed with a video player like MPC-HC, frame by frame with Ctrl+Right/Left (VLC does not play the GIF).
In the first GIF, I have the slow column Custom size circles visible, and renaming happens every 5 seconds.
I mark "test_158.txt" and keep Ctrl pressed. Just when the batch renaming triggers a list refresh, I right-click "test_152.txt". File "test_152.txt", under the cursor, gets replaced by "test_009.zip", and the context menu shows up afterwards. Still keeping Ctrl pressed, I left-click "test_024.zip". In that moment, "test_024.zip" turns into "test_010.zip". Once the re-sorting is finished, I am unaware that "test_010.zip" got selected because that file is off screen. I release the Ctrl key and right-click "test_152.txt", but nothing happens because of another list refresh. The second right-click and delete on "test_152.txt" reveals that not one but two files were selected.
In the second GIF, I removed the slow column and renaming happens every second. The file sorting bug is not present, but XYplorer doesn't register mouse clicks when a list refresh is happening. I this a separate second bug?
It can be argued that slow columns come with a drawback. But the list was sorted by Modified, not by the slow Circle size. Does XYplorer not sort by Modified first, and then calculate and draw the size circles?
I noticed that the two wrongly placed files "test_009.zip" and "test_010.zip" were at positions 5 and 6 in the list. These are their positions in the list when it is sorted by Name!
Maybe triggering a list refresh sorts it by Name internally first, before the list gets sorted by the selected column and redrawn. When users interact with the list during a refresh, the wrong files can be selected and XYplorer briefly draws the internally sorted file. This does happen sometimes without interactions, where it doesn't cause trouble, but it is visible.
XYplorer x64 (often the latest beta), Windows 10 Pro 22H2, 3840x2160 scaling 100%
-
admin
- Site Admin
- Posts: 65390
- Joined: 22 May 2004 16:48
- Location: Win8.1, Win10, Win11, all @100%
- Contact:
Re: Problem selecting new files
When you open the black boxes and reveal the rename script and the slow column script, I can look it into when I find some time, but generally: Caveat scriptor! 
FAQ | XY News RSS | XY X
Re: Problem selecting new files
Oh ja, sorry 
The batch script was run in a command prompt to simulate changes to the file system by an external program:
The Custom size circles were introduced in v17.80.0001 and I use a slightly modified version of the original script:
I know that I can use the fast macro instead. But the custom circle sizes and colours with a script are important to me because they allow for a visually more intuitive size representation. Especially the colour change from dark blue to light blue to orange to red makes identifying file sizes much quicker.
Anyways, this isn't about my stubbornness to use a script instead of a macro. I don't think re-drawing a custom column slowly due to a script would be problematic in any way. The problem is that the other (fast) columns not only are affected by the slow column, but that the effect is causing a glitch that can lead to the selection of random files by accident and without the user's knowledge. The user sees a list sorted e.g. by date, but internally it is sorted by name with files/folders at vastly different positions from what can be seen on the screen. Essentially, with a slow column active, users mustn't select anything when e.g. a browser downloads a file into the same folder.
The batch script was run in a command prompt to simulate changes to the file system by an external program:
Code: Select all
:loop
ren test.txt test.bat
TIMEOUT /T 5
ren test.bat test.txt
TIMEOUT /T 5
GOTO loop
Code: Select all
$size = "<cc_size>";
switch (true){
case $size == 0: return '';
case $size < 1 * 1024: return ">draw.circle 4, 0088ee, 150";
case $size < 100 * 1024: return ">draw.circle 8, 0088ee, 150";
case $size < 1 * 1024 * 1024: return ">draw.circle 12, 0088ee, 150";
case $size < 10 * 1024 * 1024: return ">draw.circle 16, 00aaff, 200; >draw.circle 4, FF8000, 240";
case $size < 100 * 1024 * 1024: return ">draw.circle 16, 00aaff, 200; >draw.circle 8, FF8000, 240";
case $size < 1 * 1024 * 1024 * 1024: return ">draw.circle 16, 00aaff, 200; >draw.circle 12, FF8000, 240";
case $size < 4 * 1024 * 1024 * 1024: return ">draw.circle 16, FF8000, 240";
case $size < 8 * 1024 * 1024 * 1024: return ">draw.circle 16, FF5500, 240; >draw.circle 10, FF8000, 255";
case $size < 12 * 1024 * 1024 * 1024: return ">draw.circle 16, FF5500, 240; >draw.circle 8, FF8000, 255";
default: return ">draw.circle 16, FF5500, 220";
}Anyways, this isn't about my stubbornness to use a script instead of a macro. I don't think re-drawing a custom column slowly due to a script would be problematic in any way. The problem is that the other (fast) columns not only are affected by the slow column, but that the effect is causing a glitch that can lead to the selection of random files by accident and without the user's knowledge. The user sees a list sorted e.g. by date, but internally it is sorted by name with files/folders at vastly different positions from what can be seen on the screen. Essentially, with a slow column active, users mustn't select anything when e.g. a browser downloads a file into the same folder.
XYplorer x64 (often the latest beta), Windows 10 Pro 22H2, 3840x2160 scaling 100%
-
admin
- Site Admin
- Posts: 65390
- Joined: 22 May 2004 16:48
- Location: Win8.1, Win10, Win11, all @100%
- Contact:
Re: Problem selecting new files
Thanks! Could you also send your XYplorer.ini to support. I have to reproduce the auto-refresh settings exactly.
FAQ | XY News RSS | XY X
Re: Problem selecting new files
There is no need to test my configuration as the behaviour is the same in a fresh installation. Of course you have to add the Custom size circles column first. I was able to observe both, the inconsistency between what the user sees and how files are actually ordered internally during a list refresh with a slow column, and mouse clicks not being registered (anywhere on the XYplorer UI?!) during a list refresh even when no slow column is present.
XYplorer x64 (often the latest beta), Windows 10 Pro 22H2, 3840x2160 scaling 100%
-
admin
- Site Admin
- Posts: 65390
- Joined: 22 May 2004 16:48
- Location: Win8.1, Win10, Win11, all @100%
- Contact:
Re: Problem selecting new files
Yep, I can see it now. The only solution is a radical block: no clicks or keys while the list isn't completely loaded and sorted. Next beta (32/64).
FAQ | XY News RSS | XY X
Re: Problem selecting new files
Oh, a radical block sounds radical 
Any chance of getting some crazy multithreaded asynchronous magic sometime in the future? (far future, no pressure)
Or maybe an XYpu accelerator PCIe card?
But seriously, I think it would be acceptable for slow columns to update at a slower speed than the fast standard columns. They could be greyed out until they are done refreshing. Input for these greyed out columns must be blocked, but users can interact with the fast columns that finished refreshing already. If a slow column was selected for sorting, all columns would have to be greyed out and blocked until that slow column is done.
Here is another idea: Have an animated waiting/loading circle in the slow column while it is greyed out to indicate why it is inaccessible or frozen right now. (These are really just ideas to spark interest and not requests)
For now, will you turn the mouse cursor into a waiting/loading circle to show users that inputs are blocked?
Any chance of getting some crazy multithreaded asynchronous magic sometime in the future? (far future, no pressure)
Or maybe an XYpu accelerator PCIe card?
But seriously, I think it would be acceptable for slow columns to update at a slower speed than the fast standard columns. They could be greyed out until they are done refreshing. Input for these greyed out columns must be blocked, but users can interact with the fast columns that finished refreshing already. If a slow column was selected for sorting, all columns would have to be greyed out and blocked until that slow column is done.
Here is another idea: Have an animated waiting/loading circle in the slow column while it is greyed out to indicate why it is inaccessible or frozen right now. (These are really just ideas to spark interest and not requests)
For now, will you turn the mouse cursor into a waiting/loading circle to show users that inputs are blocked?
XYplorer x64 (often the latest beta), Windows 10 Pro 22H2, 3840x2160 scaling 100%
-
admin
- Site Admin
- Posts: 65390
- Joined: 22 May 2004 16:48
- Location: Win8.1, Win10, Win11, all @100%
- Contact:
Re: Problem selecting new files
Crazy multithreaded asynchronous magic is planned for the future. For now I'll stick with the paleolithic block method.
FAQ | XY News RSS | XY X
Re: Problem selecting new files
Thanks for tracing the original problem which took more skill than I have!
I like the idea of leaving slow columns to be displayed after a faster sort on the other columns (unless a sort on a slow column was requested).
But blocking selection during sorting sounds a reasonable next step.
I like the idea of leaving slow columns to be displayed after a faster sort on the other columns (unless a sort on a slow column was requested).
But blocking selection during sorting sounds a reasonable next step.
XYplorer Beta Club