23 #include <QTreeWidgetItem>
24 #include <QFileDialog>
36 QObject::tr(
"Source Annotation"),
37 QObject::tr(
"Directory Settings for Source Annotation"))
41 ui.dirList->setRootIsDecorated(
false);
44 _always = tr(
"(always)");
50 if (d.isEmpty()) d =
"/";
52 i->setText(0, _always);
54 ui.dirList->addTopLevelItem(i);
57 QStringList objItems(_always);
59 TraceObjectMap::Iterator oit;
62 QString n = (*oit).name();
63 if (n.isEmpty())
continue;
67 sit = dirs.constBegin();
68 for(; sit != dirs.constEnd(); ++sit ) {
70 if (d.isEmpty()) d =
"/";
74 ui.dirList->addTopLevelItem(i);
79 ui.objectBox->addItems(objItems);
80 ui.objectBox->setCurrentIndex(0);
82 connect(ui.addDirButton, SIGNAL(clicked()),
84 connect(ui.deleteDirButton, SIGNAL(clicked()),
86 connect(ui.browseDirButton, SIGNAL(clicked()),
93 SIGNAL(currentIndexChanged(QString)),
95 connect(ui.dirEdit, SIGNAL(textChanged(QString)),
105 if ((idx==0) || (idx>ui.dirList->topLevelItemCount()))
return;
107 ui.dirList->setCurrentItem(ui.dirList->topLevelItem(idx-1));
108 ui.dirEdit->setFocus();
111 void SourceSettings::update()
114 ui.deleteDirButton->setEnabled(
false);
115 ui.objectBox->setEnabled(
false);
116 ui.dirEdit->setEnabled(
false);
117 ui.browseDirButton->setEnabled(
false);
120 ui.deleteDirButton->setEnabled(
true);
121 ui.objectBox->setEnabled(
true);
122 ui.objectBox->setCurrentIndex(ui.objectBox->findText(_current->text(0)));
123 ui.dirEdit->setEnabled(
true);
124 ui.dirEdit->setText(_current->text(1));
125 ui.browseDirButton->setEnabled(
true);
131 i->setText(0, ui.objectBox->currentText());
132 i->setText(1, tr(
"<insert valid directory>"));
133 ui.dirList->addTopLevelItem(i);
134 ui.dirList->setCurrentItem(i);
139 if (!_current)
return;
154 d = QFileDialog::getExistingDirectory(
this,
155 tr(
"Choose Source Directory"));
157 ui.dirEdit->setText(d);
169 if (!_current)
return;
171 _current->setText(0, obj);
176 if (!_current)
return;
178 _current->setText(1, dir);
183 for(
int idx=0; idx< ui.dirList->topLevelItemCount(); idx++) {
185 QString dir = item->text(1);
186 if (QDir(dir).exists())
continue;
187 errorMsg = tr(
"Directory does not exist");
188 errorItem = QString(
"%1").arg(idx+1);
198 QHash<QString, QStringList> dirs;
199 for(
int idx=0; idx< ui.dirList->topLevelItemCount(); idx++) {
201 dirs[item->text(0)] << item->text(1);
203 QHash<QString, QStringList>::const_iterator oit = dirs.constBegin();
204 for(;oit != dirs.constEnd(); ++oit) {
205 if (oit.key() == _always)
212 #include "sourcesettings.moc"
void objectChanged(QString)
QStringList objectSourceDirs(QString)
static GlobalConfig * config()
SourceSettings(TraceData *data, QWidget *parent)
void setObjectSourceDirs(QString, QStringList)
void setGeneralSourceDirs(QStringList)
TraceObjectMap & objectMap()
void dirListItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)
Global configuration (only non-GUI options).
void dirEditChanged(QString)
bool check(QString &, QString &)
This class holds profiling data of multiple tracefiles generated with cachegrind on one command...
const QStringList & generalSourceDirs()