From: Jean-Baptiste Kempf Date: Sun, 19 Jul 2009 22:55:53 +0000 (+0200) Subject: Qt: customize dialogs, fix a misswrite with the last item of a toolbar. X-Git-Tag: 1.1.0-ff~4889 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=52b528be1b922dfb74add64729e1596e3c4aec8f;p=vlc Qt: customize dialogs, fix a misswrite with the last item of a toolbar. --- diff --git a/modules/gui/qt4/dialogs/toolbar.cpp b/modules/gui/qt4/dialogs/toolbar.cpp index 83d984dace..b0f7cdda45 100644 --- a/modules/gui/qt4/dialogs/toolbar.cpp +++ b/modules/gui/qt4/dialogs/toolbar.cpp @@ -498,6 +498,10 @@ void DroppingController::createAndAddWidget( QBoxLayout *controlLayout, buttonType_e i_type, int i_option ) { + doubleInt *value = new doubleInt; + value->i_type = i_type; + value->i_option = i_option; + /* Special case for SPACERS, who aren't QWidgets */ if( i_type == WIDGET_SPACER || i_type == WIDGET_SPACER_EXTEND ) { @@ -567,10 +571,6 @@ void DroppingController::createAndAddWidget( QBoxLayout *controlLayout, /* QList and QBoxLayout don't act the same with insert() */ if( i_index < 0 ) i_index = controlLayout->count() - 1; - /* Insert in the value listing */ - doubleInt *value = new doubleInt; - value->i_type = i_type; - value->i_option = i_option; widgetList.insert( i_index, value ); } @@ -739,12 +739,14 @@ bool DroppingController::eventFilter( QObject *obj, QEvent *event ) QDrag *drag = new QDrag( widg ); drag->setMimeData( mimeData ); + /* Remove before the drag to not mess DropEvent, + that will createAndAddWidget */ + widgetList.removeAt( i ); + /* Start the effective drag */ drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::MoveAction); - - widgetList.removeAt( i ); - controlLayout->removeWidget( widg ); widg->hide(); + controlLayout->removeWidget( widg ); b_draging = false; } return true;