# MES Model & Refactor® (MES MoRe) - Release Notes

## V5.9.0 2026-03-26

### "Auto Layout": Better Placement of Sink Blocks at Line Branches

- Sink blocks are now placed directly below signal lines that branch from the same source port, providing more intuitive block placement and shorter vertical lines.

### "Auto Layout": Fewer Line Crossings and Bends in Large Subsystems

- In large subsystems, unnecessary line crossings and bends are now avoided more often by improving the vertical block order.

### Removed "Draw Model Border" and "Remove Model Border" Actions

- The actions have been removed because the use case does not appear to be relevant anymore in newer versions of Simulink.

## V5.8.0 2026-02-10

### "Auto Layout" and "Refine Layout": Expanded Block Height Adjustment

- Previously, height adjustment was limited to specific block types (Bus Selector, Bus Creator, Subsystem, Mux, and Demux). Height adjustment is now supported for all other block types as well, provided they have more than four ports. This allows signal lines connected to blocks with many ports to be straightened more efficiently.

- In addition, block height adjustment is now also enabled for linked blocks.

### "Auto Layout": Better Placement of Sink Blocks connected to Inport Blocks

- Sink blocks connected to a single inport block are now separated from other blocks resulting in a more readable layout with fewer line crossings and bends.

### "Auto Layout": Better Placement of Blocks with Top Ports

- Blocks with top ports are now placed to the right of their source block, where appropriate, to ensure better alignment.

## V5.7.0 2025-12-19

### "Auto Layout" and "Refine Layout": Improved Block Height Adjustment

- The block height adjustment has been improved, resulting in straighter signal lines. In particular, large steps in parallel lines are now better avoided, resulting in more compact results.

### "Auto Layout": Fewer Line Crossings and Bends in Large Subsystems

- In large subsystems, unnecessary line crossings and bends are now avoided more often by improving the vertical block order.

### Bug Fixes

- Auto Layout: Fixed a bug that, in rare cases, caused the action to run indefinitely in subsystems with feedback loops.

## V5.6.0 2025-11-04

### "Auto Layout" and "Refine Layout": Cancel Button

- A Cancel button has been added to the processing window for Auto Layout and Refine Layout actions, allowing users to terminate the action. When canceled, the model remains unchanged.

### "Auto Layout": Improved Layout of Feedback Loops

- Crossings of signal lines in a feedback loop are now preferably placed at the outermost left or right part of the loop. This avoids unnecessary line bends.
- In particular, this prevents feedback loops from crossing themselves, making them easier to read.

### Supported MATLAB® Versions

- MoRe now supports MATLAB versions up to 2025b.

### Bug Fixes

- Auto Layout: Fixed a bug that caused an error when the subsystem contained an Integrator block with a state port.

## V5.5.0 2025-09-09

### "Auto Layout": Fewer Bends in Line Branches to Top and Bottom Ports

- In line branches leading to top or bottom ports, unnecessary bends are now avoided in most cases.

### "Refine Layout": Better Routing of Split Signal Lines

- Split lines are now better routed to improve the layout.

### Bug Fixes

- All actions: In MATLAB® R2025a, the license error window that appears when a valid license configuration is missing was hidden behind other windows. The window now opens on top and is visible.

## V5.4.0 2025-08-27

### "Auto Layout": Fewer Crossings of Incoming Lines to Same Block

- Crossings between signal lines leading to the same destination block are now further reduced, resulting in a cleaner data flow.

### "Auto Layout": Improved Layout of Feedback Loops

- Feedback loops are now preferably routed clockwise.
- In addition, the correct orientation of delay blocks such as Delay, Unit Delay and Memory within a feedback loop is now ensured.
- These changes improve the readability of the signal flow within feedback loops.

### "Auto Layout": Better Routing of Lines to Top Ports

- Upward bends in lines to top ports are now avoided. Instead, such lines run to the right and downward where possible. This creates a clearer data flow from the top-left to the bottom-right.

### "Auto Layout": Fewer Line Splits

- The splitting of signal lines that bend in the same direction is now avoided.

### Bug Fixes

- Auto Layout: Fixed a bug that, in rare cases, caused an error when there were multiple connections between two blocks.

## V5.3.0 2025-07-01

### "Auto Layout": Improved Order of Port Blocks

- Parts of the subsystem that are not connected to each other by signal lines are now arranged in the order of the port block numbers.

### Bug Fixes

- All actions that change signal lines: Fixed a bug that, in rare cases, caused an error in a masked subsystem when applying or undoing actions that changed signal lines.

## V5.2.0 2025-06-18

### "Auto Layout": Better Routing of Split Signal Lines

- Signal lines with multiple destinations are now split in a simpler way to improve readability. Previously, these lines often had an overly complex routing, making the model difficult to read.

### Supported MATLAB® Versions

- MoRe now supports MATLAB versions up to 2025a.

## V5.1.0 2025-06-04

### "Auto Layout": Better Routing of Lines in Feedback Loops

- Unnecessary line bends on the right-hand side of feedback loops are now avoided.

### "Auto Layout": Improved Placement of Source and Sink Blocks

- Source and sink blocks with multiple connections are now placed closer to their connected block, and in such a way that their signal lines are as straight as possible.
- Source blocks whose signal line is split to multiple destination blocks are now also placed closer to their connected block.
- The closer placement was already ensured in previous versions for source and sink blocks with a single non-split connection (see release note for V4.3.0) and has now been extended to the cases mentioned above.

### Other Improvements

- Auto Layout: The action no longer creates DLL files in tempdir. Previously, the first call of the action in a MATLAB® session created a jniortools.dll file (~20 MB) in AppData\Local\Temp, which could accumulate and consume significant disk space over time.

## V5.0.1 2025-04-16

### Bug Fixes

- Auto Layout: Fixed a bug that could cause the action to run for a very long time if the model contains many blocks with an even number of input signal lines.

## V5.0.0 2025-04-02

### "Auto Layout": Fewer Line Bends

- Bends in signal lines are now avoided more effectively, making the models easier to understand.

- Line bends are now also avoided by allowing blocks to have a smaller spacing in special cases.

- Line bends are now also avoided by allowing blocks and signal lines to be closer together in special cases.

- Superfluous bends in long signal lines are now avoided as well.

### "Auto Layout": Shorter and Symmetrical Signal Lines

- The vertical part of signal lines is now kept short, making the model easier to understand.

- This also leads to more symmetrical and clearer layouts.

- Symmetrical layouts are preferred, even if one of the lines could actually be straight in an asymmetrical layout.

### "Auto Layout": Fewer Line Crossings

- Signal line crossings are now avoided much more often than before. This makes it easier to track signals and understand the model.

### "Auto Layout": More Compact Arrangement

- Blocks are now placed closer to their connected blocks if possible. This keeps signal lines short and makes the model easier to read.

- The layout of cascaded systems is now also more compact and readable.

- Source blocks (such as Constant blocks) are now placed closer to their connected blocks. Previously, they were often aligned with other more distant source blocks.

### "Auto Layout": More Uniform Arrangement

- The vertical distance between blocks is now more consistent. Previously it could be larger or smaller due to rounding effects.

- Blocks with a branching input signal and no output signals are now placed below the branching point whenever possible to ensure a uniform layout.

### "Auto Layout": Improved Order of Port Blocks

- Port blocks are now arranged in the order of their port numbers, as long as this does not result in additional line crossings. Restriction: This arrangement by port number is not yet supported for port blocks in different parts of the subsystem that are not connected by signal lines.

