diff options
| author | Jeremy Rimpo <jeremy.rimpo@servermonkey.com> | 2017-10-28 21:58:41 -0500 |
|---|---|---|
| committer | Jeremy Rimpo <jeremy.rimpo@servermonkey.com> | 2017-10-28 21:58:41 -0500 |
| commit | 7e2811cb46443d11ef45e678433432a86a0b58b9 (patch) | |
| tree | c7b79410bfcb3e4923dfd8aaaea85e35c6b2f3bf | |
| parent | d659ad7294af2bc67a3b569dc90a7920f5469b07 (diff) | |
| parent | ebe6011174767687f3b575c08132a720ecccbf55 (diff) | |
Merge remote-tracking branch 'up/QT5.7' into mainline_dev
| -rw-r--r-- | src/dlls.manifest.qt5 | 13 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 1 | ||||
| -rw-r--r-- | src/organizercore.cpp | 99 |
3 files changed, 59 insertions, 54 deletions
diff --git a/src/dlls.manifest.qt5 b/src/dlls.manifest.qt5 index dd0b4ea9..2a3cfeb0 100644 --- a/src/dlls.manifest.qt5 +++ b/src/dlls.manifest.qt5 @@ -3,11 +3,12 @@ <assemblyIdentity type="win32" name="dlls" version="1.0.0.0" processorArchitecture="x86"/>
<file name="7z.dll"/>
<file name="archive.dll"/>
- <file name="icuin58.dll"/>
- <file name="icuuc58.dll"/>
- <file name="icudt58.dll"/>
+ <file name="d3dcompiler_47.dll"/>
<file name="libeay32.dll"/>
+ <file name="libEGL.dll"/>
+ <file name="libGLESV2.dll"/>
<file name="liblz4.dll"/>
+ <file name="opengl32sw.dll"/>
<file name="Qt5Core.dll"/>
<file name="Qt5Gui.dll"/>
<file name="Qt5Network.dll"/>
@@ -16,10 +17,12 @@ <file name="Qt5Qml.dll"/>
<file name="Qt5Quick.dll"/>
<file name="Qt5QuickWidgets.dll"/>
- <file name="Qt5WebChannel.dll"/>
+ <file name="Qt5WebChannel.dll"/>
+ <file name="Qt5SerialPort.dll"/>
+ <file name="Qt5Svg.dll"/>
<file name="Qt5WebEngineCore.dll"/>
<file name="Qt5WebEngineWidgets.dll"/>
<file name="Qt5Widgets.dll"/>
- <file name="Qt5WinExtras.dll"/>
+ <file name="Qt5WinExtras.dll"/>
<file name="ssleay32.dll"/>
</assembly>
\ No newline at end of file diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 79be617b..158e32d1 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -840,6 +840,7 @@ void MainWindow::showEvent(QShowEvent *event) m_OrganizerCore.settings().registerAsNXMHandler(false);
m_WasVisible = true;
+ updateProblemsButton();
}
}
diff --git a/src/organizercore.cpp b/src/organizercore.cpp index c55504a8..9ae8beae 100644 --- a/src/organizercore.cpp +++ b/src/organizercore.cpp @@ -1239,7 +1239,7 @@ bool OrganizerCore::waitForApplication(HANDLE handle, LPDWORD exitCode) bool OrganizerCore::waitForProcessCompletion(HANDLE handle, LPDWORD exitCode)
{
HANDLE processHandle = handle;
-
+
static const DWORD maxCount = 5;
size_t numProcesses = maxCount;
LPDWORD processes = new DWORD[maxCount];
@@ -1250,62 +1250,63 @@ bool OrganizerCore::waitForProcessCompletion(HANDLE handle, LPDWORD exitCode) DWORD res;
// Wait for a an event on the handle, a key press, mouse click or timeout
//TODO: Remove MOBase::isOneOf from this query as it was always returning true.
+
while (
- res = ::MsgWaitForMultipleObjects(1, &handle, false, 500,
- QS_KEY | QS_MOUSE),
- ((res != WAIT_FAILED) || (res != WAIT_OBJECT_0)) &&
- ((m_UserInterface == nullptr) || !m_UserInterface->unlockClicked())) {
-
- if (!::GetVFSProcessList(&numProcesses, processes)) {
- break;
- }
+ res = ::MsgWaitForMultipleObjects(1, &handle, false, 500,
+ QS_KEY | QS_MOUSE),
+ ((res != WAIT_FAILED) || (res != WAIT_OBJECT_0)) &&
+ ((m_UserInterface == nullptr) || !m_UserInterface->unlockClicked())) {
- bool found = false;
- size_t count =
- std::min<size_t>(static_cast<size_t>(maxCount), numProcesses);
- for (size_t i = 0; i < count; ++i) {
- std::wstring processName = getProcessName(processes[i]);
- if (!boost::starts_with(processName, L"ModOrganizer.exe")) {
- currentProcess = processes[i];
- m_UserInterface->setProcessName(QString::fromStdWString(processName));
- processHandle = ::OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, currentProcess);
- found = true;
+ if (!::GetVFSProcessList(&numProcesses, processes)) {
+ break;
+ }
+ bool found = false;
+ size_t count =
+ std::min<size_t>(static_cast<size_t>(maxCount), numProcesses);
+ for (size_t i = 0; i < count; ++i) {
+ std::wstring processName = getProcessName(processes[i]);
+ if (!boost::starts_with(processName, L"ModOrganizer.exe")){
+ currentProcess = processes[i];
+ m_UserInterface->setProcessName(QString::fromStdWString(processName));
+ processHandle = ::OpenProcess(SYNCHRONIZE, FALSE, currentProcess);
+ found = true;
+ ::CloseHandle(processHandle);
+ }
}
- }
- if (!found) {
- // it's possible the previous process has deregistered before
- // the new one has registered, so we should try one more time
- // with a little delay
- if (tryAgain) {
- tryAgain = false;
- QThread::msleep(500);
- continue;
+ if (!found) {
+ // it's possible the previous process has deregistered before
+ // the new one has registered, so we should try one more time
+ // with a little delay
+ if (tryAgain) {
+ tryAgain = false;
+ QThread::msleep(500);
+ continue;
+ } else {
+ break;
+ }
} else {
- break;
+ tryAgain = true;
}
- } else {
- tryAgain = true;
- }
+ // keep processing events so the app doesn't appear dead
+
+ QCoreApplication::processEvents();
+
- // keep processing events so the app doesn't appear dead
- QCoreApplication::processEvents();
- }
+ if (exitCode != nullptr) {
+ //This is actually wrong if the process we started finished before we
+ //got the event and so we end up with a job handle.
+ if (! ::GetExitCodeProcess(processHandle, exitCode))
+ {
+ DWORD error = ::GetLastError();
+ qDebug() << "Failed to get process exit code: Error " << error;
+ }
+ }
- if (exitCode != nullptr) {
- //This is actually wrong if the process we started finished before we
- //got the event and so we end up with a job handle.
- if (! ::GetExitCodeProcess(processHandle, exitCode))
- {
- DWORD error = ::GetLastError();
- qDebug() << "Failed to get process exit code: Error " << error;
+ ::CloseHandle(processHandle);
+ if (handle != processHandle) {
+ ::CloseHandle(handle);
+ }
}
- }
-
- ::CloseHandle(processHandle);
- if (handle != processHandle) {
- ::CloseHandle(handle);
- }
-
return res == WAIT_OBJECT_0;
}
|
