fix copy card bug

This commit is contained in:
zhangsheng 2026-01-14 16:17:56 +08:00
parent 0479251400
commit e6585ea213

View File

@ -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<VibrationData> vib_data_new = std::make_shared<VibrationData>();
std::shared_ptr<VibrationData> vib_data_old = std::dynamic_pointer_cast<VibrationData>(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<TachometerData> speed_data_new = std::make_shared<TachometerData>();
std::shared_ptr<TachometerData> speed_data_old = std::dynamic_pointer_cast<TachometerData>(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<KeyphaseData> keyphase_data_new = std::make_shared<KeyphaseData>();
std::shared_ptr<KeyphaseData> keyphase_data_old = std::dynamic_pointer_cast<KeyphaseData>(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<VibrationData> vib_data = std::dynamic_pointer_cast<VibrationData>(base_ptr_old);
vib_data->slot_ = value;
vib_data->relative_number = value;
ConfigMgr::Instance()->AddCard(vib_data);
QList<QAbstractButton *> buttonList = btnGroup_slot->buttons();
for (int i = 1; i < buttonList.count(); i++) {
if(i == value){