Rabbit Remote Control
0.1.0-bate14
Toggle main menu visibility
Loading...
Searching...
No Matches
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
Definition
ChannelSSH.h:14
CChannelSSH::GetDetails
virtual QString GetDetails() override
Depend on information.
Definition
ChannelSSH.cpp:27
COperateFileTransfer
File transfer operate interface.
Definition
OperateFileTransfer.h:14
COperate
Operate interface.
Definition
Operate.h:51
CPluginFileTransfer
Definition
PluginFileTransfer.h:8
CPluginFileTransfer::Description
virtual const QString Description() const override
Plugin description.
Definition
PluginFileTransfer.cpp:51
CPluginFileTransfer::Protocol
virtual const QString Protocol() const override
Plugin Protocol.
Definition
PluginFileTransfer.cpp:36
CPluginFileTransfer::Name
virtual const QString Name() const override
This name must be the same as the project name (${PROJECT_NAME}). The translation file (${PROJECT_NAM...
Definition
PluginFileTransfer.cpp:41
CPluginFileTransfer::Details
virtual const QString Details() const override
Display more information in About dialog or log.
Definition
PluginFileTransfer.cpp:67
CPluginFileTransfer::Version
virtual const QString Version() const override
Version.
Definition
PluginFileTransfer.cpp:56
CPluginFileTransfer::DisplayName
virtual const QString DisplayName() const override
The plugin display name.
Definition
PluginFileTransfer.cpp:46
CPlugin
Plugin interface.
Definition
Plugin.h:15
CPlugin::Id
virtual const QString Id() const
ID. Default: Type() + ":" + Protocol() + ":" + Name().
Definition
Plugin.cpp:71
Author: Kang Lin (kl222@126.com)
Copyright (c) Kang Lin Studios All Rights Reserved