Rabbit Remote Control 0.1.0-bate8
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 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
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() const
ID. Default: Type() + ":" + Protocol() + ":" + Name()
Definition Plugin.cpp:71