Mercurial > hg > easyhg
view settingsdialog.cpp @ 177:bb89bcd8986b
* Fixes to external program location logic on Win32
author | Chris Cannam |
---|---|
date | Thu, 16 Dec 2010 20:23:43 +0000 |
parents | a6ec8d0bdd34 |
children | 1a3af8617ea4 |
line wrap: on
line source
/* -*- 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 "settingsdialog.h" #include "common.h" #include "debug.h" #include <QGridLayout> #include <QGroupBox> #include <QDialogButtonBox> #include <QSettings> SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent) { setModal(true); setWindowTitle(tr("Settings")); QSettings settings; QGridLayout *mainLayout = new QGridLayout; setLayout(mainLayout); QGroupBox *meBox = new QGroupBox(tr("About me")); mainLayout->addWidget(meBox, 0, 0); QGridLayout *meLayout = new QGridLayout; meBox->setLayout(meLayout); settings.beginGroup("User Information"); int row = 0; meLayout->addWidget(new QLabel(tr("Name:")), row, 0); m_nameEdit = new QLineEdit(); m_nameEdit->setText(settings.value("name", getUserRealName()).toString()); connect(m_nameEdit, SIGNAL(textChanged(const QString &)), this, SLOT(realNameChanged(const QString &))); meLayout->addWidget(m_nameEdit, row++, 1); meLayout->addWidget(new QLabel(tr("Email address:")), row, 0); m_emailEdit = new QLineEdit(); m_emailEdit->setText(settings.value("email").toString()); connect(m_emailEdit, SIGNAL(textChanged(const QString &)), this, SLOT(emailChanged(const QString &))); meLayout->addWidget(m_emailEdit, row++, 1); settings.endGroup(); QGroupBox *pathsBox = new QGroupBox(tr("System application locations")); mainLayout->addWidget(pathsBox, 1, 0); QGridLayout *pathsLayout = new QGridLayout; pathsBox->setLayout(pathsLayout); settings.beginGroup("Locations"); row = 0; pathsLayout->addWidget(new QLabel(tr("Mercurial (hg) program:")), row, 0); m_hgPathEdit = new QLineEdit(); m_hgPathEdit->setText(settings.value("hgbinary").toString()); connect(m_hgPathEdit, SIGNAL(textChanged(const QString &)), this, SLOT(hgPathChanged(const QString &))); pathsLayout->addWidget(m_hgPathEdit, row, 1); QPushButton *browse = new QPushButton(tr("Browse...")); pathsLayout->addWidget(browse, row++, 2); connect(browse, SIGNAL(clicked()), this, SLOT(hgPathBrowse())); pathsLayout->addWidget(new QLabel(tr("External diff program:")), row, 0); m_diffPathEdit = new QLineEdit(); m_diffPathEdit->setText(settings.value("extdiffbinary").toString()); connect(m_diffPathEdit, SIGNAL(textChanged(const QString &)), this, SLOT(diffPathChanged(const QString &))); pathsLayout->addWidget(m_diffPathEdit, row, 1); browse = new QPushButton(tr("Browse...")); pathsLayout->addWidget(browse, row++, 2); connect(browse, SIGNAL(clicked()), this, SLOT(diffPathBrowse())); pathsLayout->addWidget(new QLabel(tr("External file-merge program:")), row, 0); m_mergePathEdit = new QLineEdit(); m_mergePathEdit->setText(settings.value("mergebinary").toString()); connect(m_mergePathEdit, SIGNAL(textChanged(const QString &)), this, SLOT(mergePathChanged(const QString &))); pathsLayout->addWidget(m_mergePathEdit, row, 1); browse = new QPushButton(tr("Browse...")); pathsLayout->addWidget(browse, row++, 2); connect(browse, SIGNAL(clicked()), this, SLOT(mergePathBrowse())); settings.endGroup(); settings.beginGroup("Locations"); pathsLayout->addWidget(new QLabel(tr("EasyHg Mercurial extension:")), row, 0); m_extensionPathEdit = new QLineEdit(); m_extensionPathEdit->setText(settings.value("extensionpath").toString()); connect(m_extensionPathEdit, SIGNAL(textChanged(const QString &)), this, SLOT(extensionPathChanged(const QString &))); pathsLayout->addWidget(m_extensionPathEdit, row, 1); browse = new QPushButton(tr("Browse...")); pathsLayout->addWidget(browse, row++, 2); connect(browse, SIGNAL(clicked()), this, SLOT(extensionPathBrowse())); settings.endGroup(); settings.beginGroup("General"); //!!! more info plz m_useExtension = new QCheckBox(tr("Use EasyHg Mercurial extension")); m_useExtension->setChecked(settings.value("useextension", true).toBool()); pathsLayout->addWidget(m_useExtension, row++, 1); settings.endGroup(); QDialogButtonBox *bbox = new QDialogButtonBox(QDialogButtonBox::Ok); connect(bbox, SIGNAL(accepted()), this, SLOT(accept())); mainLayout->addWidget(bbox, 2, 0); m_ok = bbox->button(QDialogButtonBox::Ok); // m_ok->setEnabled(false); //!!! m_ok->setEnabled(m_name != ""); // updateExample(); } void SettingsDialog::realNameChanged(const QString &s) { } void SettingsDialog::emailChanged(const QString &s) { } void SettingsDialog::hgPathChanged(const QString &s) { } void SettingsDialog::hgPathBrowse() { } void SettingsDialog::diffPathChanged(const QString &s) { } void SettingsDialog::diffPathBrowse() { } void SettingsDialog::mergePathChanged(const QString &s) { } void SettingsDialog::mergePathBrowse() { } void SettingsDialog::editorPathChanged(const QString &s) { } void SettingsDialog::editorPathBrowse() { } void SettingsDialog::extensionPathChanged(const QString &s) { } void SettingsDialog::extensionPathBrowse() { } void SettingsDialog::accept() { DEBUG << "SettingsDialog::accept" << endl; QSettings settings; settings.beginGroup("User Information"); settings.setValue("name", m_nameEdit->text()); settings.setValue("email", m_emailEdit->text()); settings.endGroup(); settings.beginGroup("Locations"); settings.setValue("hgbinary", m_hgPathEdit->text()); settings.setValue("extdiffbinary", m_diffPathEdit->text()); settings.setValue("mergebinary", m_mergePathEdit->text()); settings.setValue("extensionpath", m_extensionPathEdit->text()); settings.endGroup(); settings.beginGroup("General"); settings.setValue("useextension", m_useExtension->isChecked()); settings.endGroup(); QDialog::accept(); }