History log of /haiku/src/kits/tracker/Tracker.cpp
Revision Date Author Comments
# 7644bd25 26-Feb-2024 Humdinger <humdinger@mailbox.org>

Tracker: Offer "Get info" when a symlink fails

While it's obvious which link is broken when the user double-clicks it,
it isn't when the link was tried to be opened by a script, or the
launch_daemon etc.

In case resolving a symlink fails, offer a button to call Tracker's
"Get info" panel with the broken link that has info about the link and
its target.

Change-Id: Id878d0ea3da0db65ade21dd4656c18ecba585784
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7434
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 7e677cae 18-Jul-2022 John Scipione <jscipione@gmail.com>

Tracker: Use NodeRef in update thumb message

... now that Add/FindNodeRef have been added.

Tested by generating thumbnails on read-only BFS file system.

Change-Id: I94d85f4edfb6f26fc88dcb7b85d9d36629062f6b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5485
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 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>


# 707c912e 15-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove "launch broken link" cruft.

As the comment says, this was a pre-R5 (!) hack for Be's CIFS driver.


# a4db376c 03-Aug-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Fix crash when the VirtualDirectoryWindow can't create the PoseView.

Fixes #11859. We may want to show an error message rather than failing
silently, but at least that is better than crashing.


# dfcbef64 04-Jul-2015 Philippe Saint-Pierre <stpere@gmail.com>

Erratum hrev49359: Compare size with 0 rather that B_OK

Thanks Ingo!


# 189c10b0 03-Jul-2015 Philippe Saint-Pierre <stpere@gmail.com>

Tracker: check result of FlattenedSize() for error


# 9cdba41a 03-Mar-2015 John Scipione <jscipione@gmail.com>

Tracker and Open Target Folder: Select result

Implement the todo in Open Target Folder to select the result by sending
Tracker a message with the refs to select.

Add a new kSelect message constant to tracker_private.h to hook into.

Tracker reads in the message and finds the window that the refs are located in,
activates it, then selects the corresponding poses scrolling the pose view
if necessary.

Bump version of Open Target Folder to 1.0.2


# 7ef62fb6 27-Feb-2015 John Scipione <jscipione@gmail.com>

Tracker: Style fixes

* Style fixes to QueryContainerWindow.h
* Style fixes to ContainerWindow
* Style fixes to Model
* Style fixes to Tracker
* Style fixes to PoseView
- Most of the changes come from unindenting the code


# 9e78efbb 27-Feb-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: delete un-needed #includes.

All of these header files are already included by the .h file that
corresponds to the .cpp file.


# e7803cf1 26-Jan-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: use the Layout API wherever possible.

Sorry this commit is so big, but I couldn't figure out how to do this
incrementally without breaking things.

I wasn't able to just merge Aldeck's branch, as it was a partial refactor
of Tracker and didn't just rewrite the UI creation code to use layouts,
and the changes for PM (e.g. addon loading, virtual directories) made it
very hard to merge (it doesn't even compile after an automerge) so rather
than spending time on that, I decided it'd be better to recreate his work.

Miscellaneous notes:
- This partially cleans up BPoseView & subclasses and BContainerWindow &
subclasses -- none of the subclasses and child views abuse the parent's
state, child views, or layout now.
- BFilePanel and BDeskWindow are not on layouts, because:
* BFilePanel docs in the Be Book instructed developers that wanted to
modify BFilePanel's layout to just use FindView() and then move the
views around. Obviously making it use layouts will break all BeOS
apps that do this, and there are a lot of them (Pe, WonderBrush are
just two examples.) I've added a note to the TODO list for R2 to create
a layout-compatible API for this.
* Some replicants (Workspaces, for example) rely on manipulating
BDeskWindow's drawing state. This is incompatible with layouts, as
at least in the case of Workspaces, it breaks a layouted version
of BDeskWindow entirely.
- I noticed a lot of #ifdef BEOS_VERSION ... gunk in the code. Tracker
probably didn't build on BeOS just before this commit, and now it
won't for sure, so I intend to go through and clean that out in the
near future.

This commit also fixes:
- enhancement #4996 (make Tracker's navigator use vector icons)
- bug #3039 (resizing OpenWithWindow flashes the blue border)
- bug #3889 (OpenWithWindow redraw errors)
- a regression that was a side effect of "dynamic_cast<BDeskWindow*>(this)"
always returning NULL when run in the constructor. I just added a "bool
isDeskWindow" to BContainerWindow's constructor that is only set to true
by BDeskWindow.
- a copy&paste error in VirtualDirectoryPoseView that was passing "uint32
resizeMode" as "uint32 viewMode".

Thanks to Alexandre for his original branch (it was a very useful
reference), Axel (for some miscellaneous advice & encouragement),
Adrien & Humdinger (for user interface review), and Diver (for user
interface review & testing).


# 9cc03189 28-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: Add NULL checks and ASSERTs

To prevent recoverable NULL pointer dereferences. Dereferencing a
NULL pointer is undefined behavior and should be avoided.

Unrecoverable NULL checks will be dealt with in the next commit.


# 54e2dd72 28-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: style fixes

No functional changes intended.


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

Tracker: fix uninitialized members, CID 991721


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

Tracker: fix unchecked return value. CID 602488


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

Tracker: tiny style fix, 80 char limit


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

Tracker: fix unchecked return value. CID 602487


# 3aeed660 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# 6527415d 18-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: obligatory round of style fixes

* Explicit NULL checks
* whitespace
* single line if gets no {}'s
*


# 9f2a3f6f 27-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Move opening Desktop window to constructor

BRoster::Launch() sends B_REFS_RECEIVED before B_READY_TO_RUN
if the application is not running, so, when B_REFS_RECEIVED looked for
the Desktop window it wasn't created yet since that happen in ReadyToRun().

By creating the Desktop window in the constructor instead it is available
in RefsReceived() so an extra Desktop windows isn't opened.


# 670b729d 25-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: style fixe, update comment, spelling

...and fits on 1 line


# c2d07d99 26-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: yet more style fixes


# bd41bc51 27-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Style fixes in Tracker (app)


# 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.


# 384eec8f 14-Jul-2014 Philippe Saint-Pierre <stpere@gmail.com>

Ticket #3385: inconsistencies when single window + disks icon

When using the Show Disks icon option, single window navigaton mode,
and starting navigation by the Disks icon, these bugs would occurs
upon entering child poses :

*) The draggable icon at the top right wouldn't appear
*) The file menu wouldn't update properly (for example, the New folder
menu item won't show)

