Debugger: Cleanups.

General:
- Move all smaller prompt/edit windows to a dedicated subfolder.

Debugger/TeamsWindow/StartTeamWindow:
- Move management of StartTeamWindow to application, rather than
  Teams window.

TeamWindow:
- Add top level menu item for commands that aren't specific to the
  current team. This currently consists of requesting that the
  Teams window be shown, and directly starting a new team.

Fixes part of  (no way to start additional teams if Debugger was
initially started with a specific team).
This commit is contained in:
Rene Gollent 2014-12-26 22:45:01 -05:00
parent 1986ab9f31
commit edf74e6ca8
16 changed files with 47 additions and 28 deletions

@ -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;

@ -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

@ -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',

@ -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);

@ -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<TeamRow*>(
@ -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);
}

@ -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;

@ -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: