All notable changes to this project will be documented in this file. All issue numbers are relative to https://github.com/pywr-editor/editor
- Disable action buttons (move and delete) after adding a new control curve. This prevents the editor from crashing when no item is selected in the widget (#202)
- If the model has changes and is reloaded, two save prompts used to be displayed (#212)
- When user clicks on a searched item in the global search, no action is triggered (#214)
- Scroll with the mouse wheel was too slow in the panel used to add new nodes and shapes (#216)
- Updated dependencies (#197)
- The list of model parameters are now alphabetically sorted in the UI dropdown menus (#205)
- To improve user experience dialogs are automatically closed after a form is saved (#208)
- Added ability to clone a node from the schematic. By right-clicking on a node and pressing "Clone" the node and its model is configuration are cloned. The new node is assigned a random name (#205)
- Updated support for pywr to 1.23. The
loss_factor
inLossLink
can now be provided as a parameter (#210) - Users can now double click on a schematic item (node or shape) to edit it (#214)
- When selecting a named parameter or recorder from a dropdown, display its configuration in a tooltip (#220)
- Double click on a model component (recorder or parameter) to edit it in a list or table widget (#222)
- Listen for changes to the JSON file made externally (for example using a text editor). If there are any, the editor will be reloaded to include the new changes (#224)
- Negative costs could not be input for a
ControlCurvePiecewiseInterpolatedParameter
(#191) - Allow floats in the RBF bounds in the optimisation section (#193)
- When pywr is running and the inspector tree is open, the editor crashed due to a wrong function signature (#195)
- Distributed application will now contain
pywr-1.21.0
andQt-6.5.2
(#197)
- Fixed import of
tables
module in the GitHub pipeline (#186) - Some dictionary keys of a nested
ConstantParameter
were dropped when the parameter configuration was saved (#188) - The editor version in the Windows installer setup is updated during a release
- The frozen application and installer did not include some imports needed by pywr (#183).
- Pywr is now bundled with the editor, and you can run and debug your model using the new Toolbar
Run
tab. You can also change the start, end date, timestep as well as run and pause the model to a specific date (#122)
- The code of some classes have been improved (PR #176, PR #177, PR #181)
- Qt 6.5 is now required (PR #175)
- When values in
ControlCurvePiecewiseInterpolatedParameter
were provided as nested lists, the values were not transposed and were assigned to the wrong control curve. The parameter form now also shows a new column in the control curve and value fields to easily map and assign the values to each area defined by the control curves (#173). - If one or more nodes did not have the
position
attribute, the editor showed a warning message every time the schematic was reloaded. The message is now shown only when the schematic is first initialised. (#178).
- Added support to multi-line comments (#146).
- Add icons to contextual menu actions and fixed menu style on right-click menu on form inputs (#159).
- Added node icons in contextual menu. When you right-click on a node to change an edge, the contextual menu now shows the node icons to easily identify the node to connect or disconnect (#166).
- The window title now shows the model name first (#170).
- Open the start screen when user click on the "Open model file" button in the toolbar (#153).
- The message box, after a validation tool is run, displays a different icon if the model validation is successful (#155).
- The fields to select multiple nodes and parameters are now disabled if there are no nodes or parameters in the model (#163).
- Fixed an exception when a H5 file has columns cast as integers (#157).
- Fixed exception file logging when the exception hook creates a string instead of an Exception object (#165).
- The metadata field in the table recorder is now optional (#160).
- A new reload button was added to the toolbar to reload the JSON file in case it was externally edited (#148).
- Added comment field in the form of RBF parameter (#126).
- The width of form widgets handling float numbers have been shrank. Some fields also now restrict the value to a specific range (for ex
initial_volume_pc
is now constrained between 0 and 1) (#144). - When cloning a recorder or parameter, the latest saved configuration is now used (#138).
- Integers are now allowed in the upper and lower bounds of a RBF parameter. Previously only a list of integers was allowed (#136).
- Increased the minimum width of the parameter dialog to hide the horizontal scrollbar in the scrollable area of the form. Some forms are too large to properly fit into the child widget. (#127).
- When a parameter or recorder, sharing the same name of a node, was renamed, the node name was being replaced in
the
edges
as well (#142). - To prevent duplicated entries, the paths in the recent projects are now normalised (#140).
- Fixed appearance of ComboBox icon with tables. The icon appeared too large on some screens (#134).
- Fixed validation of custom parameters when user attempted to add a table in the dictionary (#132).
- Fixed validation of RBF parameter when the day field is empty or invalid. The form used to throw a TypeError exception (#128).
- The configuration of a selected recorder or parameter can now be copied as a new recorder or parameter by using the "Clone" button in the dialogs (#115).
- New icons (QtAwesome) have been added to all buttons to improve design and UI accessibility (#117).
- Tables in the tree widget now display an icon depending on the table type (#119).
- A new search functionality was added. Users can now search and quickly edit nodes, parameters, tables and recorders
by clicking on the "Search" button in the toolbar or pressing
CTRL+F
(#123).
- Parameter, recorder, scenarios and tables are now sorted by name in the setting dialogs The components can now be easily identified in the left-hand side widget in the modal dialogs. (#107).
- Improve description of threshold parameters (#109).
- Colour contrasts and some layouts have been changed to improve accessibility. Tables also display an icon next to their names to identify the file extension (#111).
- Fixed the form attribute name identifying the storage node in
MinimumVolumeStorageRecorder
. The recorder usesnode
instead ofstorage
(#105).
- Recent projects in the start screen are now sorted by date (#89).
- Node names are now sorted alphabetically in any drop-down menus (#90).
- The
mrf
,mrf_cost
andcost
attributes of aRiverGauge
node are now optional (#94). - Some component types (nodes and recorders) were not detected correctly in tree widget (#100).
- Improved release of Windows binary files using GitHub Actions (#102).
NodesAndFactorsTableWidget
was not loading correctly when the flow factor list was empty or did not save the form data for certain node types (#93).- Pandas
read_excel
only supports integers asindex_col
. The editor now stores the index as integers instead of strings (#98).
- A red, purple or pink circle can now be set to customise the appearance of a schematic node (#86).
- Improved label and description of relative storage field in nodes. The editor now checks that the provided storage is between 0 and 1 (#77).
- If the model title is changed, the window title is now updated to use the new model name (#83).
- Fixed
TableValuesWidget
initialisation when widget uses multiple variables and the provided value isNone
(#79). - When a node, with an already-set edge colour, is connected, the edge color is set to gray instead of the preferred colour (#81).
- Fixed Inno Setup installation script
- Custom shapes can now be added onto the schematic (text, arrow and rectangle) using the node panel in the toolbar. Their appearance can also be customised and all shapes are stored in the JSON file (#44).
- Only unique values from a DataFrame index are not provided when setting up a table
(#61).
- The Windows installer release did not build on GitHub actions due to a wrong file
pattern in the
.iss
config file (#58). - Fixed an exception when the dialog to open a new JSON file was disregarded
(#59). - Custom nodes could not be added on the schematic when dragged from the node panel
(#64). - When changing a nested parameter for a node, the "Save button" in the main form did not get enabled. Users were not able to save the node form (#66).
- A tooltip in the parameter dialog was not rendering the node name (#68).
- Allow users to input negative numbers when setting up a control curve (#70).
- Fixed an exception when validating the form for
ControlCurvePiecewiseInterpolatedParameter
(#72). - Fixed an exception when saving a recorder form (#74).
- Added support for pywr-1.20.0. The editor (1) recognises the new
RollingMeanFlowNodeParameter
; (2) it makes the relative and absolute initial volume optional when the maximum volume of a storage node is constant; and (3) it adds support for the timestep offset in theDataFrameParameter
andTablesArrayParameter
(#55).
- The toolbar save button is not enabled using a Slot when a change is applied to the model. This was previously
implemented using a
QTimer
object (#47). - Properly style tooltips (#51).
- The parameter and recorder icons are now properly scaled on any screen when used in
QlineEdit
orQComboBox
widgets (#5). - Any
Storage
node was recognised asReservoir
node. The node type is now visible in the node library and properly identified in all widgets (#53).
- Added support for
WeightedAverageProfileParameter
(added in pywr-1.19.0) (#3). - The schematic now supports undo/redo operations of the following actions: add node, connect node, delete nodes, disconnect
node and move nodes (#41). The undo/redo actions can be triggered by
clicking on the new toolbar buttons or using the keyword shortcuts for undo operations in your OS (
CTRL+Z
orCTRL+Y
in Windows) - The nodes on the schematic show a tooltip summarising all the node's properties (#45)
- Fixed item manipulation in
TableView
andListView
widgets. Selection in clear after an item is deleted or moved to prevent unexpected behaviours (#30)
- When a modal dialog is open, inputs to the
MainWindow
are now blocked (#36) - The save button in the toolbar is now enabled using a Slot instead of a
QTimer
object (#47)
- Prevent the editor from crashing when user was asked to save the model file on exit (#11)
- Check if Microsoft Excel is installed. If it is not, the import/export buttons, available in some widgets, will now be hidden (#15)
- The file names, in the recent project list in the welcome screen, were clipped (#17)
- When the editor was launched with the option to generate the debug/log file, the file was saved in the wrong path (#19)
- Prevent the editor from crashing when the model dictionary, loaded from a JSON file, does not have the "table" key (#21)
- This is the first release of pywr editor