func:添加右键上传下载。修正发送退出对方接收中断问题。
This commit is contained in:
@@ -289,6 +289,7 @@ void FileTrans::fbtCanDown(QSharedPointer<FrameBuffer> frame)
|
|||||||
downTask_->permission = info.permissions;
|
downTask_->permission = info.permissions;
|
||||||
downTask_->totalSize = info.size;
|
downTask_->totalSize = info.size;
|
||||||
downTask_->tranSize = 0;
|
downTask_->tranSize = 0;
|
||||||
|
isSend_ = false;
|
||||||
qDebug() << QString(tr("Can Down trans file:%1.")).arg(info.fromPath);
|
qDebug() << QString(tr("Can Down trans file:%1.")).arg(info.fromPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -339,6 +340,7 @@ void FileTrans::fbtCanSend(QSharedPointer<FrameBuffer> frame)
|
|||||||
{
|
{
|
||||||
InfoMsg info = infoUnpack<InfoMsg>(frame->data);
|
InfoMsg info = infoUnpack<InfoMsg>(frame->data);
|
||||||
qInfo() << QString(tr("开始发送 %1 到 %2")).arg(info.fromPath, frame->fid);
|
qInfo() << QString(tr("开始发送 %1 到 %2")).arg(info.fromPath, frame->fid);
|
||||||
|
isSend_ = true;
|
||||||
SendFile(sendTask_);
|
SendFile(sendTask_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -353,7 +355,7 @@ void FileTrans::fbtTransFailed(QSharedPointer<FrameBuffer> frame)
|
|||||||
|
|
||||||
void FileTrans::Interrupt(bool notic)
|
void FileTrans::Interrupt(bool notic)
|
||||||
{
|
{
|
||||||
if (downTask_->state == TaskState::STATE_RUNNING) {
|
if (!isSend_ && downTask_->state == TaskState::STATE_RUNNING) {
|
||||||
qWarning() << QString(tr("传输文件 %1 中断。")).arg(downTask_->file.fileName());
|
qWarning() << QString(tr("传输文件 %1 中断。")).arg(downTask_->file.fileName());
|
||||||
downTask_->file.close();
|
downTask_->file.close();
|
||||||
|
|
||||||
@@ -368,7 +370,7 @@ void FileTrans::Interrupt(bool notic)
|
|||||||
|
|
||||||
downTask_->state = TaskState::STATE_NONE;
|
downTask_->state = TaskState::STATE_NONE;
|
||||||
}
|
}
|
||||||
if (sendTask_->state == TaskState::STATE_RUNNING) {
|
if (isSend_ && sendTask_->state == TaskState::STATE_RUNNING) {
|
||||||
qWarning() << QString(tr("传输文件 %1 中断。")).arg(sendTask_->file.fileName());
|
qWarning() << QString(tr("传输文件 %1 中断。")).arg(sendTask_->file.fileName());
|
||||||
sendTask_->file.close();
|
sendTask_->file.close();
|
||||||
|
|
||||||
|
|||||||
@@ -98,8 +98,9 @@ private:
|
|||||||
QMutex lMut_;
|
QMutex lMut_;
|
||||||
QMutex rMut_;
|
QMutex rMut_;
|
||||||
|
|
||||||
ClientCore* clientCore_;
|
|
||||||
QMutex sthMut_;
|
QMutex sthMut_;
|
||||||
|
bool isSend_{};
|
||||||
|
ClientCore* clientCore_;
|
||||||
QMap<QString, QThread*> upTasks_;
|
QMap<QString, QThread*> upTasks_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -92,6 +92,9 @@ void Compare::InitControl()
|
|||||||
});
|
});
|
||||||
|
|
||||||
LoadTitles();
|
LoadTitles();
|
||||||
|
|
||||||
|
isResource_ = true;
|
||||||
|
ui->tableWidget->setIsResource(isResource_);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Compare::InitTabWidget()
|
void Compare::InitTabWidget()
|
||||||
|
|||||||
@@ -9,10 +9,11 @@
|
|||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
#include <QListWidget>
|
#include <QListWidget>
|
||||||
|
#include <QMessageBox>
|
||||||
#include <QTableWidgetItem>
|
#include <QTableWidgetItem>
|
||||||
#include <RemoteFile.h>
|
#include <RemoteFile.h>
|
||||||
#include "Form/FileInfoForm.h"
|
|
||||||
|
|
||||||
|
#include "Form/FileInfoForm.h"
|
||||||
#include "GuiUtil/Public.h"
|
#include "GuiUtil/Public.h"
|
||||||
#include "ui_FileControl.h"
|
#include "ui_FileControl.h"
|
||||||
|
|
||||||
@@ -56,6 +57,12 @@ void FileManager::SetModeStr(const QString& modeStr, int type, ClientCore* clien
|
|||||||
evtHome();
|
evtHome();
|
||||||
evtFile();
|
evtFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isRemote_) {
|
||||||
|
menu_->addAction(tr("下载"), this, &FileManager::UpDown);
|
||||||
|
} else {
|
||||||
|
menu_->addAction(tr("上传"), this, &FileManager::UpDown);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileManager::InitControl()
|
void FileManager::InitControl()
|
||||||
@@ -471,6 +478,49 @@ void FileManager::ShowProperties()
|
|||||||
info->exec();
|
info->exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FileManager::UpDown()
|
||||||
|
{
|
||||||
|
auto datas = ui->tableWidget->selectedItems();
|
||||||
|
if (datas.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (datas.size() % 5 != 0) {
|
||||||
|
QMessageBox::information(this, tr("提示"), tr("请选择完整的行。"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
QVector<TransTask> tasks;
|
||||||
|
for (int i = 0; i < (datas.size() / 5); ++i) {
|
||||||
|
if (datas[i * 5 + 3]->text() != "File") {
|
||||||
|
qDebug() << QString(tr("暂不支持传输文件夹:%1")).arg(datas[i * 5 + 3]->text());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
要注意这一块的逻辑,本软件的所讲的【上传】【下载】都是针对本地。
|
||||||
|
这里的任务拼接和 DropEvent 有所不同,
|
||||||
|
DropEvent 是接收方负责拼接任务,但是这里是发送方拼接任务。
|
||||||
|
|
||||||
|
所以这里的拼接逻辑需要注意。
|
||||||
|
*/
|
||||||
|
TransTask task;
|
||||||
|
task.taskUUID = Util::UUID();
|
||||||
|
task.isUpload = !isRemote_;
|
||||||
|
task.localId = cliCore_->GetOwnID();
|
||||||
|
task.remoteId = cliCore_->GetRemoteID();
|
||||||
|
if (isRemote_) {
|
||||||
|
task.remotePath = Util::Join(GlobalData::Ins()->GetRemoteRoot(), datas[i * 5 + 1]->text());
|
||||||
|
task.localPath = GlobalData::Ins()->GetLocalRoot();
|
||||||
|
} else {
|
||||||
|
task.remotePath = GlobalData::Ins()->GetRemoteRoot();
|
||||||
|
task.localPath = Util::Join(GlobalData::Ins()->GetLocalRoot(), datas[i * 5 + 1]->text());
|
||||||
|
}
|
||||||
|
tasks.push_back(task);
|
||||||
|
}
|
||||||
|
if (tasks.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
emit sigSendTasks(tasks);
|
||||||
|
}
|
||||||
|
|
||||||
QString FileManager::GetRoot()
|
QString FileManager::GetRoot()
|
||||||
{
|
{
|
||||||
if (isRemote_) {
|
if (isRemote_) {
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ private:
|
|||||||
void ShowFilterForm();
|
void ShowFilterForm();
|
||||||
void CopyFullPath();
|
void CopyFullPath();
|
||||||
void ShowProperties();
|
void ShowProperties();
|
||||||
|
void UpDown();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void evtHome();
|
void evtHome();
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ void CustomTableWidget::dropEvent(QDropEvent* event)
|
|||||||
|
|
||||||
for (int i = 0; i < (parseData.size() / 5); ++i) {
|
for (int i = 0; i < (parseData.size() / 5); ++i) {
|
||||||
if (parseData[i * 5 + 3] != "File") {
|
if (parseData[i * 5 + 3] != "File") {
|
||||||
qDebug() << QString(tr("Not Handle %1")).arg(parseData[i * 5 + 1]);
|
qDebug() << QString(tr("暂不支持传输文件夹:%1")).arg(parseData[i * 5 + 1]);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
TransTask task;
|
TransTask task;
|
||||||
@@ -69,6 +69,10 @@ void CustomTableWidget::dropEvent(QDropEvent* event)
|
|||||||
}
|
}
|
||||||
tasks.push_back(task);
|
tasks.push_back(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tasks.empty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
emit sigTasks(tasks);
|
emit sigTasks(tasks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,16 +7,17 @@
|
|||||||
## 问题清单:
|
## 问题清单:
|
||||||
|
|
||||||
| 序号 | 类型 | 内容 | 说明 | 基于版本 | 完成版本 |
|
| 序号 | 类型 | 内容 | 说明 | 基于版本 | 完成版本 |
|
||||||
| :--: | :--: | ------------------------------------------------------------ | :--: | :------: | :------: |
|
| :--: | :--: | ------------------------------------------------------------ | :----: | :------: | :------: |
|
||||||
|
| 40 | 问题 | 上传方完成后,接收端未接收完毕不能退出的问题。 | | 0.2.3 | 0.2.4 |
|
||||||
| 39 | 优化 | Console端断联后应当自动退出。 | | 0.2.3 | 0.2.4 |
|
| 39 | 优化 | Console端断联后应当自动退出。 | | 0.2.3 | 0.2.4 |
|
||||||
| 38 | 功能 | PE中使用没有拖拽功能,文件管理器要有下载/上传按钮。 | | 0.2.3 | |
|
| 38 | 功能 | PE中使用没有拖拽功能,文件管理器要有下载/上传按钮。 | | 0.2.3 | 0.2.4 |
|
||||||
| 37 | 问题 | 未连接对方客户端时,执行对照传输会崩溃。 | | 0.2.3 | |
|
| 37 | 问题 | 未连接对方客户端时,执行对照传输会崩溃。 | 待复现 | 0.2.3 | |
|
||||||
| 36 | 功能 | 备份文件功能。 | | 0.2.3 | |
|
| 36 | 功能 | 备份文件功能。 | | 0.2.3 | |
|
||||||
| 35 | 功能 | 完善对照功能的界面其他内容。 | | 0.2.3 | |
|
| 35 | 功能 | 完善对照功能的界面其他内容。 | | 0.2.3 | |
|
||||||
| 34 | 功能 | 支持删除、重命名、新建文件(夹)。 | | 0.2.3 | |
|
| 34 | 功能 | 支持删除、重命名、新建文件(夹)。 | | 0.2.3 | |
|
||||||
| 33 | 功能 | 弹窗查看文件(夹)属性窗口。 | | 0.2.3 | |
|
| 33 | 功能 | 弹窗查看文件(夹)属性窗口。 | | 0.2.3 | 0.2.4 |
|
||||||
| 32 | 功能 | 路径选择显示驱动器。 | | 0.2.2 | 0.2.3 |
|
| 32 | 功能 | 路径选择显示驱动器。 | | 0.2.2 | 0.2.3 |
|
||||||
| 31 | 功能 | Server端buffer大小判断,有过多无效数据则踢出该客户端。 | | 0.2.2 | |
|
| 31 | 功能 | Server端buffer大小判断,有过多无效数据则踢出该客户端。 | | 0.2.2 | 0.2.4 |
|
||||||
| 30 | 功能 | 传输界面的取消退出,缺失功能处理。 | | 0.2.2 | 0.2.3 |
|
| 30 | 功能 | 传输界面的取消退出,缺失功能处理。 | | 0.2.2 | 0.2.3 |
|
||||||
| 29 | 功能 | 根据接收端的速率限制发送端的速度。 | | 0.2.2 | 0.2.3 |
|
| 29 | 功能 | 根据接收端的速率限制发送端的速度。 | | 0.2.2 | 0.2.3 |
|
||||||
| 28 | 变更 | 语言简体中文。 | | 0.2.2 | 0.2.3 |
|
| 28 | 变更 | 语言简体中文。 | | 0.2.2 | 0.2.3 |
|
||||||
|
|||||||
Reference in New Issue
Block a user