summaryrefslogtreecommitdiffstats
path: root/parts/valgrind/valgrind_part.h
blob: f7e3a4cfabc61c32fe38bc3912cdd6e88bfaa362 (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
63
/*
 *  Copyright (C) 2002 Harald Fernengel <[email protected]>   
 */

#ifndef __KDEVPART_VALGRIND_H__
#define __KDEVPART_VALGRIND_H__

#include <tqguardedptr.h>
#include <tqstring.h>
#include <tqstringlist.h>
#include <kdevplugin.h>

class ValgrindWidget;
class KProcess;

class ValgrindPart : public KDevPlugin
{
  Q_OBJECT
  TQ_OBJECT

public:   
  ValgrindPart( TQObject *tqparent, const char *name, const TQStringList & );
  ~ValgrindPart();
  
  void runValgrind( const TQString& exec, const TQString& parameters, const TQString& valExec, const TQString& valParameters );

  void savePartialProjectSession( TQDomElement* el );
  void restorePartialProjectSession( const TQDomElement* 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 TQString& message );
  void appendMessages( const TQStringList& lines );
  void receivedString( const TQString& str );
  void clear();
  TQString _lastExec, _lastParams, _lastValExec, _lastValParams,
      _lastCtExec, _lastCtParams, _lastKcExec;
  KProcess* proc;
  TQString currentMessage;
  TQString lastPiece;
  TQStringList activeFiles;
  int currentPid;
  TQGuardedPtr<ValgrindWidget> m_widget;
  struct {
      bool runKc;
      TQString kcPath;
//      TQString kcWorkDir;
  } kcInfo;
};


#endif