History log of /haiku/src/kits/tracker/SettingsViews.h
Revision Date Author Comments
# 7f819534 05-Aug-2021 John Scipione <jscipione@gmail.com>

Tracker: Add thumbnail support

Define thumbnail attributes in Attributes.h:
Media:Thumbnail to store the thumbnail,
Media:Thumbnail:CreationTime to see if thumbs need to be regenerated.

Store 128x128 thumbnail in attribute, for icon sizes smaller than
128x128 down-scale the 128x128 thumbnail. Use B_FILTER_BITMAP_BILINEAR
to down-scale the image using the bilinear scaling algorithm which
creates nicer looking thumbnails than the default scaling algorithm.

Store thumbnails as WebP images which compress smaller than PNGs and
fit in the inode better at 128x128.

Check the file's modification time in GetFileIconFromAttr() and compare
it to the thumbnail creation time. If the file has not been modified
since the last time we generated thumbnails return the thumbnail from
the attribute, otherwise fetch a new thumbnail with GetThumbnailIcon().

Add "Generate image thumbnails" Tracker setting. Default is turned off
for now. To generate image thumbnails you must first turn this setting
on in Tracker Windows preferences.

Spawn a get_thumbnail() thread to generate thumbnails and retrieve them
later on from the window thread to fill out into the icon. This should
improve responsiveness of generating thumbnails from a folder with a
lot of images. The generator thread will write the thumbnail data to an
attribute if on writable BFS volume.

If not on writable BFS volume, the generator thread will send the data
back to the original thread through a port by calling write_port().

When the thread is finished creating the thumbnail it sends a message
back to the Tracker application thread to update the pose which
instructs the window thread to look for an thumbnail. It either finds a
thumbnail in an attribute, or picks up the thumbnail data that has been
sent through write_port() using read_port().

This works on both read-write and read-only BFS volumes but it still
depends on the presence of a BEOS:TYPE parameter to have been written
to the volume before it became read-only. Thumbnail generation does not
work on other read-only volumes for example an ISO-9660 CD, but it does
work on read-only BFS volumes for example the BeOS R5 CD.

Move BPrivate::CheckNodeIconHintPrivate() from BNodeInfo to Tracker
Model CheckNodeIconHint(). Create Model::CheckAppIconHint() and look
for a vector icon or mini and large icon in that method. Check that
the base type is directory, volume, trash, desktop, or if executable
call CheckAppIconHint().

Add 1 to temp_name to fix the following warning:
src/kits/tracker/FSUtils.cpp:2437:12: note: 'snprintf' output 3 or more
bytes (assuming 267) into a destination of size 266

Rename temp_name to tempName following our style guidelines. Use
strlcpy() and strlcat() instead of strcpy() to safely copy the string.
This fixes thumbnail generation on 64-bit Haiku.

Change-Id: I7f927a5a1f8cf65e4b1aa1e0eb55bbfae87fd969
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3163
Reviewed-by: John Scipione <jscipione@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 4e357263 29-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: add "hide dotfiles" option to the GUI & enable it by default.

Changing this many lines of code to add a single boolean preference
is absolutely insane. We need a new preference-tracking system, and
one that can be reused in other applications, too.

Fixes #9200.


# e741289a 22-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: fix uninitialized members, CID 610133


# 68295c92 22-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: fix uninitialized members, CID 610132


# dd03c93f 16-Jul-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Move automount settings to the Tracker preferences

* Avoids the ugly "button that opens another window" UI paradigm in
Tracker preferences.
* Makes it possible to revert changes to the automount settings as the
Tracker preferences window has a revert button.


# f435b678 20-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: style fixes to SettingsViews classes


# 7fd5989d 02-Jun-2013 John Scipione <jscipione@gmail.com>

Tracker Settings: Style fixes

* Add spaces around {}'s
* Add 2 blank lines between class declarations in header


# 62bcb75c 02-Jun-2013 John Scipione <jscipione@gmail.com>

