annotate settingsdialog.cpp @ 178:1a3af8617ea4

* basic external editor selection (for hgignore)
author Chris Cannam
date Thu, 16 Dec 2010 22:11:38 +0000
parents bb89bcd8986b
children 731aef59d5f4
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@177 20 #include "debug.h"
Chris@175 21
Chris@175 22 #include <QGridLayout>
Chris@175 23 #include <QGroupBox>
Chris@175 24 #include <QDialogButtonBox>
Chris@175 25 #include <QSettings>
Chris@175 26
Chris@175 27 SettingsDialog::SettingsDialog(QWidget *parent) :
Chris@175 28 QDialog(parent)
Chris@175 29 {
Chris@175 30 setModal(true);
Chris@175 31 setWindowTitle(tr("Settings"));
Chris@175 32
Chris@175 33 QSettings settings;
Chris@175 34
Chris@175 35 QGridLayout *mainLayout = new QGridLayout;
Chris@175 36 setLayout(mainLayout);
Chris@175 37
Chris@175 38 QGroupBox *meBox = new QGroupBox(tr("About me"));
Chris@175 39 mainLayout->addWidget(meBox, 0, 0);
Chris@175 40 QGridLayout *meLayout = new QGridLayout;
Chris@175 41 meBox->setLayout(meLayout);
Chris@175 42
Chris@175 43 settings.beginGroup("User Information");
Chris@175 44
Chris@175 45 int row = 0;
Chris@175 46
Chris@175 47 meLayout->addWidget(new QLabel(tr("Name:")), row, 0);
Chris@175 48
Chris@175 49 m_nameEdit = new QLineEdit();
Chris@175 50 m_nameEdit->setText(settings.value("name", getUserRealName()).toString());
Chris@175 51 connect(m_nameEdit, SIGNAL(textChanged(const QString &)),
Chris@175 52 this, SLOT(realNameChanged(const QString &)));
Chris@175 53 meLayout->addWidget(m_nameEdit, row++, 1);
Chris@175 54
Chris@175 55 meLayout->addWidget(new QLabel(tr("Email address:")), row, 0);
Chris@175 56
Chris@175 57 m_emailEdit = new QLineEdit();
Chris@175 58 m_emailEdit->setText(settings.value("email").toString());
Chris@175 59 connect(m_emailEdit, SIGNAL(textChanged(const QString &)),
Chris@175 60 this, SLOT(emailChanged(const QString &)));
Chris@175 61 meLayout->addWidget(m_emailEdit, row++, 1);
Chris@175 62
Chris@175 63 settings.endGroup();
Chris@175 64
Chris@175 65 QGroupBox *pathsBox = new QGroupBox(tr("System application locations"));
Chris@175 66 mainLayout->addWidget(pathsBox, 1, 0);
Chris@175 67 QGridLayout *pathsLayout = new QGridLayout;
Chris@175 68 pathsBox->setLayout(pathsLayout);
Chris@175 69
Chris@175 70 settings.beginGroup("Locations");
Chris@175 71
Chris@175 72 row = 0;
Chris@175 73
Chris@175 74 pathsLayout->addWidget(new QLabel(tr("Mercurial (hg) program:")), row, 0);
Chris@175 75
Chris@175 76 m_hgPathEdit = new QLineEdit();
Chris@175 77 m_hgPathEdit->setText(settings.value("hgbinary").toString());
Chris@175 78 connect(m_hgPathEdit, SIGNAL(textChanged(const QString &)),
Chris@175 79 this, SLOT(hgPathChanged(const QString &)));
Chris@175 80 pathsLayout->addWidget(m_hgPathEdit, row, 1);
Chris@175 81
Chris@175 82 QPushButton *browse = new QPushButton(tr("Browse..."));
Chris@175 83 pathsLayout->addWidget(browse, row++, 2);
Chris@175 84 connect(browse, SIGNAL(clicked()), this, SLOT(hgPathBrowse()));
Chris@175 85
Chris@175 86 pathsLayout->addWidget(new QLabel(tr("External diff program:")), row, 0);
Chris@175 87
Chris@175 88 m_diffPathEdit = new QLineEdit();
Chris@175 89 m_diffPathEdit->setText(settings.value("extdiffbinary").toString());
Chris@175 90 connect(m_diffPathEdit, SIGNAL(textChanged(const QString &)),
Chris@175 91 this, SLOT(diffPathChanged(const QString &)));
Chris@175 92 pathsLayout->addWidget(m_diffPathEdit, row, 1);
Chris@175 93
Chris@175 94 browse = new QPushButton(tr("Browse..."));
Chris@175 95 pathsLayout->addWidget(browse, row++, 2);
Chris@175 96 connect(browse, SIGNAL(clicked()), this, SLOT(diffPathBrowse()));
Chris@178 97
Chris@175 98 pathsLayout->addWidget(new QLabel(tr("External file-merge program:")), row, 0);
Chris@175 99
Chris@175 100 m_mergePathEdit = new QLineEdit();
Chris@175 101 m_mergePathEdit->setText(settings.value("mergebinary").toString());
Chris@175 102 connect(m_mergePathEdit, SIGNAL(textChanged(const QString &)),
Chris@175 103 this, SLOT(mergePathChanged(const QString &)));
Chris@175 104 pathsLayout->addWidget(m_mergePathEdit, row, 1);
Chris@175 105
Chris@175 106 browse = new QPushButton(tr("Browse..."));
Chris@175 107 pathsLayout->addWidget(browse, row++, 2);
Chris@175 108 connect(browse, SIGNAL(clicked()), this, SLOT(mergePathBrowse()));
Chris@175 109
Chris@178 110 pathsLayout->addWidget(new QLabel(tr("External text editor:")), row, 0);
Chris@178 111
Chris@178 112 m_editPathEdit = new QLineEdit();
Chris@178 113 m_editPathEdit->setText(settings.value("editorbinary").toString());
Chris@178 114 connect(m_editPathEdit, SIGNAL(textChanged(const QString &)),
Chris@178 115 this, SLOT(editPathChanged(const QString &)));
Chris@178 116 pathsLayout->addWidget(m_editPathEdit, row, 1);
Chris@178 117
Chris@178 118 browse = new QPushButton(tr("Browse..."));
Chris@178 119 pathsLayout->addWidget(browse, row++, 2);
Chris@178 120 connect(browse, SIGNAL(clicked()), this, SLOT(editPathBrowse()));
Chris@178 121
Chris@175 122 settings.endGroup();
Chris@176 123
Chris@176 124 settings.beginGroup("Locations");
Chris@176 125
Chris@176 126 pathsLayout->addWidget(new QLabel(tr("EasyHg Mercurial extension:")), row, 0);
Chris@176 127
Chris@176 128 m_extensionPathEdit = new QLineEdit();
Chris@176 129 m_extensionPathEdit->setText(settings.value("extensionpath").toString());
Chris@176 130 connect(m_extensionPathEdit, SIGNAL(textChanged(const QString &)),
Chris@176 131 this, SLOT(extensionPathChanged(const QString &)));
Chris@176 132 pathsLayout->addWidget(m_extensionPathEdit, row, 1);
Chris@176 133
Chris@176 134 browse = new QPushButton(tr("Browse..."));
Chris@176 135 pathsLayout->addWidget(browse, row++, 2);
Chris@176 136 connect(browse, SIGNAL(clicked()), this, SLOT(extensionPathBrowse()));
Chris@176 137
Chris@176 138 settings.endGroup();
Chris@176 139
Chris@176 140 settings.beginGroup("General");
Chris@176 141
Chris@176 142 //!!! more info plz
Chris@176 143 m_useExtension = new QCheckBox(tr("Use EasyHg Mercurial extension"));
Chris@176 144 m_useExtension->setChecked(settings.value("useextension", true).toBool());
Chris@176 145 pathsLayout->addWidget(m_useExtension, row++, 1);
Chris@176 146
Chris@176 147 settings.endGroup();
Chris@176 148
Chris@175 149
Chris@175 150 QDialogButtonBox *bbox = new QDialogButtonBox(QDialogButtonBox::Ok);
Chris@175 151 connect(bbox, SIGNAL(accepted()), this, SLOT(accept()));
Chris@175 152 mainLayout->addWidget(bbox, 2, 0);
Chris@175 153 m_ok = bbox->button(QDialogButtonBox::Ok);
Chris@175 154 // m_ok->setEnabled(false);
Chris@175 155
Chris@175 156 //!!! m_ok->setEnabled(m_name != "");
Chris@175 157 // updateExample();
Chris@175 158 }
Chris@175 159
Chris@175 160 void
Chris@175 161 SettingsDialog::realNameChanged(const QString &s)
Chris@175 162 {
Chris@175 163 }
Chris@175 164
Chris@175 165 void
Chris@175 166 SettingsDialog::emailChanged(const QString &s)
Chris@175 167 {
Chris@175 168 }
Chris@175 169
Chris@175 170 void
Chris@175 171 SettingsDialog::hgPathChanged(const QString &s)
Chris@175 172 {
Chris@175 173 }
Chris@175 174
Chris@175 175 void
Chris@175 176 SettingsDialog::hgPathBrowse()
Chris@175 177 {
Chris@175 178 }
Chris@175 179
Chris@175 180 void
Chris@175 181 SettingsDialog::diffPathChanged(const QString &s)
Chris@175 182 {
Chris@175 183 }
Chris@175 184
Chris@175 185 void
Chris@175 186 SettingsDialog::diffPathBrowse()
Chris@175 187 {
Chris@175 188 }
Chris@175 189
Chris@175 190 void
Chris@175 191 SettingsDialog::mergePathChanged(const QString &s)
Chris@175 192 {
Chris@175 193 }
Chris@175 194
Chris@175 195 void
Chris@175 196 SettingsDialog::mergePathBrowse()
Chris@175 197 {
Chris@175 198 }
Chris@175 199
Chris@175 200 void
Chris@178 201 SettingsDialog::editPathChanged(const QString &s)
Chris@175 202 {
Chris@175 203 }
Chris@175 204
Chris@175 205 void
Chris@178 206 SettingsDialog::editPathBrowse()
Chris@175 207 {
Chris@175 208 }
Chris@175 209
Chris@175 210 void
Chris@176 211 SettingsDialog::extensionPathChanged(const QString &s)
Chris@176 212 {
Chris@176 213 }
Chris@176 214
Chris@176 215 void
Chris@176 216 SettingsDialog::extensionPathBrowse()
Chris@176 217 {
Chris@176 218 }
Chris@176 219
Chris@176 220 void
Chris@175 221 SettingsDialog::accept()
Chris@175 222 {
Chris@177 223 DEBUG << "SettingsDialog::accept" << endl;
Chris@175 224 QSettings settings;
Chris@175 225 settings.beginGroup("User Information");
Chris@175 226 settings.setValue("name", m_nameEdit->text());
Chris@175 227 settings.setValue("email", m_emailEdit->text());
Chris@175 228 settings.endGroup();
Chris@175 229 settings.beginGroup("Locations");
Chris@175 230 settings.setValue("hgbinary", m_hgPathEdit->text());
Chris@175 231 settings.setValue("extdiffbinary", m_diffPathEdit->text());
Chris@175 232 settings.setValue("mergebinary", m_mergePathEdit->text());
Chris@176 233 settings.setValue("extensionpath", m_extensionPathEdit->text());
Chris@176 234 settings.endGroup();
Chris@176 235 settings.beginGroup("General");
Chris@176 236 settings.setValue("useextension", m_useExtension->isChecked());
Chris@175 237 settings.endGroup();
Chris@175 238 QDialog::accept();
Chris@175 239 }
Chris@175 240
Chris@175 241