Based in part on dru_ed's patch.


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

Tracker: style fixes to Tracker class


# 00922c99 14-Jun-2014 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Tracker: fix accidental logic inversion. Fixes #10940.


# 646b1fe1 09-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Open Desktop folder in own window in browser mode.

... in a few more cases.

If you are in spatial mode and you double-click on the Desktop folder
it activates the Desktop putting all other Tracker windows in the
background.

If you are in browser mode and you double-click on the Desktop folder
it opens the Desktop folder in the current window.

If you issue 'open ~/Desktop' from Terminal or if you have Expander set
to open the expanded folder and you expand something on the Desktop
it won't open the Desktop folder in its own window in either spatial or
browser mode.

This patch alters Trackers behavior to open the Desktop folder in its own
window in these cases when you are in browser mode.

One might argue (as a few have on IRC) that this behavior should also
happen in spatial mode, but, this patch does not alter the behavior of
spatial mode. In spatial mode opening the Desktop folder with
'open ~/Desktop' or extracting a zip file with Expander on the Desktop
simply activates the Desktop pushing all other Tracker windows into the
background state.

Fixes #10929


# 9437e677 09-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Style fixes


# 1c29b26e 29-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

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.


# 09cbc86d 10-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

TTracker::RefsReceived(): Forward "be:*" message fields

In some cases /bin/open puts some additional fields in the
B_REFS_RECEIVED message, but those were completely ignored. This makes
opening paths with appended line/column numbers actually work as
expected.


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

Automatic whitespace cleanup. No functional change.


# 08c0a78f 20-Dec-2012 John Scipione <jscipione@gmail.com>

(Tiny) style fix only


# aed35104 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# adf8818e 05-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Compilation fixes for Terminal, add to image.

It runs, but has shown up various bugs: app_server crashes, kernel
panics, rendering problems. Working on fixing these now.


# ea001e58 28-Jul-2012 John Scipione <jscipione@gmail.com>

Round 2 of style changes to Tracker

* focused on 80-char limit fixes.
* also some whitespace and case statement indentation fixes


# 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


# 546208a5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# 8df5e79d 05-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

Tracker: FSMoveToTrash(): needless check and possible crash fix

In an earlier commit, I removed a memleak, but it was covering more cases
than intended. Thanks to Alex Wilson's insight, it seems that simply removing
the check is better (since that check is essentially redone in FSMoveToTrash()).


# 97f16764 04-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

Tracker: Memory leak fix

The leak occured everytime a folder, or queries where opened while
navigating.

CID 5848.


# fcfd6873 03-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

Tracker: memory leak fix

In MoveRefsToTrash(), the srcList wasn't deleted after usage.

CID 5849.


# ed7ee7a4 11-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Localization support for filesystem entries in Tracker and Deskbar (leaf menu). (It appears to work, but is likely incomplete and quite possibly incorrect.) Fix issue with RosterData::Refresh() resulting in a B_LOCALE_CHANGED broadcast, and Deskbar looping. Add a global boolean gLocalizedNamePreferred to avoid calling BLocaleRoster::Default()->IsFilesystemTranslationPreferred() too often from Model instances. Following Tracker code style in libtracker, so as to not mix in too much clean-up.

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