## V4.26.0 2025-01-03

### Supported MATLAB® Versions

- MoRe now supports MATLAB versions up to 2024b.
- MoRe no longer supports MATLAB versions prior to 2017b.

### "Auto Layout" and "Refine Layout": More Consistent Block Height Adjustment

- The block height adjustment has been improved to avoid inappropriate height adjustment of blocks in feedback loops.

## V4.25.0 2024-09-26

### "Auto Layout" and "Refine Layout": More Consistent Block Height Adjustment

- The block height adjustment has been improved so that inappropriate block height adjustments are avoided. Previously, blocks were rarely resized, although this did not lead to any reduction in line bends.
- The following block types can now be enlarged: bus selector, bus creator, subsystem, mux, demux. Previously, blocks of other types were also inadvertently resized in rare cases.

### Improved Licence Configuration of MES Tools

- The integrated licence configuration tool "MES Licence Manager" now better supports the environment variable "MES_LICENSE_FILE". This variable can be defined by advanced users in the operating system to use the same licence file for different MES tools and tool versions.
- Node-locked licences can now be used more reliably. Previously, they were sometimes not checked out correctly, resulting in licence errors.

## V4.24.0 2024-09-10

### "Auto Layout" and "Refine Layout": Better Structuring of Connected Blocks

- To improve the clarity of the data flow and emphasize the block structure, the vertical block spacing is now based on the signal distance. This means that blocks that have a common source or target block will now be placed closer together than blocks that do not have a common directly connected block.

### "Auto Layout" and "Refine Layout": Clearer Line Routing

- Vertical lines are now drawn with improved horizontal spacing to blocks. This makes it easier to see the connections and understand the data flow.

## V4.23.0 2024-08-27

### "Auto Layout": Better Routing of Lines to Top Ports

- Signal lines that are connected to top ports are now better routed to minimize line bends. Previously, unnecessary bends could occur in the line connecting the top port of a block.

## V4.22.0 2024-08-05

### "Auto Layout" and "Refine Layout": Block Height Optimization to Reduce Line Bends

- To reduce line bends, the actions now adjust the height of blocks in more cases than before. In particular, blocks are now enlarged to allow straight signal lines to multiple connected blocks.
- Previously, the height of blocks was only adjusted if they were connected to a single block on one side and to a single or no block on the other side.
- The height of the following blocks may be adjusted: bus selector, bus creator, subsystem, mux, demux.

### "Auto Layout" and "Refine Layout": Avoid Oblique Lines in Saved Models

- Signal lines entering top ports could become oblique if the model was saved and reloaded after using "Auto Layout" or "Refine Layout". This only occurred if the block with the top port had a certain width. This issue is now fixed by minimally increasing the block width in such cases.

### Supported MATLAB® Versions

- MoRe now supports MATLAB versions up to 2024a.

## V4.21.0 2024-07-02

### "Auto Layout": Better Routing of Lines to Top Ports

- Signal lines that are connected to top ports are now better routed to minimize line bends. Previously, unnecessary bends could occur in the line connecting the top port of a block.

### "Auto Layout" and "Refine Layout": Clearer Line Routing

- The traceability of signal lines is now improved by maintaining a minimum distance between them. Previously, signal lines were sometimes routed too close together, and in rare cases, they even overlapped.

## V4.20.0 2024-06-18

### "Auto Layout": Better Positioning of Blocks in Feedback Loops

- Blocks in feedback loops are now always placed within the loop. Previously, blocks could be shifted out of their actual loop by horizontal alignment, which led to unnecessarily large feedback loops.

## V4.19.0 2024-06-04

### "Auto Layout" and "Refine Layout": Clearer Line Routing

- Vertical signal lines are now drawn with greater horizontal spacing, especially for large models. This makes it easier to see the connections and understand the data flow.

### "Auto Layout": Better Positioning of Port Blocks

- Where possible, port blocks now have a straight signal line to their highest connected port. Previously, there could be unnecessary bends and crossings in the connecting line.

### "Auto Layout": Improved Alignment for Blocks with Top Ports

- Blocks with top ports are now consistently aligned with other blocks, making the layout clearer. Previously, blocks with top ports were aligned differently to blocks without top ports. This sometimes led to small unnecessary deviations in the alignment.

### "Auto Layout": Improved Alignment for Blocks with Line Labels

- The alignment of similar blocks has been improved. Previously, line labels of different lengths could sometimes lead to a horizontal misalignment.

### "Auto Layout": Better Positioning of Blocks with Top Ports

- To simplify the data flow, blocks with top ports are now positioned in a way that leaves enough space for other blocks that are connected to the inports.

### "Auto Layout": Support of Flipped Systems

- Subsystems with flipped blocks, i.e. signal flow from right to left, are now supported. Previously, poor positioning of flipped port blocks caused overly complex line routes.

### "Auto Layout": Improved Results for Duplicated Inport Blocks

- Duplicated inport blocks are now aligned with other inport blocks. Previously, duplicated inport blocks were not positioned on the leftmost side of the layout, together with other inport blocks.

## V4.18.0 2024-05-07

### "Auto Layout": Improved Results for Branched Feedback Loops

- When arranging blocks with feedback loops, a single branched feedback line is now favored over using multiple separate feedback lines. This makes it easier to understand the signal flow.

### Bug Fixes

- Create Subsystem: Fixed a bug that caused an error when applying the action at the root level of a model on a selection that contained port blocks.

## V4.17.0 2024-04-05

### "Auto Layout": More Compact and Readable Results

- Large horizontal gaps between directly connected blocks are now avoided, making the layout more compact and the data flow easier to understand.
- Previously, large distances could be created by wide blocks ...
- ... or by wide line labels.

### "Auto Layout": More Structured Results by Aligning Similar Blocks

- Similar blocks are now aligned in columns for a more structured layout that is easier to understand.
- The similarity is mainly determined by the block type, block size and the number of inports, outports, and control ports.

### "Auto Layout": Better Positioning of Goto/From Blocks

- Goto blocks are now placed to the left of the corresponding From blocks to make the data flow easier to understand.
- Note: We recommend using Goto/From blocks only in exceptional cases.

### "Auto Layout": Fewer Bends in Split Signal Lines

- Split signal lines with line labels often caused unnecessary line bends in the previous version. This has been fixed.

## V4.16.0 2023-12-20

### Easier License Configuration

- The license can now be more easily configured from within MoRe, via the "MES License Manager", which is also used by MXAM.
- If you have a shared license server or license file for MoRe and MXAM, the configured license is automatically used by both tools, meaning that you only have to configure it once.

## V4.15.0 2023-10-10

### Improved Block Alignment in "Auto Layout"

- The alignment of blocks to other blocks above or below has been improved. Previously, a connection to source or sink blocks (e.g. Constant or Terminator) often resulted in a lack of alignment.

### Improved Line Routing in "Auto Layout"

- Line routing has been improved to avoid unnecessarily long lines. Previously, lines passing source or sink blocks (e.g. Constant or Terminator) were often split into unnecessarily long lines.
- Aditionally, source or sink blocks no longer cause unnecessarily long signal feedback.

### Supported MATLAB® Versions

- MoRe now supports MATLAB versions up to 2023b.

## V4.14.0 2023-09-12

### Fewer Line Bends in "Auto Layout"

- Bends in signal lines are now avoided more effectively when blocks are connected by many signal lines.

## V4.13.0 2023-08-29

### Fewer Line Crossings in "Auto Layout"

