@@ -104,8 +104,7 @@ QgsBrowserDockWidget::QgsBrowserDockWidget( QWidget * parent ) :
104104 setWidget ( innerWidget );
105105
106106 connect ( mBrowserView , SIGNAL ( customContextMenuRequested ( const QPoint & ) ), this , SLOT ( showContextMenu ( const QPoint & ) ) );
107- // connect( mBrowserView, SIGNAL( clicked( const QModelIndex& ) ), this, SLOT( itemClicked( const QModelIndex& ) ) );
108- connect ( mBrowserView , SIGNAL ( doubleClicked ( const QModelIndex& ) ), this , SLOT ( itemClicked ( const QModelIndex& ) ) );
107+ connect ( mBrowserView , SIGNAL ( doubleClicked ( const QModelIndex& ) ), this , SLOT ( addLayerAtIndex ( const QModelIndex& ) ) );
109108
110109}
111110
@@ -126,19 +125,6 @@ void QgsBrowserDockWidget::showEvent( QShowEvent * e )
126125 QDockWidget::showEvent ( e );
127126}
128127
129-
130- void QgsBrowserDockWidget::itemClicked ( const QModelIndex& index )
131- {
132- QgsDataItem *dataItem = mModel ->dataItem ( index );
133-
134- if ( dataItem != NULL && dataItem->type () == QgsDataItem::Layer )
135- {
136- QgsLayerItem *layerItem = qobject_cast<QgsLayerItem*>( dataItem );
137- if ( layerItem != NULL )
138- addLayer ( layerItem );
139- }
140- }
141-
142128void QgsBrowserDockWidget::showContextMenu ( const QPoint & pt )
143129{
144130 QModelIndex idx = mBrowserView ->indexAt ( pt );
@@ -168,7 +154,7 @@ void QgsBrowserDockWidget::showContextMenu( const QPoint & pt )
168154
169155 else if ( item->type () == QgsDataItem::Layer )
170156 {
171- menu->addAction ( tr ( " Add Layer" ), this , SLOT ( itemClicked ( idx ) ) );
157+ menu->addAction ( tr ( " Add Layer" ), this , SLOT ( addCurrentLayer ( ) ) );
172158 menu->addAction ( tr ( " Add Selected Layers" ), this , SLOT ( addSelectedLayers () ) );
173159 }
174160
@@ -312,6 +298,27 @@ void QgsBrowserDockWidget::addLayer( QgsLayerItem *layerItem )
312298 }
313299}
314300
301+ void QgsBrowserDockWidget::addLayerAtIndex ( const QModelIndex& index )
302+ {
303+ QgsDataItem *dataItem = mModel ->dataItem ( index );
304+
305+ if ( dataItem != NULL && dataItem->type () == QgsDataItem::Layer )
306+ {
307+ QgsLayerItem *layerItem = qobject_cast<QgsLayerItem*>( dataItem );
308+ if ( layerItem != NULL )
309+ {
310+ QApplication::setOverrideCursor ( Qt::WaitCursor );
311+ addLayer ( layerItem );
312+ QApplication::restoreOverrideCursor ();
313+ }
314+ }
315+ }
316+
317+ void QgsBrowserDockWidget::addCurrentLayer ( )
318+ {
319+ addLayerAtIndex ( mBrowserView ->currentIndex () );
320+ }
321+
315322void QgsBrowserDockWidget::addSelectedLayers ()
316323{
317324 QApplication::setOverrideCursor ( Qt::WaitCursor );
0 commit comments