void GlobalConfig::saveOptions() { // source options ConfigGroup* sourceConfig = ConfigStorage::group("Source"); sourceConfig->setValue("Dirs", _generalSourceDirs); QHashIterator<QString,QStringList> it( _objectSourceDirs ); int count = 1; while( it.hasNext() ) { it.next(); sourceConfig->setValue( QString("Object%1").arg(count), it.key() ); sourceConfig->setValue( QString("Dirs%1").arg(count), it.value() ); count++; } sourceConfig->setValue("Count", count-1); delete sourceConfig; // general options ConfigGroup* generalConfig = ConfigStorage::group("GeneralSettings"); generalConfig->setValue("ShowPercentage", _showPercentage, DEFAULT_SHOWPERCENTAGE); generalConfig->setValue("ShowExpanded", _showExpanded, DEFAULT_SHOWEXPANDED); generalConfig->setValue("ShowCycles", _showCycles, DEFAULT_SHOWCYCLES); generalConfig->setValue("CycleCut", _cycleCut, DEFAULT_CYCLECUT); generalConfig->setValue("PercentPrecision", _percentPrecision, DEFAULT_PERCENTPRECISION); generalConfig->setValue("MaxSymbolLength", _maxSymbolLength, DEFAULT_MAXSYMBOLLENGTH); generalConfig->setValue("MaxSymbolCount", _maxSymbolCount, DEFAULT_MAXSYMBOLCOUNT); generalConfig->setValue("MaxListCount", _maxListCount, DEFAULT_MAXLISTCOUNT); generalConfig->setValue("Context", _context, DEFAULT_CONTEXT); generalConfig->setValue("NoCostInside", _noCostInside, DEFAULT_NOCOSTINSIDE); generalConfig->setValue("HideTemplates", _hideTemplates, DEFAULT_HIDETEMPLATES); delete generalConfig; // event types ConfigGroup* etConfig = ConfigStorage::group("EventTypes"); int etCount = EventType::knownTypeCount(); etConfig->setValue( "Count", etCount); for (int i=0; i<etCount; i++) { EventType* t = EventType::knownType(i); etConfig->setValue( QString("Name%1").arg(i+1), t->name()); etConfig->setValue( QString("Longname%1").arg(i+1), t->longName(), knownLongName(t->name()) ); etConfig->setValue( QString("Formula%1").arg(i+1), t->formula(), knownFormula(t->name()) ); } delete etConfig; }
void GlobalConfig::addDefaultTypes() { QString longName, formula; EventType* ct; QStringList l = knownTypes(); for ( QStringList::const_iterator it = l.constBegin(); it != l.constEnd(); ++it ) { longName = knownLongName(*it); formula = knownFormula(*it); ct = new EventType(*it, longName, formula); EventType::add(ct, false); } }
void GlobalConfig::readOptions() { int i, count; // source options ConfigGroup* sourceConfig = ConfigStorage::group("Source"); QStringList dirs; dirs = sourceConfig->value("Dirs", QStringList()).toStringList(); if (dirs.count()>0) _generalSourceDirs = dirs; count = sourceConfig->value("Count", 0).toInt(); _objectSourceDirs.clear(); for (i=1;i<=count;i++) { QString n = sourceConfig->value(QString("Object%1").arg(i), QString()).toString(); dirs = sourceConfig->value(QString("Dirs%1").arg(i), QStringList()).toStringList(); if (n.isEmpty() || (dirs.count()==0)) continue; _objectSourceDirs.insert(n, dirs); } delete sourceConfig; // general options ConfigGroup* generalConfig = ConfigStorage::group("GeneralSettings"); _showPercentage = generalConfig->value("ShowPercentage", DEFAULT_SHOWPERCENTAGE).toBool(); _showExpanded = generalConfig->value("ShowExpanded", DEFAULT_SHOWEXPANDED).toBool(); _showCycles = generalConfig->value("ShowCycles", DEFAULT_SHOWCYCLES).toBool(); _cycleCut = generalConfig->value("CycleCut", DEFAULT_CYCLECUT).toDouble(); _percentPrecision = generalConfig->value("PercentPrecision", DEFAULT_PERCENTPRECISION).toInt(); _maxSymbolLength = generalConfig->value("MaxSymbolLength", DEFAULT_MAXSYMBOLLENGTH).toInt(); _maxSymbolCount = generalConfig->value("MaxSymbolCount", DEFAULT_MAXSYMBOLCOUNT).toInt(); _maxListCount = generalConfig->value("MaxListCount", DEFAULT_MAXLISTCOUNT).toInt(); _context = generalConfig->value("Context", DEFAULT_CONTEXT).toInt(); _noCostInside = generalConfig->value("NoCostInside", DEFAULT_NOCOSTINSIDE).toInt(); _hideTemplates = generalConfig->value("HideTemplates", DEFAULT_HIDETEMPLATES).toBool(); delete generalConfig; // event types if (EventType::knownTypeCount() >0) return; // already read ConfigGroup* etConfig = ConfigStorage::group("EventTypes"); int etCount = etConfig->value("Count", 0).toInt(); for (int i=1;i<=etCount;i++) { QString n = etConfig->value(QString("Name%1").arg(i), QString()).toString(); QString l = etConfig->value(QString("Longname%1").arg(i), QString()).toString(); if (l.isEmpty()) l = knownLongName(n); QString f = etConfig->value(QString("Formula%1").arg(i), QString()).toString(); if (f.isEmpty()) f = knownFormula(n); EventType::add(new EventType(n, l, f)); } // this does only add yet non-existing types addDefaultTypes(); delete etConfig; }
void GlobalConfig::readOptions() { int i, count; // color options _colors.clear(); // colors for default event types: // red for L2 misses, green for L1 misses, blue for normal accesses colorSetting("EventType-I2mr")->_color = QColor(240, 0, 0); colorSetting("EventType-D2mr")->_color = QColor(180,40,40); colorSetting("EventType-D2mw")->_color = QColor(120,80,80); colorSetting("EventType-I1mr")->_color = QColor(0, 240, 0); colorSetting("EventType-D1mr")->_color = QColor(40,180,40); colorSetting("EventType-D1mw")->_color = QColor(80,120,80); colorSetting("EventType-Ir")->_color = QColor(0, 0, 240); colorSetting("EventType-Dr")->_color = QColor(40,40,180); colorSetting("EventType-Dw")->_color = QColor(80,80,120); ConfigGroup* colorConfig = ConfigStorage::group("CostColors"); count = colorConfig->value("Count", 0).toInt(); for (i=1;i<=count;i++) { QString n = colorConfig->value(QString("Name%1").arg(i), QString()).toString(); QColor color = colorConfig->value<QColor>(QString("Color%1").arg(i), QColor(Qt::black)); if (n.isEmpty()) continue; ConfigColorSetting* cs = new ConfigColorSetting(n,color); _colors.insert(n, cs); } delete colorConfig; // source options ConfigGroup* sourceConfig = ConfigStorage::group("Source"); QStringList dirs; dirs = sourceConfig->value("Dirs", QStringList()).toStringList(); if (dirs.count()>0) _generalSourceDirs = dirs; count = sourceConfig->value("Count", 0).toInt(); _objectSourceDirs.clear(); for (i=1;i<=count;i++) { QString n = sourceConfig->value(QString("Object%1").arg(i), QString()).toString(); dirs = sourceConfig->value(QString("Dirs%1").arg(i), QStringList()).toStringList(); if (n.isEmpty() || (dirs.count()==0)) continue; _objectSourceDirs.insert(n, dirs); } delete sourceConfig; // general options ConfigGroup* generalConfig = ConfigStorage::group("GeneralSettings"); _showPercentage = generalConfig->value("ShowPercentage", DEFAULT_SHOWPERCENTAGE).toBool(); _showExpanded = generalConfig->value("ShowExpanded", DEFAULT_SHOWEXPANDED).toBool(); _showCycles = generalConfig->value("ShowCycles", DEFAULT_SHOWCYCLES).toBool(); _cycleCut = generalConfig->value("CycleCut", DEFAULT_CYCLECUT).toDouble(); _percentPrecision = generalConfig->value("PercentPrecision", DEFAULT_PERCENTPRECISION).toInt(); _maxSymbolLength = generalConfig->value("MaxSymbolLength", DEFAULT_MAXSYMBOLLENGTH).toInt(); _maxSymbolCount = generalConfig->value("MaxSymbolCount", DEFAULT_MAXSYMBOLCOUNT).toInt(); _maxListCount = generalConfig->value("MaxListCount", DEFAULT_MAXLISTCOUNT).toInt(); _context = generalConfig->value("Context", DEFAULT_CONTEXT).toInt(); _noCostInside = generalConfig->value("NoCostInside", DEFAULT_NOCOSTINSIDE).toInt(); _hideTemplates = generalConfig->value("HideTemplates", DEFAULT_HIDETEMPLATES).toBool(); delete generalConfig; // event types if (EventType::knownTypeCount() >0) return; // already read ConfigGroup* etConfig = ConfigStorage::group("EventTypes"); int etCount = etConfig->value("Count", 0).toInt(); if (etCount == 0) { addDefaultTypes(); return; } for (int i=1;i<=etCount;i++) { QString n = etConfig->value(QString("Name%1").arg(i), QString()).toString(); QString l = etConfig->value(QString("Longname%1").arg(i), QString()).toString(); if (l.isEmpty()) l = knownLongName(n); QString f = etConfig->value(QString("Formula%1").arg(i), QString()).toString(); if (f.isEmpty()) f = knownFormula(n); EventType::add(new EventType(n, l, f)); } delete etConfig; }