- Line crossings are now better avoided in subsystems with a large number of signal lines. Previously, the action's block positioning could occasionally cause unnecessary line crossings.

### Bug Fixes

- Auto Layout and Refine Layout: Fixed a bug that caused an unnecessarily large vertical space between two blocks. This occurred when the upper block had a hidden default name, and this block had been selected at least once before the action was applied.

## V4.12.0 2023-08-08

### Improved Spacing between Independent Parts in "Refine Layout"

- Similar to the Auto Layout improvement in the last version, parts of the subsystem that have no signal connections to each other are now separated by a larger y-distance, making them easier to distinguish.

### Bug Fixes

- Auto Layout and Refine Layout: Fixed a bug that caused two issues. The first resulted in excessive horizontal spacing for some blocks. The second caused some blocks to display a very long temporary block name after the action instead of the original block name. Both issues only occurred with special blocks, e.g. a bus selector with the name "BusSelector" (without line break!).

## V4.11.0 2023-07-18

### Improved Block Placement in "Refine Layout"

- "Refine Layout" now better retains the initial arrangement of blocks. Previously, when multiple blocks overlapped in their X-range, the resulting layout could differ significantly from the initial layout.

### Improved Spacing between Independent Parts in "Auto Layout"

- Parts of the subsystem that do not have signal connections to each other are now separated by a larger y-distance, making them easier to distinguish.

### Runtime Improvement for "Auto Layout" and "Refine Layout"

- The runtime for "Auto Layout" and Refine Layout" was reduced in large subsystems with many signals.

### Supported MATLAB® Versions

- MoRe now supports MATLAB versions up to 2023a.

## V4.10.0 2023-06-22

### Block Height Optimization in "Auto Layout" and "Refine Layout"

- To reduce line bends, the actions now adjust block heights. The block height is changed only in specific cases, e.g. for a bus selector or bus creator connected to a subsystem.
- More technically, a block is adjusted to a connected block if it has multiple connections just to this block and only one or no port on the opposite side.

### Improved Placement of Independent Parts in "Auto Layout"

- Parts of the subsystem that do not have signal connections to the rest are now placed separately. Previously, these parts were often placed between other blocks, which made them difficult to see and often led to bends in other signal lines.

## V4.9.0 2023-06-06

### Improved "Auto Layout" and "Refine Layout"

- The horizontal spacing between consecutive blocks has been improved. Previously, the spacing was too large when a signal label was present.
- If the action takes longer than 2 seconds for large models, a window now appears indicating that the action is in progress.
- Applying the action multiple times in a row now has the exact same result. Previously, this could lead to slightly different block positions.

### Improved "Arrange Port Blocks"

- The handling of top and bottom ports has been improved to ensure there is enough space between the line and the edge of the block.

## V4.8.0 2023-04-19

### Option to Exclude Blocks without Ports from "Auto Layout" Action

- In some cases, you may not want blocks without ports to be repositioned when applying the "Auto Layout" action. You can now use a newly added configuration parameter to exclude such blocks from the action.
- Simply activate the feature via "Preferences -> Config File" and set "IncludeBlocksWithoutPorts" to false.

### Improvements

- Auto Layout and Refine Layout: Line routing has been improved to avoid oblique line segments of a branched signal line, which could previously occur in rare cases.
- Action demo models: New demo models for "Auto Layout" and "Refine Layout" are available so that you can try out the actions and learn how to use them. The models can be opened directly from the MoRe demo model, from the documentation of the corresponding actions or from the "demo_models" folder in the installation directory.

### Bug Fixes

- Auto Layout and Refine Layout: Fixed a bug that caused an error in rare cases in models with multi-branched signal lines.

## V4.7.0 2023-03-28

### Improved Line Routing in "Auto Layout" and "Refine Layout"

- Line routing has been improved to avoid unnecessary bends in long or branched signal lines.
- In addition, the action now avoids oblique signal lines, which could previously occur in rare cases.

## V4.6.0 2023-03-17

### New Action "Refine Layout"

- Use this action, like "Auto Layout", to create a clean and uniform layout for the current subsystem or a selected subarea. However, unlike "Auto Layout", the result is based on your current layout.
- You define the structure of the layout by roughly positioning the blocks and lines where you want them. The action then takes care of the remaining time-consuming tasks, such as aligning blocks and optimizing line routes.
- You can interactively optimize the layout by manually adjusting the result and then restarting the action. Repeat these two steps until the layout meets your demands.

### Set Block and Line Parameters with "Auto Layout" and "Refine Layout"

- You can now easily set custom parameters for blocks and lines with the "Auto Layout" and "Refine Layout" action. For example, you can color port blocks and enable signal propagation for lines.
- This saves you the time spent on these manual layout adjustments and ensures the model's consistent appearance.
- Simply activate the feature via "Preferences -> Config File" and set "ApplyMoRePreferencesToBlocksAndLines" to true.

## V4.5.0 2023-02-14

### Apply "Auto Layout" on Selection

- You can now apply the "Auto Layout" action to a selected subarea of your subsystem, so you can lay out this part without changing the rest of the subsystem
- For larger subsystems with independent parts, this allows you to manually arrange the parts as desired and use "Auto Layout" to automatically lay out the individual parts.

### Easier Feedback

- In order to help you more with daily modeling, we have created a "Feedback" submenu where you can simply share your opinions, experiences, wishes, bug reports, or any kind of feedback with us. We greatly appreciate all kinds of feedback.

### Supported MATLAB® Versions

- MoRe now supports MATLAB versions up to 2022b.

## V4.4.0 2023-01-17

### Improved Vertical Block Placement in "Auto Layout" Action

- Blocks are now aligned to the highest connected destination port, if possible. This avoids signal lines splitting into more than two sublines at a single branching point, as required by the MAB guideline db_0032.d.
- This alignment also results in a data flow from top left to bottom right, which is easier to understand.
- In addition, the block placement has been improved to avoid unnecessary line bends in crossing signal lines.

### Bug Fixes

- Auto Layout: Fixed a bug that caused an error when some blocks in the subsystem were rotated 90 degrees clockwise or counterclockwise.
- Auto Layout: Fixed a bug that, after undoing the action, caused commented out blocks to be in the wrong position and connected signal lines to have wrong line points.

## V4.3.0 2022-12-13

### Improved Placement of Connected Blocks in "Auto Layout" Action

- Source and sink blocks are now placed closer to their connected block, and in such a way that the signal line is as straight as possible.
- A typical example is Const and Terminator blocks directly connected to a subsystem block.

## V4.2.0 2022-11-29

### Improved Block Alignment in "Auto Layout" Action

- The horizontal placement of blocks has been improved. Previously, signal labels could cause incorrect alignment.
- As before, blocks with in- and outports are center aligned, blocks with only inports are left aligned, and blocks with only outports are right aligned. However, the center- and right alignment is no longer distorted by signal labels.

## V4.1.0 2022-11-01

### Improved "Auto Layout" Action

- The action is now supported in MATLAB 2017b and 2018a, in addition to the previously supported MATLAB 2018b and later versions.
- Improved handling of signal lines that are fed back directly to their source block (self-loops).
- Blocks that are only connected to a port block are now positioned closer to the port block. This avoids unnecessarily long signal lines and makes the model appear more compact.
- Improved line routing to prevent lines from being too close together or overlapping.

### Other Improvements

- Search Signal by Name: The action now supports the use of the "*" symbol as a wildcard within the signal name to be searched for.

## V4.0.0 2022-10-10

### New Layout Action "Auto Layout"

