summaryrefslogtreecommitdiffstats
path: root/src/gui/util/qdesktopservices_win.cpp
diff options
context:
space:
mode:
authorWarwick Allison <warwick.allison@nokia.com>2009-06-10 22:40:02 (GMT)
committerWarwick Allison <warwick.allison@nokia.com>2009-06-10 22:40:02 (GMT)
commitd911206aed44fa3839132d2bf62b2ba21bd93a72 (patch)
tree025e7c3498fe770ea557dd2fdc9d905bb9f0d5bb /src/gui/util/qdesktopservices_win.cpp
parentdf4763878d756fe1f5bcfe6b7dd8cf91cdd091e1 (diff)
parent9ba808cf3fa6118822b7fc9ed9f8f2d0ce2218c3 (diff)
downloadQt-d911206aed44fa3839132d2bf62b2ba21bd93a72.zip
Qt-d911206aed44fa3839132d2bf62b2ba21bd93a72.tar.gz
Qt-d911206aed44fa3839132d2bf62b2ba21bd93a72.tar.bz2
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Diffstat (limited to 'src/gui/util/qdesktopservices_win.cpp')
-rw-r--r--src/gui/util/qdesktopservices_win.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/gui/util/qdesktopservices_win.cpp b/src/gui/util/qdesktopservices_win.cpp
index 8d2701c..a8aa11c 100644
--- a/src/gui/util/qdesktopservices_win.cpp
+++ b/src/gui/util/qdesktopservices_win.cpp
@@ -115,11 +115,11 @@ static bool launchWebBrowser(const QUrl &url)
if (res == ERROR_SUCCESS) {
returnValue = RegQueryValueEx(handle, L"Progid", 0, 0, reinterpret_cast<unsigned char*>(keyValue), &bufferSize);
if (!returnValue)
- keyName = QString::fromUtf16(keyValue);
+ keyName = QString::fromUtf16((const ushort*)keyValue);
RegCloseKey(handle);
}
keyName += QLatin1String("\\Shell\\Open\\Command");
- res = RegOpenKeyExW(HKEY_CLASSES_ROOT, keyName.utf16(), 0, KEY_READ, &handle);
+ res = RegOpenKeyExW(HKEY_CLASSES_ROOT, (const wchar_t*)keyName.utf16(), 0, KEY_READ, &handle);
if (res != ERROR_SUCCESS)
return false;
@@ -165,6 +165,9 @@ static bool launchWebBrowser(const QUrl &url)
if (!url.isValid())
return false;
+ if (url.scheme().isEmpty())
+ return openDocument(url);
+
quintptr returnValue;
returnValue = (quintptr)ShellExecute(0, 0, (TCHAR *) QString::fromUtf8(url.toEncoded().constData()).utf16(),
0, 0, SW_SHOWNORMAL);