fix:按照类型传输时,类型重复的问题修正。

This commit is contained in:
2026-02-03 23:43:09 +08:00
parent 9f54ef60f9
commit 2f8b55be3b
6 changed files with 21 additions and 21 deletions

View File

@@ -6,7 +6,7 @@ variables:
VS_DIR: "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools" VS_DIR: "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools"
VS_ENV: "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/Tools/Microsoft.VisualStudio.DevShell.dll" VS_ENV: "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/Tools/Microsoft.VisualStudio.DevShell.dll"
CMAKE_BUILD_TYPE: Release CMAKE_BUILD_TYPE: Release
PROJECT_VERSION: "0.2.5" PROJECT_VERSION: "0.2.6"
CMAKE_GENERATOR: "Ninja" CMAKE_GENERATOR: "Ninja"
PROJECT_NAME: "frelay" PROJECT_NAME: "frelay"
ARCH_TYPE: x64 ARCH_TYPE: x64
@@ -17,13 +17,7 @@ variables:
# 优化 # 优化
- 删除新建文件(夹)成功时不提示 - 按照类型传输时,类型重复的问题修正
- 选择上传下载移动到右键菜单中。
# 功能新增
- 对照传输支持按照类型传输。
- 添加日志内容清空按钮。
# 关于预构建包 # 关于预构建包

View File

@@ -13,6 +13,7 @@
"ignoreFailures": true "ignoreFailures": true
} }
], ],
"visualizerFile": "${workspaceRoot}/.vscode/qt6.natvis",
"args": [] "args": []
}, },
"cmake.configureSettings": { "cmake.configureSettings": {

View File

@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
project(frelay VERSION 0.2.5 LANGUAGES CXX) project(frelay VERSION 0.2.6 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)

View File

@@ -392,17 +392,21 @@ void Compare::FilterFiles(bool isUpload)
listWidget.setSelectionMode(QAbstractItemView::NoSelection); listWidget.setSelectionMode(QAbstractItemView::NoSelection);
QListWidgetItem* allItem = new QListWidgetItem("*(ALL)"); QListWidgetItem* allItem = new QListWidgetItem("*(ALL)");
allItem->setData(Qt::UserRole, "*"); allItem->setData(Qt::UserRole, "*ALL");
allItem->setCheckState(curSelectTypes_.contains("*") ? Qt::Checked : Qt::Unchecked); allItem->setCheckState(curSelectTypes_.contains("*") ? Qt::Checked : Qt::Unchecked);
listWidget.addItem(allItem); listWidget.addItem(allItem);
std::map<QString, int> typeCounts;
int rows = ui->tableWidget->rowCount(); int rows = ui->tableWidget->rowCount();
for (int i = 0; i < rows; ++i) { for (int i = 0; i < rows; ++i) {
QString ext = ui->tableWidget->item(i, 0)->text().split(".").last().toUpper(); QString ext = ui->tableWidget->item(i, 0)->text().split(".").last().toLower();
if (typeCounts.count(ext) < 1) {
QListWidgetItem* item = new QListWidgetItem(ext); QListWidgetItem* item = new QListWidgetItem(ext);
item->setData(Qt::UserRole, ext); item->setData(Qt::UserRole, ext);
item->setCheckState(curSelectTypes_.contains(ext) ? Qt::Checked : Qt::Unchecked); item->setCheckState(curSelectTypes_.contains(ext) ? Qt::Checked : Qt::Unchecked);
listWidget.addItem(item); listWidget.addItem(item);
typeCounts[ext] = 1;
}
} }
QDialogButtonBox buttons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, &dialog); QDialogButtonBox buttons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, &dialog);
@@ -451,8 +455,8 @@ void Compare::TransToLeft(bool useSelectTypes)
if (useSelectTypes) { if (useSelectTypes) {
for (int i = 0; i < ui->tableWidget->rowCount(); ++i) { for (int i = 0; i < ui->tableWidget->rowCount(); ++i) {
QString ext = ui->tableWidget->item(i, 0)->text().split(".").last().toUpper(); QString ext = ui->tableWidget->item(i, 0)->text().split(".").last().toLower();
if (curSelectTypes_.contains(ext)) { if (curSelectTypes_.contains(ext) || curSelectTypes_.contains("*ALL")) {
const QTableWidgetItem* itemF = ui->tableWidget->item(i, 1); const QTableWidgetItem* itemF = ui->tableWidget->item(i, 1);
const QTableWidgetItem* itemT = ui->tableWidget->item(i, 2); const QTableWidgetItem* itemT = ui->tableWidget->item(i, 2);
pushTask(itemT->text(), Util::Join(itemF->text(), ui->tableWidget->item(i, 0)->text())); pushTask(itemT->text(), Util::Join(itemF->text(), ui->tableWidget->item(i, 0)->text()));
@@ -495,8 +499,8 @@ void Compare::TransToRight(bool useSelectTypes)
if (useSelectTypes) { if (useSelectTypes) {
for (int i = 0; i < ui->tableWidget->rowCount(); ++i) { for (int i = 0; i < ui->tableWidget->rowCount(); ++i) {
QString ext = ui->tableWidget->item(i, 0)->text().split(".").last().toUpper(); QString ext = ui->tableWidget->item(i, 0)->text().split(".").last().toLower();
if (curSelectTypes_.contains(ext)) { if (curSelectTypes_.contains(ext) || curSelectTypes_.contains("*ALL")) {
const QTableWidgetItem* itemF = ui->tableWidget->item(i, 1); const QTableWidgetItem* itemF = ui->tableWidget->item(i, 1);
const QTableWidgetItem* itemT = ui->tableWidget->item(i, 2); const QTableWidgetItem* itemT = ui->tableWidget->item(i, 2);
pushTask(Util::Join(itemF->text(), ui->tableWidget->item(i, 0)->text()), itemT->text()); pushTask(Util::Join(itemF->text(), ui->tableWidget->item(i, 0)->text()), itemT->text());

View File

@@ -25,12 +25,12 @@
<enum>Qt::Orientation::Vertical</enum> <enum>Qt::Orientation::Vertical</enum>
</property> </property>
<property name="sizeType"> <property name="sizeType">
<enum>QSizePolicy::Policy::Maximum</enum> <enum>QSizePolicy::Policy::Expanding</enum>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>4000</height> <height>60</height>
</size> </size>
</property> </property>
</spacer> </spacer>

View File

@@ -8,6 +8,7 @@
| 序号 | 类型 | 内容 | 说明 | 基于版本 | 完成版本 | | 序号 | 类型 | 内容 | 说明 | 基于版本 | 完成版本 |
| :--: | :--: | ------------------------------------------------------------ | :----: | :------: | :------: | | :--: | :--: | ------------------------------------------------------------ | :----: | :------: | :------: |
| 51 | 问题 | 按照类型传输时,类型重复的问题修正 | | 0.2.5 | 0.2.6 |
| 50 | 功能 | 添加日志内容清空按钮。 | | 0.2.4 | 0.2.5 | | 50 | 功能 | 添加日志内容清空按钮。 | | 0.2.4 | 0.2.5 |
| 49 | 功能 | 对照传输支持按照类型传输。 | | 0.2.4 | 0.2.5 | | 49 | 功能 | 对照传输支持按照类型传输。 | | 0.2.4 | 0.2.5 |
| 48 | 优化 | 选择上传下载移动到右键菜单中。 | | 0.2.4 | 0.2.5 | | 48 | 优化 | 选择上传下载移动到右键菜单中。 | | 0.2.4 | 0.2.5 |