Ticket #2185: src_apps_processcontroller_PCWorld.cpp.diff

File src_apps_processcontroller_PCWorld.cpp.diff, 2.0 KB (added by kaoutsis, 11 years ago)
  • src/apps/processcontroller/PCWorld.cpp

     
    2929#include <Alert.h>
    3030#include <Application.h>
    3131#include <Deskbar.h>
     32#include <FindDirectory.h>
     33#include <Path.h>
    3234#include <Roster.h>
     35#include <String.h>
    3336
    3437#include <stdio.h>
    3538#include <stdlib.h>
     
    149152                snooze(10000);
    150153            } while (be_roster->IsRunning(kTrackerSig) && k-- > 0);
    151154        }
    152         remove("/boot/home/config/settings/Tracker/tracker_shelf");
    153         launch(kTrackerSig, "/boot/beos/system/Tracker");
     155
     156        BPath trackerShelfPath;
     157        status_t status = find_directory(B_USER_SETTINGS_DIRECTORY, &trackerShelfPath);
     158        if (status == B_OK)
     159            status = trackerShelfPath.Append("Tracker/tracker_shelf");
     160
     161        if (status < B_OK) {
     162            BString errorMessage;
     163            errorMessage << "Composing the path failed!\n"
     164                << "At file: " << __FILE__ << ",\n"
     165                << "function: " << __PRETTY_FUNCTION__ << ", " << __LINE__ << "\n"
     166                << "Reason: " << strerror(status);
     167            (new BAlert("AlertError", errorMessage.String(), "OK", NULL, NULL,
     168                B_WIDTH_AS_USUAL, B_STOP_ALERT))->Go();
     169            return;
     170        }
     171        remove(trackerShelfPath.Path());
     172
     173        BPath trackerPath;
     174        status = find_directory(B_BEOS_SYSTEM_DIRECTORY, &trackerPath);
     175        if (status == B_OK)
     176            status = trackerPath.Append("Tracker");
     177
     178        if (status < B_OK) {
     179            BString errorMessage;
     180            errorMessage << "Composing the path failed!\n"
     181                << "At file: " << __FILE__ << ",\n"
     182                << "function: " << __PRETTY_FUNCTION__ << ", " << __LINE__ << "\n"
     183                << "Reason: " << strerror(status);
     184            (new BAlert("AlertError", errorMessage.String(), "OK", NULL, NULL,
     185                B_WIDTH_AS_USUAL, B_STOP_ALERT))->Go();
     186            return;
     187        }
     188
     189        launch(kTrackerSig, trackerPath.Path());
    154190    } else if (argc == 2 && strcmp(argv[1], "-deskbar") == 0) {
    155191        BDeskbar deskbar;
    156192        if (!gInDeskbar && !deskbar.HasItem(kDeskbarItemName))