Files
qt-creator/src/plugins/debugger/debuggerplugin.h

138 lines
4.2 KiB
C
Raw Normal View History

/**************************************************************************
2008-12-02 12:01:29 +01:00
**
** This file is part of Qt Creator
**
2010-03-05 11:25:49 +01:00
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
2008-12-02 12:01:29 +01:00
**
** Contact: Nokia Corporation (qt-info@nokia.com)
2008-12-02 12:01:29 +01:00
**
** Commercial Usage
**
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Nokia.
**
** GNU Lesser General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** If you are unsure which license is appropriate for your use, please
2009-08-14 09:30:56 +02:00
** contact the sales department at http://qt.nokia.com/contact.
2008-12-02 12:01:29 +01:00
**
**************************************************************************/
2008-12-02 15:08:31 +01:00
2008-12-02 12:01:29 +01:00
#ifndef DEBUGGERPLUGIN_H
#define DEBUGGERPLUGIN_H
#include "debugger_global.h"
#include "debuggerconstants.h"
2008-12-02 12:01:29 +01:00
#include <extensionsystem/iplugin.h>
2008-12-02 12:01:29 +01:00
QT_BEGIN_NAMESPACE
class QIcon;
class QMessageBox;
2008-12-02 12:01:29 +01:00
QT_END_NAMESPACE
namespace CPlusPlus {
class Snapshot;
}
namespace ProjectExplorer {
class RunConfiguration;
class RunControl;
}
2008-12-02 12:01:29 +01:00
namespace Debugger {
class DebuggerEngine;
class DebuggerPluginPrivate;
class DebuggerRunControl;
class DebuggerStartParameters;
2008-12-02 12:01:29 +01:00
namespace Internal {
class BreakHandler;
class SnapshotHandler;
}
2008-12-02 12:01:29 +01:00
class DEBUGGER_EXPORT DebuggerPlugin : public ExtensionSystem::IPlugin
2008-12-02 12:01:29 +01:00
{
Q_OBJECT
public:
DebuggerPlugin();
~DebuggerPlugin();
static DebuggerPlugin *instance();
static DebuggerRunControl *createDebugger(const DebuggerStartParameters &sp,
ProjectExplorer::RunConfiguration *rc = 0);
static void startDebugger(ProjectExplorer::RunControl *runControl);
static void displayDebugger(ProjectExplorer::RunControl *runControl);
static void displayDebugger(DebuggerEngine *engine, bool updateEngine = true);
2010-07-21 14:42:14 +02:00
QVariant sessionValue(const QString &name);
void setSessionValue(const QString &name, const QVariant &value);
QVariant configValue(const QString &name) const;
void setConfigValue(const QString &name, const QVariant &value);
void updateState(DebuggerEngine *engine);
virtual void remoteCommand(const QStringList &options, const QStringList &arguments);
void showQtDumperLibraryWarning(const QString &details);
QIcon locationMarkIcon() const;
2010-07-21 14:42:14 +02:00
void activateDebugMode();
2010-07-21 14:42:14 +02:00
const CPlusPlus::Snapshot &cppCodeModelSnapshot() const;
bool isRegisterViewVisible() const;
bool hasSnapshots() const;
2010-07-21 14:42:14 +02:00
void openTextEditor(const QString &titlePattern, const QString &contents);
Internal::BreakHandler *breakHandler() const;
Internal::SnapshotHandler *snapshotHandler() const;
DebuggerEngine *currentEngine() const;
2010-07-21 14:42:14 +02:00
public slots:
void clearCppCodeModelSnapshot();
void ensureLogVisible();
// void runTest(const QString &fileName);
void showMessage(const QString &msg, int channel, int timeout = -1);
void gotoLocation(const QString &fileName, int lineNumber = -1,
bool setMarker = false);
2008-12-02 12:01:29 +01:00
private:
friend class DebuggerEngine;
2010-07-21 14:42:14 +02:00
friend class DebuggerPluginPrivate;
friend class DebuggerRunControl;
void resetLocation();
void readSettings();
void writeSettings() const;
bool isReverseDebugging() const;
void createNewDock(QWidget *widget);
void runControlStarted(DebuggerRunControl *runControl);
void runControlFinished(DebuggerRunControl *runControl);
DebuggerLanguages activeLanguages() const;
2010-07-21 14:42:14 +02:00
QMessageBox *showMessageBox(int icon, const QString &title,
const QString &text, int buttons = 0);
bool initialize(const QStringList &arguments, QString *errorMessage);
ShutdownFlag aboutToShutdown();
void extensionsInitialized();
QWidget *mainWindow() const;
DebuggerPluginPrivate *d;
2008-12-02 12:01:29 +01:00
};
} // namespace Debugger
#endif // DEBUGGERPLUGIN_H