Add virtual directory feature to Tracker

Similar to stored queries, files of the virtual directory type behave
like directories -- i.e. they open in a list-mode Tracker window and
show up as an item with submenu in navigation menus. The file itself is
a plain text file in driver settings format. It can have an arbitrary
number of "directory" entries, which specify the paths of (actual)
directories for which the virtual directory provides a merged view. The
view will not show duplicate entries. For non-directory entries the
first one encountered (according to the order the directory paths are
specified in the file) will be shown. A subdirectory entry will again
behave like a virtual directory.

The support in Tracker isn't perfect yet. I'm afraid major refactoring
would be necessary to get it there.

The virtual directory file type uses a differently colored version of
the folder icon. Alternatives welcome.
This commit is contained in:
Ingo Weinhold
2013-06-29 14:58:51 +02:00
parent de85051c81
commit 1c29b26e7c
28 changed files with 2175 additions and 24 deletions
@@ -0,0 +1,24 @@
resource(0, "BEOS:TYPE") #'MIMS' "application/x-vnd.Be-meta-mime";
resource(1, "META:TYPE") "application/x-vnd.haiku-virtual-directory";
resource(2, "META:S:DESC") #'MSDC' "Virtual Directory";
resource(3, "META:L:DESC") #'MLDC'
"Virtual directory merging the contents of multiple actual directories";
resource(5, "META:PREF_APP") #'MSIG' "application/x-vnd.Be-TRAK";
resource(6, "META:ICON") #'VICN' array {
$"6E636966070500020006023841813C9B3BBEAB393A4F584B254D4A7AEB009BE2"
$"FFFF5A6E82020016022C60673CAAABBEBB082E6EFB4BBA064A22B000FFFF8E02"
$"0006022C25F43C6917BEBB082E6EFB4BAFBF497E0B0082AAC8FF40407C033D3D"
$"5D020016023AE3B43C79DCBE5BC53CC0974B42AC47CA41009AFF50040165070A"
$"064A5D505D545958595E53504F0A04232F2D494A5B463E0A04232F463E4A5BC3"
$"233C0A063A282E494A5A5C2C502A4C2C0A04302B30494A5951360A04302B5136"
$"4A5954BB1E0A0A232F2D494A5B5C2C502A4C2C3A28382D302BB957BAA7080A06"
$"0100000A0001061815FF01178400040A00010618001501178600040A03010300"
$"0A020104000A050105000A010101000A04010200"
};