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.SetPluginParameters(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()) {
151 && m_Parameter.
GetPluginParameters()->GetNameStyles() == CParameterPlugin::NameStyle::Protocol)
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";
186 szDescription += tr(
"Security level: ");
187 if(!sl.GetUnicodeIcon().isEmpty())
188 szDescription += sl.GetUnicodeIcon() +
" ";
189 szDescription += sl.GetString() +
"\n";
195 return szDescription;
198const QString COperateFileTransfer::Protocol()
const
200 switch(m_Parameter.GetProtocol()) {
201 case CParameterFileTransfer::Protocol::FTP:
203 case CParameterFileTransfer::Protocol::SFTP:
209const QString COperateFileTransfer::Id()
211 QString szId = COperate::Id();
213 switch(m_Parameter.GetProtocol()) {
214 case CParameterFileTransfer::Protocol::SFTP:
215 pNet = &m_Parameter.m_SSH.m_Net;
217 case CParameterFileTransfer::Protocol::FTP:
218 pNet = &m_Parameter.m_Net;
223 if(pNet && !pNet->GetHost().isEmpty())
224 szId +=
"_" + pNet->GetHost()
225 +
"_" + QString::number(pNet->GetPort());
227 static QRegularExpression exp(
"[-@:/#%!^&* \\.]");
228 szId = szId.replace(exp,
"_");
232void COperateFileTransfer::slotCopyUrlToClipboard(
const QString &szPath)
237 if(m_Parameter.GetProtocol() == CParameterFileTransfer::Protocol::SFTP) {
238 pNet = &m_Parameter.m_SSH.m_Net;
239 if(pNet->GetHost().isEmpty()) {
242 url.setScheme(
"sftp");
244 if(m_Parameter.GetProtocol() == CParameterFileTransfer::Protocol::FTP) {
245 pNet = &m_Parameter.m_Net;
246 if(pNet->GetHost().isEmpty()) {
249 url.setScheme(
"ftp");
252 url.setUserName(pNet->
m_User.GetUser());
254 url.setHost(pNet->GetHost());
255 url.setPort(pNet->GetPort());
256 QClipboard* pClipboard = QApplication::clipboard();
257 pClipboard->setText(url.toString());
File transfer operate interface.
virtual int Stop() override
Stop.
virtual int Initial() override
Initial parameters and resource.
virtual int SetPluginParameters(CParameterPlugin *pPara) override
Apply the parameters of the plug-in.
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 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 * GetPluginParameters()
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.