GridCal 5.3.4__tar.gz → 5.3.6__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.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +1 -7
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +1 -2
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +7 -5
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +8 -4
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +26 -7
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +3 -1
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +8 -8
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +34 -18
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +12 -15
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -68
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +35 -45
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +29 -203
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +178 -172
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +1 -1
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +12 -2
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +5 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +2 -2
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/GridCalMain.py +1 -1
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +6 -8
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/__version__.py +1 -1
- {gridcal-5.3.4 → gridcal-5.3.6}/PKG-INFO +1 -1
- gridcal-5.3.4/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/gmt_local.py +0 -153
- gridcal-5.3.4/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapbox.py +0 -90
- gridcal-5.3.4/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapquest.py +0 -93
- gridcal-5.3.4/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/open_infra_map.py +0 -102
- gridcal-5.3.4/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/open_street_map.py +0 -103
- gridcal-5.3.4/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_toner.py +0 -91
- gridcal-5.3.4/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_transport.py +0 -94
- gridcal-5.3.4/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_watercolor.py +0 -92
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ExecuteGridCal.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Analysis/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Analysis/gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_editor.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/MainWindow.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/io.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/SubClasses/simulations.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/object_select_window.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SubstationDesigner/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SubstationDesigner/substation_designer.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SubstationDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/TowerBuilder/gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Visualization/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Visualization/visualization.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Widgets/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/associations_model.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/console_widget.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/general_dialogues.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/gui_functions.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/messages.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/object_model.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/pandas_model.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/plot_config.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/profiles_model.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/results_model.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/themes.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/update_gui_all.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/update_gui_common.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/wrappable_table_model.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/LICENSE.txt +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Session/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Session/export_results_driver.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Session/file_handler.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Session/server_driver.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Session/session.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Session/synchronization_driver.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/data/GridCal.ico +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/data/GridCal.svg +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/data/__init__.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/data/cables.csv +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/data/sequence_lines.csv +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/data/transformers.csv +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/data/wires.csv +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/plugins.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/templates.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/GridCal/update.py +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/setup.cfg +0 -0
- {gridcal-5.3.4 → gridcal-5.3.6}/setup.py +0 -0
@@ -144,7 +144,7 @@ class LineLocationGraphicItem(QtWidgets.QGraphicsEllipseItem, NodeTemplate):
|
|
144
144
|
x = pos.x() - self.rect().width() / 2
|
145
145
|
y = pos.y() - self.rect().height() / 2
|
146
146
|
self.setRect(x, y, self.rect().width(), self.rect().height())
|
147
|
-
self.
|
147
|
+
self.set_callbacks(pos.x(), pos.y())
|
148
148
|
|
149
149
|
if self.hovered and self.enabled:
|
150
150
|
self.update_position()
|
@@ -232,13 +232,7 @@ class LineLocationGraphicItem(QtWidgets.QGraphicsEllipseItem, NodeTemplate):
|
|
232
232
|
# Implement the functionality for Action 1 here
|
233
233
|
self.editor.remove_line_location_graphic(self)
|
234
234
|
|
235
|
-
def MergeFunction(self):
|
236
|
-
"""
|
237
235
|
|
238
|
-
:return:
|
239
|
-
"""
|
240
|
-
self.editor.merge_lines()
|
241
|
-
pass
|
242
236
|
|
243
237
|
def setNodeColor(self, inner_color: QColor, border_color: QColor = None) -> None:
|
244
238
|
"""
|
{gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py
RENAMED
@@ -47,7 +47,6 @@ class MapLineContainer(GenericDiagramWidget):
|
|
47
47
|
self.nodes_list: List[LineLocationGraphicItem] = list()
|
48
48
|
self.segments_list: List[MapLineSegment] = list()
|
49
49
|
self.enabled = True
|
50
|
-
self.original = True # TODO: Que es esto?
|
51
50
|
|
52
51
|
def set_width_scale(self, branch_scale: float, arrow_scale: float):
|
53
52
|
"""
|
@@ -469,7 +468,7 @@ class MapLineContainer(GenericDiagramWidget):
|
|
469
468
|
for line in self.segments_list:
|
470
469
|
line.set_enable(val=False)
|
471
470
|
|
472
|
-
def set_arrows_with_power(self, Sf: complex, St: complex) -> None:
|
471
|
+
def set_arrows_with_power(self, Sf: complex | None, St: complex | None) -> None:
|
473
472
|
"""
|
474
473
|
|
475
474
|
:param Sf:
|
@@ -63,7 +63,7 @@ class MapLineSegment(QGraphicsLineItem):
|
|
63
63
|
self.first.add_position_change_callback(self.set_from_side_coordinates)
|
64
64
|
self.second.add_position_change_callback(self.set_to_side_coordinates)
|
65
65
|
|
66
|
-
self.set_colour(self.color, self.style)
|
66
|
+
self._pen = self.set_colour(self.color, self.style)
|
67
67
|
self.update_endings()
|
68
68
|
self.needsUpdate = True
|
69
69
|
self.setZValue(0)
|
@@ -93,9 +93,9 @@ class MapLineSegment(QGraphicsLineItem):
|
|
93
93
|
:param width:
|
94
94
|
:return:
|
95
95
|
"""
|
96
|
-
|
97
|
-
|
98
|
-
|
96
|
+
if self._pen.widthF() != width: # Only update if width changes
|
97
|
+
self._pen.setWidthF(width)
|
98
|
+
self.setPen(self._pen)
|
99
99
|
|
100
100
|
def set_arrow_scale(self, width: float):
|
101
101
|
"""
|
@@ -124,6 +124,8 @@ class MapLineSegment(QGraphicsLineItem):
|
|
124
124
|
self.arrow_p_to.set_colour(color, self.arrow_p_to.w, style)
|
125
125
|
self.arrow_q_to.set_colour(color, self.arrow_q_to.w, style)
|
126
126
|
|
127
|
+
return pen
|
128
|
+
|
127
129
|
def set_from_side_coordinates(self, x: float, y: float):
|
128
130
|
"""
|
129
131
|
|
@@ -383,7 +385,7 @@ class MapLineSegment(QGraphicsLineItem):
|
|
383
385
|
self.editor.circuit.delete_branch(obj=self.api_object)
|
384
386
|
self.editor.delete_diagram_element(device=self.api_object)
|
385
387
|
|
386
|
-
def set_arrows_with_power(self, Sf: complex, St: complex) -> None:
|
388
|
+
def set_arrows_with_power(self, Sf: complex | None, St: complex | None) -> None:
|
387
389
|
"""
|
388
390
|
Set the arrow directions
|
389
391
|
:param Sf: Complex power from
|
@@ -5,7 +5,7 @@
|
|
5
5
|
from __future__ import annotations
|
6
6
|
from typing import Union, TYPE_CHECKING, List, Callable
|
7
7
|
from PySide6.QtCore import QPointF
|
8
|
-
from PySide6.QtGui import QBrush
|
8
|
+
from PySide6.QtGui import QBrush
|
9
9
|
|
10
10
|
from GridCal.Gui.Diagrams.generic_graphics import GenericDiagramWidget
|
11
11
|
|
@@ -24,10 +24,15 @@ class NodeTemplate(GenericDiagramWidget):
|
|
24
24
|
api_object: ALL_DEV_TYPES = None,
|
25
25
|
editor: Union[GridMapWidget, None] = None,
|
26
26
|
draw_labels: bool = True,
|
27
|
-
needsUpdate: bool = True,
|
28
27
|
lat: float = 0.0,
|
29
28
|
lon: float = 0.0):
|
30
29
|
"""
|
30
|
+
|
31
|
+
:param api_object: any GridCal device object
|
32
|
+
:param editor: GridMapWidget
|
33
|
+
:param draw_labels:
|
34
|
+
:param lat:
|
35
|
+
:param lon:
|
31
36
|
"""
|
32
37
|
GenericDiagramWidget.__init__(self,
|
33
38
|
parent=None,
|
@@ -35,7 +40,6 @@ class NodeTemplate(GenericDiagramWidget):
|
|
35
40
|
editor=editor,
|
36
41
|
draw_labels=draw_labels)
|
37
42
|
|
38
|
-
self.needs_update: bool = needsUpdate
|
39
43
|
self.lat = lat
|
40
44
|
self.lon = lon
|
41
45
|
|
@@ -52,7 +56,7 @@ class NodeTemplate(GenericDiagramWidget):
|
|
52
56
|
"""
|
53
57
|
self._callbacks.append(fcn)
|
54
58
|
|
55
|
-
def
|
59
|
+
def set_callbacks(self, x: float, y: float) -> None:
|
56
60
|
"""
|
57
61
|
Call all callback functions with x, y
|
58
62
|
:param x: x position
|
{gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py
RENAMED
@@ -62,8 +62,14 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
62
62
|
self.api_object: Substation = api_object # reassign for the types to be clear
|
63
63
|
|
64
64
|
self.radius = r
|
65
|
-
|
66
|
-
|
65
|
+
r2 = r / 2
|
66
|
+
x, y = self.editor.to_x_y(lat=lat, lon=lon) # upper left corner
|
67
|
+
self.setRect(
|
68
|
+
x - r2,
|
69
|
+
y - r2,
|
70
|
+
self.radius,
|
71
|
+
self.radius
|
72
|
+
)
|
67
73
|
|
68
74
|
# Enable hover events for the item
|
69
75
|
self.setAcceptHoverEvents(True)
|
@@ -113,7 +119,7 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
113
119
|
r3 = r / 2
|
114
120
|
xc = new_x + r3
|
115
121
|
yc = new_y + r3
|
116
|
-
self.
|
122
|
+
self.set_callbacks(xc, yc)
|
117
123
|
|
118
124
|
for vl_graphics in self.voltage_level_graphics:
|
119
125
|
vl_graphics.center_on_substation()
|
@@ -155,8 +161,14 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
155
161
|
:param lon:
|
156
162
|
:return: x, y
|
157
163
|
"""
|
158
|
-
x, y = self.editor.to_x_y(lat=lat, lon=lon)
|
159
|
-
|
164
|
+
x, y = self.editor.to_x_y(lat=lat, lon=lon) # upper left corner
|
165
|
+
|
166
|
+
self.setRect(
|
167
|
+
x - self.rect().width() / 2,
|
168
|
+
y - self.rect().height() / 2,
|
169
|
+
self.rect().width(),
|
170
|
+
self.rect().height()
|
171
|
+
)
|
160
172
|
|
161
173
|
for vl in self.voltage_level_graphics:
|
162
174
|
vl.center_on_substation()
|
@@ -224,13 +236,20 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
224
236
|
x = pos.x() - self.rect().width() / 2
|
225
237
|
y = pos.y() - self.rect().height() / 2
|
226
238
|
self.setRect(x, y, self.rect().width(), self.rect().height())
|
227
|
-
self.
|
239
|
+
self.set_callbacks(pos.x(), pos.y())
|
228
240
|
|
229
241
|
for vl_graphics in self.voltage_level_graphics:
|
230
242
|
vl_graphics.center_on_substation()
|
231
243
|
|
232
244
|
self.update_position_at_the_diagram() # always update
|
233
245
|
|
246
|
+
# QGraphicsRectItem.mouseMoveEvent(self, event)
|
247
|
+
# pos = self.mapToParent(event.pos())
|
248
|
+
# x = pos.x() + self.rect().width() / 2
|
249
|
+
# y = pos.y() + self.rect().height() / 2
|
250
|
+
# self.set_callbacks(x, y)
|
251
|
+
# self.update_position_at_the_diagram() # always update
|
252
|
+
|
234
253
|
def mousePressEvent(self, event: QGraphicsSceneMouseEvent):
|
235
254
|
"""
|
236
255
|
Event handler for mouse press events.
|
@@ -369,7 +388,7 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
369
388
|
|
370
389
|
if ok:
|
371
390
|
x, y = self.move_to(lat=self.api_object.latitude, lon=self.api_object.longitude) # this moves the vl too
|
372
|
-
self.
|
391
|
+
self.set_callbacks(x, y)
|
373
392
|
|
374
393
|
def new_substation_diagram(self):
|
375
394
|
"""
|
@@ -203,6 +203,8 @@ class VoltageLevelGraphicItem(GenericDiagramWidget, QGraphicsEllipseItem):
|
|
203
203
|
icon_path="",
|
204
204
|
function_ptr=self.add_bus)
|
205
205
|
|
206
|
+
menu.exec_(event.screenPos())
|
207
|
+
|
206
208
|
def set_color(self, inner_color: QColor = None, border_color: QColor = None) -> None:
|
207
209
|
"""
|
208
210
|
|
@@ -238,7 +240,7 @@ class VoltageLevelGraphicItem(GenericDiagramWidget, QGraphicsEllipseItem):
|
|
238
240
|
:param width: New pen width.
|
239
241
|
"""
|
240
242
|
pen = self.pen()
|
241
|
-
pen.setWidth(width)
|
243
|
+
pen.setWidth(width) # keep this and do not change to setWidthF
|
242
244
|
self.setPen(pen)
|
243
245
|
|
244
246
|
def add_bus(self):
|
{gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py
RENAMED
@@ -45,9 +45,9 @@ class BlueMarbleTiles(Tiles):
|
|
45
45
|
"""
|
46
46
|
|
47
47
|
Tiles.__init__(self,
|
48
|
-
|
49
|
-
|
50
|
-
|
48
|
+
tile_set_name=name,
|
49
|
+
tile_set_short_name='BM Tiles',
|
50
|
+
tile_set_version='1.0',
|
51
51
|
levels=list(range(10)),
|
52
52
|
tile_width=256,
|
53
53
|
tile_height=256,
|
@@ -66,7 +66,7 @@ class BlueMarbleTiles(Tiles):
|
|
66
66
|
|
67
67
|
Note that we assume the point *is* on the map!
|
68
68
|
|
69
|
-
Code taken from [
|
69
|
+
Code taken from [https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames]
|
70
70
|
"""
|
71
71
|
|
72
72
|
lat_rad = math.radians(latitude)
|
@@ -76,18 +76,18 @@ class BlueMarbleTiles(Tiles):
|
|
76
76
|
|
77
77
|
return xtile, ytile
|
78
78
|
|
79
|
-
def Tile2Geo(self,
|
79
|
+
def Tile2Geo(self, x_tile: float, y_tile: float) -> Tuple[float, float]:
|
80
80
|
"""Convert tile fractional coordinates to geo for level in use.
|
81
81
|
|
82
82
|
tile a tupl;e (xtile,ytile) of tile fractional coordinates
|
83
83
|
|
84
84
|
Note that we assume the point *is* on the map!
|
85
85
|
|
86
|
-
Code taken from [
|
86
|
+
Code taken from [https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames]
|
87
87
|
"""
|
88
88
|
n = 2.0 ** self.level
|
89
|
-
xgeo =
|
90
|
-
yrad = math.atan(math.sinh(math.pi * (1 - 2 *
|
89
|
+
xgeo = x_tile / n * 360.0 - 180.0
|
90
|
+
yrad = math.atan(math.sinh(math.pi * (1 - 2 * y_tile / n)))
|
91
91
|
ygeo = math.degrees(yrad)
|
92
92
|
|
93
93
|
return xgeo, ygeo
|
{gridcal-5.3.4 → gridcal-5.3.6}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py
RENAMED
@@ -23,7 +23,6 @@
|
|
23
23
|
"""
|
24
24
|
A tile source that serves OpenStreetMap tiles from server(s).
|
25
25
|
"""
|
26
|
-
|
27
26
|
import math
|
28
27
|
from typing import Tuple
|
29
28
|
from GridCal.Gui.Diagrams.MapWidget.Tiles.tiles import Tiles
|
@@ -46,16 +45,15 @@ class CartoDbTiles(Tiles):
|
|
46
45
|
:param tile_servers:
|
47
46
|
"""
|
48
47
|
|
49
|
-
super().__init__(
|
50
|
-
|
51
|
-
|
48
|
+
super().__init__(tile_set_name=name,
|
49
|
+
tile_set_short_name='CartoDb Dark Matter',
|
50
|
+
tile_set_version='1.0',
|
52
51
|
levels=list(range(22)),
|
53
52
|
tile_width=256,
|
54
53
|
tile_height=256,
|
55
54
|
tiles_dir=tiles_dir,
|
56
55
|
servers=[
|
57
|
-
"
|
58
|
-
# http://basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png
|
56
|
+
"https://basemaps.cartocdn.com/dark_all/"
|
59
57
|
] if tile_servers is None else tile_servers,
|
60
58
|
url_path='/{Z}/{X}/{Y}.png',
|
61
59
|
max_server_requests=2,
|
@@ -73,28 +71,46 @@ class CartoDbTiles(Tiles):
|
|
73
71
|
def Geo2Tile(self, longitude: float, latitude: float) -> Tuple[float, float]:
|
74
72
|
"""
|
75
73
|
Convert geo to tile fractional coordinates for level in use.
|
76
|
-
geo tuple of geo coordinates (
|
74
|
+
geo tuple of geo coordinates (longitude, latitude)
|
77
75
|
Note that we assume the point *is* on the map!
|
78
|
-
Code taken from [
|
76
|
+
Code taken from [https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames]
|
77
|
+
|
78
|
+
Lon./lat. to tile numbers:
|
79
|
+
n = 2 ^ zoom
|
80
|
+
x_tile = n * ((lon_deg + 180) / 360)
|
81
|
+
y_tile = n * (1 - (log(tan(lat_rad) + sec(lat_rad)) / π)) / 2
|
82
|
+
|
83
|
+
:return: This code returns the coordinate of the upper left point of the tile. (x_tile, y_tile)
|
79
84
|
"""
|
80
85
|
lat_rad = math.radians(latitude)
|
81
|
-
n = 2.0
|
82
|
-
|
83
|
-
|
86
|
+
n = math.pow(2.0, self.level)
|
87
|
+
x_tile = (longitude + 180.0) / 360.0 * n
|
88
|
+
y_tile = ((1.0 - math.log(math.tan(lat_rad) + (1.0 / math.cos(lat_rad))) / math.pi) / 2.0) * n
|
84
89
|
|
85
|
-
return
|
90
|
+
return x_tile, y_tile
|
86
91
|
|
87
|
-
def Tile2Geo(self,
|
92
|
+
def Tile2Geo(self, x_tile: float, y_tile: float) -> Tuple[float, float]:
|
88
93
|
"""
|
89
94
|
Convert tile fractional coordinates to geo for level in use.
|
90
|
-
tile a tuple (
|
95
|
+
tile a tuple (x_tile, y_tile) of tile fractional coordinates
|
91
96
|
Note that we assume the point *is* on the map!
|
92
|
-
Code taken from [
|
97
|
+
Code taken from [https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames]
|
98
|
+
|
99
|
+
n = 2 ^ zoom
|
100
|
+
lon_deg = x_tile / n * 360.0 - 180.0
|
101
|
+
lat_rad = arctan(sinh(π * (1 - 2 * y_tile / n)))
|
102
|
+
lat_deg = lat_rad * 180.0 / π
|
103
|
+
|
104
|
+
This returns the NW-corner of the square.
|
105
|
+
Use the function with x_tile+1 and/or y_tile+1 to get the other corners.
|
106
|
+
With x_tile+0.5 & y_tile+0.5 it will return the center of the tile.
|
107
|
+
|
108
|
+
:return: This code returns the coordinate of the upper left point of the tile. (longitude, latitude)
|
93
109
|
"""
|
94
110
|
|
95
111
|
n = 2.0 ** self.level
|
96
|
-
longitude =
|
97
|
-
|
98
|
-
latitude = math.degrees(
|
112
|
+
longitude = x_tile / n * 360.0 - 180.0
|
113
|
+
y_rad = math.atan(math.sinh(math.pi * (1 - 2 * y_tile / n)))
|
114
|
+
latitude = math.degrees(y_rad)
|
99
115
|
|
100
116
|
return longitude, latitude
|
@@ -72,8 +72,8 @@ class BaseTiles(object):
|
|
72
72
|
self.ppd_y = 0
|
73
73
|
|
74
74
|
# TODO: implement map wrap-around
|
75
|
-
|
76
|
-
|
75
|
+
self.wrap_x = False
|
76
|
+
self.wrap_y = False
|
77
77
|
|
78
78
|
# setup the tile cache
|
79
79
|
self.cache = TilesCache(tiles_dir=tiles_dir, max_lru=max_lru)
|
@@ -207,13 +207,13 @@ class BaseTiles(object):
|
|
207
207
|
Tile coordinates are measured from map top-left.
|
208
208
|
"""
|
209
209
|
|
210
|
-
#
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
210
|
+
# if we are wrapping X or Y, get wrapped tile coords
|
211
|
+
if self.wrap_x:
|
212
|
+
x = (x + self.num_tiles_x * self.tile_size_x) % self.num_tiles_x
|
213
|
+
if self.wrap_y:
|
214
|
+
y = (y + self.num_tiles_y * self.tile_size_y) % self.num_tiles_y
|
215
215
|
|
216
|
-
|
216
|
+
# retrieve the tile
|
217
217
|
try:
|
218
218
|
# get tile from cache
|
219
219
|
return self.cache[(self.level, x, y)]
|
@@ -254,7 +254,6 @@ class BaseTiles(object):
|
|
254
254
|
"""
|
255
255
|
Return True if tile at (level, x, y) is on-disk.
|
256
256
|
"""
|
257
|
-
|
258
257
|
raise Exception('You must override BaseTiles.tile_on_disk(level, x, y))')
|
259
258
|
|
260
259
|
def setCallback(self, callback: Callable[[int, float, float, QPixmap, bool], None]):
|
@@ -262,9 +261,7 @@ class BaseTiles(object):
|
|
262
261
|
Set the "tile available" callback function.
|
263
262
|
Only used with internet tiles. See "tiles_net.py".
|
264
263
|
"""
|
265
|
-
|
266
|
-
pass
|
267
|
-
# raise Exception('You must override BaseTiles.setCallback(callback))')
|
264
|
+
raise Exception('You must override BaseTiles.setCallback(callback))')
|
268
265
|
|
269
266
|
def Geo2Tile(self, longitude: float, latitude: float) -> Tuple[int, int]:
|
270
267
|
"""
|
@@ -277,12 +274,12 @@ class BaseTiles(object):
|
|
277
274
|
|
278
275
|
raise Exception('You must override BaseTiles.Geo2Tile(xgeo, ygeo)')
|
279
276
|
|
280
|
-
def Tile2Geo(self,
|
277
|
+
def Tile2Geo(self, x_tile: float, y_tile: float) -> Tuple[float, float]:
|
281
278
|
"""
|
282
279
|
Convert tile fractional coordinates to geo for level in use.
|
283
280
|
|
284
|
-
|
285
|
-
|
281
|
+
:param x_tile: tile fractional X coordinate
|
282
|
+
:param y_tile: tile fractional Y coordinate
|
286
283
|
|
287
284
|
Note that we assume the point *is* on the map!
|
288
285
|
"""
|
@@ -42,74 +42,6 @@ def log(val: str):
|
|
42
42
|
print(val)
|
43
43
|
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
# class OsmHandler(osm.SimpleHandler):
|
48
|
-
# def __init__(self):
|
49
|
-
# super().__init__()
|
50
|
-
# self.nodes = []
|
51
|
-
# self.ways = []
|
52
|
-
#
|
53
|
-
# def node(self, n):
|
54
|
-
# self.nodes.append((n.location.lat, n.location.lon))
|
55
|
-
#
|
56
|
-
# def way(self, w):
|
57
|
-
# self.ways.append([node.ref for node in w.nodes])
|
58
|
-
#
|
59
|
-
#
|
60
|
-
# def render_pbf_to_pixmap(pbf_file: str, width=800, height=800) -> QPixmap:
|
61
|
-
# """
|
62
|
-
#
|
63
|
-
# :param pbf_file:
|
64
|
-
# :param width:
|
65
|
-
# :param height:
|
66
|
-
# :return:
|
67
|
-
# """
|
68
|
-
# # Parse the .pbf file
|
69
|
-
# handler = OsmHandler()
|
70
|
-
# handler.apply_file(pbf_file)
|
71
|
-
#
|
72
|
-
# # Setup Mercator projection
|
73
|
-
# mercator_proj = Proj("epsg:3857")
|
74
|
-
#
|
75
|
-
# # Create a QPixmap and painter
|
76
|
-
# pixmap = QPixmap(width, height)
|
77
|
-
# pixmap.fill(Qt.GlobalColor.white)
|
78
|
-
# painter = QPainter(pixmap)
|
79
|
-
# painter.setPen(QPen(Qt.GlobalColor.black, 1))
|
80
|
-
#
|
81
|
-
# # Scale coordinates to fit the pixmap
|
82
|
-
# bounds = {
|
83
|
-
# 'min_x': float('inf'), 'max_x': float('-inf'),
|
84
|
-
# 'min_y': float('inf'), 'max_y': float('-inf')
|
85
|
-
# }
|
86
|
-
# transformed_nodes = []
|
87
|
-
#
|
88
|
-
# for lat, lon in handler.nodes:
|
89
|
-
# x, y = mercator_proj(lon, lat)
|
90
|
-
# transformed_nodes.append((x, y))
|
91
|
-
# bounds['min_x'] = min(bounds['min_x'], x)
|
92
|
-
# bounds['max_x'] = max(bounds['max_x'], x)
|
93
|
-
# bounds['min_y'] = min(bounds['min_y'], y)
|
94
|
-
# bounds['max_y'] = max(bounds['max_y'], y)
|
95
|
-
#
|
96
|
-
# x_range = bounds['max_x'] - bounds['min_x']
|
97
|
-
# y_range = bounds['max_y'] - bounds['min_y']
|
98
|
-
# scale_x = width / x_range if x_range else 1
|
99
|
-
# scale_y = height / y_range if y_range else 1
|
100
|
-
# scale = min(scale_x, scale_y)
|
101
|
-
#
|
102
|
-
# # Render nodes as points
|
103
|
-
# for x, y in transformed_nodes:
|
104
|
-
# scaled_x = int((x - bounds['min_x']) * scale)
|
105
|
-
# scaled_y = int((y - bounds['min_y']) * scale)
|
106
|
-
# painter.drawPoint(scaled_x, height - scaled_y) # Flip y-axis for Qt's coordinate system
|
107
|
-
#
|
108
|
-
# # Close the painter
|
109
|
-
# painter.end()
|
110
|
-
# return pixmap
|
111
|
-
|
112
|
-
|
113
45
|
class TileWorker(QThread):
|
114
46
|
"""Thread class that gets request from queue, loads tile, calls callback."""
|
115
47
|
|