diff options
Diffstat (limited to 'quanta/project/projectprivate.h')
| -rw-r--r-- | quanta/project/projectprivate.h | 255 | 
1 files changed, 255 insertions, 0 deletions
| diff --git a/quanta/project/projectprivate.h b/quanta/project/projectprivate.h new file mode 100644 index 00000000..3ab1a20a --- /dev/null +++ b/quanta/project/projectprivate.h @@ -0,0 +1,255 @@ +/*************************************************************************** +                          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 <qmap.h> +#include <qregexp.h> +#include <qguardedptr.h> + +//app includes +#include "project.h" +#include "projectlist.h" +#include "projectupload.h" + +class QWidgetStack; + +class KAction; +class KActionCollection; +class KConfig; +class KDirWatch; +class KRecentFilesAction; +class KSelectAction; +class KTempFile; + +class CopyTo; +class ProjectNewGeneral; +class ProjectNewLocal; +class ProjectNewWeb; +class ProjectNewFinal; +class ProjectList; +struct EventAction; +typedef QMap<QString, QValueList<EventAction> > EventActions; + +class ProjectPrivate +            : public QObject +{ +   Q_OBJECT +public: +  ProjectPrivate(Project *p); + +  ~ProjectPrivate(); + +  Project *parent; +  /** Point to the .webprj file */ +  KURL projectURL; +  QString 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; +  QString author; +  KRecentFilesAction *m_projectRecent; + +  ProjectNewGeneral    *png; +  ProjectNewLocal      *pnl; +  ProjectNewWeb       *pnw; +  ProjectNewFinal     *pnf; + +  QWidgetStack *stack; +  QString currentProjectView; + +  KConfig *config; +  bool m_modified; +  bool m_excludeCvsignore; +  /** Default DTD for this project. */ +  QString m_defaultDTD; +  QString m_defaultEncoding; +  QRegExp excludeRx; +  QStringList excludeList; +  KMainWindow *m_mainWindow; +  QString m_debuggerClientEdit; +  QMap<QString, QString> 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; +  QString email; +  QDomDocument dom; +  QDomDocument m_sessionDom; +  QString debuggerClient; +  bool m_debuggerPersistentBreakpoints; +  bool m_debuggerPersistentWatches; +  QGuardedPtr<ProjectUpload> m_uploadDialog; + +  TeamMember m_teamLeader; +  QMap<QString, TeamMember> m_subprojectLeaders; +  QMap<QString, TeamMember> m_taskLeaders; +  QValueList<TeamMember> m_simpleMembers; +  QValueList<SubProject> m_subprojects; +  QString m_yourself; +  QString 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 */ +  QString m_tmpProjectFile; +  QString 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(); + +  QStringList projectViewList(); + +  void init(); + +  void openCurrentView(); + /** insert files */ +  void insertFiles( KURL::List files ); + +  /** insert files from dir recursive */ +  void insertFiles(const KURL& pathURL, const QString& 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 QString &tempFile, const QString &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 QString & 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 QString & 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 QString &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 QString &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 QString &view); + +  /** for the new project wizard */ +  void slotSelectProjectType(const QString &title); + +  void slotDeleteCopytoDlg(CopyTo *dlg); +   +private slots: +  void slotNewProjectHelpClicked(); + +signals: +  void setLocalFiles(bool); +  void eventHappened(const QString&, const QString&, const QString& ); + +private: +  QStringList treeStatusFromXML(); +  QString m_wizTitle ; +  bool m_createSessionDom; +}; + + +#endif | 
