/* This file is part of KCachegrind. Copyright (C) 2002, 2003 Josef Weidendorfer KCachegrind is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* * Configuration for KCachegrind */ #ifndef CONFIGURATION_H #define CONFIGURATION_H #include #include #include #include "tracedata.h" class TDEConfig; class Configuration { friend class ConfigDlg; public: Configuration(); static Configuration* config(); static void saveOptions(TDEConfig*); static void readOptions(TDEConfig*); // color for visualisation of an object static TQColor functionColor(TraceItem::CostType gt, TraceFunction*); static TQColor groupColor(TraceItem*); static TQColor costTypeColor(TraceCostType*); static TQStringList sourceDirs(TraceData*, TraceObject* o = 0); static bool showPercentage(); static bool showExpanded(); static bool showCycles(); // lower percentage limit of cost items filled into lists static int percentPrecision(); // max symbol lengths/count in tooltip/popup static int maxSymbolLength(); // strip a symbol name according to static TQString shortenSymbol(TQString); static int maxSymbolCount(); // max. number of items in lists static int maxListCount(); // how many lines of context to show before/after annotated source/assembler static int context(); // how many lines without cost are still regarded as inside a function static int noCostInside(); static void setShowPercentage(bool); static void setShowExpanded(bool); static void setShowCycles(bool); // upper limit for cutting of a call in cycle detection static double cycleCut(); private: struct ColorSetting { TQString name; TQColor color; bool automatic; }; static ColorSetting* color(TQString, bool createNew = true); TQDict _colors; TQStringList _generalSourceDirs; TQDict _objectSourceDirs; bool _showPercentage, _showExpanded, _showCycles; double _cycleCut; int _percentPrecision; int _maxSymbolLength, _maxSymbolCount, _maxListCount; int _context, _noCostInside; static Configuration* _config; }; #endif