summaryrefslogtreecommitdiffstats
path: root/buildtools/autotools/autosubprojectview.h
blob: 27e0c55b842799943974f12b20f464acaaac484e (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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*
  TDevelop Autotools Support
  Copyright (c) 2002 by Victor Roeder <victor_roeder@gmx.de>
  Copyright (c) 2005 by Matt Rogers <mattr@kde.org>

***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
***************************************************************************
*/

#ifndef AUTOSUBPROJECTVIEW_H
#define AUTOSUBPROJECTVIEW_H

#include <tqwidget.h>
#include "autoprojectviewbase.h"


class TDEAction;
class AutoToolsAction;
class AutoProjectWidget;
class AutoProjectPart;
class TargetItem;
class SubprojectItem;
class TDEListViewItem;
class TDEListView;

namespace AutoProjectPrivate
{
	bool isHeader( const TQString& fileName );
}


//with protected inheritance gcc 3.2.3 complains in autoprojectwidget.cpp, line 116
//that it cannot access the base class TQObject (for the connect() call),
//so in order to be able to compile this file I made the inheritance public again, Alex
class AutoSubprojectView : public AutoProjectViewBase
{
	TQ_OBJECT
  

public:
	AutoSubprojectView( AutoProjectWidget* widget, AutoProjectPart* part, TQWidget *parent, const char *name );
	virtual ~AutoSubprojectView();

public:
	void loadMakefileams ( const TQString& dir );

	void parse( SubprojectItem *item );
	TDEListView* listView() const
	{
		return m_listView;
	}

	TargetItem *findNoinstHeaders( SubprojectItem *item );

signals:
	void selectionChanged( TQListViewItem* );

protected:
	void initActions ();

	void parseKDEDOCS( SubprojectItem *item,
	                   const TQString &lhs, const TQString &rhs );
	void parseKDEICON( SubprojectItem *item,
	                   const TQString &lhs, const TQString &rhs );
	void parsePrimary( SubprojectItem *item,
	                   const TQString &lhs, const TQString &rhs );
	void parsePrefix( SubprojectItem *item,
	                  const TQString &lhs, const TQString &rhs );
	void parseSUBDIRS( SubprojectItem *item,
	                   const TQString &lhs, const TQString &rhs );
	virtual void focusOutEvent( TQFocusEvent *e );
	void expandCollapse( TQListViewItem * item, bool expand );
	void expandCollapseFirst( TQListViewItem * item, bool expand );

private:
	AutoProjectWidget* m_widget;
	AutoProjectPart* m_part;
	TQStringList headers;

	bool m_kdeMode;

	AutoToolsAction* addApplicationAction;
	AutoToolsAction* subProjectOptionsAction;
	AutoToolsAction* addSubprojectAction;
	TDEAction* addExistingSubprojectAction;
	AutoToolsAction* addTargetAction;
	AutoToolsAction* addServiceAction;
	AutoToolsAction* buildSubprojectAction;
	TDEAction* removeSubprojectAction;
	TDEAction* cleanSubprojectAction;
	TDEAction* forceReeditSubprojectAction;
	TDEAction* installSubprojectAction;
	TDEAction* installSuSubprojectAction;
	TDEAction* otherAction;
	TDEAction* expandAction;
	TDEAction* collapseAction;

	TQStringList m_commandList;
	TQValueList<int> m_commandTypeList;

private slots:
	void slotContextMenu( TDEListView *, TQListViewItem *item, const TQPoint &p );
	//void slotSubprojectExecuted(TQListViewItem* item);
	void slotSelectionChanged( TQListViewItem* item );
	void slotAddApplication();
	void slotSubprojectOptions();
	void slotAddSubproject();
	void slotAddExistingSubproject();
	void slotAddTarget();
	void slotAddService();
	void slotBuildSubproject();
	void slotRemoveSubproject();
	void slotForceReeditSubproject();
	void slotInstallSubproject();
	void slotInstallSuSubproject();
	void slotCleanSubproject();
	void slotManageBuildCommands();
	void slotCustomBuildCommand( int );
	void slotExpandTree();
	void slotCollapseTree();
};

#endif