fix:修正替换后的界面显示和替换选项优化。
This commit is contained in:
parent
df1dd36d3b
commit
43c2d8680d
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -99,6 +99,7 @@
|
|||||||
"qtablewidget": "cpp",
|
"qtablewidget": "cpp",
|
||||||
"qmenu": "cpp",
|
"qmenu": "cpp",
|
||||||
"qmessagebox": "cpp",
|
"qmessagebox": "cpp",
|
||||||
"qaction": "cpp"
|
"qaction": "cpp",
|
||||||
|
"codecvt": "cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -34,7 +34,7 @@ MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget
|
|||||||
ui->btnImport->setEnabled(false);
|
ui->btnImport->setEnabled(false);
|
||||||
ui->btnExport->setEnabled(false);
|
ui->btnExport->setEnabled(false);
|
||||||
ui->btnBackup->setEnabled(false);
|
ui->btnBackup->setEnabled(false);
|
||||||
ui->cbRepOnlySelect->setChecked(true);
|
ui->rbReplaceSelect->setChecked(true);
|
||||||
ui->btnRead->setFixedWidth(100);
|
ui->btnRead->setFixedWidth(100);
|
||||||
ui->btnSave->setFixedWidth(100);
|
ui->btnSave->setFixedWidth(100);
|
||||||
ui->btnExit->setFixedWidth(100);
|
ui->btnExit->setFixedWidth(100);
|
||||||
@ -642,7 +642,7 @@ void MainWidget::replace_content()
|
|||||||
CUtil::msg(this, u8"替换前数据为空。");
|
CUtil::msg(this, u8"替换前数据为空。");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ui->cbRepOnlySelect->isChecked()) {
|
if (ui->rbReplaceSelect->isChecked()) {
|
||||||
QModelIndexList indexList = tab_widget_->selectionModel()->selectedRows();
|
QModelIndexList indexList = tab_widget_->selectionModel()->selectedRows();
|
||||||
if (indexList.size() < 1) {
|
if (indexList.size() < 1) {
|
||||||
CUtil::msg(this, u8"无选择数据");
|
CUtil::msg(this, u8"无选择数据");
|
||||||
@ -654,15 +654,18 @@ void MainWidget::replace_content()
|
|||||||
if (e == nullptr) {
|
if (e == nullptr) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
auto* element = e->FirstAttribute();
|
replace_str(key, after, e);
|
||||||
while (element) {
|
ele_update_gui(e, indexList[i].row());
|
||||||
QString content(element->Value());
|
}
|
||||||
if (content.contains(key)) {
|
} else if (ui->rbRepCurPage->isChecked()) {
|
||||||
content.replace(key, after);
|
int row_count = tab_widget_->rowCount();
|
||||||
e->SetAttribute(element->Name(), content.toStdString().c_str());
|
for (int i = 0; i < row_count; ++i) {
|
||||||
}
|
Element_t* e = get_element_by_row(i);
|
||||||
element = element->Next();
|
if (e == nullptr) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
replace_str(key, after, e);
|
||||||
|
ele_update_gui(e, i);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!CUtil::affirm(this, u8"确认", u8"确认进行全局替换吗?")) {
|
if (!CUtil::affirm(this, u8"确认", u8"确认进行全局替换吗?")) {
|
||||||
@ -678,12 +681,28 @@ void MainWidget::replace_content()
|
|||||||
element = element->Next();
|
element = element->Next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
xml_.get_all_elements(vec_);
|
xml_.get_all_elements(vec_);
|
||||||
current_.clear();
|
current_.clear();
|
||||||
current_ = vec_;
|
current_ = vec_;
|
||||||
push_content(current_);
|
search();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWidget::replace_str(const QString& pre, const QString& after, Element_t* ele)
|
||||||
|
{
|
||||||
|
if (ele == nullptr) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
auto* element = ele->FirstAttribute();
|
||||||
|
while (element) {
|
||||||
|
QString content(element->Value());
|
||||||
|
if (content.contains(pre)) {
|
||||||
|
content.replace(pre, after);
|
||||||
|
ele->SetAttribute(element->Name(), content.toStdString().c_str());
|
||||||
|
}
|
||||||
|
element = element->Next();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWidget::backup_file()
|
void MainWidget::backup_file()
|
||||||
@ -695,8 +714,7 @@ void MainWidget::backup_file()
|
|||||||
QString time = QDateTime::currentDateTime().toString("yyyy-MMdd-hhmmss");
|
QString time = QDateTime::currentDateTime().toString("yyyy-MMdd-hhmmss");
|
||||||
if (!xml_.backup_file(fs::path(exe_path_).parent_path().append("backup").string(), time.toStdString())) {
|
if (!xml_.backup_file(fs::path(exe_path_).parent_path().append("backup").string(), time.toStdString())) {
|
||||||
CUtil::msg(this, u8"备份失败。");
|
CUtil::msg(this, u8"备份失败。");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
CUtil::msg(this, u8"备份完成。");
|
CUtil::msg(this, u8"备份完成。");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ private:
|
|||||||
protected:
|
protected:
|
||||||
void closeEvent(QCloseEvent* event);
|
void closeEvent(QCloseEvent* event);
|
||||||
void keyPressEvent(QKeyEvent* event);
|
void keyPressEvent(QKeyEvent* event);
|
||||||
|
void replace_str(const QString& pre, const QString& after, Element_t* ele);
|
||||||
private:
|
private:
|
||||||
Element_t* get_element_by_key(const QString& key);
|
Element_t* get_element_by_key(const QString& key);
|
||||||
Element_t* get_element_by_row(int row);
|
Element_t* get_element_by_row(int row);
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1211</width>
|
<width>1220</width>
|
||||||
<height>805</height>
|
<height>805</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -82,9 +82,23 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="cbRepOnlySelect">
|
<widget class="QRadioButton" name="rbReplaceSelect">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>仅替换所选</string>
|
<string>所选</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="rbRepCurPage">
|
||||||
|
<property name="text">
|
||||||
|
<string>当前页</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="rbRepAll">
|
||||||
|
<property name="text">
|
||||||
|
<string>全局</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -269,7 +283,6 @@
|
|||||||
<tabstop>btnExport</tabstop>
|
<tabstop>btnExport</tabstop>
|
||||||
<tabstop>btnImport</tabstop>
|
<tabstop>btnImport</tabstop>
|
||||||
<tabstop>btnBackup</tabstop>
|
<tabstop>btnBackup</tabstop>
|
||||||
<tabstop>cbRepOnlySelect</tabstop>
|
|
||||||
<tabstop>edRepPre</tabstop>
|
<tabstop>edRepPre</tabstop>
|
||||||
<tabstop>edRepAfter</tabstop>
|
<tabstop>edRepAfter</tabstop>
|
||||||
<tabstop>btnReplace</tabstop>
|
<tabstop>btnReplace</tabstop>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user