From c3dfcfc1b942d985581247841c8a4c03dc2abe9f Mon Sep 17 00:00:00 2001 From: taynpg Date: Fri, 14 Nov 2025 11:14:52 +0800 Subject: [PATCH] =?UTF-8?q?config=EF=BC=9A=E5=9F=BA=E6=9C=AC=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=9B=B4=E6=96=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 4 +-- CMakeLists.txt | 5 +++- MainWidget.cpp | 62 +++++++++++++++++++++--------------------- conf_setting.cpp | 20 +++++++------- form/qformatset.cpp | 2 +- main.cpp | 10 +++---- public_def.cpp | 2 +- src/attribute_edit.cpp | 4 +-- src/data_edit.cpp | 18 ++++++------ 9 files changed, 64 insertions(+), 63 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index e755549..e0fce14 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,8 @@ { "files.autoSave": "onFocusChange", "editor.fontSize": 14, - // "editor.fontFamily": "'Source Code Pro', 'Source Code Pro', 'Source Code Pro'", - "terminal.integrated.fontFamily": "Source Code Pro", + "editor.fontFamily": "'Maple Mono NL NF CN Light', 'Maple Mono NL NF CN Light', 'Maple Mono NL NF CN Light'", + "terminal.integrated.fontFamily": "Maple Mono NL NF CN Light", "cmake.configureOnOpen": true, "cmake.debugConfig": { "console": "integratedTerminal", diff --git a/CMakeLists.txt b/CMakeLists.txt index 347bdce..52770bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.16) -project(OneLevelXmlOpr VERSION 1.3.11 LANGUAGES CXX) +project(OneLevelXmlOpr VERSION 1.3.12 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -35,6 +35,9 @@ include_directories(3rd) include_directories(src) include_directories(form) +set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}/) + set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication") add_subdirectory(SingleApplication-3.5.2) diff --git a/MainWidget.cpp b/MainWidget.cpp index 589bbce..1f87150 100644 --- a/MainWidget.cpp +++ b/MainWidget.cpp @@ -20,7 +20,7 @@ MainWidget::MainWidget(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWi { ui->setupUi(this); - setWindowTitle(u8"OneLevelXmlOpr v1.3.11"); + setWindowTitle("OneLevelXmlOpr v1.3.12"); setWindowIcon(QIcon("://resource/xml.ico")); QScreen* primaryScreen = QGuiApplication::primaryScreen(); @@ -53,7 +53,7 @@ MainWidget::MainWidget(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWi ui->btnResort->setEnabled(false); connect(ui->btnSelectFile, &QPushButton::clicked, this, [&]() { - QString file = CUtil::select_file(this, u8"请选择xml文件", u8"XML(*.xml);;所有文件 (*)"); + QString file = CUtil::select_file(this, "请选择xml文件", "XML(*.xml);;所有文件 (*)"); if (file.isEmpty()) { return; } @@ -122,7 +122,7 @@ MainWidget::MainWidget(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWi return; } - if (!CUtil::affirm(this, u8"提示", u8"确认重新排序吗?")) { + if (!CUtil::affirm(this, "提示", "确认重新排序吗?")) { return; } @@ -161,7 +161,7 @@ void MainWidget::copy_key() } QClipboard* clip = QApplication::clipboard(); clip->setText(QString(target->Attribute(keys_[0].c_str()))); - // CUtil::msg(this, u8"已复制"); + // CUtil::msg(this, "已复制"); } void MainWidget::closeEvent(QCloseEvent* event) @@ -281,7 +281,7 @@ void MainWidget::push_content(const std::vector& eles, st if (page < 1 || page > all_page_) { if (eles.size() > 0) { - CUtil::msg(this, u8"页码不在范围内"); + CUtil::msg(this, "页码不在范围内"); return; } tab_widget_->clearContents(); @@ -338,7 +338,7 @@ bool MainWidget::read(const QString& file_path) ui->cbUnit->clear(); unit_change_auto_ = false; if (alreay_open_) { - if (!CUtil::affirm(this, u8"确认", u8"当前已有打开文件在使用,请确认已保存相关内容再继续。")) { + if (!CUtil::affirm(this, "确认", "当前已有打开文件在使用,请确认已保存相关内容再继续。")) { return false; } else { xml_.clear_data(); @@ -349,21 +349,21 @@ bool MainWidget::read(const QString& file_path) // 获取配置 cur_config_.name = ui->cbConfig->currentText().toStdString(); if (!ini_oper_->get_item(cur_config_)) { - CUtil::msg(this, u8"获取配置失败。"); + CUtil::msg(this, "获取配置失败。"); clear_tab_widget(); alreay_open_ = false; return false; } if (!xml_.open(file_path.toStdString())) { - CUtil::msg(this, u8"打开xml失败。"); + CUtil::msg(this, "打开xml失败。"); clear_tab_widget(); alreay_open_ = false; return false; } xml_.set_baseinfo(cur_config_); if (!xml_.parse_xml(vec_)) { - CUtil::msg(this, u8"解析xml失败。"); + CUtil::msg(this, "解析xml失败。"); clear_tab_widget(); alreay_open_ = false; return false; @@ -499,15 +499,15 @@ void MainWidget::item_changed_handle(QTableWidgetItem* item) void MainWidget::save() { if (xml_.save()) { - CUtil::msg(this, u8"保存成功"); + CUtil::msg(this, "保存成功"); } else { - CUtil::msg(this, u8"保存失败"); + CUtil::msg(this, "保存失败"); } } void MainWidget::copy_select_line() { - // if (!CUtil::affirm(this, u8"确认", u8"确认复制吗?")) { + // if (!CUtil::affirm(this, "确认", "确认复制吗?")) { // return; // } @@ -553,9 +553,9 @@ bool MainWidget::edit_property(Element_t* target, int row, bool is_copy) xml_.get_attributes(target, property); if (is_copy) { - attri_edit_->setWindowTitle(u8"复制项目"); + attri_edit_->setWindowTitle("复制项目"); } else { - attri_edit_->setWindowTitle(u8"编辑项目"); + attri_edit_->setWindowTitle("编辑项目"); } // 检测key值是否变化 @@ -571,7 +571,7 @@ bool MainWidget::edit_property(Element_t* target, int row, bool is_copy) // 如果是复制,或者编辑时更改了key值,检查重复性。 if (property[0].value != value_pre || is_copy) { while (xml_.check_key_exists(property)) { - CUtil::msg(attri_edit_, u8"不能有相同的key,请检查。"); + CUtil::msg(attri_edit_, "不能有相同的key,请检查。"); attri_edit_->exec(); attri_edit_->get_attribute(property); if (!attri_edit_->is_ok_) { @@ -627,10 +627,10 @@ void MainWidget::init_menu() menu_simple_ = new QMenu(); menu_multi_ = new QMenu(); - ac_edit_property_ = new QAction(u8"编辑"); - ac_copy_curline_ = new QAction(u8"复制项"); - ac_del_curline_ = new QAction(u8"删除项"); - ac_copy_key_ = new QAction(u8"复制key"); + ac_edit_property_ = new QAction("编辑"); + ac_copy_curline_ = new QAction("复制项"); + ac_del_curline_ = new QAction("删除项"); + ac_copy_key_ = new QAction("复制key"); menu_simple_->addAction(ac_edit_property_); menu_simple_->addAction(ac_copy_curline_); @@ -680,7 +680,7 @@ void MainWidget::insert_one_line(Element_t* ele, int row) void MainWidget::del_select_line() { - if (!CUtil::affirm(this, u8"确认", u8"确认删除吗?")) { + if (!CUtil::affirm(this, "确认", "确认删除吗?")) { return; } @@ -729,7 +729,7 @@ QTableWidgetItem* MainWidget::get_current_select_item() } QList selectedItems = tab_widget_->selectedItems(); if (selectedItems.size() < 1) { - CUtil::msg(this, u8"没有选中数据"); + CUtil::msg(this, "没有选中数据"); return ret; } ret = selectedItems[0]; @@ -803,7 +803,7 @@ void MainWidget::copy_multi_data() } if (vec.size() < 1) { - CUtil::msg(this, u8"无选择数据"); + CUtil::msg(this, "无选择数据"); return; } QString ret; @@ -830,7 +830,7 @@ void MainWidget::replace_content(bool is_common) QString key = ui->edRepPre->text(); QString after = ui->edRepAfter->text(); if (key.isEmpty()) { - CUtil::msg(this, u8"替换前数据为空。"); + CUtil::msg(this, "替换前数据为空。"); return; } auto handle = [&](const std::vector& vec, bool is_search) { @@ -852,7 +852,7 @@ void MainWidget::replace_content(bool is_common) if (ui->rbReplaceSelect->isChecked()) { QModelIndexList indexList = tab_widget_->selectionModel()->selectedRows(); if (indexList.size() < 1) { - CUtil::msg(this, u8"无选择数据"); + CUtil::msg(this, "无选择数据"); return; } get_related_elements(vec, AREA_SELECT); @@ -868,7 +868,7 @@ void MainWidget::replace_content(bool is_common) get_related_elements(vec, AREA_CUR_PAGE); handle(vec, false); } else { - if (!CUtil::affirm(this, u8"确认", u8"确认进行全局替换吗?")) { + if (!CUtil::affirm(this, "确认", "确认进行全局替换吗?")) { return; } get_related_elements(vec, AREA_ALL); @@ -952,9 +952,9 @@ void MainWidget::backup_file() QString time = QDateTime::currentDateTime().toString("yyyy-MMdd-hhmmss"); if (!xml_.backup_file(fs::path(exe_path_).parent_path().append("backup").string(), time.toStdString())) { - CUtil::msg(this, u8"备份失败。"); + CUtil::msg(this, "备份失败。"); } else { - CUtil::msg(this, u8"备份完成。"); + CUtil::msg(this, "备份完成。"); } } @@ -995,7 +995,7 @@ void MainWidget::unit_change() } std::string unit = ui->cbUnit->currentText().toStdString(); if (!xml_.get_all_elements(vec_, unit)) { - CUtil::msg(this, u8"获取单元信息失败:" + QString::fromStdString(unit)); + CUtil::msg(this, "获取单元信息失败:" + QString::fromStdString(unit)); return; } push_content(vec_); @@ -1016,15 +1016,15 @@ bool MainWidget::format_xml() return false; } - if (!CUtil::affirm(this, u8"确认", u8"重排版内容将会覆盖源文件,请确认是否需要备份,继续?")) { + if (!CUtil::affirm(this, "确认", "重排版内容将会覆盖源文件,请确认是否需要备份,继续?")) { return false; } if (!xml_.handle_save(xml_path, set.values_)) { - CUtil::msg(this, u8"重排版内容失败"); + CUtil::msg(this, "重排版内容失败"); return false; } - CUtil::msg(this, u8"重排版内容结束"); + CUtil::msg(this, "重排版内容结束"); return true; } diff --git a/conf_setting.cpp b/conf_setting.cpp index ca47001..636114a 100644 --- a/conf_setting.cpp +++ b/conf_setting.cpp @@ -8,7 +8,7 @@ CGroupSetting::CGroupSetting(QWidget* parent, CGroupIni* oper) : QDialog(parent) ini_opr_ = oper; ui->setupUi(this); - setWindowTitle(u8"配置编辑"); + setWindowTitle("配置编辑"); connect(ui->btnAddConfig, &QPushButton::clicked, this, [&]() { add_item(); }); connect(ui->btnDelConfig, &QPushButton::clicked, this, [&]() { del_item(); }); @@ -29,13 +29,13 @@ void CGroupSetting::showEvent(QShowEvent* event) void CGroupSetting::add_item() { - if (!CUtil::affirm(this, u8"确认", u8"确认添加/更新吗?")) { + if (!CUtil::affirm(this, "确认", "确认添加/更新吗?")) { return; } QString config_name = ui->edConfigName->text(); config_name = config_name.trimmed(); if (config_name.isEmpty()) { - CUtil::msg(this, u8"配置名为空"); + CUtil::msg(this, "配置名为空"); return; } // 验证重名 @@ -52,28 +52,28 @@ void CGroupSetting::add_item() gp.is_same = ui->chbIsSame->isChecked(); if (!ini_opr_->add_item(gp)) { - CUtil::msg(this, u8"失败"); + CUtil::msg(this, "失败"); return; } update_ini(QString::fromStdString(gp.name)); - CUtil::msg(this, u8"成功"); + CUtil::msg(this, "成功"); } void CGroupSetting::del_item() { - if (!CUtil::affirm(this, u8"确认", u8"确认删除吗?")) { + if (!CUtil::affirm(this, "确认", "确认删除吗?")) { return; } std::string key = ui->cbConfig->currentText().toStdString(); if (!ini_opr_->del_item(key)) { - CUtil::msg(this, u8"失败"); + CUtil::msg(this, "失败"); return; } // 删除成功之后要更新 cb update_ini(""); - CUtil::msg(this, u8"成功"); + CUtil::msg(this, "成功"); } void CGroupSetting::set_ui(const OneGroupIni& gp) @@ -102,7 +102,7 @@ void CGroupSetting::change_ini() OneGroupIni gp; gp.name = name_key.toStdString(); if (!ini_opr_->get_item(gp)) { - CUtil::msg(this, u8"加载" + ui->cbConfig->currentText() + "失败"); + CUtil::msg(this, "加载" + ui->cbConfig->currentText() + "失败"); } else { set_ui(gp); } @@ -134,7 +134,7 @@ void CGroupSetting::update_ini(const QString& cur_key) OneGroupIni gp; gp.name = ui->cbConfig->currentText().toStdString(); if (!ini_opr_->get_item(gp)) { - CUtil::msg(this, u8"加载" + ui->cbConfig->currentText() + "失败"); + CUtil::msg(this, "加载" + ui->cbConfig->currentText() + "失败"); } else { set_ui(gp); } diff --git a/form/qformatset.cpp b/form/qformatset.cpp index edc8db6..e3d0d78 100644 --- a/form/qformatset.cpp +++ b/form/qformatset.cpp @@ -15,7 +15,7 @@ QFormatSet::QFormatSet(QWidget* parent) : QDialog(parent), ui(new Ui::QFormatSet }); connect(ui->cbAll, &QCheckBox::toggled, this, [&]() { check_select(); }); connect(ui->btnSelect, &QPushButton::clicked, this, [&]() { - QString file = CUtil::select_file(this, u8"请选择xml文件", u8"XML(*.xml);;所有文件 (*)"); + QString file = CUtil::select_file(this, "请选择xml文件", "XML(*.xml);;所有文件 (*)"); if (file.isEmpty()) { return; } diff --git a/main.cpp b/main.cpp index f6c21f8..b8992ec 100644 --- a/main.cpp +++ b/main.cpp @@ -7,8 +7,6 @@ int main(int argc, char *argv[]) { - setlocale(LC_ALL, ".utf-8"); - SingleApplication a(argc, argv); #ifdef _WIN32 @@ -18,10 +16,10 @@ int main(int argc, char *argv[]) // a.setStyle("windows"); #endif - // QFile file(":/QtTheme/theme/Flat/Light/Blue/Pink.qss"); - // if (file.open(QFile::ReadOnly)) { - // a.setStyleSheet(file.readAll()); - // } + QFile file(":/QtTheme/theme/Flat/Light/Blue/Pink.qss"); + if (file.open(QFile::ReadOnly)) { + a.setStyleSheet(file.readAll()); + } #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); diff --git a/public_def.cpp b/public_def.cpp index c08c30c..87769fb 100644 --- a/public_def.cpp +++ b/public_def.cpp @@ -9,7 +9,7 @@ void CUtil::msg(QWidget* parent, const QString& content) { - QMessageBox::information(parent, u8"提示", content); + QMessageBox::information(parent, "提示", content); } bool CUtil::affirm(QWidget* parent, const QString& titile, diff --git a/src/attribute_edit.cpp b/src/attribute_edit.cpp index 18eec80..caecd85 100644 --- a/src/attribute_edit.cpp +++ b/src/attribute_edit.cpp @@ -7,7 +7,7 @@ CAttributeEdit::CAttributeEdit(QWidget* parent) { ui->setupUi(this); - setWindowTitle(u8"属性编辑"); + setWindowTitle("属性编辑"); setMinimumSize(600, 760); connect(ui->btnOk, &QPushButton::clicked, this, &CAttributeEdit::handle_ok); @@ -84,7 +84,7 @@ void CAttributeEdit::init_table() { if (table_ == nullptr) { QStringList list; - list << u8"属性" << u8"值"; + list << "属性" << "值"; table_ = new QTableWidget(); table_->setColumnCount(list.size()); table_->setHorizontalHeaderLabels(list); diff --git a/src/data_edit.cpp b/src/data_edit.cpp index 6282157..f215cbd 100644 --- a/src/data_edit.cpp +++ b/src/data_edit.cpp @@ -15,7 +15,7 @@ CDataEdit::CDataEdit(QWidget* parent) : QDialog(parent), ui(new Ui::CDataEdit) ui->setupUi(this); // setMinimumWidth(600); - setWindowTitle(u8"源编辑"); + setWindowTitle("源编辑"); connect(ui->btnExit, &QPushButton::clicked, this, [&]() { close(); }); connect(ui->btnReplace, &QPushButton::clicked, this, [&]() { replace(); }); @@ -48,17 +48,17 @@ void CDataEdit::import_data() is_import_sucess_ = false; QString data = ui->plainTextEdit->toPlainText(); if (data.trimmed().isEmpty()) { - CUtil::msg(this, u8"内容为空"); + CUtil::msg(this, "内容为空"); return; } if (xml_opr_ == nullptr) { - CUtil::msg(this, u8"xml_opr无实例。"); + CUtil::msg(this, "xml_opr无实例。"); return; } - if (!CUtil::affirm(this, u8"提示", - u8"如果出现重复的 key 将跳过,继续吗?")) { + if (!CUtil::affirm(this, "提示", + "如果出现重复的 key 将跳过,继续吗?")) { return; } @@ -70,7 +70,7 @@ void CDataEdit::import_data() continue; } if (!xml_opr_->check_same_struct(item.toStdString())) { - CUtil::msg(this, u8"不是合法的xml语句或者与现有结构不一致。"); + CUtil::msg(this, "不是合法的xml语句或者与现有结构不一致。"); return; } valid_data.push_back(item.toStdString()); @@ -78,10 +78,10 @@ void CDataEdit::import_data() auto task_count = valid_data.size(); std::size_t success_count{}; if (!xml_opr_->import_newer_data(valid_data, success_count)) { - CUtil::msg(this, u8"导入失败。"); + CUtil::msg(this, "导入失败。"); return; } - QString info = QString(u8"需要导入 %1 条数据,成功导入 %2 条。") + QString info = QString("需要导入 %1 条数据,成功导入 %2 条。") .arg(task_count) .arg(success_count); CUtil::msg(this, info); @@ -112,7 +112,7 @@ void CDataEdit::show_before() void CDataEdit::replace() { if (ui->edPre->text().isEmpty()) { - CUtil::msg(this, u8"未填入内容。"); + CUtil::msg(this, "未填入内容。"); return; } QString data = ui->plainTextEdit->toPlainText();