diff --git a/src/apps/debugger/Debugger.cpp b/src/apps/debugger/Debugger.cpp index dbf24e39a2..5b72949475 100644 --- a/src/apps/debugger/Debugger.cpp +++ b/src/apps/debugger/Debugger.cpp @@ -28,6 +28,7 @@ #include "MessageCodes.h" #include "SettingsManager.h" #include "SignalSet.h" +#include "StartTeamWindow.h" #include "TeamDebugger.h" #include "TeamsWindow.h" #include "TypeHandlerRoster.h" @@ -369,6 +370,7 @@ private: TeamDebuggerList fTeamDebuggers; int32 fRunningTeamDebuggers; TeamsWindow* fTeamsWindow; + StartTeamWindow* fStartTeamWindow; }; @@ -398,7 +400,8 @@ Debugger::Debugger() : BApplication(kDebuggerSignature), fRunningTeamDebuggers(0), - fTeamsWindow(NULL) + fTeamsWindow(NULL), + fStartTeamWindow(NULL) { } @@ -449,6 +452,23 @@ Debugger::MessageReceived(BMessage* message) Quit(); break; } + case MSG_SHOW_START_TEAM_WINDOW: + { + BMessenger messenger(fStartTeamWindow); + if (!messenger.IsValid()) { + fStartTeamWindow = StartTeamWindow::Create(); + if (fStartTeamWindow == NULL) + break; + fStartTeamWindow->Show(); + } else + fStartTeamWindow->Activate(); + break; + } + case MSG_START_TEAM_WINDOW_CLOSED: + { + fStartTeamWindow = NULL; + break; + } case MSG_DEBUG_THIS_TEAM: { int32 teamID; diff --git a/src/apps/debugger/Jamfile b/src/apps/debugger/Jamfile index 7ecd9325fd..a265e56f92 100644 --- a/src/apps/debugger/Jamfile +++ b/src/apps/debugger/Jamfile @@ -38,6 +38,7 @@ SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui inspector_window ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui model ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui team_window ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui teams_window ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui utility_windows ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui util ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface gui value ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) user_interface util ] ; @@ -265,17 +266,13 @@ Application Debugger : MemoryView.cpp # user_interface/gui/teams_window - StartTeamWindow.cpp TeamsWindow.cpp TeamsListView.cpp # user_interface/gui/team_window - BreakConditionConfigWindow.cpp - BreakpointEditWindow.cpp BreakpointListView.cpp BreakpointsView.cpp ConsoleOutputView.cpp - ExpressionPromptWindow.cpp ImageFunctionsView.cpp ImageListView.cpp RegistersView.cpp @@ -284,7 +281,6 @@ Application Debugger : TeamWindow.cpp ThreadListView.cpp VariablesView.cpp - WatchPromptWindow.cpp # user_interface/gui/util ActionMenuItem.cpp @@ -292,6 +288,12 @@ Application Debugger : SettingsMenu.cpp TargetAddressTableColumn.cpp + # user_interface/gui/utility_windows + BreakConditionConfigWindow.cpp + BreakpointEditWindow.cpp + ExpressionPromptWindow.cpp + StartTeamWindow.cpp + WatchPromptWindow.cpp # user_interface/gui/value TableCellBoolRenderer.cpp diff --git a/src/apps/debugger/MessageCodes.h b/src/apps/debugger/MessageCodes.h index 8edb2e8207..648e8548be 100644 --- a/src/apps/debugger/MessageCodes.h +++ b/src/apps/debugger/MessageCodes.h @@ -65,6 +65,8 @@ enum { MSG_BREAK_CONDITION_CONFIG_WINDOW_CLOSED = 'bccw', MSG_SHOW_BREAKPOINT_EDIT_WINDOW = 'sbew', MSG_BREAKPOINT_EDIT_WINDOW_CLOSED = 'bewc', + MSG_SHOW_START_TEAM_WINDOW = 'sstw', + MSG_START_TEAM_WINDOW_CLOSED = 'stwc', MSG_START_NEW_TEAM = 'sttt', MSG_DEBUG_THIS_TEAM = 'dbtt', MSG_SHOW_INSPECTOR_WINDOW = 'sirw', diff --git a/src/apps/debugger/user_interface/gui/team_window/TeamWindow.cpp b/src/apps/debugger/user_interface/gui/team_window/TeamWindow.cpp index 7dbb0f9ca6..769d155248 100644 --- a/src/apps/debugger/user_interface/gui/team_window/TeamWindow.cpp +++ b/src/apps/debugger/user_interface/gui/team_window/TeamWindow.cpp @@ -1080,9 +1080,19 @@ TeamWindow::_Init() fSourcePathView->AddFilter(filter); // add menus and menu items - BMenu* menu = new BMenu("Team"); + BMenu* menu = new BMenu("Debugger"); fMenuBar->AddItem(menu); - BMenuItem* item = new BMenuItem("Restart", new BMessage( + BMenuItem* item = new BMenuItem("Start new team" B_UTF8_ELLIPSIS, + new BMessage(MSG_SHOW_START_TEAM_WINDOW)); + menu->AddItem(item); + item->SetTarget(be_app); + item = new BMenuItem("Show Teams window" B_UTF8_ELLIPSIS, + new BMessage(MSG_SHOW_TEAMS_WINDOW)); + menu->AddItem(item); + item->SetTarget(be_app); + menu = new BMenu("Team"); + fMenuBar->AddItem(menu); + item = new BMenuItem("Restart", new BMessage( MSG_TEAM_RESTART_REQUESTED), 'R', B_SHIFT_KEY); menu->AddItem(item); item->SetTarget(this); diff --git a/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.cpp b/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.cpp index 617a3ef3df..49ff6d2af9 100644 --- a/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.cpp +++ b/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.cpp @@ -23,7 +23,6 @@ #include "MessageCodes.h" #include "SettingsManager.h" -#include "StartTeamWindow.h" #include "TeamsWindow.h" #include "TeamsListView.h" @@ -38,7 +37,6 @@ TeamsWindow::TeamsWindow(SettingsManager* settingsManager) BWindow(BRect(100, 100, 500, 250), "Teams", B_DOCUMENT_WINDOW, B_ASYNCHRONOUS_CONTROLS), fTeamsListView(NULL), - fStartTeamWindow(NULL), fAttachTeamButton(NULL), fCreateTeamButton(NULL), fSettingsManager(settingsManager) @@ -51,7 +49,6 @@ TeamsWindow::TeamsWindow(SettingsManager* settingsManager) TeamsWindow::~TeamsWindow() { - BMessenger(fStartTeamWindow).SendMessage(B_QUIT_REQUESTED); } @@ -92,19 +89,6 @@ void TeamsWindow::MessageReceived(BMessage* message) { switch (message->what) { - case MSG_START_NEW_TEAM: - { - BMessenger messenger(fStartTeamWindow); - if (!messenger.IsValid()) { - fStartTeamWindow = StartTeamWindow::Create(); - if (fStartTeamWindow == NULL) - break; - } - - fStartTeamWindow->Show(); - break; - } - case MSG_DEBUG_THIS_TEAM: { TeamRow* row = dynamic_cast( @@ -172,7 +156,7 @@ TeamsWindow::_Init() .Add(fAttachTeamButton = new BButton("Attach", new BMessage( MSG_DEBUG_THIS_TEAM))) .Add(fCreateTeamButton = new BButton("Start new team" - B_UTF8_ELLIPSIS, new BMessage(MSG_START_NEW_TEAM))) + B_UTF8_ELLIPSIS, new BMessage(MSG_SHOW_START_TEAM_WINDOW))) .End() .End(); @@ -181,6 +165,7 @@ TeamsWindow::_Init() MSG_TEAM_SELECTION_CHANGED)); fAttachTeamButton->SetEnabled(false); + fCreateTeamButton->SetTarget(be_app); } diff --git a/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.h b/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.h index b83083e6bf..eb2b99be64 100644 --- a/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.h +++ b/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.h @@ -14,7 +14,6 @@ class BListView; class BFile; class BMessage; class SettingsManager; -class StartTeamWindow; class TeamsListView; class TeamsWindow : public BWindow { @@ -38,7 +37,6 @@ private: private: team_id fCurrentTeam; TeamsListView* fTeamsListView; - StartTeamWindow* fStartTeamWindow; BButton* fAttachTeamButton; BButton* fCreateTeamButton; SettingsManager* fSettingsManager; diff --git a/src/apps/debugger/user_interface/gui/team_window/BreakConditionConfigWindow.cpp b/src/apps/debugger/user_interface/gui/utility_windows/BreakConditionConfigWindow.cpp similarity index 100% rename from src/apps/debugger/user_interface/gui/team_window/BreakConditionConfigWindow.cpp rename to src/apps/debugger/user_interface/gui/utility_windows/BreakConditionConfigWindow.cpp diff --git a/src/apps/debugger/user_interface/gui/team_window/BreakConditionConfigWindow.h b/src/apps/debugger/user_interface/gui/utility_windows/BreakConditionConfigWindow.h similarity index 100% rename from src/apps/debugger/user_interface/gui/team_window/BreakConditionConfigWindow.h rename to src/apps/debugger/user_interface/gui/utility_windows/BreakConditionConfigWindow.h diff --git a/src/apps/debugger/user_interface/gui/team_window/BreakpointEditWindow.cpp b/src/apps/debugger/user_interface/gui/utility_windows/BreakpointEditWindow.cpp similarity index 100% rename from src/apps/debugger/user_interface/gui/team_window/BreakpointEditWindow.cpp rename to src/apps/debugger/user_interface/gui/utility_windows/BreakpointEditWindow.cpp diff --git a/src/apps/debugger/user_interface/gui/team_window/BreakpointEditWindow.h b/src/apps/debugger/user_interface/gui/utility_windows/BreakpointEditWindow.h similarity index 100% rename from src/apps/debugger/user_interface/gui/team_window/BreakpointEditWindow.h rename to src/apps/debugger/user_interface/gui/utility_windows/BreakpointEditWindow.h diff --git a/src/apps/debugger/user_interface/gui/team_window/ExpressionPromptWindow.cpp b/src/apps/debugger/user_interface/gui/utility_windows/ExpressionPromptWindow.cpp similarity index 100% rename from src/apps/debugger/user_interface/gui/team_window/ExpressionPromptWindow.cpp rename to src/apps/debugger/user_interface/gui/utility_windows/ExpressionPromptWindow.cpp diff --git a/src/apps/debugger/user_interface/gui/team_window/ExpressionPromptWindow.h b/src/apps/debugger/user_interface/gui/utility_windows/ExpressionPromptWindow.h similarity index 100% rename from src/apps/debugger/user_interface/gui/team_window/ExpressionPromptWindow.h rename to src/apps/debugger/user_interface/gui/utility_windows/ExpressionPromptWindow.h diff --git a/src/apps/debugger/user_interface/gui/teams_window/StartTeamWindow.cpp b/src/apps/debugger/user_interface/gui/utility_windows/StartTeamWindow.cpp similarity index 98% rename from src/apps/debugger/user_interface/gui/teams_window/StartTeamWindow.cpp rename to src/apps/debugger/user_interface/gui/utility_windows/StartTeamWindow.cpp index 149bacd028..43af440314 100644 --- a/src/apps/debugger/user_interface/gui/teams_window/StartTeamWindow.cpp +++ b/src/apps/debugger/user_interface/gui/utility_windows/StartTeamWindow.cpp @@ -152,8 +152,10 @@ StartTeamWindow::MessageReceived(BMessage* message) messageString.String(), "Close"); if (alert != NULL) alert->Go(); - } else + } else { + be_app->PostMessage(MSG_START_TEAM_WINDOW_CLOSED); PostMessage(B_QUIT_REQUESTED); + } break; } default: diff --git a/src/apps/debugger/user_interface/gui/teams_window/StartTeamWindow.h b/src/apps/debugger/user_interface/gui/utility_windows/StartTeamWindow.h similarity index 100% rename from src/apps/debugger/user_interface/gui/teams_window/StartTeamWindow.h rename to src/apps/debugger/user_interface/gui/utility_windows/StartTeamWindow.h diff --git a/src/apps/debugger/user_interface/gui/team_window/WatchPromptWindow.cpp b/src/apps/debugger/user_interface/gui/utility_windows/WatchPromptWindow.cpp similarity index 100% rename from src/apps/debugger/user_interface/gui/team_window/WatchPromptWindow.cpp rename to src/apps/debugger/user_interface/gui/utility_windows/WatchPromptWindow.cpp diff --git a/src/apps/debugger/user_interface/gui/team_window/WatchPromptWindow.h b/src/apps/debugger/user_interface/gui/utility_windows/WatchPromptWindow.h similarity index 100% rename from src/apps/debugger/user_interface/gui/team_window/WatchPromptWindow.h rename to src/apps/debugger/user_interface/gui/utility_windows/WatchPromptWindow.h