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); //qInstallMessageHandler(messageHandler);
#endif #endif
QDate buildDate = QLocale( QLocale::English ).toDate( QString(__DATE__).replace(" ", " 0"), "MMM dd yyyy"); 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); ui->label_version->setText(Version);
} }
@ -941,11 +941,33 @@ void MainWindow::CopySubCard(int slot){
QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("请选择相同的板卡类型!")); QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("请选择相同的板卡类型!"));
return ; 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(); QList<QAbstractButton *> buttonList = btnGroup_slot->buttons();
for (int i = 1; i < buttonList.count(); i++) { for (int i = 1; i < buttonList.count(); i++) {
if(i == value){ if(i == value){