Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@samuelshng
Copy link
Member

@samuelshng samuelshng commented May 14, 2025

Checklist

  • Make sure Windows binary can be built after the rebase
  • Reconcile differences that might cause this to not work with existing GitHub Actions

commit 2546626
Author: Samuel Ng <[email protected]>
Date:   Sun May 12 23:36:25 2024 -0700

    ci: switch upload-artifact to latest version and remove ninja step because I think the cmake step already gets ninja

commit 3a76a16
Author: Samuel Ng <[email protected]>
Date:   Sun May 12 23:21:52 2024 -0700

    ci: build directory

commit f784fc5
Author: Samuel Ng <[email protected]>
Date:   Sun May 12 23:00:43 2024 -0700

    ci: fix build dir syntax

commit 19d6cf0
Author: Samuel Ng <[email protected]>
Date:   Sun May 12 22:54:38 2024 -0700

    ci: make it run in a build dir

commit 9a33fa4
Author: Samuel Ng <[email protected]>
Date:   Sun May 12 22:33:15 2024 -0700

    ci: change submodules to recursive

commit 3a15d49
Author: Samuel Ng <[email protected]>
Date:   Sun May 12 22:24:59 2024 -0700

    ci: make configure line into one line

commit a81842f
Author: Samuel Ng <[email protected]>
Date:   Sun May 12 22:15:36 2024 -0700

    ci: switch run command to folded style

commit b69576d
Author: Samuel Ng <[email protected]>
Date:   Sun May 12 21:22:29 2024 -0700

    ci: fix cmake command

commit ebc61a2
Author: Samuel Ng <[email protected]>
Date:   Sun May 12 21:08:47 2024 -0700

    ci: change boost version due to not supporting 1.85

commit 9bbd1c7
Author: Samuel Ng <[email protected]>
Date:   Sun May 12 21:01:47 2024 -0700

    ci: try accessing qt env var by step id

commit 2ab0c61
Author: Samuel Ng <[email protected]>
Date:   Sun May 12 20:55:19 2024 -0700

    ci: initial try of windows build action
