Files
qt-creator/src/plugins/debugger/debuggerdialogs.h
2011-05-04 09:21:18 +02:00

279 lines
6.2 KiB
C++

/**************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (info@qt.nokia.com)
**
**
** GNU Lesser General Public License Usage
**
** 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.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** Other Usage
**
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
**
**************************************************************************/
#ifndef DEBUGGER_DIALOGS_H
#define DEBUGGER_DIALOGS_H
#include <QtGui/QDialog>
QT_BEGIN_NAMESPACE
class QModelIndex;
class QPushButton;
class QLineEdit;
class QDialogButtonBox;
namespace Ui {
class AttachCoreDialog;
class AttachExternalDialog;
class StartExternalDialog;
class StartRemoteDialog;
class StartRemoteEngineDialog;
} // namespace Ui
QT_END_NAMESPACE
namespace ProjectExplorer {
class Abi;
}
namespace Debugger {
namespace Internal {
class ProcessListFilterModel;
struct ProcData
{
QString ppid;
QString name;
QString image;
QString state;
};
class AttachCoreDialog : public QDialog
{
Q_OBJECT
public:
explicit AttachCoreDialog(QWidget *parent);
~AttachCoreDialog();
void setExecutableFile(const QString &executable);
void setCoreFile(const QString &core);
QString executableFile() const;
QString coreFile() const;
int abiIndex() const;
void setAbiIndex(int);
ProjectExplorer::Abi abi() const;
QString debuggerCommand();
QString overrideStartScript() const;
void setOverrideStartScript(const QString &scriptName);
private slots:
void changed();
private:
bool isValid() const;
Ui::AttachCoreDialog *m_ui;
};
class AttachExternalDialog : public QDialog
{
Q_OBJECT
public:
explicit AttachExternalDialog(QWidget *parent);
~AttachExternalDialog();
qint64 attachPID() const;
QString executable() const;
int abiIndex() const;
void setAbiIndex(int);
ProjectExplorer::Abi abi() const;
QString debuggerCommand();
virtual void accept();
private slots:
void rebuildProcessList();
void procSelected(const QModelIndex &index);
void procClicked(const QModelIndex &index);
void pidChanged(const QString &index);
void setFilterString(const QString &filter);
private:
inline QPushButton *okButton() const;
inline QString attachPIDText() const;
const QString m_selfPid;
Ui::AttachExternalDialog *m_ui;
ProcessListFilterModel *m_model;
};
class StartExternalDialog : public QDialog
{
Q_OBJECT
public:
explicit StartExternalDialog(QWidget *parent);
~StartExternalDialog();
QString executableFile() const;
void setExecutableFile(const QString &executable);
QString executableArguments() const;
void setExecutableArguments(const QString &args);
QString workingDirectory() const;
void setWorkingDirectory(const QString &str);
int abiIndex() const;
void setAbiIndex(int);
ProjectExplorer::Abi abi() const;
QString debuggerCommand();
bool breakAtMain() const;
bool runInTerminal() const;
void setRunInTerminal(bool v);
bool isValid() const;
private slots:
void changed();
private:
Ui::StartExternalDialog *m_ui;
};
class StartRemoteDialog : public QDialog
{
Q_OBJECT
public:
explicit StartRemoteDialog(QWidget *parent);
~StartRemoteDialog();
QString localExecutable() const;
void setLocalExecutable(const QString &executable);
QString remoteChannel() const;
void setRemoteChannel(const QString &host);
QString remoteArchitecture() const;
void setRemoteArchitecture(const QString &arch);
void setRemoteArchitectures(const QStringList &arches);
QString gnuTarget() const;
void setGnuTarget(const QString &gnuTarget);
void setGnuTargets(const QStringList &gnuTargets);
QString overrideStartScript() const;
void setOverrideStartScript(const QString &scriptName);
bool useServerStartScript() const;
void setUseServerStartScript(bool on);
QString serverStartScript() const;
void setServerStartScript(const QString &scriptName);
QString sysRoot() const;
void setSysRoot(const QString &sysRoot);
QString debugger() const;
void setDebugger(const QString &debugger);
private slots:
void updateState();
private:
Ui::StartRemoteDialog *m_ui;
};
class StartRemoteCdbDialog : public QDialog
{
Q_OBJECT
public:
explicit StartRemoteCdbDialog(QWidget *parent);
~StartRemoteCdbDialog();
QString connection() const;
void setConnection(const QString &);
virtual void accept();
private slots:
void textChanged(const QString &);
private:
QPushButton *m_okButton;
QLineEdit *m_lineEdit;
};
class AddressDialog : public QDialog {
Q_OBJECT
public:
explicit AddressDialog(QWidget *parent = 0);
quint64 address() const;
virtual void accept();
private slots:
void textChanged();
private:
void setOkButtonEnabled(bool v);
bool isOkButtonEnabled() const;
bool isValid() const;
QLineEdit *m_lineEdit;
QDialogButtonBox *m_box;
};
class StartRemoteEngineDialog : public QDialog
{
Q_OBJECT
public:
explicit StartRemoteEngineDialog(QWidget *parent);
~StartRemoteEngineDialog();
QString username() const;
QString host() const;
QString password() const;
QString enginePath() const;
QString inferiorPath() const;
private:
Ui::StartRemoteEngineDialog *m_ui;
};
} // namespace Debugger
} // namespace Internal
#endif // DEBUGGER_DIALOGS_H