File indexing completed on 2024-04-28 05:41:32

0001 /*
0002     This file is part of KCachegrind.
0003 
0004     SPDX-FileCopyrightText: 2003-2016 Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
0005 
0006     SPDX-License-Identifier: GPL-2.0-only
0007 */
0008 
0009 #ifndef COSTLISTITEM_H
0010 #define COSTLISTITEM_H
0011 
0012 #include <QTreeWidget>
0013 
0014 #include "tracedata.h"
0015 
0016 class CostListItem: public QTreeWidgetItem
0017 {
0018 public:
0019     CostListItem(QTreeWidget* parent, TraceCostItem* cost,
0020                  EventType* et, int size = -1);
0021     // entry with multiple skipped items
0022     CostListItem(QTreeWidget* parent, int skipped, TraceCostItem* cost,
0023                  EventType* et);
0024 
0025     bool operator< ( const QTreeWidgetItem & other ) const override;
0026     TraceCostItem* costItem() { return (_skipped) ? nullptr : _costItem; }
0027     void setEventType(EventType* et);
0028     void update();
0029     void setSize(int s);
0030 
0031 private:
0032     void updateName();
0033 
0034     SubCost _pure;
0035     EventType* _eventType;
0036     TraceCostItem* _costItem;
0037     // >0 only for last item in list, if items are skipped
0038     int _skipped;
0039     // number of items in group, is put in parenthesis after name
0040     int _groupSize;
0041 };
0042 
0043 #endif