start page refact

This commit is contained in:
Pokamest Nikak 2021-09-04 12:53:58 +03:00
parent ca3617aa7d
commit 6dc13b2c00
8 changed files with 538 additions and 432 deletions

View file

@ -64,18 +64,6 @@ UiLogic::UiLogic(QObject *parent) :
m_comboBoxNewServerSsCipherText{"chacha20-ietf-poly1305"},
m_lineEditNewServerOpenvpnPortText{},
m_comboBoxNewServerOpenvpnProtoText{"udp"},
m_pushButtonNewServerConnectKeyChecked{false},
m_lineEditStartExistingCodeText{},
m_textEditNewServerSshKeyText{},
m_lineEditNewServerIpText{},
m_lineEditNewServerPasswordText{},
m_lineEditNewServerLoginText{},
m_labelNewServerWaitInfoVisible{true},
m_labelNewServerWaitInfoText{},
m_progressBarNewServerConnectionMinimum{0},
m_progressBarNewServerConnectionMaximum{100},
m_pushButtonBackFromStartVisible{true},
m_pushButtonNewServerConnectVisible{true},
m_radioButtonVpnModeAllSitesChecked{true},
m_radioButtonVpnModeForwardSitesChecked{false},
m_radioButtonVpnModeExceptSitesChecked{false},
@ -153,8 +141,6 @@ UiLogic::UiLogic(QObject *parent) :
m_pushButtonConnectEnabled{false},
m_widgetVpnModeEnabled{false},
m_labelErrorText{tr("Error text")},
m_pushButtonNewServerConnectEnabled{},
m_pushButtonNewServerConnectText{tr("Connect")},
m_dialogConnectErrorText{},
m_pageNewServerConfiguringEnabled{true},
m_labelNewServerConfiguringWaitInfoVisible{true},
@ -334,18 +320,7 @@ void UiLogic::updateNewServerProtocolsPage()
setComboBoxNewServerOpenvpnProtoText(amnezia::protocols::openvpn::defaultTransportProto);
}
bool UiLogic::getPushButtonNewServerConnectKeyChecked() const
{
return m_pushButtonNewServerConnectKeyChecked;
}
void UiLogic::setPushButtonNewServerConnectKeyChecked(bool pushButtonNewServerConnectKeyChecked)
{
if (m_pushButtonNewServerConnectKeyChecked != pushButtonNewServerConnectKeyChecked) {
m_pushButtonNewServerConnectKeyChecked = pushButtonNewServerConnectKeyChecked;
emit pushButtonNewServerConnectKeyCheckedChanged();
}
}
QString UiLogic::getComboBoxNewServerOpenvpnProtoText() const
{
@ -489,148 +464,10 @@ void UiLogic::setLineEditSetupWizardHighWebsiteMaskingText(const QString &lineEd
emit lineEditSetupWizardHighWebsiteMaskingTextChanged();
}
}
QString UiLogic::getLineEditStartExistingCodeText() const
{
return m_lineEditStartExistingCodeText;
}
void UiLogic::setLineEditStartExistingCodeText(const QString &lineEditStartExistingCodeText)
{
if (m_lineEditStartExistingCodeText != lineEditStartExistingCodeText) {
m_lineEditStartExistingCodeText = lineEditStartExistingCodeText;
emit lineEditStartExistingCodeTextChanged();
}
}
QString UiLogic::getTextEditNewServerSshKeyText() const
{
return m_textEditNewServerSshKeyText;
}
void UiLogic::setTextEditNewServerSshKeyText(const QString &textEditNewServerSshKeyText)
{
if (m_textEditNewServerSshKeyText != textEditNewServerSshKeyText) {
m_textEditNewServerSshKeyText = textEditNewServerSshKeyText;
emit textEditNewServerSshKeyTextChanged();
}
}
QString UiLogic::getLineEditNewServerIpText() const
{
return m_lineEditNewServerIpText;
}
void UiLogic::setLineEditNewServerIpText(const QString &lineEditNewServerIpText)
{
if (m_lineEditNewServerIpText != lineEditNewServerIpText) {
m_lineEditNewServerIpText = lineEditNewServerIpText;
emit lineEditNewServerIpTextChanged();
}
}
QString UiLogic::getLineEditNewServerPasswordText() const
{
return m_lineEditNewServerPasswordText;
}
void UiLogic::setLineEditNewServerPasswordText(const QString &lineEditNewServerPasswordText)
{
if (m_lineEditNewServerPasswordText != lineEditNewServerPasswordText) {
m_lineEditNewServerPasswordText = lineEditNewServerPasswordText;
emit lineEditNewServerPasswordTextChanged();
}
}
QString UiLogic::getLineEditNewServerLoginText() const
{
return m_lineEditNewServerLoginText;
}
void UiLogic::setLineEditNewServerLoginText(const QString &lineEditNewServerLoginText)
{
if (m_lineEditNewServerLoginText != lineEditNewServerLoginText) {
m_lineEditNewServerLoginText = lineEditNewServerLoginText;
emit lineEditNewServerLoginTextChanged();
}
}
bool UiLogic::getLabelNewServerWaitInfoVisible() const
{
return m_labelNewServerWaitInfoVisible;
}
void UiLogic::setLabelNewServerWaitInfoVisible(bool labelNewServerWaitInfoVisible)
{
if (m_labelNewServerWaitInfoVisible != labelNewServerWaitInfoVisible) {
m_labelNewServerWaitInfoVisible = labelNewServerWaitInfoVisible;
emit labelNewServerWaitInfoVisibleChanged();
}
}
QString UiLogic::getLabelNewServerWaitInfoText() const
{
return m_labelNewServerWaitInfoText;
}
void UiLogic::setLabelNewServerWaitInfoText(const QString &labelNewServerWaitInfoText)
{
if (m_labelNewServerWaitInfoText != labelNewServerWaitInfoText) {
m_labelNewServerWaitInfoText = labelNewServerWaitInfoText;
emit labelNewServerWaitInfoTextChanged();
}
}
double UiLogic::getProgressBarNewServerConnectionMinimum() const
{
return m_progressBarNewServerConnectionMinimum;
}
void UiLogic::setProgressBarNewServerConnectionMinimum(double progressBarNewServerConnectionMinimum)
{
if (m_progressBarNewServerConnectionMinimum != progressBarNewServerConnectionMinimum) {
m_progressBarNewServerConnectionMinimum = progressBarNewServerConnectionMinimum;
emit progressBarNewServerConnectionMinimumChanged();
}
}
double UiLogic::getProgressBarNewServerConnectionMaximum() const
{
return m_progressBarNewServerConnectionMaximum;
}
void UiLogic::setProgressBarNewServerConnectionMaximum(double progressBarNewServerConnectionMaximum)
{
if (m_progressBarNewServerConnectionMaximum != progressBarNewServerConnectionMaximum) {
m_progressBarNewServerConnectionMaximum = progressBarNewServerConnectionMaximum;
emit progressBarNewServerConnectionMaximumChanged();
}
}
bool UiLogic::getPushButtonBackFromStartVisible() const
{
return m_pushButtonBackFromStartVisible;
}
void UiLogic::setPushButtonBackFromStartVisible(bool pushButtonBackFromStartVisible)
{
if (m_pushButtonBackFromStartVisible != pushButtonBackFromStartVisible) {
m_pushButtonBackFromStartVisible = pushButtonBackFromStartVisible;
emit pushButtonBackFromStartVisibleChanged();
}
}
bool UiLogic::getPushButtonNewServerConnectVisible() const
{
return m_pushButtonNewServerConnectVisible;
}
void UiLogic::setPushButtonNewServerConnectVisible(bool pushButtonNewServerConnectVisible)
{
if (m_pushButtonNewServerConnectVisible != pushButtonNewServerConnectVisible) {
m_pushButtonNewServerConnectVisible = pushButtonNewServerConnectVisible;
emit pushButtonNewServerConnectVisibleChanged();
}
}
bool UiLogic::getRadioButtonVpnModeAllSitesChecked() const
{
@ -1588,31 +1425,7 @@ void UiLogic::setLabelErrorText(const QString &labelErrorText)
}
}
bool UiLogic::getPushButtonNewServerConnectEnabled() const
{
return m_pushButtonNewServerConnectEnabled;
}
void UiLogic::setPushButtonNewServerConnectEnabled(bool pushButtonNewServerConnectEnabled)
{
if (m_pushButtonNewServerConnectEnabled != pushButtonNewServerConnectEnabled) {
m_pushButtonNewServerConnectEnabled = pushButtonNewServerConnectEnabled;
emit pushButtonNewServerConnectEnabledChanged();
}
}
QString UiLogic::getPushButtonNewServerConnectText() const
{
return m_pushButtonNewServerConnectText;
}
void UiLogic::setPushButtonNewServerConnectText(const QString &pushButtonNewServerConnectText)
{
if (m_pushButtonNewServerConnectText != pushButtonNewServerConnectText) {
m_pushButtonNewServerConnectText = pushButtonNewServerConnectText;
emit pushButtonNewServerConnectTextChanged();
}
}
QString UiLogic::getDialogConnectErrorText() const
{
return m_dialogConnectErrorText;
@ -2104,81 +1917,6 @@ void UiLogic::onCloseWindow()
//#endif
//}
void UiLogic::onPushButtonNewServerConnect()
{
if (getPushButtonNewServerConnectKeyChecked()){
if (getLineEditNewServerIpText().isEmpty() ||
getLineEditNewServerLoginText().isEmpty() ||
getTextEditNewServerSshKeyText().isEmpty() ) {
setLabelNewServerWaitInfoText(tr("Please fill in all fields"));
return;
}
}
else {
if (getLineEditNewServerIpText().isEmpty() ||
getLineEditNewServerLoginText().isEmpty() ||
getLineEditNewServerPasswordText().isEmpty() ) {
setLabelNewServerWaitInfoText(tr("Please fill in all fields"));
return;
}
}
qDebug() << "UiLogic::onPushButtonNewServerConnect checking new server";
ServerCredentials serverCredentials;
serverCredentials.hostName = getLineEditNewServerIpText();
if (serverCredentials.hostName.contains(":")) {
serverCredentials.port = serverCredentials.hostName.split(":").at(1).toInt();
serverCredentials.hostName = serverCredentials.hostName.split(":").at(0);
}
serverCredentials.userName = getLineEditNewServerLoginText();
if (getPushButtonNewServerConnectKeyChecked()){
QString key = getTextEditNewServerSshKeyText();
if (key.startsWith("ssh-rsa")) {
emit showPublicKeyWarning();
return;
}
if (key.contains("OPENSSH") && key.contains("BEGIN") && key.contains("PRIVATE KEY")) {
key = SshConfigurator::convertOpenSShKey(key);
}
serverCredentials.password = key;
}
else {
serverCredentials.password = getLineEditNewServerPasswordText();
}
setPushButtonNewServerConnectEnabled(false);
setPushButtonNewServerConnectText(tr("Connecting..."));
ErrorCode e = ErrorCode::NoError;
#ifdef Q_DEBUG
//QString output = ServerController::checkSshConnection(serverCredentials, &e);
#else
QString output;
#endif
bool ok = true;
if (e) {
setLabelNewServerWaitInfoVisible(true);
setLabelNewServerWaitInfoText(errorString(e));
ok = false;
}
else {
if (output.contains("Please login as the user")) {
output.replace("\n", "");
setLabelNewServerWaitInfoVisible(true);
setLabelNewServerWaitInfoText(output);
ok = false;
}
}
setPushButtonNewServerConnectEnabled(true);
setPushButtonNewServerConnectText(tr("Connect"));
installCredentials = serverCredentials;
if (ok) goToPage(Page::NewServer);
}
QMap<DockerContainer, QJsonObject> UiLogic::getInstallConfigsFromProtocolsPage() const
{
@ -2326,62 +2064,6 @@ void UiLogic::installServer(const QMap<DockerContainer, QJsonObject> &containers
}
}
void UiLogic::onPushButtonNewServerImport()
{
QString s = getLineEditStartExistingCodeText();
s.replace("vpn://", "");
QJsonObject o = QJsonDocument::fromJson(QByteArray::fromBase64(s.toUtf8(), QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals)).object();
ServerCredentials credentials;
credentials.hostName = o.value("h").toString();
if (credentials.hostName.isEmpty()) credentials.hostName = o.value(config_key::hostName).toString();
credentials.port = o.value("p").toInt();
if (credentials.port == 0) credentials.port = o.value(config_key::port).toInt();
credentials.userName = o.value("u").toString();
if (credentials.userName.isEmpty()) credentials.userName = o.value(config_key::userName).toString();
credentials.password = o.value("w").toString();
if (credentials.password.isEmpty()) credentials.password = o.value(config_key::password).toString();
if (credentials.isValid()) {
o.insert(config_key::hostName, credentials.hostName);
o.insert(config_key::port, credentials.port);
o.insert(config_key::userName, credentials.userName);
o.insert(config_key::password, credentials.password);
o.remove("h");
o.remove("p");
o.remove("u");
o.remove("w");
}
qDebug() << QString("Added server %3@%1:%2").
arg(credentials.hostName).
arg(credentials.port).
arg(credentials.userName);
//qDebug() << QString("Password") << credentials.password;
if (credentials.isValid() || o.contains(config_key::containers)) {
m_settings.addServer(o);
m_settings.setDefaultServer(m_settings.serversCount() - 1);
setStartPage(Page::Vpn);
}
else {
qDebug() << "Failed to import profile";
qDebug().noquote() << QJsonDocument(o).toJson();
return;
}
if (!o.contains(config_key::containers)) {
selectedServerIndex = m_settings.defaultServerIndex();
selectedDockerContainer = m_settings.defaultContainer(selectedServerIndex);
goToPage(Page::ServerVpnProtocols);
}
}
bool UiLogic::installContainers(ServerCredentials credentials,
const QMap<DockerContainer, QJsonObject> &containers,
const PageFunc &page,
@ -3086,23 +2768,6 @@ void UiLogic::onPushButtonProtoCloakSaveClicked()
qDebug() << "Protocol saved with code:" << e << "for" << selectedServerIndex << selectedDockerContainer;
}
void UiLogic::updateStartPage()
{
setLineEditStartExistingCodeText("");
setTextEditNewServerSshKeyText("");
setLineEditNewServerIpText("");
setLineEditNewServerPasswordText("");
setTextEditNewServerSshKeyText("");
setLineEditNewServerLoginText("");
setLabelNewServerWaitInfoVisible(false);
setLabelNewServerWaitInfoText("");
setProgressBarNewServerConnectionMinimum(0);
setProgressBarNewServerConnectionMaximum(300);
setPushButtonNewServerConnectVisible(true);
}
void UiLogic::updateVpnPage()
{