Mercurial > hg > easyhg
diff mainwindow.cpp @ 195:ff0d76dcb3b8
* Don't close proc input on finished() -- causes crash on program failure on Windows
* Use merge binary from settings, even if empty -- sometimes user may wish to set an empty string to avoid having an external merge program
* Revert labels to line edits in settings dialog, for a similar reason (permit setting empty value)
* Avoid showing hard hyphens on Windows, they don't look right
* Use preformatted text for merge outcome dialog (but format3 would be better)
author | Chris Cannam |
---|---|
date | Fri, 24 Dec 2010 13:14:45 +0000 |
parents | 5ca49523892f |
children | dbc8d97caaf4 |
line wrap: on
line diff
--- a/mainwindow.cpp Mon Dec 20 22:39:45 2010 +0000 +++ b/mainwindow.cpp Fri Dec 24 13:14:45 2010 +0000 @@ -441,23 +441,25 @@ { QSettings settings; settings.beginGroup("Locations"); - QString merge = settings.value("mergebinary", "").toString(); - if (merge == "") { - QStringList bases; - bases << "fmdiff3" << "meld" << "diffuse" << "kdiff3"; - bool found = false; - foreach (QString base, bases) { - merge = findInPath(base, m_myDirPath, true); - if (merge != base) { - found = true; - break; - } + QVariant v = settings.value("mergebinary"); + if (v != QVariant()) { + return v.toString(); // even if empty: user may have specified no external tool + } + QString merge; + QStringList bases; + bases << "fmdiff3" << "meld" << "diffuse" << "kdiff3"; + bool found = false; + foreach (QString base, bases) { + merge = findInPath(base, m_myDirPath, true); + if (merge != base && merge != base + ".exe") { + found = true; + break; } - if (found) { - settings.setValue("mergebinary", merge); - } else { - merge = ""; - } + } + if (found) { + settings.setValue("mergebinary", merge); + } else { + merge = ""; } return merge; }