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.
tdevelop/parts/fileview/fileitemfactory.h

90 lines
3.0 KiB

/***************************************************************************
* Copyright (C) 2003 by Mario Scalas *
* mario.scalas@libero.it *
* *
* 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 FILEITEMFACTORY_H
#define FILEITEMFACTORY_H
#include <kfiletreeview.h>
class FileTreeWidget;
/**
@author KDevelop Authors
*/
namespace filetreeview
{
/**
@author KDevelop Authors
*/
class FileTreeViewItem : public KFileTreeViewItem
{
friend class FileTreeBranchItem;
protected:
FileTreeViewItem( KFileTreeViewItem* parent, KFileItem* item, KFileTreeBranch* branch, bool pf )
: KFileTreeViewItem( parent, item, branch ), m_isProjectFile( pf ), m_isActiveDir( false )
{
hideOrShow();
}
FileTreeViewItem( KFileTreeView* parent, KFileItem* item, KFileTreeBranch* branch )
: KFileTreeViewItem( parent, item, branch ), m_isProjectFile( false )
{
hideOrShow();
}
virtual ~FileTreeViewItem() {}
public:
virtual void paintCell( TQPainter *p, const TQColorGroup &cg, int column, int width, int alignment );
FileTreeWidget* listView() const;
void hideOrShow();
bool isProjectFile() const { return m_isProjectFile; }
bool setProjectFile( TQString const &path, bool pf );
bool isActiveDir() const { return m_isActiveDir; }
bool changeActiveDir( const TQString &, const TQString&, bool foundolddir = false, bool foundnewdir = false );
protected:
virtual int compare( TQListViewItem *i, int col, bool ascending ) const;
private:
bool m_isProjectFile;
bool m_isActiveDir;
};
/**
@author KDevelop Authors
*/
class FileTreeBranchItem : public KFileTreeBranch
{
protected:
FileTreeBranchItem( KFileTreeView* view, const KURL& url, const TQString& name, const TQPixmap& pix )
: KFileTreeBranch( view, url, name, pix, false,
new FileTreeViewItem( view, new KFileItem( url, "inode/directory", S_IFDIR ), this ) )
{
}
virtual ~FileTreeBranchItem()
{
// if (root())
// delete root()->fileItem();
}
};
/**
@author KDevelop Authors
*/
class BranchItemFactory
{
public:
virtual FileTreeBranchItem *makeBranchItem( KFileTreeView* view, const KURL& url, const TQString& name, const TQPixmap& pix ) = 0;
};
}
#endif