- This action automatically arranges all blocks and routes all signal lines in the current subsystem, for a clean and uniform layout.
- It is based on established algorithms for the automatic layout of block diagrams.
- The action is available for MATLAB® versions 2018b and newer.

### Bug Fixes

- All actions: Fixed a bug that caused an error when starting an action in a Variant Subsystem.
- All actions that change signal lines: Fixed a bug that occasionally triggered multiple warning messages in the MATLAB command window when undoing the action.

## V3.2.0 2022-08-23

### Bug Fixes

- Arrange Port Blocks: Fixed a bug that caused the port blocks to be incorrectly placed in some rare cases. They were erroneously placed either next to unselected port blocks or far above or below the other blocks of the subsystem.
- All actions: Fixed a bug that caused a referenced model to be reopened in an additional editor window, when starting an action within that referenced model. This only occurred if the referenced model was opened in the same editor window as its parent model, which is possible sinceSimulink® R2019a.

### Supported MATLAB® Versions

- MoRe now supports MATLAB versions up to 2022a.

## V3.1.0 2022-07-12

### Enhanced "Arrange Port Blocks" Action

- The vertical positioning of port blocks has been significantly improved, in order to minimize bends and crossings of the signal lines connected to the port blocks.
- This way, the port blocks are now well positioned, even if a straight line to the connected block is not possible.
- When arranging multiple port blocks, the action attempts to position the port blocks in an order that minimizes the number of line bends and crossings.
- In addition, the action now ensures that vertical lines do not intersect the line labels of the arranged inport blocks.
- The action gives the best results in MATLAB® versions from R2018a and newer, since it is based on Simulink®'s line routing, which has been significantly improved in R2018a.

## V3.0.1 2022-04-27

### Bug Fixes

- Documentation: Fixed a bug that caused an error when opening the documentation from the "Help" submenu of MoRe.

## V3.0 2022-04-08

### Automatic Port Numbering during Actions

- MoRe now automatically sets suitable port numbers for ports created by its actions, as described below. For this reason, in most cases it is no longer necessary to renumber the created ports manually.
- The partition actions "Move Blocks Down" and "Move Blocks Up" now preserve the port order based on the previous connections of the moved blocks.
- This also works if the action changes the total number of ports.
- If an action creates a completely new connection into a subsystem (such as during "Add Cross-Hierarchy Signal" and "Create Subsyst"), the port number is chosen so that the outer signal line is well routed.
- Previously, the created ports were simply assigned the highest port number, i.e. they were added below the existing ports.

### Improvements

- Arrange Port Blocks: This action now ensures that the name of a port block does not obscure the connected block. Previously, this could have occurred if a port block had a very long name.
- Model Simulation Time: Simulink® triggers the update of all tool menus during the simulation of a model. So previously, the menu update of MoRe could slow down the simulation. Now the runtime of MoRe's menu update has been significantly reduced so that MoRe no longer has a noticeable impact on simulation time.

### Supported MATLAB® Versions

- MoRe no longer supports MATLAB versions prior to 2014b.

## V2.18 2022-03-01

### Improvements

- TargetLink® 5.2 Support: MoRe now fully supports TargetLink 5.2. Previously, MoRe actions affecting the TargetLink simulation frame issued a warning regarding the obsolete 'tl_check_ports' function. This warning has been resolved now.

## V2.17 2022-02-16

### New Layout Action "Adjust Blocks to Sources"

- This action adjusts the position and height of blocks in relation to their source ports.
- It complements the "Adjust Blocks to Destinations" action but works in the opposite way.
- In the simplest case, this lets you align the position of blocks with their source ports.
- However, the action also resizes blocks with multiple incoming lines to straighten the lines.
- You can also apply the action to an entire area of a subsystem to straighten the lines and improve the layout.

### New Signal Routing Action "Add Output Signal up to Higher Level"

- Use this action to add a new output signal that goes from the current subsystem you are working on up to a higher level (or top level) subsystem of your choice. This helps you to focus on the current subsystem. You can connect the newly created higher level outport to an external signal later.
- It complements the "Add Input Signal from Higher Level" action but works in the opposite way.
- The new signal can start from a block with an open outport or a line in the current subsystem. If nothing is selected, the signal starts from the new outport block in the current subsystem, as shown in the following example.

## V2.16 2022-01-11

### Improvements

- Rename Signal and Ports Forward: The action now also follows the signal flow into model references, if desired, to continue the renaming within the referenced model.
- Merge Subsystems: A dialog box now asks you which of the subsystems should be merged into the other one.

## V2.15 2021-11-18

### New Layout Action "Adjust Blocks to Destinations"

- This action adjusts the position and height of blocks in relation to their destination ports.
- In the simplest case, this lets you align the position of blocks with their destination ports.
- However, the action also resizes blocks with multiple outgoing lines to straighten the lines.
- In particular, you can also apply the action to an entire area of a subsystem to straighten the lines and improve the layout.

### Bug Fixes

- Break Subsystem: The action is now correctly disabled for subsystems with control ports and MATLAB functions, as this action does not support these kinds of subsystems.

## V2.14 2021-11-03

### Improvements

- Action demo models: A new demo model for "Rename Signal and Ports Forward" is available so that you can try out the action and learn how to use it. The model can be opened directly from the MoRe demo model, from the documentation of the action, or from the "demo_models" folder in the installation directory.
- Add Cross-Hierarchy Signal: A better suggestion for a name is prefilled in the "Name of Created Ports" field in the input dialog. Now the name suggestion is generated from the signal name if no suitable name can be derived from the source port of the selected signal.
- Toolbox File: Installing the evaluation version is easier now as it is no longer necessary to add the license file manually.

### Bug Fixes

- Installing MoRe as a MATLAB® Toolbox: Fixed a bug that led to an unsuccessful MATLAB toolbox installation. The registered trademark symbol in the toolbox path caused this to happen in some instances.

## V2.13 2021-10-06

### MoRe as MATLAB® Toolbox File

- MoRe is now also available as a MATLAB toolbox. This allows you to easily install and update MoRe. You will find the toolbox file (MES_MoRe.mltbx) together with the standard distribution in the delivered zip file.
- The installation of the toolbox is possible in all MATLAB versions from 2014b and newer.
- It may be necessary to add the license file to the toolbox manually after installation. For instructions see README_installation_MoRe_EN.html in the zip file.

## V2.12 2021-09-22

### Improvements

- Preferences: You can now use "Reset Preferences to Default" from the "Preferences" submenu to reset any of the configuration files (MoRe config file, keyboard shortcuts file, and hook for block parameters) to factory defaults.

## V2.11 2021-09-08

### Improvements

- API extension: With the new mes.more.api.arrangePortBlocks function, you can use the "Arrange Port Blocks" action in your own MATLAB® scripts.

### Bug Fixes

- Rename Signal and Ports Forward: Fixed a bug that caused renaming to start at a branch of the source signal line instead of the source signal line itself, even though "Source of Signal" was selected as the starting point. The problem occurred when the selected line was not the source of the signal itself and the source block of the signal was not an inport block.

## V2.10 2021-09-02

### New Action "Rename Signal and Ports Forward"

- This new action allows you to rename a signal forward across all hierarchy levels all the way to the signal's destination blocks. To do so, the action renames all port blocks, existing line labels, and optionally also Goto/From tags on the signal path.
- This action replaces the "Rename Signal and Ports" action, which only renamed the visible ports and line labels.
- You can also use the action to unify your modeling style along the signal path. To do so, you can apply MoRe's config files to all blocks and signal lines along the signal path. For example, you can set the signal label propagation for all lines or a uniform block color for all port blocks.
- The action stops renaming at library or model references and lists these references at the end of the action.

