Mercurial > hg > easyhg
diff mainwindow.cpp @ 239:661f5808aa0a
* Overhaul settings-defaults mechanism, and add Restore Defaults button to settings dialog
author | Chris Cannam |
---|---|
date | Mon, 10 Jan 2011 15:18:21 +0000 |
parents | e2f2c6e3c01b |
children | 4e98950f72e8 |
line wrap: on
line diff
--- a/mainwindow.cpp Mon Jan 10 13:30:19 2011 +0000 +++ b/mainwindow.cpp Mon Jan 10 15:18:21 2011 +0000 @@ -113,9 +113,7 @@ startupDialog(); } - (void)findDiffBinaryName(); - (void)findMergeBinaryName(); - (void)findEditorBinaryName(); + SettingsDialog::findDefaultLocations(m_myDirPath); ColourSet *cs = ColourSet::instance(); cs->clearDefaultNames(); @@ -497,7 +495,7 @@ params << hgIgnorePath; - QString editor = findEditorBinaryName(); + QString editor = getEditorBinaryName(); if (editor == "") { DEBUG << "Failed to find a text editor" << endl; @@ -511,102 +509,25 @@ runner->requestAction(action); } -QString MainWindow::findDiffBinaryName() +QString MainWindow::getDiffBinaryName() { QSettings settings; settings.beginGroup("Locations"); - QString diff = settings.value("extdiffbinary", "").toString(); - if (diff == "") { - QStringList bases; -#ifdef Q_OS_MAC - bases << "easyhg-extdiff-osx.sh"; -#endif - bases << "kompare" << "kdiff3" << "meld"; - bool found = false; - foreach (QString base, bases) { - diff = findInPath(base, m_myDirPath, true); - if (diff != "") { - found = true; - break; - } - } - if (found) { - settings.setValue("extdiffbinary", diff); - } else { - diff = ""; - } - } - return diff; + return settings.value("extdiffbinary", "").toString(); } -QString MainWindow::findMergeBinaryName() +QString MainWindow::getMergeBinaryName() { QSettings settings; settings.beginGroup("Locations"); - if (settings.contains("mergebinary")) { - // use it even if empty: user may have specified no external tool - QVariant v = settings.value("mergebinary"); - DEBUG << "v = " << v << endl; - return v.toString(); - } - QString merge; - QStringList bases; -#ifdef Q_OS_MAC - bases << "easyhg-merge-osx.sh"; -#endif - // I think this is too dangerous, given command line ordering - // differences and suchlike. Need to make sure the hg - // installation is configured OK instead -// bases << "meld" << "diffuse" << "kdiff3"; - bool found = false; - foreach (QString base, bases) { - merge = findInPath(base, m_myDirPath, true); - if (merge != "") { - found = true; - break; - } - } - if (found) { - settings.setValue("mergebinary", merge); - } else { - merge = ""; - } - return merge; + return settings.value("mergebinary", "").toString(); } -QString MainWindow::findEditorBinaryName() +QString MainWindow::getEditorBinaryName() { QSettings settings; settings.beginGroup("Locations"); - QString editor = settings.value("editorbinary", "").toString(); - if (editor == "") { - QStringList bases; - bases -#if defined Q_OS_WIN32 - << "wordpad.exe" - << "C:\\Program Files\\Windows NT\\Accessories\\wordpad.exe" - << "notepad.exe" -#elif defined Q_OS_MAC - << "/Applications/TextEdit.app/Contents/MacOS/TextEdit" -#else - << "gedit" << "kate" -#endif - ; - bool found = false; - foreach (QString base, bases) { - editor = findInPath(base, m_myDirPath, true); - if (editor != "") { - found = true; - break; - } - } - if (found) { - settings.setValue("editorbinary", editor); - } else { - editor = ""; - } - } - return editor; + return settings.value("editorbinary", "").toString(); } void MainWindow::hgShowSummary() @@ -620,7 +541,7 @@ void MainWindow::hgFolderDiff() { - QString diff = findDiffBinaryName(); + QString diff = getDiffBinaryName(); if (diff == "") return; QStringList params; @@ -638,7 +559,7 @@ void MainWindow::hgDiffToCurrent(QString id) { - QString diff = findDiffBinaryName(); + QString diff = getDiffBinaryName(); if (diff == "") return; QStringList params; @@ -655,7 +576,7 @@ void MainWindow::hgDiffToParent(QString child, QString parent) { - QString diff = findDiffBinaryName(); + QString diff = getDiffBinaryName(); if (diff == "") return; QStringList params; @@ -786,7 +707,7 @@ params << "resolve"; - QString merge = findMergeBinaryName(); + QString merge = getMergeBinaryName(); if (merge != "") { params << "--tool" << merge; } @@ -819,7 +740,7 @@ params << "merge"; - QString merge = findMergeBinaryName(); + QString merge = getMergeBinaryName(); if (merge != "") { params << "--tool" << merge; } @@ -841,7 +762,7 @@ params << "merge"; params << "--rev" << Changeset::hashOf(id); - QString merge = findMergeBinaryName(); + QString merge = getMergeBinaryName(); if (merge != "") { params << "--tool" << merge; }