Question about Filter.cpp
Hi, could you explain what Filter.cpp does? Thank you very much!
it filters out the contents in the active explorer window. The edit box in StExBar at the very right can be used as a filter. Just enter some text there and you'll see. The filter is only active if configured so in the settings: under the checkbox "Hide edit box" (leave unchecked) you can select what the edit box is used for: either select "Filter" or "Auto".
If you selected "Filter", just enter text and watch how it filters all shown files. If you selected "Auto", enter "f filtertext" (the 'f' in front indicates that the text after it is to be used as the filter text).
Cool. I noticed there is a slight delay in filtering. Is there an intentional pause to wait for keyboard input to stop, or is the delay a result of the crazy Windows API?
On Fri, Jun 21, 2019 at 2:36 PM Stefan Küng [email protected] wrote:
it filters out the contents in the active explorer window. The edit box in StExBar at the very right can be used as a filter. Just enter some text there and you'll see. The filter is only active if configured so in the settings: under the checkbox "Hide edit box" (leave unchecked) you can select what the edit box is used for: either select "Filter" or "Auto".
If you selected "Filter", just enter text and watch how it filters all shown files. If you selected "Auto", enter "f filtertext" (the 'f' in front indicates that the text after it is to be used as the filter text).
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/stefankueng/tools/issues/20?email_source=notifications&email_token=AGLNTDQZ7S7XFCBHCEUXTO3P3UNS5A5CNFSM4H2JDOWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYJIBGY#issuecomment-504529051, or mute the thread https://github.com/notifications/unsubscribe-auth/AGLNTDV7KE5XKII7JRN7GLTP3UNS5ANCNFSM4H2JDOWA .
The pause is intentional so the filter does not start while the user is still typing. But pressing enter will start the filter immediately. And a double click on the edit box will clear the filter immediately.
Great, thank you very much for your responses and for sharing the code.
On Fri, Jun 21, 2019 at 2:49 PM Stefan Küng [email protected] wrote:
The pause is intentional so the filter does not start while the user is still typing. But pressing enter will start the filter immediately. And a double click on the edit box will clear the filter immediately.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/stefankueng/tools/issues/20?email_source=notifications&email_token=AGLNTDTVDLX65NCO36XCXFLP3UPFDA5CNFSM4H2JDOWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYJJFCQ#issuecomment-504533642, or mute the thread https://github.com/notifications/unsubscribe-auth/AGLNTDRILV4HYDMYXSOUGZTP3UPFDANCNFSM4H2JDOWA .
Oh, one other question: do you happen to know what IShellFolderViewDual3::FilterView is? The documentation isn't very informative. https://docs.microsoft.com/en-us/windows/desktop/api/shldisp/nf-shldisp-ishellfolderviewdual3-filterview. I was wondering if it accomplishes something similar.
On Fri, Jun 21, 2019 at 3:07 PM Adam Topel [email protected] wrote:
Great, thank you very much for your responses and for sharing the code.
On Fri, Jun 21, 2019 at 2:49 PM Stefan Küng [email protected] wrote:
The pause is intentional so the filter does not start while the user is still typing. But pressing enter will start the filter immediately. And a double click on the edit box will clear the filter immediately.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/stefankueng/tools/issues/20?email_source=notifications&email_token=AGLNTDTVDLX65NCO36XCXFLP3UPFDA5CNFSM4H2JDOWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYJJFCQ#issuecomment-504533642, or mute the thread https://github.com/notifications/unsubscribe-auth/AGLNTDRILV4HYDMYXSOUGZTP3UPFDANCNFSM4H2JDOWA .
I can only guess: but in earlier windows versions you could configure explorer to show filter boxes. And as far as I know, it only filters for one string, not multiple.
Okay, thanks again.
On Fri, Jun 21, 2019 at 3:37 PM Stefan Küng [email protected] wrote:
I can only guess: but in earlier windows versions you could configure explorer to show filter boxes. And as far as I know, it only filters for one string, not multiple.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/stefankueng/tools/issues/20?email_source=notifications&email_token=AGLNTDWXHGK35MPTS74NSBTP3UUYBA5CNFSM4H2JDOWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYJM2XA#issuecomment-504548700, or mute the thread https://github.com/notifications/unsubscribe-auth/AGLNTDW657BGS6WTTAL4I63P3UUYBANCNFSM4H2JDOWA .
Sorry, one more question: what command actually triggers the folder to change the files listed in the view? Is it SendMessage? Or something else? I can't quite figure it out from looking at the source. Thanks again!
the IShellFolderView object has AddObject and RemoveObject methods. The update is done with the call to SetRedraw(true).
To avoid having the view refresh for every added/removed object, first SetRedraw(false) is called which prevents the view from redrawing, until SetRedraw(true) is called.
Thanks! Is there any trick to getting the IShellFolderView interface? I’ve defined the IID, like in your code, and I try querying the interface (from either an IShellView or IFolderView), but for some reason I can’t successfully get it. I know IShellFolderView is technically no longer supported, but your code still seems to work. Is there anything I'm missing? (I’m on Windows 8.1 by the way.) Thank you very much your time and assistance!
From: Stefan Küng [email protected] Sent: Saturday, July 20, 2019 4:49 AM To: stefankueng/tools [email protected] Cc: amtopel [email protected]; Author [email protected] Subject: Re: [stefankueng/tools] Question about Filter.cpp (#20)
the IShellFolderView object has AddObject and RemoveObject methods. The update is done with the call to SetRedraw(true).
To avoid having the view refresh for every added/removed object, first SetRedraw(false) is called which prevents the view from redrawing, until SetRedraw(true) is called.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/stefankueng/tools/issues/20?email_source=notifications&email_token=AGLNTDSOFQEPUYB7PVIG4RTQALGRJA5CNFSM4H2JDOWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2NKAPA#issuecomment-513450044 , or mute the thread https://github.com/notifications/unsubscribe-auth/AGLNTDXNREKLC26DNCSZMHLQALGRJANCNFSM4H2JDOWA .