diff --git a/MainWidget.cpp b/MainWidget.cpp index 2f0e972..c1e29e2 100644 --- a/MainWidget.cpp +++ b/MainWidget.cpp @@ -16,7 +16,7 @@ MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget { ui->setupUi(this); - setWindowTitle(u8"OneLevelXmlOpr v1.2.12"); + setWindowTitle(u8"OneLevelXmlOpr v1.2.13"); setWindowIcon(QIcon("://resource/xml.ico")); QScreen* primaryScreen = QGuiApplication::primaryScreen(); @@ -625,20 +625,34 @@ void MainWidget::copy_multi_data() if (tab_widget_ == nullptr) { return; } - QModelIndexList indexList = tab_widget_->selectionModel()->selectedRows(); - if (indexList.size() < 1) { + std::vector vec; + + if (ui->rbAllPage->isChecked()) { + get_related_elements(vec, AREA_ALL_PAGE); + } + else if (ui->rbReplaceSelect->isChecked()) { + get_related_elements(vec, AREA_SELECT); + } + else if (ui->rbRepCurPage->isChecked()) { + get_related_elements(vec, AREA_CUR_PAGE); + } + else { + get_related_elements(vec, AREA_ALL); + } + + if (vec.size() < 1) { CUtil::msg(this, u8"无选择数据"); return; } QString ret; - for (int i = 0; i < indexList.size(); ++i) { - Element_t* e = get_element_by_row(indexList[i].row()); - if (e == nullptr) { + for (auto& item : vec) { + if (item == nullptr) { continue; } tinyxml2::XMLPrinter printer; - e->Accept(&printer); + item->element_->Accept(&printer); ret.append(printer.CStr()); + delete item; } CDataEdit edit;