Enabled the use of Debugger-specific watch/locals models.

- Modified WatchModel to handle storage of an hierarchy
  of WatchItems.
- Factored out code for asynchronous population to
  AsyncWatchModel and added a mixin for convenient
  handling
- Added base class for synchronous models.
- Implement simple, synchronous models for CDB, greatly
  simplifying code and finally getting manual
  expansion right.
Signed-off-by: hjk <qtc-committer@nokia.com>
This commit is contained in:
Friedemann Kleint
2009-07-10 14:36:28 +02:00
parent b0227ce496
commit abf5e3ddc3
29 changed files with 1798 additions and 697 deletions

View File

@@ -34,6 +34,7 @@
#include "gdbmi.h"
#include "outputcollector.h"
#include "watchutils.h"
#include "asyncwatchmodel.h"
#include <consoleprocess.h>
@@ -122,6 +123,8 @@ private:
void loadAllSymbols();
virtual QList<Symbol> moduleSymbols(const QString &moduleName);
WatchModel *watchModel(int type) const { return m_models.model(type); }
Q_SLOT void setDebugDebuggingHelpers(const QVariant &on);
Q_SLOT void setUseDebuggingHelpers(const QVariant &on);
@@ -197,6 +200,7 @@ private slots:
void stubStarted();
void stubError(const QString &msg);
void uploadProcError(QProcess::ProcessError error);
void updateWatchData(const WatchData &data);
private:
int terminationIndex(const QByteArray &buffer, int &length);
@@ -324,7 +328,6 @@ private:
// FIXME: BaseClass. called to improve situation for a watch item
void updateSubItem(const WatchData &data);
void updateWatchData(const WatchData &data);
void rebuildModel();
void insertData(const WatchData &data);
@@ -384,6 +387,7 @@ private:
DebuggerManager * const q;
IDebuggerManagerAccessForEngines * const qq;
AsyncWatchModelMixin m_models;
// make sure to re-initialize new members in initializeVariables();
};