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