forked from qt-creator/qt-creator
McuSupport: Fix kit creation dialog crash
Use copies of messages to avoid their reference going out of scope Fix increment current message index for when there is only one message Fixes: QTCREATORBUG-30360 Change-Id: I26fac50ed171aaed7d178cc8f97ace401bf49e7c Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -78,12 +78,18 @@ McuKitCreationDialog::McuKitCreationDialog(const MessagesList &messages,
|
|||||||
QPushButton *fixButton = buttonBox->addButton(Tr::tr("Fix"), QDialogButtonBox::ActionRole);
|
QPushButton *fixButton = buttonBox->addButton(Tr::tr("Fix"), QDialogButtonBox::ActionRole);
|
||||||
QPushButton *helpButton = buttonBox->addButton(Tr::tr("Help"), QDialogButtonBox::HelpRole);
|
QPushButton *helpButton = buttonBox->addButton(Tr::tr("Help"), QDialogButtonBox::HelpRole);
|
||||||
|
|
||||||
if (messages.size() == 1) {
|
if (messages.empty()) {
|
||||||
|
fixButton->setVisible(false);
|
||||||
|
m_informationLabel->setText(
|
||||||
|
QCoreApplication::translate("QtC::Autotest", "No errors detected"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (messages.size() < 2) {
|
||||||
m_nextButton->setVisible(false);
|
m_nextButton->setVisible(false);
|
||||||
m_previousButton->setVisible(false);
|
m_previousButton->setVisible(false);
|
||||||
}
|
}
|
||||||
//display first message
|
//display first message
|
||||||
if (messages.size() > 1)
|
if (!messages.empty())
|
||||||
updateMessage(1);
|
updateMessage(1);
|
||||||
|
|
||||||
if (qtMCUPackage->isValidStatus())
|
if (qtMCUPackage->isValidStatus())
|
||||||
|
@@ -255,7 +255,7 @@ McuKitManager::UpgradeOption McuSupportOptions::askForKitUpgrades()
|
|||||||
return McuKitManager::UpgradeOption::Ignore;
|
return McuKitManager::UpgradeOption::Ignore;
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportOptions::displayKitCreationMessages(const MessagesList &messages,
|
void McuSupportOptions::displayKitCreationMessages(const MessagesList messages,
|
||||||
const SettingsHandler::Ptr &settingsHandler,
|
const SettingsHandler::Ptr &settingsHandler,
|
||||||
McuPackagePtr qtMCUsPackage)
|
McuPackagePtr qtMCUsPackage)
|
||||||
{
|
{
|
||||||
@@ -269,7 +269,7 @@ void McuSupportOptions::displayKitCreationMessages(const MessagesList &messages,
|
|||||||
Tr::tr("Errors while creating Qt for MCUs kits"),
|
Tr::tr("Errors while creating Qt for MCUs kits"),
|
||||||
Utils::InfoBarEntry::GlobalSuppression::Enabled);
|
Utils::InfoBarEntry::GlobalSuppression::Enabled);
|
||||||
|
|
||||||
info.addCustomButton(Tr::tr("Details"), [=] {
|
info.addCustomButton(Tr::tr("Details"), [messages, &settingsHandler, qtMCUsPackage] {
|
||||||
auto popup = new McuKitCreationDialog(messages, settingsHandler, qtMCUsPackage);
|
auto popup = new McuKitCreationDialog(messages, settingsHandler, qtMCUsPackage);
|
||||||
popup->exec();
|
popup->exec();
|
||||||
delete popup;
|
delete popup;
|
||||||
|
@@ -59,7 +59,7 @@ public:
|
|||||||
[[nodiscard]] Utils::FilePath qulDirFromSettings() const;
|
[[nodiscard]] Utils::FilePath qulDirFromSettings() const;
|
||||||
[[nodiscard]] Utils::FilePath qulDocsDir() const;
|
[[nodiscard]] Utils::FilePath qulDocsDir() const;
|
||||||
static McuKitManager::UpgradeOption askForKitUpgrades();
|
static McuKitManager::UpgradeOption askForKitUpgrades();
|
||||||
static void displayKitCreationMessages(const MessagesList &messages,
|
static void displayKitCreationMessages(const MessagesList messages,
|
||||||
const SettingsHandler::Ptr &settingsHandler,
|
const SettingsHandler::Ptr &settingsHandler,
|
||||||
McuPackagePtr qtMCUsPackage);
|
McuPackagePtr qtMCUsPackage);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user