summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dist/changes-4.7.057
-rw-r--r--src/gui/image/qpixmap_s60.cpp20
-rw-r--r--src/gui/itemviews/qheaderview.cpp2
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp4
-rw-r--r--tests/auto/qheaderview/tst_qheaderview.cpp21
-rw-r--r--tests/auto/qiodevice/tst_qiodevice.cpp26
-rw-r--r--tests/auto/qpixmap/qpixmap.pro8
7 files changed, 121 insertions, 17 deletions
diff --git a/dist/changes-4.7.0 b/dist/changes-4.7.0
index c19bf15..5f585c1 100644
--- a/dist/changes-4.7.0
+++ b/dist/changes-4.7.0
@@ -32,7 +32,10 @@ New features
- QNetworkSession, QNetworkConfiguration, QNetworkConfigurationManager
* New bearer management classes added.
-
+
+ - QStaticText class was added to support high-performance output of
+ seldomly altered text.
+
Third party components
----------------------
@@ -74,14 +77,14 @@ QtCore
QtGui
-----
-
+
- QAbstractItemView
* Fixed a bug that would cause keyboard searches not to behave
properly when used within 400 milliseconds of midnight.
- QComboBox
* [QTBUG-8796] Made ForegroundRole work for all styles.
-
+
- QPrinter
* Obsoleted the slightly confusing setNumCopies() and numCopies()
functions, and replaced them with setCopyCount(), copyCount() and
@@ -156,10 +159,28 @@ QtGui
- QSplitter
* [QTBUG-9335] Improve support for 1-pixel splitters by using a
larger drag area.
-
+
+ - QTextDocumentWriter
+ * Fixed tab-stops and table padding in ODF export.
+
+ - QTextLayout
+ * [QTBUG-11427] Fix possible crash in QTextLayout for glyphless
+ items.
+ * [QTBUG-8864] Fix regression in right alignment of text with
+ negative right bearing.
+
- QTransform
* [QTBUG-8557] Fixed bug in QTransform::type() potentially occuring
after using operator/ or operator* or their overloads.
+
+QtOpenGL
+--------
+ - Improve performance of text by adding special cased fragment shader.
+
+ - Made width and height of glyph cache power-of-two for performance
+ improvements on some hardware.
+
+ - [QTBUG-9706] Improved appearance of text antialiasing.
QtNetwork
---------
@@ -234,7 +255,19 @@ Qt for Linux/X11
- QGtkStyle
* Fixed rtl issues with sliders (QTBUG-8986)
* Fixed missing pressed appearance on scroll bar handles. (QTBUG-10396)
-
+
+ - QFontDatabase
+ * [QTBUG-4428] Fixed regression when using bitmap fonts on some
+ Linux systems.
+
+ - QFontEngine
+ * [QTBUG-9442] Avoid possible square root of negative number in
+ FreeType font engine.
+
+ - QFontMetrics
+ * [QTBUG-10448] Fix crash when using fonts in non-gui QApplication.
+
+
Qt for Windows
--------------
- Popup windows now implicitly activate when shown. (QTBUG-7386)
@@ -252,6 +285,20 @@ Qt for Mac OS X
* Removed frame around statusbar items. (QTBUG-3574)
* More native appearance of item view headers and frames. (QTBUG-10047)
+ - QFontEngine
+ * Enable fractional metrics for the font engine on Mac in all
+ stages of text layout.
+ * [QTBUG-5529] Enable design metrics for correct character spacing
+ in ATSUI font engine. (Mac/Carbon)
+
+- QTextDocument
+ * [QTBUG-8791] Fix misalignment of fixed width fonts between
+ format changes on Cocoa.
+
+ - QTextLayout
+ * [QTBUG-9879] Fix off-by-one in vertical position for elided and
+ non-elided text.
+
Qt for Embedded Linux
---------------------
diff --git a/src/gui/image/qpixmap_s60.cpp b/src/gui/image/qpixmap_s60.cpp
index a13c8c8..9d571b5 100644
--- a/src/gui/image/qpixmap_s60.cpp
+++ b/src/gui/image/qpixmap_s60.cpp
@@ -157,10 +157,10 @@ class QSymbianBitmapDataAccess
{
public:
- bool heapWasLocked;
+ static int heapRefCount;
QSysInfo::SymbianVersion symbianVersion;
- explicit QSymbianBitmapDataAccess() : heapWasLocked(false)
+ explicit QSymbianBitmapDataAccess()
{
symbianVersion = QSysInfo::symbianVersion();
};
@@ -169,16 +169,22 @@ public:
inline void beginDataAccess(CFbsBitmap *bitmap)
{
- if (symbianVersion == QSysInfo::SV_9_2)
- heapWasLocked = qt_symbianFbsClient()->lockHeap();
- else
+ if (symbianVersion == QSysInfo::SV_9_2) {
+ if (heapRefCount == 0)
+ qt_symbianFbsClient()->lockHeap();
+ } else {
bitmap->LockHeap(ETrue);
+ }
+
+ heapRefCount++;
}
inline void endDataAccess(CFbsBitmap *bitmap)
{
+ heapRefCount--;
+
if (symbianVersion == QSysInfo::SV_9_2) {
- if (!heapWasLocked)
+ if (heapRefCount == 0)
qt_symbianFbsClient()->unlockHeap();
} else {
bitmap->UnlockHeap(ETrue);
@@ -186,6 +192,8 @@ public:
}
};
+int QSymbianBitmapDataAccess::heapRefCount = 0;
+
#define UPDATE_BUFFER() \
{ \
diff --git a/src/gui/itemviews/qheaderview.cpp b/src/gui/itemviews/qheaderview.cpp
index cd9ee15..67854a3 100644
--- a/src/gui/itemviews/qheaderview.cpp
+++ b/src/gui/itemviews/qheaderview.cpp
@@ -1871,7 +1871,7 @@ void QHeaderViewPrivate::_q_layoutChanged()
for (int i = 0; i < oldSectionHidden.count(); ++i) {
if (oldSectionHidden.testBit(i))
- q->setSectionHidden(logicalIndex(i), false);
+ q->setSectionHidden(i, false);
}
// the number of sections changed; we need to reread the state of the model
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index c297eea..b4d030c 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -59,6 +59,8 @@
#include <QtCore/qvarlengtharray.h>
#include <QLibrary> // for loading the security lib for the CA store
+QT_BEGIN_NAMESPACE
+
#if defined(Q_OS_MAC)
#define kSecTrustSettingsDomainSystem 2 // so we do not need to include the header file
PtrSecCertificateGetData QSslSocketPrivate::ptrSecCertificateGetData = 0;
@@ -72,8 +74,6 @@
#include <QtCore/private/qcore_symbian_p.h>
#endif
-QT_BEGIN_NAMESPACE
-
bool QSslSocketPrivate::s_libraryLoaded = false;
bool QSslSocketPrivate::s_loadedCiphersAndCerts = false;
diff --git a/tests/auto/qheaderview/tst_qheaderview.cpp b/tests/auto/qheaderview/tst_qheaderview.cpp
index f6cd4e3..da0a0bb 100644
--- a/tests/auto/qheaderview/tst_qheaderview.cpp
+++ b/tests/auto/qheaderview/tst_qheaderview.cpp
@@ -193,6 +193,7 @@ private slots:
void QTBUG6058_reset();
void QTBUG7833_sectionClicked();
void QTBUG8650_crashOnInsertSections();
+ void QTBUG12268_hiddenMovedSectionSorting();
protected:
QHeaderView *view;
@@ -2071,5 +2072,25 @@ void tst_QHeaderView::QTBUG8650_crashOnInsertSections()
model.insertColumn(0, items);
}
+void tst_QHeaderView::QTBUG12268_hiddenMovedSectionSorting()
+{
+ QTableView view;
+ QStandardItemModel *model = new QStandardItemModel(4,3, &view);
+ for (int i = 0; i< model->rowCount(); ++i)
+ for (int j = 0; j< model->columnCount(); ++j)
+ model->setData(model->index(i,j), QString("item [%1,%2]").arg(i).arg(j));
+ view.setModel(model);
+ view.horizontalHeader()->setMovable(true);
+ view.setSortingEnabled(true);
+ view.sortByColumn(1, Qt::AscendingOrder);
+ view.horizontalHeader()->moveSection(0,2);
+ view.setColumnHidden(1, true);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+ QCOMPARE(view.horizontalHeader()->hiddenSectionCount(), 1);
+ QTest::mouseClick(view.horizontalHeader()->viewport(), Qt::LeftButton);
+ QCOMPARE(view.horizontalHeader()->hiddenSectionCount(), 1);
+}
+
QTEST_MAIN(tst_QHeaderView)
#include "tst_qheaderview.moc"
diff --git a/tests/auto/qiodevice/tst_qiodevice.cpp b/tests/auto/qiodevice/tst_qiodevice.cpp
index 356e2f8..7048754 100644
--- a/tests/auto/qiodevice/tst_qiodevice.cpp
+++ b/tests/auto/qiodevice/tst_qiodevice.cpp
@@ -72,6 +72,7 @@ private slots:
void read_QByteArray();
void unget();
void peek();
+ void peekAndRead();
void getch();
void putch();
@@ -354,6 +355,31 @@ void tst_QIODevice::peek()
QFile::remove("peektestfile");
}
+void tst_QIODevice::peekAndRead()
+{
+ QByteArray originalData;
+ for (int i=0;i<1000;i++)
+ originalData += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ QBuffer buffer;
+ QFile::remove("peektestfile");
+ QFile file("peektestfile");
+
+ for (int i = 0; i < 2; ++i) {
+ QByteArray readData;
+ QIODevice *device = i ? (QIODevice *)&file : (QIODevice *)&buffer;
+ device->open(QBuffer::ReadWrite);
+ device->write(originalData);
+ device->seek(0);
+ while (!device->atEnd()) {
+ char peekIn[26];
+ device->peek(peekIn, 26);
+ readData += device->read(26);
+ }
+ QCOMPARE(readData, originalData);
+ }
+ QFile::remove("peektestfile");
+}
+
void tst_QIODevice::getch()
{
#ifdef QT3_SUPPORT
diff --git a/tests/auto/qpixmap/qpixmap.pro b/tests/auto/qpixmap/qpixmap.pro
index c3ee192..ff8258f 100644
--- a/tests/auto/qpixmap/qpixmap.pro
+++ b/tests/auto/qpixmap/qpixmap.pro
@@ -12,14 +12,16 @@ wince*|symbian: {
icons.sources = convertFromToHICON/*
icons.path = convertFromToHICON
- DEPLOYMENT += task31722_0 task31722_1 icons
- DEPLOYMENT_PLUGIN += qico
+ loadFromData.sources = loadFromData/*
+ loadFromData.path = loadFromData
+
+ DEPLOYMENT += task31722_0 task31722_1 icons loadFromData
}
wince*: {
DEFINES += SRCDIR=\\\".\\\"
+ DEPLOYMENT_PLUGIN += qico
} else:symbian {
- DEPLOYMENT_PLUGIN += qmng
LIBS += -lfbscli.dll -lbitgdi.dll -lgdi.dll
contains(QT_CONFIG, openvg) {
LIBS += $$QMAKE_LIBS_OPENVG