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.