Folder Filter bug

The place for threads about version 1.x of TimoSoft ExplorerTreeView.
Post Reply
Manuel Keller

Folder Filter bug

Post by Manuel Keller »

Hallo Timo,
ich habe im Explorer Treeview einen bug? entdeckt.
Wenn man als FolderFilter "Eigene Dateien" angibt,
werden die Eigenen Dateien zwar ausgeblendet, aber der Verzeichnisbaum der Laufwerke ist dann auch nicht mehr vorhanden.
Ich möchte die Eigenen Dateien ausblenden, weil diese mir bei einem Klick darauf nicht den absoluten Pfad wiedergeben(Mit Laufwerk und Systemverzeichnis). Oder wird dieses Feature irgend wann noch eingebaut?
Ansonsten finde Ich das Teil echt genial, weiter so!!!


MfG

Manuel Keller

www.zetwin.de
[hr]
Translation for visitors not speaking German:
Hello Timo,
maybe I have found a bug in ExplorerTreeView. If you set FolderFilters to "My Documents", the documents are not shown any longer, but the folder-tree of the drives is missing then, too.
I want to hide My Documents, because clicking an item in this folder doesn't return the absolute path (including drive and folder). Or are you planning to implement this feature?
Besides this tool is really ingenious, keep it up!!!

With kind regards

Manuel Keller

www.zetwin.de
User avatar
TiKu
Administrator
Administrator
Posts: 832
Joined: 28 Sep 2004, 21:10
Location: München
Contact:

Post by TiKu »

Hallo Manuel,

die Filter-Features funktionieren ein wenig anders: Ein einfaches "Eigene Dateien" bewirkt, dass nur Ordner mit dem Namen "Eigene Dateien" angezeigt werden. Um Ordner mit diesem Namen auszublenden, muss der Filter "/Eigene Dateien" lauten. Das funktioniert bei mir auch.
Allerdings scheint da dennoch ein kleiner Bug vorzuliegen, da der virtuelle Ordner "Eigene Dateien" zwar als Ordner des Dateisystems behandelt wird, ExTvw.ItemIsFSFolder also True zurückgibt (das ist ein Sonderfall und so erwünscht), aber die Filter nicht immer greifen. Legt man auf dem Desktop zusätzlich noch einen Ordner "Eigene Dateien" an, wird dieser korrekt gefiltert. Ich schaue mir das mal genauer an...

Davon abgesehen, ist es aber nicht unbedingt ratsam, "Eigene Dateien" auf diese Weise zu filtern, denn auf fremdsprachigen Windows-Versionen heißt dieser Ordner anders. Ich empfehle deshalb die Verwendung der FireBeforeInsertItem-Eigenschaft in Verbindung mit dem Event BeforeInsertItem.
Allerdings ist das wahrscheinlich gar nicht nötig. Denn man kann auch für Einträge im virtuellen "Eigene Dateien"-Ordner mittels ItemHandleToFSPath() einen gültigen Pfad ermitteln. Diese Methode gibt immer einen Dateisystempfad zurück (sofern der Item einen hat), während die Path-Eigenschaft einen Pfad zurückgibt, der die Position des Items in der Shell am besten beschreibt.

Timo
[hr]
Translation for visitors not speaking German:
Hello Manuel,

the filtering features work a little bit different: A simple "My Documents" causes, that only folders named "My Documents" are shown. To hide folders with this name, the filter must be "/My Documents". This works for me.
Nevertheless, there seems to be a small bug, because the virtual folder "My Documents" indeed gets handled as a filesystem folder, so ExTvw.ItemIsFolder returns True (this is a special case and intended), but the filters don't work in all cases. If you create an usual folder named "My Documents" on the Desktop, this folder gets filtered correctly. I'll take a closer look on this...

Apart from the wrong usage of FolderFilters, I don't recommend filtering "My Documents" this way, because on foreign-language versions of Windows this folder has different names. Instead I recommend using the FireBeforeInsertItem property together with the BeforeInsertItem event.
But probably filtering isn't required at all. The ItemHandleToFSPath() method will return valid paths for sub-items of "My Documents". This method always returns a valid filesystem path (at least if the item has one), whereas the Path property returns a path, that best describes the item's position within the whole namespace.

Timo
Last edited by TiKu on 02 Jan 2005, 00:36, edited 1 time in total.
Crunching for Fab36_Folding-Division at Folding@Home. Join Fab36/Fab30! - Folding@Home and BOINC
Boycott DRM! Boycott HDCP!
Manuel Keller

