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:
@@ -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;
|
||||
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user