On Mon, Feb 22, 2010 at 04:35:00PM +0100, Uwe Stöhr wrote:
> Vincent van Ravesteijn - TNW schrieb:
>
>>> Vincent, Enrico, what Qt version are you using?
>>> (I can try to switch to Qt 4.6.2 and try again.)
>>
>> 4.7.
>
> The development version of Qt? OK, then upgrading to 4.6.2 wouldn't fix
> this issue.
I don't think it is related to the Qt version.
Does the attached patch help?
Ignore the changes to GuiView.cpp (Pavel, Windows doesn't have a sleep()
function).
--
Enrico
Index: src/frontends/qt4/GuiView.cpp
===================================================================
--- src/frontends/qt4/GuiView.cpp (revisione 33537)
+++ src/frontends/qt4/GuiView.cpp (copia locale)
@@ -106,6 +106,10 @@
#include <QUrl>
#include <QScrollBar>
+#ifdef _WIN32
+#include <windows.h>
+#endif
+
#define EXPORT_in_THREAD 1
@@ -2606,7 +2610,11 @@ void GuiView::dispatchVC(FuncRequest con
CompareOptions options;
Compare * compare = new Compare(loadIfNeeded(FileName(f1)),
loadIfNeeded(FileName(f2)), dest, options);
compare->start(QThread::LowPriority);
+#ifdef _WIN32
+ Sleep(2*1000);
+#else
sleep(2);
+#endif
lyx::dispatch(FuncRequest(LFUN_BUFFER_SWITCH,
dest->absFileName()));
break;
}
Index: src/support/qstring_helpers.h
===================================================================
--- src/support/qstring_helpers.h (revisione 33537)
+++ src/support/qstring_helpers.h (copia locale)
@@ -80,6 +80,10 @@ docstring qstring_to_ucs4(QString const
*/
std::string fromqstr(QString const & str);
+#ifdef _WIN32
+QString wstr_to_qstr(wchar_t const * wstr);
+#endif
+
} // namespace lyx
#endif // QSTRING_HELPERS_H
Index: src/support/os_win32.cpp
===================================================================
--- src/support/os_win32.cpp (revisione 33537)
+++ src/support/os_win32.cpp (copia locale)
@@ -276,7 +276,7 @@ static QString const get_long_path(QStri
LASSERT(result <= long_path.size(), /**/);
}
- return (result == 0) ? short_path :
QString::fromWCharArray(&long_path[0]);
+ return (result == 0) ? short_path : wstr_to_qstr(&long_path[0]);
}
@@ -294,7 +294,7 @@ static QString const get_short_path(QStr
LASSERT(result <= short_path.size(), /**/);
}
- return (result == 0) ? long_path :
QString::fromWCharArray(&short_path[0]);
+ return (result == 0) ? long_path : wstr_to_qstr(&short_path[0]);
}
Index: src/support/qstring_helpers.cpp
===================================================================
--- src/support/qstring_helpers.cpp (revisione 33537)
+++ src/support/qstring_helpers.cpp (copia locale)
@@ -67,4 +67,12 @@ std::string fromqstr(QString const & str
return str.isEmpty() ? std::string() : std::string(str.toUtf8());
}
+
+#ifdef _WIN32
+QString wstr_to_qstr(wchar_t const * wstr)
+{
+ return QString::fromWCharArray(wstr);
+}
+#endif
+
} // namespace lyx