diff --git a/include/QuickLoadDialog.h b/include/QuickLoadDialog.h index 3395e05c2..e9abb6ee2 100644 --- a/include/QuickLoadDialog.h +++ b/include/QuickLoadDialog.h @@ -27,15 +27,22 @@ #include +#include "ResourceItem.h" namespace Ui { class QuickLoadDialog; } class ResourceListModel; class QuickLoadDialog : public QDialog { + Q_OBJECT public: - QuickLoadDialog( QWidget * _parent ); - ~QuickLoadDialog(); + QuickLoadDialog( QWidget * _parent, ResourceItem::Type _typeFilter = + ResourceItem::TypeUnknown ); + virtual ~QuickLoadDialog(); + + +private slots: + void setTypeFilter( int ); private: diff --git a/src/gui/Forms/QuickLoadDialog.ui b/src/gui/Forms/QuickLoadDialog.ui index c9093c470..befea4591 100644 --- a/src/gui/Forms/QuickLoadDialog.ui +++ b/src/gui/Forms/QuickLoadDialog.ui @@ -40,13 +40,18 @@ - + 0 0 + + + All types + + @@ -79,7 +84,7 @@ filterEdit resourceListView - comboBox + resourceTypeComboBox buttonBox diff --git a/src/gui/QuickLoadDialog.cpp b/src/gui/QuickLoadDialog.cpp index 382c8a7a1..aab67def6 100644 --- a/src/gui/QuickLoadDialog.cpp +++ b/src/gui/QuickLoadDialog.cpp @@ -30,13 +30,30 @@ -QuickLoadDialog::QuickLoadDialog( QWidget * _parent ) : +QuickLoadDialog::QuickLoadDialog( QWidget * _parent, + ResourceItem::Type _typeFilter ) : QDialog( _parent ), ui( new Ui::QuickLoadDialog ), m_listModel( new ResourceListModel( engine::mergedResourceDB(), this ) ) { ui->setupUi( this ); + // setup type combobox + type filtering + for( int i = ResourceItem::TypeUnknown+1; i < ResourceItem::NumTypes; ++i ) + { + ui->resourceTypeComboBox->addItem( + ResourceItem::descriptiveTypeName( + static_cast( i ) ) ); + } + + connect( ui->resourceTypeComboBox, SIGNAL( currentIndexChanged( int ) ), + this, SLOT( setTypeFilter( int ) ) ); + + if( _typeFilter != ResourceItem::TypeUnknown ) + { + ui->resourceTypeComboBox->setCurrentIndex( _typeFilter ); + } + // setup list view to display our model ui->resourceListView->setModel( m_listModel ); ui->resourceListView->selectionModel()->select( @@ -57,3 +74,14 @@ QuickLoadDialog::~QuickLoadDialog() } + + +void QuickLoadDialog::setTypeFilter( int _type ) +{ + m_listModel->setTypeFilter( static_cast( _type ) ); +} + + + +#include "moc_QuickLoadDialog.cxx" +