feat: Add support QtCreator 18 (#246)

This commit is contained in:
Petr Mironychev
2025-10-31 04:08:37 +01:00
committed by GitHub
parent 531fce96b5
commit 64bca47290
3 changed files with 69 additions and 18 deletions

View File

@ -45,13 +45,17 @@ jobs:
cc: "clang", cxx: "clang++"
}
qt_config:
- {
qt_version: "6.8.3",
qt_creator_version: "16.0.2"
}
- {
qt_version: "6.9.2",
qt_creator_version: "17.0.2"
}
- {
qt_version: "6.8.3",
qt_creator_version: "16.0.2"
qt_version: "6.10.0",
qt_creator_version: "18.0.0"
}
steps:
@ -105,13 +109,18 @@ jobs:
shell: cmake -P {0}
run: |
set(qt_version "${{ matrix.qt_config.qt_version }}")
set(qt_creator_version "${{ matrix.qt_config.qt_creator_version }}")
string(REPLACE "." "" qt_version_dotless "${qt_version}")
if ("${{ runner.os }}" STREQUAL "Windows")
set(url_os "windows_x86")
set(qt_package_arch_suffix "win64_msvc2022_64")
set(qt_dir_prefix "${qt_version}/msvc2022_64")
set(qt_package_suffix "-Windows-Windows_11_23H2-MSVC2022-Windows-Windows_11_23H2-X86_64")
if (qt_creator_version VERSION_GREATER_EQUAL "18.0.0")
set(qt_package_suffix "-Windows-Windows_11_24H2-MSVC2022-Windows-Windows_11_24H2-X86_64")
else()
set(qt_package_suffix "-Windows-Windows_11_23H2-MSVC2022-Windows-Windows_11_23H2-X86_64")
endif()
elseif ("${{ runner.os }}" STREQUAL "Linux")
set(url_os "linux_x64")
if (qt_version VERSION_LESS "6.7.0")
@ -120,7 +129,11 @@ jobs:
set(qt_package_arch_suffix "linux_gcc_64")
endif()
set(qt_dir_prefix "${qt_version}/gcc_64")
set(qt_package_suffix "-Linux-RHEL_8_10-GCC-Linux-RHEL_8_10-X86_64")
if (qt_creator_version VERSION_GREATER_EQUAL "18.0.0")
set(qt_package_suffix "-Linux-RHEL_9_4-GCC-Linux-RHEL_9_4-X86_64")
else()
set(qt_package_suffix "-Linux-RHEL_8_10-GCC-Linux-RHEL_8_10-X86_64")
endif()
elseif ("${{ runner.os }}" STREQUAL "macOS")
set(url_os "mac_x64")
set(qt_package_arch_suffix "clang_64")

View File

@ -395,7 +395,12 @@ void GeneralSettings::showModelsNotSupportedDialog(Utils::StringAspect &aspect)
.append(
(&aspect == &ccModel) ? Constants::CC_MODEL_HISTORY
: Constants::CA_MODEL_HISTORY);
#if QODEASSIST_QT_CREATOR_VERSION >= QT_VERSION_CHECK(18, 0, 0)
QStringList historyList
= Utils::QtcSettings().value(Utils::Key(key.toLocal8Bit())).toStringList();
#else
QStringList historyList = qtcSettings()->value(Utils::Key(key.toLocal8Bit())).toStringList();
#endif
auto modelList = dialog.addComboBox(historyList, aspect.value());
dialog.addSpacing();
@ -432,7 +437,12 @@ void GeneralSettings::showUrlSelectionDialog(
(&aspect == &ccUrl) ? Constants::CC_URL_HISTORY
: (&aspect == &ccPreset1Url) ? Constants::CC_PRESET1_URL_HISTORY
: Constants::CA_URL_HISTORY);
#if QODEASSIST_QT_CREATOR_VERSION >= QT_VERSION_CHECK(18, 0, 0)
QStringList historyList
= Utils::QtcSettings().value(Utils::Key(key.toLocal8Bit())).toStringList();
#else
QStringList historyList = qtcSettings()->value(Utils::Key(key.toLocal8Bit())).toStringList();
#endif
allUrls.append(historyList);
allUrls.removeDuplicates();