### Improvements

- API extension: With the new mes.more.api.moveBlocksDown function, you can use the "Move Blocks Down" action in your own MATLAB® scripts.

### Bug Fixes

- Merge Subsystems: Fixed a bug that caused an error to occur in the last step of the action when multiple lines had to be rerouted to avoid overlaps with blocks.

## V2.9 2021-08-11

### Easier Tool Update

- After installing a new version of MoRe, you can now use "Import Previous Preferences" from the "Preferences" submenu to import all configuration files (MoRe config file, keyboard shortcuts file, and hook for block parameters) from the previously installed version of MoRe. This only works if the previously installed version is 2.9 or newer.
- Note: The configuration files are no longer located in the installation directory. For quick access to the configuration files, please use the "Preferences" submenu.

### Improvements

- Move Blocks Down: The position of the target system now remains unchanged if the action does not change the number of inports and outports.
- Action demo models: A new demo model for "Add Cross-Hierarchy Signal" is available so that you can try out the action and learn how to use it. The model can be opened directly from the MoRe demo model, from the documentation of the action, or from the "demo_models" folder in the installation directory.

### Bug Fixes

- All actions: Fixed a bug that inadvertently opened the mask dialog when an action was performed in a masked subsystem with a mask dialog.

## V2.8 2021-07-07

### Improvements

- Easier Tool Update: After installing a new version, MoRe automatically uses the license server address and port of the previously installed version now. Thus, installFloatingLicense_MoRe does not have to be called again.

### Bug Fixes

- Move Interface: The action menu entry is now disabled on Stateflow chart subsystems because the action does not support them.

## V2.7 2021-06-16

### Use Actions in Your MATLAB® Scripts

- The first available action to use in your own MATLAB scripts is "Break Subsystem" via the new mes.more.api.breakSubsystem function.
- If you wish to call other MoRe actions from your MATLAB scripts, please contact us.
- The major difference between the mes.more.api.breakSubsystem function and the Simulink® function Simulink.BlockDiagram.expandSubsystem is that the MoRe action preserves the subsystem's port blocks if they have no external connections.

### MoRe Demo Model

- For an easy introduction to MoRe, a new MoRe demo model is available for you in the 'Help' category of the MoRe menu.
- From this demo model, you can browse all the action-specific demo models and try them out one by one to learn more about the different actions.
- New action-specific demo models will be added in the near future.

### Other Improvements

- Action demo models: A new demo model for "Convert Goto/Froms to Lines" is available so that you can try out the action and learn how to use it. The model can be opened directly from the new MoRe demo model, from the documentation of the action, or from the "demo_models" folder in the installation directory.

## V2.6 2021-06-02

### Custom Keyboard Shortcuts

- You can now define custom keyboard shortcuts for your favorite actions to make modeling and refactoring even faster and easier. You can access the shortcuts configuration file directly from the MoRe menu under the category 'Preferences'.

### Other Improvements

- All actions that add or redraw lines: For MATLAB® versions prior to R2017b, line routing has been improved when a line leads to multiple inports of the same block.

### Bug Fixes

- Convert Goto/Froms to Lines: Fixed a bug that caused an error when one of the Goto blocks was connected to a bus selector output.

## V2.5 2021-05-20

### Improvements

- Match Block Size to Icon Text: Now you can also use this action to resize "Compare To Constant" and "Compare To Zero" blocks.
- Action demo models: New demo models for "Match Block Size to Icon Text" and "Move Blocks Down" are available so that you can try out the actions and learn how to use them. The models can be opened directly from the documentation of the corresponding actions or from the "demo_models" folder in the installation directory.

### Bug Fixes

- Merge Bus Selectors: Fixed a bug that caused an error when merging bus selectors whose input buses are nested.
- Straighten Lines from Block: Fixed a bug that caused incorrect port spacing when using the "Resize Start Block" option.

## V2.4 2021-05-05

### Improvements

- Action demo models: A new demo model for "Straighten Lines from Block" is available so that you can try out the action and learn how to use it. The model can be opened directly from the documentation of the action or from the new "demo_models" folder in the installation directory.

### Bug Fixes

- All actions: Fixed a bug that caused an "Invalid Simulink object handle" error when applying any MoRe action. This only occurred when the action was applied after manually deleting a subsystem in the Simulink® editor that was changed by any previous MoRe action.
- Merge Bus Selectors: Fixed a bug that allowed the action to be applied to bus selectors that had no signal source. In this case, an error occurred.

## V2.3 2021-04

### New Action "Split Bus Selector by Destination Blocks"

- This new action allows you to split a bus selector so that each of the destination blocks has its own bus selector.
- The action is particularly useful as a first step when you want to move a bus selector into a subsystem using "Move Blocks Down" but the bus selector has multiple destination blocks. This is also possible with the "Split Bus Selector Below" action but requires manual, time-consuming steps like sorting the output signals according to the destination blocks, and multi-selecting and reconnecting the branching signals. These steps are fully automated in the new action.
- The action also helps you to reduce crossing output signal lines or to shorten the output signal lines of a bus selector.

### Bug Fixes

- Opening the MoRe menu: No warning is displayed in the command window now when opening the MoRe menu, even if the status for all MATLAB®> warnings is set to 'on'. Previously, a bug issued a warning (identifier: 'MATLAB:subscripting:noSubscriptsSpecified') when opening the MoRe menu in MATLAB versions 2015b and newer.
- Move Blocks Down: If there are duplicate inport blocks in the target system, you will now get a warning dialog and will not be able to apply the action. Previously, in this case, applying the action resulted in incorrectly connected blocks.

## V2.2 2021-03

### New Action "Match Block Size to Icon Text"

- This new action allows you to automatically resize blocks to match the text displayed on their icon. For example, Constant blocks are resized so that the parameter value is displayed in full instead of as "-C-". Or the size of Goto and From blocks is resized to match the size of their tag name.
- The action also makes oversized blocks smaller resulting in a uniform layout for blocks that have icon text.
- You can also apply the action to multiple blocks at the same time. If you apply the action for multiple blocks simultaneously, blocks of the same type can be given the same size. This is particularly useful when the blocks are vertically aligned and should have the same size for a more uniform or attractive layout.
- The action supports the following block types: Constant, Enumerated Constant, Goto and From, DataStoreRead and DataStoreWrite, DataStoreMemory, DataTypeConversion, FromFile and ToFile, FromWorkspace and ToWorkspace, GotoTagVisibility and Trigonometry.
- The action can be performed on all selected blocks or, if no blocks are selected, on all supported blocks in the current subsystem.

### Improved "Remove Cross-Hierarchy Signal Backward" Action

- The "Choose Stopping Block" dialog of the action now clarifies if and why certain blocks cannot be selected as stopping blocks. If the removal of the signal up to the specified block would cause signals in other branches to lose their source signal, then these blocks cannot be selected. To make this clear, these blocks will appear in the list of the dialog but they will be grayed out and you cannot select them. Additionally, if these blocks are in the list, a new text field above the list explains why these blocks are grayed out and why you cannot select them.

### Other Improvements

