From 45cb64b3962ab21e53493974028783232ada7344 Mon Sep 17 00:00:00 2001 From: juliagoda Date: Mon, 16 Mar 2020 16:49:01 +0100 Subject: [PATCH] Only added joining animation of slots - #93 --- src/advancebuttondialog.cpp | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/advancebuttondialog.cpp b/src/advancebuttondialog.cpp index 20a2e11d5..66ca46804 100755 --- a/src/advancebuttondialog.cpp +++ b/src/advancebuttondialog.cpp @@ -528,6 +528,53 @@ void AdvanceButtonDialog::joinSlot() else { qDebug() << "Chosen " << ui->slotListWidget->selectedItems().count() << " slots" << endl; + + + QListWidgetItem* firstSelected = ui->slotListWidget->selectedItems().at(0); + SimpleKeyGrabberButton* firstGrabBtn = firstSelected->data(Qt::UserRole).value(); + + QString text = firstGrabBtn->getValue()->getSlotString(); + int index = ui->slotListWidget->row(firstSelected); + + QListWidgetItem *item = ui->slotListWidget->takeItem(index); + delete item; + + + for(auto item : ui->slotListWidget->selectedItems()) + { + int indexNext = ui->slotListWidget->row(item); + text += "+"; + SimpleKeyGrabberButton* firstGrabBtn = item->data(Qt::UserRole).value(); + + text += firstGrabBtn->getValue()->getSlotString(); + delete ui->slotListWidget->takeItem(indexNext); + } + + SimpleKeyGrabberButton *blankButton = new SimpleKeyGrabberButton(this); + QListWidgetItem *joinedItem = new QListWidgetItem(); + + ui->slotListWidget->insertItem(index, joinedItem); + joinedItem->setData(Qt::UserRole, + QVariant::fromValue(blankButton)); + + QHBoxLayout *layout= new QHBoxLayout(); + layout->addWidget(blankButton); + QWidget *widget = new QWidget(); + widget->setLayout(layout); + joinedItem->setSizeHint(widget->sizeHint()); + ui->slotListWidget->setItemWidget(joinedItem, widget); + ui->slotListWidget->setCurrentItem(joinedItem); + blankButton->setText(text); // temporarily + //connectButtonEvents(blankButton); + //blankButton->refreshButtonLabel(); // instead of blankButton->setText(text); + + //QMetaObject::invokeMethod(&helper, "insertAssignedSlot", Qt::BlockingQueuedConnection, + // Q_ARG(int, 0), Q_ARG(uint, 0), + // Q_ARG(int, current)); + + updateSlotsScrollArea(0); + + // }