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;
45const qint16 COperateFileTransfer::Version()
const
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,
70 SIGNAL(sigCopyUrlToClipboard(
const QString&)),
71 this, SLOT(slotCopyUrlToClipboard(
const QString&)));
81 if(m_frmFileTransfer) {
82 m_frmFileTransfer->deleteLater();
83 m_frmFileTransfer =
nullptr;
94 qCritical(log) <<
"new CBackendThread fail";
115 return 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()) {
152 szName = Protocol() +
":";
153 szName += pNet->GetHost()
154 +
":" + QString::number(pNet->GetPort());
163 QString szDescription;
164 if(!
Name().isEmpty())
165 szDescription = tr(
"Name: ") +
Name() +
"\n";
167 if(!GetTypeName().isEmpty())
168 szDescription += tr(
"Type: ") + GetTypeName() +
"\n";
170 if(!Protocol().isEmpty()) {
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";
185 szDescription += tr(
"Security level: ") + GetSecurityLevelString() +
"\n";
190 return szDescription;
193const QString COperateFileTransfer::Protocol()
const
195 switch(m_Parameter.GetProtocol()) {
196 case CParameterFileTransfer::Protocol::FTP:
198 case CParameterFileTransfer::Protocol::SFTP:
204const QString COperateFileTransfer::Id()
206 QString szId = COperate::Id();
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 int Stop() override
Stop.
virtual int Initial() override
Initial parameters and resource.
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 CSecurityLevel::Levels GetSecurityLevel() const
Get Security Level.
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.
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.