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; }