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

kcachegrind

  • sources
  • kde-4.12
  • kdesdk
  • kcachegrind
  • kcachegrind
toplevel.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  * KCachegrind top level window
21  */
22 
23 #ifndef TOPLEVEL_H
24 #define TOPLEVEL_H
25 
26 #include <qdatetime.h>
27 #include <QLabel>
28 #include <QProcess>
29 
30 #include <kxmlguiwindow.h>
31 
32 #include "logger.h"
33 #include "traceitemview.h"
34 #include "tracedata.h"
35 #include "toplevelbase.h"
36 
37 class MultiView;
38 class QLineEdit;
39 class QDockWidget;
40 class QLabel;
41 class QProgressBar;
42 class QMenu;
43 
44 class KUrl;
45 class KSelectAction;
46 class KToggleAction;
47 class KToolBarPopupAction;
48 
49 class TraceData;
50 class KRecentFilesAction;
51 class MainWidget;
52 class PartSelection;
53 class FunctionSelection;
54 class DumpSelection;
55 class StackSelection;
56 class TraceFunction;
57 
58 class TopLevel : public KXmlGuiWindow, public Logger, public TopLevelBase
59 {
60  Q_OBJECT
61  Q_CLASSINFO("D-Bus Interface", "org.kde.kcachegrind")
62 public:
63  TopLevel();
64  ~TopLevel();
65 
66  TraceData* data() { return _data; }
67  void setData(TraceData*);
68 
69  virtual void saveProperties(KConfigGroup &);
70  virtual void readProperties(const KConfigGroup &);
71 
72  void createActions();
73  void createDocks();
74 
75  ProfileContext::Type groupType() { return _groupType; }
76  EventType* eventType() { return _eventType; }
77  EventType* eventType2() { return _eventType2; }
78  TracePartList activeParts() { return _activeParts; }
79  TracePartList hiddenParts() { return _hiddenParts; }
80 
81  // current config
82  bool showPercentage() const { return _showPercentage; }
83  bool showExpanded() const { return _showExpanded; }
84  bool showCycles() const { return _showCycles; }
85 
86  /* convenience functions for often used context menu items */
87  void addEventTypeMenu(QMenu*,bool);
88  void addGoMenu(QMenu*);
89 
90  // Logger overwrites: notifications for file loading
91  virtual void loadStart(const QString& filename);
92  virtual void loadProgress(int progress); // 0 - 100
93  virtual void loadWarning(int line, const QString& msg);
94  virtual void loadError(int line, const QString& msg);
95  virtual void loadFinished(const QString& msg); // msg could be error
96 
97 public slots:
98  void load();
99  void load(const KUrl&);
100  void load(QString);
101  void add();
102  void add(const KUrl&);
103  void add(QString);
104 
105  // for quickly showing the main window...
106  void loadDelayed(QString);
107  void loadDelayed(QStringList);
108 
109  void reload();
110  void exportGraph();
111  void newWindow();
112  void configure();
113  void querySlot();
114  void dummySlot();
115 
116  // layouts
117  void layoutDuplicate();
118  void layoutRemove();
119  void layoutNext();
120  void layoutPrevious();
121  void layoutSave();
122  void layoutRestore();
123  void updateLayoutActions();
124 
125  void updateStatusBar();
126  void eventTypeSelected(const QString&);
127  void eventType2Selected(const QString&);
128  void groupTypeSelected(int);
129  void splitSlot();
130  void splitDirSlot();
131  void configureToolbars();
132  void configureKeys();
133  bool queryExit();
134  bool queryClose();
135  void togglePartDock();
136  void toggleStackDock();
137  void toggleFunctionDock();
138  void toggleDumpDock();
139  void toggleStatusBar();
140  void partVisibilityChanged(bool);
141  void dumpVisibilityChanged(bool);
142  void stackVisibilityChanged(bool);
143  void functionVisibilityChanged(bool);
144  void togglePercentage();
145  void setPercentage(bool);
146  void setAbsoluteCost();
147  void setRelativeCost();
148  void toggleExpanded();
149  void toggleCycles();
150  void toggleHideTemplates();
151  void forceTrace();
152  void forwardAboutToShow();
153  void forwardTriggered(QAction*);
154  void backAboutToShow();
155  void backTriggered(QAction*);
156  void upAboutToShow();
157  void upTriggered(QAction*);
158 
159  bool setEventType(EventType*);
160  bool setEventType2(EventType*);
161  bool setEventType(QString);
162  bool setEventType2(QString);
163  bool setEventType(QAction*);
164  bool setEventType2(QAction*);
165  bool setGroupType(ProfileContext::Type);
166  bool setGroupType(QString);
167  bool setGroup(TraceCostItem*);
168  bool setGroup(QString);
169  bool setFunction(TraceFunction*);
170  bool setFunction(QString);
171  void activePartsChangedSlot(const TracePartList& list);
172  void partsHideSelectedSlot();
173  void partsUnhideAllSlot();
174 
175  /* These go back to mainloop first by using a timer.
176  * So they can be called from event handlers that
177  * are not allowed to delete list entries.
178  */
179  void setEventTypeDelayed(EventType*);
180  void setEventType2Delayed(EventType*);
181  void setGroupTypeDelayed(ProfileContext::Type);
182  void setGroupDelayed(TraceCostItem*);
183  void setTraceItemDelayed(CostItem*);
184  void partsHideSelectedSlotDelayed();
185  void partsUnhideAllSlotDelayed();
186  void goBack();
187  void goForward();
188  void goUp();
189  void setDirectionDelayed(TraceItemView::Direction);
190 
191  /* SingleShot Slots (without parameters) for the delayed versions */
192  void setEventTypeDelayed();
193  void setEventType2Delayed();
194  void setGroupTypeDelayed();
195  void setGroupDelayed();
196  void setTraceItemDelayed();
197  void loadTraceDelayed();
198  void setDirectionDelayed();
199 
200  // configuration has changed
201  void configChanged();
202 
203  //void refresh();
204  void slotShowTipOnStart();
205  void slotShowTip();
206 
207  // progress in status bar, empty message disables progress display
208  void showStatus(const QString& msg, int progress);
209  void showMessage(const QString&, int msec);
210 
211  // for running callgrind_control in the background
212  void ccReadOutput();
213  void ccError(QProcess::ProcessError);
214  void ccExit(int,QProcess::ExitStatus);
215 
216 private:
217  void resetState();
218  void createLayoutActions();
219  void createMiscActions();
220  void setupMainWidget(MainWidget*);
221  void setupPartSelection(PartSelection*);
222  void restoreCurrentState(const QString& postfix);
223  void saveCurrentState(const QString& postfix);
224  void saveTraceSettings();
225  QString traceKey();
226  void restoreTraceTypes();
227  void restoreTraceSettings();
228  void updateViewsOnChange(int);
231  bool openDataFile(const QString& file);
232 
233  KStatusBar* _statusbar;
234  QLabel* _statusLabel;
235  KRecentFilesAction* _openRecent;
236  bool _twoMainWidgets;
237  Qt::Orientation _spOrientation;
238 
239  MultiView* _multiView;
240  FunctionSelection* _functionSelection;
241  DumpSelection* _dumpSelection;
242  PartSelection* _partSelection;
243  StackSelection* _stackSelection;
244  QLineEdit* queryLineEdit;
245 
246  QDockWidget *_partDock, *_stackDock, *_functionDock, *_dumpDock;
247  bool _forcePartDock;
248 
249  KSelectAction *_saCost, *_saCost2, *saGroup;
250  KToggleAction *_partDockShown, *_stackDockShown;
251  KToggleAction *_functionDockShown, *_dumpDockShown;
252  KToggleAction *_taPercentage, *_taExpanded, *_taCycles, *_taHideTemplates;
253  KToggleAction *_taDump, *_taSplit, *_taSplitDir;
254  KToolBarPopupAction *_paForward, *_paBack, *_paUp;
255 
256  TraceFunction* _function;
257  const QObject* _lastSender;
258 
259  // trace data shown in this window
260  TraceData* _data;
261  // subcost types used for visualization
262  EventType* _eventType;
263  EventType* _eventType2;
264  // grouping of function list
265  ProfileContext::Type _groupType;
266  // selected group
267  TraceCostItem* _group;
268  // selected parts
269  TracePartList _activeParts;
270  // hidden parts
271  TracePartList _hiddenParts;
272  // layouts
273  int _layoutCurrent, _layoutCount;
274 
275  // for delayed slots
276  EventType* _eventTypeDelayed;
277  EventType* _eventType2Delayed;
278  ProfileContext::Type _groupTypeDelayed;
279  TraceCostItem* _groupDelayed;
280  CostItem* _traceItemDelayed;
281  QStringList _loadFilesDelayed;
282  TraceItemView::Direction _directionDelayed;
283 
284  // for status progress display
285  QString _progressMsg;
286  QTime _progressStart;
287  QProgressBar* _progressBar;
288 
289  // toplevel configuration options
290  bool _showPercentage, _showExpanded, _showCycles, _hideTemplates;
291 
292  // for running callgrind_control in the background
293  QProcess* _ccProcess;
294  QString _ccOutput;
295 };
296 
297 #endif
Logger
Definition: logger.h:32
TopLevel::configureKeys
void configureKeys()
Definition: toplevel.cpp:897
TopLevel::setDirectionDelayed
void setDirectionDelayed()
Definition: toplevel.cpp:1349
TopLevel::saveProperties
virtual void saveProperties(KConfigGroup &)
Definition: toplevel.cpp:358
TopLevel::~TopLevel
~TopLevel()
Definition: toplevel.cpp:352
TopLevel::exportGraph
void exportGraph()
Definition: toplevel.cpp:1066
TopLevel::eventType2
EventType * eventType2()
Definition: toplevel.h:77
TopLevel::setRelativeCost
void setRelativeCost()
Definition: toplevel.cpp:793
TopLevel::backAboutToShow
void backAboutToShow()
Definition: toplevel.cpp:2151
PartSelection
Definition: partselection.h:38
TopLevel::load
void load()
Definition: toplevel.cpp:921
TopLevel::toggleHideTemplates
void toggleHideTemplates()
Definition: toplevel.cpp:850
TopLevel::goUp
void goUp()
Definition: toplevel.cpp:1627
TopLevel::setEventType2Delayed
void setEventType2Delayed()
Definition: toplevel.cpp:1310
TopLevel::toggleFunctionDock
void toggleFunctionDock()
Definition: toplevel.cpp:775
TopLevel::goForward
void goForward()
Definition: toplevel.cpp:1622
TopLevel::add
void add()
Definition: toplevel.cpp:978
TopLevel::setGroupDelayed
void setGroupDelayed()
Definition: toplevel.cpp:1338
TopLevel::queryClose
bool queryClose()
Definition: toplevel.cpp:1880
TopLevel::forwardTriggered
void forwardTriggered(QAction *)
Definition: toplevel.cpp:2221
TopLevel::slotShowTipOnStart
void slotShowTipOnStart()
Definition: toplevel.cpp:1946
TraceFunction
A traced function.
Definition: tracedata.h:1122
TraceCostItem
Definition: tracedata.h:980
TopLevel::loadError
virtual void loadError(int line, const QString &msg)
Definition: toplevel.cpp:2353
TopLevel::ccReadOutput
void ccReadOutput()
Definition: toplevel.cpp:2064
CostItem
Base class for cost items.
Definition: costitem.h:37
TopLevel::setEventType2
bool setEventType2(EventType *)
Definition: toplevel.cpp:1144
TopLevel::activePartsChangedSlot
void activePartsChangedSlot(const TracePartList &list)
Definition: toplevel.cpp:1958
TopLevel::partVisibilityChanged
void partVisibilityChanged(bool)
Definition: toplevel.cpp:863
traceitemview.h
TopLevel::showMessage
void showMessage(const QString &, int msec)
Definition: toplevel.cpp:2278
TopLevel::querySlot
void querySlot()
Definition: toplevel.cpp:892
TopLevel::toggleStatusBar
void toggleStatusBar()
Definition: toplevel.cpp:741
TopLevel::loadProgress
virtual void loadProgress(int progress)
Definition: toplevel.cpp:2348
TopLevel::dummySlot
void dummySlot()
Definition: toplevel.cpp:1954
TopLevel
Definition: toplevel.h:58
TopLevel::backTriggered
void backTriggered(QAction *)
Definition: toplevel.cpp:2238
EventType
A cost type, e.g.
Definition: eventtype.h:43
TopLevel::stackVisibilityChanged
void stackVisibilityChanged(bool)
Definition: toplevel.cpp:868
TopLevel::functionVisibilityChanged
void functionVisibilityChanged(bool)
Definition: toplevel.cpp:884
DumpSelection
Definition: dumpselection.h:34
TopLevel::data
TraceData * data()
Definition: toplevel.h:66
TopLevel::configure
void configure()
Definition: toplevel.cpp:1868
TopLevel::loadWarning
virtual void loadWarning(int line, const QString &msg)
Definition: toplevel.cpp:2358
TopLevel::newWindow
void newWindow()
Definition: toplevel.cpp:914
TopLevel::upTriggered
void upTriggered(QAction *)
Definition: toplevel.cpp:2255
tracedata.h
toplevelbase.h
TopLevel::setFunction
bool setFunction(TraceFunction *)
Definition: toplevel.cpp:1259
TopLevel::setTraceItemDelayed
void setTraceItemDelayed()
Definition: toplevel.cpp:1397
MultiView
Definition: multiview.h:36
KXmlGuiWindow
TopLevel::togglePartDock
void togglePartDock()
Definition: toplevel.cpp:749
TopLevel::addEventTypeMenu
void addEventTypeMenu(QMenu *, bool)
Definition: toplevel.cpp:1519
StackSelection
Definition: stackselection.h:38
TopLevel::setGroupTypeDelayed
void setGroupTypeDelayed()
Definition: toplevel.cpp:1321
TopLevel::configChanged
void configChanged()
Definition: toplevel.cpp:1934
TopLevelBase
Definition: toplevelbase.h:34
TopLevel::updateLayoutActions
void updateLayoutActions()
Definition: toplevel.cpp:1813
TopLevel::partsUnhideAllSlotDelayed
void partsUnhideAllSlotDelayed()
Definition: toplevel.cpp:2007
TopLevel::eventTypeSelected
void eventTypeSelected(const QString &)
Definition: toplevel.cpp:1106
TopLevel::layoutDuplicate
void layoutDuplicate()
Definition: toplevel.cpp:1714
TopLevel::updateStatusBar
void updateStatusBar()
Definition: toplevel.cpp:1830
TopLevel::addGoMenu
void addGoMenu(QMenu *)
Definition: toplevel.cpp:1610
TopLevel::togglePercentage
void togglePercentage()
Definition: toplevel.cpp:783
FunctionSelection
Definition: functionselection.h:46
TopLevel::toggleCycles
void toggleCycles()
Definition: toplevel.cpp:832
TopLevel::showCycles
bool showCycles() const
Definition: toplevel.h:84
TopLevel::showExpanded
bool showExpanded() const
Definition: toplevel.h:83
TopLevel::toggleDumpDock
void toggleDumpDock()
Definition: toplevel.cpp:765
TopLevel::createDocks
void createDocks()
Definition: toplevel.cpp:265
TopLevel::layoutRemove
void layoutRemove()
Definition: toplevel.cpp:1727
TopLevel::partsHideSelectedSlotDelayed
void partsHideSelectedSlotDelayed()
Definition: toplevel.cpp:1976
TopLevel::setAbsoluteCost
void setAbsoluteCost()
Definition: toplevel.cpp:788
TopLevel::splitSlot
void splitSlot()
Definition: toplevel.cpp:1912
TopLevel::forwardAboutToShow
void forwardAboutToShow()
Definition: toplevel.cpp:2114
TopLevel::layoutNext
void layoutNext()
Definition: toplevel.cpp:1742
TopLevel::partsHideSelectedSlot
void partsHideSelectedSlot()
Definition: toplevel.cpp:1983
TopLevel::showStatus
void showStatus(const QString &msg, int progress)
Definition: toplevel.cpp:2284
TopLevel::goBack
void goBack()
Definition: toplevel.cpp:1617
TopLevel::groupTypeSelected
void groupTypeSelected(int)
Definition: toplevel.cpp:1166
TopLevel::showPercentage
bool showPercentage() const
Definition: toplevel.h:82
TopLevel::ccError
void ccError(QProcess::ProcessError)
Definition: toplevel.cpp:2076
TopLevel::slotShowTip
void slotShowTip()
Definition: toplevel.cpp:1950
TopLevel::queryExit
bool queryExit()
Definition: toplevel.cpp:1887
TopLevel::layoutPrevious
void layoutPrevious()
Definition: toplevel.cpp:1758
TopLevel::createActions
void createActions()
Definition: toplevel.cpp:735
TopLevel::partsUnhideAllSlot
void partsUnhideAllSlot()
Definition: toplevel.cpp:2013
TraceItemView::Direction
Direction
Definition: traceitemview.h:90
logger.h
ProfileContext::Type
Type
Definition: context.h:36
TopLevel::layoutSave
void layoutSave()
Definition: toplevel.cpp:1774
TopLevel::eventType
EventType * eventType()
Definition: toplevel.h:76
TopLevel::eventType2Selected
void eventType2Selected(const QString &)
Definition: toplevel.cpp:1114
TopLevel::loadFinished
virtual void loadFinished(const QString &msg)
Definition: toplevel.cpp:2340
TopLevel::ccExit
void ccExit(int, QProcess::ExitStatus)
Definition: toplevel.cpp:2092
TopLevel::groupType
ProfileContext::Type groupType()
Definition: toplevel.h:75
TopLevel::configureToolbars
void configureToolbars()
Definition: toplevel.cpp:903
TracePartList
QList< TracePart * > TracePartList
Definition: tracedata.h:176
TopLevel::toggleExpanded
void toggleExpanded()
Definition: toplevel.cpp:819
TopLevel::upAboutToShow
void upAboutToShow()
Definition: toplevel.cpp:2188
TopLevel::hiddenParts
TracePartList hiddenParts()
Definition: toplevel.h:79
TopLevel::reload
void reload()
Definition: toplevel.cpp:1054
TopLevel::loadDelayed
void loadDelayed(QString)
Definition: toplevel.cpp:1019
TopLevel::setEventTypeDelayed
void setEventTypeDelayed()
Definition: toplevel.cpp:1305
TopLevel::setEventType
bool setEventType(EventType *)
Definition: toplevel.cpp:1122
TopLevel::loadTraceDelayed
void loadTraceDelayed()
Definition: toplevel.cpp:1031
TopLevel::setPercentage
void setPercentage(bool)
Definition: toplevel.cpp:805
TopLevel::setData
void setData(TraceData *)
A TraceData object cannot be viewed many times in different toplevel windows.
Definition: toplevel.cpp:1435
TraceData
This class holds profiling data of multiple tracefiles generated with cachegrind on one command...
Definition: tracedata.h:1363
TopLevel::layoutRestore
void layoutRestore()
Definition: toplevel.cpp:1795
TopLevel::setGroupType
bool setGroupType(ProfileContext::Type)
Definition: toplevel.cpp:1197
TopLevel::toggleStackDock
void toggleStackDock()
Definition: toplevel.cpp:757
TopLevel::forceTrace
void forceTrace()
Definition: toplevel.cpp:2025
TopLevel::setGroup
bool setGroup(TraceCostItem *)
Definition: toplevel.cpp:1238
TopLevel::splitDirSlot
void splitDirSlot()
Definition: toplevel.cpp:1925
TopLevel::TopLevel
TopLevel()
Definition: toplevel.cpp:82
TopLevel::readProperties
virtual void readProperties(const KConfigGroup &)
Definition: toplevel.cpp:364
TopLevel::dumpVisibilityChanged
void dumpVisibilityChanged(bool)
Definition: toplevel.cpp:876
TopLevel::loadStart
virtual void loadStart(const QString &filename)
Definition: toplevel.cpp:2334
TopLevel::activeParts
TracePartList activeParts()
Definition: toplevel.h:78
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:03:27 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
  • okteta
  • 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