diff --git a/src/apps/diskusage/App.cpp b/src/apps/diskusage/App.cpp index 7133038344..58f73fd005 100644 --- a/src/apps/diskusage/App.cpp +++ b/src/apps/diskusage/App.cpp @@ -2,10 +2,12 @@ * Copyright (c) 2008 Stephan Aßmus . All rights reserved. * Distributed under the terms of the MIT/X11 license. * - * Copyright (c) 1999 Mike Steed. You are free to use and distribute this software - * as long as it is accompanied by it's documentation and this copyright notice. - * The software comes with no warranty, etc. + * Copyright (c) 1999 Mike Steed. You are free to use and distribute this + * software as long as it is accompanied by it's documentation and this + * copyright notice. The software comes with no warranty, etc. */ + + #include "App.h" #include @@ -53,6 +55,12 @@ App::ArgvReceived(int32 argc, char** argv) void App::RefsReceived(BMessage* message) { + if (!message->HasRef("refs") && message->HasRef("dir_ref")) { + entry_ref dirRef; + if (message->FindRef("dir_ref", &dirRef) == B_OK) + message->AddRef("refs", &dirRef); + } + if (fMainWindow == NULL) { // ReadyToRun() has not been called yet, this happens when someone // launches us with a B_REFS_RECEIVED message. @@ -110,3 +118,4 @@ App::QuitRequested() return BApplication::QuitRequested(); } + diff --git a/src/apps/diskusage/DiskUsage.cpp b/src/apps/diskusage/DiskUsage.cpp index 4cb23884b2..1714001a51 100644 --- a/src/apps/diskusage/DiskUsage.cpp +++ b/src/apps/diskusage/DiskUsage.cpp @@ -1,36 +1,12 @@ /* * Copyright (c) 1998-2007 Matthijs Hollemans - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. + * All rights reserved. Distributed under the terms of the MIT License. */ -// NOTE: This code is the same in TextSearch. Maybe it could be made -// into some kind of common base class? #include "App.h" -#include -#include -#include -#include - -#include "Common.h" +#include int @@ -41,49 +17,3 @@ main() return 0; } - -void -process_refs(entry_ref dirRef, BMessage* message, void* /*reserved*/) -{ - // Tracker calls this function when the user invokes the add-on. - // "dir_ref" contains the entry_ref of the current directory. - // "message" is a standard B_REFS_RECEIVED BMessage whose "refs" - // array contains the entry_refs of the selected files. The last - // argument, "reserved", is currently unused. - - // This version of TrackerGrep is a Tracker add-on, but primarily - // it is a stand-alone application. The add-on launches the app - // on the set of files you had selected in Tracker. That way you - // get the benefits of the Tracker add-on with the benefits of the - // stand-alone application. - - if (!message->HasRef("refs")) - message->AddRef("refs", &dirRef); - - // get the path of the Tracker add-on - image_info image; - int32 cookie = 0; - status_t status = get_next_image_info(0, &cookie, &image); - - while (status == B_OK) { - if (((char*)process_refs >= (char*)image.text - && (char*)process_refs <= (char*)image.text + image.text_size) - || ((char*)process_refs >= (char*)image.data - && (char*)process_refs <= (char*)image.data + image.data_size)) - break; - - status = get_next_image_info(0, &cookie, &image); - } - - entry_ref addonRef; - - if (get_ref_for_path(image.name, &addonRef) == B_OK) { - // It's better to launch the application by its entry - // than by its application signature. There may be - // multiple instances and we would not be certain - // that the desired one is launched - the one which was - // loaded into Tracker and whose process_refs() was called. - be_roster->Launch(&addonRef, message); - } else - be_roster->Launch(kAppSignature, message); -} diff --git a/src/apps/diskusage/Jamfile b/src/apps/diskusage/Jamfile index 977da34979..22b5328b30 100644 --- a/src/apps/diskusage/Jamfile +++ b/src/apps/diskusage/Jamfile @@ -1,5 +1,6 @@ SubDir HAIKU_TOP src apps diskusage ; +UsePrivateHeaders shared ; UsePrivateHeaders tracker ; SubDirHdrs $(HAIKU_TOP) src kits tracker ;