|
|
|
/***************************************************************************
|
|
|
|
projectprivate.h - description
|
|
|
|
-------------------
|
|
|
|
begin : Thu Mar 16 2000
|
|
|
|
copyright : (C) 2000 by Yacovlev Alexander & Dmitry Poplavsky <pdima@mail.univ.kiev.ua>
|
|
|
|
(C) 2001-2004 by Andras Mantia <amantia@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 PROJECTPRIVATE_H
|
|
|
|
#define PROJECTPRIVATE_H
|
|
|
|
|
|
|
|
//qt includes
|
|
|
|
#include <tqmap.h>
|
|
|
|
#include <tqregexp.h>
|
|
|
|
#include <tqguardedptr.h>
|
|
|
|
|
|
|
|
//app includes
|
|
|
|
#include "project.h"
|
|
|
|
#include "projectlist.h"
|
|
|
|
#include "projectupload.h"
|
|
|
|
|
|
|
|
class TQWidgetStack;
|
|
|
|
|
|
|
|
class KAction;
|
|
|
|
class KActionCollection;
|
|
|
|
class TDEConfig;
|
|
|
|
class KDirWatch;
|
|
|
|
class KRecentFilesAction;
|
|
|
|
class KSelectAction;
|
|
|
|
class KTempFile;
|
|
|
|
|
|
|
|
class CopyTo;
|
|
|
|
class ProjectNewGeneral;
|
|
|
|
class ProjectNewLocal;
|
|
|
|
class ProjectNewWeb;
|
|
|
|
class ProjectNewFinal;
|
|
|
|
class ProjectList;
|
|
|
|
struct EventAction;
|
|
|
|
typedef TQMap<TQString, TQValueList<EventAction> > EventActions;
|
|
|
|
|
|
|
|
class ProjectPrivate
|
|
|
|
: public TQObject
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
ProjectPrivate(Project *p);
|
|
|
|
|
|
|
|
~ProjectPrivate();
|
|
|
|
|
|
|
|
Project *parent;
|
|
|
|
/** Point to the .webprj file */
|
|
|
|
KURL projectURL;
|
|
|
|
TQString projectName;
|
|
|
|
/** Points to the directory of the .webprj file */
|
|
|
|
KURL baseURL;
|
|
|
|
/** Points to the document root inside the project. Item under this folder
|
|
|
|
are treated as the actual documents belonging to the site. They are automatically selected
|
|
|
|
for upload, searching in project default to this directory, etc. Items outside of the
|
|
|
|
document root are treated as external, control files and they are by default not selected for
|
|
|
|
upload.*/
|
|
|
|
|
|
|
|
KURL previewPrefix;
|
|
|
|
bool usePreviewPrefix;
|
|
|
|
bool m_persistentBookmarks;
|
|
|
|
TQString author;
|
|
|
|
KRecentFilesAction *m_projectRecent;
|
|
|
|
|
|
|
|
ProjectNewGeneral *png;
|
|
|
|
ProjectNewLocal *pnl;
|
|
|
|
ProjectNewWeb *pnw;
|
|
|
|
ProjectNewFinal *pnf;
|
|
|
|
|
|
|
|
TQWidgetStack *stack;
|
|
|
|
TQString currentProjectView;
|
|
|
|
|
|
|
|
TDEConfig *config;
|
|
|
|
bool m_modified;
|
|
|
|
bool m_excludeCvsignore;
|
|
|
|
/** Default DTD for this project. */
|
|
|
|
TQString m_defaultDTD;
|
|
|
|
TQString m_defaultEncoding;
|
|
|
|
TQRegExp excludeRx;
|
|
|
|
TQStringList excludeList;
|
|
|
|
KMainWindow *m_mainWindow;
|
|
|
|
TQString m_debuggerClientEdit;
|
|
|
|
TQMap<TQString, TQString> m_passwdList;
|
|
|
|
ProjectList m_projectFiles; ///< the list with the _absolute_ URL's of the project
|
|
|
|
KDirWatch *m_dirWatch; ///< watches some project directories for modification
|
|
|
|
KURL toolbarURL;
|
|
|
|
KURL templateURL;
|
|
|
|
TQString email;
|
|
|
|
TQDomDocument dom;
|
|
|
|
TQDomDocument m_sessionDom;
|
|
|
|
TQString debuggerClient;
|
|
|
|
bool m_debuggerPersistentBreakpoints;
|
|
|
|
bool m_debuggerPersistentWatches;
|
|
|
|
TQGuardedPtr<ProjectUpload> m_uploadDialog;
|
|
|
|
|
|
|
|
TeamMember m_teamLeader;
|
|
|
|
TQMap<TQString, TeamMember> m_subprojectLeaders;
|
|
|
|
TQMap<TQString, TeamMember> m_taskLeaders;
|
|
|
|
TQValueList<TeamMember> m_simpleMembers;
|
|
|
|
TQValueList<SubProject> m_subprojects;
|
|
|
|
TQString m_yourself;
|
|
|
|
TQString m_mailingList;
|
|
|
|
bool m_showUploadTreeviews;
|
|
|
|
bool m_eventsEnabled;
|
|
|
|
|
|
|
|
KAction
|
|
|
|
*closeprjAction, *insertFileAction, *insertDirAction,
|
|
|
|
*uploadProjectAction, *rescanPrjDirAction,
|
|
|
|
*projectOptionAction, *saveAsProjectTemplateAction,
|
|
|
|
*saveSelectionAsProjectTemplateAction,
|
|
|
|
*savePrjViewAction, *saveAsPrjViewAction;
|
|
|
|
|
|
|
|
KSelectAction *openPrjViewAction, *deletePrjViewAction;
|
|
|
|
/** the filename of the local webprj file after download */
|
|
|
|
TQString m_tmpProjectFile;
|
|
|
|
TQString m_tmpSessionFile;
|
|
|
|
/** used for creating a new project */
|
|
|
|
KTempFile *tempFile;
|
|
|
|
KTempFile *sessionTempFile;
|
|
|
|
EventActions *m_events;
|
|
|
|
|
|
|
|
/** setup of the actions */
|
|
|
|
void initActions(KActionCollection *ac);
|
|
|
|
|
|
|
|
void adjustActions();
|
|
|
|
|
|
|
|
void adjustViewActions();
|
|
|
|
|
|
|
|
TQStringList projectViewList();
|
|
|
|
|
|
|
|
void init();
|
|
|
|
|
|
|
|
void openCurrentView();
|
|
|
|
/** insert files */
|
|
|
|
void insertFiles( KURL::List files );
|
|
|
|
|
|
|
|
/** insert files from dir recursive */
|
|
|
|
void insertFiles(const KURL& pathURL, const TQString& mask );
|
|
|
|
|
|
|
|
void loadProjectXML();
|
|
|
|
|
|
|
|
void slotAcceptCreateProject();
|
|
|
|
|
|
|
|
bool createEmptyDom();
|
|
|
|
|
|
|
|
/** load project file
|
|
|
|
@param url the url of the project file
|
|
|
|
*/
|
|
|
|
bool loadProject(const KURL &url);
|
|
|
|
|
|
|
|
/** load project from temp file
|
|
|
|
@param url the url of the project file
|
|
|
|
@param tempFile the path of the already downloaded temp file
|
|
|
|
@param sessionTempFile the path of the downloaded project session file. Empty if no such file was downloaded
|
|
|
|
*/
|
|
|
|
void loadProjectFromTemp(const KURL &url, const TQString &tempFile, const TQString &sessionTempFile);
|
|
|
|
|
|
|
|
|
|
|
|
void getStatusFromTree();
|
|
|
|
|
|
|
|
/** save project file to local file @ref tmpFileName
|
|
|
|
@return false if there was nothing to save or an error occured during save
|
|
|
|
*/
|
|
|
|
bool saveProject();
|
|
|
|
|
|
|
|
/**
|
|
|
|
adds information about the current open project into config
|
|
|
|
*/
|
|
|
|
void writeConfig();
|
|
|
|
|
|
|
|
/**
|
|
|
|
removes the project from the list of open projects in config
|
|
|
|
|
|
|
|
@param the url string of the project to remove
|
|
|
|
*/
|
|
|
|
void removeFromConfig(const TQString & urlStr);
|
|
|
|
|
|
|
|
/**
|
|
|
|
test if a project is in the list of open projects in config
|
|
|
|
|
|
|
|
@param the url string of the project to test
|
|
|
|
*/
|
|
|
|
bool projectAlreadyOpen(const TQString & urlStr);
|
|
|
|
|
|
|
|
/** uploads the project file
|
|
|
|
@return false if there was nothing to upload or an error occured during upload
|
|
|
|
*/
|
|
|
|
bool uploadProjectFile();
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
|
|
void slotDebuggerOptions();
|
|
|
|
|
|
|
|
void slotDebuggerChanged(const TQString &debugger);
|
|
|
|
|
|
|
|
/** create new project */
|
|
|
|
void slotNewProject();
|
|
|
|
|
|
|
|
/** open project file */
|
|
|
|
void slotOpenProject();
|
|
|
|
|
|
|
|
/** iniate closing of the project and the edited files */
|
|
|
|
void slotCloseProject();
|
|
|
|
|
|
|
|
/** Proceed with project closing.*/
|
|
|
|
void slotProceedWithCloseProject(bool success);
|
|
|
|
|
|
|
|
void slotAddDirectory();
|
|
|
|
|
|
|
|
void slotAddFiles();
|
|
|
|
|
|
|
|
/** Deletes a project view */
|
|
|
|
void slotDeleteProjectView(const TQString &view);
|
|
|
|
|
|
|
|
/** Saves a project view (group of files & toolbars) asking for a name. */
|
|
|
|
void slotSaveAsProjectView(bool askForName = true);
|
|
|
|
|
|
|
|
/** Saves a project view (group of files & toolbars) without asking for a name. */
|
|
|
|
void slotSaveProjectView();
|
|
|
|
|
|
|
|
/** Opens a project view (toolbars & files). */
|
|
|
|
void slotOpenProjectView(const TQString &view);
|
|
|
|
|
|
|
|
/** for the new project wizard */
|
|
|
|
void slotSelectProjectType(const TQString &title);
|
|
|
|
|
|
|
|
void slotDeleteCopytoDlg(CopyTo *dlg);
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
void slotNewProjectHelpClicked();
|
|
|
|
|
|
|
|
signals:
|
|
|
|
void setLocalFiles(bool);
|
|
|
|
void eventHappened(const TQString&, const TQString&, const TQString& );
|
|
|
|
|
|
|
|
private:
|
|
|
|
TQStringList treeStatusFromXML();
|
|
|
|
TQString m_wizTitle ;
|
|
|
|
bool m_createSessionDom;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|