30
30
#ifndef DEBUGGER_DEBUGGERKITCONFIGWIDGET_H
31
31
#define DEBUGGER_DEBUGGERKITCONFIGWIDGET_H
33
#include "debuggerkitinformation.h"
35
#include <coreplugin/dialogs/ioptionspage.h>
33
36
#include <projectexplorer/kitconfigwidget.h>
35
#include "debuggerkitinformation.h"
37
#include <projectexplorer/abi.h>
38
#include <utils/detailswidget.h>
39
#include <utils/fileutils.h>
40
#include <utils/pathchooser.h>
43
#include <QStandardItemModel>
45
namespace ProjectExplorer { class Kit; }
51
52
namespace Debugger {
53
53
namespace Internal {
54
// -----------------------------------------------------------------------
55
// DebuggerKitConfigWidget:
55
class DebuggerItemConfigWidget;
56
class DebuggerKitConfigWidget;
58
// -----------------------------------------------------------------------
60
//------------------------------------------------------------------------
61
class DebuggerItemModel : public QStandardItemModel
66
DebuggerItemModel(QObject *parent);
68
QModelIndex currentIndex() const;
69
QModelIndex lastIndex() const;
70
void setCurrentIndex(const QModelIndex &index);
71
QVariant currentDebugger() const { return m_currentDebugger; }
72
void addDebugger(const DebuggerItem &item);
73
void removeDebugger(const QVariant &id);
74
void updateDebugger(const QVariant &id);
77
void markCurrentDirty();
80
void debuggerAdded(const QVariant &id, const QString &display);
81
void debuggerUpdated(const QVariant &id, const QString &display);
82
void debuggerRemoved(const QVariant &id);
85
friend class Debugger::DebuggerKitInformation;
86
friend class DebuggerKitConfigWidget;
87
friend class DebuggerItemConfigWidget;
88
friend class DebuggerOptionsPage;
90
QStandardItem *currentStandardItem() const;
91
QStandardItem *findStandardItemById(const QVariant &id) const;
92
QVariant headerData(int section, Qt::Orientation orientation, int role) const;
94
QVariant m_currentDebugger;
96
QStandardItem *m_autoRoot;
97
QStandardItem *m_manualRoot;
101
// -----------------------------------------------------------------------
102
// DebuggerKitConfigWidget
56
103
// -----------------------------------------------------------------------
58
105
class DebuggerKitConfigWidget : public ProjectExplorer::KitConfigWidget
63
DebuggerKitConfigWidget(ProjectExplorer::Kit *workingCopy, bool sticky);
110
DebuggerKitConfigWidget(ProjectExplorer::Kit *workingCopy,
111
const ProjectExplorer::KitInformation *ki);
112
~DebuggerKitConfigWidget();
65
114
QString displayName() const;
66
115
QString toolTip() const;
68
116
void makeReadOnly();
72
118
QWidget *buttonWidget() const;
73
119
QWidget *mainWidget() const;
76
void autoDetectDebugger();
82
QPushButton *m_autoDetectButton;
83
QPushButton *m_editButton;
86
class DebuggerKitConfigDialog : public QDialog
90
explicit DebuggerKitConfigDialog(QWidget *parent = 0);
92
void setDebuggerItem(const DebuggerKitInformation::DebuggerItem &item);
93
DebuggerKitInformation::DebuggerItem item() const
94
{ return DebuggerKitInformation::DebuggerItem(engineType(), fileName()); }
100
DebuggerEngineType engineType() const;
101
void setEngineType(DebuggerEngineType et);
103
Utils::FileName fileName() const;
104
void setFileName(const Utils::FileName &fn);
122
void manageDebuggers();
123
void currentDebuggerChanged(int idx);
124
void onDebuggerAdded(const QVariant &id, const QString &displayName);
125
void onDebuggerUpdated(const QVariant &id, const QString &displayName);
126
void onDebuggerRemoved(const QVariant &id);
129
int indexOf(const QVariant &id);
130
QVariant currentId() const;
131
void updateComboBox(const QVariant &id);
106
134
QComboBox *m_comboBox;
108
Utils::PathChooser *m_chooser;
135
QPushButton *m_manageButton;
138
// --------------------------------------------------------------------------
139
// DebuggerOptionsPage
140
// --------------------------------------------------------------------------
142
class DebuggerOptionsPage : public Core::IOptionsPage
147
DebuggerOptionsPage();
149
QWidget *createPage(QWidget *parent);
152
bool matches(const QString &) const;
155
void debuggerSelectionChanged();
156
void debuggerModelChanged();
158
void cloneDebugger();
160
void removeDebugger();
163
QWidget *m_configWidget;
164
QString m_searchKeywords;
166
DebuggerItemModel *m_model;
167
DebuggerItemConfigWidget *m_itemConfigWidget;
168
QTreeView *m_debuggerView;
169
Utils::DetailsWidget *m_container;
170
QPushButton *m_addButton;
171
QPushButton *m_cloneButton;
172
QPushButton *m_delButton;
111
175
} // namespace Internal