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

139 lines
4.0 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"
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 DebuggerPluginPrivate;
class DebuggerRunControl;
class DebuggerStartParameters;
2008-12-02 12:01:29 +01:00
namespace Internal {
class DebuggerEngine;
class DebuggerListener;
}
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();
QVariant configValue(const QString &name) const;
QVariant sessionValue(const QString &name);
void setSessionValue(const QString &name, const QVariant &value);
void setConfigValue(const QString &name, const QVariant &value);
bool coreAboutToClose();
2008-12-02 12:01:29 +01:00
void resetLocation();
void gotoLocation(const QString &fileName, int lineNumber, bool setMarker);
2008-12-02 12:01:29 +01:00
void activatePreviousMode();
void activateDebugMode();
void openTextEditor(const QString &titlePattern, const QString &contents);
void readSettings();
void writeSettings() const;
2008-12-02 12:01:29 +01:00
static DebuggerRunControl *createDebugger(const DebuggerStartParameters &sp,
ProjectExplorer::RunConfiguration *rc = 0);
static void startDebugger(ProjectExplorer::RunControl *runControl);
static void displayDebugger(ProjectExplorer::RunControl *runControl);
QMessageBox *showMessageBox(int icon, const QString &title,
const QString &text, int buttons = 0);
const CPlusPlus::Snapshot &cppCodeModelSnapshot() const;
QIcon locationMarkIcon() const;
bool isReverseDebugging() const;
void createNewDock(QWidget *widget);
void runControlStarted(DebuggerRunControl *runControl);
void runControlFinished(DebuggerRunControl *runControl);
// This contains per-session data like breakpoints and watched
// expression. It serves as a template for new engine instantiations.
Internal::DebuggerEngine *sessionTemplate();
void updateState(Internal::DebuggerEngine *engine);
bool isRegisterViewVisible() const;
public slots:
void clearCppCodeModelSnapshot();
void ensureLogVisible();
// void runTest(const QString &fileName);
void showMessage(const QString &msg, int channel, int timeout = -1);
signals:
void stateChanged(int);
2008-12-02 12:01:29 +01:00
private:
friend class Internal::DebuggerEngine;
friend class Internal::DebuggerListener;
Q_SLOT void emitShutdownFinished();
bool initialize(const QStringList &arguments, QString *errorMessage);
ShutdownFlag aboutToShutdown();
void extensionsInitialized();
QWidget *mainWindow() const;
private:
friend class DebuggerPluginPrivate;
DebuggerPluginPrivate *d;
2008-12-02 12:01:29 +01:00
};
} // namespace Debugger
#endif // DEBUGGERPLUGIN_H