fix:1.修正同结构导入问题。2.历史界面添加删除。3.导入排序问题。
This commit is contained in:
parent
f2b1525b92
commit
f9796c7090
9
.vscode/settings.json
vendored
9
.vscode/settings.json
vendored
@ -115,6 +115,13 @@
|
||||
"optional": "cpp",
|
||||
"sstream": "cpp",
|
||||
"stop_token": "cpp",
|
||||
"regex": "cpp"
|
||||
"regex": "cpp",
|
||||
"*.tcc": "cpp",
|
||||
"cwctype": "cpp",
|
||||
"deque": "cpp",
|
||||
"memory_resource": "cpp",
|
||||
"random": "cpp",
|
||||
"fstream": "cpp",
|
||||
"cinttypes": "cpp"
|
||||
}
|
||||
}
|
@ -1,8 +1,5 @@
|
||||
#include "MainWidget.h"
|
||||
|
||||
#include "./ui_MainWidget.h"
|
||||
#include "src/data_edit.h"
|
||||
#include "public_def.h"
|
||||
#include <QClipboard>
|
||||
#include <QDateTime>
|
||||
#include <QFile>
|
||||
@ -12,13 +9,17 @@
|
||||
#include <QSettings>
|
||||
#include <filesystem>
|
||||
|
||||
#include "./ui_MainWidget.h"
|
||||
#include "public_def.h"
|
||||
#include "src/data_edit.h"
|
||||
|
||||
constexpr std::size_t g_OnePage = 100;
|
||||
namespace fs = std::filesystem;
|
||||
MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
setWindowTitle(u8"OneLevelXmlOpr v1.3.1");
|
||||
setWindowTitle(u8"OneLevelXmlOpr v1.3.2");
|
||||
setWindowIcon(QIcon("://resource/xml.ico"));
|
||||
|
||||
QScreen* primaryScreen = QGuiApplication::primaryScreen();
|
||||
@ -78,7 +79,13 @@ MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget
|
||||
if (!edit.is_import_sucess_) {
|
||||
return;
|
||||
}
|
||||
xml_.get_all_elements(vec_);
|
||||
|
||||
if (cur_config_.is_same) {
|
||||
xml_.get_all_elements(vec_, ui->cbUnit->currentText().toStdString());
|
||||
} else {
|
||||
xml_.get_all_elements(vec_);
|
||||
}
|
||||
|
||||
current_.clear();
|
||||
current_ = vec_;
|
||||
push_content(current_);
|
||||
@ -161,11 +168,11 @@ void MainWidget::closeEvent(QCloseEvent* event)
|
||||
void MainWidget::keyPressEvent(QKeyEvent* event)
|
||||
{
|
||||
switch (event->key()) {
|
||||
case Qt::Key_Return:
|
||||
search(ui->edSearchKey->text());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case Qt::Key_Return:
|
||||
search(ui->edSearchKey->text());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
QWidget::keyPressEvent(event);
|
||||
}
|
||||
@ -326,15 +333,14 @@ bool MainWidget::read(const QString& file_path)
|
||||
for (const auto& unit : units) {
|
||||
list.append(QString::fromStdString(unit));
|
||||
}
|
||||
u_ = true;
|
||||
u_ = true;
|
||||
ui->cbUnit->clear();
|
||||
if (!list.isEmpty()) {
|
||||
ui->cbUnit->addItems(list);
|
||||
ui->cbUnit->setCurrentIndex(0);
|
||||
}
|
||||
u_ = false;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
ui->cbUnit->setEnabled(false);
|
||||
}
|
||||
|
||||
@ -358,6 +364,7 @@ bool MainWidget::read(const QString& file_path)
|
||||
|
||||
ui->cbConfig->setEnabled(false);
|
||||
ui->btnSet->setEnabled(false);
|
||||
ui->btnHis->setEnabled(false);
|
||||
|
||||
his_->push(ui->edStatus->text().toStdString());
|
||||
|
||||
@ -823,30 +830,30 @@ void MainWidget::get_related_elements(std::vector<OperElement*>& out, ReplaceAre
|
||||
assert(tab_widget_);
|
||||
out.clear();
|
||||
switch (area) {
|
||||
case AREA_ALL_PAGE: {
|
||||
out.resize(current_.size());
|
||||
std::transform(current_.begin(), current_.end(), out.begin(), [](Element_t* ele) { return new OperElement(ele, 0); });
|
||||
break;
|
||||
}
|
||||
case AREA_CUR_PAGE: {
|
||||
int rows = tab_widget_->rowCount();
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
out.emplace_back(new OperElement(get_element_by_row(i), i));
|
||||
case AREA_ALL_PAGE: {
|
||||
out.resize(current_.size());
|
||||
std::transform(current_.begin(), current_.end(), out.begin(), [](Element_t* ele) { return new OperElement(ele, 0); });
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case AREA_ALL: {
|
||||
out.resize(vec_.size());
|
||||
std::transform(vec_.begin(), vec_.end(), out.begin(), [](Element_t* ele) { return new OperElement(ele, 0); });
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
QModelIndexList indexList = tab_widget_->selectionModel()->selectedRows();
|
||||
for (int i = 0; i < indexList.size(); ++i) {
|
||||
out.emplace_back(new OperElement(get_element_by_row(indexList[i].row()), indexList[i].row()));
|
||||
case AREA_CUR_PAGE: {
|
||||
int rows = tab_widget_->rowCount();
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
out.emplace_back(new OperElement(get_element_by_row(i), i));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case AREA_ALL: {
|
||||
out.resize(vec_.size());
|
||||
std::transform(vec_.begin(), vec_.end(), out.begin(), [](Element_t* ele) { return new OperElement(ele, 0); });
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
QModelIndexList indexList = tab_widget_->selectionModel()->selectedRows();
|
||||
for (int i = 0; i < indexList.size(); ++i) {
|
||||
out.emplace_back(new OperElement(get_element_by_row(indexList[i].row()), indexList[i].row()));
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,11 +13,11 @@ public:
|
||||
public:
|
||||
bool push(const std::string& content);
|
||||
bool get_history(std::vector<std::string>& vec);
|
||||
bool read_file(std::vector<std::string>& vec);
|
||||
bool write_file(std::vector<std::string>& vec);
|
||||
|
||||
private:
|
||||
void default_set();
|
||||
bool read_file(std::vector<std::string>& vec);
|
||||
bool write_file(std::vector<std::string>& vec);
|
||||
|
||||
private:
|
||||
std::string work_dir_{};
|
||||
|
@ -10,6 +10,7 @@ CUIHistory::CUIHistory(QWidget* parent, CHistory* his) : QDialog(parent), ui(new
|
||||
|
||||
connect(ui->btnExit, &QPushButton::clicked, this, [&]() { close(); });
|
||||
connect(ui->btnOk, &QPushButton::clicked, this, [&]() { select_ok(); });
|
||||
connect(ui->btnDel, &QPushButton::clicked, this, [&]() { del_item(); });
|
||||
}
|
||||
|
||||
CUIHistory::~CUIHistory()
|
||||
@ -42,3 +43,22 @@ void CUIHistory::select_ok()
|
||||
cur_ = re[0]->text();
|
||||
close();
|
||||
}
|
||||
|
||||
void CUIHistory::del_item()
|
||||
{
|
||||
auto re = ui->listWidget->selectedItems();
|
||||
if (re.empty()) {
|
||||
return ;
|
||||
}
|
||||
for (auto& item : re) {
|
||||
delete ui->listWidget->takeItem(ui->listWidget->row(item));
|
||||
}
|
||||
std::vector<std::string> vec;
|
||||
for (int i = 0; i < ui->listWidget->count(); ++i) {
|
||||
QListWidgetItem* item = ui->listWidget->item(i);
|
||||
if (item) {
|
||||
vec.push_back(item->text().toStdString());
|
||||
}
|
||||
}
|
||||
his_->write_file(vec);
|
||||
}
|
||||
|
@ -19,6 +19,7 @@ public:
|
||||
private:
|
||||
void showEvent(QShowEvent* event);
|
||||
void select_ok();
|
||||
void del_item();
|
||||
|
||||
public:
|
||||
QString cur_{};
|
||||
|
@ -32,6 +32,13 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnDel">
|
||||
<property name="text">
|
||||
<string>删除</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnOk">
|
||||
<property name="sizePolicy">
|
||||
|
@ -244,6 +244,7 @@ bool CXmlOpr::import_newer_data(const std::vector<std::string>& vec, std::size_t
|
||||
++success_count;
|
||||
auto* nitem = copy_element(item);
|
||||
insert_brother_node(last_item, nitem);
|
||||
last_item = nitem;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user