You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
5.8 KiB
177 lines
5.8 KiB
/***************************************************************************
|
|
projecttreeview.h - description
|
|
-------------------
|
|
begin : Tue Mar 14 2000
|
|
copyright : (C) 2000 by Yacovlev Alexander & Dmitry Poplavsky <pdima@mail.univ.kiev.ua>
|
|
(C) 2001-2004 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 PROJECTTREEVIEW_H
|
|
#define PROJECTTREEVIEW_H
|
|
|
|
//own includes
|
|
#include "basetreeview.h"
|
|
//#include "projecturl.h"
|
|
|
|
class FileInfoDlg;
|
|
class ProjectList;
|
|
|
|
class ProjectTreeViewItem : public BaseTreeViewItem {
|
|
|
|
public:
|
|
ProjectTreeViewItem( KFileTreeViewItem *parent, KFileItem* item, KFileTreeBranch *brnch );
|
|
/** makes document root italics */
|
|
void paintCell(TQPainter *p, const TQColorGroup &cg, int column, int width, int align);
|
|
};
|
|
|
|
class ProjectTreeBranch : public BaseTreeBranch {
|
|
|
|
public:
|
|
ProjectTreeBranch(KFileTreeView *parent, const KURL& url,
|
|
const TQString& name, const TQPixmap& pix,
|
|
bool showHidden = false, KFileTreeViewItem *branchRoot = 0L);
|
|
|
|
/** check for CVS and visible*/
|
|
virtual KFileTreeViewItem* createTreeViewItem(KFileTreeViewItem *parent,
|
|
KFileItem *fileItem );
|
|
|
|
/** only files in list will be shown */
|
|
ProjectList *urlList;
|
|
};
|
|
|
|
|
|
|
|
class ProjectTreeView : public BaseTreeView {
|
|
Q_OBJECT
|
|
|
|
|
|
public:
|
|
/**
|
|
* since this class is a singleton you must use this function to access it
|
|
*
|
|
* the parameters are only used at the first call to create the class
|
|
*
|
|
*/
|
|
static ProjectTreeView* const ref(TQWidget *parent = 0L, const char *name = 0L)
|
|
{
|
|
static ProjectTreeView *m_ref;
|
|
if (!m_ref) m_ref = new ProjectTreeView(parent, name);
|
|
return m_ref;
|
|
}
|
|
|
|
virtual ~ProjectTreeView();
|
|
bool isDocumentFolder(const KURL &url);
|
|
ProjectTreeBranch* rootBranch() {return m_projectDir;}
|
|
void plugCVSMenu();
|
|
|
|
public slots: // Public slots
|
|
void slotOpen();
|
|
void slotLoadToolbar();
|
|
void slotReloadTree(ProjectList *a_fileList, bool buildNewtree, const TQStringList &folderToOpen);
|
|
/** Sets new project information */
|
|
void slotNewProjectLoaded(const TQString &, const KURL &, const KURL &);
|
|
void slotPopulateFinished(KFileTreeViewItem* );
|
|
/** makes the url visible in the tree */
|
|
void slotViewActivated(const KURL&);
|
|
/** fills the list with the url's of the open folder */
|
|
void slotGetTreeStatus(TQStringList *folderToOpen)
|
|
{
|
|
m_projectDir->addOpenFolder(folderToOpen);
|
|
}
|
|
|
|
|
|
|
|
protected slots:
|
|
void slotMenu(KListView *listView, TQListViewItem *item, const TQPoint &point);
|
|
void slotRenameItem(TQListViewItem* kvtvi, const TQString & newText, int col);
|
|
virtual void slotCreateFolder();
|
|
virtual void slotCreateFile();
|
|
|
|
signals: // Signals
|
|
void removeFromProject( const KURL& );
|
|
/** No descriptions */
|
|
void rescanProjectDir();
|
|
/** No descriptions */
|
|
void showProjectOptions();
|
|
void insertToProject(const KURL&);
|
|
void uploadSingleURL(const KURL&, const TQString&, bool, bool);
|
|
void loadToolbarFile(const KURL&);
|
|
void uploadProject();
|
|
void changeFileDescription(const KURL& url, const TQString& desc);
|
|
void changeUploadStatus(const KURL& url, int status);
|
|
void changeDocumentFolderStatus(const KURL& url, bool status);
|
|
void reloadProject();
|
|
|
|
private:
|
|
/** The constructor is privat because we use singleton patter.
|
|
* If you need the class use ProjectTreeView::ref() for
|
|
* construction and reference
|
|
*/
|
|
ProjectTreeView(TQWidget *parent, const char *name);
|
|
|
|
ProjectTreeBranch *m_projectDir;
|
|
KPopupMenu *m_fileMenu;
|
|
KPopupMenu *m_folderMenu;
|
|
KPopupMenu *m_projectMenu;
|
|
KURL m_documentRootURL;
|
|
ProjectTreeViewItem *m_documentRootItem;
|
|
KURL::List m_documentFolderList;
|
|
KPopupMenu *m_uploadStatusMenu;
|
|
ProjectList *m_projectFiles;
|
|
int m_menuClose; ///< remembers the menu entry
|
|
|
|
int m_openInQuantaId; ///< remembers the menu entry
|
|
int m_setDocumentRootId;
|
|
int m_alwaysUploadId;
|
|
int m_neverUploadId;
|
|
int m_confirmUploadId;
|
|
|
|
protected:
|
|
/**
|
|
creates a branch and adds this branch to the treeview
|
|
@param url the root of the branch
|
|
@return the new branch
|
|
*/
|
|
virtual KFileTreeBranch* newBranch(const KURL& url);
|
|
/**
|
|
called when the description of an item was changed,
|
|
@param item the treeview item
|
|
@param newDesc the new description of item
|
|
*/
|
|
void itemDescChanged(KFileTreeViewItem* item, const TQString& newDesc);
|
|
/**
|
|
adds the Quanta fileinfopage to the properties dialog
|
|
overwritten to enable the file description
|
|
@param propDlg the dialog where to add the page
|
|
@return pointer to to just added page
|
|
*/
|
|
virtual FileInfoDlg* addFileInfoPage(KPropertiesDialog *propDlg);
|
|
|
|
private slots: // Private slots
|
|
/** No descriptions */
|
|
void slotUploadProject();
|
|
/** Bring up the project options dialog */
|
|
void slotOptions();
|
|
/** No descriptions */
|
|
void slotRescan();
|
|
void slotRemoveFromProject(int askForRemove = 1);
|
|
void slotUploadSingleURL();
|
|
void slotQuickUploadURL();
|
|
void slotAlwaysUpload();
|
|
void slotNeverUpload();
|
|
void slotConfirmUpload();
|
|
void slotUploadMenuAboutToShow();
|
|
void slotChangeDocumentFolderStatus();
|
|
};
|
|
|
|
#endif
|