diff options
-rw-r--r-- | dist/changes-4.7.0 | 57 | ||||
-rw-r--r-- | src/gui/image/qpixmap_s60.cpp | 20 | ||||
-rw-r--r-- | src/gui/itemviews/qheaderview.cpp | 2 | ||||
-rw-r--r-- | src/network/ssl/qsslsocket_openssl.cpp | 4 | ||||
-rw-r--r-- | tests/auto/qheaderview/tst_qheaderview.cpp | 21 | ||||
-rw-r--r-- | tests/auto/qiodevice/tst_qiodevice.cpp | 26 | ||||
-rw-r--r-- | tests/auto/qpixmap/qpixmap.pro | 8 |
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 |