diff --git a/Modules/Visualization/MonteverdiCore/include/mvdStackedLayerModel.h b/Modules/Visualization/MonteverdiCore/include/mvdStackedLayerModel.h index 8291038e1582a193cf7bc3534ec0834c145a1c59..328872bb95d90b7e084f1d86229eb25e2940cce7 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdStackedLayerModel.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdStackedLayerModel.h @@ -212,6 +212,7 @@ public: // Public SLOTS. public slots: void Clear(); + void Deleting( unsigned int index ); inline void Delete( const KeyType & ); inline void DeleteCurrent(); inline void LowerCurrent(); diff --git a/Modules/Visualization/MonteverdiCore/src/mvdStackedLayerModel.cxx b/Modules/Visualization/MonteverdiCore/src/mvdStackedLayerModel.cxx index c4d050b792d0e318ce71a5f884206bcd284c5e1c..14d1d2ec410196685055e564cf775011fd968aa6 100644 --- a/Modules/Visualization/MonteverdiCore/src/mvdStackedLayerModel.cxx +++ b/Modules/Visualization/MonteverdiCore/src/mvdStackedLayerModel.cxx @@ -220,9 +220,9 @@ StackedLayerModel /*****************************************************************************/ void StackedLayerModel -::Delete( SizeType index ) +::Deleting( unsigned int index ) { - // qDebug() << this << "::Delete(" << index << ")"; + // qDebug() << this << "::Delete(" << index << ")"; // @@ -297,7 +297,7 @@ StackedLayerModel index>m_Reference ? m_Reference : ( m_Reference > 0 - ? m_Reference - 1 + ? m_Reference - 1 : GetCount() > 0 ? 0 : StackedLayerModel::NIL_INDEX ), true ); @@ -309,8 +309,14 @@ StackedLayerModel delete layer; layer = NULL; } +} - // +void +StackedLayerModel +::Delete( SizeType index ) +{ + // the work of deleting model is now done in the above function + // Deleting(unsigned int index) // Emit signals. emit LayerDeleted( index ); emit ContentChanged(); diff --git a/Modules/Visualization/MonteverdiGui/include/mvdLayerStackItemModel.h b/Modules/Visualization/MonteverdiGui/include/mvdLayerStackItemModel.h index 44b557b5cd080058c59b5dc707935a6317fca577..16ce4d96b631163afed5a6574b74f168d6808d3a 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdLayerStackItemModel.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdLayerStackItemModel.h @@ -255,6 +255,9 @@ public slots: // // Signals. signals: + + //Bugfix for layer deletion + void LayerDeletingModel( unsigned int index); /*-[ PROTECTED SECTION ]---------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdLayerStackWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdLayerStackWidget.h index 1bf94f8fd34f040bcd0c1bf03fd74d103b81666a..b8b7589f790210e3a9d9256f70a07ea3a0f5dc9d 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdLayerStackWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdLayerStackWidget.h @@ -159,6 +159,10 @@ public slots: // // Signals. signals: + /** + */ + //bugFix for layer deletion + void LayerDeletingWidget( unsigned int index ); /** */ void CurrentChanged( int ); diff --git a/Modules/Visualization/MonteverdiGui/src/mvdLayerStackController.cxx b/Modules/Visualization/MonteverdiGui/src/mvdLayerStackController.cxx index be763b0d3234d8c7ceac7631ce20bf429e8f61bf..d5a2763217737ff12de1bcb0180800368f88c870 100644 --- a/Modules/Visualization/MonteverdiGui/src/mvdLayerStackController.cxx +++ b/Modules/Visualization/MonteverdiGui/src/mvdLayerStackController.cxx @@ -150,6 +150,14 @@ LayerStackController SLOT( OnProjectionButtonClicked() ) ); +//bugfix for layer deletion + QObject::connect( + widget, + SIGNAL( LayerDeletingWidget( unsigned int ) ), + // to: + model, + SLOT( Deleting( unsigned int ) ) + ); QObject::connect( widget, @@ -243,7 +251,7 @@ LayerStackController QObject::disconnect( model, SIGNAL( CurrentChanged( size_t ) ), - // from: + // from:deletin this, SLOT( OnStackedLayerCurrentChanged( size_t ) ) ); @@ -289,6 +297,14 @@ LayerStackController SLOT( OnProjectionButtonClicked() ) ); + //Bugfix for layer deletion + QObject::disconnect( + widget, + SIGNAL( LayerDeletingWidget( unsigned int ) ), + // to: + model, + SLOT( Deleting( unsigned int ) ) + ); QObject::disconnect( widget, diff --git a/Modules/Visualization/MonteverdiGui/src/mvdLayerStackItemModel.cxx b/Modules/Visualization/MonteverdiGui/src/mvdLayerStackItemModel.cxx index cc073ecd5faf604eb108b92a48e7eccfde4e58c6..4e7d0f927818ae54fd0efe504c97560af4be6d2b 100644 --- a/Modules/Visualization/MonteverdiGui/src/mvdLayerStackItemModel.cxx +++ b/Modules/Visualization/MonteverdiGui/src/mvdLayerStackItemModel.cxx @@ -791,10 +791,11 @@ LayerStackItemModel beginRemoveRows( p, row, row + count - 1 ); { - // StackedLayerModel has already been shortened. - + // StackedLayerModel need to be shortened now + emit LayerDeletingModel(row); // TODO: Release additional row data here. } + endRemoveRows(); return true; diff --git a/Modules/Visualization/MonteverdiGui/src/mvdLayerStackWidget.cxx b/Modules/Visualization/MonteverdiGui/src/mvdLayerStackWidget.cxx index 5a245fa83283f46e63f7cceb17de266ccbd285ba..8dbe3ec118c6d04e564da6017f6b4fdc38db9a50 100644 --- a/Modules/Visualization/MonteverdiGui/src/mvdLayerStackWidget.cxx +++ b/Modules/Visualization/MonteverdiGui/src/mvdLayerStackWidget.cxx @@ -192,6 +192,16 @@ LayerStackWidget this, SIGNAL( ResetEffectsButtonClicked() ) ); + + /////// Bugfix for layer deletion + QObject::connect( + this->GetItemModel(), + SIGNAL( LayerDeletingModel( unsigned int ) ), + // to: + this, + SIGNAL( LayerDeletingWidget( unsigned int) ) + ); + /////////////// } /*******************************************************************************/