Tracker Settings: Re-factor includes

* Remove includes from header and use bare class definitions instead
* Add the includes from the header to the cpp file
* Remove Alert.h include from cpp file, not used.
* Remove TextControl.h include from header, not used.
* Add Point.h include to cpp file, we do use that.
* Reorder includes according to style guidelines


# 1baa2211 10-Feb-2013 Humdinger <humdingerb@gmail.com>

Removed Trash options from Tracker prefs.

As discussed [1][2], using a Trash is in the interest of the
vast majority of users. The setting is still present in the
Tracker settings file. SHIFT+DELETE will still bypass the
Trash.

[1]
http://www.freelists.org/post/haiku-commits/haiku-hrev45134-srckitstracker,4
[2] http://www.freelists.org/post/haiku/Removing-Trackers-Trash-options

Please enter the commit message for your changes. Lines starting


# 163a3948 09-Feb-2013 Humdinger <humdingerb@gmail.com>

Revert "Renamed Tracker option "Don't move files to Trash" (#9352)"

This reverts commit 45f77dcd7029914ccd99178dfb333eb68c7af9e5.


# 45f77dcd 06-Jan-2013 Humdinger <humdingerb@gmail.com>

Renamed Tracker option "Don't move files to Trash" (#9352)

Renamed that option as it is the only negatively phrased to
"Move deleted files to Trash first" and also the option below
that to "Ask before deleting for good".
Also renamed every function name etc. in that regard and also
settings string of the Tracker settings file.


# b05aa8b5 27-Jul-2012 John Scipione <jscipione@gmail.com>

Style changes in Tracker, no functional change.

Manual whitespace cleanup
Change instances of const char * to const char*
Convert /* */ C style comments to // C++ style comments


# 894cf4f3 08-Aug-2010 Alexandre Deckner <alex@zappotek.com>

* Apply patch from Takashi Murai: use layouting for Tracker settings window/views.
Slight modifications to the patch:
Put back passing the view names (eventhough it seem useless atm).
One or two small indenting issues.
Implemented your todo (listview width adapts to the longest item).

Thanks a lot.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37978 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f2ec5c2 05-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Remove "date & time" view from tracker settings, since it will soon use the locale kit settings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37929 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 545ebde0 30-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

Implement type ahead filtering (this time for real and without abusing the
vertically sorted pose list). When enabled typing will filter based on the
currently visible attribute columns. Using shift-space as a delimiter
independent filtering strings can be typed, so you can filter based on multiple
attributes at once to refine results while you type. Filtering stays active
until you cancel it using the escape key. While the filtered result is displayed
all normal file operations can be used. Using the return key while filtering
auto-selects and opens the first filter result, allowing for fast traversal
through directories and directly opening the topmost result.

* Introduces fFilteredPoseList which stores the active filter result. The list
is only used when filtering is currently active, so no syncing is required
otherwise.
* Some minor adjustments to leave out invalidations where non-visible poses are
updated.
* Account for the now possible multiple lists throughout BPoseView.
* Add filter string output to the CountView and made that one a bit wider.
* Added all the settings-cruft for type ahead filtering (defaults to off).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35339 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c1b274fd 12-Oct-2009 Stephan Aßmus <superstippi@gmx.de>

* Removed auto mounter code from Tracker.
* Tracker forwards auto mounter related messages to the mount_server.
* Rewrote AutoMounterSettings to not know AutoMounter and use
the layout-management.
* Moved the "Eject When Unmounting" setting into the Mount Settings.
* Launch the mount_server during boot, but delay the script until all
previously mounted volumes have been mounted. This solves some annoying
timing bugs during boot. For example when you have desktop backgrounds
on other volumes and some servers don't deal well with the situation
of links to add-ons on other volumes becoming valid with a delay...
* src/kits/tracker/Commands.h includes the private headers/private/
mount/MountServer.h header, which made adjustments to the DiskUsage
Jamfile necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33555 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6eb01296 23-Aug-2007 Ryan Leavengood <leavengood@gmail.com>

Patch from Justin O'Dell for bug #254, fixing the Defaults button behavior
for the Appearance and Menu prefs, and Tracker's settings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22049 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 190650c3 25-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

Imported SettingsViews.cpp 1.11, .h 1.9, TrackerSettingsWindow.cpp 1.8, .h 1.3,
and SelectionWindow.cpp 1.3.
This fixes bug #656.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17921 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7befa79a 01-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

Imported SettingsViews.cpp 1.10, FilePanelPriv.cpp 1.14, TrackerSettingsWindow.cpp 1.7,
SettingsViews.h 1.8, FSClipboard.cpp 1.12, PoseView.cpp 1.60,
TrackerSettingsWindow.h 1.2, TrackerSettings.cpp 1.11 from the OpenTracker repository.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17688 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02be5353 22-May-2005 Axel Dörfler <axeld@pinc-software.de>

Added libtracker.so to the repository and the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12772 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e3572635487f5a4fb948640fdeb747f47750e4a 29-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: add "hide dotfiles" option to the GUI & enable it by default.

Changing this many lines of code to add a single boolean preference
is absolutely insane. We need a new preference-tracking system, and
one that can be reused in other applications, too.

Fixes #9200.


# e741289a95b63afa2252f3dbe949426e24df5bc7 22-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: fix uninitialized members, CID 610133


# 68295c9255c0dd3eb37d711795af762616aedbec 22-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: fix uninitialized members, CID 610132


# dd03c93fbffc21c83f9188e6560c6a023c056fd6 16-Jul-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Move automount settings to the Tracker preferences

* Avoids the ugly "button that opens another window" UI paradigm in
Tracker preferences.
* Makes it possible to revert changes to the automount settings as the
Tracker preferences window has a revert button.


# f435b678105b88b3cd604cad4d99430297675f66 20-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: style fixes to SettingsViews classes


# 7fd5989d2462cd856f3ba6de7bb4b0388a53762d 02-Jun-2013 John Scipione <jscipione@gmail.com>

Tracker Settings: Style fixes

* Add spaces around {}'s
* Add 2 blank lines between class declarations in header


# 62bcb75c722aecaf243f74a4d6e01488d817c0ba 02-Jun-2013 John Scipione <jscipione@gmail.com>

Tracker Settings: Re-factor includes

* Remove includes from header and use bare class definitions instead
* Add the includes from the header to the cpp file
* Remove Alert.h include from cpp file, not used.
* Remove TextControl.h include from header, not used.
* Add Point.h include to cpp file, we do use that.
* Reorder includes according to style guidelines


# 1baa2211739cd5b4d45a56868aedd57dedbe782c 10-Feb-2013 Humdinger <humdingerb@gmail.com>

Removed Trash options from Tracker prefs.

As discussed [1][2], using a Trash is in the interest of the
vast majority of users. The setting is still present in the
Tracker settings file. SHIFT+DELETE will still bypass the
Trash.

[1]
http://www.freelists.org/post/haiku-commits/haiku-hrev45134-srckitstracker,4
[2] http://www.freelists.org/post/haiku/Removing-Trackers-Trash-options

Please enter the commit message for your changes. Lines starting


# 163a39483387c5db4156dfcf36e4b48156df30a6 09-Feb-2013 Humdinger <humdingerb@gmail.com>

Revert "Renamed Tracker option "Don't move files to Trash" (#9352)"

This reverts commit 45f77dcd7029914ccd99178dfb333eb68c7af9e5.


# 45f77dcd7029914ccd99178dfb333eb68c7af9e5 06-Jan-2013 Humdinger <humdingerb@gmail.com>

Renamed Tracker option "Don't move files to Trash" (#9352)

Renamed that option as it is the only negatively phrased to
"Move deleted files to Trash first" and also the option below
that to "Ask before deleting for good".
Also renamed every function name etc. in that regard and also
settings string of the Tracker settings file.


# b05aa8b5b16e5b4f420a35c37805c6387df98737 27-Jul-2012 John Scipione <jscipione@gmail.com>

Style changes in Tracker, no functional change.

Manual whitespace cleanup
Change instances of const char * to const char*
Convert /* */ C style comments to // C++ style comments


# 894cf4f3634f641a80466b4ca0a72b56292055ba 08-Aug-2010 Alexandre Deckner <alex@zappotek.com>

* Apply patch from Takashi Murai: use layouting for Tracker settings window/views.
Slight modifications to the patch:
Put back passing the view names (eventhough it seem useless atm).
One or two small indenting issues.
Implemented your todo (listview width adapts to the longest item).

Thanks a lot.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37978 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f2ec5c2705ad86fff60e9bafbcd775737e59189 05-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Remove "date & time" view from tracker settings, since it will soon use the locale kit settings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37929 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 545ebde00c3d50510a5236de1c5eef25ac21d757 30-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

Implement type ahead filtering (this time for real and without abusing the
vertically sorted pose list). When enabled typing will filter based on the
currently visible attribute columns. Using shift-space as a delimiter
independent filtering strings can be typed, so you can filter based on multiple
attributes at once to refine results while you type. Filtering stays active
until you cancel it using the escape key. While the filtered result is displayed
all normal file operations can be used. Using the return key while filtering
auto-selects and opens the first filter result, allowing for fast traversal
through directories and directly opening the topmost result.

* Introduces fFilteredPoseList which stores the active filter result. The list
is only used when filtering is currently active, so no syncing is required
otherwise.
* Some minor adjustments to leave out invalidations where non-visible poses are
updated.
* Account for the now possible multiple lists throughout BPoseView.
* Add filter string output to the CountView and made that one a bit wider.
* Added all the settings-cruft for type ahead filtering (defaults to off).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35339 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c1b274fd6796be287dcd7cb81a105c91c2152629 12-Oct-2009 Stephan Aßmus <superstippi@gmx.de>

* Removed auto mounter code from Tracker.
* Tracker forwards auto mounter related messages to the mount_server.
* Rewrote AutoMounterSettings to not know AutoMounter and use
the layout-management.
* Moved the "Eject When Unmounting" setting into the Mount Settings.
* Launch the mount_server during boot, but delay the script until all
previously mounted volumes have been mounted. This solves some annoying
timing bugs during boot. For example when you have desktop backgrounds
on other volumes and some servers don't deal well with the situation
of links to add-ons on other volumes becoming valid with a delay...
* src/kits/tracker/Commands.h includes the private headers/private/
mount/MountServer.h header, which made adjustments to the DiskUsage
Jamfile necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33555 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6eb01296599e3b3b036fd6844d1918fea4358ea2 23-Aug-2007 Ryan Leavengood <leavengood@gmail.com>

Patch from Justin O'Dell for bug #254, fixing the Defaults button behavior
for the Appearance and Menu prefs, and Tracker's settings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22049 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 190650c3c73f9243b59e17567ae9d03e9785b525 25-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

Imported SettingsViews.cpp 1.11, .h 1.9, TrackerSettingsWindow.cpp 1.8, .h 1.3,
and SelectionWindow.cpp 1.3.
This fixes bug #656.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17921 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7befa79ace38aeecb9ceb86e7244c6d6747fd888 01-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

Imported SettingsViews.cpp 1.10, FilePanelPriv.cpp 1.14, TrackerSettingsWindow.cpp 1.7,
SettingsViews.h 1.8, FSClipboard.cpp 1.12, PoseView.cpp 1.60,
TrackerSettingsWindow.h 1.2, TrackerSettings.cpp 1.11 from the OpenTracker repository.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17688 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02be5353fd41ea40007a382e13f007eaf6b5a3a0 22-May-2005 Axel Dörfler <axeld@pinc-software.de>

Added libtracker.so to the repository and the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12772 a95241bf-73f2-0310-859d-f6bbb57e9c96