4#include <QLoggingCategory>
5#include <QRegularExpression>
11#include "BackendFileTransfer.h"
12#include "OperateFileTransfer.h"
14#include "DlgFileTransfer.h"
16static Q_LOGGING_CATEGORY(log,
"Plugin.FileTransfer.Operate")
19 , m_frmFileTransfer(
nullptr)
22 qDebug(log) << Q_FUNC_INFO;
25 emit this->sigUpdateParameters(
this);
30COperateFileTransfer::~COperateFileTransfer()
32 qDebug(log) << Q_FUNC_INFO;
52 return m_frmFileTransfer;
62 if(m_pActionSettings) {
63 m_Menu.addSeparator();
64 m_Menu.addAction(m_pActionSettings);
68 if(m_frmFileTransfer) {
69 bool check = connect(m_frmFileTransfer, SIGNAL(sigCopyUrlToClipboard(
const QString&)),
70 this, SLOT(slotCopyUrlToClipboard(
const QString&)));
80 if(m_frmFileTransfer) {
81 m_frmFileTransfer->deleteLater();
82 m_frmFileTransfer =
nullptr;
93 qCritical(log) <<
"new CBackendThread fail";
114 return m_Parameter.SetGlobalParameters(pPara);
124 if(m_frmFileTransfer)
125 m_frmFileTransfer->Load(set);
126 return m_Parameter.
Load(set);
131 if(m_frmFileTransfer)
132 m_frmFileTransfer->Save(set);
133 return m_Parameter.
Save(set);
140 switch((CParameterFileTransfer::Protocol)m_Parameter.GetProtocol()) {
141 case CParameterFileTransfer::Protocol::SFTP:
142 pNet = &m_Parameter.m_SSH.m_Net;
144 case CParameterFileTransfer::Protocol::FTP:
145 pNet = &m_Parameter.m_Net;
148 if(!pNet->GetHost().isEmpty()) {
152 szName += pNet->GetHost()
153 +
":" + QString::number(pNet->GetPort());
162 QString szDescription;
163 if(!
Name().isEmpty())
164 szDescription = tr(
"Name: ") +
Name() +
"\n";
167 szDescription += tr(
"Type: ") +
GetTypeName() +
"\n";
170 szDescription += tr(
"Protocol: ") +
Protocol();
172 if(!
GetPlugin()->DisplayName().isEmpty())
175 szDescription +=
"\n";
178 auto &net = m_Parameter.m_Net;
179 if(!net.GetHost().isEmpty())
180 szDescription += tr(
"Server address: ") + net.GetHost()
181 +
":" + QString::number(net.GetPort()) +
"\n";
183 if(GetSecurityLevel() != SecurityLevel::No)
184 szDescription += tr(
"Security level: ") + GetSecurityLevelString() +
"\n";
189 return szDescription;
194 switch(m_Parameter.GetProtocol()) {
195 case CParameterFileTransfer::Protocol::FTP:
197 case CParameterFileTransfer::Protocol::SFTP:
207 switch(m_Parameter.GetProtocol()) {
208 case CParameterFileTransfer::Protocol::SFTP:
209 pNet = &m_Parameter.m_SSH.m_Net;
211 case CParameterFileTransfer::Protocol::FTP:
212 pNet = &m_Parameter.m_Net;
217 if(pNet && !pNet->GetHost().isEmpty())
218 szId +=
"_" + pNet->GetHost()
219 +
"_" + QString::number(pNet->GetPort());
221 static QRegularExpression exp(
"[-@:/#%!^&* \\.]");
222 szId = szId.replace(exp,
"_");
226void COperateFileTransfer::slotCopyUrlToClipboard(
const QString &szPath)
231 if(m_Parameter.GetProtocol() == CParameterFileTransfer::Protocol::SFTP) {
232 pNet = &m_Parameter.m_SSH.m_Net;
233 if(pNet->GetHost().isEmpty()) {
236 url.setScheme(
"sftp");
238 if(m_Parameter.GetProtocol() == CParameterFileTransfer::Protocol::FTP) {
239 pNet = &m_Parameter.m_Net;
240 if(pNet->GetHost().isEmpty()) {
243 url.setScheme(
"ftp");
246 url.setUserName(pNet->
m_User.GetUser());
248 url.setHost(pNet->GetHost());
249 url.setPort(pNet->GetPort());
250 QClipboard* pClipboard = QApplication::clipboard();
251 pClipboard->setText(url.toString());
File transfer operate interface.
virtual const QString Protocol() const override
Protocol.
virtual int Stop() override
Stop.
virtual int Initial() override
Initial parameters and resource.
virtual const QString Id() override
Identity.
virtual int Save(QSettings &set) override
Save parameters.
virtual const QString Description() override
Description.
virtual const QString Name() override
Name.
virtual int Load(QSettings &set) override
Load parameters.
virtual QWidget * GetViewer() override
Get Viewer.
virtual int Clean() override
Clean parameters and resource.
virtual int Start() override
Start.
virtual int SetGlobalParameters(CParameterPlugin *pPara) override
Apply the global parameters of the plug-in.
virtual QDialog * OnOpenDialogSettings(QWidget *parent) override
Open settgins dialog.
virtual Q_INVOKABLE CBackend * InstanceBackend()
New CBackend.
virtual const qint16 Version() const override
Version.
virtual Q_INVOKABLE int Initial()
Initial parameters and resource.
virtual Q_INVOKABLE int Clean()
Clean parameters and resource.
Q_INVOKABLE CPlugin * GetPlugin() const
Get plugin.
virtual const QString Name()
Name.
virtual const QString Id()
Identity.
virtual const QString GetTypeName() const
Get type name.
Basic network parameters.
CParameterUser m_User
[Instance user]
CParameterPlugin * GetGlobalParameters()
Get CParameterPlugin.
Global parameters of plugins.
virtual int Save(QString szFile=QString(), bool bForce=true)
Save to file.
void sigChanged()
emit when the parameter changes Usually if required, the corresponding parameter corresponds to a cha...
virtual int Load(QString szFile=QString())
Load from file.
virtual const QString Version() const =0
Version.
virtual const QString DisplayName() const
The plugin display name.
virtual const QString Description() const =0
Plugin description.