1
0
Fork 0
mirror of https://github.com/Chatterino/chatterino2.git synced 2024-11-21 22:24:07 +01:00
mirror-chatterino2/src/widgets/dialogs/IrcConnectionEditor.cpp

82 lines
3 KiB
C++
Raw Normal View History

2019-09-08 18:06:43 +02:00
#include "IrcConnectionEditor.hpp"
#include "ui_IrcConnectionEditor.h"
namespace chatterino {
IrcConnectionEditor::IrcConnectionEditor(const IrcServerData &data, bool isAdd,
QWidget *parent)
: QDialog(parent, Qt::WindowStaysOnTopHint)
, ui_(new Ui::IrcConnectionEditor)
, data_(data)
2019-09-08 18:06:43 +02:00
{
this->ui_->setupUi(this);
2019-09-08 18:06:43 +02:00
this->setWindowTitle(QString(isAdd ? "Add " : "Edit ") + "Irc Connection");
QObject::connect(this->ui_->userNameLineEdit, &QLineEdit::textChanged, this,
[this](const QString &text) {
this->ui_->nickNameLineEdit->setPlaceholderText(text);
this->ui_->realNameLineEdit->setPlaceholderText(text);
});
this->ui_->serverLineEdit->setText(data.host);
this->ui_->portSpinBox->setValue(data.port);
this->ui_->securityCheckBox->setChecked(data.ssl);
this->ui_->userNameLineEdit->setText(data.user);
this->ui_->nickNameLineEdit->setText(data.nick);
this->ui_->realNameLineEdit->setText(data.real);
2019-09-14 18:38:09 +02:00
this->ui_->connectCommandsEditor->setPlainText(
data.connectCommands.join('\n'));
2019-09-14 20:45:01 +02:00
data.getPassword(this, [this](const QString &password) {
this->ui_->passwordLineEdit->setText(password);
});
2019-09-14 18:38:09 +02:00
2019-09-14 22:58:53 +02:00
QObject::connect(this->ui_->loginMethodComboBox,
qOverload<int>(&QComboBox::currentIndexChanged), this,
[this](int index) {
IrcAuthType type;
switch (index)
{
case 0: // anonymous
type = IrcAuthType::Anonymous;
break;
case 1: // custom
this->ui_->connectCommandsEditor->setFocus();
type = IrcAuthType::Custom;
break;
case 2: // PASS
type = IrcAuthType::Pass;
break;
}
});
2019-09-14 18:38:09 +02:00
QFont font("Monospace");
font.setStyleHint(QFont::TypeWriter);
this->ui_->connectCommandsEditor->setFont(font);
2019-09-14 22:58:53 +02:00
}
2019-09-08 18:06:43 +02:00
IrcConnectionEditor::~IrcConnectionEditor()
{
delete ui_;
2019-09-08 18:06:43 +02:00
}
IrcServerData IrcConnectionEditor::data()
{
auto data = this->data_;
data.host = this->ui_->serverLineEdit->text();
data.port = this->ui_->portSpinBox->value();
data.ssl = this->ui_->securityCheckBox->isChecked();
data.user = this->ui_->userNameLineEdit->text();
data.nick = this->ui_->nickNameLineEdit->text();
data.real = this->ui_->realNameLineEdit->text();
2019-09-14 18:38:09 +02:00
data.connectCommands =
this->ui_->connectCommandsEditor->toPlainText().split('\n');
2019-09-14 20:45:01 +02:00
data.setPassword(this->ui_->passwordLineEdit->text());
return data;
}
} // namespace chatterino