How do I tell Tracker to open a window and select a folder or file?

Here’s where I’ve got up to:

#include <app/Messenger.h>
#include <private/tracker/tracker_private.h>

void LShowFileProperties(OsView Parent, const char *Filename)
{
    // Send kGetInfo ?
    LAssert(!"Impl me.");
}

bool LBrowseToFile(const char *Filename)
{
    BMessenger tracker(kTrackerSignature);
    if (!tracker.IsValid())
    {
        LgiTrace("%s:%i - No tracker app '%s'\n", _FL, kTrackerSignature);
        return false;
    }

    BMessage msg(BPrivate::kSelect);
    BEntry entry(Filename);
    entry_ref ref;
    if (entry.GetRef(&ref) != B_OK)
    {
        LgiTrace("%s:%i - No entry for '%s'\n", _FL, Filename);
        return false;
    }

    msg.AddRef("refs", &ref);
    auto result = tracker.SendMessage(&msg);
    // if (result != B_OK)
    {
        LgiTrace("%s:%i - SendMessage result: %x\n", _FL, result);
    }

    return result == B_OK;
}

And while SendMessage returns B_OK, Tracker doesn’t seem to do anything… what did I miss?

1 Like

I do something similar in Quicklaunch. Compare & contrast. :slight_smile:

4 Likes

Nice… that’s working for me too!

Using this code as a reference, I fixed Zip-O-Matic’s code to select zip files after completion in hrev57255. :slight_smile:

4 Likes