# 7b80b5d5 17-Sep-2010 Alexandre Deckner <alex@zappotek.com>

* Use multiple translate contexts in Tracker for easier translation


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


# 886c6276 12-Sep-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed debug build (format string/argument mismatches).


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


# 4dc7415f 13-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Also remove inclusion of AboutBox.cpp to fix the build. Sorry


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


# 4ed28a57 12-Jul-2010 Alexandre Deckner <alex@zappotek.com>

* Applied libtracker localization patch from T.Murai (a.k.a mt) with some modifications (see below).
* Functional modifications:
Reworked InfoWindow file size localization, the patch removed number formating (size in bytes) and was too complicated to my taste.
Replaced the uses of sprintf with the safer snprintf.
Changed signature to x-vnd.Haiku-libtracker instead of x-vnd.Haiku-libTracker (to be consistent with the binary name)
* Style modifications:
Reworked lots of 80 char indenting (probably due to the now shorter line lengths since your previous patch that wasn't using the macros)
Lots of missing brackets when "if's" becomes multiline.
Other minor fixes.

Noticed a few uses of FindItem on translated names that might become problematic someday. Added some TODO's regarding localization of file sizes. Localization might still be
optimized a bit regarding the produced en.catkeys

Note to translators: .catkeys files should be placed in haikusource/data/catalogs/kits/tracker though beware as the base en.catkeys might change
slightly in the next days.
Note to users: As with any other app you need to restart Tracker (or any aother app using libtracker's filepanels) for it to pick the locale setting. E.g: use 'quit an
application' and 'restart Tracker' from process controller.

Thanks a lot T.Murai


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


# 497aa62c 30-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

* Provide a LaunchLooper that receives launch messages and executes the launch
functions provided with the given arguments.
* Make use of that looper to replace spawning a thread for each launch task.

On the one side this reduces the amount of used threads (and should fix #698)
and on the other side it makes the order in which refs are sent a bit more
predictable.


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


# 0bf7f1f8 16-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

When an error occurs to incrase the node monitor limit, reset the current
value and don't keep it at the value we wanted it increased to.


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


# 01dffd8e 14-Jan-2010 Rene Gollent <anevilyak@gmail.com>

More Tracker refactoring:
* relocated Trash dirs to volume roots by modifying find_directory() to report the trash location as volume/Trash.
* FSUtils no longer creates /home/Desktop on every volume.
* TrashWatcher now keeps icons in sync on all volumes.
* Simplified FSGetDeskDir since it no longer has to worry about getting the desk directory on any volume other than the root.
* Relocated trash context menu logic to BContainerWindow so it can also be used at the volume roots.
* DesktopPoseView now creates a virtual Trash pose representing the trash contents as before.
* Corrected typo: Model::WriteAttrKillForegin() -> Model::WriteAttrKillForeign().

Closes ticket #5245.



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


# 671dd808 12-Jan-2010 Rene Gollent <anevilyak@gmail.com>

Various cleanups:
* Removed dead/obsolete Integrate Non-boot Desktops code.
* Modified PoseView to ignore the fInvisible attribute of BPoseInfo for now.
This has the net effect that the Desktop folder and /boot/var are no longer
hidden from the user. To go with this change, Tracker no longer forcibly
writes that hidden setting to those folders on access. This feature might
be useful again in the future (especially in conjunction with relocating
the Trash folder somewhere such as the disk root), but is currently somewhat
problematic because those dual-booting with BeOS will still have a Tracker
that force writes those attributes which would bring us back to square one
with respect to showing the Desktop folder when we start respecting the
attribute again. Suggestions welcome. Haiku-only users can remove the
_trk/pinfo_le attribute on those folders to remove the invisibility
in any case.
* TrackerSettings: Removed obsolete desktop integration settings. Also
modified TrackerSettings parser to skip unrecognized settings instead
of aborting the settings file parsing process entirely.

Closes ticket #2872.



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


# 26888374 27-Jun-2009 Rene Gollent <anevilyak@gmail.com>

Fix assertion when using Tracker in debug mode. This closes ticket #1636.



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


# 66684552 14-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Use public functionality instead of private BeOS syscalls.
* Automatic whitespace cleanup.


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


# 5e71c7b1 16-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

Patch by Obaro Ogbo (nastee) with small changes by myself:
* Added "Close All in Workspace" menu item in the Window menu. The shortcut
is 'Q', which is usually the Quit shortcut. Since Tracker prevents quitting
via this shortcut, overriding it like this is ok, this was also discussed
in the ticket #2833. I've tested that the existing functionality is not
disturbed (ie Quit in the Settings panel still works, as does quitting
Tracker via "hey Tracker quit"). I did not add the "Close All" menu item,
since that feature is already available via DeskBar and when pressing the
shift key before opening the Window menu.
* I did change the additional short cut. As with "Clean Up" versus "Cleanup Up
All", it's now consistently the shift key, which you have to press.

Note to Obaro: The only other change was that one can set the target of the
menu item to be "be_app", that way one avoids dispatching the message in the
window. Thanks a lot for your work, Obaro!


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


# 019f90e6 05-Apr-2009 Jonas Sundström <jonas@kirilla.com>

Setting the escape key as shortcut for the Cancel options of Tracker's dialogs.

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


# dec2485c 29-Mar-2009 Stephan Aßmus <superstippi@gmx.de>

Patch by jonas.kirilla: Allow the Tracker settings window to be quit by
Command-Q. Thanks a lot!


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


# 6dee6b8c 22-Oct-2008 Alexandre Deckner <alex@zappotek.com>

* Do the locking and lock check in an outer 'if', the window could be left
unlocked if the whole condition wasn't true. Thanks stippi!


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


# 369ad66d 21-Oct-2008 Alexandre Deckner <alex@zappotek.com>

* Lock the window when saving windows states in Tracker::QuitRequested.
This was the cause of #2571 and duplicate #2888 although the bug wasn't
triggered anymore since r28205.


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


# 85d7d4bc 25-Sep-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

the loop was never entered. CID 93

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


# a86d99e0 21-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

Opening previously open windows on non-boot partitions obviously only worked if the
automounter already mounted these partitions. Since this happens asynchronously,
it sometimes worked and sometimes not. The very simply and non-hacky fix for this
problem is to send a message from the automounter to the application looper to
have it open the previous windows after the initial mount scan is done.


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


# f6e4cbb9 15-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* Rewrote BeBuild.h which had "a few" consequences (got rid of all those class
definitions).
* Minor cleanup here and there.


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


# 5c34aef7 22-Aug-2007 Stephan Aßmus <superstippi@gmx.de>

changed the meaning of the "icon view label background" Tracker setting:
* it is replaced by a "icon view label outline" feature that renders a black
or white outline around the text of a label under an icon. This can be used
for background images that have a lot of contrast and is visually more
pleasing (IMHO) than the text box in the workspace color (but the outline
could of course still be improved as well)
the outline or "false bold width" feature is a new BFont feature in Haiku
* Tracker appeared to have a disabled feature to install default background
images, I enabled this feature and rewrote it a bit to use our big logo
from the artwork folder, the placement is for 800x600, so not optimal for
larger desktops, but at least it is shown by default on new installations
or rather "fresh" images
* changed the way the dotted underline is rendered under links, accidentally,
this fixes the bug that it was not dotted at all since a while, which is
a bug in app_server or BView not tracking the need to update the drawing
pattern in certain situations (this bug needs to be fixed too of course)


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


# c16182bf 18-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

Tracker now also restores the previously opened windows from volumes that were
mounted later by the AutoMounter's initial mounting loop.


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


# 687e327b 19-Jun-2007 Michael Lotz <mmlr@mlotz.ch>

Reworked the handling of periodically updated poses (currently only ones with a volume space bar):

* Addad global list where poses that need periodic updates can be registered with a callback
* Use this mechanism for poses with a volume space bar
* Create only one BVolume when the BPose is created for a volume, instead of every time the free space is calculated
* On Pulse() the global list is used to update all of the registered periodic update poses
* As the poses know their volume, it is no longer necessary to use a BVolumeRoster to loop through each volume on each Pulse()
* Removed the now superfluous SendNotices() mechanism
* Removed corresponding watching / handling of these notices in BPoseView

The BPoseView did a linear search for each volume pose on each Pulse() before. What's more it did this once for each mounted volume as it did get one individual notice for each of them. To get these volumes a BVolumeRoster was used to loop through the volumes, but then the BPose did still create a new BVolume to actually calculate the free space! I'm surprised that it did not suck away more performance with this method...

Anyway, this should bring down BVolume construction and update overhead down to a minimum and hopefully fix ticket #1247.

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


# 12104c2e 26-May-2006 Stephan Aßmus <superstippi@gmx.de>

synced with OT repository - I guess you knew what was comming,
Tracker saves and restores the window decorator settings on
Haiku.


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


# a615ec8f 30-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

Imported OpenTracker-current.


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


# a4db376caae2083d6867ba4c2f5fb6fe423242da 03-Aug-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Fix crash when the VirtualDirectoryWindow can't create the PoseView.

Fixes #11859. We may want to show an error message rather than failing
silently, but at least that is better than crashing.


# dfcbef64f6515ca7089afa169770812711c02ca7 04-Jul-2015 Philippe Saint-Pierre <stpere@gmail.com>

Erratum hrev49359: Compare size with 0 rather that B_OK

Thanks Ingo!


# 189c10b089932ebb034337d71410153d6737775d 03-Jul-2015 Philippe Saint-Pierre <stpere@gmail.com>

Tracker: check result of FlattenedSize() for error


# 9cdba41addb4087592fe682fdd4b6900ab9b29e9 03-Mar-2015 John Scipione <jscipione@gmail.com>

Tracker and Open Target Folder: Select result

Implement the todo in Open Target Folder to select the result by sending
Tracker a message with the refs to select.

Add a new kSelect message constant to tracker_private.h to hook into.

Tracker reads in the message and finds the window that the refs are located in,
activates it, then selects the corresponding poses scrolling the pose view
if necessary.

Bump version of Open Target Folder to 1.0.2


# 7ef62fb6c2485f91ba49b0cde5e73e62687375e9 27-Feb-2015 John Scipione <jscipione@gmail.com>

Tracker: Style fixes

* Style fixes to QueryContainerWindow.h
* Style fixes to ContainerWindow
* Style fixes to Model
* Style fixes to Tracker
* Style fixes to PoseView
- Most of the changes come from unindenting the code


# 9e78efbb4d21a6821be64e5053defd99ed364aea 27-Feb-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: delete un-needed #includes.

All of these header files are already included by the .h file that
corresponds to the .cpp file.


# e7803cf1f69a81b1c77880518ba16b6708c1efdb 26-Jan-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: use the Layout API wherever possible.

Sorry this commit is so big, but I couldn't figure out how to do this
incrementally without breaking things.

I wasn't able to just merge Aldeck's branch, as it was a partial refactor
of Tracker and didn't just rewrite the UI creation code to use layouts,
and the changes for PM (e.g. addon loading, virtual directories) made it
very hard to merge (it doesn't even compile after an automerge) so rather
than spending time on that, I decided it'd be better to recreate his work.

Miscellaneous notes:
- This partially cleans up BPoseView & subclasses and BContainerWindow &
subclasses -- none of the subclasses and child views abuse the parent's
state, child views, or layout now.
- BFilePanel and BDeskWindow are not on layouts, because:
* BFilePanel docs in the Be Book instructed developers that wanted to
modify BFilePanel's layout to just use FindView() and then move the
views around. Obviously making it use layouts will break all BeOS
apps that do this, and there are a lot of them (Pe, WonderBrush are
just two examples.) I've added a note to the TODO list for R2 to create
a layout-compatible API for this.
* Some replicants (Workspaces, for example) rely on manipulating
BDeskWindow's drawing state. This is incompatible with layouts, as
at least in the case of Workspaces, it breaks a layouted version
of BDeskWindow entirely.
- I noticed a lot of #ifdef BEOS_VERSION ... gunk in the code. Tracker
probably didn't build on BeOS just before this commit, and now it
won't for sure, so I intend to go through and clean that out in the
near future.

This commit also fixes:
- enhancement #4996 (make Tracker's navigator use vector icons)
- bug #3039 (resizing OpenWithWindow flashes the blue border)
- bug #3889 (OpenWithWindow redraw errors)
- a regression that was a side effect of "dynamic_cast<BDeskWindow*>(this)"
always returning NULL when run in the constructor. I just added a "bool
isDeskWindow" to BContainerWindow's constructor that is only set to true
by BDeskWindow.
- a copy&paste error in VirtualDirectoryPoseView that was passing "uint32
resizeMode" as "uint32 viewMode".

Thanks to Alexandre for his original branch (it was a very useful
reference), Axel (for some miscellaneous advice & encouragement),
Adrien & Humdinger (for user interface review), and Diver (for user
interface review & testing).


# 9cc03189faa3cb4923d63a897435f56ec98c62b0 28-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: Add NULL checks and ASSERTs

To prevent recoverable NULL pointer dereferences. Dereferencing a
NULL pointer is undefined behavior and should be avoided.

Unrecoverable NULL checks will be dealt with in the next commit.


# 54e2dd7272db551cab02cc678bd45bc4131dd867 28-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: style fixes

No functional changes intended.


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

Tracker: fix uninitialized members, CID 991721


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

Tracker: fix unchecked return value. CID 602488


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

Tracker: tiny style fix, 80 char limit


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

Tracker: fix unchecked return value. CID 602487


# 3aeed6607cd07762c0e709633c012b3a632dbad9 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# 6527415d5a7134839f2ed65459a63e3c310dce9c 18-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: obligatory round of style fixes

* Explicit NULL checks
* whitespace
* single line if gets no {}'s
*


# 9f2a3f6f47d121411c85a1e939f1cda80a4b4b1d 27-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Move opening Desktop window to constructor

BRoster::Launch() sends B_REFS_RECEIVED before B_READY_TO_RUN
if the application is not running, so, when B_REFS_RECEIVED looked for
the Desktop window it wasn't created yet since that happen in ReadyToRun().

By creating the Desktop window in the constructor instead it is available
in RefsReceived() so an extra Desktop windows isn't opened.


# 670b729d652f73f142e4ad6c94ee9958a73223ef 25-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: style fixe, update comment, spelling

...and fits on 1 line


# c2d07d9988d5a9e179ee4ceb535e8345ed1f8c44 26-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: yet more style fixes


# bd41bc5105b94cbb16587be37436f32526b91ada 27-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Style fixes in Tracker (app)


# 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.


# 384eec8fb34ee7228bee570bbb119251844f83cf 14-Jul-2014 Philippe Saint-Pierre <stpere@gmail.com>

Ticket #3385: inconsistencies when single window + disks icon

When using the Show Disks icon option, single window navigaton mode,
and starting navigation by the Disks icon, these bugs would occurs
upon entering child poses :

*) The draggable icon at the top right wouldn't appear
*) The file menu wouldn't update properly (for example, the New folder
menu item won't show)

Based in part on dru_ed's patch.


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

Tracker: style fixes to Tracker class


# 00922c99894e3106cb57431e770104636582af82 14-Jun-2014 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Tracker: fix accidental logic inversion. Fixes #10940.


# 646b1fe1e8947384e48bbe819f8965c1b96d85e1 09-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Open Desktop folder in own window in browser mode.

... in a few more cases.

If you are in spatial mode and you double-click on the Desktop folder
it activates the Desktop putting all other Tracker windows in the
background.

If you are in browser mode and you double-click on the Desktop folder
it opens the Desktop folder in the current window.

If you issue 'open ~/Desktop' from Terminal or if you have Expander set
to open the expanded folder and you expand something on the Desktop
it won't open the Desktop folder in its own window in either spatial or
browser mode.

This patch alters Trackers behavior to open the Desktop folder in its own
window in these cases when you are in browser mode.

One might argue (as a few have on IRC) that this behavior should also
happen in spatial mode, but, this patch does not alter the behavior of
spatial mode. In spatial mode opening the Desktop folder with
'open ~/Desktop' or extracting a zip file with Expander on the Desktop
simply activates the Desktop pushing all other Tracker windows into the
background state.

Fixes #10929


# 9437e677ba3d5f813929944ae2b09fc37feb8d2d 09-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Style fixes


# 1c29b26e7c7eb94ee125315eca5a94265f613420 29-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

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.


# 09cbc86d0d94f06f5bf65071fccddf83060ed10c 10-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

TTracker::RefsReceived(): Forward "be:*" message fields

In some cases /bin/open puts some additional fields in the
B_REFS_RECEIVED message, but those were completely ignored. This makes
opening paths with appended line/column numbers actually work as
expected.


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

Automatic whitespace cleanup. No functional change.


# 08c0a78ff4ad3f7eb8cb75f213d42ef59b6a643e 20-Dec-2012 John Scipione <jscipione@gmail.com>

(Tiny) style fix only


# aed35104852941f0f6f3d1dcc5338b5f337d0a3c 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# adf8818ec004e8a20614523f3e893303ea318642 05-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Compilation fixes for Terminal, add to image.

It runs, but has shown up various bugs: app_server crashes, kernel
panics, rendering problems. Working on fixing these now.


# ea001e585a588e40404945a1201821da893d2e09 28-Jul-2012 John Scipione <jscipione@gmail.com>

Round 2 of style changes to Tracker

* focused on 80-char limit fixes.
* also some whitespace and case statement indentation fixes


# 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


# 546208a53940a26c6379c48a7854ade1a8250fc5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# 8df5e79d2c734f683be421eb997d72d1d205fc23 05-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

Tracker: FSMoveToTrash(): needless check and possible crash fix

In an earlier commit, I removed a memleak, but it was covering more cases
than intended. Thanks to Alex Wilson's insight, it seems that simply removing
the check is better (since that check is essentially redone in FSMoveToTrash()).


# 97f16764c716d7126b60a48bbd8bf3b43c4e360b 04-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

Tracker: Memory leak fix

The leak occured everytime a folder, or queries where opened while
navigating.

CID 5848.


# fcfd687380b9c07019fd51b6894f4c96288ccb0c 03-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

Tracker: memory leak fix

In MoveRefsToTrash(), the srcList wasn't deleted after usage.

CID 5849.


# ed7ee7a43256baac60e2345f42fc28897cf5585e 11-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Localization support for filesystem entries in Tracker and Deskbar (leaf menu). (It appears to work, but is likely incomplete and quite possibly incorrect.) Fix issue with RosterData::Refresh() resulting in a B_LOCALE_CHANGED broadcast, and Deskbar looping. Add a global boolean gLocalizedNamePreferred to avoid calling BLocaleRoster::Default()->IsFilesystemTranslationPreferred() too often from Model instances. Following Tracker code style in libtracker, so as to not mix in too much clean-up.

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


# 7b80b5d5181053872dd475b1c559bc010914a31c 17-Sep-2010 Alexandre Deckner <alex@zappotek.com>

* Use multiple translate contexts in Tracker for easier translation


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


# 886c627650b0f2522e8a64dd96371cc45a867330 12-Sep-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed debug build (format string/argument mismatches).


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


# 4dc7415f9fbf71f3ee41b35f3c92f38759d098ca 13-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Also remove inclusion of AboutBox.cpp to fix the build. Sorry


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


# 4ed28a571a7d5f7f13b5b4636fabfeabdfddd40b 12-Jul-2010 Alexandre Deckner <alex@zappotek.com>

* Applied libtracker localization patch from T.Murai (a.k.a mt) with some modifications (see below).
* Functional modifications:
Reworked InfoWindow file size localization, the patch removed number formating (size in bytes) and was too complicated to my taste.
Replaced the uses of sprintf with the safer snprintf.
Changed signature to x-vnd.Haiku-libtracker instead of x-vnd.Haiku-libTracker (to be consistent with the binary name)
* Style modifications:
Reworked lots of 80 char indenting (probably due to the now shorter line lengths since your previous patch that wasn't using the macros)
Lots of missing brackets when "if's" becomes multiline.
Other minor fixes.

Noticed a few uses of FindItem on translated names that might become problematic someday. Added some TODO's regarding localization of file sizes. Localization might still be
optimized a bit regarding the produced en.catkeys

Note to translators: .catkeys files should be placed in haikusource/data/catalogs/kits/tracker though beware as the base en.catkeys might change
slightly in the next days.
Note to users: As with any other app you need to restart Tracker (or any aother app using libtracker's filepanels) for it to pick the locale setting. E.g: use 'quit an
application' and 'restart Tracker' from process controller.

Thanks a lot T.Murai


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


# 497aa62c2ff2a2a1947be439c3f74a0c69bc8018 30-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

* Provide a LaunchLooper that receives launch messages and executes the launch
functions provided with the given arguments.
* Make use of that looper to replace spawning a thread for each launch task.

On the one side this reduces the amount of used threads (and should fix #698)
and on the other side it makes the order in which refs are sent a bit more
predictable.


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


# 0bf7f1f8cdb52be64e82264fc008b8a998df83ff 16-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

When an error occurs to incrase the node monitor limit, reset the current
value and don't keep it at the value we wanted it increased to.


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


# 01dffd8edd94699ac1e6f2cc4322555f2171da14 14-Jan-2010 Rene Gollent <anevilyak@gmail.com>

More Tracker refactoring:
* relocated Trash dirs to volume roots by modifying find_directory() to report the trash location as volume/Trash.
* FSUtils no longer creates /home/Desktop on every volume.
* TrashWatcher now keeps icons in sync on all volumes.
* Simplified FSGetDeskDir since it no longer has to worry about getting the desk directory on any volume other than the root.
* Relocated trash context menu logic to BContainerWindow so it can also be used at the volume roots.
* DesktopPoseView now creates a virtual Trash pose representing the trash contents as before.
* Corrected typo: Model::WriteAttrKillForegin() -> Model::WriteAttrKillForeign().

Closes ticket #5245.



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


# 671dd808619ef6043eca11b09a193d877181d10f 12-Jan-2010 Rene Gollent <anevilyak@gmail.com>

Various cleanups:
* Removed dead/obsolete Integrate Non-boot Desktops code.
* Modified PoseView to ignore the fInvisible attribute of BPoseInfo for now.
This has the net effect that the Desktop folder and /boot/var are no longer
hidden from the user. To go with this change, Tracker no longer forcibly
writes that hidden setting to those folders on access. This feature might
be useful again in the future (especially in conjunction with relocating
the Trash folder somewhere such as the disk root), but is currently somewhat
problematic because those dual-booting with BeOS will still have a Tracker
that force writes those attributes which would bring us back to square one
with respect to showing the Desktop folder when we start respecting the
attribute again. Suggestions welcome. Haiku-only users can remove the
_trk/pinfo_le attribute on those folders to remove the invisibility
in any case.
* TrackerSettings: Removed obsolete desktop integration settings. Also
modified TrackerSettings parser to skip unrecognized settings instead
of aborting the settings file parsing process entirely.

Closes ticket #2872.



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


# 2688837424beab6b882fe342176bb13e49eff45a 27-Jun-2009 Rene Gollent <anevilyak@gmail.com>

Fix assertion when using Tracker in debug mode. This closes ticket #1636.



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


# 666845528178b85e5ead7454eec98ce5559e6a48 14-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Use public functionality instead of private BeOS syscalls.
* Automatic whitespace cleanup.


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


# 5e71c7b1e5b0572e1ac8f089dce2bf4a9cf695fb 16-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

Patch by Obaro Ogbo (nastee) with small changes by myself:
* Added "Close All in Workspace" menu item in the Window menu. The shortcut
is 'Q', which is usually the Quit shortcut. Since Tracker prevents quitting
via this shortcut, overriding it like this is ok, this was also discussed
in the ticket #2833. I've tested that the existing functionality is not
disturbed (ie Quit in the Settings panel still works, as does quitting
Tracker via "hey Tracker quit"). I did not add the "Close All" menu item,
since that feature is already available via DeskBar and when pressing the
shift key before opening the Window menu.
* I did change the additional short cut. As with "Clean Up" versus "Cleanup Up
All", it's now consistently the shift key, which you have to press.

Note to Obaro: The only other change was that one can set the target of the
menu item to be "be_app", that way one avoids dispatching the message in the
window. Thanks a lot for your work, Obaro!


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


# 019f90e6348a15e47ef361c79970c4222e569b2d 05-Apr-2009 Jonas Sundström <jonas@kirilla.com>

Setting the escape key as shortcut for the Cancel options of Tracker's dialogs.

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


# dec2485ca069db8aa74b8106db892fe0b8c9f6e0 29-Mar-2009 Stephan Aßmus <superstippi@gmx.de>

Patch by jonas.kirilla: Allow the Tracker settings window to be quit by
Command-Q. Thanks a lot!


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


# 6dee6b8c17679825d773f89c4e9914cbbecd0777 22-Oct-2008 Alexandre Deckner <alex@zappotek.com>

* Do the locking and lock check in an outer 'if', the window could be left
unlocked if the whole condition wasn't true. Thanks stippi!


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


# 369ad66d922876d1430fe9c1fb0674cca9bb4667 21-Oct-2008 Alexandre Deckner <alex@zappotek.com>

* Lock the window when saving windows states in Tracker::QuitRequested.
This was the cause of #2571 and duplicate #2888 although the bug wasn't
triggered anymore since r28205.


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


# 85d7d4bc41ef815d3d869d605484b26b7994ec08 25-Sep-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

the loop was never entered. CID 93

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


# a86d99e0daabffd6b8600cc74edbb334268025b1 21-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

Opening previously open windows on non-boot partitions obviously only worked if the
automounter already mounted these partitions. Since this happens asynchronously,
it sometimes worked and sometimes not. The very simply and non-hacky fix for this
problem is to send a message from the automounter to the application looper to
have it open the previous windows after the initial mount scan is done.


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


# f6e4cbb95290a74b33d012600438b84742b0e572 15-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* Rewrote BeBuild.h which had "a few" consequences (got rid of all those class
definitions).
* Minor cleanup here and there.


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


# 5c34aef797c60839b66395519c53b39291dc35c7 22-Aug-2007 Stephan Aßmus <superstippi@gmx.de>

changed the meaning of the "icon view label background" Tracker setting:
* it is replaced by a "icon view label outline" feature that renders a black
or white outline around the text of a label under an icon. This can be used
for background images that have a lot of contrast and is visually more
pleasing (IMHO) than the text box in the workspace color (but the outline
could of course still be improved as well)
the outline or "false bold width" feature is a new BFont feature in Haiku
* Tracker appeared to have a disabled feature to install default background
images, I enabled this feature and rewrote it a bit to use our big logo
from the artwork folder, the placement is for 800x600, so not optimal for
larger desktops, but at least it is shown by default on new installations
or rather "fresh" images
* changed the way the dotted underline is rendered under links, accidentally,
this fixes the bug that it was not dotted at all since a while, which is
a bug in app_server or BView not tracking the need to update the drawing
pattern in certain situations (this bug needs to be fixed too of course)


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


# c16182bfe8c402c1538e4041943f983d0730e333 18-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

Tracker now also restores the previously opened windows from volumes that were
mounted later by the AutoMounter's initial mounting loop.


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


# 687e327bace5d8abca3e75ce74a8f532fac5c151 19-Jun-2007 Michael Lotz <mmlr@mlotz.ch>

Reworked the handling of periodically updated poses (currently only ones with a volume space bar):

* Addad global list where poses that need periodic updates can be registered with a callback
* Use this mechanism for poses with a volume space bar
* Create only one BVolume when the BPose is created for a volume, instead of every time the free space is calculated
* On Pulse() the global list is used to update all of the registered periodic update poses
* As the poses know their volume, it is no longer necessary to use a BVolumeRoster to loop through each volume on each Pulse()
* Removed the now superfluous SendNotices() mechanism
* Removed corresponding watching / handling of these notices in BPoseView

The BPoseView did a linear search for each volume pose on each Pulse() before. What's more it did this once for each mounted volume as it did get one individual notice for each of them. To get these volumes a BVolumeRoster was used to loop through the volumes, but then the BPose did still create a new BVolume to actually calculate the free space! I'm surprised that it did not suck away more performance with this method...

Anyway, this should bring down BVolume construction and update overhead down to a minimum and hopefully fix ticket #1247.

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


# 12104c2eab2bc57f3632a3fe62f34678b39dd14f 26-May-2006 Stephan Aßmus <superstippi@gmx.de>

synced with OT repository - I guess you knew what was comming,
Tracker saves and restores the window decorator settings on
Haiku.


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


# a615ec8f86406c14607c656cf90492bc58bd73d0 30-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

Imported OpenTracker-current.


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