• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

kcachegrind

  • sources
  • kde-4.14
  • kdesdk
  • kcachegrind
  • libviews
partgraph.cpp
Go to the documentation of this file.
1 /* This file is part of KCachegrind.
2  Copyright (C) 2003,2009 Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
3 
4  KCachegrind is free software; you can redistribute it and/or
5  modify it under the terms of the GNU General Public
6  License as published by the Free Software Foundation, version 2.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; see the file COPYING. If not, write to
15  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16  Boston, MA 02110-1301, USA.
17 */
18 
19 /*
20  * TracePart as Nested Area
21  */
22 
23 #include "partgraph.h"
24 
25 #include <QPixmap>
26 
27 #include "globalguiconfig.h"
28 #include "listutils.h"
29 
30 
31 // PartAreaWidget
32 
33 PartAreaWidget::PartAreaWidget(QWidget* parent)
34  : TreeMapWidget(new BasePartItem(), parent)
35 {
36  _data = 0;
37  _function = 0;
38 
39  _eventType = 0;
40  _groupType = ProfileContext::InvalidType;
41  _visualization = NoVisualization;
42  _zoomFunction = false;
43  _callLevels = 1;
44 }
45 
46 void PartAreaWidget::setData(TraceData* data)
47 {
48  if (data == _data) return;
49 
50  _data = data;
51  _function = 0;
52  _hiddenParts.clear();
53 
54  ((BasePartItem*)base())->setData(data);
55 }
56 
57 void PartAreaWidget::changeHidden(const TracePartList& list)
58 {
59  _hiddenParts = list;
60  base()->refresh();
61 }
62 
63 
64 void PartAreaWidget::setEventType(EventType* ct)
65 {
66  _eventType = ct;
67 
68  // this resizes items
69  base()->redraw();
70 }
71 
72 void PartAreaWidget::setVisualization(VisualizationMode m)
73 {
74  _visualization = m;
75  refreshParts();
76 }
77 
78 void PartAreaWidget::setZoomFunction(bool zoomFunction)
79 {
80  _zoomFunction = zoomFunction;
81  refreshParts();
82 }
83 
84 void PartAreaWidget::setCallLevels(int callLevels)
85 {
86  _callLevels = callLevels;
87  refreshParts();
88 }
89 
90 void PartAreaWidget::refreshParts()
91 {
92  // rebuild only subparts to keep part selection state
93  TreeMapItemList* l = base()->children();
94  if (l)
95  foreach(TreeMapItem* i, *l)
96  i->refresh();
97 
98  // but resize part areas
99  base()->redraw();
100 }
101 
102 
103 void PartAreaWidget::setFunction(TraceFunction* f)
104 {
105  _function = f;
106 
107  if (_visualization == PartAreaWidget::Inclusive)
108  refreshParts();
109 }
110 
111 void PartAreaWidget::setGroupType(ProfileContext::Type gt)
112 {
113  _groupType = gt;
114 
115  // rebuild hierarchy below parts.
116  // thus, selected parts stay selected
117  TreeMapItemList* l = base()->children();
118  if (l)
119  foreach(TreeMapItem* i, *l)
120  i->refresh();
121 
122  base()->redraw();
123 }
124 
125 bool PartAreaWidget::isHidden(TracePart* part) const
126 {
127  return _hiddenParts.contains(part);
128 }
129 
130 QColor PartAreaWidget::groupColor(TraceFunction* f) const
131 {
132  if (!f)
133  return palette().color( QPalette::Button );
134 
135  return GlobalGUIConfig::functionColor(_groupType, f);
136 }
137 
138 QString PartAreaWidget::tipString(TreeMapItem* i) const
139 {
140  QString tip, itemTip;
141  int count = 0;
142 
143  //qDebug("PartAreaWidget::tipString for '%s'", i->name().toAscii());
144 
145  // first, SubPartItem's
146  while (i && count<GlobalConfig::maxSymbolCount() && i->rtti() == 3) {
147  itemTip = GlobalConfig::shortenSymbol(i->text(0));
148 
149  if (!i->text(1).isEmpty())
150  itemTip += " (" + i->text(1) + ')';
151 
152  if (!tip.isEmpty())
153  itemTip += '\n';
154 
155  tip = itemTip + tip;
156  i = i->parent();
157  count++;
158  }
159 
160  // skip to part
161  while (i && i->rtti()==3) i = i->parent();
162 
163  if (i && i->rtti()==2) {
164  itemTip = QObject::tr("Profile Part %1").arg(i->text(0));
165  if (!i->text(1).isEmpty())
166  itemTip += " (" + i->text(1) + ')';
167 
168  if (!tip.isEmpty())
169  itemTip += '\n';
170 
171  tip = itemTip + tip;
172  }
173 
174 // qDebug("PartAreaWidget:: tip %s, itemTip %s",
175 // tip.toAscii(), itemTip.toAscii());
176 
177  return tip;
178 }
179 
180 
181 
182 
183 
184 // BasePartItem
185 
186 BasePartItem::BasePartItem()
187  : TreeMapItem()
188 {
189  _data = 0;
190  setSorting(-1);
191 }
192 
193 void BasePartItem::setData(TraceData* data)
194 {
195  if (data == _data) return;
196 
197  _data = data;
198  refresh();
199 }
200 
201 TreeMapItemList* BasePartItem::children()
202 {
203  if (!_data) return _children;
204 
205  if (!initialized()) {
206 // qDebug("Create Parts (%s)", name().toAscii());
207 
208  PartAreaWidget* w = (PartAreaWidget*) widget();
209  foreach(TracePart* part, _data->parts())
210  if (!w->isHidden(part))
211  addItem(new PartItem(part));
212 }
213 
214  return _children;
215 }
216 
217 QString BasePartItem::text(int textNo) const
218 {
219  if (textNo == 0) {
220  if (!_data)
221  return QObject::tr("(no trace)");
222 
223  if (_data->parts().count() == 0)
224  return QObject::tr("(no part)");
225  }
226  return QString();
227 }
228 
229 
230 QColor BasePartItem::backColor() const
231 {
232  return widget()->palette().base().color();
233 }
234 
235 double BasePartItem::value() const
236 {
237  if (!_data) return 0;
238 
239  PartAreaWidget* w = (PartAreaWidget*) widget();
240  return (double)_data->subCost(w->eventType());
241 }
242 
243 
244 
245 
246 
247 // PartItem
248 
249 PartItem::PartItem(TracePart* p)
250 {
251  _p = p;
252  _factor=1;
253 }
254 
255 QString PartItem::text(int textNo) const
256 {
257  if (textNo == 0)
258  return _p->prettyName();
259 
260  if (textNo != 1)
261  return QString();
262 
263  EventType* ct;
264  PartAreaWidget* w = (PartAreaWidget*)widget();
265  SubCost v;
266 
267  ct = w->eventType();
268  v = _p->subCost(ct);
269 
270  if (GlobalConfig::showPercentage()) {
271  ProfileCostArray* t = _p->data()->totals();
272  double p = 100.0 * v / t->subCost(ct);
273  return QString("%1 %")
274  .arg(p, 0, 'f', GlobalConfig::percentPrecision());
275  }
276  return v.pretty();
277 }
278 
279 
280 QPixmap PartItem::pixmap(int i) const
281 {
282  if (i != 1) return QPixmap();
283 
284  // Cost pixmap
285 
286  EventType* ct = ((PartAreaWidget*)widget())->eventType();
287  return costPixmap( ct, _p, (double) (_p->data()->totals()->subCost(ct)), false );
288 }
289 
290 
291 double PartItem::value() const
292 {
293  PartAreaWidget* w = (PartAreaWidget*)widget();
294  EventType* ct = w->eventType();
295  if ((w->visualization() == PartAreaWidget::Inclusive) &&
296  w->zoomFunction()) {
297 
298  // use value of zoomed function
299  TraceFunction* f = w->function();
300  if (f) {
301  TracePartFunction* pf = (TracePartFunction*) f->findDepFromPart(_p);
302  if (pf)
303  return (double) pf->inclusive()->subCost(ct);
304  // when function is not available in part, hide part
305  return 0.0;
306  }
307  }
308  return (double) _p->subCost(ct);
309 }
310 
311 double PartItem::sum() const
312 {
313  PartAreaWidget* w = (PartAreaWidget*)widget();
314  if (w->visualization() == PartAreaWidget::Inclusive) {
315  double s = value();
316  //qDebug("PartItem::sum [part %s]: %d", _p->name().toAscii(), s);
317  return s;
318  }
319  return 0.0;
320 }
321 
322 TreeMapItemList* PartItem::children()
323 {
324  if (initialized()) return _children;
325 
326  ProfileCostArray* c;
327 // qDebug("Create Part subitems (%s)", name().toAscii());
328 
329  PartAreaWidget* w = (PartAreaWidget*)widget();
330  if (w->visualization() == PartAreaWidget::Inclusive) {
331  TraceFunction* f = w->function();
332  if (f) {
333  c = f->findDepFromPart(_p);
334  if (c) addItem(new SubPartItem(c));
335  }
336 
337  return _children;
338  }
339 
340 
341  switch( ((PartAreaWidget*)widget())->groupType() ) {
342 
343  case ProfileContext::Object:
344  {
345  TraceObjectMap::Iterator it;
346  for ( it = _p->data()->objectMap().begin();
347  it != _p->data()->objectMap().end(); ++it ) {
348  c = (*it).findDepFromPart(_p);
349  if (c)
350  addItem(new SubPartItem(c));
351  }
352  }
353  break;
354 
355  case ProfileContext::Class:
356  {
357  TraceClassMap::Iterator it;
358  for ( it = _p->data()->classMap().begin();
359  it != _p->data()->classMap().end(); ++it ) {
360  c = (*it).findDepFromPart(_p);
361  if (c)
362  addItem(new SubPartItem(c));
363  }
364  }
365  break;
366 
367  case ProfileContext::File:
368  {
369  TraceFileMap::Iterator it;
370  for ( it = _p->data()->fileMap().begin();
371  it != _p->data()->fileMap().end(); ++it ) {
372  c = (*it).findDepFromPart(_p);
373  if (c)
374  addItem(new SubPartItem(c));
375  }
376  }
377  break;
378 
379  case ProfileContext::Function:
380  {
381  TraceFunctionMap::Iterator it;
382  for ( it = _p->data()->functionMap().begin();
383  it != _p->data()->functionMap().end(); ++it ) {
384  c = (*it).findDepFromPart(_p);
385  if (c)
386  addItem(new SubPartItem(c));
387  }
388  }
389  break;
390 
391  default:
392  break;
393  }
394 
395  return _children;
396 }
397 
398 
399 QColor PartItem::backColor() const
400 {
401  PartAreaWidget* w = (PartAreaWidget*)widget();
402  return w->groupColor(0);
403 }
404 
405 
406 // SubPartItem
407 
408 SubPartItem::SubPartItem(ProfileCostArray* c)
409 {
410  _partCostItem = c;
411  _factor=1;
412 }
413 
414 QString SubPartItem::text(int textNo) const
415 {
416  if (textNo == 0) {
417  if (!_partCostItem)
418  return QObject::tr("(unknown)");
419 
420  return _partCostItem->dependant()->prettyName();
421  }
422 
423  if (textNo != 1)
424  return QString();
425 
426  EventType* ct;
427  PartAreaWidget* w = (PartAreaWidget*)widget();
428  SubCost v;
429 
430  ct = w->eventType();
431  if (w->visualization() == PartAreaWidget::Inclusive)
432  v = ((TracePartFunction*)_partCostItem)->inclusive()->subCost(ct);
433  else
434  v = _partCostItem->subCost(ct);
435 
436  if (GlobalConfig::showPercentage()) {
437  ProfileCostArray* t = GlobalConfig::showExpanded() ?
438  _partCostItem->part() : _partCostItem->part()->data()->totals();
439  double p = 100.0 * v / t->subCost(ct);
440  return QString("%1 %")
441  .arg(p, 0, 'f', GlobalConfig::percentPrecision());
442  }
443  return v.pretty();
444 }
445 
446 QPixmap SubPartItem::pixmap(int i) const
447 {
448  if (i != 1) return QPixmap();
449 
450  // Cost pixmap
451 
452  PartAreaWidget* w = (PartAreaWidget*)widget();
453  EventType* ct = w->eventType();
454  ProfileCostArray* t = GlobalConfig::showExpanded() ?
455  _partCostItem->part() : _partCostItem->part()->data()->totals();
456  ProfileCostArray* c;
457  if (w->visualization() == PartAreaWidget::Inclusive)
458  c = ((TracePartFunction*)_partCostItem)->inclusive();
459  else
460  c = _partCostItem;
461 
462  return costPixmap( ct, c, (double) (t->subCost(ct)), false );
463 }
464 
465 double SubPartItem::value() const
466 {
467  EventType* ct;
468  PartAreaWidget* w = (PartAreaWidget*)widget();
469 
470  ct = w->eventType();
471  if (w->visualization() == PartAreaWidget::Inclusive)
472  return (double)
473  ((TracePartFunction*)_partCostItem)->inclusive()->subCost(ct);
474 
475  return (double) _partCostItem->subCost(ct);
476 }
477 
478 double SubPartItem::sum() const
479 {
480  PartAreaWidget* w = (PartAreaWidget*)widget();
481  if (w->visualization() == PartAreaWidget::Inclusive) {
482  double s = value();
483  //qDebug("SubPartItem::sum [Cost %s]: %d", _cost->name().toAscii(), s);
484  return s;
485  }
486  return 0.0;
487 }
488 
489 TreeMapItemList* SubPartItem::children()
490 {
491  if (!initialized()) {
492 // qDebug("Create Part sub-subitems (%s)", name().toAscii());
493 
494  PartAreaWidget* w = (PartAreaWidget*)widget();
495 
496  if (depth()-2 > w->callLevels())
497  return _children;
498 
499  if (w->visualization() == PartAreaWidget::Inclusive) {
500  setSum(value());
501 
502  TracePartCallList l;
503  l = ((TracePartFunction*)_partCostItem)->partCallings();
504  foreach(TracePartCall* call, l) {
505  TraceFunction* called = call->call()->called();
506  ProfileCostArray* partCalled = called->findDepFromPart(call->part());
507  if (partCalled)
508  addItem(new SubPartItem(partCalled));
509  }
510  }
511  }
512 
513  return _children;
514 }
515 
516 
517 QColor SubPartItem::backColor() const
518 {
519  PartAreaWidget* w = (PartAreaWidget*)widget();
520  if (w->visualization() == PartAreaWidget::Inclusive)
521  return w->groupColor((TraceFunction*)(_partCostItem->dependant()));
522 
523  return GlobalGUIConfig::groupColor(_partCostItem->dependant());
524 }
525 
526 
527 #include "partgraph.moc"
TreeMapWidget::base
TreeMapItem * base() const
Returns the TreeMapItem filling out the widget space.
Definition: treemap.h:410
TreeMapItem::initialized
bool initialized()
Definition: treemap.cpp:973
QList::clear
void clear()
CostItem::part
virtual TracePart * part()
Definition: costitem.cpp:101
QWidget
GlobalConfig::showPercentage
static bool showPercentage()
Definition: globalconfig.cpp:328
QWidget::palette
const QPalette & palette() const
PartAreaWidget::setData
void setData(TraceData *d)
Definition: partgraph.cpp:46
ProfileCostArray::subCost
SubCost subCost(EventType *)
Returns a sub cost.
Definition: costitem.cpp:591
QWidget::isHidden
bool isHidden() const
TreeMapItem::setSum
void setSum(double s)
Definition: treemap.h:319
TracePartCall::call
TraceCall * call() const
Definition: tracedata.h:528
PartAreaWidget::VisualizationMode
VisualizationMode
Definition: partgraph.h:37
SubPartItem::sum
double sum() const
Definition: partgraph.cpp:478
SubPartItem::pixmap
QPixmap pixmap(int) const
Definition: partgraph.cpp:446
ProfileContext::File
Definition: context.h:48
PartAreaWidget::setFunction
void setFunction(TraceFunction *f)
Definition: partgraph.cpp:103
PartAreaWidget::setGroupType
void setGroupType(ProfileContext::Type gt)
Definition: partgraph.cpp:111
TreeMapItem::redraw
void redraw()
Definition: treemap.cpp:921
BasePartItem
Definition: partgraph.h:76
GlobalGUIConfig::functionColor
static QColor functionColor(ProfileContext::Type gt, TraceFunction *)
Definition: globalguiconfig.cpp:205
QPalette::color
const QColor & color(ColorGroup group, ColorRole role) const
TraceFunction
A traced function.
Definition: tracedata.h:1122
BasePartItem::value
double value() const
Definition: partgraph.cpp:235
TreeMapItem::rtti
virtual int rtti() const
Definition: treemap.cpp:1084
partgraph.h
PartAreaWidget::visualization
VisualizationMode visualization() const
Definition: partgraph.h:52
PartAreaWidget::PartAreaWidget
PartAreaWidget(QWidget *parent=0)
Definition: partgraph.cpp:33
TracePart::prettyName
QString prettyName() const
Similar to name, but prettyfied = more descriptive to humans.
Definition: tracedata.cpp:3025
TraceData::totals
ProfileCostArray * totals()
Definition: tracedata.h:1449
QObject::tr
QString tr(const char *sourceText, const char *disambiguation, int n)
EventType
A cost type, e.g.
Definition: eventtype.h:43
ProfileContext::Class
Definition: context.h:47
PartAreaWidget::eventType
EventType * eventType() const
Definition: partgraph.h:49
PartAreaWidget::isHidden
bool isHidden(TracePart *) const
Definition: partgraph.cpp:125
TraceData::parts
TracePartList parts() const
Definition: tracedata.h:1397
GlobalGUIConfig::groupColor
static QColor groupColor(CostItem *)
Definition: globalguiconfig.cpp:188
SubPartItem::value
double value() const
Definition: partgraph.cpp:465
TraceInclusiveListCost::findDepFromPart
TraceInclusiveCost * findDepFromPart(TracePart *)
Definition: tracedata.cpp:438
TreeMapItem::parent
TreeMapItem * parent() const
Parent Item.
Definition: treemap.h:285
ProfileCostArray
An array of basic cost metrics for a trace item.
Definition: costitem.h:144
CostItem::dependant
CostItem * dependant()
Definition: costitem.h:97
QList::count
int count(const T &value) const
SubPartItem::SubPartItem
SubPartItem(ProfileCostArray *)
Definition: partgraph.cpp:408
TraceData::classMap
TraceClassMap & classMap()
Definition: tracedata.h:1440
TreeMapWidget
Class for visualization of a metric of hierarchically nested items as 2D areas.
Definition: treemap.h:392
PartItem::PartItem
PartItem(TracePart *p)
Definition: partgraph.cpp:249
PartItem::children
TreeMapItemList * children()
Definition: partgraph.cpp:322
TreeMapItem::refresh
void refresh()
Definition: treemap.cpp:942
listutils.h
PartAreaWidget::setCallLevels
void setCallLevels(int callLevels)
Definition: partgraph.cpp:84
QString::isEmpty
bool isEmpty() const
StoredDrawParams::text
QString text(int) const
Definition: treemap.cpp:79
SubPartItem::backColor
QColor backColor() const
Definition: partgraph.cpp:517
PartItem::sum
double sum() const
Definition: partgraph.cpp:311
PartItem::value
double value() const
Definition: partgraph.cpp:291
CostItem::data
virtual TraceData * data()
Definition: costitem.cpp:111
QString
QList< TracePart * >
PartAreaWidget::setZoomFunction
void setZoomFunction(bool zoomFunction)
Definition: partgraph.cpp:78
QMap::end
iterator end()
QColor
globalguiconfig.h
PartAreaWidget
Definition: partgraph.h:31
PartAreaWidget::tipString
QString tipString(TreeMapItem *) const
Return tooltip string to show for a item (can be rich text) Default implementation gives lines with "...
Definition: partgraph.cpp:138
GlobalConfig::shortenSymbol
static QString shortenSymbol(const QString &)
Definition: globalconfig.cpp:395
TracePartFunction
Cost of a function, from a single trace file.
Definition: tracedata.h:543
PartAreaWidget::changeHidden
void changeHidden(const TracePartList &list)
Definition: partgraph.cpp:57
QMap::begin
iterator begin()
BasePartItem::setData
void setData(TraceData *d)
Definition: partgraph.cpp:193
QPixmap
EventType::subCost
SubCost subCost(ProfileCostArray *)
Definition: eventtype.cpp:196
TraceData::objectMap
TraceObjectMap & objectMap()
Definition: tracedata.h:1438
TreeMapItem::children
virtual TreeMapItemList * children()
Definition: treemap.cpp:1089
QList::contains
bool contains(const T &value) const
TracePartCall
Cost of a call at a function to another function, from a single trace file.
Definition: tracedata.h:516
SubPartItem::children
TreeMapItemList * children()
Definition: partgraph.cpp:489
PartAreaWidget::callLevels
int callLevels() const
Definition: partgraph.h:54
BasePartItem::BasePartItem
BasePartItem()
Definition: partgraph.cpp:186
PartAreaWidget::setEventType
void setEventType(EventType *ct)
Definition: partgraph.cpp:64
SubPartItem
Definition: partgraph.h:113
PartAreaWidget::setVisualization
void setVisualization(VisualizationMode)
Definition: partgraph.cpp:72
TracePart
A Trace Part: All data read from a trace file, containing all costs that happened in a specified time...
Definition: tracedata.h:655
PartAreaWidget::Inclusive
Definition: partgraph.h:37
GlobalConfig::showExpanded
static bool showExpanded()
Definition: globalconfig.cpp:333
PartAreaWidget::function
TraceFunction * function() const
Definition: partgraph.h:51
TreeMapItem::depth
int depth() const
Depth of this item.
Definition: treemap.cpp:963
TreeMapItem::_children
TreeMapItemList * _children
Definition: treemap.h:365
GlobalConfig::percentPrecision
static int percentPrecision()
Definition: globalconfig.cpp:385
PartAreaWidget::NoVisualization
Definition: partgraph.h:37
ProfileContext::Type
Type
Definition: context.h:36
SubCost
Cost event counter, simple wrapper around a 64bit entity.
Definition: subcost.h:32
PartItem::text
QString text(int) const
Definition: partgraph.cpp:255
TraceCall::called
TraceFunction * called(bool skipCycle=false) const
Definition: tracedata.cpp:1235
TreeMapItem::setSorting
void setSorting(int textNo, bool ascending=true)
Set the sorting for child drawing.
Definition: treemap.cpp:1046
PartItem
Definition: partgraph.h:94
SubCost::pretty
QString pretty(char sep= ' ') const
Convert SubCost value into a QString, spaced every 3 digits.
Definition: subcost.cpp:46
PartAreaWidget::zoomFunction
bool zoomFunction() const
Definition: partgraph.h:53
TraceData::functionMap
TraceFunctionMap & functionMap()
Definition: tracedata.h:1441
QMap< QString, TraceObject >::Iterator
typedef Iterator
SubPartItem::text
QString text(int) const
Definition: partgraph.cpp:414
ProfileContext::Object
Definition: context.h:49
TraceData
This class holds profiling data of multiple tracefiles generated with cachegrind on one command...
Definition: tracedata.h:1363
CostItem::prettyName
virtual QString prettyName() const
Similar to name, but prettyfied = more descriptive to humans.
Definition: costitem.cpp:65
PartItem::pixmap
QPixmap pixmap(int) const
Definition: partgraph.cpp:280
PartAreaWidget::groupColor
QColor groupColor(TraceFunction *) const
Definition: partgraph.cpp:130
TreeMapItem
Base class of items in TreeMap.
Definition: treemap.h:220
TreeMapItem::addItem
void addItem(TreeMapItem *)
Adds an item to a parent.
Definition: treemap.cpp:982
BasePartItem::children
TreeMapItemList * children()
Definition: partgraph.cpp:201
BasePartItem::text
QString text(int) const
Definition: partgraph.cpp:217
QString::arg
QString arg(qlonglong a, int fieldWidth, int base, const QChar &fillChar) const
TreeMapItem::widget
TreeMapWidget * widget() const
TreeMap widget this item is put in.
Definition: treemap.h:315
costPixmap
QPixmap costPixmap(EventType *ct, ProfileCostArray *cost, double total, bool framed)
Definition: listutils.cpp:217
GlobalConfig::maxSymbolCount
static int maxSymbolCount()
Definition: globalconfig.cpp:407
TraceInclusiveCost::inclusive
ProfileCostArray * inclusive()
Definition: tracedata.cpp:163
TreeMapItemList
Definition: treemap.h:201
ProfileContext::Function
Definition: context.h:46
PartItem::backColor
QColor backColor() const
Definition: partgraph.cpp:399
ProfileContext::InvalidType
Definition: context.h:37
BasePartItem::backColor
QColor backColor() const
Definition: partgraph.cpp:230
TraceData::fileMap
TraceFileMap & fileMap()
Definition: tracedata.h:1439
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:39:50 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kcachegrind

Skip menu "kcachegrind"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal