ResourceTreeView: more flexible constructor

Now there's no need anymore to pass a model to constructor of
ResourceTreeView. Instead ResourceTreeView::setModel() can be called
later.
This commit is contained in:
Tobias Doerffel
2009-10-27 00:30:19 +01:00
parent 582ce407de
commit a6d86bbf66
3 changed files with 36 additions and 11 deletions

View File

@@ -34,7 +34,10 @@ class ResourceTreeView : public QTreeView
{
Q_OBJECT
public:
ResourceTreeView( ResourceTreeModel * _tm, QWidget * _parent );
ResourceTreeView( QWidget * _parent, ResourceTreeModel * _tm = NULL );
virtual ~ResourceTreeView();
virtual void setModel( QAbstractItemModel * _model );
public slots:
@@ -51,7 +54,7 @@ protected:
private:
ResourceTreeModel * m_tm;
ResourceTreeModel * m_treeModel;
QString m_lastFilter;

View File

@@ -98,7 +98,7 @@ ResourceBrowser::ResourceBrowser( QWidget * _parent ) :
filterLayout->addWidget( m_filterStatusLabel );
// create an according tree-view for our tree-model
m_treeView = new ResourceTreeView( &m_treeModel, contentParent() );
m_treeView = new ResourceTreeView( contentParent(), &m_treeModel );
// set up context menu handling
m_treeView->setContextMenuPolicy( Qt::CustomContextMenu );

View File

@@ -26,17 +26,39 @@
#include "ResourceTreeModel.h"
ResourceTreeView::ResourceTreeView( ResourceTreeModel * _tm,
QWidget * _parent ) :
ResourceTreeView::ResourceTreeView( QWidget * _parent,
ResourceTreeModel * _tm ) :
QTreeView( _parent ),
m_tm( _tm )
m_treeModel( NULL )
{
setHeaderHidden( true );
setDragEnabled( true );
setModel( m_tm );
connect( m_tm, SIGNAL( itemsChanged() ),
this, SLOT( updateFilter() ) );
setModel( _tm );
}
ResourceTreeView::~ResourceTreeView()
{
}
void ResourceTreeView::setModel( QAbstractItemModel * _model )
{
if( _model )
{
m_treeModel = dynamic_cast<ResourceTreeModel *>( _model );
if( m_treeModel )
{
QTreeView::setModel( m_treeModel );
connect( m_treeModel, SIGNAL( itemsChanged() ),
this, SLOT( updateFilter() ) );
}
}
}
@@ -48,11 +70,11 @@ void ResourceTreeView::setFilter( const QString & _s )
if( _s.isEmpty() )
{
collapseAll();
m_tm->setKeywordFilter( _s );
m_treeModel->setKeywordFilter( _s );
}
else
{
m_tm->setKeywordFilter( _s );
m_treeModel->setKeywordFilter( _s );
expandToDepth( _s.size() );
}
setUpdatesEnabled( true );