View File

@ -19,6 +19,7 @@
#include "GetIssuesListTool.hpp"
#include <Version.hpp>
#include <logger/Logger.hpp>
#include <projectexplorer/taskhub.h>
#include <QJsonArray>
@ -61,7 +62,16 @@ void IssuesTracker::onTaskAdded(const ProjectExplorer::Task &task)
m_tasks.append(task);
QString typeStr;
switch (task.type) {
#if QODEASSIST_QT_CREATOR_VERSION >= QT_VERSION_CHECK(18, 0, 0)
auto taskType = task.type();
auto taskFile = task.file();
auto taskLine = task.line();
#else
auto taskType = task.type;
auto taskFile = task.file;
auto taskLine = task.line;
#endif
switch (taskType) {
case ProjectExplorer::Task::Error:
typeStr = "ERROR";
break;
@ -76,8 +86,8 @@ void IssuesTracker::onTaskAdded(const ProjectExplorer::Task &task)
LOG_MESSAGE(QString("IssuesTracker: Task added [%1] %2 at %3:%4 (total: %5)")
.arg(typeStr)
.arg(task.description())
.arg(task.file.toUrlishString())
.arg(task.line)
.arg(taskFile.toUrlishString())
.arg(taskLine)
.arg(m_tasks.size()));
}
@ -102,7 +112,11 @@ void IssuesTracker::onTasksCleared(Utils::Id categoryId)
m_tasks.begin(),
m_tasks.end(),
[categoryId](const ProjectExplorer::Task &task) {
#if QODEASSIST_QT_CREATOR_VERSION >= QT_VERSION_CHECK(18, 0, 0)
return task.category() == categoryId;
#else
return task.category == categoryId;
#endif
}),
m_tasks.end());
int removedCount = beforeCount - m_tasks.size();
@ -201,13 +215,27 @@ QFuture<QString> GetIssuesListTool::executeAsync(const QJsonObject &input)
int processedCount = 0;
for (const ProjectExplorer::Task &task : tasks) {
if (severityFilter == "error" && task.type != ProjectExplorer::Task::Error)
#if QODEASSIST_QT_CREATOR_VERSION >= QT_VERSION_CHECK(18, 0, 0)
auto taskType = task.type();
auto taskFile = task.file();
auto taskLine = task.line();
auto taskColumn = task.column();
auto taskCategory = task.category();
#else
auto taskType = task.type;
auto taskFile = task.file;
auto taskLine = task.line;
auto taskColumn = task.column;
auto taskCategory = task.category;
#endif
if (severityFilter == "error" && taskType != ProjectExplorer::Task::Error)
continue;
if (severityFilter == "warning" && task.type != ProjectExplorer::Task::Warning)
if (severityFilter == "warning" && taskType != ProjectExplorer::Task::Warning)
continue;
QString typeStr;
switch (task.type) {
switch (taskType) {
case ProjectExplorer::Task::Error:
typeStr = "ERROR";
errorCount++;
@ -223,18 +251,18 @@ QFuture<QString> GetIssuesListTool::executeAsync(const QJsonObject &input)
QString issueText = QString("[%1] %2").arg(typeStr, task.description());
if (!task.file.isEmpty()) {
issueText += QString("\n File: %1").arg(task.file.toUrlishString());
if (task.line > 0) {
issueText += QString(":%1").arg(task.line);
if (task.column > 0) {
issueText += QString(":%1").arg(task.column);
if (!taskFile.isEmpty()) {
issueText += QString("\n File: %1").arg(taskFile.toUrlishString());
if (taskLine > 0) {
issueText += QString(":%1").arg(taskLine);
if (taskColumn > 0) {
issueText += QString(":%1").arg(taskColumn);
}
}
}
if (!task.category.toString().isEmpty()) {
issueText += QString("\n Category: %1").arg(task.category.toString());
if (!taskCategory.toString().isEmpty()) {
issueText += QString("\n Category: %1").arg(taskCategory.toString());
}
results.append(issueText);