qml ui fixes

This commit is contained in:
pokamest 2021-09-19 14:31:38 +03:00
parent a390f2e988
commit 0d9f1ba95b
26 changed files with 168 additions and 103 deletions

View file

@ -13,10 +13,6 @@ ServerContainersLogic::ServerContainersLogic(UiLogic *logic, QObject *parent):
PageLogicBase(logic, parent),
m_progressBarProtocolsContainerReinstallValue{0},
m_progressBarProtocolsContainerReinstallMaximium{100},
m_pushButtonOpenVpnContInstallChecked{false},
m_pushButtonSsOpenVpnContInstallChecked{false},
m_pushButtonCloakOpenVpnContInstallChecked{false},
m_pushButtonWireguardContInstallChecked{false},
m_pushButtonOpenVpnContInstallEnabled{false},
m_pushButtonSsOpenVpnContInstallEnabled{false},
m_pushButtonCloakOpenVpnContInstallEnabled{false},
@ -71,12 +67,7 @@ void ServerContainersLogic::updateServerContainersPage()
using SetVisibleFunc = std::function<void(bool)>;
using SetCheckedFunc = std::function<void(bool)>;
using SetEnabledFunc = std::function<void(bool)>;
QList<SetCheckedFunc> installButtonsCheckedFunc {
[this](bool checked) ->void {set_pushButtonOpenVpnContInstallChecked(checked);},
[this](bool checked) ->void {set_pushButtonSsOpenVpnContInstallChecked(checked);},
[this](bool checked) ->void {set_pushButtonCloakOpenVpnContInstallChecked(checked);},
[this](bool checked) ->void {set_pushButtonWireguardContInstallChecked(checked);},
};
QList<SetEnabledFunc> installButtonsEnabledFunc {
[this](bool enabled) ->void {set_pushButtonOpenVpnContInstallEnabled(enabled);},
[this](bool enabled) ->void {set_pushButtonSsOpenVpnContInstallEnabled(enabled);},
@ -115,22 +106,33 @@ void ServerContainersLogic::updateServerContainersPage()
defaultButtonsCheckedFunc.at(i)(defaultContainer == allContainers.at(i));
defaultButtonsVisibleFunc.at(i)(haveAuthData && containers.contains(allContainers.at(i)));
shareButtonsVisibleFunc.at(i)(haveAuthData && containers.contains(allContainers.at(i)));
installButtonsCheckedFunc.at(i)(containers.contains(allContainers.at(i)));
installButtonsEnabledFunc.at(i)(haveAuthData);
framesVisibleFunc.at(i)(containers.contains(allContainers.at(i)));
}
}
void ServerContainersLogic::onPushButtonProtoSettingsClicked(amnezia::DockerContainer c, amnezia::Protocol p)
void ServerContainersLogic::onPushButtonProtoSettingsClicked(DockerContainer c, Protocol p)
{
qDebug()<< "ServerContainersLogic::onPushButtonProtoSettingsClicked" << c << p;
uiLogic()->selectedDockerContainer = c;
uiLogic()->protocolLogic(p)->updateProtocolPage(m_settings.protocolConfig(uiLogic()->selectedServerIndex, uiLogic()->selectedDockerContainer, p),
uiLogic()->selectedDockerContainer,
m_settings.haveAuthData(uiLogic()->selectedServerIndex));
emit uiLogic()->goToProtocolPage(static_cast<int>(p));
emit uiLogic()->goToProtocolPage(p);
}
void ServerContainersLogic::onPushButtonDefaultClicked(DockerContainer c)
{
m_settings.setDefaultContainer(uiLogic()->selectedServerIndex, c);
updateServerContainersPage();
}
void ServerContainersLogic::onPushButtonShareClicked(DockerContainer c)
{
uiLogic()->shareConnectionLogic()->updateSharingPage(uiLogic()->selectedServerIndex, m_settings.serverCredentials(uiLogic()->selectedServerIndex), c);
emit uiLogic()->goToPage(Page::ShareConnection);
}
void ServerContainersLogic::setupProtocolsPageConnections()
{
@ -146,21 +148,6 @@ void ServerContainersLogic::setupProtocolsPageConnections()
using ButtonClickedFunc = void (ServerContainersLogic::*)(bool);
using ButtonSetEnabledFunc = std::function<void(bool)>;
// default buttons
QList<ButtonClickedFunc> defaultButtonClickedSig {
&ServerContainersLogic::pushButtonOpenVpnContDefaultClicked,
&ServerContainersLogic::pushButtonSsOpenVpnContDefaultClicked,
&ServerContainersLogic::pushButtonCloakOpenVpnContDefaultClicked,
&ServerContainersLogic::pushButtonWireguardContDefaultClicked
};
for (int i = 0; i < containers.size(); ++i) {
connect(this, defaultButtonClickedSig.at(i), [this, containers, i](bool){
qDebug() << "clmm" << i;
m_settings.setDefaultContainer(uiLogic()->selectedServerIndex, containers.at(i));
updateServerContainersPage();
});
}
// install buttons
QList<ButtonClickedFunc> installButtonsClickedSig {
@ -253,7 +240,7 @@ void ServerContainersLogic::setupProtocolsPageConnections()
connect(this, buttonClickedFunc, [this, container](bool){
uiLogic()->shareConnectionLogic()->updateSharingPage(uiLogic()->selectedServerIndex, m_settings.serverCredentials(uiLogic()->selectedServerIndex), container);
uiLogic()->goToPage(Page::ShareConnection);
emit uiLogic()->goToPage(Page::ShareConnection);
});
}
}

