VeraGrid 5.6.0__tar.gz → 5.6.2__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.
- {veragrid-5.6.0 → veragrid-5.6.2}/PKG-INFO +1 -1
- veragrid-5.6.2/VeraGrid/Gui/Diagrams/MapWidget/Injections/map_battery_graphics.py +42 -0
- veragrid-5.6.2/VeraGrid/Gui/Diagrams/MapWidget/Injections/map_external_grid_graphics.py +42 -0
- veragrid-5.6.2/VeraGrid/Gui/Diagrams/MapWidget/Injections/map_generator_graphics.py +256 -0
- veragrid-5.6.2/VeraGrid/Gui/Diagrams/MapWidget/Injections/map_injections_template_graphics.py +234 -0
- veragrid-5.6.2/VeraGrid/Gui/Diagrams/MapWidget/Injections/map_load_graphics.py +87 -0
- veragrid-5.6.2/VeraGrid/Gui/Diagrams/MapWidget/Injections/map_static_generator_graphics.py +41 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Substation/node_template.py +1 -8
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +151 -19
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/grid_map_widget.py +294 -28
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/map_widget.py +8 -5
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +4 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +4 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +21 -16
- veragrid-5.6.2/VeraGrid/Gui/Diagrams/SchematicWidget/diagram_bus_selection_dialogue.py +83 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/schematic_widget.py +40 -9
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/base_diagram_widget.py +4 -1
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/generic_graphics.py +12 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/graphics_manager.py +17 -4
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/MainWindow.py +193 -164
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Model/data_base.py +7 -2
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Model/diagrams.py +86 -51
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/base_gui.py +3 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/simulations.py +106 -18
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/icons_rc.py +2 -2
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/RmsModelEditor/block_data_dialogue.py +6 -6
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/RmsModelEditor/icons_rc.py +2 -2
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/RmsModelEditor/rms_model_editor.py +7 -2
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/RmsModelEditor/rms_model_editor_engine.py +500 -76
- veragrid-5.6.2/VeraGrid/Gui/Widgets/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/general_dialogues.py +79 -24
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/gui_functions.py +46 -1
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/messages.py +20 -6
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Session/session.py +15 -3
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/__version__.py +1 -1
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/templates.py +16 -11
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ExecuteVeraGrid.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/AboutDialogue/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/AboutDialogue/about_dialogue.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/AboutDialogue/gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/AboutDialogue/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/AboutDialogue/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Analysis/AnalysisDialogue.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Analysis/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Analysis/gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Analysis/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Analysis/object_plot_analysis.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Analysis/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ContingencyPlanner/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ContingencyPlanner/gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/CoordinatesInput/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/CoordinatesInput/gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/CoordinatesInput/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/Editors/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/Editors/controllable_shunt_editor.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/Editors/generator_editor.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/Editors/line_editor.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/Editors/new_line_dialogue.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/Editors/transformer3w_editor.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/Editors/transformer_editor.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/Editors/transformer_taps_editor.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
- {veragrid-5.6.0/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid → veragrid-5.6.2/VeraGrid/Gui/Diagrams/MapWidget/Injections}/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics_3term.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {veragrid-5.6.0/VeraGrid/Gui/Diagrams/SchematicWidget/Injections → veragrid-5.6.2/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid}/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {veragrid-5.6.0/VeraGrid/Gui/Diagrams/SchematicWidget/Substation → veragrid-5.6.2/VeraGrid/Gui/Diagrams/SchematicWidget/Injections}/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {veragrid-5.6.0/VeraGrid/Gui/GridMerge → veragrid-5.6.2/VeraGrid/Gui/Diagrams/SchematicWidget/Substation}/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Diagrams/diagrams_model.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridGenerator/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridGenerator/gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridGenerator/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridGenerator/update_gui_file.py +0 -0
- {veragrid-5.6.0/VeraGrid/Gui/GridReduce → veragrid-5.6.2/VeraGrid/Gui/GridMerge}/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridMerge/build_diff_tree.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridMerge/grid_diff.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridMerge/grid_diff_gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridMerge/grid_merge.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridMerge/grid_merge_gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridMerge/update_gui_file.py +0 -0
- {veragrid-5.6.0/VeraGrid/Gui/ProfilesInput → veragrid-5.6.2/VeraGrid/Gui/GridReduce}/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridReduce/grid_reduce.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridReduce/grid_reduce_gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/GridReduce/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/LoadCatalogue/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/LoadCatalogue/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/LoadDesigner/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/LoadDesigner/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/LoadDesigner/load_designer.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/LoadDesigner/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/ConsoleLog.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/ConsoleLogController.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Model/compiled_arrays_model.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/README.txt +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Results/results.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Server/server.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/SubClasses/io.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/VeraGridMain.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/object_select_window.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Main/update_gui_file.py +0 -0
- {veragrid-5.6.0/VeraGrid/Gui/SolarPowerWizard → veragrid-5.6.2/VeraGrid/Gui/ProfilesInput}/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ProfilesInput/excel_dialog.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ProfilesInput/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ProfilesInput/models_dialogue.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/ProfilesInput/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/RmsModelEditor/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/RmsModelEditor/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/RosetaExplorer/MainWindow.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/RosetaExplorer/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/RosetaExplorer/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SigmaAnalysis/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SigmaAnalysis/gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {veragrid-5.6.0/VeraGrid/Gui/Widgets → veragrid-5.6.2/VeraGrid/Gui/SolarPowerWizard}/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SolarPowerWizard/gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SubstationDesigner/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SubstationDesigner/substation_designer.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SubstationDesigner/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SubstationDesigner/voltage_level_conversion.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SyncDialogue/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SyncDialogue/gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SyncDialogue/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SyncDialogue/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SystemScaler/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SystemScaler/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SystemScaler/system_scaler.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/SystemScaler/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/TowerBuilder/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/TowerBuilder/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/TowerBuilder/table_models.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/TowerBuilder/tower_builder.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/TowerBuilder/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/TreeModelViewer/MainWindow.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/TreeModelViewer/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/TreeModelViewer/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Visualization/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Visualization/visualization.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Widgets/custom_qrangeslider.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/Widgets/matplotlibwidget.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/WindPowerWizard/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/WindPowerWizard/gui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/WindPowerWizard/icons_rc.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/associations_model.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/correct_icons.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/object_model.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/object_proxy_model.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/pandas_model.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/plot_config.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/profiles_model.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/python_console.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/python_highlighter.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/results_model.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/rms_events_editor_dialog.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/rms_plot_variables_dialog.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/table_view_header_wrap.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/themes.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/toast_widget.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/update_gui_all.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/update_gui_common.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Gui/wrappable_table_model.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/LICENSE.txt +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Session/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Session/export_results_driver.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Session/file_handler.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Session/server_driver.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/Session/synchronization_driver.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/darkdetect/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/darkdetect/_dummy.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/darkdetect/_linux_detect.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/darkdetect/_mac_detect.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/darkdetect/_windows_detect.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_color.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_main.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/_util.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/data/VeraGrid.ico +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/data/VeraGrid.svg +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/data/__init__.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/data/cables.csv +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/data/sequence_lines.csv +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/data/transformers.csv +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/data/wires.csv +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/plugins.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/VeraGrid/update.py +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/setup.cfg +0 -0
- {veragrid-5.6.0 → veragrid-5.6.2}/setup.py +0 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
from typing import TYPE_CHECKING
|
|
7
|
+
|
|
8
|
+
from VeraGridEngine.Devices.Injections.battery import Battery
|
|
9
|
+
from VeraGrid.Gui.Diagrams.MapWidget.Injections.map_injections_template_graphics import MapInjectionTemplateGraphicItem
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING: # Only imports the below statements during type checking
|
|
12
|
+
from VeraGrid.Gui.Diagrams.MapWidget.grid_map_widget import GridMapWidget
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class MapBatteryGraphicItem(MapInjectionTemplateGraphicItem):
|
|
16
|
+
|
|
17
|
+
def __init__(self, api_object: Battery,
|
|
18
|
+
editor: GridMapWidget,
|
|
19
|
+
lat: float,
|
|
20
|
+
lon: float,
|
|
21
|
+
size: float = 0.8,
|
|
22
|
+
draw_labels: bool = True):
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
:param api_object:
|
|
26
|
+
:param editor:
|
|
27
|
+
"""
|
|
28
|
+
MapInjectionTemplateGraphicItem.__init__(self,
|
|
29
|
+
api_object=api_object,
|
|
30
|
+
editor=editor,
|
|
31
|
+
lat=lat,
|
|
32
|
+
lon=lon,
|
|
33
|
+
size=size,
|
|
34
|
+
draw_labels=draw_labels)
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def api_object(self) -> Battery:
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
:return:
|
|
41
|
+
"""
|
|
42
|
+
return self._api_object
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
from typing import TYPE_CHECKING
|
|
7
|
+
|
|
8
|
+
from VeraGrid.Gui.Diagrams.generic_graphics import Square
|
|
9
|
+
from VeraGridEngine.Devices.Injections.external_grid import ExternalGrid
|
|
10
|
+
from VeraGrid.Gui.Diagrams.MapWidget.Injections.map_injections_template_graphics import MapInjectionTemplateGraphicItem
|
|
11
|
+
|
|
12
|
+
if TYPE_CHECKING: # Only imports the below statements during type checking
|
|
13
|
+
from VeraGrid.Gui.Diagrams.MapWidget.grid_map_widget import GridMapWidget
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class MapExternalGridGraphicItem(MapInjectionTemplateGraphicItem):
|
|
17
|
+
"""
|
|
18
|
+
ExternalGrid graphic item
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
def __init__(self, api_object: ExternalGrid,
|
|
22
|
+
editor: GridMapWidget,
|
|
23
|
+
lat: float,
|
|
24
|
+
lon: float,
|
|
25
|
+
size: float = 0.8,
|
|
26
|
+
draw_labels: bool = True):
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
:param api_object:
|
|
30
|
+
:param editor:
|
|
31
|
+
"""
|
|
32
|
+
MapInjectionTemplateGraphicItem.__init__(self,
|
|
33
|
+
api_object=api_object,
|
|
34
|
+
editor=editor,
|
|
35
|
+
lat=lat,
|
|
36
|
+
lon=lon,
|
|
37
|
+
size=size,
|
|
38
|
+
draw_labels=draw_labels)
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def api_object(self) -> ExternalGrid:
|
|
42
|
+
return self._api_object
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from typing import TYPE_CHECKING
|
|
9
|
+
import numpy as np
|
|
10
|
+
from PySide6 import QtWidgets, QtCore
|
|
11
|
+
from PySide6.QtWidgets import QMenu
|
|
12
|
+
from VeraGridEngine.Devices.Injections.generator import Generator
|
|
13
|
+
from VeraGrid.Gui.Diagrams.Editors.generator_editor import GeneratorQCurveEditor
|
|
14
|
+
from VeraGrid.Gui.messages import yes_no_question, info_msg
|
|
15
|
+
from VeraGrid.Gui.Diagrams.MapWidget.Injections.map_injections_template_graphics import MapInjectionTemplateGraphicItem
|
|
16
|
+
from VeraGrid.Gui.SolarPowerWizard.solar_power_wizzard import SolarPvWizard
|
|
17
|
+
from VeraGrid.Gui.WindPowerWizard.wind_power_wizzard import WindFarmWizard
|
|
18
|
+
from VeraGrid.Gui.gui_functions import add_menu_entry
|
|
19
|
+
from VeraGrid.Gui.RmsModelEditor.rms_model_editor_engine import RmsModelEditorGUI
|
|
20
|
+
from VeraGridEngine.enumerations import DeviceType
|
|
21
|
+
|
|
22
|
+
if TYPE_CHECKING: # Only imports the below statements during type checking
|
|
23
|
+
from VeraGrid.Gui.Diagrams.MapWidget.grid_map_widget import GridMapWidget
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class MapGeneratorGraphicItem(MapInjectionTemplateGraphicItem):
|
|
27
|
+
"""
|
|
28
|
+
GeneratorGraphicItem
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
def __init__(self, api_object: Generator,
|
|
32
|
+
editor: GridMapWidget,
|
|
33
|
+
lat: float,
|
|
34
|
+
lon: float,
|
|
35
|
+
size: float = 0.8,
|
|
36
|
+
draw_labels: bool = True):
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
:param api_object:
|
|
40
|
+
:param editor:
|
|
41
|
+
"""
|
|
42
|
+
MapInjectionTemplateGraphicItem.__init__(self,
|
|
43
|
+
api_object=api_object,
|
|
44
|
+
editor=editor,
|
|
45
|
+
lat=lat,
|
|
46
|
+
lon=lon,
|
|
47
|
+
size=size,
|
|
48
|
+
draw_labels=draw_labels)
|
|
49
|
+
|
|
50
|
+
@property
|
|
51
|
+
def api_object(self) -> Generator:
|
|
52
|
+
return self._api_object
|
|
53
|
+
|
|
54
|
+
def contextMenuEvent(self, event):
|
|
55
|
+
"""
|
|
56
|
+
Display context menu
|
|
57
|
+
@param event:
|
|
58
|
+
@return:
|
|
59
|
+
"""
|
|
60
|
+
menu = QMenu()
|
|
61
|
+
menu.addSection("Generator")
|
|
62
|
+
|
|
63
|
+
# add_menu_entry(menu=menu,
|
|
64
|
+
# text="Active",
|
|
65
|
+
# icon_path="",
|
|
66
|
+
# function_ptr=self.enable_disable_toggle,
|
|
67
|
+
# checkeable=True,
|
|
68
|
+
# checked_value=self.api_object.active)
|
|
69
|
+
|
|
70
|
+
add_menu_entry(menu=menu,
|
|
71
|
+
text="Voltage control",
|
|
72
|
+
icon_path="",
|
|
73
|
+
function_ptr=self.enable_disable_control_toggle,
|
|
74
|
+
checkeable=True,
|
|
75
|
+
checked_value=self.api_object.is_controlled)
|
|
76
|
+
|
|
77
|
+
add_menu_entry(menu=menu,
|
|
78
|
+
text="Set regulation bus",
|
|
79
|
+
icon_path="",
|
|
80
|
+
function_ptr=self.set_regulation_bus)
|
|
81
|
+
|
|
82
|
+
add_menu_entry(menu=menu,
|
|
83
|
+
text="Rms Editor",
|
|
84
|
+
function_ptr=self.edit_rms,
|
|
85
|
+
icon_path=":/Icons/icons/edit.png")
|
|
86
|
+
|
|
87
|
+
add_menu_entry(menu=menu,
|
|
88
|
+
text="Qcurve edit",
|
|
89
|
+
function_ptr=self.edit_q_curve,
|
|
90
|
+
icon_path=":/Icons/icons/edit.png")
|
|
91
|
+
|
|
92
|
+
menu.addSeparator()
|
|
93
|
+
|
|
94
|
+
add_menu_entry(menu=menu,
|
|
95
|
+
text="Plot profiles",
|
|
96
|
+
icon_path=":/Icons/icons/plot.png",
|
|
97
|
+
function_ptr=self.plot)
|
|
98
|
+
|
|
99
|
+
menu.addSeparator()
|
|
100
|
+
|
|
101
|
+
add_menu_entry(menu=menu,
|
|
102
|
+
text="Solar photovoltaic wizard",
|
|
103
|
+
icon_path=":/Icons/icons/solar_power.png",
|
|
104
|
+
function_ptr=self.solar_pv_wizard)
|
|
105
|
+
|
|
106
|
+
add_menu_entry(menu=menu,
|
|
107
|
+
text="Wind farm wizard",
|
|
108
|
+
icon_path=":/Icons/icons/wind_power.png",
|
|
109
|
+
function_ptr=self.wind_farm_wizard)
|
|
110
|
+
|
|
111
|
+
menu.addSeparator()
|
|
112
|
+
|
|
113
|
+
add_menu_entry(menu, text='Remove',
|
|
114
|
+
icon_path=":/Icons/icons/delete_schematic.png",
|
|
115
|
+
function_ptr=self.delete)
|
|
116
|
+
|
|
117
|
+
add_menu_entry(menu=menu,
|
|
118
|
+
text="Convert to battery",
|
|
119
|
+
icon_path=":/Icons/icons/add_batt.png",
|
|
120
|
+
function_ptr=self.to_battery)
|
|
121
|
+
|
|
122
|
+
add_menu_entry(menu=menu,
|
|
123
|
+
text="Change bus",
|
|
124
|
+
icon_path=":/Icons/icons/move_bus.png",
|
|
125
|
+
function_ptr=self.change_bus)
|
|
126
|
+
|
|
127
|
+
menu.exec_(event.screenPos())
|
|
128
|
+
|
|
129
|
+
def edit_rms(self):
|
|
130
|
+
"""
|
|
131
|
+
|
|
132
|
+
:return:
|
|
133
|
+
"""
|
|
134
|
+
# load templates
|
|
135
|
+
templates = self.editor.circuit.rms_models
|
|
136
|
+
|
|
137
|
+
# select line templates
|
|
138
|
+
templ_catalogue = dict()
|
|
139
|
+
templ_list = []
|
|
140
|
+
for templ in templates:
|
|
141
|
+
if templ.tpe == DeviceType.GeneratorDevice:
|
|
142
|
+
templ_list.append(templ.name)
|
|
143
|
+
templ_catalogue[templ.name] = templ
|
|
144
|
+
|
|
145
|
+
# prompt RmsModelEditorGUI
|
|
146
|
+
|
|
147
|
+
rms_model_editor = RmsModelEditorGUI(api_object_model_host=self.api_object.rms_model, templates_list=templ_list,
|
|
148
|
+
templates_catalogue=templ_catalogue, api_object_name=self.api_object.name,
|
|
149
|
+
api_object=self.api_object, main_editor=True, parent=self.editor)
|
|
150
|
+
rms_model_editor.show()
|
|
151
|
+
|
|
152
|
+
def to_battery(self):
|
|
153
|
+
"""
|
|
154
|
+
Convert this generator to a battery
|
|
155
|
+
"""
|
|
156
|
+
ok = yes_no_question('Are you sure that you want to convert this generator into a battery?',
|
|
157
|
+
'Convert generator')
|
|
158
|
+
if ok:
|
|
159
|
+
self._editor.convert_generator_to_battery(gen=self.api_object, graphic_object=self)
|
|
160
|
+
|
|
161
|
+
def enable_disable_control_toggle(self):
|
|
162
|
+
"""
|
|
163
|
+
Enable / Disable device voltage control
|
|
164
|
+
"""
|
|
165
|
+
if self.api_object is not None:
|
|
166
|
+
self.api_object.is_controlled = not self.api_object.is_controlled
|
|
167
|
+
|
|
168
|
+
def set_regulation_bus(self):
|
|
169
|
+
"""
|
|
170
|
+
Set regulation bus
|
|
171
|
+
:return:
|
|
172
|
+
"""
|
|
173
|
+
self._editor.set_generator_control_bus(generator_graphics=self)
|
|
174
|
+
|
|
175
|
+
def clear_regulation_bus(self):
|
|
176
|
+
"""
|
|
177
|
+
|
|
178
|
+
:return:
|
|
179
|
+
"""
|
|
180
|
+
self.api_object.control_bus = None
|
|
181
|
+
|
|
182
|
+
def clear_regulation_cn(self):
|
|
183
|
+
"""
|
|
184
|
+
|
|
185
|
+
:return:
|
|
186
|
+
"""
|
|
187
|
+
self.api_object.control_cn = None
|
|
188
|
+
|
|
189
|
+
def edit_q_curve(self):
|
|
190
|
+
"""
|
|
191
|
+
Open the appropriate editor dialogue
|
|
192
|
+
:return:
|
|
193
|
+
"""
|
|
194
|
+
dlg = GeneratorQCurveEditor(q_curve=self.api_object.q_curve,
|
|
195
|
+
Qmin=self.api_object.Qmin,
|
|
196
|
+
Qmax=self.api_object.Qmax,
|
|
197
|
+
Pmin=self.api_object.Pmin,
|
|
198
|
+
Pmax=self.api_object.Pmax,
|
|
199
|
+
Snom=self.api_object.Snom)
|
|
200
|
+
if dlg.exec():
|
|
201
|
+
pass
|
|
202
|
+
|
|
203
|
+
self.api_object.Snom = np.round(dlg.Snom, 1) if dlg.Snom > 1 else dlg.Snom
|
|
204
|
+
self.api_object.Qmin = dlg.Qmin
|
|
205
|
+
self.api_object.Qmax = dlg.Qmax
|
|
206
|
+
self.api_object.Pmin = dlg.Pmin
|
|
207
|
+
self.api_object.Pmax = dlg.Pmax
|
|
208
|
+
|
|
209
|
+
def solar_pv_wizard(self):
|
|
210
|
+
"""
|
|
211
|
+
Open the appropriate editor dialogue
|
|
212
|
+
:return:
|
|
213
|
+
"""
|
|
214
|
+
|
|
215
|
+
if self._editor.circuit.has_time_series:
|
|
216
|
+
|
|
217
|
+
dlg = SolarPvWizard(time_array=self._editor.circuit.time_profile.strftime("%Y-%m-%d %H:%M").tolist(),
|
|
218
|
+
peak_power=self.api_object.Pmax,
|
|
219
|
+
latitude=self.api_object.bus.latitude,
|
|
220
|
+
longitude=self.api_object.bus.longitude,
|
|
221
|
+
gen_name=self.api_object.name,
|
|
222
|
+
bus_name=self.api_object.bus.name)
|
|
223
|
+
if dlg.exec():
|
|
224
|
+
if dlg.is_accepted:
|
|
225
|
+
if len(dlg.P) == self.api_object.P_prof.size():
|
|
226
|
+
self.api_object.P_prof.set(dlg.P)
|
|
227
|
+
|
|
228
|
+
self.plot()
|
|
229
|
+
else:
|
|
230
|
+
raise Exception("Wrong length from the solar photovoltaic wizard")
|
|
231
|
+
else:
|
|
232
|
+
info_msg("You need to have time profiles for this function")
|
|
233
|
+
|
|
234
|
+
def wind_farm_wizard(self):
|
|
235
|
+
"""
|
|
236
|
+
Open the appropriate editor dialogue
|
|
237
|
+
:return:
|
|
238
|
+
"""
|
|
239
|
+
|
|
240
|
+
if self._editor.circuit.has_time_series:
|
|
241
|
+
|
|
242
|
+
dlg = WindFarmWizard(time_array=self._editor.circuit.time_profile.strftime("%Y-%m-%d %H:%M").tolist(),
|
|
243
|
+
peak_power=self.api_object.Pmax,
|
|
244
|
+
latitude=self.api_object.bus.latitude,
|
|
245
|
+
longitude=self.api_object.bus.longitude,
|
|
246
|
+
gen_name=self.api_object.name,
|
|
247
|
+
bus_name=self.api_object.bus.name)
|
|
248
|
+
if dlg.exec():
|
|
249
|
+
if dlg.is_accepted:
|
|
250
|
+
if len(dlg.P) == self.api_object.P_prof.size():
|
|
251
|
+
self.api_object.P_prof.set(dlg.P)
|
|
252
|
+
self.plot()
|
|
253
|
+
else:
|
|
254
|
+
raise Exception("Wrong length from the solar photovoltaic wizard")
|
|
255
|
+
else:
|
|
256
|
+
info_msg("You need to have time profiles for this function")
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
from typing import TYPE_CHECKING, List, Union
|
|
8
|
+
from PySide6.QtCore import Qt
|
|
9
|
+
from PySide6.QtGui import QPen, QCursor, QColor, QBrush
|
|
10
|
+
from PySide6.QtWidgets import (QGraphicsEllipseItem, QMenu,
|
|
11
|
+
QGraphicsSceneContextMenuEvent,
|
|
12
|
+
QGraphicsSceneMouseEvent)
|
|
13
|
+
from VeraGrid.Gui.gui_functions import add_menu_entry
|
|
14
|
+
from VeraGrid.Gui.Diagrams.MapWidget.Substation.node_template import NodeTemplate
|
|
15
|
+
|
|
16
|
+
from VeraGridEngine.Devices.types import INJECTION_DEVICE_TYPES
|
|
17
|
+
|
|
18
|
+
if TYPE_CHECKING: # Only imports the below statements during type checking
|
|
19
|
+
from VeraGrid.Gui.Diagrams.MapWidget.grid_map_widget import GridMapWidget
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class MapInjectionTemplateGraphicItem(NodeTemplate, QGraphicsEllipseItem):
|
|
23
|
+
"""
|
|
24
|
+
InjectionTemplateGraphicItem
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
def __init__(self,
|
|
28
|
+
api_object: INJECTION_DEVICE_TYPES,
|
|
29
|
+
editor: GridMapWidget,
|
|
30
|
+
lat: float,
|
|
31
|
+
lon: float,
|
|
32
|
+
size: float = 0.8,
|
|
33
|
+
draw_labels: bool = True):
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
:param api_object:
|
|
37
|
+
:param editor:
|
|
38
|
+
:param lat:
|
|
39
|
+
:param lon:
|
|
40
|
+
:param size:
|
|
41
|
+
:param draw_labels:
|
|
42
|
+
"""
|
|
43
|
+
# Correct way to call multiple inheritance
|
|
44
|
+
super().__init__()
|
|
45
|
+
|
|
46
|
+
# Explicitly call QGraphicsRectItem initialization
|
|
47
|
+
QGraphicsEllipseItem.__init__(self)
|
|
48
|
+
|
|
49
|
+
# Explicitly call NodeTemplate initialization
|
|
50
|
+
NodeTemplate.__init__(self,
|
|
51
|
+
api_object=api_object,
|
|
52
|
+
editor=editor,
|
|
53
|
+
draw_labels=draw_labels,
|
|
54
|
+
lat=lat,
|
|
55
|
+
lon=lon)
|
|
56
|
+
|
|
57
|
+
r2 = size / 2.0
|
|
58
|
+
x, y = editor.to_x_y(lat=lat, lon=lon) # upper left corner
|
|
59
|
+
self.size = size
|
|
60
|
+
self.setRect(x - r2, y - r2, self.size, self.size)
|
|
61
|
+
|
|
62
|
+
# Properties of the container:
|
|
63
|
+
self.setFlags(self.GraphicsItemFlag.ItemIsSelectable | self.GraphicsItemFlag.ItemIsMovable)
|
|
64
|
+
self.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
|
|
65
|
+
|
|
66
|
+
self.set_api_object_color()
|
|
67
|
+
|
|
68
|
+
@property
|
|
69
|
+
def api_object(self) -> INJECTION_DEVICE_TYPES:
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
:return:
|
|
73
|
+
"""
|
|
74
|
+
return self._api_object
|
|
75
|
+
|
|
76
|
+
@property
|
|
77
|
+
def editor(self) -> GridMapWidget:
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
:return:
|
|
81
|
+
"""
|
|
82
|
+
return self._editor
|
|
83
|
+
|
|
84
|
+
def set_api_object_color(self) -> QColor:
|
|
85
|
+
"""
|
|
86
|
+
Sets whatever colour is in the API object property
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
color = QColor(self.api_object.color)
|
|
90
|
+
color.setAlpha(128)
|
|
91
|
+
self.color = color
|
|
92
|
+
|
|
93
|
+
brush = QBrush(color)
|
|
94
|
+
self.setBrush(brush)
|
|
95
|
+
|
|
96
|
+
pen = self.pen()
|
|
97
|
+
pen.setColor(color)
|
|
98
|
+
pen.setWidth(0) # set the pen width to 0
|
|
99
|
+
self.setPen(pen)
|
|
100
|
+
|
|
101
|
+
return color
|
|
102
|
+
|
|
103
|
+
def update_position_at_the_diagram(self) -> None:
|
|
104
|
+
"""
|
|
105
|
+
Updates the element position in the diagram (to save)
|
|
106
|
+
:return:
|
|
107
|
+
"""
|
|
108
|
+
lat, long = self.editor.to_lat_lon(self.rect().x(), self.rect().y())
|
|
109
|
+
|
|
110
|
+
self.lat = lat
|
|
111
|
+
self.lon = long
|
|
112
|
+
|
|
113
|
+
self.editor.update_diagram_element(device=self.api_object,
|
|
114
|
+
latitude=lat,
|
|
115
|
+
longitude=long,
|
|
116
|
+
graphic_object=self)
|
|
117
|
+
|
|
118
|
+
def set_size(self, r: float):
|
|
119
|
+
"""
|
|
120
|
+
|
|
121
|
+
:param r: radius in pixels
|
|
122
|
+
:return:
|
|
123
|
+
"""
|
|
124
|
+
if r != self.size:
|
|
125
|
+
rect = self.rect()
|
|
126
|
+
rect.setWidth(r)
|
|
127
|
+
rect.setHeight(r)
|
|
128
|
+
|
|
129
|
+
# change the width and height while keeping the same center
|
|
130
|
+
r2 = (self.size - r) / 2
|
|
131
|
+
new_x = rect.x() + r2
|
|
132
|
+
new_y = rect.y() + r2
|
|
133
|
+
|
|
134
|
+
self.size = r
|
|
135
|
+
|
|
136
|
+
# Set the new rectangle with the updated dimensions
|
|
137
|
+
self.setRect(new_x, new_y, r, r)
|
|
138
|
+
|
|
139
|
+
def recolour_mode(self):
|
|
140
|
+
"""
|
|
141
|
+
Change the colour according to the system theme
|
|
142
|
+
"""
|
|
143
|
+
super().recolour_mode()
|
|
144
|
+
|
|
145
|
+
return self.set_api_object_color()
|
|
146
|
+
|
|
147
|
+
def delete(self):
|
|
148
|
+
"""
|
|
149
|
+
Remove this element
|
|
150
|
+
@return:
|
|
151
|
+
"""
|
|
152
|
+
|
|
153
|
+
deleted, delete_from_db_final = self.editor.delete_with_dialogue(selected=[self], delete_from_db=False)
|
|
154
|
+
|
|
155
|
+
def plot(self):
|
|
156
|
+
"""
|
|
157
|
+
Plot API objects profiles
|
|
158
|
+
"""
|
|
159
|
+
# time series object from the last simulation
|
|
160
|
+
ts = self.editor.circuit.time_profile
|
|
161
|
+
|
|
162
|
+
# plot the profiles
|
|
163
|
+
self.api_object.plot_profiles(time=ts)
|
|
164
|
+
|
|
165
|
+
def mousePressEvent(self, event: QGraphicsSceneMouseEvent):
|
|
166
|
+
"""
|
|
167
|
+
mouse press: display the editor
|
|
168
|
+
:param event:
|
|
169
|
+
:return:
|
|
170
|
+
"""
|
|
171
|
+
super().mousePressEvent(event)
|
|
172
|
+
self._editor.set_editor_model(api_object=self.api_object)
|
|
173
|
+
|
|
174
|
+
def mouseReleaseEvent(self, event: QGraphicsSceneMouseEvent):
|
|
175
|
+
"""
|
|
176
|
+
Event handler for mouse release events.
|
|
177
|
+
"""
|
|
178
|
+
super().mouseReleaseEvent(event)
|
|
179
|
+
# self.editor.disableMove = True
|
|
180
|
+
self.update_position_at_the_diagram() # always update
|
|
181
|
+
|
|
182
|
+
def mouseDoubleClickEvent(self, event, /):
|
|
183
|
+
"""
|
|
184
|
+
|
|
185
|
+
:param event:
|
|
186
|
+
:return:
|
|
187
|
+
"""
|
|
188
|
+
super().mouseDoubleClickEvent(event)
|
|
189
|
+
self.set_api_object_color()
|
|
190
|
+
|
|
191
|
+
def get_base_context_menu(self) -> QMenu:
|
|
192
|
+
"""
|
|
193
|
+
Generate the base menu for injections
|
|
194
|
+
:return:
|
|
195
|
+
"""
|
|
196
|
+
menu = QMenu()
|
|
197
|
+
|
|
198
|
+
add_menu_entry(menu=menu,
|
|
199
|
+
text="Plot profiles",
|
|
200
|
+
function_ptr=self.plot,
|
|
201
|
+
icon_path=":/Icons/icons/plot.png")
|
|
202
|
+
|
|
203
|
+
add_menu_entry(menu=menu,
|
|
204
|
+
text="Consolidate coordinates",
|
|
205
|
+
function_ptr=self.consolidate_coordinates,
|
|
206
|
+
icon_path=":/Icons/icons/delete_schematic.png")
|
|
207
|
+
|
|
208
|
+
menu.addSeparator()
|
|
209
|
+
|
|
210
|
+
add_menu_entry(menu=menu,
|
|
211
|
+
text="Delete",
|
|
212
|
+
function_ptr=self.delete,
|
|
213
|
+
icon_path=":/Icons/icons/delete_schematic.png")
|
|
214
|
+
|
|
215
|
+
return menu
|
|
216
|
+
|
|
217
|
+
def contextMenuEvent(self, event: QGraphicsSceneContextMenuEvent):
|
|
218
|
+
"""
|
|
219
|
+
Display context menu
|
|
220
|
+
@param event:
|
|
221
|
+
@return:
|
|
222
|
+
"""
|
|
223
|
+
menu = self.get_base_context_menu()
|
|
224
|
+
|
|
225
|
+
menu.exec(event.screenPos())
|
|
226
|
+
|
|
227
|
+
def consolidate_coordinates(self):
|
|
228
|
+
"""
|
|
229
|
+
Consolidate coordinates in to the DB
|
|
230
|
+
"""
|
|
231
|
+
lat, long = self.editor.to_lat_lon(self.rect().x(), self.rect().y())
|
|
232
|
+
self.api_object.latitude = lat
|
|
233
|
+
self.api_object.longitude = long
|
|
234
|
+
self.editor.gui.show_info_toast("Coordinates consolidated!")
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
from typing import TYPE_CHECKING
|
|
8
|
+
|
|
9
|
+
from PySide6 import QtWidgets
|
|
10
|
+
from PySide6.QtCore import QPointF
|
|
11
|
+
from PySide6.QtGui import QPolygonF
|
|
12
|
+
from VeraGrid.Gui.gui_functions import add_menu_entry
|
|
13
|
+
from VeraGrid.Gui.Diagrams.generic_graphics import Polygon
|
|
14
|
+
from VeraGrid.Gui.Diagrams.MapWidget.Injections.map_injections_template_graphics import MapInjectionTemplateGraphicItem
|
|
15
|
+
from VeraGrid.Gui.RmsModelEditor.rms_model_editor_engine import RmsModelEditorGUI
|
|
16
|
+
from VeraGridEngine.Devices.Injections.load import Load
|
|
17
|
+
from VeraGridEngine.enumerations import DeviceType
|
|
18
|
+
|
|
19
|
+
if TYPE_CHECKING: # Only imports the below statements during type checking
|
|
20
|
+
from VeraGrid.Gui.Diagrams.MapWidget.grid_map_widget import GridMapWidget
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class MapLoadGraphicItem(MapInjectionTemplateGraphicItem):
|
|
24
|
+
|
|
25
|
+
def __init__(self, api_object: Load,
|
|
26
|
+
editor: GridMapWidget,
|
|
27
|
+
lat: float,
|
|
28
|
+
lon: float,
|
|
29
|
+
size: float = 0.8,
|
|
30
|
+
draw_labels: bool = True):
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
:param api_object:
|
|
34
|
+
:param editor:
|
|
35
|
+
"""
|
|
36
|
+
MapInjectionTemplateGraphicItem.__init__(self,
|
|
37
|
+
api_object=api_object,
|
|
38
|
+
editor=editor,
|
|
39
|
+
lat=lat,
|
|
40
|
+
lon=lon,
|
|
41
|
+
size=size,
|
|
42
|
+
draw_labels=draw_labels)
|
|
43
|
+
|
|
44
|
+
@property
|
|
45
|
+
def api_object(self) -> Load:
|
|
46
|
+
return self._api_object
|
|
47
|
+
|
|
48
|
+
def contextMenuEvent(self, event: QtWidgets.QGraphicsSceneContextMenuEvent):
|
|
49
|
+
"""
|
|
50
|
+
Display context menu
|
|
51
|
+
@param event:
|
|
52
|
+
@return:
|
|
53
|
+
"""
|
|
54
|
+
if self.api_object is not None:
|
|
55
|
+
menu = self.get_base_context_menu()
|
|
56
|
+
menu.addSection("Load")
|
|
57
|
+
|
|
58
|
+
add_menu_entry(menu=menu,
|
|
59
|
+
text="Rms Editor",
|
|
60
|
+
function_ptr=self.edit_rms,
|
|
61
|
+
icon_path=":/Icons/icons/edit.png")
|
|
62
|
+
|
|
63
|
+
menu.exec(event.screenPos())
|
|
64
|
+
else:
|
|
65
|
+
self.editor.gui.show_error_toast("The graphic has no API object!")
|
|
66
|
+
|
|
67
|
+
def edit_rms(self):
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
:return:
|
|
71
|
+
"""
|
|
72
|
+
# load templates
|
|
73
|
+
templates = self.editor.circuit.rms_models
|
|
74
|
+
|
|
75
|
+
# select line templates
|
|
76
|
+
templ_catalogue = dict()
|
|
77
|
+
templ_list = []
|
|
78
|
+
for templ in templates:
|
|
79
|
+
if templ.tpe == DeviceType.LoadDevice:
|
|
80
|
+
templ_list.append(templ.name)
|
|
81
|
+
templ_catalogue[templ.name] = templ
|
|
82
|
+
|
|
83
|
+
# prompt RmsModelEditorGUI
|
|
84
|
+
rms_model_editor = RmsModelEditorGUI(api_object_model_host=self.api_object.rms_model, templates_list=templ_list,
|
|
85
|
+
templates_catalogue=templ_catalogue, api_object_name=self.api_object.name,
|
|
86
|
+
api_object=self.api_object, main_editor= True, parent=self.editor)
|
|
87
|
+
rms_model_editor.show()
|