summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dist/changes-4.5.241
-rw-r--r--doc/src/designer-manual.qdoc19
-rw-r--r--doc/src/images/rgbController-no-toplevel-layout.pngbin0 -> 1343 bytes
-rw-r--r--src/3rdparty/phonon/ds9/videorenderer_vmr9.cpp1
-rw-r--r--src/3rdparty/phonon/ds9/videowidget.cpp2
-rw-r--r--src/gui/kernel/qwidget_mac.mm5
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp15
-rw-r--r--src/gui/text/qfontdatabase.cpp2
-rw-r--r--src/gui/text/qfontdatabase_mac.cpp9
-rw-r--r--tests/auto/qcssparser/tst_cssparser.cpp2
10 files changed, 65 insertions, 31 deletions
diff --git a/dist/changes-4.5.2 b/dist/changes-4.5.2
index 98ea59e..c87ad92 100644
--- a/dist/changes-4.5.2
+++ b/dist/changes-4.5.2
@@ -46,6 +46,9 @@ Third party components
Plugins (r41346, r43550, r43915, r43917, r43923)
Clipboard (r41360)
+- QAbstractNetworkCache
+ * Only cache responses to HTTP GET by default, not HTTP PUT or POST
+
- QMacStyle
* [253339] Don't draw arrows on toolbuttons that have a menu and text only.
* [252301] Ensure that small and mini spin boxes are drawn correctly.
@@ -53,11 +56,38 @@ Third party components
- QFontDialog
* [252000] Ensure that QFontDialog::getFont() works on Mac OS X.
+- QNetworkCookie
+ * [251959] fix parsing of multiple cookies separated by a newline
+
+- QNetworkCookieJar
+ * [251467] do not allow cookies for domains like ".com"
+ * [228974] allow cookies whose domain attribute is missing a leading dot
+
- QWidget
* [250668] Don't send extra wheel events when using the scroll wheel in Cocoa.
* [253448] Prevent a crash when using the Qt::WA_MacBrushedMetal attribute
in conjunction with style sheets.
+- QPainter
+ * [253783] Fixed text shaping bugs when using ligatures and different
+ scripts in a single text item.
+ * Fixed various inconsistencies for image drawing on non-integer
+ coordinates.
+ * Fixed bug with 0-opacity causing images to be drawn fully opaque.
+ * Fixed crash when drawing on a null pixmap.
+ * [251534] Fixed issue where text with non-opaque color from widget
+ palette would be blitted instead of blended.
+
+- QTransform
+ * Fixed issue in QTransform::type() causing a projective transform to be
+ treated as a scaling transform.
+
+- QtOpenGL
+ * [247083] Re-enabled antialiasing for large font sizes in OpenGL paint
+ engine.
+ * [251485] Fixed crash that could occur with projective transforms and
+ high quality antialiasing.
+
****************************************************************************
* Database Drivers *
****************************************************************************
@@ -69,11 +99,20 @@ Third party components
Qt for Linux/X11
----------------
-
+[253186] Fixed compile error in qfontengine_ft.cpp on 64-bit platforms with
+legacy freetype headers.
+[241361] Prevented asynchronous access to non-thread safe libfontconfig API.
+[244362] Worked around X server crash when calling XFillPolygon with more than
+200000 points by falling back to raster paint engine.
+[250326] Titlebar wasn't shown on X11 with Qt::CustomizeWindowHint for
+ fixed-size windows.
+[251925] Improved showing QMessageBox on small screens.
Qt for Windows
--------------
+[251259] Switching to another app left text cursor in line edits with
+ QtMfc framework.
Qt for Mac OS X
---------------
diff --git a/doc/src/designer-manual.qdoc b/doc/src/designer-manual.qdoc
index ee240b5..bc39c56 100644
--- a/doc/src/designer-manual.qdoc
+++ b/doc/src/designer-manual.qdoc
@@ -465,18 +465,23 @@
spin boxes and sliders as well.
The next step is to combine all three layouts into one \bold{main layout}.
- It is important that your form has a main layout; otherwise, the widgets
- on your form will not resize when your form is resized. To set the main
- layout, \gui{Right click} anywhere on your form, outside of the three
- separate layouts, and select \gui{Lay Out Horizontally}. Alternatively, you
- could also select \gui{Lay Out in a Grid} -- you will still see the same
- arrangement (shown below).
+ The main layout is the top level widget's (in this case, the QWidget)
+ layout. It is important that your top level widget has a layout; otherwise,
+ the widgets on your window will not resize when your window is resized. To
+ set the layout, \gui{Right click} anywhere on your form, outside of the
+ three separate layouts, and select \gui{Lay Out Horizontally}.
+ Alternatively, you could also select \gui{Lay Out in a Grid} -- you will
+ still see the same arrangement (shown below).
\image rgbController-final-layout.png
\note Main layouts cannot be seen on the form. To check if you have a main
layout installed, try resizing your form; your widgets should resize
- accordingly.
+ accordingly. Alternatively, you can take a look at \QD's
+ \gui{Object Inspector}. If your top level widget does not have a layout,
+ you will see the broken layout icon next to it,
+ \inlineimage rgbController-no-toplevel-layout.png
+ .
When you click on the slider and drag it to a certain value, you want the
spin box to display the slider's position. To accomplish this behavior, you
diff --git a/doc/src/images/rgbController-no-toplevel-layout.png b/doc/src/images/rgbController-no-toplevel-layout.png
new file mode 100644
index 0000000..0a9bc29
--- /dev/null
+++ b/doc/src/images/rgbController-no-toplevel-layout.png
Binary files differ
diff --git a/src/3rdparty/phonon/ds9/videorenderer_vmr9.cpp b/src/3rdparty/phonon/ds9/videorenderer_vmr9.cpp
index 298e9fa..81ebb8b 100644
--- a/src/3rdparty/phonon/ds9/videorenderer_vmr9.cpp
+++ b/src/3rdparty/phonon/ds9/videorenderer_vmr9.cpp
@@ -169,6 +169,7 @@ namespace Phonon
Q_ASSERT(SUCCEEDED(hr));
ComPointer<IVMRWindowlessControl9> windowlessControl(m_filter, IID_IVMRWindowlessControl9);
windowlessControl->SetVideoClippingWindow(reinterpret_cast<HWND>(target->winId()));
+ windowlessControl->SetAspectRatioMode(VMR9ARMode_None); //we're in control of the size
}
QImage VideoRendererVMR9::snapshot() const
diff --git a/src/3rdparty/phonon/ds9/videowidget.cpp b/src/3rdparty/phonon/ds9/videowidget.cpp
index de7ce5f..0ef653f 100644
--- a/src/3rdparty/phonon/ds9/videowidget.cpp
+++ b/src/3rdparty/phonon/ds9/videowidget.cpp
@@ -261,6 +261,7 @@ namespace Phonon
{
m_aspectRatio = aspectRatio;
updateVideoSize();
+ m_widget->update();
}
Phonon::VideoWidget::ScaleMode VideoWidget::scaleMode() const
@@ -279,6 +280,7 @@ namespace Phonon
{
m_scaleMode = scaleMode;
updateVideoSize();
+ m_widget->update();
}
void VideoWidget::setBrightness(qreal b)
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index 8243f32..f389bfd 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -1304,8 +1304,11 @@ OSStatus QWidgetPrivate::qt_widget_event(EventHandlerCallRef er, EventRef event,
if(part == kControlFocusNoPart){
if (widget->hasFocus())
QApplicationPrivate::setFocusWidget(0, Qt::OtherFocusReason);
- } else
+ } else if (widget->focusPolicy() != Qt::NoFocus) {
widget->setFocus();
+ } else {
+ handled_event = false;
+ }
}
if(!HIObjectIsOfClass((HIObjectRef)hiview, kObjectQWidget))
CallNextEventHandler(er, event);
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 578a815..30c454c 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -3917,11 +3917,7 @@ static void qt_merge_clip(const QClipData *c1, const QClipData *c2, QClipData *r
{
Q_ASSERT(c1->clipSpanHeight == c2->clipSpanHeight && c1->clipSpanHeight == result->clipSpanHeight);
- // ### buffer overflow possible
- const int BUFFER_SIZE = 4096;
- int buffer[BUFFER_SIZE];
- int *b = buffer;
- int bsize = BUFFER_SIZE;
+ QVarLengthArray<short, 4096> buffer;
QClipData::ClipLine *c1ClipLines = const_cast<QClipData *>(c1)->clipLines();
QClipData::ClipLine *c2ClipLines = const_cast<QClipData *>(c2)->clipLines();
@@ -3948,11 +3944,8 @@ static void qt_merge_clip(const QClipData *c1, const QClipData *c2, QClipData *r
// find required length
int max = qMax(c1_spans[c1_count - 1].x + c1_spans[c1_count - 1].len,
c2_spans[c2_count - 1].x + c2_spans[c2_count - 1].len);
- if (max > bsize) {
- b = (int *)realloc(bsize == BUFFER_SIZE ? 0 : b, max*sizeof(int));
- bsize = max;
- }
- memset(buffer, 0, BUFFER_SIZE * sizeof(int));
+ buffer.resize(max);
+ memset(buffer.data(), 0, buffer.size() * sizeof(short));
// Fill with old spans.
for (int i = 0; i < c1_count; ++i) {
@@ -3988,8 +3981,6 @@ static void qt_merge_clip(const QClipData *c1, const QClipData *c2, QClipData *r
result->appendSpan(sx, x - sx, y, coverage);
}
}
- if (b != buffer)
- free(b);
}
void QRasterPaintEnginePrivate::initializeRasterizer(QSpanData *data)
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index d3020b0..9c3c4a4 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -827,6 +827,7 @@ static void getEngineData(const QFontPrivate *d, const QFontCache::Key &key)
d->engineData->ref.ref();
}
}
+#endif
static QStringList familyList(const QFontDef &req)
{
@@ -855,7 +856,6 @@ static QStringList familyList(const QFontDef &req)
return family_list;
}
-#endif
Q_GLOBAL_STATIC(QFontDatabasePrivate, privateDb)
Q_GLOBAL_STATIC_WITH_ARGS(QMutex, fontDatabaseMutex, (QMutex::Recursive))
diff --git a/src/gui/text/qfontdatabase_mac.cpp b/src/gui/text/qfontdatabase_mac.cpp
index 80ddbd5..26d8687 100644
--- a/src/gui/text/qfontdatabase_mac.cpp
+++ b/src/gui/text/qfontdatabase_mac.cpp
@@ -281,14 +281,7 @@ void QFontDatabase::load(const QFontPrivate *d, int script)
}
//find the font
- QStringList family_list = req.family.split(QLatin1Char(','));
- // append the substitute list for each family in family_list
- {
- QStringList subs_list;
- for(QStringList::ConstIterator it = family_list.constBegin(); it != family_list.constEnd(); ++it)
- subs_list += QFont::substitutes(*it);
- family_list += subs_list;
- }
+ QStringList family_list = familyList(req);
const char *stylehint = styleHint(req);
if (stylehint)
diff --git a/tests/auto/qcssparser/tst_cssparser.cpp b/tests/auto/qcssparser/tst_cssparser.cpp
index 7c4fac1..b41a745 100644
--- a/tests/auto/qcssparser/tst_cssparser.cpp
+++ b/tests/auto/qcssparser/tst_cssparser.cpp
@@ -1475,7 +1475,7 @@ void tst_CssParser::extractFontFamily_data()
QTest::newRow("unquoted-family-name2") << "font-family: Times New Roman" << QString("Times New Roman");
QTest::newRow("multiple") << "font-family: Times New Roman , foobar, 'baz'" << QString("Times New Roman");
QTest::newRow("multiple2") << "font-family: invalid, Times New Roman " << QString("Times New Roman");
- QTest::newRow("invalid") << "font-family: invalid" << QFont().family();
+ QTest::newRow("invalid") << "font-family: invalid" << QFontInfo(QFont("invalid font")).family();
QTest::newRow("shorthand") << "font: 12pt Times New Roman" << QString("Times New Roman");
QTest::newRow("shorthand multiple quote") << "font: 12pt invalid, \"Times New Roman\" " << QString("Times New Roman");
QTest::newRow("shorthand multiple") << "font: 12pt invalid, Times New Roman " << QString("Times New Roman");