Skip to content

Commit 1e8321d

Browse files
author
Matthias Koefferlein
committed
Merge branch 'master' into issue-2224
2 parents 652b596 + b7bda21 commit 1e8321d

30 files changed

+717
-443
lines changed

.github/workflows/build.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
- uses: hmarr/debug-action@v3
5050
- name: Cancel Workflow Action
5151
uses: styfle/[email protected]
52-
- uses: actions/checkout@v5
52+
- uses: actions/checkout@v6
5353
- name: ccache
5454
if: matrix.os != 'ubuntu-24.04-arm'
5555
uses: hendrikmuhs/[email protected]
@@ -66,7 +66,7 @@ jobs:
6666
mkdir -p $HOST_CCACHE_DIR
6767
- name: Build wheels (ARM)
6868
if: matrix.os == 'ubuntu-24.04-arm'
69-
uses: pypa/cibuildwheel@v3.2.1
69+
uses: pypa/cibuildwheel@v3.3.0
7070
env:
7171
# override the default CentOS “yum install … ccache” and drop ccache
7272
CIBW_BEFORE_ALL_LINUX: |
@@ -81,7 +81,7 @@ jobs:
8181

8282
- name: Build wheels (all other platforms)
8383
if: matrix.os != 'ubuntu-24.04-arm'
84-
uses: pypa/cibuildwheel@v3.2.1
84+
uses: pypa/cibuildwheel@v3.3.0
8585
env:
8686
CIBW_BUILD: ${{ matrix.cibuild }}
8787
CIBW_ARCHS_MACOS: ${{ matrix.macos-arch }}
@@ -98,7 +98,7 @@ jobs:
9898
mv ./wheelhouse/.ccache $HOST_CCACHE_DIR
9999
ls -la $HOST_CCACHE_DIR
100100
ccache -s
101-
- uses: actions/upload-artifact@v4
101+
- uses: actions/upload-artifact@v5
102102
with:
103103
name: artifact-${{ matrix.os }}-${{ matrix.cibw_arch }}-${{ strategy.job-index }}
104104
path: ./wheelhouse/*.whl
@@ -108,12 +108,12 @@ jobs:
108108
name: Make SDist
109109
runs-on: ubuntu-latest
110110
steps:
111-
- uses: actions/checkout@v5
111+
- uses: actions/checkout@v6
112112

113113
- name: Build SDist
114114
run: pipx run build --sdist
115115

116-
- uses: actions/upload-artifact@v4
116+
- uses: actions/upload-artifact@v5
117117
with:
118118
name: artifact-sdist
119119
path: dist/*.tar.gz
@@ -122,7 +122,7 @@ jobs:
122122
needs: [build, make_sdist]
123123
runs-on: ubuntu-latest
124124
steps:
125-
- uses: actions/download-artifact@v5
125+
- uses: actions/download-artifact@v6
126126
with:
127127
merge-multiple: true
128128
path: dist
@@ -139,7 +139,7 @@ jobs:
139139
runs-on: ubuntu-latest
140140
if: github.event_name == 'release' && github.event.action == 'published'
141141
steps:
142-
- uses: actions/download-artifact@v5
142+
- uses: actions/download-artifact@v6
143143
with:
144144
merge-multiple: true
145145
path: dist

.github/workflows/cache-maintenance.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-latest
1212
steps:
1313
- name: Check out code
14-
uses: actions/checkout@v5
14+
uses: actions/checkout@v6
1515

1616
- name: Cleanup
1717
run: |

COPYRIGHT

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,19 @@ Authors:
77
Copyright:
88
Copyright (C) 2006-2025 by Matthias Köfferlein.
99

10-
This program is free software; you can redistribute it and/or modify
11-
it under the terms of the GNU General Public License as published by
12-
the Free Software Foundation; either version 2 or 3 of the License.
10+
This program is free software: you can redistribute it and/or
11+
modify it under the terms of the GNU General Public License as
12+
published by the Free Software Foundation, either version 3 of the
13+
License, or (at your option) any later version.
1314

1415
This program is distributed in the hope that it will be useful,
1516
but WITHOUT ANY WARRANTY; without even the implied warranty of
16-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17-
GNU General Public License for more details.
17+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18+
General Public License for more details.
1819

1920
You should have received a copy of the GNU General Public License
20-
along with this package; if not, write to the Free Software Foundation,
21-
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
21+
along with this program. If not, see
22+
<https://www.gnu.org/licenses/>.
2223

2324
On Debian GNU/Linux systems, the complete text of the GNU General
2425
Public License can be found in `/usr/share/common-licenses/GPL'.

src/edt/edt/edtPartialService.cc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -762,9 +762,9 @@ PartialShapeFinder::visit_cell (const db::Cell &cell, const db::Box &hit_box, co
762762
{
763763
if (! point_mode ()) {
764764

765-
for (std::vector<int>::const_iterator l = layers ().begin (); l != layers ().end (); ++l) {
765+
for (std::vector<unsigned int>::const_iterator l = layers ().begin (); l != layers ().end (); ++l) {
766766

767-
if (layers ().size () == 1 || (layers ().size () > 1 && cell.bbox ((unsigned int) *l).touches (scan_box))) {
767+
if (layers ().size () == 1 || (layers ().size () > 1 && cell.bbox (*l).touches (scan_box))) {
768768

769769
checkpoint ();
770770

@@ -897,9 +897,9 @@ PartialShapeFinder::visit_cell (const db::Cell &cell, const db::Box &hit_box, co
897897

898898
} else {
899899

900-
for (std::vector<int>::const_iterator l = layers ().begin (); l != layers ().end (); ++l) {
900+
for (std::vector<unsigned int>::const_iterator l = layers ().begin (); l != layers ().end (); ++l) {
901901

902-
if (layers ().size () == 1 || (layers ().size () > 1 && cell.bbox ((unsigned int) *l).touches (hit_box))) {
902+
if (layers ().size () == 1 || (layers ().size () > 1 && cell.bbox (*l).touches (hit_box))) {
903903

904904
checkpoint ();
905905

@@ -2315,8 +2315,8 @@ PartialService::mouse_release_event (const db::DPoint &p, unsigned int buttons,
23152315
if (ui ()->mouse_event_viewport ().contains (p)) {
23162316

23172317
lay::Editable::SelectionMode mode = lay::Editable::Replace;
2318-
bool shift = ((m_buttons & lay::ShiftButton) != 0);
2319-
bool ctrl = ((m_buttons & lay::ControlButton) != 0);
2318+
bool shift = ((buttons & lay::ShiftButton) != 0);
2319+
bool ctrl = ((buttons & lay::ControlButton) != 0);
23202320
if (shift && ctrl) {
23212321
mode = lay::Editable::Invert;
23222322
} else if (shift) {

src/lay/lay/gsiDeclLayMainWindow.cc

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,12 @@ set_menu_items_hidden (lay::MainWindow *mw, const std::map<std::string, bool> &h
328328
mw->dispatcher ()->config_set (lay::cfg_menu_items_hidden, lay::pack_menu_items_hidden (hv));
329329
}
330330

331+
static void
332+
clear_message (lay::MainWindow *mw, int priority)
333+
{
334+
mw->message (std::string (), 0, priority);
335+
}
336+
331337
Class<lay::MainWindow> decl_MainWindow (QT_EXTERNAL_BASE (QMainWindow) "lay", "MainWindow",
332338

333339
// Dispatcher interface and convenience functions
@@ -475,15 +481,36 @@ Class<lay::MainWindow> decl_MainWindow (QT_EXTERNAL_BASE (QMainWindow) "lay", "M
475481
"\n"
476482
"This method has been added in version 0.24."
477483
) +
478-
gsi::method ("message", &lay::MainWindow::message, gsi::arg ("message"), gsi::arg ("time", -1, "infinite"),
484+
gsi::method_ext ("clear_message", &clear_message, gsi::arg ("priority", -1, "all priorities"),
485+
"@brief Clears the message\n"
486+
"When calling this method with a priority, it will clear the message in the given priority slot, thus "
487+
"unhiding the messages with lower priority. This is equivalent to calling \\message with an empty string.\n"
488+
"\n"
489+
"When calling without a priority, all messages in all priority slots will be cleared.\n"
490+
"\n"
491+
"This method has been added in version 0.30.6."
492+
) +
493+
gsi::method ("message", &lay::MainWindow::message, gsi::arg ("message"), gsi::arg ("time", -1, "infinite"), gsi::arg ("priority", 0),
479494
"@brief Displays a message in the status bar\n"
480495
"\n"
481496
"@param message The message to display\n"
482497
"@param time The time how long to display the message in ms. A negative value means 'infinitely'.\n"
498+
"@param priority The priority of the message. Higher-priority messages have precendence over lower-priority ones.\n"
483499
"\n"
484500
"This given message is shown in the status bar for the given time.\n"
501+
"If a priority is given, higher-priority messages have precedence over lower-priority ones.\n"
502+
"Placing an empty message clears a message with a given priority and unhides messages with lower "
503+
"priority. Standard messages like selection descriptions have priority 0, which is the lowest priority.\n"
504+
"\n"
505+
"Messages generated during modal actions (e.g. 'Click on first point') by convention should have priority 10 "
506+
"and should be tied to the active state of a plugin. This ensures there is only one such message.\n"
507+
"Higher-priority messages must be cleared (set to empty string) explicitly to unhide lower-priority messages "
508+
"when the indicated action is finished.\n"
509+
"\n"
510+
"\\clear_message is a convenience method that will clear messages.\n"
485511
"\n"
486-
"This method has been added in version 0.18. The 'time' parameter was made optional in version 0.28.10."
512+
"This method has been added in version 0.18. The 'time' parameter was made optional in version 0.28.10.\n"
513+
"The 'priority' argument has been added in version 0.30.6."
487514
) +
488515
gsi::method ("resize", (void (lay::MainWindow::*)(int, int)) &lay::MainWindow::resize, gsi::arg ("width"), gsi::arg ("height"),
489516
"@brief Resizes the window\n"

0 commit comments

Comments
 (0)