History log of /haiku/src/kits/tracker/IconCache.h
Revision Date Author Comments
# 0c973c94 26-Aug-2022 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Refactor IconCache size handling and usages.

* Instead of taking an icon_size, which we were having to cast
random integers to anyway, just take a BSize and convert internally
as needed. This simplifies a lot of usages of IconCache methods.

* Compute what B_MINI_ICON size will be at startup. This way,
we do not wind up caching "mini" icons in the fLarge*Icon variables
under HiDPI.

This does have a downside that if anything actually
does try to fetch "true mini" (16x16) icons when the real
ComposeIconSize(B_MINI_ICON) is larger than that, it will wind up
(confusingly) in fLarge*Icon, but that should not cause problems
and after this commit should not happen at all, anyway.

* Make mini-icon-mode use ComposeSize instead of the hardcoded 16x16,
and adjust metrics computations around it.

* Fetch larger icons in MountMenu logic. Also use BString::SetToFormat.

* Remove an unused, deprecated method from BPoseView.

* Rename variables in thumbnail generation code to match new behavior.


# a64cdd1d 26-Apr-2022 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Overhaul thumbnail generation logic.

* Use a JobQueue and BJobs to generate the thumbnails, instead of
spawning a potentially unlimited number of threads (which can
of course rapidly exhaust resources.) Use two threads: one for
smaller files, and another for larger files.

* Directly insert the new thumbnails into the icon cache once they
have been generated, avoiding the port-search dance on filesystems
that do not support writing attributes (or at least large ones.)

* Skip calling mimeset, is it not needed after the previous commit.

* Combine all the duplicated image-scaling logic into one function.

May help with or fix #17225, #17619, and other thumbnail-related matters
e.g. #17557. Also addresses comments from the mailing list last summer.


# 8eaf4427 11-Mar-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Refactor IconCache to use BOpenHashTable.

This removes the last usage of the old OpenTracker OpenHashTable,
and so it can now be removed.

Change-Id: I7a7bceef1d3fc74c7fdfa7b079e53576452703dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2339
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: John Scipione <jscipione@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# d0a9f680 04-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

Tracker: Fix use-after-free on destruction of the icon caches.

The hash table member still uses the element array memeber to clear
itself on destruction. We must therefore ensure that the element array
isn't destroyed before the hash table. Since the destruction order of
memebers is the reverse order of their declaration, reordering them
is enough.


# c6433b0b 17-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: A few more style fixes to IconCache

* Hilight => Highlight


# ae7d51b2 02-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: Style fixes to IconCache and Utilities


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

Tracker: style fixes to IconCache


# db416834 02-Jan-2013 Matt Madia <mattmadia@gmail.com>

Automatic whitespace cleanup. No functional change.


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

WIP: Yet more style fixes, mostly 80 char violations.


# 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


# 9ecf9d1c 26-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge from layout management branch.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18649 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


# d0a9f6803b662ad1c9b20bf5dff1d461b1d71548 04-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

Tracker: Fix use-after-free on destruction of the icon caches.

The hash table member still uses the element array memeber to clear
itself on destruction. We must therefore ensure that the element array
isn't destroyed before the hash table. Since the destruction order of
memebers is the reverse order of their declaration, reordering them
is enough.


# c6433b0b3cf69e9481b4bc46fec636879145d116 17-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: A few more style fixes to IconCache

* Hilight => Highlight


# ae7d51b28a8826a1f8330f28dead633d98cc42bd 02-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: Style fixes to IconCache and Utilities


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

Tracker: style fixes to IconCache


# db41683495bfde817554415d14ae6f9cc91e77eb 02-Jan-2013 Matt Madia <mattmadia@gmail.com>

Automatic whitespace cleanup. No functional change.


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

WIP: Yet more style fixes, mostly 80 char violations.


# 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


# 9ecf9d1c1d4888d341a6eac72112c72d1ae3a4cb 26-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge from layout management branch.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18649 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