mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
use layer items paramWidget() in browser properties
This commit is contained in:
parent
228d816b3b
commit
2ef38ff922
@ -281,19 +281,38 @@ QgsBrowserPropertiesWidget::QgsBrowserPropertiesWidget( QWidget* parent ) :
|
||||
{
|
||||
}
|
||||
|
||||
void QgsBrowserPropertiesWidget::setWidget( QWidget* paramWidget )
|
||||
{
|
||||
QVBoxLayout *layout = new QVBoxLayout( this );
|
||||
paramWidget->setParent( this );
|
||||
layout->addWidget( paramWidget );
|
||||
}
|
||||
|
||||
QgsBrowserPropertiesWidget* QgsBrowserPropertiesWidget::createWidget( QgsDataItem* item, QWidget* parent )
|
||||
{
|
||||
QgsBrowserPropertiesWidget* propertiesWidget = 0;
|
||||
if ( item->type() == QgsDataItem::Layer )
|
||||
{
|
||||
propertiesWidget = new QgsBrowserLayerProperties( parent );
|
||||
propertiesWidget->setItem( item );
|
||||
}
|
||||
else if ( item->type() == QgsDataItem::Directory )
|
||||
// In general, we would like to show all items' paramWidget, but top level items like
|
||||
// WMS etc. have currently too large widgets which do not fit well to browser properties widget
|
||||
if ( item->type() == QgsDataItem::Directory )
|
||||
{
|
||||
propertiesWidget = new QgsBrowserDirectoryProperties( parent );
|
||||
propertiesWidget->setItem( item );
|
||||
}
|
||||
else if ( item->type() == QgsDataItem::Layer )
|
||||
{
|
||||
// prefer item's widget over standard layer widget
|
||||
QWidget *paramWidget = item->paramWidget();
|
||||
if ( paramWidget )
|
||||
{
|
||||
propertiesWidget = new QgsBrowserPropertiesWidget( parent );
|
||||
propertiesWidget->setWidget( paramWidget );
|
||||
}
|
||||
else
|
||||
{
|
||||
propertiesWidget = new QgsBrowserLayerProperties( parent );
|
||||
propertiesWidget->setItem( item );
|
||||
}
|
||||
}
|
||||
return propertiesWidget;
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,9 @@ class QgsBrowserPropertiesWidget : public QWidget
|
||||
public:
|
||||
QgsBrowserPropertiesWidget( QWidget* parent = 0 );
|
||||
static QgsBrowserPropertiesWidget* createWidget( QgsDataItem* item, QWidget* parent = 0 );
|
||||
virtual void setItem( QgsDataItem* item ) = 0;
|
||||
virtual void setItem( QgsDataItem* item ) { Q_UNUSED( item ) }
|
||||
/** Set content widget, usually item paramWidget. Takes ownership. */
|
||||
virtual void setWidget( QWidget* widget );
|
||||
|
||||
/** Sets whether the properties widget should display in condensed mode, ie, for display in a dock
|
||||
* widget rather than it's own separate dialog.
|
||||
|
Loading…
x
Reference in New Issue
Block a user