…ged` caused older Qt6 versions to fail compilation, added compile guard
…licitly add all required dependencies for the benefit of having them when building locally using `necktos/act`
@samuelshng samuelshng self-assigned this May 16, 2025
@samuelshng samuelshng requested a review from Drewniok May 16, 2025 06:57
@samuelshng samuelshng marked this pull request as ready for review May 16, 2025 06:57
@samuelshng
Copy link
Member Author

samuelshng commented May 16, 2025

@Drewniok all of the macOS, Ubuntu, and Windows GitHub Actions seem to be working now. As part of the Qt6 migration I had simplified the CMake files because Qt6 has much better CMake support than Qt5, meaning that I no longer have to resort to the hacky qmake calls that existed before to appease the Windows build. You've contributed quite a few improvements to the CMake files but I'm not 100% certain that all of your contributions have been kept (I tried to manually reconcile the ones that I could spot). I don't want to take up too much of your time with this PR but it would just be great to hear whether you can 1. successfully build this version locally on your Mac and 2. take a skim at the CMake files that have been changed to make sure your improvements aren't lost in them. Thank you very much!

@samuelshng samuelshng requested a review from Copilot May 16, 2025 07:03
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Migrate to Qt6 updates the codebase and build system to use Qt6 features and modern C++ standards, replacing deprecated Qt5 APIs. Key changes include:

  • Replacing QRegExp with QRegularExpression and updating related matching patterns.
  • Updating signal–slot connections, shortcut setups, and widget methods to conform with Qt6.
  • Revising CMake configurations, workflows, and documentation to support Qt6 requirements.

Reviewed Changes

Copilot reviewed 55 out of 55 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/gui/widgets/input_field.cc Commented out legacy validator instantiation and updated regex usage for Qt6.
src/gui/widgets/dialog_panel.cc Updated logging output and error messaging to use Qt6 conventions.
src/gui/widgets/design_panel.cc Revised signal–slot connections, event handling, and transform reset methods for Qt6.
src/gui/widgets/components/sim_job.{h,cc} Migrated zip archive handling and regex pattern replacements to Qt6.
src/gui/widgets/components/plugin_engine.cc Updated XML parsing and inner element comparisons for Qt6.
src/gui/commander.cc Converted regex matching to QRegularExpression with global matching.
src/gui/application.cc Adjusted shortcut syntax and XML element tests to align with Qt6 practices.
CMakeLists.txt & root CMakeLists.txt Raised CMake minimum version, updated Qt package references, and modified plugin directory naming.
README.md Updated Linux build instructions to reflect source-based compilation with Qt6.
.github/workflows/* Revised CI workflows for Ubuntu, macOS, and Windows to install Qt6 and related dependencies.
Comments suppressed due to low confidence (1)

src/gui/application.cc:371

  • Using bitwise OR for shortcut combination is correct in Qt6; verify that this change is consistent with the rest of the shortcut implementations.
fit_items_in_view->setShortcut(Qt::CTRL | Qt::Key_Equal);

Comment on lines 13 to 23
// constructor
gui::Validator::Validator(QObject *parent)
: QRegExpValidator(parent)
{
// gui::Validator::Validator(QObject *parent)
// : QRegExpValidator(parent)
// {

}
// }

// destructor
gui::Validator::~Validator()
{}
// // destructor
// gui::Validator::~Validator()
// {}

Copy link

Copilot AI May 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Consider removing the commented-out validator constructor code if it is no longer needed to improve code clarity.

Copilot uses AI. Check for mistakes.

Comment on lines 58 to +62
QStringList list;
int pos = 0;
while ((pos = rx.indexIn(*input, pos)) != -1) {
list << rx.cap(1);
pos += rx.matchedLength();
}
for (QString item : list) {
input->remove(item);
auto it = rx.globalMatch(*input);
while (it.hasNext()) {
auto match = it.next();
list << match.captured(1);
Copy link

Copilot AI May 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modifying the input string inside the regex match loop may lead to unexpected index shifts; consider collecting all matches first and applying removals afterward.

Copilot uses AI. Check for mistakes.

Binary builds for Windows are available in the [Releases](https://github.com/retallickj/siqad/releases) page. Note that one of the first-party simulators, PoisSolver, is not available on Windows builds due to incompatibility of its dependencies. For more information, please refer to the [Windows installation](https://siqad.readthedocs.io/en/latest/getting-started/installation.html#windows) section in our official documentation.

For Linux, a Ubuntu PPA is available:
For Linux, our PPA is out of date. For now please compile from source.
Copy link

Copilot AI May 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Ensure that the Linux installation instructions are updated to clearly reflect the need for compiling from source with Qt6 support and revise related documentation links if needed.

Copilot uses AI. Check for mistakes.

@Drewniok
Copy link
Collaborator

@Drewniok all of the macOS, Ubuntu, and Windows GitHub Actions seem to be working now. As part of the Qt6 migration I had simplified the CMake files because Qt6 has much better CMake support than Qt5, meaning that I no longer have to resort to the hacky qmake calls that existed before to appease the Windows build. You've contributed quite a few improvements to the CMake files but I'm not 100% certain that all of your contributions have been kept (I tried to manually reconcile the ones that I could spot). I don't want to take up too much of your time with this PR but it would just be great to hear whether you can 1. successfully build this version locally on your Mac and 2. take a skim at the CMake files that have been changed to make sure your improvements aren't lost in them. Thank you very much!

Hi @samuelshng,

Many thanks! 🙏 I will have a look asap!

@samuelshng samuelshng merged commit 6a2c9a5 into master Jul 29, 2025
21 checks passed
@samuelshng samuelshng deleted the qt6-migration branch July 29, 2025 06:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants