REG: Fix character size when exporting PDF on Windows

In Qt 4, there was a special case in qpdf.cpp which would
use the tmHeight from TEXTMETRIC to calculate the height
of the text instead of the pixel size. This was removed when
all code inside Q_WS_WIN was removed from QtGui. The tmHeight
is defined to be the same as ascent + descent, so we reinsert
this code for Windows.

It could be that this code is okay cross-platform, since the
font height and the pixel size are supposed to be the same, though
for some reason not on Windows. However, the safer approach is
to #ifdef it for Windows, since the bug is not present on
other platforms, and since it was #ifdef'd in Qt 4.

Task-number: QTBUG-30875
Change-Id: If0817768bf0ca5ce216842119422a0be944df0bf
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
bail out early in QWinOverlappedIoNotifier::waitForNotified

Calling waitForNotified on an uninitialized notifier will print a
warning and return false. The autotest has been adjusted.

Change-Id: I85e18d6d0a8a5462e1a5d451613add941d89b5fb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
QWinOverlappedIoNotifier: fix race condition

Fix race condition in waitForNotified for zero timeout.
A waitForNotified(0) call is typically used for triggering
events near the end of life of the I/O resource (e.g.
drainOutputPipes in QProcess). In that case we must
synchronize the IOCP thread and waitForNotified.

Task-number: QTBUG-29391
Change-Id: Iadbd8564ec461cbc48a6ef8c5627e30a5c6eecfd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
fix infinite loop in QProcessPrivate::drainOutputPipes

When drainOutputPipes is called, the process is already dead.
If readyReadEmitted is false, there was no data in the pipes.
As the process is dead, there won't be data in the pipes in future
iterations.

The situation that triggered the infinite loop was this:
process A starts console process B.
B starts console process C. C inherits stdout/err of B.
B dies. C runs forever and does not close the stdout/err handles.
A notices that B died and calls drainOutputPipes.

Task-number: QTBUG-29391

Change-Id: I4819901df307be684c6ad70753a5f964a834704a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>