- All actions that create or arrange port blocks: Blocks in the model that have no ports (e.g. DocBlocks, Enable or Trigger blocks) now only have a limited influence on the positioning of inport or outport blocks. Previously, these blocks were treated the same as all other blocks in the model. Sometimes this led to inport or outport blocks being positioned unnecessarily far to the right or left in the model.
- Remove Cross-Hierarchy Signal Backward/Forward: These actions use dialogs that list blocks by their path. The display of these block paths has been improved to differentiate the blocks from each other more easily. It now only displays the last part of the path, including the name, which aids understanding. The common start string of all block paths is displayed in the root node.
- Remove Cross-Hierarchy Signal Backward: If there is a Goto and From block pair on the backward path of the selected signal, the Goto block can now also be selected as the stopping block for the removal. In this case, the signal is removed backward up to and including the From block. Previously, the Goto block was not available for selection as stopping block.
- Straighten Lines from Block: Applying the action now always results in the same positioning of blocks that are directly connected to the selected block, regardless of whether you selected "recursive" in the action's dialog or not.

### Bug Fixes

- Remove Cross-Hierarchy Signal Backward: Fixed a bug that caused the action to continue removing a sub-signal backward after reaching a virtual block, even though this block was selected as stopping block. This only occurred if there were other signals in the bus and the virtual block had at least one destination block.
- Remove Cross-Hierarchy Signal Backward: Fixed a bug that caused Goto and From blocks not to be removed.
- Remove Cross-Hierarchy Signal Backward: Fixed a bug that caused an error when a From without a Goto block was on the backward path of the signal to be removed.
- Remove Cross-Hierarchy Signal Backward: Fixed a bug that caused blocks before a Goto block to be selectable as stopping blocks for the removal, even though the Goto block has other From blocks where the target signal is used or selected somewhere forward in the data flow. So in this case, selecting one of these stopping blocks would have caused signals to lose their source signal.
- Remove Cross-Hierarchy Signal Backward: Fixed a bug that caused blocks before a branch point to be selectable as stopping blocks for the removal, even though a sub-signal of the sub-signal to be removed was selected via bus selector in another branch. So in this case, selecting one of these blocks as stopping block would have caused signals to lose their source signal.
- Remove Cross-Hierarchy Signal Backward: Fixed a bug that caused blocks before a branch point not to be selectable as stopping blocks for the removal because a super-signal of the sub-signal to be removed was selected via bus selector in another branch even though this super-signal was not used at all. So in this case the blocks should have been available for selection.

## V2.1 2021-01

### Improvements

- Simulink® R2020a and R2020b are now fully supported. Previously, in these versions an applied MoRe action could not be undone.
- Move Interface: A new button in the dialog allows you to switch directly to the "Straighten Lines from Block" dialog for quick and easy subsequent layout optimization.
- Add Input Signal From Higher Level: The dialog is now also displayed correctly if a display scaling factor of more than 100% is set in Windows. Previously, the radio buttons were partially obscured because the total size of the dialog was too small. In addition, the tree view became too small.
- Jump to Usage Destinations: The visual appearance of the dialog was redesigned.
- Search Signal by Name: The visual appearance of the dialog was redesigned. Additionally, the search field is active when the dialog is opened. The dialog can also be closed by pressing the escape key now.
- For MATLAB® version 2019a and newer, MoRe is now added to the menu bar of the Stateflow editor. Even if no actions are available in Stateflow yet, this prevents the editor's navigation arrows from changing position when navigating upwards from a Stateflow diagram. This problem only occurred when no other customizations were enabled in the Stateflow editor.
- Search Signal by Name, Jump to Usage Destinations, Move Interface and Draw Model Border: When applying these actions, a warning regarding the 'JavaFrame' property is no longer issued on the command line. This previously occurred for MATLAB versions 2019b and newer.

### Bug Fixes

- Break and Merge Subsystem: Fixed a bug that caused the loss of signal connections that directly connected an inport block to an outport block within the subsystem to be merged or broken.

## V2.0 2020-10

### New Menu Design

- The menu has been redesigned to improve clarity while allowing quick access to recently used actions.
- To improve clarity, the actions are categorized in submenus. They are sorted in descending order of estimated frequency of use.
- For quick access, a new list at the top of the menu allows you to directly start a recently used action.
- The most recently used action always appears at the top of this list.
- The list is kept short by displaying only actions that are applicable to the current selection.
- The maximum number of list elements can be configured in the MoRe.ini file. The default value is five.

### New Action "Add Input Signal From Higher Level"

- Use this action to add a new input signal coming from a higher-level (or top-level) subsystem to the current subsystem you are working on. This helps you to focus your work on the current subsystem and connect the new high-level inport to an external signal later. Often these high-level connections are established by additional tools, which automatically generate the highest levels of the model.
- The dialog remembers the level of the last source system and selects the subsystem on this level as the source at the next start. This speeds up the action if the signals should always come from the same level.
- The name of the ports and lines to be created is taken from the clipboard when the dialog is started. This speeds up the action if the name was copied elsewhere before.

### Other Improvements

- Rename Signal and Ports: When renaming a signal, the action now updates all dependent propagated signal labels and bus signal names.
- Remove Cross-Hierarchy Signal Forward: The action now also follows the data flow into atomic subsystems and continues the removal process there. Previously, the process stopped at the inport of an atomic subsystem.
- Jump to Usage Destinations: When the "Back to Selected Signal" button is selected in the "Usage Places" dialog, the function now also highlights the virtual blocks on the signal path to the selected usage place. Previously, only the lines on the signal path were highlighted.
- Highlight to all Sources: The action now asks to remove existing highlighting before adding a new one.
- The hook function file for setting block parameters ('MoRe_hook_BlockParameters.m') can now be accessed directly via a new entry in the MoRe menu under the category 'Preferences'.

### Bug Fixes

- All actions that delete or move signal lines: Fixed a bug that caused the propagated signal label of a line to be empty ('<>') after undoing the action. This only affected lines with activated signal label propagation.
- All actions that add or redraw lines: Fixed a bug that caused an error when the action created a line where signal label propagation is not possible (e.g. the outgoing line of a bus selector) and signal label propagation was activated in the MoRe.ini config file.
- Remove Cross-Hierarchy Signal Forward: Fixed a bug that caused the entire bus leaving a bus creator to be deleted when only a single input signal was selected for removal. The error occurred only when the signal was not named at the selected line itself but further ahead in the data flow (e.g. in an upstream subsystem).
- Remove Cross-Hierarchy Signal Forward: Fixed a bug that, when removing the only sub-signal of a bus, caused the corresponding signal lines and virtual blocks to not be deleted.
- Jump to Usage Destinations: Fixed a bug that caused no destination blocks to be found when the input signal of a bus creator was selected. The error occurred only when the signal was not named at the selected line itself but further ahead in the data flow (e.g. in an upstream subsystem).
- Redraw Line: The action now preserves font-specific parameters of the line labels, so that e.g. font sizes and styles remain the same.

## V1.4.1 2020-07

### Avoidance of Multiple Signal Labels

- All actions that add or redraw lines: For a branched line with a signal label, this signal label is now only displayed at the root segment of the line. Previously, in MATLAB® versions prior to R2017b, the signal label was displayed at all segments of the line which often resulted in overlapping signal labels.

## V1.4 2020-07

### New Hook Function for Setting Block Parameters

- With the new hook function MoRe_hook_BlockParameters.m, parameters for blocks created by MoRe can be set more precisely than with the MoRe.ini config file. For example, the color of all created inport blocks can be set in this file.
- The parameters set via this function have priority over the general block parameters from the MoRe.ini config file.
- The MoRe_hook_BlockParameters.m function is located in the hooks folder and can be freely extended according to the documentation in the file.

