mirror of https://github.com/PurpleI2P/i2pd.git
I2P: End-to-End encrypted and anonymous Internet
https://i2pd.website/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
202 lines
9.6 KiB
202 lines
9.6 KiB
#include "ClientTunnelPane.h" |
|
#include "ClientContext.h" |
|
#include "SignatureTypeComboboxFactory.h" |
|
#include "QVBoxLayout" |
|
|
|
ClientTunnelPane::ClientTunnelPane(TunnelsPageUpdateListener* tunnelsPageUpdateListener, ClientTunnelConfig* tunconf): |
|
TunnelPane(tunnelsPageUpdateListener, tunconf) {} |
|
|
|
void ClientTunnelPane::setGroupBoxTitle(const QString & title) { |
|
clientTunnelNameGroupBox->setTitle(title); |
|
} |
|
|
|
void ClientTunnelPane::deleteClientTunnelForm() { |
|
delete clientTunnelNameGroupBox; |
|
clientTunnelNameGroupBox=nullptr; |
|
|
|
//gridLayoutWidget_2->deleteLater(); |
|
//gridLayoutWidget_2=nullptr; |
|
} |
|
|
|
int ClientTunnelPane::appendClientTunnelForm( |
|
ClientTunnelConfig* tunnelConfig, QWidget *tunnelsFormGridLayoutWidget, int tunnelsRow, int height) { |
|
|
|
ClientTunnelPane& ui = *this; |
|
|
|
clientTunnelNameGroupBox = new QGroupBox(tunnelsFormGridLayoutWidget); |
|
clientTunnelNameGroupBox->setObjectName(QStringLiteral("clientTunnelNameGroupBox")); |
|
|
|
//tunnel |
|
gridLayoutWidget_2 = new QWidget(clientTunnelNameGroupBox); |
|
|
|
QComboBox *tunnelTypeComboBox = new QComboBox(gridLayoutWidget_2); |
|
tunnelTypeComboBox->setObjectName(QStringLiteral("tunnelTypeComboBox")); |
|
tunnelTypeComboBox->addItem("Client", i2p::client::I2P_TUNNELS_SECTION_TYPE_CLIENT); |
|
tunnelTypeComboBox->addItem("Socks", i2p::client::I2P_TUNNELS_SECTION_TYPE_SOCKS); |
|
tunnelTypeComboBox->addItem("Websocks", i2p::client::I2P_TUNNELS_SECTION_TYPE_WEBSOCKS); |
|
tunnelTypeComboBox->addItem("HTTP Proxy", i2p::client::I2P_TUNNELS_SECTION_TYPE_HTTPPROXY); |
|
tunnelTypeComboBox->addItem("UDP Client", i2p::client::I2P_TUNNELS_SECTION_TYPE_UDPCLIENT); |
|
|
|
int h=(7+4)*60; |
|
gridLayoutWidget_2->setGeometry(QRect(0, 0, 561, h)); |
|
clientTunnelNameGroupBox->setGeometry(QRect(0, 0, 561, h)); |
|
|
|
{ |
|
const QString& type = tunnelConfig->getType(); |
|
int index=0; |
|
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_CLIENT)tunnelTypeComboBox->setCurrentIndex(index); |
|
++index; |
|
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_SOCKS)tunnelTypeComboBox->setCurrentIndex(index); |
|
++index; |
|
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_WEBSOCKS)tunnelTypeComboBox->setCurrentIndex(index); |
|
++index; |
|
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_HTTPPROXY)tunnelTypeComboBox->setCurrentIndex(index); |
|
++index; |
|
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_UDPCLIENT)tunnelTypeComboBox->setCurrentIndex(index); |
|
++index; |
|
} |
|
|
|
setupTunnelPane(tunnelConfig, |
|
clientTunnelNameGroupBox, |
|
gridLayoutWidget_2, tunnelTypeComboBox, |
|
tunnelsFormGridLayoutWidget, tunnelsRow, height, h); |
|
//this->tunnelGroupBox->setGeometry(QRect(0, tunnelsFormGridLayoutWidget->height()+10, 561, (7+5)*40+10)); |
|
|
|
/* |
|
std::string destination; |
|
*/ |
|
|
|
//host |
|
ui.horizontalLayout_2 = new QHBoxLayout(); |
|
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2")); |
|
ui.destinationLabel = new QLabel(gridLayoutWidget_2); |
|
destinationLabel->setObjectName(QStringLiteral("destinationLabel")); |
|
horizontalLayout_2->addWidget(destinationLabel); |
|
ui.destinationLineEdit = new QLineEdit(gridLayoutWidget_2); |
|
destinationLineEdit->setObjectName(QStringLiteral("destinationLineEdit")); |
|
destinationLineEdit->setText(tunnelConfig->getdest().c_str()); |
|
QObject::connect(destinationLineEdit, SIGNAL(textChanged(const QString &)), |
|
this, SLOT(updated())); |
|
horizontalLayout_2->addWidget(destinationLineEdit); |
|
ui.destinationHorizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); |
|
horizontalLayout_2->addItem(destinationHorizontalSpacer); |
|
tunnelGridLayout->addLayout(horizontalLayout_2); |
|
|
|
/* |
|
* int port; |
|
*/ |
|
int gridIndex = 2; |
|
{ |
|
int port = tunnelConfig->getport(); |
|
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout(); |
|
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2")); |
|
ui.portLabel = new QLabel(gridLayoutWidget_2); |
|
portLabel->setObjectName(QStringLiteral("portLabel")); |
|
horizontalLayout_2->addWidget(portLabel); |
|
ui.portLineEdit = new QLineEdit(gridLayoutWidget_2); |
|
portLineEdit->setObjectName(QStringLiteral("portLineEdit")); |
|
portLineEdit->setText(QString::number(port)); |
|
portLineEdit->setMaximumWidth(80); |
|
QObject::connect(portLineEdit, SIGNAL(textChanged(const QString &)), |
|
this, SLOT(updated())); |
|
horizontalLayout_2->addWidget(portLineEdit); |
|
QSpacerItem * horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); |
|
horizontalLayout_2->addItem(horizontalSpacer); |
|
tunnelGridLayout->addLayout(horizontalLayout_2); |
|
} |
|
/* |
|
* std::string keys; |
|
*/ |
|
{ |
|
std::string keys = tunnelConfig->getkeys(); |
|
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout(); |
|
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2")); |
|
ui.keysLabel = new QLabel(gridLayoutWidget_2); |
|
keysLabel->setObjectName(QStringLiteral("keysLabel")); |
|
horizontalLayout_2->addWidget(keysLabel); |
|
ui.keysLineEdit = new QLineEdit(gridLayoutWidget_2); |
|
keysLineEdit->setObjectName(QStringLiteral("keysLineEdit")); |
|
keysLineEdit->setText(keys.c_str()); |
|
QObject::connect(keysLineEdit, SIGNAL(textChanged(const QString &)), |
|
this, SLOT(updated())); |
|
horizontalLayout_2->addWidget(keysLineEdit); |
|
QSpacerItem * horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); |
|
horizontalLayout_2->addItem(horizontalSpacer); |
|
tunnelGridLayout->addLayout(horizontalLayout_2); |
|
} |
|
/* |
|
* std::string address; |
|
*/ |
|
{ |
|
std::string address = tunnelConfig->getaddress(); |
|
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout(); |
|
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2")); |
|
ui.addressLabel = new QLabel(gridLayoutWidget_2); |
|
addressLabel->setObjectName(QStringLiteral("addressLabel")); |
|
horizontalLayout_2->addWidget(addressLabel); |
|
ui.addressLineEdit = new QLineEdit(gridLayoutWidget_2); |
|
addressLineEdit->setObjectName(QStringLiteral("addressLineEdit")); |
|
addressLineEdit->setText(address.c_str()); |
|
QObject::connect(addressLineEdit, SIGNAL(textChanged(const QString &)), |
|
this, SLOT(updated())); |
|
horizontalLayout_2->addWidget(addressLineEdit); |
|
QSpacerItem * horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); |
|
horizontalLayout_2->addItem(horizontalSpacer); |
|
tunnelGridLayout->addLayout(horizontalLayout_2); |
|
} |
|
|
|
/* |
|
int destinationPort; |
|
i2p::data::SigningKeyType sigType; |
|
*/ |
|
{ |
|
int destinationPort = tunnelConfig->getdestinationPort(); |
|
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout(); |
|
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2")); |
|
ui.destinationPortLabel = new QLabel(gridLayoutWidget_2); |
|
destinationPortLabel->setObjectName(QStringLiteral("destinationPortLabel")); |
|
horizontalLayout_2->addWidget(destinationPortLabel); |
|
ui.destinationPortLineEdit = new QLineEdit(gridLayoutWidget_2); |
|
destinationPortLineEdit->setObjectName(QStringLiteral("destinationPortLineEdit")); |
|
destinationPortLineEdit->setText(QString::number(destinationPort)); |
|
destinationPortLineEdit->setMaximumWidth(80); |
|
QObject::connect(destinationPortLineEdit, SIGNAL(textChanged(const QString &)), |
|
this, SLOT(updated())); |
|
horizontalLayout_2->addWidget(destinationPortLineEdit); |
|
QSpacerItem * horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); |
|
horizontalLayout_2->addItem(horizontalSpacer); |
|
tunnelGridLayout->addLayout(horizontalLayout_2); |
|
} |
|
{ |
|
i2p::data::SigningKeyType sigType = tunnelConfig->getsigType(); |
|
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout(); |
|
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2")); |
|
ui.sigTypeLabel = new QLabel(gridLayoutWidget_2); |
|
sigTypeLabel->setObjectName(QStringLiteral("sigTypeLabel")); |
|
horizontalLayout_2->addWidget(sigTypeLabel); |
|
ui.sigTypeComboBox = SignatureTypeComboBoxFactory::createSignatureTypeComboBox(gridLayoutWidget_2, sigType); |
|
sigTypeComboBox->setObjectName(QStringLiteral("sigTypeComboBox")); |
|
QObject::connect(sigTypeComboBox, SIGNAL(currentIndexChanged(int)), |
|
this, SLOT(updated())); |
|
horizontalLayout_2->addWidget(sigTypeComboBox); |
|
QPushButton * lockButton2 = new QPushButton(gridLayoutWidget_2); |
|
horizontalLayout_2->addWidget(lockButton2); |
|
widgetlocks.add(new widgetlock(sigTypeComboBox, lockButton2)); |
|
QSpacerItem * horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); |
|
horizontalLayout_2->addItem(horizontalSpacer); |
|
tunnelGridLayout->addLayout(horizontalLayout_2); |
|
} |
|
{ |
|
I2CPParameters& i2cpParameters = tunnelConfig->getI2cpParameters(); |
|
appendControlsForI2CPParameters(i2cpParameters, gridIndex); |
|
} |
|
|
|
retranslateClientTunnelForm(ui); |
|
|
|
tunnelGridLayout->invalidate(); |
|
|
|
return h; |
|
} |
|
|
|
ServerTunnelPane* ClientTunnelPane::asServerTunnelPane(){return nullptr;} |
|
ClientTunnelPane* ClientTunnelPane::asClientTunnelPane(){return this;}
|
|
|