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 m_Parameter.SetGlobalParameters(pPara);
125 if(m_frmFileTransfer)
126 m_frmFileTransfer->Load(set);
127 return m_Parameter.
Load(set);
132 if(m_frmFileTransfer)
133 m_frmFileTransfer->Save(set);
134 return m_Parameter.
Save(set);
141 switch((CParameterFileTransfer::Protocol)m_Parameter.GetProtocol()) {
142 case CParameterFileTransfer::Protocol::SFTP:
143 pNet = &m_Parameter.m_SSH.m_Net;
145 case CParameterFileTransfer::Protocol::FTP:
146 pNet = &m_Parameter.m_Net;
149 if(!pNet->GetHost().isEmpty()) {
153 szName += pNet->GetHost()
154 +
":" + QString::number(pNet->GetPort());
163 QString szDescription;
164 if(!
Name().isEmpty())
165 szDescription = tr(
"Name: ") +
Name() +
"\n";
168 szDescription += tr(
"Type: ") +
GetTypeName() +
"\n";
171 szDescription += tr(
"Protocol: ") +
Protocol();
173 if(!
GetPlugin()->DisplayName().isEmpty())
176 szDescription +=
"\n";
179 auto &net = m_Parameter.m_Net;
180 if(!net.GetHost().isEmpty())
181 szDescription += tr(
"Server address: ") + net.GetHost()
182 +
":" + QString::number(net.GetPort()) +
"\n";
184 if(GetSecurityLevel() != SecurityLevel::No)
185 szDescription += tr(
"Security level: ") + GetSecurityLevelString() +
"\n";
190 return szDescription;
195 switch(m_Parameter.GetProtocol()) {
196 case CParameterFileTransfer::Protocol::FTP:
198 case CParameterFileTransfer::Protocol::SFTP:
208 switch(m_Parameter.GetProtocol()) {
209 case CParameterFileTransfer::Protocol::SFTP:
210 pNet = &m_Parameter.m_SSH.m_Net;
212 case CParameterFileTransfer::Protocol::FTP:
213 pNet = &m_Parameter.m_Net;
218 if(pNet && !pNet->GetHost().isEmpty())
219 szId +=
"_" + pNet->GetHost()
220 +
"_" + QString::number(pNet->GetPort());
222 static QRegularExpression exp(
"[-@:/#%!^&* \\.]");
223 szId = szId.replace(exp,
"_");
227void COperateFileTransfer::slotCopyUrlToClipboard(
const QString &szPath)
232 if(m_Parameter.GetProtocol() == CParameterFileTransfer::Protocol::SFTP) {
233 pNet = &m_Parameter.m_SSH.m_Net;
234 if(pNet->GetHost().isEmpty()) {
237 url.setScheme(
"sftp");
239 if(m_Parameter.GetProtocol() == CParameterFileTransfer::Protocol::FTP) {
240 pNet = &m_Parameter.m_Net;
241 if(pNet->GetHost().isEmpty()) {
244 url.setScheme(
"ftp");
247 url.setUserName(pNet->
m_User.GetUser());
249 url.setHost(pNet->GetHost());
250 url.setPort(pNet->GetPort());
251 QClipboard* pClipboard = QApplication::clipboard();
252 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 SetGlobalParameters(CParameterPlugin *pPara)=0
Apply the global parameters of the plug-in.
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.