玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Plugins
FileTransfer
PluginFileTransfer.cpp
1
// Copyright Copyright (c) Kang Lin studio, All Rights Reserved
2
// Author: Kang Lin <kl222@126.com>
3
4
#if HAVE_CURL
5
#include <curl/curl.h>
6
#endif
7
8
#include <QApplication>
9
#include <QStyle>
10
#include <QLoggingCategory>
11
#include "PluginFileTransfer.h"
12
#include "OperateFileTransfer.h"
13
14
#ifdef HAVE_LIBSSH
15
#include "ChannelSSH.h"
16
#endif
17
18
static
Q_LOGGING_CATEGORY(log,
"Plugin.FileTransfer"
)
19
20
CPluginFileTransfer
::
CPluginFileTransfer
(QObject *parent)
21
:
CPlugin
{parent}
22
{
23
qDebug(log) << Q_FUNC_INFO;
24
}
25
26
CPluginFileTransfer::~CPluginFileTransfer()
27
{
28
qDebug(log) << Q_FUNC_INFO;
29
}
30
31
const
CPlugin::TYPE CPluginFileTransfer::Type()
const
32
{
33
return
TYPE::FileTransfers;
34
}
35
36
const
QString
CPluginFileTransfer::Protocol
()
const
37
{
38
return
QString();
39
}
40
41
const
QString
CPluginFileTransfer::Name
()
const
42
{
43
return
"FileTransfer"
;
44
}
45
46
const
QString
CPluginFileTransfer::DisplayName
()
const
47
{
48
return
tr(
"File transfer"
);
49
}
50
51
const
QString
CPluginFileTransfer::Description
()
const
52
{
53
return
tr(
"File transfer: include sftp, ftp"
);
54
}
55
56
const
QString
CPluginFileTransfer::Version
()
const
57
{
58
return
0;
59
}
60
61
const
QIcon CPluginFileTransfer::Icon()
const
62
{
63
return
QIcon::fromTheme(
"system-file-manager"
);
64
//return QApplication::style()->standardIcon(QStyle::SP_FileIcon);
65
}
66
67
const
QString
CPluginFileTransfer::Details
()
const
68
{
69
QString szDetails;
70
szDetails +=
"- "
+ tr(
"Dependency libraries"
) +
"\n"
;
71
#ifdef HAVE_LIBSSH
72
CChannelSSH
channel(
nullptr
,
nullptr
);
73
szDetails += channel.
GetDetails
();
74
#endif
75
76
#if HAVE_CURL
77
szDetails +=
" - "
+ tr(
"libCurl"
) +
" "
;
78
curl_version_info_data *version_info = curl_version_info(CURLVERSION_NOW);
79
szDetails += tr(
"Version:"
) +
" "
+ QString(version_info->version) +
"\n"
;
80
szDetails +=
" - "
+ tr(
"Supported protocols:"
) +
" "
;
81
if
(version_info->protocols) {
82
for
(
int
i = 0; version_info->protocols[i]; i++) {
83
szDetails +=
" "
;
84
szDetails += version_info->protocols[i];
85
}
86
}
87
szDetails +=
"\n"
;
88
#if CURL_VERSION_SSL
89
szDetails +=
" - "
+ QString(
"SSL supported:"
) +
" "
+ QString(version_info->features & CURL_VERSION_SSL ?
"Yes"
:
"No"
) +
"\n"
;
90
#endif
91
#if CURL_VERSION_LIBSSH2
92
szDetails +=
" - "
+ QString(
"LIBSSH2 supported:"
) +
" "
+ QString(version_info->features & CURL_VERSION_LIBSSH2 ?
"Yes"
:
"No"
) +
"\n"
;
93
#endif
94
#endif
95
return
szDetails;
96
}
97
98
COperate
*CPluginFileTransfer::OnCreateOperate(
const
QString &szId)
99
{
100
if
(
Id
() == szId)
101
return
new
COperateFileTransfer
(
this
);
102
return
nullptr
;
103
}
CChannelSSH
定义
ChannelSSH.h:14
CChannelSSH::GetDetails
virtual QString GetDetails() override
依赖信息
定义
ChannelSSH.cpp:27
COperateFileTransfer
File transfer operate interface
定义
OperateFileTransfer.h:14
COperate
操作接口。
定义
Operate.h:51
CPluginFileTransfer
定义
PluginFileTransfer.h:8
CPluginFileTransfer::Description
virtual const QString Description() const override
描述
定义
PluginFileTransfer.cpp:51
CPluginFileTransfer::Protocol
virtual const QString Protocol() const override
协议
定义
PluginFileTransfer.cpp:36
CPluginFileTransfer::Name
virtual const QString Name() const override
插件名,这个名一定要与工程名(${PROJECT_NAME})相同。 翻译文件(${PROJECT_NAME}_*.ts))名与其相关。
定义
PluginFileTransfer.cpp:41
CPluginFileTransfer::Details
virtual const QString Details() const override
显示更多细节。 例如: 在关于对话框或日志中显示。 包括插件的依赖库的版本信息和描述等
定义
PluginFileTransfer.cpp:67
CPluginFileTransfer::Version
virtual const QString Version() const override
Version
定义
PluginFileTransfer.cpp:56
CPluginFileTransfer::DisplayName
virtual const QString DisplayName() const override
在界面上显示的名称
定义
PluginFileTransfer.cpp:46
CPlugin
插件接口
定义
Plugin.h:15
CPlugin::Id
virtual const QString Id() const
标识。默认: Type() + ":" + Protocol() + ":" + Name()
定义
Plugin.cpp:71
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力