diff --git a/COPYRIGHT b/COPYRIGHT index 61f6751f7..d65254a01 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -1,12 +1,12 @@ klayout is packaged by Peter C.S. Scholtens and Matthias Köfferlein -and was obtained from http://klayout.de/klayout-0.25.tar.gz +and was obtained from https://www.klayout.org/downloads/source/klayout-0.25.1.tar.gz Authors: Matthias Köfferlein Copyright: - Copyright (C) 2006-2017 by Matthias Köfferlein. + Copyright (C) 2006-2018 by Matthias Köfferlein. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/Changelog b/Changelog index acd51aef4..21f41d8f0 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,47 @@ +0.25.1 (2018-02-23): +* Enhancements: build compatibility with MacOS, Qt 5.9. + Qt 4.6+4.7 supported as well with restrictions: + the package installation feature is not working. +* Bugfix: Package manager + - Remove button wasn't enabled if multiple packages were selected + - A potential crash ob removing packages was fixed +* Enhancement: 64 bit coordinate support enabled on Windows builds +* Further bugfixes: See links + - https://github.com/klayoutmatthias/klayout/issues/21 (Autorun(-early) doesn't seem to run when lym files are inside a package) + - https://github.com/klayoutmatthias/klayout/issues/24 (Text insert dialog possible) + - https://github.com/klayoutmatthias/klayout/issues/26 (Exceptions are reported every time they propagate up in the call chain in the ruby debugger) + - https://github.com/klayoutmatthias/klayout/issues/28 (CIF format detection failed) + - https://github.com/klayoutmatthias/klayout/issues/30 (Writer options dialog non-functional on a fresh configuration) + - https://github.com/klayoutmatthias/klayout/issues/32 (rounding issue with instance properties) + - https://github.com/klayoutmatthias/klayout/issues/33 (Plugin factory not working when using with Python) + - https://github.com/klayoutmatthias/klayout/issues/36 (hardening against destruction of object inside event handler) + - https://github.com/klayoutmatthias/klayout/issues/39 (Action cannot be reassigned) + - https://github.com/klayoutmatthias/klayout/issues/40 (Crash in Python binding) + - https://github.com/klayoutmatthias/klayout/issues/41 (Polygon#touches? issue) + - https://github.com/klayoutmatthias/klayout/issues/42 (headless mode support with Qt5/-zz) + - https://github.com/klayoutmatthias/klayout/issues/43 (crash when using Qt specific command line options) + - https://github.com/klayoutmatthias/klayout/issues/44 (Transformation constructor with x,y not working) + - https://github.com/klayoutmatthias/klayout/issues/45 (Partial selection does not capture instance) + - https://github.com/klayoutmatthias/klayout/issues/48 (Cancel does not reset current tool) + - https://github.com/klayoutmatthias/klayout/issues/51 (Segmentation fault on return to main window and other opportunities) + - https://github.com/klayoutmatthias/klayout/issues/53 (unreadable 'about' text) + - https://github.com/klayoutmatthias/klayout/issues/59 (async download of package index and details) + - https://github.com/klayoutmatthias/klayout/issues/62 (QXmlSimpleReader#parse cannot be called) + - https://github.com/klayoutmatthias/klayout/issues/63 (wrong output on DRC non_interacting with empty second input) + - https://github.com/klayoutmatthias/klayout/issues/64 (crash on exit) + - https://github.com/klayoutmatthias/klayout/issues/68 (OASIS reader issue with degenerated shapes) + - https://github.com/klayoutmatthias/klayout/issues/69 (DRC: 'inside' does not merge shapes of second input) + - https://github.com/klayoutmatthias/klayout/issues/71 (target cell argument is required) + - https://github.com/klayoutmatthias/klayout/issues/72 (Edges/Region NOT issue) + - https://github.com/klayoutmatthias/klayout/issues/73 (allow 'change layers' on PCells which support a single layer parameter) + - https://github.com/klayoutmatthias/klayout/issues/74 (small-corner boolean issue) + - https://github.com/klayoutmatthias/klayout/issues/75 (Python PCell issue when parameters are called 'layer') + - https://github.com/klayoutmatthias/klayout/issues/79 (Replace function enabled also for read-only macros) +* Further enhancements: see links + - https://github.com/klayoutmatthias/klayout/issues/29 (permissive mode for OASIS writer on odd-width paths) + - https://github.com/klayoutmatthias/klayout/issues/66 (Authentication dialog indicates retry) + - https://github.com/klayoutmatthias/klayout/issues/77 (copy_tree works in non-editable mode too) + 0.25 (2017-11-04): * Enhancement: Menu customization Menu items can be disabled or enabled now. The former diff --git a/Changelog.Debian b/Changelog.Debian index eb924c70b..15c67929f 100644 --- a/Changelog.Debian +++ b/Changelog.Debian @@ -1,3 +1,10 @@ +klayout (0.25.1-1) unstable; urgency=low + + * New features and bugfixes + - See changelog + + -- Matthias Köfferlein Thu, 22 Feb 2018 22:52:56 +0100 + klayout (0.25-1) unstable; urgency=low * New features and bugfixes diff --git a/src/lay/lay/layMacroEditorDialog.cc b/src/lay/lay/layMacroEditorDialog.cc index 9f0f408c6..a866660f0 100644 --- a/src/lay/lay/layMacroEditorDialog.cc +++ b/src/lay/lay/layMacroEditorDialog.cc @@ -1621,6 +1621,8 @@ MacroEditorDialog::current_tab_changed (int index) // clear the search searchEditBox->clear (); + replaceFrame->setEnabled (page && page->macro () && !page->macro ()->is_readonly ()); + apply_search (); do_update_ui_to_run_mode (); diff --git a/src/lay/lay/layMacroEditorPage.cc b/src/lay/lay/layMacroEditorPage.cc index 804c98741..f82350c44 100644 --- a/src/lay/lay/layMacroEditorPage.cc +++ b/src/lay/lay/layMacroEditorPage.cc @@ -971,6 +971,10 @@ static QString interpolate_string (const QString &replace, const QRegExp &re) void MacroEditorPage::replace_and_find_next (const QString &replace) { + if (! mp_macro || mp_macro->is_readonly ()) { + return; + } + QTextCursor c = mp_text->textCursor (); if (c.hasSelection ()) { c.insertText (interpolate_string (replace, m_current_search)); @@ -982,6 +986,10 @@ MacroEditorPage::replace_and_find_next (const QString &replace) void MacroEditorPage::replace_all (const QString &replace) { + if (! mp_macro || mp_macro->is_readonly ()) { + return; + } + const QTextDocument *doc = mp_text->document (); QTextCursor c = mp_text->textCursor ();