GridCal 5.3.42__tar.gz → 5.3.44__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +1 -1
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +8 -1
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +38 -6
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +15 -44
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +1 -1
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/base_diagram_widget.py +27 -13
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/generic_graphics.py +14 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/MainWindow.py +334 -233
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +12 -4
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Results/results.py +20 -3
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +47 -47
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/base_gui.py +2 -2
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/simulations.py +156 -90
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/icons_rc.py +679 -572
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/gui_functions.py +56 -5
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/object_model.py +66 -51
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Session/session.py +11 -1
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/__version__.py +1 -1
- gridcal-5.3.44/GridCal/adequacy_output.csv +955 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/PKG-INFO +1 -1
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ExecuteGridCal.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Analysis/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Analysis/gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/Editors/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/Editors/controllable_shunt_editor.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/Editors/generator_editor.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/Editors/line_editor.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/Editors/new_line_dialogue.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/Editors/transformer3w_editor.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/Editors/transformer_editor.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/Editors/transformer_taps_editor.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridMerge/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridMerge/build_diff_tree.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridMerge/demo_code.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridMerge/demo_code2.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridMerge/demo_code3.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridMerge/demo_code4.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridMerge/grid_diff.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridMerge/grid_diff_gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridMerge/grid_merge.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridMerge/grid_merge_gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/GridMerge/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/SubClasses/io.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/object_select_window.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SubstationDesigner/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SubstationDesigner/substation_designer.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SubstationDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/TowerBuilder/tower_builder.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Visualization/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Visualization/visualization.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Widgets/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/associations_model.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/general_dialogues.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/messages.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/pandas_model.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/plot_config.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/profiles_model.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/python_console.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/python_highlighter.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/results_model.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/themes.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/toast_widget.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/update_gui_all.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/update_gui_common.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/wrappable_table_model.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/LICENSE.txt +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Session/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Session/export_results_driver.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Session/file_handler.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Session/server_driver.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Session/synchronization_driver.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/darkdetect/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/darkdetect/_dummy.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/darkdetect/_linux_detect.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/darkdetect/_mac_detect.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/darkdetect/_windows_detect.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/data/GridCal.ico +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/data/GridCal.svg +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/data/__init__.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/data/cables.csv +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/data/sequence_lines.csv +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/data/transformers.csv +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/data/wires.csv +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/plugins.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/templates.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/GridCal/update.py +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/setup.cfg +0 -0
- {gridcal-5.3.42 → gridcal-5.3.44}/setup.py +0 -0
@@ -69,7 +69,7 @@ class LineLocationGraphicItem(QtWidgets.QGraphicsEllipseItem, NodeTemplate):
|
|
69
69
|
|
70
70
|
self.index = index
|
71
71
|
|
72
|
-
self.resize(r
|
72
|
+
self.resize(r)
|
73
73
|
self.setAcceptHoverEvents(True) # Enable hover events for the item
|
74
74
|
self.setFlag(QtWidgets.QGraphicsItem.GraphicsItemFlag.ItemIsMovable) # Allow moving the node
|
75
75
|
self.setFlag(QtWidgets.QGraphicsItem.GraphicsItemFlag.ItemIsSelectable) # Allow selecting the node
|
{gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py
RENAMED
@@ -17,7 +17,7 @@ from GridCal.Gui.messages import yes_no_question
|
|
17
17
|
from GridCal.Gui.Diagrams.generic_graphics import ACTIVE, DEACTIVATED, OTHER
|
18
18
|
from GridCal.Gui.Diagrams.Editors.line_editor import LineEditor
|
19
19
|
|
20
|
-
from GridCalEngine.Devices.types import BRANCH_TYPES
|
20
|
+
from GridCalEngine.Devices.types import BRANCH_TYPES, ALL_DEV_TYPES
|
21
21
|
from GridCalEngine.enumerations import DeviceType
|
22
22
|
|
23
23
|
if TYPE_CHECKING:
|
@@ -132,6 +132,13 @@ class MapLineSegment(QGraphicsLineItem):
|
|
132
132
|
"""
|
133
133
|
return [self.container]
|
134
134
|
|
135
|
+
def get_associated_devices(self) -> List[ALL_DEV_TYPES]:
|
136
|
+
"""
|
137
|
+
This forwards to the map line container for the appropriate deletion of everything
|
138
|
+
:return:
|
139
|
+
"""
|
140
|
+
return [self.container.api_object]
|
141
|
+
|
135
142
|
def set_width(self, width: float):
|
136
143
|
"""
|
137
144
|
|
@@ -20,7 +20,7 @@ from GridCal.Gui.object_model import ObjectsModel
|
|
20
20
|
from GridCal.Gui.Diagrams.MapWidget.Substation.voltage_level_graphic_item import VoltageLevelGraphicItem
|
21
21
|
from GridCal.Gui.Diagrams.SchematicWidget import schematic_widget
|
22
22
|
|
23
|
-
from GridCalEngine.Devices.types import ALL_DEV_TYPES
|
23
|
+
from GridCalEngine.Devices.types import ALL_DEV_TYPES, INJECTION_DEVICE_TYPES, BRANCH_TYPES
|
24
24
|
from GridCalEngine.Devices.Substation.bus import Bus
|
25
25
|
from GridCalEngine.Devices import VoltageLevel
|
26
26
|
from GridCalEngine.Devices.Substation.substation import Substation
|
@@ -795,22 +795,54 @@ class SubstationGraphicItem(NodeTemplate, QGraphicsRectItem):
|
|
795
795
|
:return:
|
796
796
|
"""
|
797
797
|
associated_buses = self.editor.circuit.get_substation_buses(substation=self.api_object)
|
798
|
-
associated_buses_graphics = list()
|
799
798
|
associated_lines_graphics: List[MapLineContainer] = list()
|
799
|
+
for line in self.editor.circuit.lines:
|
800
|
+
if line.bus_to in associated_buses or line.bus_from in associated_buses:
|
801
|
+
associated_lines_graphics.append(self.editor.graphics_manager.query(elm=line))
|
800
802
|
|
801
803
|
# TODO: Connectivity nodes / busbars? Probably this is only when dealing with the schematic
|
802
804
|
|
803
|
-
for bus in associated_buses:
|
804
|
-
|
805
|
+
# for bus in associated_buses:
|
806
|
+
# associated_buses_graphics.append(self.editor.graphics_manager.query(elm=bus))
|
805
807
|
|
806
|
-
for segment in self.get_hosting_line_segments():
|
807
|
-
|
808
|
+
# for segment in self.get_hosting_line_segments():
|
809
|
+
# associated_lines_graphics.append(segment.container)
|
808
810
|
|
809
811
|
return self.voltage_level_graphics + associated_lines_graphics
|
810
812
|
|
813
|
+
|
814
|
+
def get_associated_devices(self) -> List[ALL_DEV_TYPES]:
|
815
|
+
"""
|
816
|
+
This function returns all the api_object devices associated with the selected graphic object.
|
817
|
+
:return: List of the associated devices.
|
818
|
+
"""
|
819
|
+
associated_vl = [vl.api_object for vl in self.voltage_level_graphics]
|
820
|
+
associated_buses = self.editor.circuit.get_substation_buses(substation=self.api_object)
|
821
|
+
associated_branches: List[BRANCH_TYPES] = list()
|
822
|
+
associated_shunts: List[INJECTION_DEVICE_TYPES] = list()
|
823
|
+
|
824
|
+
for branch in self.editor.circuit.get_branches():
|
825
|
+
if branch.bus_to in associated_buses or branch.bus_from in associated_buses:
|
826
|
+
associated_branches.append(branch)
|
827
|
+
|
828
|
+
for inj in self.editor.circuit.get_injection_devices_iter():
|
829
|
+
if inj.bus in associated_buses:
|
830
|
+
associated_shunts.append(inj)
|
831
|
+
|
832
|
+
# TODO: Connectivity nodes / busbars? Probably this is only when dealing with the schematic
|
833
|
+
|
834
|
+
# for bus in associated_buses:
|
835
|
+
# associated_buses_graphics.append(self.editor.graphics_manager.query(elm=bus))
|
836
|
+
|
837
|
+
# for segment in self.get_hosting_line_segments():
|
838
|
+
# associated_lines_graphics.append(segment.container)
|
839
|
+
|
840
|
+
return associated_vl + associated_branches + associated_shunts + associated_buses
|
841
|
+
|
811
842
|
def delete(self):
|
812
843
|
"""
|
813
844
|
|
814
845
|
:return:
|
815
846
|
"""
|
847
|
+
|
816
848
|
self.editor.delete_with_dialogue(selected=[self], delete_from_db=False)
|
@@ -506,7 +506,7 @@ class GridMapWidget(BaseDiagramWidget):
|
|
506
506
|
lat=lat,
|
507
507
|
lon=lon,
|
508
508
|
index=index,
|
509
|
-
r=
|
509
|
+
r=self.diagram.min_branch_width)
|
510
510
|
|
511
511
|
self.graphics_manager.add_device(elm=api_object, graphic=graphic_object)
|
512
512
|
|
@@ -1180,7 +1180,7 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1180
1180
|
arrow_size = self.diagram.arrow_size # self.get_arrow_scale()
|
1181
1181
|
|
1182
1182
|
# Try colouring the branches
|
1183
|
-
if self.circuit.
|
1183
|
+
if self.circuit.get_branch_number(add_hvdc=False, add_vsc=False, add_switch=True):
|
1184
1184
|
|
1185
1185
|
lnorm = np.abs(loadings)
|
1186
1186
|
lnorm[lnorm == np.inf] = 0
|
@@ -1705,8 +1705,8 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1705
1705
|
|
1706
1706
|
line1 = selected_lines[0][0]
|
1707
1707
|
line2 = selected_lines[1][0]
|
1708
|
-
line1_graphic = selected_lines[0][1]
|
1709
|
-
line2_graphic = selected_lines[1][1]
|
1708
|
+
line1_graphic: MapAcLine = selected_lines[0][1]
|
1709
|
+
line2_graphic: MapAcLine = selected_lines[1][1]
|
1710
1710
|
|
1711
1711
|
if line1.template != line2.template:
|
1712
1712
|
self.gui.show_error_toast('Line merging could not be done, lines have different templates. Check if that '
|
@@ -1823,11 +1823,10 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1823
1823
|
pass
|
1824
1824
|
|
1825
1825
|
self.circuit.add_line(new_line)
|
1826
|
-
self.circuit.delete_line(line1)
|
1827
|
-
self.circuit.delete_line(line2)
|
1828
1826
|
|
1829
|
-
self.
|
1830
|
-
self.
|
1827
|
+
self.remove_element(device=line1, graphic_object=line1_graphic, delete_from_db=True)
|
1828
|
+
self.remove_element(device=line2, graphic_object=line2_graphic, delete_from_db=True)
|
1829
|
+
|
1831
1830
|
self.add_api_line(api_object=new_line)
|
1832
1831
|
|
1833
1832
|
self.gui.show_info_toast(message='Line merging successful!')
|
@@ -2586,11 +2585,7 @@ class GridMapWidget(BaseDiagramWidget):
|
|
2586
2585
|
selected_substations = self.get_selected_substations_tup()
|
2587
2586
|
|
2588
2587
|
if len(selected_lines) != 1 or len(selected_substations) != 2:
|
2589
|
-
|
2590
|
-
msg.setIcon(QMessageBox.Icon.Information)
|
2591
|
-
msg.setText("Please select exactly one line and two substations.")
|
2592
|
-
msg.setWindowTitle("Selection Error")
|
2593
|
-
msg.exec()
|
2588
|
+
self.gui.show_error_toast(message="Please select exactly one line and two substations.")
|
2594
2589
|
return
|
2595
2590
|
|
2596
2591
|
# Get the API objects
|
@@ -2615,11 +2610,7 @@ class GridMapWidget(BaseDiagramWidget):
|
|
2615
2610
|
line_api.bus_from = bus
|
2616
2611
|
break
|
2617
2612
|
if bus_from_idtag_0 == line_api.bus_from.idtag:
|
2618
|
-
|
2619
|
-
msg.setIcon(QMessageBox.Icon.Information)
|
2620
|
-
msg.setText("The new substation did not have any valid bus to connect the line.")
|
2621
|
-
msg.setWindowTitle("No valid bus")
|
2622
|
-
msg.exec()
|
2613
|
+
self.gui.show_error_toast(message="The new substation did not have any valid bus to connect the line.")
|
2623
2614
|
return
|
2624
2615
|
|
2625
2616
|
elif substation_api_1.idtag == bus_to.substation.idtag:
|
@@ -2630,11 +2621,7 @@ class GridMapWidget(BaseDiagramWidget):
|
|
2630
2621
|
line_api.bus_to = bus
|
2631
2622
|
break
|
2632
2623
|
if bus_to_idtag_0 == line_api.bus_to.idtag:
|
2633
|
-
|
2634
|
-
msg.setIcon(QMessageBox.Icon.Information)
|
2635
|
-
msg.setText("The new substation did not have any valid bus to connect the line.")
|
2636
|
-
msg.setWindowTitle("No valid bus")
|
2637
|
-
msg.exec()
|
2624
|
+
self.gui.show_error_toast(message="The new substation did not have any valid bus to connect the line.")
|
2638
2625
|
return
|
2639
2626
|
|
2640
2627
|
|
@@ -2646,11 +2633,7 @@ class GridMapWidget(BaseDiagramWidget):
|
|
2646
2633
|
line_api.bus_from = bus
|
2647
2634
|
break
|
2648
2635
|
if bus_from_idtag_0 == line_api.bus_from.idtag:
|
2649
|
-
|
2650
|
-
msg.setIcon(QMessageBox.Icon.Information)
|
2651
|
-
msg.setText("The new substation did not have any valid bus to connect the line.")
|
2652
|
-
msg.setWindowTitle("No valid bus")
|
2653
|
-
msg.exec()
|
2636
|
+
self.gui.show_error_toast(message="The new substation did not have any valid bus to connect the line.")
|
2654
2637
|
return
|
2655
2638
|
|
2656
2639
|
elif substation_api_2.idtag == bus_to.substation.idtag:
|
@@ -2661,33 +2644,21 @@ class GridMapWidget(BaseDiagramWidget):
|
|
2661
2644
|
line_api.bus_to = bus
|
2662
2645
|
break
|
2663
2646
|
if bus_to_idtag_0 == line_api.bus_to.idtag:
|
2664
|
-
|
2665
|
-
msg.setIcon(QMessageBox.Icon.Information)
|
2666
|
-
msg.setText("The new substation did not have any valid bus to connect the line.")
|
2667
|
-
msg.setWindowTitle("No valid bus")
|
2668
|
-
msg.exec()
|
2647
|
+
self.gui.show_error_toast(message="The new substation did not have any valid bus to connect the line.")
|
2669
2648
|
return
|
2670
2649
|
|
2671
2650
|
else:
|
2672
|
-
|
2673
|
-
msg.setIcon(QMessageBox.Icon.Information)
|
2674
|
-
msg.setText("None of the selected substations are related to the line.")
|
2675
|
-
msg.setWindowTitle("No Action")
|
2676
|
-
msg.exec()
|
2651
|
+
self.gui.show_error_toast(message="None of the selected substations are related to the line.")
|
2677
2652
|
return
|
2678
2653
|
|
2679
2654
|
# Remove past graphic item and add the new one
|
2680
2655
|
|
2681
|
-
self.
|
2656
|
+
self.remove_element(device=line_api, graphic_object=line_graphic, delete_from_db=False)
|
2682
2657
|
line = self.add_api_line(api_object=line_api)
|
2683
2658
|
line.calculate_total_length()
|
2684
2659
|
|
2685
|
-
|
2686
|
-
msg.setIcon(QMessageBox.Icon.Information)
|
2687
|
-
msg.setText(f"Line {line_api.name} had its connection to substation {removed_substation} changed to substation "
|
2660
|
+
self.gui.show_info_toast(f"Line {line_api.name} had its connection to substation {removed_substation} changed to substation "
|
2688
2661
|
f"{added_substation}.")
|
2689
|
-
msg.setWindowTitle("Operation Successful")
|
2690
|
-
msg.exec()
|
2691
2662
|
|
2692
2663
|
|
2693
2664
|
def generate_map_diagram(
|
{gridcal-5.3.42 → gridcal-5.3.44}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py
RENAMED
@@ -102,7 +102,7 @@ class BusBarGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
|
|
102
102
|
self.tile.setOpacity(0.7)
|
103
103
|
|
104
104
|
# connection terminals the block
|
105
|
-
self._terminal = BarTerminalItem('s', parent=self, editor=self.
|
105
|
+
self._terminal = BarTerminalItem('s', parent=self, editor=self._editor) # , h=self.h))
|
106
106
|
self._terminal.setPen(QPen(Qt.GlobalColor.transparent, self.pen_width, self.style,
|
107
107
|
Qt.PenCapStyle.RoundCap, Qt.PenJoinStyle.RoundJoin))
|
108
108
|
|
@@ -291,7 +291,7 @@ class BaseDiagramWidget(QSplitter):
|
|
291
291
|
graphic_object.delete_from_associations()
|
292
292
|
|
293
293
|
if delete_from_db:
|
294
|
-
self.circuit.delete_element(obj=
|
294
|
+
self.circuit.delete_element(obj=device)
|
295
295
|
|
296
296
|
# # For any other associated, graphic, delete too
|
297
297
|
# for child_graphic in graphic_object.get_associated_widgets():
|
@@ -315,6 +315,19 @@ class BaseDiagramWidget(QSplitter):
|
|
315
315
|
self.object_editor_table.setModel(None)
|
316
316
|
|
317
317
|
return True
|
318
|
+
|
319
|
+
if graphic_object is None and device is not None:
|
320
|
+
|
321
|
+
if delete_from_db:
|
322
|
+
self.circuit.delete_element(obj=device)
|
323
|
+
self.delete_element_utility_function(device=device, propagate=delete_from_db)
|
324
|
+
self.object_editor_table.setModel(None)
|
325
|
+
|
326
|
+
else:
|
327
|
+
pass
|
328
|
+
|
329
|
+
return True
|
330
|
+
|
318
331
|
else:
|
319
332
|
self.gui.show_warning_toast(f"Graphic object {graphic_object} and device {device} are none")
|
320
333
|
self.object_editor_table.setModel(None)
|
@@ -346,24 +359,24 @@ class BaseDiagramWidget(QSplitter):
|
|
346
359
|
if len(selected) > 0:
|
347
360
|
|
348
361
|
# get the set of all affected GenericDiagramWidget instances
|
349
|
-
extended: Set[
|
362
|
+
extended: Set[ALL_DEV_TYPES] = set()
|
350
363
|
|
351
364
|
for graphic_obj in selected:
|
352
365
|
|
353
366
|
if graphic_obj is not None:
|
354
367
|
if isinstance(graphic_obj, GenericDiagramWidget):
|
355
|
-
extended.add(graphic_obj)
|
368
|
+
extended.add(graphic_obj.api_object)
|
356
369
|
|
357
|
-
for
|
358
|
-
if
|
359
|
-
extended.add(
|
370
|
+
for child_item in graphic_obj.get_associated_devices():
|
371
|
+
if child_item is not None:
|
372
|
+
extended.add(child_item)
|
360
373
|
|
361
|
-
extended_lst: List[
|
374
|
+
extended_lst: List[ALL_DEV_TYPES] = list(extended)
|
362
375
|
|
363
376
|
dlg = DeleteDialogue(
|
364
|
-
names_list=[f"{
|
365
|
-
f"{
|
366
|
-
for
|
377
|
+
names_list=[f"{device.device_type.value}: "
|
378
|
+
f"{device.name}"
|
379
|
+
for device in extended_lst],
|
367
380
|
delete_from_db=delete_from_db,
|
368
381
|
title="Delete Selected",
|
369
382
|
checks=False,
|
@@ -373,9 +386,10 @@ class BaseDiagramWidget(QSplitter):
|
|
373
386
|
dlg.exec()
|
374
387
|
|
375
388
|
if dlg.is_accepted:
|
376
|
-
for
|
377
|
-
|
378
|
-
|
389
|
+
for device in extended_lst:
|
390
|
+
|
391
|
+
self.remove_element(device=device,
|
392
|
+
graphic_object=self.graphics_manager.query(elm=device),
|
379
393
|
delete_from_db=dlg.delete_from_db)
|
380
394
|
|
381
395
|
return True, dlg.delete_from_db
|
@@ -189,6 +189,20 @@ class GenericDiagramWidget:
|
|
189
189
|
return list()
|
190
190
|
|
191
191
|
|
192
|
+
def get_associated_devices(self):
|
193
|
+
|
194
|
+
"""
|
195
|
+
Get a list of all graphical elements associated with this widget.
|
196
|
+
In the case of a BusGraphicsItem, it will be all the shunt connections
|
197
|
+
plus the LineGraphicItems connecting to it, etc.
|
198
|
+
This function is meant to be overloaded.
|
199
|
+
:return:
|
200
|
+
|
201
|
+
"""
|
202
|
+
|
203
|
+
return list()
|
204
|
+
|
205
|
+
|
192
206
|
class Polygon(QGraphicsPolygonItem):
|
193
207
|
"""
|
194
208
|
PolygonItem
|