diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index 7bb3a36c40ddb3876e9861c5399092d032d50c9b..9815b6f2c1622f9c4bec20ba1277ecef0d93a0bd 100644 --- a/src/plugins/cpptools/cppcodecompletion.cpp +++ b/src/plugins/cpptools/cppcodecompletion.cpp @@ -78,7 +78,7 @@ class FunctionArgumentWidget : public QLabel { public: FunctionArgumentWidget(); - void showFunctionHint(Function *functionSymbol, const Snapshot &snapshot); + void showFunctionHint(Function *functionSymbol, const LookupContext &context); protected: bool eventFilter(QObject *obj, QEvent *e); @@ -95,7 +95,7 @@ private: QFrame *m_popupFrame; Function *m_item; - Snapshot m_snapshot; + LookupContext m_context; }; class ConvertToCompletionItem: protected NameVisitor @@ -215,10 +215,10 @@ FunctionArgumentWidget::FunctionArgumentWidget() } void FunctionArgumentWidget::showFunctionHint(Function *functionSymbol, - const Snapshot &snapshot) + const LookupContext &context) { m_item = functionSymbol; - m_snapshot = snapshot; + m_context = context; m_startpos = m_editor->position(); // update the text @@ -1073,7 +1073,7 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item) if (!m_functionArgumentWidget) m_functionArgumentWidget = new FunctionArgumentWidget; - m_functionArgumentWidget->showFunctionHint(function, typeOfExpression.snapshot()); + m_functionArgumentWidget->showFunctionHint(function, typeOfExpression.lookupContext()); } } else if (m_completionOperator == T_SIGNAL || m_completionOperator == T_SLOT) { QString toInsert = item.m_text; diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 81c21e359bb563cb2f799636f1a409832b0849e1..660448a6bcc265224ceb1a736c533d66fe9c3cac 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -452,7 +452,7 @@ QDockWidget *DebuggerManager::createDockForWidget(QWidget *widget) { QDockWidget *dockWidget = new QDockWidget(widget->windowTitle(), m_mainWindow); dockWidget->setObjectName(widget->windowTitle()); - dockWidget->setFeatures(QDockWidget::NoDockWidgetFeatures); + dockWidget->setFeatures(QDockWidget::DockWidgetClosable); dockWidget->setTitleBarWidget(new QWidget(dockWidget)); dockWidget->setWidget(widget); connect(dockWidget->toggleViewAction(), SIGNAL(toggled(bool)), @@ -489,7 +489,7 @@ void DebuggerManager::setSimpleDockWidgetArrangement() void DebuggerManager::setLocked(bool locked) { const QDockWidget::DockWidgetFeatures features = - (locked) ? QDockWidget::NoDockWidgetFeatures : + (locked) ? QDockWidget::DockWidgetClosable : QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable; foreach (QDockWidget *dockWidget, m_dockWidgets) { diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index a573477f32c01b28588ce4463c830a56db414ee6..def2355823c568426f2c0209fcc8f80a152bfe92 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -2504,14 +2504,13 @@ void BaseTextEditor::extraAreaMouseEvent(QMouseEvent *e) } } - if (e->type() == QEvent::MouseButtonPress || e->type() == QEvent::MouseButtonDblClick) { if (e->button() == Qt::LeftButton) { if (d->m_codeFoldingVisible && TextBlockUserData::canCollapse(cursor.block()) && !TextBlockUserData::hasClosingCollapseInside(cursor.block().next()) && collapseBox(cursor.block()).contains(e->pos())) { - setTextCursor(cursor); toggleBlockVisible(cursor.block()); + d->moveCursorVisible(false); } else if (d->m_marksVisible && e->pos().x() > markWidth) { QTextCursor selection = cursor; selection.setVisualNavigation(true); @@ -3392,15 +3391,16 @@ void BaseTextEditor::setIfdefedOutBlocks(const QList<BaseTextEditor::BlockRange> } -void BaseTextEditorPrivate::moveCursorVisible() +void BaseTextEditorPrivate::moveCursorVisible(bool ensureVisible) { QTextCursor cursor = q->textCursor(); if (!cursor.block().isVisible()) { cursor.setVisualNavigation(true); - cursor.movePosition(QTextCursor::PreviousBlock); + cursor.movePosition(QTextCursor::Up); q->setTextCursor(cursor); } - q->ensureCursorVisible(); + if (ensureVisible) + q->ensureCursorVisible(); } void BaseTextEditor::collapse() diff --git a/src/plugins/texteditor/basetexteditor_p.h b/src/plugins/texteditor/basetexteditor_p.h index 270b7444f42953a712557d52e9081d131b84fbb8..9da5b27248c56983873c3f7d88d1766740870319 100644 --- a/src/plugins/texteditor/basetexteditor_p.h +++ b/src/plugins/texteditor/basetexteditor_p.h @@ -218,7 +218,7 @@ public: QTextCursor m_findScope; QTextCursor m_selectBlockAnchor; - void moveCursorVisible(); + void moveCursorVisible(bool ensureVisible = true); }; } // namespace Internal