Chris@64: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@64: Chris@64: /* Chris@64: EasyMercurial Chris@64: Chris@64: Based on HgExplorer by Jari Korhonen Chris@64: Copyright (c) 2010 Jari Korhonen Chris@64: Copyright (c) 2010 Chris Cannam Chris@64: Copyright (c) 2010 Queen Mary, University of London Chris@64: Chris@64: This program is free software; you can redistribute it and/or Chris@64: modify it under the terms of the GNU General Public License as Chris@64: published by the Free Software Foundation; either version 2 of the Chris@64: License, or (at your option) any later version. See the file Chris@64: COPYING included with this distribution for more information. Chris@64: */ Chris@64: Chris@64: #include "startupdialog.h" Chris@64: #include "common.h" Chris@64: Chris@64: #include Chris@64: #include Chris@64: #include Chris@64: Chris@64: StartupDialog::StartupDialog(QWidget *parent) : Chris@64: QDialog(parent) Chris@64: { Chris@64: setModal(true); Chris@64: setWindowTitle(tr("About me")); Chris@64: Chris@64: QSettings settings; Chris@64: settings.beginGroup("User Information"); Chris@64: m_name = settings.value("name", getUserRealName()).toString(); Chris@64: m_email = settings.value("email").toString(); Chris@64: Chris@64: QGridLayout *layout = new QGridLayout; Chris@64: int row = 0; Chris@64: Chris@72: layout->addWidget(new QLabel(tr("Welcome to EasyMercurial!
How would you like to be identified in commit messages?")), Chris@64: row++, 0, 1, 2); Chris@64: Chris@64: layout->addWidget(new QLabel(tr("Name:")), row, 0); Chris@64: Chris@64: m_nameEdit = new QLineEdit(); Chris@64: m_nameEdit->setText(m_name); Chris@64: connect(m_nameEdit, SIGNAL(textChanged(const QString &)), Chris@64: this, SLOT(realNameChanged(const QString &))); Chris@64: layout->addWidget(m_nameEdit, row++, 1); Chris@64: Chris@64: layout->addWidget(new QLabel(tr("Email address:")), row, 0); Chris@64: Chris@64: m_emailEdit = new QLineEdit(); Chris@64: m_emailEdit->setText(m_email); Chris@64: connect(m_emailEdit, SIGNAL(textChanged(const QString &)), Chris@64: this, SLOT(emailChanged(const QString &))); Chris@64: layout->addWidget(m_emailEdit, row++, 1); Chris@64: Chris@64: layout->addWidget(new QLabel(tr("
You will appear as:")), row, 0, Qt::AlignBottom); Chris@64: m_example = new QLabel(); Chris@64: layout->addWidget(m_example, row++, 1, Qt::AlignBottom); Chris@64: Chris@64: QDialogButtonBox *bbox = new QDialogButtonBox(QDialogButtonBox::Ok); Chris@64: connect(bbox, SIGNAL(accepted()), this, SLOT(accept())); Chris@64: layout->addWidget(bbox, row++, 0, 1, 2); Chris@64: m_ok = bbox->button(QDialogButtonBox::Ok); Chris@64: m_ok->setEnabled(false); Chris@64: Chris@64: setLayout(layout); Chris@64: Chris@64: m_ok->setEnabled(m_name != ""); Chris@64: updateExample(); Chris@64: } Chris@64: Chris@64: void Chris@64: StartupDialog::realNameChanged(const QString &s) Chris@64: { Chris@64: m_name = s.trimmed(); Chris@64: m_ok->setEnabled(m_name != ""); Chris@64: updateExample(); Chris@64: } Chris@64: Chris@64: void Chris@64: StartupDialog::emailChanged(const QString &s) Chris@64: { Chris@64: m_email = s.trimmed(); Chris@64: updateExample(); Chris@64: } Chris@64: Chris@64: void Chris@64: StartupDialog::accept() Chris@64: { Chris@64: QSettings settings; Chris@64: settings.beginGroup("User Information"); Chris@64: settings.setValue("name", m_name); Chris@64: settings.setValue("email", m_email); Chris@64: QDialog::accept(); Chris@64: } Chris@64: Chris@64: void Chris@64: StartupDialog::updateExample() Chris@64: { Chris@64: QString identifier; Chris@64: Chris@64: if (m_email != "") { Chris@64: identifier = QString("%1 <%2>").arg(m_name).arg(m_email); Chris@64: } else { Chris@64: identifier = m_name; Chris@64: } Chris@64: Chris@64: m_example->setText(identifier); Chris@64: } Chris@64: Chris@64: