玉兔远程控制 0.1.0-bate11
载入中...
搜索中...
未找到
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 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
98COperate *CPluginFileTransfer::OnCreateOperate(const QString &szId)
99{
100 if(Id() == szId)
101 return new COperateFileTransfer(this);
102 return nullptr;
103}
virtual QString GetDetails() override
依赖信息
File transfer operate interface
操作接口。
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
在界面上显示的名称
插件接口
virtual const QString Id() const
标识。默认: Type() + ":" + Protocol() + ":" + Name()