Post by Manuel Keller »

Hallo Timo,
war genau das was Ich suchte (ItemHandleToFSPath() ).
Als kleine Anregung:
Wie wäre es mit einer Filelist im Explorerstyle, mit allen Ansichtsoptionen wie im Explorer, wäre ein Tolles Duo(Explorertreeview und diese Filelist)
Ansonsten mach weiter so!


MfG

Manuel Keller
[hr]
Translation for visitors not speaking German:
Hello Timo,
ItemHandleToFSPath() was exactly what I was looking for.
A small encouragement:
How about a filelist control in explorer style - with all view options like in Explorer. This would be a great duo: ExplorerTreeView and this filelist control.
Otherwise keep it up!


With kind regards

Manuel Keller
User avatar
TiKu
Administrator
Administrator
Posts: 832
Joined: 28 Sep 2004, 21:10
Location: München
Contact:

Post by TiKu »

Jo, das Ding nennt sich ExplorerListView, war schonmal fast fertig (so vor ca. 2 Jahren) und wurde dann wieder eingestampft, weil es viel zu langsam war und daran auch nicht viel zu ändern war. Zur Zeit schreibe ich aber (in C++) an ExplorerTreeView 2.0 und mehr oder weniger parallel auch an einem neuen ExplorerListView. Mit Terminangaben bin ich inzwischen extrem vorsichtig geworden :oops:, aber von ExplorerTreeView 2.0 wird es in naher Zukunft die erste Beta geben.

Timo
[hr]
Translation for visitors not speaking German:
Yeah, this control is called ExplorerListView, was almost finished round about 2 years ago and was canceled, because it was far too slow and there wasn't much room for improvements. Presently I'm writing (using C++) ExplorerTreeView 2.0 and more or less parallel also a new ExplorerListView. I've become extremly cautious when it comes to deadlines :oops:, but there'll be a first beta of ExplorerTreeView 2.0 in the near future.

Timo
Crunching for Fab36_Folding-Division at Folding@Home. Join Fab36/Fab30! - Folding@Home and BOINC
Boycott DRM! Boycott HDCP!
User avatar
TiKu
Administrator
Administrator
Posts: 832
Joined: 28 Sep 2004, 21:10
Location: München
Contact:

Post by TiKu »

TiKu wrote:Allerdings scheint da dennoch ein kleiner Bug vorzuliegen, da der virtuelle Ordner "Eigene Dateien" zwar als Ordner des Dateisystems behandelt wird, ExTvw.ItemIsFSFolder also True zurückgibt (das ist ein Sonderfall und so erwünscht), aber die Filter nicht immer greifen. Legt man auf dem Desktop zusätzlich noch einen Ordner "Eigene Dateien" an, wird dieser korrekt gefiltert. Ich schaue mir das mal genauer an...
Das ist kein Bug. Die Filter-Features nutzen nicht den Anzeigenamen eines Items, sondern den Parsing-Namen. Bei normalen Dateisystemordnern sind die beiden gleich, bei "Eigene Dateien" ist dagegen der Parsing-Name "::{450D8FBA-AD25-11D0-98A8-0800361B1103}". Wenn man also im Filter statt "Eigene Dateien" "::{450D8FBA-AD25-11D0-98A8-0800361B1103}" nutzt, funktioniert es - und das sogar sprachunabhängig.
[hr]
Translation for visitors not speaking German:
TiKu wrote:Nevertheless, there seems to be a small bug, because the virtual folder "My Documents" indeed gets handled as a filesystem folder, so ExTvw.ItemIsFolder returns True (this is a special case and intended), but the filters don't work in all cases. If you create an usual folder named "My Documents" on the Desktop, this folder gets filtered correctly. I'll take a closer look on this...
It's not a bug. The filter features use the item's parsing name instead of its display name. Both are the same for common filesystem folders, but "My Documents" has a parsing name of "::{450D8FBA-AD25-11D0-98A8-0800361B1103}". So if you use "::{450D8FBA-AD25-11D0-98A8-0800361B1103}" instead of "My Documents" in your filters, it's working - even language-independent.
Crunching for Fab36_Folding-Division at Folding@Home. Join Fab36/Fab30! - Folding@Home and BOINC
Boycott DRM! Boycott HDCP!
Post Reply