Skip to content

Add automatic breadboard component placement and routing - #4323

Draft
justin-romano wants to merge 4 commits into
fritzing:developfrom
justin-romano:breadboard-autorouter-improvements
Draft

justin-romano wants to merge 4 commits into
fritzing:developfrom
justin-romano:breadboard-autorouter-improvements

Remove unused cancel button variable

a5e2e7b
Select commit
Loading
Failed to load commit list.
SonarQubeCloud / SonarCloud Code Analysis succeeded Jul 18, 2026 in 5m 53s

Annotations

Check warning on line 290 in src/mainwindow/mainwindow.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Do not assign data members in a constructor. Initialize member "m_showAllLayersAct" in an initialization list.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9yqFck4nb-_Ul_K3Jc&open=AZ9yqFck4nb-_Ul_K3Jc&pullRequest=4323

Check warning on line 75 in tests/auto/test_breadboard_routing_score/test_breadboard_routing_score.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace with the version of "std::ranges::sort" that takes a range.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno6YhqMNRCRO57s6&open=AZ9pno6YhqMNRCRO57s6&pullRequest=4323

Check warning on line 300 in src/mainwindow/mainwindow.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Do not assign data members in a constructor. Initialize member "m_pcbTraceMenu" in an initialization list.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9yqFck4nb-_Ul_K3Jm&open=AZ9yqFck4nb-_Ul_K3Jm&pullRequest=4323

Check warning on line 160 in src/autoroute/breadboardpartpolicy.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Reduce verbosity with "using enum" for "BreadboardPartPolicy::Classification".

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno0ahqMNRCRO57sM&open=AZ9pno0ahqMNRCRO57sM&pullRequest=4323

Check warning on line 303 in src/mainwindow/mainwindow.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Do not assign data members in a constructor. Initialize member "m_viewMenu" in an initialization list.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9yqFck4nb-_Ul_K3Jp&open=AZ9yqFck4nb-_Ul_K3Jp&pullRequest=4323

Check warning on line 371 in src/mainwindow/mainwindow.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Do not assign data members in a constructor. Initialize member "m_closing" in an initialization list.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9yqFck4nb-_Ul_K3Jz&open=AZ9yqFck4nb-_Ul_K3Jz&pullRequest=4323

Check warning on line 469 in src/autoroute/breadboardautorouter.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace with the version of "std::ranges::sort" that takes a range.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno0ShqMNRCRO57rb&open=AZ9pno0ShqMNRCRO57rb&pullRequest=4323

Check failure on line 1676 in src/autoroute/breadboardautorouter.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this function to reduce its Cognitive Complexity from 33 to the 25 allowed.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno0ShqMNRCRO57rm&open=AZ9pno0ShqMNRCRO57rm&pullRequest=4323

Check warning on line 291 in src/mainwindow/mainwindow.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Do not assign data members in a constructor. Initialize member "m_hideAllLayersAct" in an initialization list.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9yqFck4nb-_Ul_K3Jd&open=AZ9yqFck4nb-_Ul_K3Jd&pullRequest=4323

Check failure on line 3181 in src/autoroute/breadboardautorouter.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this code to not nest more than 3 if|for|do|while|switch statements.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno0ShqMNRCRO57sE&open=AZ9pno0ShqMNRCRO57sE&pullRequest=4323

Check warning on line 39 in src/autoroute/breadboardautorouter.h

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this structure so it has no more than 20 fields, rather than the 21 it currently has.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pnoz2hqMNRCRO57rV&open=AZ9pnoz2hqMNRCRO57rV&pullRequest=4323

Check warning on line 885 in src/autoroute/breadboardautorouter.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this structure so it has no more than 20 fields, rather than the 41 it currently has.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno0ShqMNRCRO57rh&open=AZ9pno0ShqMNRCRO57rh&pullRequest=4323

Check failure on line 1736 in src/autoroute/breadboardautorouter.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this code to not nest more than 3 if|for|do|while|switch statements.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno0ShqMNRCRO57rn&open=AZ9pno0ShqMNRCRO57rn&pullRequest=4323

Check failure on line 2612 in src/autoroute/breadboardautorouter.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this code to not nest more than 3 if|for|do|while|switch statements.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno0ShqMNRCRO57r5&open=AZ9pno0ShqMNRCRO57r5&pullRequest=4323

Check warning on line 314 in src/mainwindow/mainwindow.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Do not assign data members in a constructor. Initialize member "m_programView" in an initialization list.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9yqFck4nb-_Ul_K3Js&open=AZ9yqFck4nb-_Ul_K3Js&pullRequest=4323

Check failure on line 64 in tests/auto/test_breadboard_route_graph/test_breadboard_route_graph.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this code to not nest more than 3 if|for|do|while|switch statements.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno6ghqMNRCRO57s8&open=AZ9pno6ghqMNRCRO57s8&pullRequest=4323

Check warning on line 3435 in src/autoroute/breadboardautorouter.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace with the version of "std::ranges::sort" that takes a range.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno0ShqMNRCRO57sH&open=AZ9pno0ShqMNRCRO57sH&pullRequest=4323

Check failure on line 1746 in src/autoroute/breadboardautorouter.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this code to not nest more than 3 if|for|do|while|switch statements.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno0ShqMNRCRO57rp&open=AZ9pno0ShqMNRCRO57rp&pullRequest=4323

Check warning on line 287 in src/mainwindow/mainwindow.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Do not assign data members in a constructor. Initialize member "m_showProgramAct" in an initialization list.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9yqFck4nb-_Ul_K3JZ&open=AZ9yqFck4nb-_Ul_K3JZ&pullRequest=4323

Check failure on line 2683 in src/autoroute/breadboardautorouter.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this code to not nest more than 3 if|for|do|while|switch statements.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno0ShqMNRCRO57r7&open=AZ9pno0ShqMNRCRO57r7&pullRequest=4323

Check warning on line 293 in src/mainwindow/mainwindow.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Do not assign data members in a constructor. Initialize member "m_showBreadboardAct" in an initialization list.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9yqFck4nb-_Ul_K3Jf&open=AZ9yqFck4nb-_Ul_K3Jf&pullRequest=4323

Check failure on line 57 in src/autoroute/breadboardplacementkernel.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this code to not nest more than 3 if|for|do|while|switch statements.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pnozvhqMNRCRO57rS&open=AZ9pnozvhqMNRCRO57rS&pullRequest=4323

Check failure on line 55 in src/autoroute/breadboardroutegraphcore.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this function to reduce its Cognitive Complexity from 26 to the 25 allowed.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pnoyFhqMNRCRO57rO&open=AZ9pnoyFhqMNRCRO57rO&pullRequest=4323

Check warning on line 215 in src/autoroute/breadboardroutegraph.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace with the version of "std::ranges::sort" that takes a range.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno0ihqMNRCRO57sQ&open=AZ9pno0ihqMNRCRO57sQ&pullRequest=4323

Check failure on line 856 in src/autoroute/breadboardautorouter.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace the use of "new" with an operation that automatically manages the memory.

See more on https://sonarcloud.io/project/issues?id=fritzing_fritzing-app&issues=AZ9pno0ShqMNRCRO57rg&open=AZ9pno0ShqMNRCRO57rg&pullRequest=4323