26 #include <QMessageBox>
28 #include <kcolorbutton.h>
29 #include <kfiledialog.h>
31 #include <knumvalidator.h>
47 connect(objectCombo, SIGNAL(activated(
const QString &)),
49 connect(objectCombo, SIGNAL(textChanged(
const QString &)),
51 connect(objectCheck, SIGNAL(toggled(
bool)),
53 connect(objectColor, SIGNAL(changed(
const QColor &)),
56 connect(classCombo, SIGNAL(activated(
const QString &)),
58 connect(classCombo, SIGNAL(textChanged(
const QString &)),
60 connect(classCheck, SIGNAL(toggled(
bool)),
62 connect(classColor, SIGNAL(changed(
const QColor &)),
65 connect(fileCombo, SIGNAL(activated(
const QString &)),
67 connect(fileCombo, SIGNAL(textChanged(
const QString &)),
69 connect(fileCheck, SIGNAL(toggled(
bool)),
71 connect(fileColor, SIGNAL(changed(
const QColor &)),
74 connect(buttonBox, SIGNAL(accepted()),SLOT(accept()));
75 connect(buttonBox, SIGNAL(rejected()),SLOT(reject()));
80 objectCombo->setDuplicatesEnabled(
false);
81 classCombo->setDuplicatesEnabled(
false);
82 fileCombo->setDuplicatesEnabled(
false);
83 objectCombo->setAutoCompletion(
true);
84 classCombo->setAutoCompletion(
true);
85 fileCombo->setAutoCompletion(
true);
88 TraceObjectMap::Iterator oit;
93 oList.append((*oit).prettyName());
96 TraceClassMap::Iterator cit;
99 for ( cit = data->
classMap().begin();
100 cit != data->
classMap().end(); ++cit )
101 cList.append((*cit).prettyName());
104 TraceFileMap::Iterator fit;
107 for ( fit = data->
fileMap().begin();
108 fit != data->
fileMap().end(); ++fit )
109 fList.append((*fit).prettyName());
114 if (cs->_automatic)
continue;
116 QString n = cs->_name;
117 if (n.startsWith(objectPrefix)) {
118 n = n.remove(0, objectPrefix.length()+1);
119 if (oList.indexOf(n) == -1) oList.append(n);
121 else if (n.startsWith(classPrefix)) {
122 n = n.remove(0, classPrefix.length()+1);
123 if (cList.indexOf(n) == -1) cList.append(n);
125 else if (n.startsWith(filePrefix)) {
126 n = n.remove(0, filePrefix.length()+1);
127 if (fList.indexOf(n) == -1) fList.append(n);
134 objectCombo->addItems(oList);
135 classCombo->addItems(cList);
136 fileCombo->addItems(fList);
145 i->setText(0, i18n(
"(always)"));
146 i->setExpanded(
true);
151 item->setText(0, sit->isEmpty() ? QDir::rootPath() : *sit);
155 oit != data->
objectMap().end(); ++oit ) {
156 const QString n = (*oit).name();
157 if (n.isEmpty())
continue;
160 i->setExpanded(
true);
163 sit = dirs.constBegin();
164 for(; sit != dirs.constEnd(); ++sit ) {
166 item->setText(0, sit->isEmpty() ? QDir::rootPath() : *sit);
171 connect(dirList, SIGNAL(itemSelectionChanged()),
173 connect(addDirButton, SIGNAL(clicked()),
175 connect(deleteDirButton, SIGNAL(clicked()),
177 dirList->setCurrentItem(root);
200 c->
_context = dlg.contextEdit->value();
210 if (s.isEmpty()) { _objectCS=0;
return; }
222 objectCheck->setChecked(cs->_automatic);
236 _objectCS->_automatic = b;
247 if (_objectCS) _objectCS->_color = c;
254 if (s.isEmpty()) { _classCS=0;
return; }
264 classCheck->setChecked(cs->_automatic);
272 if (_classCS) _classCS->_automatic = b;
277 if (_classCS) _classCS->_color = c;
285 if (s.isEmpty()) { _fileCS=0;
return; }
295 fileCheck->setChecked(cs->_automatic);
302 if (_fileCS) _fileCS->_automatic = b;
307 if (_fileCS) _fileCS->_color = c;
313 return selectedItems.count() ? selectedItems[0] : NULL;
319 deleteDirButton->setEnabled(dirItem && dirItem->parent() != NULL);
320 addDirButton->setEnabled(dirItem && dirItem->parent() == NULL);
326 if (!dirItem || (dirItem->parent() == 0))
return;
330 QString objName = p->text(0);
333 if (objName == i18n(
"(always)"))
338 dirs->removeAll(dirItem->text(0));
341 deleteDirButton->setEnabled(
false);
347 if (!dirItem || (dirItem->parent() != 0))
return;
349 QString objName = dirItem->text(0);
352 if (objName == i18n(
"(always)"))
358 newDir = KFileDialog::getExistingDirectory(KUrl(),
360 i18n(
"Choose Source Folder"));
361 if (newDir.isEmpty())
return;
364 if (newDir.endsWith(QLatin1Char(
'/')))
365 newDir = newDir.left(newDir.length()-1);
367 if (dirs->indexOf(newDir)>=0)
return;
369 dirs->append(newDir);
370 if (newDir.isEmpty()) newDir = QDir::rootPath();
372 item->setText(0, newDir);
375 #include "configdlg.moc"
static ConfigColorSetting * colorSetting(const QString &, bool createNew=true)
void objectColorChanged(const QColor &)
void classActivated(const QString &)
static QString typeName(Type)
void fileCheckChanged(bool)
void objectActivated(const QString &)
QHash< QString, QStringList > _objectSourceDirs
TraceClassMap & classMap()
ConfigDlg(GlobalGUIConfig *, TraceData *, QWidget *parent=0)
Extension of global configuration for GUI options.
void fileColorChanged(const QColor &)
void classCheckChanged(bool)
TraceObjectMap & objectMap()
void setColor(const QColor &)
QStringList _generalSourceDirs
Color setting for a cost item Helper class for color settings in configuration.
void fileActivated(const QString &)
void objectCheckChanged(bool)
void classColorChanged(const QColor &)
static bool configure(GlobalGUIConfig *, TraceData *, QWidget *)
QHash< QString, ConfigColorSetting * > _colors
This class holds profiling data of multiple tracefiles generated with cachegrind on one command...