### Other Improvements

- The configuration file ('MoRe.ini') can now be accessed directly via a new entry in the MoRe menu under the category 'Preferences & Help'.
- All "Partition" Actions (Move Blocks Up/Down, Split Subsystem, Merge Subsystems, Create/Break Subsystem): The runtime of the actions for large subsystems has been significantly reduced.
- Jump to Usage Destinations: The action can now also be applied if the selected signal line is branched.
- Break and Merge Subsystem: If a subsystem that is broken up using "Break Susbystem" or merged into another subsystem using "Merge Subsystem" is externally connected to signal lines, but these lines are not connected to other blocks in the subsystem, these lines are automatically deleted when the action is applied.

### Bug Fixes

- All actions that modify or delete signal lines: Fixed a bug that caused certain line parameters to lose their original value after undoing the action. This affected all line parameters that are not stored in the source port, such as 'FontSize' or 'FontAngle'.
- All actions that modify or delete signal lines: Fixed a bug that in rare cases caused segments of a branching line not to connect properly after undoing the action.
- All actions that move annotations (e.g. Move Blocks Up/Down, Create Subsystem, Break Subsystem, ...): Fixed bug that caused the undo action to fail when moving two or more annotations with the same name.
- Arrange Port Blocks: Fixed a bug that caused an error when an outport block was arranged that was connected to an open line.
- Create Bus: Fixed a bug that caused an error if the signal hierarchy could not be determined for at least one of the selected signal lines.

## V1.3 2020-04

### Added New Action "Arrange Port Blocks"

- Inport and/or outport blocks present in the subsystem can be automatically arranged now.
- The action can be applied either to all port blocks of the subsystem or only to the selected port blocks.

### Added New Action "Convert Goto/Froms to Lines"

- Goto/From connections can now be converted to corresponding signal lines.
- The action can convert either all Goto/From connections of the current subsytem or only the selected connections.
- The action can also convert connections where the Goto/From blocks are located in different subsystems or model parts (scoped or global tag visibility).

### Improved "Add Cross-Hierarchy Signal" Action

- The signal line parameters from the MoRe.ini configuration file are now only applied to the lines that the action actually creates. Previously, the parameters were also applied to open lines that the action only reroutes to a destination port and to lines to which the action only adds a new branch. For example, if the SignalPropagation parameter is set to 'on' in the MoRe.ini file and the action is started on an open signal line, this parameter is not set for this line, because the line is just rerouted by the action.
- If an open signal line branch is selected as source for the action, this selected branch is now used as starting point for the cross-hierarchy signal. Previously, a new branch was created in addition to the selected branch and this new branch was used as starting point.
- If the action reroutes an existing open signal line, all line parameters (such as font and font size) are now preserved.

### Other Improvements

- All actions that add or redraw lines: The newly created lines are now routed with MATLAB's "smart" autorouting option in MATLAB® versions R2017b and above. This improved routing prevents lines from overlapping, among other things.
- Merge Bus Selectors: The action now preserves the order of the merged output signals, i.e. the signals of the topmost bus selector are selected first and in the original signal order, followed by the signals of the second topmost bus selector in the original signal order and so on. Previously, the output signals were lexicographically sorted, which often led to crossing signal lines.
- All actions that create inport/outport blocks: The position of newly created port blocks now also depends on the length of a signal name / propagated signal name. This ensures that there is sufficient space to display the signal name between the port block and the destination/source block.
- Insert Subsystem Outport Above/Below: This action can now also be applied if the selected outgoing line is branched. Any of the line segments can be selected in order to do so.
- MoRe can now safely be used in parallel with older slRefactor versions of the tool, as all functions present in both tools have been renamed to avoid shadowing.

### Bug Fixes

- Fixed bug that caused an error when opening the MoRe menu when two subsystems were selected along with other non-subsystem blocks.
- All "Partition" Actions (Move Blocks Up/Down, Split Subsystem, Merge Subsystems, Create/Break Subsystem): Fixed bug that, when moving blocks in a library, caused the action to convert those blocks into linked blocks with an unresolved reference to the origin of the block.
- All "Partition" Actions (Move Blocks Up/Down, Split Subsystem, Merge Subsystems, Create/Break Subsystem): Fixed bug that, when moving a bus selector block, caused the signal labels of the block's outgoing signal lines to be hidden after the action.
- All "Partition" Actions (Move Blocks Up/Down, Split Subsystem, Merge Subsystems, Create/Break Subsystem): Fixed bug that, when moving blocks, caused the block outports to lose their 'DataLoggingName' parameter.
- Move Interface: Fixed bug that, for port names with line breaks, created additional selectable lines in the Move Interface dialog for each line in the port name. The bug may have caused an error when moving the ports in the dialog and may have led to an unexpected port order after applying the action.
- Create InMap: Fixed bug that caused an error when trying to apply the action to a subsystem where one or more input signals are not bus signals.

## V1.2 2019-12

### Improved TargetLink® support

- All actions that create inport/outport blocks: Instead of normal inport and outport blocks, TargetLink inport and outport blocks are now created if necessary, according to the Modeling Guidelines for dSPACE TargetLink (version 4.0.3, paragraph 4.3). If TargetLink inport or outport blocks are added to a TargetLink subsystem, the actions properly update the TargetLink simulation frame containing the TargetLink subsystem (i.e. the two intermediate technical subsystems above the TargetLink subsystem).
- Add Cross-Hierarchy Signal: Signals can now also be routed into or out of TargetLink subsystems. This action also properly updates the TargetLink simulation frame containing the TargetLink subsystem.
- All actions that move blocks into or out of subsystems (e.g. Move Blocks Up/Down, Create Subsystem, Break Subsystem, ...): TargetLink simulation frame blocks can now also be moved. Previously, when undoing an action, this caused an error.

### Bug Fixes

- All actions that delete or redraw lines: Fixed bug that caused the order of the line children of a branched line to not be correctly restored when undoing an action that deleted or redrew that branched line.
- All actions that set or change block names: Fixed bug that caused an error when the new name to be set and an existing name in the same system differed only by different whitespace characters ([' ', '\f', '\n', '\r', '\t', '\v']).

## V1.1 2019-09

### Improved Alignment of Dialogs

- All dialogs are now aligned to the upper right corner of the editor so that the center of the editor remains visible. Previously, all dialogs were opened in the center of the monitor, which obscured the main part of the subsystem.

### Reduced Runtime of Most Actions

- The runtime of most actions has been significantly reduced, in particular when undoing an action. Some examples are listed below:
- The runtime for undoing the "Straighten Lines From Block" action has been reduced to approx. 10% (runtime of action itself to approx. 60%).
- The runtime for undoing the "Move Blocks Down" action has been reduced to approx. 30% (runtime of action itself to approx. 70%).

### Improved Drawing of Branched Signal Lines

- For all actions that add or redraw branched signal lines, the position of the branching point is now optimized so that there is no overlapping of the branching lines anymore. Previously, the branching point was positioned near the source port so that the branching lines overlapped, which looked unsightly.

### Other Improvements

- Analysis Actions: The analysis actions are now also possible in locked library subsystems. Previously, they were deactivated there.
- Straighten Lines from Block: The action now also works for flipped blocks, i.e. when the signal flow in the subsystem goes from right to left.
- Rename Signal and Ports: The input dialog for the new name is now initialized with the name of the signal. If the signal has no name, the name of the source port is used, provided this is not an automatic name. Previously, the dialog was initialized with an empty string.