View file

@ -12,26 +12,31 @@ class ServerContainersLogic : public PageLogicBase
AUTO_PROPERTY(int, progressBarProtocolsContainerReinstallValue)
AUTO_PROPERTY(int, progressBarProtocolsContainerReinstallMaximium)
AUTO_PROPERTY(bool, pushButtonOpenVpnContInstallChecked)
AUTO_PROPERTY(bool, pushButtonSsOpenVpnContInstallChecked)
AUTO_PROPERTY(bool, pushButtonCloakOpenVpnContInstallChecked)
AUTO_PROPERTY(bool, pushButtonWireguardContInstallChecked)
// AUTO_PROPERTY(bool, pushButtonOpenVpnContInstallChecked)
// AUTO_PROPERTY(bool, pushButtonSsOpenVpnContInstallChecked)
// AUTO_PROPERTY(bool, pushButtonCloakOpenVpnContInstallChecked)
// AUTO_PROPERTY(bool, pushButtonWireguardContInstallChecked)
AUTO_PROPERTY(bool, pushButtonOpenVpnContInstallEnabled)
AUTO_PROPERTY(bool, pushButtonSsOpenVpnContInstallEnabled)
AUTO_PROPERTY(bool, pushButtonCloakOpenVpnContInstallEnabled)
AUTO_PROPERTY(bool, pushButtonWireguardContInstallEnabled)
AUTO_PROPERTY(bool, pushButtonOpenVpnContDefaultChecked)
AUTO_PROPERTY(bool, pushButtonSsOpenVpnContDefaultChecked)
AUTO_PROPERTY(bool, pushButtonCloakOpenVpnContDefaultChecked)
AUTO_PROPERTY(bool, pushButtonWireguardContDefaultChecked)
AUTO_PROPERTY(bool, pushButtonOpenVpnContDefaultVisible)
AUTO_PROPERTY(bool, pushButtonSsOpenVpnContDefaultVisible)
AUTO_PROPERTY(bool, pushButtonCloakOpenVpnContDefaultVisible)
AUTO_PROPERTY(bool, pushButtonWireguardContDefaultVisible)
AUTO_PROPERTY(bool, pushButtonOpenVpnContShareVisible)
AUTO_PROPERTY(bool, pushButtonSsOpenVpnContShareVisible)
AUTO_PROPERTY(bool, pushButtonCloakOpenVpnContShareVisible)
AUTO_PROPERTY(bool, pushButtonWireguardContShareVisible)
AUTO_PROPERTY(bool, frameOpenvpnSettingsVisible)
AUTO_PROPERTY(bool, frameOpenvpnSsSettingsVisible)
AUTO_PROPERTY(bool, frameOpenvpnSsCloakSettingsVisible)
@ -42,7 +47,9 @@ class ServerContainersLogic : public PageLogicBase
public:
Q_INVOKABLE void updateServerContainersPage();
Q_INVOKABLE void onPushButtonProtoSettingsClicked(amnezia::DockerContainer c, amnezia::Protocol p);
Q_INVOKABLE void onPushButtonProtoSettingsClicked(DockerContainer c, Protocol p);
Q_INVOKABLE void onPushButtonDefaultClicked(DockerContainer c);
Q_INVOKABLE void onPushButtonShareClicked(DockerContainer c);
public:
explicit ServerContainersLogic(UiLogic *uiLogic, QObject *parent = nullptr);

View file

