1 /*
2     This file is part of KCachegrind.
3 
4     SPDX-FileCopyrightText: 2003-2016 Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
5 
6     SPDX-License-Identifier: GPL-2.0-only
7 */
8 
9 /*
10  * Items of coverage view.
11  */
12 
13 #ifndef COVERAGEITEM_H
14 #define COVERAGEITEM_H
15 
16 #include <QTreeWidget>
17 #include "tracedata.h"
18 
19 class Coverage;
20 
21 class CallerCoverageItem: public QTreeWidgetItem
22 {
23 public:
24     CallerCoverageItem(QTreeWidget* parent, Coverage* c,
25                        TraceFunction* base,
26                        EventType* ct, ProfileContext::Type gt);
27     CallerCoverageItem(QTreeWidget* parent, int skipped, Coverage* c,
28                        TraceFunction* base,
29                        EventType* ct, ProfileContext::Type gt);
30 
31     bool operator< ( const QTreeWidgetItem & other ) const override;
function()32     TraceFunction* function() { return (_skipped) ? nullptr : _function; }
33     void setCostType(EventType* ct);
34     void setGroupType(ProfileContext::Type);
35     void update();
36 
37 private:
38     float _pSum;
39     SubCost _sum;
40     EventType* _costType;
41     ProfileContext::Type _groupType;
42     SubCost _cc;
43     int _distance, _skipped;
44     TraceFunction *_function, *_base;
45     Coverage* _coverage;
46 };
47 
48 
49 class CalleeCoverageItem: public QTreeWidgetItem
50 {
51 public:
52     CalleeCoverageItem(QTreeWidget* parent, Coverage* c,
53                        TraceFunction* base,
54                        EventType* ct, ProfileContext::Type gt);
55     CalleeCoverageItem(QTreeWidget* parent, int skipped, Coverage* c,
56                        TraceFunction* base,
57                        EventType* ct, ProfileContext::Type gt);
58 
59     bool operator< ( const QTreeWidgetItem & other ) const override;
function()60     TraceFunction* function() { return (_skipped) ? nullptr : _function; }
61     void setCostType(EventType* ct);
62     void setGroupType(ProfileContext::Type);
63     void update();
64 
65 private:
66     float _pSum, _pSelf;
67     SubCost _sum, _self;
68     EventType* _costType;
69     ProfileContext::Type _groupType;
70     SubCost _cc;
71     int _distance, _skipped;
72     TraceFunction *_function, *_base;
73     Coverage* _coverage;
74 };
75 
76 #endif
77