annotate settingsdialog.cpp @ 176:a6ec8d0bdd34

* Add option whether to use extension or not, and show path for it in settings
author Chris Cannam
date Thu, 16 Dec 2010 18:00:12 +0000
parents 6def8bf3be44
children bb89bcd8986b
rev   line source
Chris@175 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@175 2
Chris@175 3 /*
Chris@175 4 EasyMercurial
Chris@175 5
Chris@175 6 Based on HgExplorer by Jari Korhonen
Chris@175 7 Copyright (c) 2010 Jari Korhonen
Chris@175 8 Copyright (c) 2010 Chris Cannam
Chris@175 9 Copyright (c) 2010 Queen Mary, University of London
Chris@175 10
Chris@175 11 This program is free software; you can redistribute it and/or
Chris@175 12 modify it under the terms of the GNU General Public License as
Chris@175 13 published by the Free Software Foundation; either version 2 of the
Chris@175 14 License, or (at your option) any later version. See the file
Chris@175 15 COPYING included with this distribution for more information.
Chris@175 16 */
Chris@175 17
Chris@175 18 #include "settingsdialog.h"
Chris@175 19 #include "common.h"
Chris@175 20
Chris@175 21 #include <QGridLayout>
Chris@175 22 #include <QGroupBox>
Chris@175 23 #include <QDialogButtonBox>
Chris@175 24 #include <QSettings>
Chris@175 25
Chris@175 26 SettingsDialog::SettingsDialog(QWidget *parent) :
Chris@175 27 QDialog(parent)
Chris@175 28 {
Chris@175 29 setModal(true);
Chris@175 30 setWindowTitle(tr("Settings"));
Chris@175 31
Chris@175 32 QSettings settings;
Chris@175 33
Chris@175 34 QGridLayout *mainLayout = new QGridLayout;
Chris@175 35 setLayout(mainLayout);
Chris@175 36
Chris@175 37 QGroupBox *meBox = new QGroupBox(tr("About me"));
Chris@175 38 mainLayout->addWidget(meBox, 0, 0);
Chris@175 39 QGridLayout *meLayout = new QGridLayout;
Chris@175 40 meBox->setLayout(meLayout);
Chris@175 41
Chris@175 42 settings.beginGroup("User Information");
Chris@175 43
Chris@175 44 int row = 0;
Chris@175 45
Chris@175 46 meLayout->addWidget(new QLabel(tr("Name:")), row, 0);
Chris@175 47
Chris@175 48 m_nameEdit = new QLineEdit();
Chris@175 49 m_nameEdit->setText(settings.value("name", getUserRealName()).toString());
Chris@175 50 connect(m_nameEdit, SIGNAL(textChanged(const QString &)),
Chris@175 51 this, SLOT(realNameChanged(const QString &)));
Chris@175 52 meLayout->addWidget(m_nameEdit, row++, 1);
Chris@175 53
Chris@175 54 meLayout->addWidget(new QLabel(tr("Email address:")), row, 0);
Chris@175 55
Chris@175 56 m_emailEdit = new QLineEdit();
Chris@175 57 m_emailEdit->setText(settings.value("email").toString());
Chris@175 58 connect(m_emailEdit, SIGNAL(textChanged(const QString &)),
Chris@175 59 this, SLOT(emailChanged(const QString &)));
Chris@175 60 meLayout->addWidget(m_emailEdit, row++, 1);
Chris@175 61
Chris@175 62 settings.endGroup();
Chris@175 63
Chris@175 64 QGroupBox *pathsBox = new QGroupBox(tr("System application locations"));
Chris@175 65 mainLayout->addWidget(pathsBox, 1, 0);
Chris@175 66 QGridLayout *pathsLayout = new QGridLayout;
Chris@175 67 pathsBox->setLayout(pathsLayout);
Chris@175 68
Chris@175 69 settings.beginGroup("Locations");
Chris@175 70
Chris@175 71 row = 0;
Chris@175 72
Chris@175 73 pathsLayout->addWidget(new QLabel(tr("Mercurial (hg) program:")), row, 0);
Chris@175 74
Chris@175 75 m_hgPathEdit = new QLineEdit();
Chris@175 76 m_hgPathEdit->setText(settings.value("hgbinary").toString());
Chris@175 77 connect(m_hgPathEdit, SIGNAL(textChanged(const QString &)),
Chris@175 78 this, SLOT(hgPathChanged(const QString &)));
Chris@175 79 pathsLayout->addWidget(m_hgPathEdit, row, 1);
Chris@175 80
Chris@175 81 QPushButton *browse = new QPushButton(tr("Browse..."));
Chris@175 82 pathsLayout->addWidget(browse, row++, 2);
Chris@175 83 connect(browse, SIGNAL(clicked()), this, SLOT(hgPathBrowse()));
Chris@175 84
Chris@175 85 pathsLayout->addWidget(new QLabel(tr("External diff program:")), row, 0);
Chris@175 86
Chris@175 87 m_diffPathEdit = new QLineEdit();
Chris@175 88 m_diffPathEdit->setText(settings.value("extdiffbinary").toString());
Chris@175 89 connect(m_diffPathEdit, SIGNAL(textChanged(const QString &)),
Chris@175 90 this, SLOT(diffPathChanged(const QString &)));
Chris@175 91 pathsLayout->addWidget(m_diffPathEdit, row, 1);
Chris@175 92
Chris@175 93 browse = new QPushButton(tr("Browse..."));
Chris@175 94 pathsLayout->addWidget(browse, row++, 2);
Chris@175 95 connect(browse, SIGNAL(clicked()), this, SLOT(diffPathBrowse()));
Chris@175 96
Chris@175 97 pathsLayout->addWidget(new QLabel(tr("External file-merge program:")), row, 0);
Chris@175 98
Chris@175 99 m_mergePathEdit = new QLineEdit();
Chris@175 100 m_mergePathEdit->setText(settings.value("mergebinary").toString());
Chris@175 101 connect(m_mergePathEdit, SIGNAL(textChanged(const QString &)),
Chris@175 102 this, SLOT(mergePathChanged(const QString &)));
Chris@175 103 pathsLayout->addWidget(m_mergePathEdit, row, 1);
Chris@175 104
Chris@175 105 browse = new QPushButton(tr("Browse..."));
Chris@175 106 pathsLayout->addWidget(browse, row++, 2);
Chris@175 107 connect(browse, SIGNAL(clicked()), this, SLOT(mergePathBrowse()));
Chris@175 108
Chris@175 109 settings.endGroup();
Chris@176 110
Chris@176 111 settings.beginGroup("Locations");
Chris@176 112
Chris@176 113 pathsLayout->addWidget(new QLabel(tr("EasyHg Mercurial extension:")), row, 0);
Chris@176 114
Chris@176 115 m_extensionPathEdit = new QLineEdit();
Chris@176 116 m_extensionPathEdit->setText(settings.value("extensionpath").toString());
Chris@176 117 connect(m_extensionPathEdit, SIGNAL(textChanged(const QString &)),
Chris@176 118 this, SLOT(extensionPathChanged(const QString &)));
Chris@176 119 pathsLayout->addWidget(m_extensionPathEdit, row, 1);
Chris@176 120
Chris@176 121 browse = new QPushButton(tr("Browse..."));
Chris@176 122 pathsLayout->addWidget(browse, row++, 2);
Chris@176 123 connect(browse, SIGNAL(clicked()), this, SLOT(extensionPathBrowse()));
Chris@176 124
Chris@176 125 settings.endGroup();
Chris@176 126
Chris@176 127 settings.beginGroup("General");
Chris@176 128
Chris@176 129 //!!! more info plz
Chris@176 130 m_useExtension = new QCheckBox(tr("Use EasyHg Mercurial extension"));
Chris@176 131 m_useExtension->setChecked(settings.value("useextension", true).toBool());
Chris@176 132 pathsLayout->addWidget(m_useExtension, row++, 1);
Chris@176 133
Chris@176 134 settings.endGroup();
Chris@176 135
Chris@175 136
Chris@175 137 QDialogButtonBox *bbox = new QDialogButtonBox(QDialogButtonBox::Ok);
Chris@175 138 connect(bbox, SIGNAL(accepted()), this, SLOT(accept()));
Chris@175 139 mainLayout->addWidget(bbox, 2, 0);
Chris@175 140 m_ok = bbox->button(QDialogButtonBox::Ok);
Chris@175 141 // m_ok->setEnabled(false);
Chris@175 142
Chris@175 143 //!!! m_ok->setEnabled(m_name != "");
Chris@175 144 // updateExample();
Chris@175 145 }
Chris@175 146
Chris@175 147 void
Chris@175 148 SettingsDialog::realNameChanged(const QString &s)
Chris@175 149 {
Chris@175 150 }
Chris@175 151
Chris@175 152 void
Chris@175 153 SettingsDialog::emailChanged(const QString &s)
Chris@175 154 {
Chris@175 155 }
Chris@175 156
Chris@175 157 void
Chris@175 158 SettingsDialog::hgPathChanged(const QString &s)
Chris@175 159 {
Chris@175 160 }
Chris@175 161
Chris@175 162 void
Chris@175 163 SettingsDialog::hgPathBrowse()
Chris@175 164 {
Chris@175 165 }
Chris@175 166
Chris@175 167 void
Chris@175 168 SettingsDialog::diffPathChanged(const QString &s)
Chris@175 169 {
Chris@175 170 }
Chris@175 171
Chris@175 172 void
Chris@175 173 SettingsDialog::diffPathBrowse()
Chris@175 174 {
Chris@175 175 }
Chris@175 176
Chris@175 177 void
Chris@175 178 SettingsDialog::mergePathChanged(const QString &s)
Chris@175 179 {
Chris@175 180 }
Chris@175 181
Chris@175 182 void
Chris@175 183 SettingsDialog::mergePathBrowse()
Chris@175 184 {
Chris@175 185 }
Chris@175 186
Chris@175 187 void
Chris@175 188 SettingsDialog::editorPathChanged(const QString &s)
Chris@175 189 {
Chris@175 190 }
Chris@175 191
Chris@175 192 void
Chris@175 193 SettingsDialog::editorPathBrowse()
Chris@175 194 {
Chris@175 195 }
Chris@175 196
Chris@175 197 void
Chris@176 198 SettingsDialog::extensionPathChanged(const QString &s)
Chris@176 199 {
Chris@176 200 }
Chris@176 201
Chris@176 202 void
Chris@176 203 SettingsDialog::extensionPathBrowse()
Chris@176 204 {
Chris@176 205 }
Chris@176 206
Chris@176 207 void
Chris@175 208 SettingsDialog::accept()
Chris@175 209 {
Chris@175 210 QSettings settings;
Chris@175 211 settings.beginGroup("User Information");
Chris@175 212 settings.setValue("name", m_nameEdit->text());
Chris@175 213 settings.setValue("email", m_emailEdit->text());
Chris@175 214 settings.endGroup();
Chris@175 215 settings.beginGroup("Locations");
Chris@175 216 settings.setValue("hgbinary", m_hgPathEdit->text());
Chris@175 217 settings.setValue("extdiffbinary", m_diffPathEdit->text());
Chris@175 218 settings.setValue("mergebinary", m_mergePathEdit->text());
Chris@176 219 settings.setValue("extensionpath", m_extensionPathEdit->text());
Chris@176 220 settings.endGroup();
Chris@176 221 settings.beginGroup("General");
Chris@176 222 settings.setValue("useextension", m_useExtension->isChecked());
Chris@175 223 settings.endGroup();
Chris@175 224 QDialog::accept();
Chris@175 225 }
Chris@175 226
Chris@175 227