KDevelop API Documentation

fileitemfactory.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2003 by Mario Scalas                                    *
00003  *   mario.scalas@libero.it                                                *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  *                                                                         *
00010  ***************************************************************************/
00011 
00012 #include <qpainter.h>
00013 #include <kdebug.h>
00014 
00015 #include "filetreewidget.h"
00016 #include "fileitemfactory.h"
00017 
00018 using namespace filetreeview;
00019 
00021 // class FileTreeViewItem
00023 
00024 FileTreeWidget* FileTreeViewItem::listView() const
00025 {
00026     return static_cast<FileTreeWidget*>( QListViewItem::listView() );
00027 }
00028 
00030 
00031 void FileTreeViewItem::hideOrShow()
00032 {
00033     kdDebug( 9017 ) << "MyFileTreeViewItem::hideOrShow(): " + path() << endl;
00034     setVisible( listView()->shouldBeShown( this ) );
00035 
00036     FileTreeViewItem* item = static_cast<FileTreeViewItem*>( firstChild() );
00037     while (item)
00038     {
00039         //kdDebug( 9017 ) << "MyFileTreeViewItem::hideOrShow(): " + item->path() << endl;
00040         item->hideOrShow();
00041         item = static_cast<FileTreeViewItem*>( item->nextSibling() );
00042     }
00043 }
00044 
00046 
00047 bool FileTreeViewItem::setProjectFile( QString const & path, bool pf )
00048 {
00049     kdDebug( 9017 ) << "FileTreeViewItem::setProjectFile(): " + path << endl;
00050 
00051     if ( this->path() == path )
00052     {
00053         m_isProjectFile = pf;
00054         setVisible( listView()->shouldBeShown( this ) );
00055         repaint();
00056         return true;
00057     }
00058 
00059     FileTreeViewItem* item = static_cast<FileTreeViewItem*>( firstChild() );
00060     while( item )
00061     {
00062         if ( item->setProjectFile( path, pf ) )
00063             return true;
00064         else
00065             item = static_cast<FileTreeViewItem*>(item->nextSibling());
00066     }
00067     return false;
00068 }
00069 
00071 
00072 void FileTreeViewItem::paintCell(QPainter *p, const QColorGroup &cg,
00073     int column, int width, int alignment)
00074 {
00075     if ( listView()->showNonProjectFiles() && isProjectFile() )
00076     {
00077         QFont font( p->font() );
00078         font.setBold( true );
00079         p->setFont( font );
00080     }
00081 
00082     QListViewItem::paintCell( p, cg, column, width, alignment );
00083 }
00084 
00085 
00087 
00088 int FileTreeViewItem::compare( QListViewItem *i, int col, bool ascending ) const
00089 {
00090     KFileTreeViewItem* rhs = dynamic_cast<KFileTreeViewItem*>( i );
00091     if (rhs)
00092     {
00093         if (rhs->isDir() && !isDir())
00094             return (ascending) ? 1 : -1;
00095         else
00096             if (!rhs->isDir() && isDir())
00097                 return (ascending) ? -1 : 1;
00098     }
00099 
00100     return QListViewItem::compare( i, col, ascending );
00101 }
00102 
00104 // class BranchItemFactory
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Feb 22 09:22:41 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003