Mercurial > hg > easyhg
comparison src/settingsdialog.cpp @ 489:86cdaa346e59
Merge
author | Chris Cannam |
---|---|
date | Wed, 17 Aug 2011 22:13:51 +0100 |
parents | 896b7903e8f2 |
children | 533519ebc0cb |
comparison
equal
deleted
inserted
replaced
488:2f59333952ce | 489:86cdaa346e59 |
---|---|
149 | 149 |
150 browse = new QPushButton(tr("Browse...")); | 150 browse = new QPushButton(tr("Browse...")); |
151 pathsLayout->addWidget(browse, row++, 1); | 151 pathsLayout->addWidget(browse, row++, 1); |
152 connect(browse, SIGNAL(clicked()), this, SLOT(sshPathBrowse())); | 152 connect(browse, SIGNAL(clicked()), this, SLOT(sshPathBrowse())); |
153 | 153 |
154 pathsLayout->addWidget(new QLabel(tr("External text editor:")), row, 0); | |
155 | |
156 m_editPathLabel = new QLineEdit(); | |
157 pathsLayout->addWidget(m_editPathLabel, row, 2); | |
158 | |
159 browse = new QPushButton(tr("Browse...")); | |
160 pathsLayout->addWidget(browse, row++, 1); | |
161 connect(browse, SIGNAL(clicked()), this, SLOT(editPathBrowse())); | |
162 | |
163 pathsLayout->addWidget(new QLabel(tr("EasyHg Mercurial extension:")), row, 0); | 154 pathsLayout->addWidget(new QLabel(tr("EasyHg Mercurial extension:")), row, 0); |
164 | 155 |
165 m_extensionPathLabel = new QLineEdit(); | 156 m_extensionPathLabel = new QLineEdit(); |
166 pathsLayout->addWidget(m_extensionPathLabel, row, 2); | 157 pathsLayout->addWidget(m_extensionPathLabel, row, 2); |
167 | 158 |
217 | 208 |
218 void | 209 void |
219 SettingsDialog::sshPathBrowse() | 210 SettingsDialog::sshPathBrowse() |
220 { | 211 { |
221 browseFor(tr("SSH program"), m_sshPathLabel); | 212 browseFor(tr("SSH program"), m_sshPathLabel); |
222 } | |
223 | |
224 void | |
225 SettingsDialog::editPathBrowse() | |
226 { | |
227 browseFor(tr("External text editor"), m_editPathLabel); | |
228 } | 213 } |
229 | 214 |
230 void | 215 void |
231 SettingsDialog::extensionPathBrowse() | 216 SettingsDialog::extensionPathBrowse() |
232 { | 217 { |
273 findHgBinaryName(); | 258 findHgBinaryName(); |
274 findExtension(); | 259 findExtension(); |
275 findDiffBinaryName(); | 260 findDiffBinaryName(); |
276 findMergeBinaryName(); | 261 findMergeBinaryName(); |
277 findSshBinaryName(); | 262 findSshBinaryName(); |
278 findEditorBinaryName(); | |
279 } | 263 } |
280 | 264 |
281 void | 265 void |
282 SettingsDialog::findHgBinaryName() | 266 SettingsDialog::findHgBinaryName() |
283 { | 267 { |
407 settings.setValue("sshbinary", ssh); | 391 settings.setValue("sshbinary", ssh); |
408 } | 392 } |
409 } | 393 } |
410 | 394 |
411 void | 395 void |
412 SettingsDialog::findEditorBinaryName() | |
413 { | |
414 QSettings settings; | |
415 settings.beginGroup("Locations"); | |
416 QString editor = settings.value("editorbinary", "").toString(); | |
417 if (editor != "" && QFile(editor).exists()) { | |
418 return; | |
419 } | |
420 QStringList bases; | |
421 bases | |
422 #if defined Q_OS_WIN32 | |
423 << "wordpad.exe" | |
424 << "C:\\Program Files\\Windows NT\\Accessories\\wordpad.exe" | |
425 << "notepad.exe" | |
426 #elif defined Q_OS_MAC | |
427 << "/Applications/TextEdit.app/Contents/MacOS/TextEdit" | |
428 #else | |
429 << "gedit" << "kate" | |
430 #endif | |
431 ; | |
432 bool found = false; | |
433 foreach (QString base, bases) { | |
434 editor = findInPath(base, m_installPath, true); | |
435 if (editor != "") { | |
436 found = true; | |
437 break; | |
438 } | |
439 } | |
440 if (found) { | |
441 settings.setValue("editorbinary", editor); | |
442 } | |
443 } | |
444 | |
445 void | |
446 SettingsDialog::clear() | 396 SettingsDialog::clear() |
447 { | 397 { |
448 // Clear everything that has a default setting | 398 // Clear everything that has a default setting |
449 DEBUG << "SettingsDialog::clear" << endl; | 399 DEBUG << "SettingsDialog::clear" << endl; |
450 QSettings settings; | 400 QSettings settings; |
456 settings.beginGroup("Locations"); | 406 settings.beginGroup("Locations"); |
457 settings.remove("hgbinary"); | 407 settings.remove("hgbinary"); |
458 settings.remove("extdiffbinary"); | 408 settings.remove("extdiffbinary"); |
459 settings.remove("mergebinary"); | 409 settings.remove("mergebinary"); |
460 settings.remove("sshbinary"); | 410 settings.remove("sshbinary"); |
461 settings.remove("editorbinary"); | |
462 settings.remove("extensionpath"); | 411 settings.remove("extensionpath"); |
463 settings.endGroup(); | 412 settings.endGroup(); |
464 settings.beginGroup("General"); | 413 settings.beginGroup(""); |
465 settings.remove("useextension"); | 414 settings.remove("useextension"); |
466 settings.endGroup(); | 415 settings.endGroup(); |
467 } | 416 } |
468 | 417 |
469 void | 418 void |
486 settings.beginGroup("Locations"); | 435 settings.beginGroup("Locations"); |
487 m_hgPathLabel->setText(settings.value("hgbinary").toString()); | 436 m_hgPathLabel->setText(settings.value("hgbinary").toString()); |
488 m_diffPathLabel->setText(settings.value("extdiffbinary").toString()); | 437 m_diffPathLabel->setText(settings.value("extdiffbinary").toString()); |
489 m_mergePathLabel->setText(settings.value("mergebinary").toString()); | 438 m_mergePathLabel->setText(settings.value("mergebinary").toString()); |
490 m_sshPathLabel->setText(settings.value("sshbinary").toString()); | 439 m_sshPathLabel->setText(settings.value("sshbinary").toString()); |
491 m_editPathLabel->setText(settings.value("editorbinary").toString()); | |
492 m_extensionPathLabel->setText(settings.value("extensionpath").toString()); | 440 m_extensionPathLabel->setText(settings.value("extensionpath").toString()); |
493 settings.endGroup(); | 441 settings.endGroup(); |
494 settings.beginGroup("General"); | 442 settings.beginGroup(""); |
495 m_useExtension->setChecked(settings.value("useextension", true).toBool()); | 443 m_useExtension->setChecked(settings.value("useextension", true).toBool()); |
496 settings.endGroup(); | 444 settings.endGroup(); |
497 } | 445 } |
498 | 446 |
499 void | 447 void |
534 settings.beginGroup("Locations"); | 482 settings.beginGroup("Locations"); |
535 settings.setValue("hgbinary", m_hgPathLabel->text()); | 483 settings.setValue("hgbinary", m_hgPathLabel->text()); |
536 settings.setValue("extdiffbinary", m_diffPathLabel->text()); | 484 settings.setValue("extdiffbinary", m_diffPathLabel->text()); |
537 settings.setValue("mergebinary", m_mergePathLabel->text()); | 485 settings.setValue("mergebinary", m_mergePathLabel->text()); |
538 settings.setValue("sshbinary", m_sshPathLabel->text()); | 486 settings.setValue("sshbinary", m_sshPathLabel->text()); |
539 settings.setValue("editorbinary", m_editPathLabel->text()); | |
540 settings.setValue("extensionpath", m_extensionPathLabel->text()); | 487 settings.setValue("extensionpath", m_extensionPathLabel->text()); |
541 settings.endGroup(); | 488 settings.endGroup(); |
542 settings.beginGroup("General"); | 489 settings.beginGroup(""); |
543 settings.setValue("useextension", m_useExtension->isChecked()); | 490 settings.setValue("useextension", m_useExtension->isChecked()); |
544 settings.endGroup(); | 491 settings.endGroup(); |
545 QDialog::accept(); | 492 QDialog::accept(); |
546 } | 493 } |
547 | 494 |