1
/***************************************************************************
2
* Copyright (C) 2001 by Bernd Gehrmann *
4
* Copyright (C) 2001 by Sandy Meier *
5
* smeier@kdevelop.org *
7
* This program is free software; you can redistribute it and/or modify *
8
* it under the terms of the GNU General Public License as published by *
9
* the Free Software Foundation; either version 2 of the License, or *
10
* (at your option) any later version. *
12
***************************************************************************/
14
#ifndef _APPWIZARDDIALOG_H_
15
#define _APPWIZARDDIALOG_H_
25
class KArchiveDirectory;
30
#include <klineedit.h>
32
#include <qstringlist.h>
33
#include <klistview.h>
34
#include <kiconview.h>
35
#include "kdevversioncontrol.h"
36
#include "kdevvcsintegrator.h"
37
#include "appwizarddlgbase.h"
39
//#include "autoform.h"
40
#include "kdevlicense.h"
42
namespace PropertyLib {
71
struct ApplicationInfo
78
QString defaultDestDir;
79
QString fileTemplates;
80
QStringList openFilesAfterGeneration;
82
QMap<QString,QString> subMap;
83
QMap<QString,QString> subMapXML;
86
//QMap<autoKey,QVariant> subValues;
87
PropertyLib::PropertyList *propValues;
89
QValueList<installFile> fileList;
90
QValueList<installArchive> archList;
91
QValueList<installDir> dirList;
96
QString sourceArchive;
98
//! item pointer to the listview
101
//! pointer to favourite icon (NULL if there isn't one)
102
QIconViewItem *favourite;
105
: item( 0 ), favourite( 0 )
109
struct AppWizardFileTemplate
113
QMultiLineEdit *edit;
115
AppWizardFileTemplate()
121
class AppWizardDialog : public AppWizardDialogBase
126
AppWizardDialog( AppWizardPart *part, QWidget *parent=0, const char *name=0 );
128
QString getProjectName() { return appname_edit->text(); }
129
QString getProjectLocation() { return finalLoc_label->text(); }
132
virtual void accept();
134
virtual QDict<KDevLicense> licenses();
138
virtual void templatesTreeViewClicked(QListViewItem*);
139
virtual void textChanged();
140
virtual void licenseChanged();
141
virtual void destButtonClicked(const QString&);
142
virtual void projectNameChanged();
143
virtual void projectLocationChanged();
144
virtual void favouritesIconViewClicked( QIconViewItem * );
145
virtual void templatesContextMenu(QListViewItem*, const QPoint&, int);
146
virtual void favouritesContextMenu(QIconViewItem* item, const QPoint& point);
147
virtual void addTemplateToFavourites();
148
virtual void done(int r);
149
virtual void removeFavourite();
150
virtual void pageChanged();
154
ApplicationInfo *templateForItem(QListViewItem *item);
155
void insertCategoryIntoTreeView(const QString &completeCategoryPath);
157
void updateNextButtons();
159
void populateFavourites();
160
void addFavourite(QListViewItem* item, QString favouriteName="");
161
ApplicationInfo* findFavouriteInfo(QIconViewItem* item);
163
void unpackArchive( const KArchiveDirectory *dir, const QString &dest, bool process );
164
bool copyFile( const installFile& file );
165
bool copyFile( const QString &source, const QString &dest, bool isXML, bool process );
166
QString kdevRoot(const QString &templateName ) const;
167
void openAfterGeneration();
169
void setPermissions(const KArchiveFile *source, QString dest);
170
void setPermissions(const installFile &file);
172
void checkAndHideItems(QListView *view);
173
bool checkAndHideItems(QListViewItem *item);
177
QPtrList<ApplicationInfo> m_appsInfo;
178
QValueList<AppWizardFileTemplate> m_fileTemplates;
179
//! Store the category name and the pointer in the treeview
180
QDict<QListViewItem> m_categoryMap;
181
QValueList<QListViewItem*> m_categoryItems;
182
//! A list of currently available version control systems
183
// QDict<KDevVersionControl> m_availVcs;
185
QHBoxLayout *m_custom_options_layout;
186
PropertyLib::PropertyEditor *m_customOptions;
187
AppWizardPart *m_part;
189
QPtrList<KTempFile> m_tempFiles;
190
ApplicationInfo* m_pCurrentAppInfo;
191
bool m_projectLocationWasChanged;
194
KPopupMenu* m_favouritesMenu;
195
KPopupMenu* m_templatesMenu;
197
QDict<KDevLicense> m_licenses;
198
QDict<KDevVCSIntegrator> m_integrators;
199
QMap<int, VCSDialog*> m_integratorDialogs;
201
ProfileSupport *m_profileSupport;
204
virtual void showTemplates(bool all);
209
// kate: indent-width 4; replace-tabs off; tab-width 4; space-indent off;