* Check if ProcessController are already installed in deskbar, If so don't try to install again.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31526 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Fredrik Modeen
2009-07-12 10:25:18 +00:00
parent 008ec58d9f
commit fcab391bbc
+14 -15
View File
@@ -79,20 +79,24 @@ PCApplication::ReadyToRun()
Preferences preferences(kPreferencesFileName); Preferences preferences(kPreferencesFileName);
int32 version = 0; int32 version = 0;
preferences.ReadInt32(version, kVersionName); preferences.ReadInt32(version, kVersionName);
if (version != kCurrentVersion) {
BAlert* alert = new BAlert("", "Do you want ProcessController to live in the Deskbar?",
"Don't", "Install", NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT);
alert->SetShortcut(0, B_ESCAPE);
if (alert->Go()) {
bool hasOne = false;
{
BDeskbar deskbar; BDeskbar deskbar;
if (deskbar.HasItem(kDeskbarItemName)) bool hasOne = deskbar.HasItem(kDeskbarItemName);
hasOne = true;
BAlert* alert = NULL;
if (!hasOne || (hasOne && version != kCurrentVersion)) {
alert = new BAlert("",
"Do you want ProcessController to live in the Deskbar?", "Don't",
"Install", NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT);
alert->SetShortcut(0, B_ESCAPE);
} else {
BAlert alertTemp("",
"ProcessController are already installed in Deskbar.","Ok", NULL,
NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT);
alertTemp.Go();
} }
if (hasOne) { if (alert != NULL && alert->Go()) {
// Restart deskbar to make sure the new version is picked up // Restart deskbar to make sure the new version is picked up
team_id deskbarTeam = be_roster->TeamFor(kDeskbarSig); team_id deskbarTeam = be_roster->TeamFor(kDeskbarSig);
if (deskbarTeam >= 0) { if (deskbarTeam >= 0) {
@@ -108,17 +112,12 @@ PCApplication::ReadyToRun()
do { do {
snooze (10000); snooze (10000);
} while (!be_roster->IsRunning(kDeskbarSig) && k-- > 0); } while (!be_roster->IsRunning(kDeskbarSig) && k-- > 0);
}
BDeskbar deskbar; BDeskbar deskbar;
if (!deskbar.HasItem(kDeskbarItemName)) if (!deskbar.HasItem(kDeskbarItemName))
move_to_deskbar(deskbar); move_to_deskbar(deskbar);
Quit(); Quit();
return; return;
} }
}
new PCWindow(); new PCWindow();
// quit other eventually running instances // quit other eventually running instances