File indexing completed on 2024-04-28 04:38:50

0001 /*
0002     SPDX-FileCopyrightText: 2016 Artur Puzio <cytadela88@gmail.com>
0003     SPDX-FileCopyrightText: 2016 Kevin Funk <kfunk@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #include "gitnameemaildialog.h"
0009 #include "ui_gitnameemaildialog.h"
0010 
0011 #include "gitplugin.h"
0012 
0013 #include <KLocalizedString>
0014 
0015 #include <QDialog>
0016 #include <QPushButton>
0017 #include <QRegularExpression>
0018 #include <QValidator>
0019 
0020 using namespace KDevelop;
0021 
0022 GitNameEmailDialog::GitNameEmailDialog(QWidget *parent)
0023     : QDialog(parent),
0024       ui(new Ui::GitNameEmailDialog)
0025 {
0026     ui->setupUi(this);
0027 
0028     ui->buttonBox->button(QDialogButtonBox::Save)->setDisabled(true);
0029 
0030     connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &GitNameEmailDialog::accept);
0031     connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &GitNameEmailDialog::reject);
0032 
0033     QRegularExpression rx(QStringLiteral(".+"));
0034     auto validator = new QRegularExpressionValidator(rx, this);
0035     ui->emailEdit->setValidator(validator);
0036     ui->nameEdit->setValidator(validator);
0037 
0038     connect(ui->emailEdit, &QLineEdit::textChanged, this, &GitNameEmailDialog::updateUi);
0039     connect(ui->nameEdit, &QLineEdit::textChanged, this, &GitNameEmailDialog::updateUi);
0040 }
0041 
0042 GitNameEmailDialog::~GitNameEmailDialog() = default;
0043 
0044 void GitNameEmailDialog::updateUi()
0045 {
0046     ui->buttonBox->button(QDialogButtonBox::Save)->setDisabled(
0047         !ui->nameEdit->hasAcceptableInput() || !ui->emailEdit->hasAcceptableInput());
0048 }
0049 
0050 void GitNameEmailDialog::setName(const QString& name)
0051 {
0052     ui->nameEdit->setText(name);
0053 }
0054 
0055 void GitNameEmailDialog::setEmail(const QString& email)
0056 {
0057     ui->emailEdit->setText(email);
0058 }
0059 
0060 QString GitNameEmailDialog::name() const
0061 {
0062     return ui->nameEdit->text();
0063 }
0064 
0065 QString GitNameEmailDialog::email() const
0066 {
0067     return ui->emailEdit->text();
0068 }
0069 
0070 bool GitNameEmailDialog::isGlobal() const
0071 {
0072     return ui->globalCheckBox->isChecked();
0073 }
0074 
0075 #include "moc_gitnameemaildialog.cpp"