Rabbit Remote Control 0.1.0-bate5
Loading...
Searching...
No Matches
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
Depend on information.
File transfer operate interface.
Operate interface.
Definition Operate.h:51
virtual const QString Description() const override
Plugin description.
virtual const QString Protocol() const override
Plugin Protocol.
virtual const QString Name() const override
This name must be the same as the project name (${PROJECT_NAME}). The translation file (${PROJECT_NAM...
virtual const QString Details() const override
Display more information in About dialog or log.
virtual const QString Version() const override
Version.
virtual const QString DisplayName() const override
The plugin display name.
Plugin interface.
Definition Plugin.h:15
virtual const QString Id()
ID. Default: Type() + ":" + Protocol() + ":" + Name()
Definition Plugin.cpp:68