@ -156,7 +156,7 @@ void StartPageLogic::onPushButtonImport()
m_settings.addServer(o);
m_settings.setDefaultServer(m_settings.serversCount() - 1);
uiLogic()->setStartPage(Page::Vpn);
emit uiLogic()->setStartPage(Page::Vpn);
}
else {
qDebug() << "Failed to import profile";

View file

@ -11,7 +11,6 @@ CloakLogic::CloakLogic(UiLogic *logic, QObject *parent):
m_comboBoxProtoCloakCipherText{"chacha20-poly1305"},
m_lineEditProtoCloakSiteText{"tile.openstreetmap.org"},
m_lineEditProtoCloakPortText{},
m_widgetProtoCloakEnabled{false},
m_pushButtonCloakSaveVisible{false},
m_progressBarProtoCloakResetVisible{false},
m_lineEditProtoCloakPortEnabled{false},
@ -26,7 +25,7 @@ CloakLogic::CloakLogic(UiLogic *logic, QObject *parent):
void CloakLogic::updateProtocolPage(const QJsonObject &ckConfig, DockerContainer container, bool haveAuthData)
{
set_widgetProtoCloakEnabled(haveAuthData);
set_pageEnabled(haveAuthData);
set_pushButtonCloakSaveVisible(haveAuthData);
set_progressBarProtoCloakResetVisible(haveAuthData);

View file

@ -12,7 +12,6 @@ class CloakLogic : public PageProtocolLogicBase
AUTO_PROPERTY(QString, comboBoxProtoCloakCipherText)
AUTO_PROPERTY(QString, lineEditProtoCloakSiteText)
AUTO_PROPERTY(QString, lineEditProtoCloakPortText)
AUTO_PROPERTY(bool, widgetProtoCloakEnabled)
AUTO_PROPERTY(bool, pushButtonCloakSaveVisible)
AUTO_PROPERTY(bool, progressBarProtoCloakResetVisible)
AUTO_PROPERTY(bool, lineEditProtoCloakPortEnabled)

View file

@ -21,7 +21,6 @@ OpenVpnLogic::OpenVpnLogic(UiLogic *logic, QObject *parent):
m_checkBoxProtoOpenVpnBlockDnsChecked{false},
m_lineEditProtoOpenVpnPortText{},
m_checkBoxProtoOpenVpnTlsAuthChecked{false},
m_widgetProtoOpenVpnEnabled{true},
m_pushButtonOpenvpnSaveVisible{false},
m_progressBarProtoOpenVpnResetVisible{false},
@ -39,7 +38,7 @@ OpenVpnLogic::OpenVpnLogic(UiLogic *logic, QObject *parent):
void OpenVpnLogic::updateProtocolPage(const QJsonObject &openvpnConfig, DockerContainer container, bool haveAuthData)
{
qDebug() << "OpenVpnLogic::updateProtocolPage";
set_widgetProtoOpenVpnEnabled(haveAuthData);
set_pageEnabled(haveAuthData);
set_pushButtonOpenvpnSaveVisible(haveAuthData);
set_progressBarProtoOpenVpnResetVisible(haveAuthData);

View file

@ -23,7 +23,6 @@ class OpenVpnLogic : public PageProtocolLogicBase
AUTO_PROPERTY(QString, lineEditProtoOpenVpnPortText)
AUTO_PROPERTY(bool, checkBoxProtoOpenVpnTlsAuthChecked)
AUTO_PROPERTY(bool, widgetProtoOpenVpnEnabled)
AUTO_PROPERTY(bool, pushButtonOpenvpnSaveVisible)
AUTO_PROPERTY(bool, progressBarProtoOpenVpnResetVisible)

View file

@ -8,7 +8,6 @@ using namespace PageEnumNS;
ShadowSocksLogic::ShadowSocksLogic(UiLogic *logic, QObject *parent):
PageProtocolLogicBase(logic, parent),
m_widgetProtoShadowSocksEnabled{false},
m_comboBoxProtoShadowSocksCipherText{"chacha20-poly1305"},
m_lineEditProtoShadowSocksPortText{},
m_pushButtonShadowSocksSaveVisible{false},
@ -25,7 +24,7 @@ ShadowSocksLogic::ShadowSocksLogic(UiLogic *logic, QObject *parent):
void ShadowSocksLogic::updateProtocolPage(const QJsonObject &ssConfig, DockerContainer container, bool haveAuthData)
{
set_widgetProtoShadowSocksEnabled(haveAuthData);
set_pageEnabled(haveAuthData);
set_pushButtonShadowSocksSaveVisible(haveAuthData);
set_progressBarProtoShadowSocksResetVisible(haveAuthData);

View file

@ -9,7 +9,6 @@ class ShadowSocksLogic : public PageProtocolLogicBase
{
Q_OBJECT
AUTO_PROPERTY(bool, widgetProtoShadowSocksEnabled)
AUTO_PROPERTY(QString, comboBoxProtoShadowSocksCipherText)
AUTO_PROPERTY(QString, lineEditProtoShadowSocksPortText)
AUTO_PROPERTY(bool, pushButtonShadowSocksSaveVisible)