28 #include <QListWidget>
29 #include <QStackedWidget>
30 #include <QDialogButtonBox>
31 #include <QHBoxLayout>
32 #include <QVBoxLayout>
46 setWindowTitle(tr(
"Configure QCachegrind"));
48 _listWidget =
new QListWidget(
this);
49 _listWidget->setMaximumWidth(140);
50 _widgetStack =
new QStackedWidget(
this);
51 _titleLabel =
new QLabel(
this);
53 labelFont.setBold(
true);
54 _titleLabel->setFont(labelFont);
55 _errorLabel =
new QLabel(
this);
56 _errorLabel->setIndent(9);
58 QDialogButtonBox* bbox =
new QDialogButtonBox(
this);
59 bbox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
61 QVBoxLayout* vbox1 =
new QVBoxLayout();
62 vbox1->addWidget(_titleLabel);
63 QFrame* f1 =
new QFrame(
this);
64 f1->setFrameShape(QFrame::HLine);
66 vbox1->addWidget(_errorLabel);
67 vbox1->addWidget(_widgetStack);
69 QHBoxLayout* hbox =
new QHBoxLayout();
70 hbox->addWidget(_listWidget);
71 hbox->addLayout(vbox1);
72 QVBoxLayout* vbox =
new QVBoxLayout(
this);
73 vbox->addLayout(hbox);
74 QFrame* f2 =
new QFrame(
this);
75 f2->setFrameStyle(QFrame::HLine | QFrame::Sunken);
77 vbox->addWidget(bbox);
79 connect(bbox, SIGNAL(accepted()),
this, SLOT(
accept()));
80 connect(bbox, SIGNAL(rejected()),
this, SLOT(reject()));
81 connect(_listWidget, SIGNAL(currentTextChanged(QString)),
83 connect(&_clearTimer, SIGNAL(timeout()),
this, SLOT(
clearError()));
94 _widgetStack->addWidget(p);
95 _listWidget->addItem(p->
title());
96 _pages.insert(p->
title(), p);
105 _widgetStack->setCurrentWidget(p);
106 if (!_activeSetting.isEmpty()) {
108 _activeSetting.clear();
114 _errorLabel->setText(QString());
120 _listWidget->setCurrentRow(0);
123 _activeSetting.clear();
124 int p = s.indexOf(
"/");
127 _activeSetting = s.mid(p+1);
130 for(
int row=0; row<_listWidget->count(); row++) {
131 QListWidgetItem* i = _listWidget->item(row);
132 if (i->text() != page)
continue;
134 if (_listWidget->currentRow() == row)
138 _listWidget->setCurrentRow(row);
144 return _listWidget->currentItem()->text();
150 QString errorMsg, errorItem;
152 if (!p->
check(errorMsg, errorItem)) {
153 if (!errorMsg.isEmpty()) {
154 errorMsg = QString(
"<font color=red>%1</color>").arg(errorMsg);
155 _errorLabel->setText(errorMsg);
156 _clearTimer.start(5000);
168 #include "configdialog.moc"
virtual bool check(QString &errorMsg, QString &errorItem)
ConfigDialog(TraceData *data, QWidget *parent, QString s=QString::null)
virtual void activate(QString)
This class holds profiling data of multiple tracefiles generated with cachegrind on one command...
void listItemChanged(QString)