summaryrefslogtreecommitdiffstats
path: root/parts/valgrind/valgrind_part.h
blob: 097eb8f8c0a52339cd627afe636415c3693475a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
 *  Copyright (C) 2002 Harald Fernengel <harry@kdevelop.org>   
 */

#ifndef __KDEVPART_VALGRIND_H__
#define __KDEVPART_VALGRIND_H__

#include <qguardedptr.h>
#include <qstring.h>
#include <qstringlist.h>
#include <kdevplugin.h>

class ValgrindWidget;
class KProcess;

class ValgrindPart : public KDevPlugin
{
  Q_OBJECT

public:   
  ValgrindPart( QObject *parent, const char *name, const QStringList & );
  ~ValgrindPart();
  
  void runValgrind( const QString& exec, const QString& parameters, const QString& valExec, const QString& valParameters );

  void savePartialProjectSession( QDomElement* el );
  void restorePartialProjectSession( const QDomElement* el );

private slots:
  void slotExecValgrind();
  void slotExecCalltree();
  void slotKillValgrind();
  void slotStopButtonClicked( KDevPlugin* which );
  void receivedStdout( KProcess*, char*, int );
  void receivedStderr( KProcess*, char*, int );
  void processExited( KProcess* );
  void loadOutput();
  void projectOpened();
  
private:
  void getActiveFiles();
  void appendMessage( const QString& message );
  void appendMessages( const QStringList& lines );
  void receivedString( const QString& str );
  void clear();
  QString _lastExec, _lastParams, _lastValExec, _lastValParams,
      _lastCtExec, _lastCtParams, _lastKcExec;
  KProcess* proc;
  QString currentMessage;
  QString lastPiece;
  QStringList activeFiles;
  int currentPid;
  QGuardedPtr<ValgrindWidget> m_widget;
  struct {
      bool runKc;
      QString kcPath;
//      QString kcWorkDir;
  } kcInfo;
};


#endif