Поддержка протокола Sftp (File Sharing) по ТЗ по гранту от Теплицы
социальных технологий (2021 год) + небольшой рефакторинг
This commit is contained in:
parent
6ee203a21d
commit
3bcc12869b
45 changed files with 645 additions and 338 deletions
|
@ -16,7 +16,7 @@ AppSettingsLogic::AppSettingsLogic(UiLogic *logic, QObject *parent):
|
|||
|
||||
}
|
||||
|
||||
void AppSettingsLogic::updatePage()
|
||||
void AppSettingsLogic::onUpdatePage()
|
||||
{
|
||||
set_checkBoxAutostartChecked(Autostart::isAutostart());
|
||||
set_checkBoxAutoConnectChecked(m_settings.isAutoConnect());
|
||||
|
|
|
@ -14,7 +14,7 @@ class AppSettingsLogic : public PageLogicBase
|
|||
AUTO_PROPERTY(QString, labelVersionText)
|
||||
|
||||
public:
|
||||
Q_INVOKABLE void updatePage() override;
|
||||
Q_INVOKABLE void onUpdatePage() override;
|
||||
|
||||
Q_INVOKABLE void onCheckBoxAutostartToggled(bool checked);
|
||||
Q_INVOKABLE void onCheckBoxAutoconnectToggled(bool checked);
|
||||
|
|
|
@ -9,7 +9,7 @@ GeneralSettingsLogic::GeneralSettingsLogic(UiLogic *logic, QObject *parent):
|
|||
|
||||
}
|
||||
|
||||
void GeneralSettingsLogic::updatePage()
|
||||
void GeneralSettingsLogic::onUpdatePage()
|
||||
{
|
||||
set_pushButtonGeneralSettingsShareConnectionEnable(m_settings.haveAuthData(m_settings.defaultServerIndex()));
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ class GeneralSettingsLogic : public PageLogicBase
|
|||
AUTO_PROPERTY(bool, pushButtonGeneralSettingsShareConnectionEnable)
|
||||
|
||||
public:
|
||||
Q_INVOKABLE void updatePage() override;
|
||||
Q_INVOKABLE void onUpdatePage() override;
|
||||
Q_INVOKABLE void onPushButtonGeneralSettingsServerSettingsClicked();
|
||||
Q_INVOKABLE void onPushButtonGeneralSettingsShareConnectionClicked();
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ NetworkSettingsLogic::NetworkSettingsLogic(UiLogic *logic, QObject *parent):
|
|||
|
||||
}
|
||||
|
||||
void NetworkSettingsLogic::updatePage()
|
||||
void NetworkSettingsLogic::onUpdatePage()
|
||||
{
|
||||
set_lineEditDns1Text(m_settings.primaryDns());
|
||||
set_lineEditDns2Text(m_settings.secondaryDns());
|
||||
|
@ -35,13 +35,13 @@ void NetworkSettingsLogic::onLineEditDns2EditFinished(const QString &text)
|
|||
void NetworkSettingsLogic::onPushButtonResetDns1Clicked()
|
||||
{
|
||||
m_settings.setPrimaryDns(m_settings.cloudFlareNs1);
|
||||
updatePage();
|
||||
onUpdatePage();
|
||||
}
|
||||
|
||||
void NetworkSettingsLogic::onPushButtonResetDns2Clicked()
|
||||
{
|
||||
m_settings.setSecondaryDns(m_settings.cloudFlareNs2);
|
||||
updatePage();
|
||||
onUpdatePage();
|
||||
}
|
||||
|
||||
QString NetworkSettingsLogic::getIpAddressValidatorRegex() const
|
||||
|
|
|
@ -14,7 +14,7 @@ class NetworkSettingsLogic : public PageLogicBase
|
|||
READONLY_PROPERTY(QString, ipAddressValidatorRegex)
|
||||
|
||||
public:
|
||||
Q_INVOKABLE void updatePage() override;
|
||||
Q_INVOKABLE void onUpdatePage() override;
|
||||
|
||||
Q_INVOKABLE void onLineEditDns1EditFinished(const QString& text);
|
||||
Q_INVOKABLE void onLineEditDns2EditFinished(const QString& text);
|
||||
|
|
|
@ -9,7 +9,7 @@ NewServerProtocolsLogic::NewServerProtocolsLogic(UiLogic *logic, QObject *parent
|
|||
}
|
||||
|
||||
|
||||
void NewServerProtocolsLogic::updatePage()
|
||||
void NewServerProtocolsLogic::onUpdatePage()
|
||||
{
|
||||
set_progressBarConnectionMinimum(0);
|
||||
set_progressBarConnectionMaximum(300);
|
||||
|
|
|
@ -13,7 +13,7 @@ class NewServerProtocolsLogic : public PageLogicBase
|
|||
AUTO_PROPERTY(double, progressBarConnectionMaximum)
|
||||
|
||||
public:
|
||||
Q_INVOKABLE void updatePage() override;
|
||||
Q_INVOKABLE void onUpdatePage() override;
|
||||
Q_INVOKABLE void onPushButtonConfigureClicked(DockerContainer c, int port, TransportProto tp);
|
||||
|
||||
public:
|
||||
|
|
|
@ -19,7 +19,7 @@ public:
|
|||
explicit PageLogicBase(UiLogic *uiLogic, QObject *parent = nullptr);
|
||||
~PageLogicBase() = default;
|
||||
|
||||
Q_INVOKABLE virtual void updatePage() {}
|
||||
Q_INVOKABLE virtual void onUpdatePage() {}
|
||||
|
||||
protected:
|
||||
UiLogic *uiLogic() const { return m_uiLogic; }
|
||||
|
@ -27,5 +27,7 @@ protected:
|
|||
Settings m_settings;
|
||||
UiLogic *m_uiLogic;
|
||||
|
||||
signals:
|
||||
void updatePage();
|
||||
};
|
||||
#endif // PAGE_LOGIC_BASE_H
|
||||
|
|
|
@ -18,13 +18,15 @@ ServerContainersLogic::ServerContainersLogic(UiLogic *logic, QObject *parent):
|
|||
{
|
||||
}
|
||||
|
||||
void ServerContainersLogic::updateServerContainersPage()
|
||||
void ServerContainersLogic::onUpdatePage()
|
||||
{
|
||||
ContainersModel *c_model = qobject_cast<ContainersModel *>(uiLogic()->containersModel());
|
||||
c_model->setSelectedServerIndex(uiLogic()->selectedServerIndex);
|
||||
|
||||
ProtocolsModel *p_model = qobject_cast<ProtocolsModel *>(uiLogic()->protocolsModel());
|
||||
p_model->setSelectedServerIndex(uiLogic()->selectedServerIndex);
|
||||
|
||||
emit updatePage();
|
||||
}
|
||||
|
||||
void ServerContainersLogic::onPushButtonProtoSettingsClicked(DockerContainer c, Protocol p)
|
||||
|
@ -41,7 +43,7 @@ void ServerContainersLogic::onPushButtonProtoSettingsClicked(DockerContainer c,
|
|||
void ServerContainersLogic::onPushButtonDefaultClicked(DockerContainer c)
|
||||
{
|
||||
m_settings.setDefaultContainer(uiLogic()->selectedServerIndex, c);
|
||||
updateServerContainersPage();
|
||||
onUpdatePage();
|
||||
}
|
||||
|
||||
void ServerContainersLogic::onPushButtonShareClicked(DockerContainer c)
|
||||
|
@ -62,23 +64,12 @@ void ServerContainersLogic::onPushButtonRemoveClicked(DockerContainer container)
|
|||
if (c.isEmpty()) m_settings.setDefaultContainer(uiLogic()->selectedServerIndex, DockerContainer::None);
|
||||
else m_settings.setDefaultContainer(uiLogic()->selectedServerIndex, c.keys().first());
|
||||
}
|
||||
updateServerContainersPage();
|
||||
onUpdatePage();
|
||||
}
|
||||
|
||||
void ServerContainersLogic::onPushButtonContinueClicked(DockerContainer c, int port, TransportProto tp)
|
||||
{
|
||||
QMap<DockerContainer, QJsonObject> containers;
|
||||
Protocol mainProto = ContainerProps::defaultProtocol(c);
|
||||
|
||||
QJsonObject config {
|
||||
{ config_key::container, ContainerProps::containerToString(c) },
|
||||
{ ProtocolProps::protoToString(mainProto), QJsonObject {
|
||||
{ config_key::port, QString::number(port) },
|
||||
{ config_key::transport_proto, ProtocolProps::transportProtoToString(tp, mainProto) }}
|
||||
}
|
||||
};
|
||||
|
||||
containers.insert(c, config);
|
||||
QJsonObject config = ServerController::createContainerInitialConfig(c, port, tp);
|
||||
|
||||
emit uiLogic()->goToPage(Page::ServerConfiguringProgress);
|
||||
qApp->processEvents();
|
||||
|
@ -88,10 +79,12 @@ void ServerContainersLogic::onPushButtonContinueClicked(DockerContainer c, int p
|
|||
});
|
||||
|
||||
if (!e) {
|
||||
m_settings.setContainerConfig(uiLogic()->selectedServerIndex, c, QJsonObject());
|
||||
m_settings.setDefaultContainer(uiLogic()->selectedServerIndex, c);
|
||||
m_settings.setContainerConfig(uiLogic()->selectedServerIndex, c, config);
|
||||
if (ContainerProps::containerService(c) == ServiceType::Vpn) {
|
||||
m_settings.setDefaultContainer(uiLogic()->selectedServerIndex, c);
|
||||
}
|
||||
}
|
||||
|
||||
updateServerContainersPage();
|
||||
onUpdatePage();
|
||||
emit uiLogic()->closePage();
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ class ServerContainersLogic : public PageLogicBase
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Q_INVOKABLE void updateServerContainersPage();
|
||||
Q_INVOKABLE void onUpdatePage() override;
|
||||
|
||||
Q_INVOKABLE void onPushButtonProtoSettingsClicked(DockerContainer c, Protocol p);
|
||||
Q_INVOKABLE void onPushButtonDefaultClicked(DockerContainer c);
|
||||
|
|
|
@ -14,7 +14,7 @@ ServerListLogic::ServerListLogic(UiLogic *logic, QObject *parent):
|
|||
void ServerListLogic::onServerListPushbuttonDefaultClicked(int index)
|
||||
{
|
||||
m_settings.setDefaultServer(index);
|
||||
updatePage();
|
||||
onUpdatePage();
|
||||
}
|
||||
|
||||
void ServerListLogic::onServerListPushbuttonSettingsClicked(int index)
|
||||
|
@ -23,7 +23,7 @@ void ServerListLogic::onServerListPushbuttonSettingsClicked(int index)
|
|||
uiLogic()->goToPage(Page::ServerSettings);
|
||||
}
|
||||
|
||||
void ServerListLogic::updatePage()
|
||||
void ServerListLogic::onUpdatePage()
|
||||
{
|
||||
const QJsonArray &servers = m_settings.serversArray();
|
||||
int defaultServer = m_settings.defaultServerIndex();
|
||||
|
|
|
@ -12,7 +12,7 @@ class ServerListLogic : public PageLogicBase
|
|||
READONLY_PROPERTY(QObject *, serverListModel)
|
||||
|
||||
public:
|
||||
Q_INVOKABLE void updatePage() override;
|
||||
Q_INVOKABLE void onUpdatePage() override;
|
||||
Q_INVOKABLE void onServerListPushbuttonDefaultClicked(int index);
|
||||
Q_INVOKABLE void onServerListPushbuttonSettingsClicked(int index);
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ ServerSettingsLogic::ServerSettingsLogic(UiLogic *logic, QObject *parent):
|
|||
|
||||
}
|
||||
|
||||
void ServerSettingsLogic::updatePage()
|
||||
void ServerSettingsLogic::onUpdatePage()
|
||||
{
|
||||
set_labelWaitInfoVisible(false);
|
||||
set_labelWaitInfoText("");
|
||||
|
@ -91,7 +91,7 @@ void ServerSettingsLogic::onPushButtonForgetServer()
|
|||
|
||||
uiLogic()->selectedServerIndex = -1;
|
||||
|
||||
uiLogic()->serverListLogic()->updatePage();
|
||||
uiLogic()->serverListLogic()->onUpdatePage();
|
||||
|
||||
if (m_settings.serversCount() == 0) {
|
||||
uiLogic()->setStartPage(Page::Start);
|
||||
|
@ -121,7 +121,7 @@ void ServerSettingsLogic::onLineEditDescriptionEditingFinished()
|
|||
QJsonObject server = m_settings.server(uiLogic()->selectedServerIndex);
|
||||
server.insert(config_key::description, newText);
|
||||
m_settings.editServer(uiLogic()->selectedServerIndex, server);
|
||||
uiLogic()->serverListLogic()->updatePage();
|
||||
uiLogic()->serverListLogic()->onUpdatePage();
|
||||
}
|
||||
|
||||
void ServerSettingsLogic::onPushButtonShareFullClicked()
|
||||
|
|
|
@ -21,7 +21,7 @@ class ServerSettingsLogic : public PageLogicBase
|
|||
AUTO_PROPERTY(QString, labelCurrentVpnProtocolText)
|
||||
|
||||
public:
|
||||
Q_INVOKABLE void updatePage() override;
|
||||
Q_INVOKABLE void onUpdatePage() override;
|
||||
|
||||
Q_INVOKABLE void onPushButtonClearServer();
|
||||
Q_INVOKABLE void onPushButtonForgetServer();
|
||||
|
|
|
@ -21,7 +21,7 @@ StartPageLogic::StartPageLogic(UiLogic *logic, QObject *parent):
|
|||
|
||||
}
|
||||
|
||||
void StartPageLogic::updatePage()
|
||||
void StartPageLogic::onUpdatePage()
|
||||
{
|
||||
set_lineEditStartExistingCodeText("");
|
||||
set_textEditSshKeyText("");
|
||||
|
|
|
@ -23,7 +23,7 @@ class StartPageLogic : public PageLogicBase
|
|||
AUTO_PROPERTY(bool, pushButtonConnectVisible)
|
||||
|
||||
public:
|
||||
Q_INVOKABLE void updatePage() override;
|
||||
Q_INVOKABLE void onUpdatePage() override;
|
||||
|
||||
Q_INVOKABLE void onPushButtonConnect();
|
||||
Q_INVOKABLE void onPushButtonImport();
|
||||
|
|
|
@ -12,7 +12,7 @@ WizardLogic::WizardLogic(UiLogic *logic, QObject *parent):
|
|||
|
||||
}
|
||||
|
||||
void WizardLogic::updatePage()
|
||||
void WizardLogic::onUpdatePage()
|
||||
{
|
||||
set_lineEditHighWebsiteMaskingText(protocols::cloak::defaultRedirSite);
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ class WizardLogic : public PageLogicBase
|
|||
AUTO_PROPERTY(QString, lineEditHighWebsiteMaskingText)
|
||||
|
||||
public:
|
||||
Q_INVOKABLE void updatePage() override;
|
||||
Q_INVOKABLE void onUpdatePage() override;
|
||||
Q_INVOKABLE void onPushButtonVpnModeFinishClicked();
|
||||
Q_INVOKABLE void onPushButtonLowFinishClicked();
|
||||
|
||||
|
|
30
client/ui/pages_logic/protocols/OtherProtocolsLogic.cpp
Normal file
30
client/ui/pages_logic/protocols/OtherProtocolsLogic.cpp
Normal file
|
@ -0,0 +1,30 @@
|
|||
#include "OtherProtocolsLogic.h"
|
||||
#include "core/servercontroller.h"
|
||||
#include <functional>
|
||||
#include "../../uilogic.h"
|
||||
|
||||
using namespace amnezia;
|
||||
using namespace PageEnumNS;
|
||||
|
||||
OtherProtocolsLogic::OtherProtocolsLogic(UiLogic *logic, QObject *parent):
|
||||
PageProtocolLogicBase(logic, parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void OtherProtocolsLogic::updateProtocolPage(const QJsonObject &config, DockerContainer container, bool haveAuthData)
|
||||
{
|
||||
set_labelTftpUserNameText(config.value(config_key::userName).toString());
|
||||
set_labelTftpPasswordText(config.value(config_key::password).toString(protocols::sftp::defaultUserName));
|
||||
set_labelTftpPortText(config.value(config_key::port).toString(protocols::sftp::defaultUserName));
|
||||
}
|
||||
|
||||
//QJsonObject OtherProtocolsLogic::getProtocolConfigFromPage(QJsonObject oldConfig)
|
||||
//{
|
||||
|
||||
//}
|
||||
|
||||
void OtherProtocolsLogic::onPushButtonProtoShadowSocksSaveClicked()
|
||||
{
|
||||
|
||||
}
|
31
client/ui/pages_logic/protocols/OtherProtocolsLogic.h
Normal file
31
client/ui/pages_logic/protocols/OtherProtocolsLogic.h
Normal file
|
@ -0,0 +1,31 @@
|
|||
#ifndef OTHER_PROTOCOLS_LOGIC_H
|
||||
#define OTHER_PROTOCOLS_LOGIC_H
|
||||
|
||||
#include "PageProtocolLogicBase.h"
|
||||
|
||||
class UiLogic;
|
||||
|
||||
class OtherProtocolsLogic : public PageProtocolLogicBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
AUTO_PROPERTY(QString, labelTftpUserNameText)
|
||||
AUTO_PROPERTY(QString, labelTftpPasswordText)
|
||||
AUTO_PROPERTY(QString, labelTftpPortText)
|
||||
|
||||
public:
|
||||
Q_INVOKABLE void onPushButtonProtoShadowSocksSaveClicked();
|
||||
|
||||
public:
|
||||
explicit OtherProtocolsLogic(UiLogic *uiLogic, QObject *parent = nullptr);
|
||||
~OtherProtocolsLogic() = default;
|
||||
|
||||
void updateProtocolPage(const QJsonObject &config, DockerContainer container, bool haveAuthData) override;
|
||||
//QJsonObject getProtocolConfigFromPage(QJsonObject oldConfig) override;
|
||||
|
||||
private:
|
||||
Settings m_settings;
|
||||
UiLogic *m_uiLogic;
|
||||
|
||||
};
|
||||
#endif // OTHER_PROTOCOLS_LOGIC_H
|
Loading…
Add table
Add a link
Reference in a new issue