debugger: simplify DebuggerMainWindow creation

This commit is contained in:
hjk
2010-12-03 10:45:51 +01:00
parent 524be13d98
commit ebce274d10
2 changed files with 16 additions and 35 deletions

View File

@@ -69,6 +69,7 @@
using namespace Core; using namespace Core;
using namespace ProjectExplorer; using namespace ProjectExplorer;
using namespace Debugger::Constants;
namespace Debugger { namespace Debugger {
namespace Internal { namespace Internal {
@@ -157,8 +158,6 @@ public:
QWeakPointer<Project> m_previousProject; QWeakPointer<Project> m_previousProject;
QWeakPointer<Target> m_previousTarget; QWeakPointer<Target> m_previousTarget;
QWeakPointer<RunConfiguration> m_previousRunConfiguration; QWeakPointer<RunConfiguration> m_previousRunConfiguration;
bool m_initialized;
}; };
DebuggerMainWindowPrivate::DebuggerMainWindowPrivate(DebuggerMainWindow *mw) DebuggerMainWindowPrivate::DebuggerMainWindowPrivate(DebuggerMainWindow *mw)
@@ -172,7 +171,6 @@ DebuggerMainWindowPrivate::DebuggerMainWindowPrivate(DebuggerMainWindow *mw)
, m_previousDebugLanguages(AnyLanguage) , m_previousDebugLanguages(AnyLanguage)
, m_activeDebugLanguages(AnyLanguage) , m_activeDebugLanguages(AnyLanguage)
, m_viewsMenu(0) , m_viewsMenu(0)
, m_initialized(false)
{} {}
void DebuggerMainWindowPrivate::updateUiOnFileListChange() void DebuggerMainWindowPrivate::updateUiOnFileListChange()
@@ -242,6 +240,10 @@ using namespace Internal;
DebuggerMainWindow::DebuggerMainWindow() DebuggerMainWindow::DebuggerMainWindow()
{ {
d = new DebuggerMainWindowPrivate(this); d = new DebuggerMainWindowPrivate(this);
d->createViewsMenuItems();
addLanguage(CppLanguage, Context(C_CPPDEBUGGER));
addLanguage(QmlLanguage, Context(C_QMLDEBUGGER));
} }
DebuggerMainWindow::~DebuggerMainWindow() DebuggerMainWindow::~DebuggerMainWindow()
@@ -303,6 +305,8 @@ void DebuggerMainWindowPrivate::createViewsMenuItems()
ICore *core = ICore::instance(); ICore *core = ICore::instance();
ActionManager *am = core->actionManager(); ActionManager *am = core->actionManager();
Context globalcontext(Core::Constants::C_GLOBAL); Context globalcontext(Core::Constants::C_GLOBAL);
m_viewsMenu = am->actionContainer(Id(Core::Constants::M_WINDOW_VIEWS));
QTC_ASSERT(m_viewsMenu, return)
QAction *openMemoryEditorAction = new QAction(this); QAction *openMemoryEditorAction = new QAction(this);
openMemoryEditorAction->setText(tr("Memory...")); openMemoryEditorAction->setText(tr("Memory..."));
@@ -331,22 +335,16 @@ void DebuggerMainWindowPrivate::createViewsMenuItems()
void DebuggerMainWindow::addLanguage(const DebuggerLanguage &languageId, const Context &context) void DebuggerMainWindow::addLanguage(const DebuggerLanguage &languageId, const Context &context)
{ {
bool activate = (d->m_supportedLanguages == AnyLanguage);
d->m_supportedLanguages = d->m_supportedLanguages | languageId; d->m_supportedLanguages = d->m_supportedLanguages | languageId;
d->m_languageCount++; d->m_languageCount++;
d->m_toolBars.insert(languageId, 0); d->m_toolBars.insert(languageId, 0);
d->m_contextsForLanguage.insert(languageId, context); d->m_contextsForLanguage.insert(languageId, context);
d->updateUiForRunConfiguration(0);
if (activate)
d->updateUi();
} }
void DebuggerMainWindowPrivate::updateUi() void DebuggerMainWindowPrivate::updateUi()
{ {
if (m_changingUI || !m_initialized || !m_inDebugMode) if (m_changingUI || !m_inDebugMode)
return; return;
m_changingUI = true; m_changingUI = true;
@@ -633,20 +631,6 @@ void DebuggerMainWindow::readSettings()
d->m_activeDebugLanguages = langs; d->m_activeDebugLanguages = langs;
} }
void DebuggerMainWindow::initialize()
{
d->createViewsMenuItems();
d->setSimpleDockWidgetArrangement(AnyLanguage);
readSettings();
d->updateUi();
d->hideInactiveWidgets();
setDockActionsVisible(false);
d->m_initialized = true;
}
void DebuggerMainWindowPrivate::resetDebuggerLayout() void DebuggerMainWindowPrivate::resetDebuggerLayout()
{ {
setSimpleDockWidgetArrangement(m_activeDebugLanguages); setSimpleDockWidgetArrangement(m_activeDebugLanguages);
@@ -717,8 +701,8 @@ void DebuggerMainWindowPrivate::setSimpleDockWidgetArrangement
QDockWidget *m_snapshotDock = q->snapshotsWindow(); QDockWidget *m_snapshotDock = q->snapshotsWindow();
QDockWidget *m_threadsDock = q->threadsWindow(); QDockWidget *m_threadsDock = q->threadsWindow();
QDockWidget *m_outputDock = q->outputWindow(); QDockWidget *m_outputDock = q->outputWindow();
QDockWidget *m_qmlInspectorDock = //QDockWidget *m_qmlInspectorDock =
q->dockWidget(Constants::DOCKWIDGET_QML_INSPECTOR); // q->dockWidget(Constants::DOCKWIDGET_QML_INSPECTOR);
QDockWidget *m_scriptConsoleDock = QDockWidget *m_scriptConsoleDock =
q->dockWidget(Constants::DOCKWIDGET_QML_SCRIPTCONSOLE); q->dockWidget(Constants::DOCKWIDGET_QML_SCRIPTCONSOLE);
QDockWidget *m_modulesDock = QDockWidget *m_modulesDock =

View File

@@ -1489,6 +1489,10 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments,
errorMessage->clear(); errorMessage->clear();
} }
// Cpp/Qml ui setup
m_mainWindow = new DebuggerMainWindow;
ExtensionSystem::PluginManager::instance()->addObject(m_mainWindow);
return true; return true;
} }
@@ -2795,6 +2799,7 @@ void DebuggerPluginPrivate::extensionsInitialized()
// Debug mode setup // Debug mode setup
m_debugMode = new DebugMode(this); m_debugMode = new DebugMode(this);
m_debugMode->setWidget(m_mainWindow->createContents(m_debugMode));
// Watchers // Watchers
connect(m_localsWindow->header(), SIGNAL(sectionResized(int,int,int)), connect(m_localsWindow->header(), SIGNAL(sectionResized(int,int,int)),
@@ -2888,14 +2893,6 @@ void DebuggerPluginPrivate::extensionsInitialized()
ActionContainer *debugMenu = ActionContainer *debugMenu =
am->actionContainer(ProjectExplorer::Constants::M_DEBUG); am->actionContainer(ProjectExplorer::Constants::M_DEBUG);
// Cpp/Qml ui setup
m_mainWindow = new DebuggerMainWindow;
m_debugMode->setWidget(m_mainWindow->createContents(m_debugMode));
ExtensionSystem::PluginManager::instance()->addObject(m_mainWindow);
m_mainWindow->addLanguage(CppLanguage, cppDebuggercontext);
m_mainWindow->addLanguage(QmlLanguage, qmlDebuggerContext);
m_mainWindow->initialize();
readSettings(); readSettings();
// Dock widgets // Dock widgets