diff --git a/src/plugins/cppeditor/cpphighlighter.cpp b/src/plugins/cppeditor/cpphighlighter.cpp index 54050b970435c4a1576e3da50afbb55fa7e25199..61c1312df3ad05fbd14c38fca3aabbb303599318 100644 --- a/src/plugins/cppeditor/cpphighlighter.cpp +++ b/src/plugins/cppeditor/cpphighlighter.cpp @@ -48,8 +48,6 @@ CppHighlighter::CppHighlighter(QTextDocument *document) : void CppHighlighter::highlightBlock(const QString &text) { - QTextCharFormat emptyFormat; - const int previousState = previousBlockState(); int state = 0, initialBraceDepth = 0; if (previousState != -1) { @@ -226,7 +224,7 @@ void CppHighlighter::highlightBlock(const QString &text) if (oldState == tokenize.state() && oldBraceDepth != braceDepth) { int delta = braceDepth - oldBraceDepth; QTextBlock block = currentBlock().next(); - while (block.isValid()) { + while (block.isValid() && block.userState() != -1) { TextEditDocumentLayout::changeBraceDepth(block, delta); block = block.next(); } diff --git a/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp b/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp index 2efd3672b963f8be4442a64ede88c494781d0683..feb73530ce80b86e1c0ba98662772f610b84d185 100644 --- a/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp +++ b/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp @@ -401,18 +401,33 @@ QString CdbSymbolGroupContext::symbolINameAt(unsigned long index) const return m_inameIndexMap.key(index); } -// check for "0x000", "0x000 class X" +// Return hexadecimal pointer value from a CDB pointer value +// which look like "0x000032a" or "0x00000000`0250124a" on 64-bit systems. +static bool inline getPointerValue(QString stringValue, quint64 *value) +{ + *value = 0; + if (!stringValue.startsWith(QLatin1String("0x"))) + return false; + stringValue.remove(0, 2); + // Remove 64bit separator + if (stringValue.size() > 8 && stringValue.at(8) == QLatin1Char('`')) + stringValue.remove(8, 1); + bool ok; + *value = stringValue.toULongLong(&ok, 16); + return ok; +} + +// check for "0x000", "0x000 class X" or its 64-bit equivalents. static inline bool isNullPointer(const WatchData &wd) { if (!isPointerType(wd.type)) return false; - static const QRegExp hexNullPattern(QLatin1String("0x0+")); - Q_ASSERT(hexNullPattern.isValid()); - const int blankPos = wd.value.indexOf(QLatin1Char(' ')); - if (blankPos == -1) - return hexNullPattern.exactMatch(wd.value); - const QString addr = wd.value.mid(0, blankPos); - return hexNullPattern.exactMatch(addr); + QString stringValue = wd.value; + const int blankPos = stringValue.indexOf(QLatin1Char(' ')); + if (blankPos != -1) + stringValue.truncate(blankPos); + quint64 value; + return getPointerValue(stringValue, &value) && value == 0u; } // Fix a symbol group value. It is set to the class type for @@ -713,16 +728,11 @@ static inline bool getIntValue(CIDebugSymbolGroup *sg, int index, int *value) } // Get pointer value of symbol group ("0xAAB") +// Note that this is on "00000000`0250124a" on 64bit systems. static inline bool getPointerValue(CIDebugSymbolGroup *sg, int index, quint64 *value) { - *value = 0; - QString valueS = getSymbolString(sg, &IDebugSymbolGroup2::GetSymbolValueTextWide, index); - if (!valueS.startsWith(QLatin1String("0x"))) - return false; - valueS.remove(0, 2); - bool ok; - *value = valueS.toULongLong(&ok, 16); - return ok; + const QString stringValue = getSymbolString(sg, &IDebugSymbolGroup2::GetSymbolValueTextWide, index); + return getPointerValue(stringValue, value); } int CdbSymbolGroupContext::dumpQString(CIDebugDataSpaces *ds, WatchData *wd) diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 376947429e0aa8ed17a847e94bfec311a1b0595b..90e1e9ad462826cad1d2e3e450127c3e4a3b36a3 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -724,8 +724,8 @@ QVariant WatchModel::data(const QModelIndex &idx, int role) const switch (idx.column()) { case 0: return data.name; case 1: return formattedValue(data, - m_handler->m_individualFormats[data.iname], - m_handler->m_typeFormats[data.type]); + m_handler->m_individualFormats.value(data.iname, -1), + m_handler->m_typeFormats.value(data.type, -1)); case 2: if (!data.displayedType.isEmpty()) return data.displayedType; diff --git a/src/plugins/texteditor/completionwidget.cpp b/src/plugins/texteditor/completionwidget.cpp index 7cdbac8577da45a2e07f0e592366388bc788602e..bb6cf900f4e245362309ae446d3c0dce87d79c62 100644 --- a/src/plugins/texteditor/completionwidget.cpp +++ b/src/plugins/texteditor/completionwidget.cpp @@ -166,14 +166,16 @@ bool CompletionWidget::event(QEvent *e) closeList(currentIndex()); return true; case Qt::Key_Up: - if (currentIndex().row() == 0) { + if (!ke->isAutoRepeat() + && currentIndex().row() == 0) { setCurrentIndex(model()->index(model()->rowCount()-1, 0)); return true; } forwardKeys = false; break; case Qt::Key_Down: - if (currentIndex().row() == model()->rowCount()-1) { + if (!ke->isAutoRepeat() + && currentIndex().row() == model()->rowCount()-1) { setCurrentIndex(model()->index(0, 0)); return true; } diff --git a/src/shared/qrceditor/qrceditor.ui b/src/shared/qrceditor/qrceditor.ui index 0fe1b01b42e97966f0d786112652ad2970bb29d3..739b0d8c003e6fc472c13f6ded327054fe0b4266 100644 --- a/src/shared/qrceditor/qrceditor.ui +++ b/src/shared/qrceditor/qrceditor.ui @@ -11,9 +11,6 @@ </rect> </property> <layout class="QVBoxLayout" name="verticalLayout_2"> - <property name="spacing"> - <number>-1</number> - </property> <property name="margin"> <number>6</number> </property> @@ -25,12 +22,6 @@ <verstretch>0</verstretch> </sizepolicy> </property> - <property name="minimumSize"> - <size> - <width>200</width> - <height>200</height> - </size> - </property> </widget> </item> <item> @@ -75,53 +66,47 @@ <property name="title"> <string>Properties</string> </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <layout class="QGridLayout"> - <property name="margin"> - <number>0</number> + <layout class="QFormLayout" name="formLayout"> + <property name="sizeConstraint"> + <enum>QLayout::SetMinAndMaxSize</enum> + </property> + <property name="fieldGrowthPolicy"> + <enum>QFormLayout::ExpandingFieldsGrow</enum> + </property> + <item row="0" column="0"> + <widget class="QLabel" name="aliasLabel"> + <property name="text"> + <string>Alias:</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLineEdit" name="aliasText"/> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="prefixLabel"> + <property name="text"> + <string>Prefix:</string> </property> - <property name="spacing"> - <number>6</number> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLineEdit" name="prefixText"/> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="languageLabel"> + <property name="text"> + <string>Language:</string> </property> - <item row="0" column="1"> - <widget class="QLineEdit" name="aliasText"/> - </item> - <item row="1" column="1" rowspan="2"> - <widget class="QLineEdit" name="prefixText"/> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="prefixLabel"> - <property name="text"> - <string>Prefix:</string> - </property> - </widget> - </item> - <item row="3" column="0"> - <widget class="QLabel" name="languageLabel"> - <property name="text"> - <string>Language:</string> - </property> - </widget> - </item> - <item row="3" column="1"> - <widget class="QLineEdit" name="languageText"/> - </item> - <item row="0" column="0" rowspan="2"> - <widget class="QLabel" name="aliasLabel"> - <property name="text"> - <string>Alias:</string> - </property> - </widget> - </item> - </layout> + </widget> + </item> + <item row="2" column="1"> + <widget class="QLineEdit" name="languageText"/> </item> </layout> </widget> </item> </layout> - <zorder>centralWidget</zorder> - <zorder>groupBox</zorder> </widget> <resources/> <connections/> diff --git a/src/tools/qpatch/files-to-patch-linux b/src/tools/qpatch/files-to-patch-linux index 2cf70c97291f3560934a2dd28e9821cd7ffcae55..78ecaca240dcf7ac7c58755137ad39ac4fad6ba7 100644 --- a/src/tools/qpatch/files-to-patch-linux +++ b/src/tools/qpatch/files-to-patch-linux @@ -62,3 +62,4 @@ lib/pkgconfig/QtWebKit.pc lib/pkgconfig/QtXmlPatterns.pc lib/pkgconfig/QtXml.pc mkspecs/qconfig.pri +.qmake.cache diff --git a/src/tools/qtlibspatcher/qtlibspatchermain.cpp b/src/tools/qtlibspatcher/qtlibspatchermain.cpp index bf92cb3c1a6f802875cda62a125bcbf10729915b..5eef293828a6153698cd6c43f2caadcbe0179ba6 100644 --- a/src/tools/qtlibspatcher/qtlibspatchermain.cpp +++ b/src/tools/qtlibspatcher/qtlibspatchermain.cpp @@ -169,7 +169,7 @@ bool patchDebugLibrariesWithQtPath(const char *baseQtPath) { "/bin/QtCored4.dll" }, { "/bin/QtGuid4.dll" }, { "/bin/QtHelpd4.dll" }, - { "/bin/QtNetworkd4.dll" }, + { "/bin/QtMultimediad4.dll" }, { "/bin/QtNetworkd4.dll" }, { "/bin/QtOpenGLd4.dll" }, { "/bin/QtScriptd4.dll" },