### Bug Fixes

- All actions that move blocks into or out of subsystems (e.g. Move Blocks Up/Down, Create Subsystem, Break Subsystem, ...): Fixed bug that caused the line tree between moved blocks to be broken by the actions in both Do and Undo. This only occurred when lines of the tree overlapped in a certain way.
- Rename Signal and Ports: Fixed bug that caused the action to raise an error when the specified signal name was empty. Now the dialog reopens until a non-empty string has been entered.
- Rename Signal and Ports: Fixed bug that caused the action to raise an error when the input dialog was canceled.
- Analyze -> Highlight to all Sources: Removed superfluous waitbar at the beginning of the action and message box at the end of the action.
- Analyze -> Search Signal by Name: Fixed bug that caused the action to raise the error "Undefined function 'splitlines' for input arguments of type 'char'." in versions below R2016b.
- All actions that create inports/outports at subsystems: Actions are now disabled on Stateflow chart subsystems where they have previously thrown errors.

## V1.0 2019-07-05

### Added Undo Functionality

- All actions can now be undone or redone via the MoRe menu. It is also possible to undo or redo several consecutive actions.

### New Downward Compatibility

- In order to guarantee full undo functionality, the downward compatibility had to be raised to R2012b.

### Rearrangement of the Menu Entries

- To speed up access to regularly used actions, most of the actions from submenus have been moved to the top menu.
- To limit the number of actions in the top menu, the analysis actions have been left in a sub-menu, since analysis activities are usually less time-critical than modeling activities.
- Actions with very special use cases have been moved to a new submenu called "other".
- The actions for calling help, contacting support and opening the "about" dialog have been moved to a new submenu called "help".

### Revision of the "Straighten Lines" Action

- To clarify the purpose of the action, it has been renamed to "Straighten lines from block".
- Graphical revision of the dialog.
- Improvement for feedback loops: In order to exclude a feedback loop from the straightening process and thus visually preserve it, straightening an outgoing line is now stopped when the destination port of a line is further to the left than the source port of the line (for incoming lines it's the other way around).
- If a line to be straightened has several connected blocks, the block whose port has the smallest height difference to the source port is now shifted in height. Previously, the block positioned at the top was shifted, which often led to unsightly results.
- The straightened lines are now drawn with autorouting, so that they do not cross other blocks anymore.
- Lines connected to top ports of blocks (control ports) are now properly straightened. Previously, this led to an oblique line.

### Revision of "Partition" Actions (Move Blocks Up/Down, Split Subsystem, Merge Subsystems, Create/Break Subsystem)

- Inport and outport blocks connected to the selected blocks are now automatically moved. Previously there was a corresponding warning dialog, which is no longer displayed.
- Selected annotations are now also moved by the actions.
- Selected inport and outport blocks that do not have outer connected lines are now also moved by the actions.
- Unified positioning algorithm: All partition actions now use the same algorithm to position the blocks in the target system. The blocks are aligned to the connected target blocks.

### Other Improvements

- Dialogs are now always on top: To make switching between the non-modal dialogs of MoRe and the model easier, the dialogs now remain in the foreground when switching to the Simulink® Editor.
- Revision of the dialogs from "Jump to Source" and "Jump to Usage Destinations" in which the user should select a bus signal.
- For the "Create InMap" action, the positioning of the bus creators and bus selectors has been improved.

## V0.9 2019-01-29

### Improved Auto-naming of Port Blocks Created by Actions

- All port blocks created by actions are now automatically named. Previously, this was only done by the "Create Subsystem ..." action.
- Port blocks created by actions are now automatically named after connected ports if the connected signal has no name. Previously, the port blocks were only named after the connected signal.
- The AutoNamePortBlocks parameter was added to the MoRe.ini file which can be used to enable or disable the auto-naming of created port blocks.

### Improved Auto-positioning of Blocks Created by Actions

- If a new inport block has to be positioned left to all existing blocks in the subsystem, the inport is now really positioned left to the blocks. Previously, as position values below 15 are not supported in MATLAB® versions below R2012b, the inport was always positioned below the existing blocks. Technically, the exisiting blocks are now shifted to the right to circumvent this limitation.
- New port blocks are now vertically placed closer to each other if the name of the upper block is hidden and if this helps to keep the line to the connected port straight.
- New MarginTop and MarginLeft parameters were added to the MoRe.ini file which can be used to customize the auto-positioning of newly created blocks.

### Other Improvements

- Partition -> Split Subsystem: Action now preserves the names of ports splitted to a new subsystem.
- All partition actions: The creation of multiple port blocks that are connected to the same signal in the parent system is now avoided. Now, a single port block is created and the signal is split up inside the subsystem.
- Partition -> Create Subsystem: Action was renamed from "Create Subsystem and Set Port Names to Signal Names" to "Create Subsystem". As the port names are now also set to connected port names, the name was imprecise anyway. So, to keep it short and concise, the name was reduced to the main purpose of the action.

### Bug Fixes

- Signal Routing -> Remove Cross-Hierarchy Signal Backwards: Fixed bug that caused the action to fail if a line with multiple destination ports was selected.
- Partition -> Split Subsystem: Fixed bug that caused the action to fail if a port block was selected to be split that has no connected block or that is just connected to another port block.
- Partition -> Split Subsystem: Fixed bug that caused the action to create unconnected lines if port blocks were selected to be split that have no outer connections.

## V0.8 2018-10-02

### Configuration File MoRe.ini (previously slRefactor.ini)

- Added the possibility to define default parameters for lines and blocks created by the tool. The line parameters can be specified in the new [line] section and the block parameters in the new [block] section of the MoRe.ini file. It is possible to add all kinds of parameters and values to the sections that can be set via the set() function of the Simulink® API.
- The show_block_names parameter from the [general] section was removed, because the behavior of this parameter is identical to the ShowName parameter of the Simulink API, which can now be customized in the new [block] section. As this was the only parameter of the [general] section so far, the complete [general] section was removed.

### Improvements

- Signal Routing -> Add Cross-Hierarchy Signal: Action can now be applied on signals that are already connected to destination ports. In this case, a new signal branch is created, which is routed to the selected target.
- Signal Routing -> Add Cross-Hierarchy Signal: If the same name should be assigned to all signal lines created by the action, this is better done by just defining the name of the source signal line and then using the "Show propagated signals" option of the following signal lines. Therefore, the option to define a signal name in the action's dialog was removed to simplify the dialog. To propagate the signal name automatically for all signal lines created, the SignalPropagation and ShowPropagatedSignals properties can be predefined in the new [line] section of the tool's MoRe.ini file.
- Partition -> Move Blocks Down: If the selected blocks are already forward connected to some subsystems, these subsystems are listed first in the list of potential target subsystems.

### Bug Fixes

- Signal Routing -> Add Cross-Hierarchy Signal: Fixed bug that caused action to raise an error if source signal has the same name as an inport in one of the target subsystems.
- Partition -> Move Blocks Down: Fixed bug that caused action to raise an error if one of the moved blocks is connected forward to more that one block in the target subsystem.
- Partition -> Move Blocks Up: Fixed bug that caused ports sometimes to get connected by the action that were previously unconnected (R2014b and older).
- Layout -> Adjust Lines Vertically: Fixed bug that caused action to break the layout of incoming signal lines.

## Trademarks

- MES Model & Refactor® is a registered trademark of Model Engineering Solutions GmbH.
- Other product or brand names may be trademarks or registered trademarks of their respective holders.