From 5df5938ec1b019f582fb5d05f90edea10a8dbfa5 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Tue, 11 Jan 2011 19:58:04 -0500 Subject: [PATCH] fix deleting controls --- src/dynamic/widgets/DynamicControlList.cpp | 3 +++ src/libtomahawk/dynamic/GeneratorInterface.cpp | 6 ++++++ src/libtomahawk/dynamic/GeneratorInterface.h | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/dynamic/widgets/DynamicControlList.cpp b/src/dynamic/widgets/DynamicControlList.cpp index 57f46ad09..097fa43b3 100644 --- a/src/dynamic/widgets/DynamicControlList.cpp +++ b/src/dynamic/widgets/DynamicControlList.cpp @@ -157,8 +157,11 @@ void DynamicControlList::removeControl() DynamicControlWidget* w = qobject_cast( sender() ); m_layout->removeWidget( w ); m_controls.removeAll( w ); + + m_generator->removeControl( w->control() ); delete w; + m_controls.last()->setShowCollapseButton( true ); m_controls.last()->setShowPlusButton( true ); m_controls.last()->setShowMinusButton( false ); diff --git a/src/libtomahawk/dynamic/GeneratorInterface.cpp b/src/libtomahawk/dynamic/GeneratorInterface.cpp index 48e19ae9d..e755d7177 100644 --- a/src/libtomahawk/dynamic/GeneratorInterface.cpp +++ b/src/libtomahawk/dynamic/GeneratorInterface.cpp @@ -60,6 +60,12 @@ Tomahawk::GeneratorInterface::setControls( const QList< Tomahawk::dyncontrol_ptr m_controls = controls; } +void Tomahawk::GeneratorInterface::removeControl(const Tomahawk::dyncontrol_ptr& control) +{ + m_controls.removeAll( control ); +} + + Tomahawk::dyncontrol_ptr Tomahawk::GeneratorInterface::createControl(const QString& type) { diff --git a/src/libtomahawk/dynamic/GeneratorInterface.h b/src/libtomahawk/dynamic/GeneratorInterface.h index 62ac295b1..2f0d69635 100644 --- a/src/libtomahawk/dynamic/GeneratorInterface.h +++ b/src/libtomahawk/dynamic/GeneratorInterface.h @@ -75,7 +75,8 @@ public: void addControl( const dyncontrol_ptr& control ); void clearControls(); void setControls( const QList< dyncontrol_ptr>& controls ); - + void removeControl( const dyncontrol_ptr& control ); + signals: void generated( const QList< Tomahawk::query_ptr>& queries );