diff --git a/coin/product_dependencies.yaml b/coin/product_dependencies.yaml index 4212b9b2e24..a658f8103be 100644 --- a/coin/product_dependencies.yaml +++ b/coin/product_dependencies.yaml @@ -1,4 +1,4 @@ dependencies: ../../qt/qt5.git: - ref: "6.5" + ref: "6.6" diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-libraries.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-libraries.qdoc index 9d03ea4e892..89376e6a513 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-libraries.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-libraries.qdoc @@ -111,7 +111,7 @@ You can add a library into a \e subdirs project. Use wizards to create the project and the library and to link the library against the project. - \note This tutorial only applies when you select qmake as the the build + \note This tutorial only applies when you select qmake as the build system for the subdirs project. \section1 Creating a shared library diff --git a/src/libs/utils/infobar.cpp b/src/libs/utils/infobar.cpp index 37daa486def..bd6429a7622 100644 --- a/src/libs/utils/infobar.cpp +++ b/src/libs/utils/infobar.cpp @@ -268,6 +268,7 @@ void InfoBarDisplay::update() { for (QWidget *widget : std::as_const(m_infoWidgets)) { widget->disconnect(this); // We want no destroyed() signal now + widget->hide(); // Late deletion can cause duplicate infos. Hide immediately to prevent it. widget->deleteLater(); } m_infoWidgets.clear(); diff --git a/src/plugins/coreplugin/find/searchresultwidget.cpp b/src/plugins/coreplugin/find/searchresultwidget.cpp index 06c59d95ecc..400f8e06370 100644 --- a/src/plugins/coreplugin/find/searchresultwidget.cpp +++ b/src/plugins/coreplugin/find/searchresultwidget.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -93,8 +94,6 @@ SearchResultWidget::SearchResultWidget(QWidget *parent) : topLayout->addWidget(m_topReplaceWidget); m_messageWidget = new QFrame; - pal.setColor(QPalette::WindowText, creatorTheme()->color(Theme::TextColorError)); - m_messageWidget->setPalette(pal); if (creatorTheme()->flag(Theme::DrawSearchResultWidgetFrame)) { m_messageWidget->setFrameStyle(QFrame::Panel | QFrame::Raised); m_messageWidget->setLineWidth(1); @@ -103,8 +102,9 @@ SearchResultWidget::SearchResultWidget(QWidget *parent) : auto messageLayout = new QHBoxLayout(m_messageWidget); messageLayout->setContentsMargins(2, 2, 2, 2); m_messageWidget->setLayout(messageLayout); - m_messageLabel = new QLabel; - m_messageLabel->setPalette(pal); + m_messageLabel = new InfoLabel; + m_messageLabel->setType(InfoLabel::Error); + m_messageLabel->setFilled(true); messageLayout->addWidget(m_messageLabel); layout->addWidget(m_messageWidget); m_messageWidget->setVisible(false); diff --git a/src/plugins/coreplugin/find/searchresultwidget.h b/src/plugins/coreplugin/find/searchresultwidget.h index a9f87c467f1..4a40346343a 100644 --- a/src/plugins/coreplugin/find/searchresultwidget.h +++ b/src/plugins/coreplugin/find/searchresultwidget.h @@ -18,6 +18,7 @@ class QToolButton; class QCheckBox; QT_END_NAMESPACE +namespace Utils { class InfoLabel; } namespace Core { namespace Internal { @@ -123,7 +124,7 @@ private: QWidget *m_descriptionContainer = nullptr; QLabel *m_label = nullptr; QLabel *m_searchTerm = nullptr; - QLabel *m_messageLabel = nullptr; + Utils::InfoLabel *m_messageLabel = nullptr; QToolButton *m_cancelButton = nullptr; QLabel *m_matchesFoundLabel = nullptr; bool m_preserveCaseSupported = true; diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp index eab4bed98d4..3c8290e38cd 100644 --- a/src/plugins/cppeditor/cppquickfixes.cpp +++ b/src/plugins/cppeditor/cppquickfixes.cpp @@ -1953,25 +1953,30 @@ LookupResult lookUpDefinition(const CppQuickFixInterface &interface, const NameA // Try to find the class/template definition const Name *name = nameAst->name; const QList results = interface.context().lookup(name, scope); + LookupResult best = LookupResult::NotDeclared; for (const LookupItem &item : results) { if (Symbol *declaration = item.declaration()) { if (declaration->asClass()) return LookupResult::Declared; - if (declaration->asForwardClassDeclaration()) - return LookupResult::ForwardDeclared; + if (declaration->asForwardClassDeclaration()) { + best = LookupResult::ForwardDeclared; + continue; + } if (Template *templ = declaration->asTemplate()) { if (Symbol *declaration = templ->declaration()) { if (declaration->asClass()) return LookupResult::Declared; - if (declaration->asForwardClassDeclaration()) - return LookupResult::ForwardDeclared; + if (declaration->asForwardClassDeclaration()) { + best = LookupResult::ForwardDeclared; + continue; + } } } return LookupResult::Declared; } } - return LookupResult::NotDeclared; + return best; } QString templateNameAsString(const TemplateNameId *templateName) diff --git a/src/plugins/mcusupport/test/CMakeLists.txt b/src/plugins/mcusupport/test/CMakeLists.txt index 7d2a94c286e..dc1e00a0942 100644 --- a/src/plugins/mcusupport/test/CMakeLists.txt +++ b/src/plugins/mcusupport/test/CMakeLists.txt @@ -1,6 +1,7 @@ extend_qtc_plugin(McuSupport CONDITION WITH_TESTS AND TARGET Googletest DEPENDS Googletest + DEFINES GOOGLE_TEST_IS_FOUND SOURCES unittest.h unittest.cpp packagemock.h diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index 20c65655627..c0e245baf1c 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -821,7 +821,11 @@ void Project::createTargetFromMap(const Store &map, int index) } Kit *k = KitManager::kit(id); - if (!k && !ICore::isQtDesignStudio()) { + if (!k) { + // QDS does not want replacement kits. + if (ICore::isQtDesignStudio()) + return; + Id deviceTypeId = Id::fromSetting(targetMap.value(Target::deviceTypeKey())); if (!deviceTypeId.isValid()) deviceTypeId = Constants::DESKTOP_DEVICE_TYPE; diff --git a/src/plugins/terminal/terminalconstants.h b/src/plugins/terminal/terminalconstants.h index 99700475e60..67b618c62de 100644 --- a/src/plugins/terminal/terminalconstants.h +++ b/src/plugins/terminal/terminalconstants.h @@ -15,5 +15,6 @@ constexpr char CLEARSELECTION[] = "Terminal.ClearSelection"; constexpr char MOVECURSORWORDLEFT[] = "Terminal.MoveCursorWordLeft"; constexpr char MOVECURSORWORDRIGHT[] = "Terminal.MoveCursorWordRight"; constexpr char CLEAR_TERMINAL[] = "Terminal.ClearTerminal"; +constexpr char TOGGLE_KEYBOARD_LOCK[] = "Terminal.ToggleKeyboardLock"; } // namespace Terminal::Constants diff --git a/src/plugins/terminal/terminalpane.cpp b/src/plugins/terminal/terminalpane.cpp index a11284ef1bd..cdbbb850173 100644 --- a/src/plugins/terminal/terminalpane.cpp +++ b/src/plugins/terminal/terminalpane.cpp @@ -125,6 +125,8 @@ TerminalPane::TerminalPane(QObject *parent) updateLockButton(); + connect(&toggleKeyboardLock, &QAction::triggered, m_lockKeyboardButton, &QToolButton::toggle); + connect(m_lockKeyboardButton, &QToolButton::toggled, this, [this, updateLockButton] { settings().lockKeyboard.setValue(m_lockKeyboardButton->isChecked()); updateLockButton(); @@ -292,6 +294,8 @@ void TerminalPane::initActions() closeTerminal.setIcon(CLOSE_TERMINAL_ICON.icon()); closeTerminal.setToolTip(Tr::tr("Close the current Terminal.")); + toggleKeyboardLock.setText(Tr::tr("Toggle Keyboard Lock")); + using namespace Constants; Command *cmd = ActionManager::registerAction(&newTerminal, NEWTERMINAL, m_selfContext); @@ -310,6 +314,10 @@ void TerminalPane::initActions() QKeySequence(HostOsInfo::isMacHost() ? QLatin1String("Ctrl+Shift+]") : QLatin1String("Ctrl+PgDown"))}); + ActionManager::registerAction(&toggleKeyboardLock, + TOGGLE_KEYBOARD_LOCK, + m_selfContext); + connect(&newTerminal, &QAction::triggered, this, [this] { openTerminal({}); }); connect(&closeTerminal, &QAction::triggered, this, [this] { removeTab(m_tabWidget.currentIndex()); diff --git a/src/plugins/terminal/terminalpane.h b/src/plugins/terminal/terminalpane.h index c21d1525120..dc3b4d30f15 100644 --- a/src/plugins/terminal/terminalpane.h +++ b/src/plugins/terminal/terminalpane.h @@ -66,6 +66,7 @@ private: QAction nextTerminal; QAction prevTerminal; QAction closeTerminal; + QAction toggleKeyboardLock; QMenu m_shellMenu; diff --git a/src/plugins/terminal/terminalwidget.cpp b/src/plugins/terminal/terminalwidget.cpp index b2584e1b059..179e729721b 100644 --- a/src/plugins/terminal/terminalwidget.cpp +++ b/src/plugins/terminal/terminalwidget.cpp @@ -571,6 +571,12 @@ bool TerminalWidget::event(QEvent *event) return true; } + if (settings().lockKeyboard() + && QKeySequence(keyEvent->keyCombination()) + == ActionManager::command(Constants::TOGGLE_KEYBOARD_LOCK)->keySequence()) { + return false; + } + if (settings().lockKeyboard()) { event->accept(); return true;