From e6585ea213564fd2866ad25b70c7a3df6de81410 Mon Sep 17 00:00:00 2001 From: zhangsheng Date: Wed, 14 Jan 2026 16:17:56 +0800 Subject: [PATCH] fix copy card bug --- mainwindow.cpp | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 3f65f46..957023f 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -116,7 +116,7 @@ MainWindow::MainWindow(QWidget *parent) //qInstallMessageHandler(messageHandler); #endif QDate buildDate = QLocale( QLocale::English ).toDate( QString(__DATE__).replace(" ", " 0"), "MMM dd yyyy"); - QString Version = "V1.0_" + buildDate.toString("yyyyMMdd") + "_a4a8"; + QString Version = "V1.0_" + buildDate.toString("yyyyMMdd") + "_0479"; ui->label_version->setText(Version); } @@ -941,11 +941,33 @@ void MainWindow::CopySubCard(int slot){ QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("请选择相同的板卡类型!")); return ; } + ConfigMgr::Instance()->RemoveCard(base_ptr_new); + } + if(base_ptr_old->card_type_ == kCardVibSingle){ + std::shared_ptr vib_data_new = std::make_shared(); + std::shared_ptr vib_data_old = std::dynamic_pointer_cast(base_ptr_old); + *vib_data_new = *vib_data_old; + vib_data_new->slot_ = value; + vib_data_new->relative_number = value; + ConfigMgr::Instance()->AddCard(vib_data_new); + ConfigMgr::Instance()->card_type_[value - 1] = kCardVibSingle; + }else if(base_ptr_old->card_type_ == kCardSpeedSingle){ + std::shared_ptr speed_data_new = std::make_shared(); + std::shared_ptr speed_data_old = std::dynamic_pointer_cast(base_ptr_old); + *speed_data_new = *speed_data_old; + speed_data_new->slot_ = value; + speed_data_new->relative_number = value; + ConfigMgr::Instance()->AddCard(speed_data_new); + ConfigMgr::Instance()->card_type_[value - 1] = kCardSpeedSingle; + }else if(base_ptr_old->card_type_ == kCardKeyphaseSingle){ + std::shared_ptr keyphase_data_new = std::make_shared(); + std::shared_ptr keyphase_data_old = std::dynamic_pointer_cast(base_ptr_old); + *keyphase_data_new = *keyphase_data_old; + keyphase_data_new->slot_ = value; + keyphase_data_new->relative_number = value; + ConfigMgr::Instance()->AddCard(keyphase_data_new); + ConfigMgr::Instance()->card_type_[value - 1] = kCardKeyphaseSingle; } - std::shared_ptr vib_data = std::dynamic_pointer_cast(base_ptr_old); - vib_data->slot_ = value; - vib_data->relative_number = value; - ConfigMgr::Instance()->AddCard(vib_data); QList buttonList = btnGroup_slot->buttons(); for (int i = 1; i < buttonList.count(); i++) { if(i == value){