Mercurial > hg > easyhg
diff startupdialog.cpp @ 64:794db9353c7f
* Start rejigging the settings/repo-path dialog setup: startup dialog now asks for user name and email only
author | Chris Cannam |
---|---|
date | Wed, 17 Nov 2010 17:49:16 +0000 |
parents | |
children | 121cb1032717 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/startupdialog.cpp Wed Nov 17 17:49:16 2010 +0000 @@ -0,0 +1,113 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + EasyMercurial + + Based on HgExplorer by Jari Korhonen + Copyright (c) 2010 Jari Korhonen + Copyright (c) 2010 Chris Cannam + Copyright (c) 2010 Queen Mary, University of London + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + +#include "startupdialog.h" +#include "common.h" + +#include <QGridLayout> +#include <QDialogButtonBox> +#include <QSettings> + +StartupDialog::StartupDialog(QWidget *parent) : + QDialog(parent) +{ + setModal(true); + setWindowTitle(tr("About me")); + + QSettings settings; + settings.beginGroup("User Information"); + m_name = settings.value("name", getUserRealName()).toString(); + m_email = settings.value("email").toString(); + + QGridLayout *layout = new QGridLayout; + int row = 0; + + layout->addWidget(new QLabel(tr("<qt><big><bold>Welcome to EasyMercurial!</qt></bold></big><br>How would you like to be identified in commit messages?")), + row++, 0, 1, 2); + + layout->addWidget(new QLabel(tr("Name:")), row, 0); + + m_nameEdit = new QLineEdit(); + m_nameEdit->setText(m_name); + connect(m_nameEdit, SIGNAL(textChanged(const QString &)), + this, SLOT(realNameChanged(const QString &))); + layout->addWidget(m_nameEdit, row++, 1); + + layout->addWidget(new QLabel(tr("Email address:")), row, 0); + + m_emailEdit = new QLineEdit(); + m_emailEdit->setText(m_email); + connect(m_emailEdit, SIGNAL(textChanged(const QString &)), + this, SLOT(emailChanged(const QString &))); + layout->addWidget(m_emailEdit, row++, 1); + + layout->addWidget(new QLabel(tr("<br>You will appear as:")), row, 0, Qt::AlignBottom); + m_example = new QLabel(); + layout->addWidget(m_example, row++, 1, Qt::AlignBottom); + + QDialogButtonBox *bbox = new QDialogButtonBox(QDialogButtonBox::Ok); + connect(bbox, SIGNAL(accepted()), this, SLOT(accept())); + layout->addWidget(bbox, row++, 0, 1, 2); + m_ok = bbox->button(QDialogButtonBox::Ok); + m_ok->setEnabled(false); + + setLayout(layout); + + m_ok->setEnabled(m_name != ""); + updateExample(); +} + +void +StartupDialog::realNameChanged(const QString &s) +{ + m_name = s.trimmed(); + m_ok->setEnabled(m_name != ""); + updateExample(); +} + +void +StartupDialog::emailChanged(const QString &s) +{ + m_email = s.trimmed(); + updateExample(); +} + +void +StartupDialog::accept() +{ + QSettings settings; + settings.beginGroup("User Information"); + settings.setValue("name", m_name); + settings.setValue("email", m_email); + QDialog::accept(); +} + +void +StartupDialog::updateExample() +{ + QString identifier; + + if (m_email != "") { + identifier = QString("%1 <%2>").arg(m_name).arg(m_email); + } else { + identifier = m_name; + } + + m_example->setText(identifier); +} + +