• 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
  • qcachegrind
qcgtoplevel.h
Go to the documentation of this file.
1 /* This file is part of KCachegrind.
2  Copyright (C) 2002, 2003 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  * QCachegrind top level window
21  */
22 
23 #ifndef QCGTOPLEVEL_H
24 #define QCGTOPLEVEL_H
25 
26 #include <qdatetime.h>
27 #include <QLabel>
28 #include <QMainWindow>
29 #include <QStringList>
30 #include <QString>
31 
32 #include "logger.h"
33 #include "traceitemview.h"
34 #include "tracedata.h"
35 #include "toplevelbase.h"
36 
37 class MultiView;
38 class QDockWidget;
39 class QLabel;
40 class QComboBox;
41 class QProgressBar;
42 class QMenu;
43 
44 class TraceData;
45 class MainWidget;
46 class PartSelection;
47 class FunctionSelection;
48 class StackSelection;
49 class TraceFunction;
50 
51 class QCGTopLevel : public QMainWindow, public Logger, public TopLevelBase
52 {
53  Q_OBJECT
54  Q_CLASSINFO("D-Bus Interface", "net.sf.qcachegrind")
55 
56 public:
57  QCGTopLevel();
58  ~QCGTopLevel();
59 
60  TraceData* data() { return _data; }
61  void setData(TraceData*);
62 
63  void createActions();
64  void createDocks();
65  void createMenu();
66  void createToolbar();
67 
68  void closeEvent(QCloseEvent*);
69 
70  ProfileContext::Type groupType() { return _groupType; }
71  EventType* eventType() { return _eventType; }
72  EventType* eventType2() { return _eventType2; }
73  TracePartList activeParts() { return _activeParts; }
74  TracePartList hiddenParts() { return _hiddenParts; }
75 
76  /* convenience functions for often used context menu items */
77  void addEventTypeMenu(QMenu*,bool);
78  void addGoMenu(QMenu*);
79 
80  // Logger overwrites: notifications for file loading
81  virtual void loadStart(const QString& filename);
82  virtual void loadProgress(int progress); // 0 - 100
83  virtual void loadWarning(int line, const QString& msg);
84  virtual void loadError(int line, const QString& msg);
85  virtual void loadFinished(const QString& msg); // msg could be error
86 
87 public slots:
88  void load();
89  void load(QStringList files, bool addToRecentFiles = true);
90  void add();
91  void add(QStringList files);
92 
93  // shows the main window before loading to see loading progress
94  void loadDelayed(QString file, bool addToRecentFiles = true);
95  void loadDelayed(QStringList files, bool addToRecentFiles = true);
96 
97  void exportGraph();
98  void newWindow();
99  void configure(QString page = QString::null);
100  void about();
101 
102  // layouts
103  void layoutDuplicate();
104  void layoutRemove();
105  void layoutNext();
106  void layoutPrevious();
107  void layoutSave();
108  void layoutRestore();
109  void updateLayoutActions();
110 
111  void updateStatusBar();
112  void eventTypeSelected(const QString&);
113  void eventType2Selected(const QString&);
114  void groupTypeSelected(int);
115  void toggleSplitted();
116  void toggleSplitDirection();
117  void togglePartDock();
118  void toggleStackDock();
119  void toggleFunctionDock();
120  void functionVisibilityChanged(bool);
121  void togglePercentage();
122  void setPercentage(bool);
123  void setAbsoluteCost();
124  void setRelativeCost();
125  void toggleHideTemplates();
126  void toggleExpanded();
127  void toggleCycles();
128  void recentFilesMenuAboutToShow();
129  void recentFilesTriggered(QAction*);
130  void sidebarMenuAboutToShow();
131  void forwardAboutToShow();
132  void forwardTriggered(QAction*);
133  void backAboutToShow();
134  void backTriggered(QAction*);
135  void upAboutToShow();
136  void upTriggered(QAction*);
137 
138  bool setEventType(EventType*);
139  bool setEventType2(EventType*);
140  bool setEventType(QString);
141  bool setEventType2(QString);
142  bool setEventType(QAction*);
143  bool setEventType2(QAction*);
144  bool setGroupType(ProfileContext::Type);
145  bool setGroupType(QString);
146  bool setGroup(TraceCostItem*);
147  bool setGroup(QString);
148  bool setFunction(TraceFunction*);
149  bool setFunction(QString);
150  void activePartsChangedSlot(const TracePartList& list);
151  void partsHideSelectedSlot();
152  void partsUnhideAllSlot();
153 
154  /* These go back to mainloop first by using a timer.
155  * So they can be called from event handlers that
156  * are not allowed to delete list entries.
157  */
158  void setEventTypeDelayed(EventType*);
159  void setEventType2Delayed(EventType*);
160  void setGroupTypeDelayed(ProfileContext::Type);
161  void setGroupDelayed(TraceCostItem*);
162  void setTraceItemDelayed(CostItem*);
163  void partsHideSelectedSlotDelayed();
164  void partsUnhideAllSlotDelayed();
165  void goBack();
166  void goForward();
167  void goUp();
168  void setDirectionDelayed(TraceItemView::Direction);
169 
170  /* SingleShot Slots (without parameters) for the delayed versions */
171  void setEventTypeDelayed();
172  void setEventType2Delayed();
173  void setGroupTypeDelayed();
174  void setGroupDelayed();
175  void setTraceItemDelayed();
176  void loadFilesDelayed();
177  void setDirectionDelayed();
178 
179  // configuration has changed
180  void configChanged();
181 
182  //void refresh();
183 
184  // progress in status bar, empty message disables progress display
185  void showStatus(const QString& msg, int progress);
186  void showMessage(const QString&, int msec);
187 
188 private:
189  void resetState();
190  void createLayoutActions();
191  void createMiscActions();
192  void setupMainWidget(MainWidget*);
193  void setupPartSelection(PartSelection*);
194  void restoreCurrentState(const QString& postfix);
195  void saveCurrentState(const QString& postfix);
196  void saveTraceSettings();
197  QString traceKey();
198  void restoreTraceTypes();
199  void restoreTraceSettings();
200 
201  QStatusBar* _statusbar;
202  QLabel* _statusLabel;
203  QString _progressMsg;
204  QTime _progressStart;
205  QProgressBar* _progressBar;
206 
207  MultiView* _multiView;
208  Qt::Orientation _spOrientation;
209  bool _twoMainWidgets;
210  FunctionSelection* _functionSelection;
211  PartSelection* _partSelection;
212  StackSelection* _stackSelection;
213  QDockWidget *_partDock, *_stackDock, *_functionDock;
214  bool _forcePartDock;
215 
216  // menu/toolbar actions
217  QAction *_newAction, *_openAction, *_addAction, *_reloadAction;
218  QAction *_exportAction, *_dumpToggleAction, *_exitAction;
219  QAction *_sidebarMenuAction, *_recentFilesMenuAction;
220  QAction *_cyclesToggleAction, *_percentageToggleAction;
221  QAction *_expandedToggleAction, *_hideTemplatesToggleAction;
222  QAction *_splittedToggleAction, *_splitDirectionToggleAction;
223  QAction *_layoutNext, *_layoutPrev, *_layoutRemove, *_layoutDup;
224  QAction *_layoutRestore, *_layoutSave;
225  QAction *_upAction, *_forwardAction, *_backAction;
226  QAction *_configureAction, *_aboutAction, *_aboutQtAction;
227  QComboBox* _eventTypeBox;
228 
229  TraceFunction* _function;
230  const QObject* _lastSender;
231 
232  // trace data shown in this window
233  TraceData* _data;
234  // subcost types used for visualization
235  EventType* _eventType;
236  EventType* _eventType2;
237  QStringList _eventTypes;
238  // grouping of function list
239  ProfileContext::Type _groupType;
240  // selected group
241  TraceCostItem* _group;
242  // selected parts
243  TracePartList _activeParts;
244  // hidden parts
245  TracePartList _hiddenParts;
246  // layouts
247  int _layoutCurrent, _layoutCount;
248  // remember last file directory for new QFileDialogs
249  QString _lastFile;
250 
251  // for delayed slots
252  EventType* _eventTypeDelayed;
253  EventType* _eventType2Delayed;
254  ProfileContext::Type _groupTypeDelayed;
255  TraceCostItem* _groupDelayed;
256  CostItem* _traceItemDelayed;
257  QStringList _loadFilesDelayed;
258  bool _addToRecentFiles;
259  TraceItemView::Direction _directionDelayed;
260 };
261 
262 #endif // QCGTOPLEVEL_H
Logger
Definition: logger.h:32
QCGTopLevel::updateStatusBar
void updateStatusBar()
Definition: qcgtoplevel.cpp:1622
QProgressBar
QCGTopLevel::QCGTopLevel
QCGTopLevel()
Definition: qcgtoplevel.cpp:61
QCGTopLevel::eventType2
EventType * eventType2()
Definition: qcgtoplevel.h:72
PartSelection
Definition: partselection.h:38
QCGTopLevel::eventType
EventType * eventType()
Definition: qcgtoplevel.h:71
QCGTopLevel::layoutDuplicate
void layoutDuplicate()
Definition: qcgtoplevel.cpp:1505
QCGTopLevel::about
void about()
Definition: qcgtoplevel.cpp:611
QCGTopLevel::~QCGTopLevel
~QCGTopLevel()
Definition: qcgtoplevel.cpp:110
QCGTopLevel::toggleHideTemplates
void toggleHideTemplates()
Definition: qcgtoplevel.cpp:699
QCGTopLevel::loadProgress
virtual void loadProgress(int progress)
Definition: qcgtoplevel.cpp:2022
QCGTopLevel::createToolbar
void createToolbar()
Definition: qcgtoplevel.cpp:587
QCGTopLevel::recentFilesMenuAboutToShow
void recentFilesMenuAboutToShow()
Definition: qcgtoplevel.cpp:232
QCGTopLevel::layoutRemove
void layoutRemove()
Definition: qcgtoplevel.cpp:1518
QCGTopLevel::setEventType2
bool setEventType2(EventType *)
Definition: qcgtoplevel.cpp:936
QDockWidget
QCGTopLevel::togglePartDock
void togglePartDock()
Definition: qcgtoplevel.cpp:645
QCGTopLevel::hiddenParts
TracePartList hiddenParts()
Definition: qcgtoplevel.h:74
QCGTopLevel::setGroupType
bool setGroupType(ProfileContext::Type)
Definition: qcgtoplevel.cpp:985
QCGTopLevel::createDocks
void createDocks()
Definition: qcgtoplevel.cpp:260
QCGTopLevel::groupTypeSelected
void groupTypeSelected(int)
Definition: qcgtoplevel.cpp:954
QCGTopLevel::closeEvent
void closeEvent(QCloseEvent *)
Definition: qcgtoplevel.cpp:1661
TraceFunction
A traced function.
Definition: tracedata.h:1122
TraceCostItem
Definition: tracedata.h:980
QCGTopLevel::configure
void configure(QString page=QString::null)
Definition: qcgtoplevel.cpp:630
QCGTopLevel::toggleStackDock
void toggleStackDock()
Definition: qcgtoplevel.cpp:653
QCGTopLevel::partsUnhideAllSlotDelayed
void partsUnhideAllSlotDelayed()
Definition: qcgtoplevel.cpp:1770
CostItem
Base class for cost items.
Definition: costitem.h:37
QCGTopLevel::activePartsChangedSlot
void activePartsChangedSlot(const TracePartList &list)
Definition: qcgtoplevel.cpp:1721
QCGTopLevel::createActions
void createActions()
Definition: qcgtoplevel.cpp:320
traceitemview.h
QCGTopLevel::eventType2Selected
void eventType2Selected(const QString &)
Definition: qcgtoplevel.cpp:908
QCGTopLevel::layoutSave
void layoutSave()
Definition: qcgtoplevel.cpp:1565
QStatusBar
QCGTopLevel::newWindow
void newWindow()
Definition: qcgtoplevel.cpp:748
QTime
EventType
A cost type, e.g.
Definition: eventtype.h:43
QCGTopLevel::setTraceItemDelayed
void setTraceItemDelayed()
Definition: qcgtoplevel.cpp:1188
QCGTopLevel::partsUnhideAllSlot
void partsUnhideAllSlot()
Definition: qcgtoplevel.cpp:1776
QCGTopLevel::add
void add()
Definition: qcgtoplevel.cpp:804
QCGTopLevel
Definition: qcgtoplevel.h:51
QCGTopLevel::forwardAboutToShow
void forwardAboutToShow()
Definition: qcgtoplevel.cpp:1789
QCGTopLevel::toggleCycles
void toggleCycles()
Definition: qcgtoplevel.cpp:723
QCGTopLevel::activeParts
TracePartList activeParts()
Definition: qcgtoplevel.h:73
QCloseEvent
QCGTopLevel::loadFinished
virtual void loadFinished(const QString &msg)
Definition: qcgtoplevel.cpp:2014
QCGTopLevel::setAbsoluteCost
void setAbsoluteCost()
Definition: qcgtoplevel.cpp:675
tracedata.h
QCGTopLevel::backTriggered
void backTriggered(QAction *)
Definition: qcgtoplevel.cpp:1912
QCGTopLevel::setEventTypeDelayed
void setEventTypeDelayed()
Definition: qcgtoplevel.cpp:1096
toplevelbase.h
QCGTopLevel::setGroup
bool setGroup(TraceCostItem *)
Definition: qcgtoplevel.cpp:1029
QCGTopLevel::load
void load()
Definition: qcgtoplevel.cpp:755
MultiView
Definition: multiview.h:36
QCGTopLevel::toggleSplitted
void toggleSplitted()
Definition: qcgtoplevel.cpp:1684
QCGTopLevel::goUp
void goUp()
Definition: qcgtoplevel.cpp:1407
QCGTopLevel::configChanged
void configChanged()
Definition: qcgtoplevel.cpp:1707
QObject
StackSelection
Definition: stackselection.h:38
QCGTopLevel::exportGraph
void exportGraph()
Definition: qcgtoplevel.cpp:860
QCGTopLevel::goForward
void goForward()
Definition: qcgtoplevel.cpp:1402
TopLevelBase
Definition: toplevelbase.h:34
QCGTopLevel::toggleExpanded
void toggleExpanded()
Definition: qcgtoplevel.cpp:711
QCGTopLevel::addEventTypeMenu
void addEventTypeMenu(QMenu *, bool)
Definition: qcgtoplevel.cpp:1293
QCGTopLevel::upAboutToShow
void upAboutToShow()
Definition: qcgtoplevel.cpp:1863
QCGTopLevel::eventTypeSelected
void eventTypeSelected(const QString &)
Definition: qcgtoplevel.cpp:900
QCGTopLevel::goBack
void goBack()
Definition: qcgtoplevel.cpp:1397
QCGTopLevel::setGroupTypeDelayed
void setGroupTypeDelayed()
Definition: qcgtoplevel.cpp:1112
QCGTopLevel::loadError
virtual void loadError(int line, const QString &msg)
Definition: qcgtoplevel.cpp:2027
QCGTopLevel::functionVisibilityChanged
void functionVisibilityChanged(bool)
Definition: qcgtoplevel.cpp:741
QString
QList< TracePart * >
QCGTopLevel::updateLayoutActions
void updateLayoutActions()
Definition: qcgtoplevel.cpp:1605
FunctionSelection
Definition: functionselection.h:46
QCGTopLevel::loadWarning
virtual void loadWarning(int line, const QString &msg)
Definition: qcgtoplevel.cpp:2033
QCGTopLevel::setFunction
bool setFunction(TraceFunction *)
Definition: qcgtoplevel.cpp:1050
QCGTopLevel::addGoMenu
void addGoMenu(QMenu *)
Definition: qcgtoplevel.cpp:1384
QStringList
QMainWindow
QCGTopLevel::showStatus
void showStatus(const QString &msg, int progress)
Definition: qcgtoplevel.cpp:1958
QMenu
QCGTopLevel::loadDelayed
void loadDelayed(QString file, bool addToRecentFiles=true)
Definition: qcgtoplevel.cpp:835
QCGTopLevel::setEventType2Delayed
void setEventType2Delayed()
Definition: qcgtoplevel.cpp:1101
QCGTopLevel::upTriggered
void upTriggered(QAction *)
Definition: qcgtoplevel.cpp:1929
QCGTopLevel::setEventType
bool setEventType(EventType *)
Definition: qcgtoplevel.cpp:916
QCGTopLevel::setRelativeCost
void setRelativeCost()
Definition: qcgtoplevel.cpp:680
QCGTopLevel::createMenu
void createMenu()
Definition: qcgtoplevel.cpp:536
QCGTopLevel::backAboutToShow
void backAboutToShow()
Definition: qcgtoplevel.cpp:1826
TraceItemView::Direction
Direction
Definition: traceitemview.h:90
logger.h
ProfileContext::Type
Type
Definition: context.h:36
QCGTopLevel::data
TraceData * data()
Definition: qcgtoplevel.h:60
QAction
QCGTopLevel::setPercentage
void setPercentage(bool)
Definition: qcgtoplevel.cpp:685
QCGTopLevel::layoutRestore
void layoutRestore()
Definition: qcgtoplevel.cpp:1586
QCGTopLevel::setDirectionDelayed
void setDirectionDelayed()
Definition: qcgtoplevel.cpp:1140
QCGTopLevel::recentFilesTriggered
void recentFilesTriggered(QAction *)
Definition: qcgtoplevel.cpp:254
QCGTopLevel::toggleFunctionDock
void toggleFunctionDock()
Definition: qcgtoplevel.cpp:661
QCGTopLevel::groupType
ProfileContext::Type groupType()
Definition: qcgtoplevel.h:70
QCGTopLevel::partsHideSelectedSlotDelayed
void partsHideSelectedSlotDelayed()
Definition: qcgtoplevel.cpp:1739
QCGTopLevel::sidebarMenuAboutToShow
void sidebarMenuAboutToShow()
Definition: qcgtoplevel.cpp:209
QCGTopLevel::loadFilesDelayed
void loadFilesDelayed()
Definition: qcgtoplevel.cpp:851
TraceData
This class holds profiling data of multiple tracefiles generated with cachegrind on one command...
Definition: tracedata.h:1363
QCGTopLevel::layoutPrevious
void layoutPrevious()
Definition: qcgtoplevel.cpp:1550
QCGTopLevel::toggleSplitDirection
void toggleSplitDirection()
Definition: qcgtoplevel.cpp:1698
QCGTopLevel::setData
void setData(TraceData *)
A TraceData object cannot be viewed many times in different toplevel windows.
Definition: qcgtoplevel.cpp:1223
QLabel
QCGTopLevel::loadStart
virtual void loadStart(const QString &filename)
Definition: qcgtoplevel.cpp:2008
QCGTopLevel::setGroupDelayed
void setGroupDelayed()
Definition: qcgtoplevel.cpp:1129
QCGTopLevel::forwardTriggered
void forwardTriggered(QAction *)
Definition: qcgtoplevel.cpp:1895
QCGTopLevel::togglePercentage
void togglePercentage()
Definition: qcgtoplevel.cpp:669
QCGTopLevel::partsHideSelectedSlot
void partsHideSelectedSlot()
Definition: qcgtoplevel.cpp:1746
QCGTopLevel::layoutNext
void layoutNext()
Definition: qcgtoplevel.cpp:1535
QCGTopLevel::showMessage
void showMessage(const QString &, int msec)
Definition: qcgtoplevel.cpp:1952
QComboBox
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