GridCal 5.1.35__tar.gz → 5.1.37__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.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +2 -1
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/open_street_map.py +10 -3
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +13 -8
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +4 -4
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +3 -3
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +11 -21
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +30 -31
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +4 -2
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/base_diagram_widget.py +1 -1
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/MainWindow.py +226 -230
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +50 -29
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/simulations.py +8 -5
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/icons_rc.py +2 -2
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/__version__.py +1 -1
- {GridCal-5.1.35 → GridCal-5.1.37}/PKG-INFO +1 -1
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ExecuteGridCal.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Analysis/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Analysis/gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/gmt_local.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapbox.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapquest.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_toner.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_transport.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_watercolor.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/SubClasses/io.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/object_select_window.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/TowerBuilder/gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/TowerBuilder/test_.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Visualization/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Visualization/visualization.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Widgets/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/associations_model.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/console_widget.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/general_dialogues.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/gui_functions.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/messages.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/object_model.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/pandas_model.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/plot_config.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/profiles_model.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/themes.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/update_gui_all.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/update_gui_common.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/wrappable_table_model.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/LICENSE.txt +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Session/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Session/export_results_driver.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Session/file_handler.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Session/results_model.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Session/server_driver.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Session/session.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Session/synchronization_driver.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/data/__init__.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/data/cables.csv +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/data/sequence_lines.csv +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/data/transformers.csv +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/data/wires.csv +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/plugins.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/templates.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/GridCal/update.py +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/setup.cfg +0 -0
- {GridCal-5.1.35 → GridCal-5.1.37}/setup.py +0 -0
{GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py
RENAMED
@@ -282,7 +282,8 @@ class MapLineSegment(QGraphicsLineItem):
|
|
282
282
|
templates.append(temp)
|
283
283
|
|
284
284
|
current_template = self.api_object.template
|
285
|
-
dlg = LineEditor(self.api_object, Sbase,
|
285
|
+
dlg = LineEditor(line=self.api_object, Sbase=Sbase, frequency=self.editor.circuit.fBase,
|
286
|
+
templates=templates, current_template=current_template)
|
286
287
|
if dlg.exec_():
|
287
288
|
pass
|
288
289
|
|
@@ -10,14 +10,21 @@ from GridCal.Gui.Diagrams.MapWidget.Tiles.tiles import Tiles
|
|
10
10
|
class OsmTiles(Tiles):
|
11
11
|
"""An object to source server tiles for pySlipQt."""
|
12
12
|
|
13
|
-
def __init__(self, tiles_dir='open_street_map_tiles', http_proxy=None):
|
13
|
+
def __init__(self, name: str = 'OpenStreetMap Tiles', tiles_dir='open_street_map_tiles', http_proxy=None, tile_servers=None):
|
14
|
+
"""
|
15
|
+
|
16
|
+
:param name:
|
17
|
+
:param tiles_dir:
|
18
|
+
:param http_proxy:
|
19
|
+
:param tile_servers:
|
20
|
+
"""
|
14
21
|
"""Override the base class for these tiles.
|
15
22
|
|
16
23
|
Basically, just fill in the BaseTiles class with values from above
|
17
24
|
and provide the Geo2Tile() and Tile2Geo() methods.
|
18
25
|
"""
|
19
26
|
|
20
|
-
super().__init__(TilesetName=
|
27
|
+
super().__init__(TilesetName=name,
|
21
28
|
TilesetShortName='OSM Tiles',
|
22
29
|
TilesetVersion='1.0',
|
23
30
|
levels=list(range(17)),
|
@@ -30,7 +37,7 @@ class OsmTiles(Tiles):
|
|
30
37
|
# 'https://a.tile.openstreetmap.org',
|
31
38
|
# 'https://b.tile.openstreetmap.org',
|
32
39
|
# 'https://c.tile.openstreetmap.org',
|
33
|
-
],
|
40
|
+
] if tile_servers is None else tile_servers,
|
34
41
|
url_path='/{Z}/{X}/{Y}.png',
|
35
42
|
max_server_requests=2,
|
36
43
|
max_lru=10000,
|
@@ -6,7 +6,8 @@ For example, see osm_tiles.py.
|
|
6
6
|
"""
|
7
7
|
import queue
|
8
8
|
import ssl
|
9
|
-
from urllib import request
|
9
|
+
# from urllib import request
|
10
|
+
from urllib.request import Request, urlopen
|
10
11
|
from collections.abc import Callable
|
11
12
|
from PySide6.QtGui import QPixmap
|
12
13
|
from PySide6.QtCore import QThread
|
@@ -27,7 +28,7 @@ class TileWorker(QThread):
|
|
27
28
|
id_num: int,
|
28
29
|
server: str,
|
29
30
|
tilepath: str,
|
30
|
-
|
31
|
+
requests_cue: queue.Queue,
|
31
32
|
callback: Callable[[int, float, float, QPixmap, bool], None], # level, x, y, pixmap, error
|
32
33
|
error_tile: QPixmap,
|
33
34
|
content_type: str,
|
@@ -40,7 +41,7 @@ class TileWorker(QThread):
|
|
40
41
|
:param id_num: a unique numer identifying the worker instance
|
41
42
|
:param server: server URL
|
42
43
|
:param tilepath: path to tile on server
|
43
|
-
:param
|
44
|
+
:param requests_cue: the request queue
|
44
45
|
:param callback: function to call after tile available
|
45
46
|
:param error_tile: image of error tile
|
46
47
|
:param content_type: expected Content-Type string
|
@@ -54,7 +55,7 @@ class TileWorker(QThread):
|
|
54
55
|
self.id_num = id_num
|
55
56
|
self.server = server
|
56
57
|
self.tilepath = tilepath
|
57
|
-
self.
|
58
|
+
self.requests_cue = requests_cue
|
58
59
|
self.callback: Callable[[int, float, float, QPixmap, bool], None] = callback
|
59
60
|
self.error_tile_image = error_tile
|
60
61
|
self.content_type = content_type
|
@@ -70,15 +71,19 @@ class TileWorker(QThread):
|
|
70
71
|
"""
|
71
72
|
while True:
|
72
73
|
# get zoom level and tile coordinates to retrieve
|
73
|
-
(level, x, y) = self.
|
74
|
+
(level, x, y) = self.requests_cue.get()
|
74
75
|
|
75
76
|
# try to retrieve the image
|
76
77
|
error = False
|
77
78
|
pixmap = self.error_image
|
78
79
|
try:
|
79
80
|
tile_url = self.server + self.tilepath.format(Z=level, X=x, Y=y)
|
80
|
-
|
81
|
+
|
82
|
+
# Create a Request object with the desired headers
|
83
|
+
response = urlopen(Request(tile_url, headers={'User-Agent': 'GridCal 5'}))
|
84
|
+
|
81
85
|
content_type = response.info().get_content_type()
|
86
|
+
|
82
87
|
if content_type == self.content_type:
|
83
88
|
data = response.read()
|
84
89
|
pixmap = QPixmap()
|
@@ -88,11 +93,11 @@ class TileWorker(QThread):
|
|
88
93
|
error = True
|
89
94
|
except Exception as e:
|
90
95
|
error = True
|
91
|
-
log(
|
96
|
+
log(f"{e} exception getting tile ({level},{x},{y}) with {tile_url}")
|
92
97
|
|
93
98
|
# call the callback function passing level, x, y and pixmap data
|
94
99
|
# error is False if we want to cache this tile on-disk
|
95
100
|
self.callback(level, x, y, pixmap, error)
|
96
101
|
|
97
102
|
# finally, removes request from queue
|
98
|
-
self.
|
103
|
+
self.requests_cue.task_done()
|
@@ -147,9 +147,9 @@ class Tiles(BaseTiles):
|
|
147
147
|
# test for firewall - use proxy (if supplied)
|
148
148
|
test_url = self.servers[0] + self.url_path.format(Z=0, X=0, Y=0)
|
149
149
|
try:
|
150
|
-
|
151
|
-
|
152
|
-
request.urlopen(test_url)
|
150
|
+
r = request.Request(test_url, headers={'User-Agent': 'GridCal 5'})
|
151
|
+
response = request.urlopen(r).read()
|
152
|
+
# request.urlopen(test_url)
|
153
153
|
except HTTPError as e:
|
154
154
|
# if it's fatal, log it and die, otherwise try a proxy
|
155
155
|
status_code = e.code
|
@@ -188,7 +188,7 @@ class Tiles(BaseTiles):
|
|
188
188
|
worker = TileWorker(id_num=num_thread,
|
189
189
|
server=server,
|
190
190
|
tilepath=self.url_path,
|
191
|
-
|
191
|
+
requests_cue=self.request_queue,
|
192
192
|
callback=self.tile_is_available,
|
193
193
|
error_tile=self.error_tile,
|
194
194
|
content_type=self.content_type,
|
@@ -1126,10 +1126,10 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1126
1126
|
#
|
1127
1127
|
# painter = QPainter(image)
|
1128
1128
|
# painter.setRenderHint(QPainter.Antialiasing)
|
1129
|
-
#
|
1130
|
-
# self.render(painter)
|
1129
|
+
# self.map.view.render(painter) # self.view stores the grid widgets
|
1130
|
+
# # self.render(painter)
|
1131
1131
|
# painter.end()
|
1132
|
-
image = self.grab().toImage()
|
1132
|
+
image = self.map.grab().toImage()
|
1133
1133
|
|
1134
1134
|
return image, w, h
|
1135
1135
|
|
@@ -34,7 +34,7 @@ from PySide6.QtCore import Qt, QTimer, QEvent, QPointF
|
|
34
34
|
from PySide6.QtGui import (QPainter, QColor, QPixmap, QCursor,
|
35
35
|
QMouseEvent, QKeyEvent, QWheelEvent,
|
36
36
|
QResizeEvent, QEnterEvent, QPaintEvent, QDragEnterEvent, QDragMoveEvent, QDropEvent)
|
37
|
-
from PySide6.QtWidgets import (QSizePolicy, QWidget, QGraphicsScene, QGraphicsView, QStackedLayout,
|
37
|
+
from PySide6.QtWidgets import (QSizePolicy, QWidget, QGraphicsScene, QGraphicsView, QStackedLayout,
|
38
38
|
QGraphicsSceneMouseEvent, QGraphicsItem, QLabel, QGraphicsProxyWidget)
|
39
39
|
|
40
40
|
from GridCal.Gui.Diagrams.MapWidget.Tiles.tiles import Tiles
|
@@ -77,7 +77,7 @@ class MapScene(QGraphicsScene):
|
|
77
77
|
# print(f"Scene pressed at {event.scenePos()}")
|
78
78
|
super().mousePressEvent(event)
|
79
79
|
|
80
|
-
def mouseReleaseEvent(self, event):
|
80
|
+
def mouseReleaseEvent(self, event: QGraphicsSceneMouseEvent) -> None:
|
81
81
|
"""
|
82
82
|
|
83
83
|
:param event:
|
@@ -113,20 +113,19 @@ class MapView(QGraphicsView):
|
|
113
113
|
self._scene = scene
|
114
114
|
|
115
115
|
self.map_widget = map_widget
|
116
|
+
self.setStyleSheet("QGraphicsView { border: none; }")
|
116
117
|
|
117
118
|
# Create a QLabel
|
118
|
-
self.
|
119
|
-
self.
|
120
|
-
|
121
|
-
|
119
|
+
self.attribution_label = QLabel("Bottom Left Label")
|
120
|
+
self.attribution_label.setStyleSheet("background-color: rgba(0, 0, 0, 0);"
|
121
|
+
"color: rgba(150, 150, 150, 180);"
|
122
|
+
"font-size:9pt") # Semi-transparent yellow
|
122
123
|
|
123
124
|
# Create a QGraphicsProxyWidget for the QLabel
|
124
125
|
self.label_proxy_widget = QGraphicsProxyWidget()
|
125
|
-
self.label_proxy_widget.setWidget(self.
|
126
|
-
|
127
|
-
# Position the QLabel within the scene
|
128
|
-
self.label_proxy_widget.setPos(0, scene.sceneRect().height() - self.label.height()) # Bottom-left position
|
126
|
+
self.label_proxy_widget.setWidget(self.attribution_label)
|
129
127
|
self.label_proxy_widget.setFlag(QGraphicsItem.ItemIgnoresTransformations)
|
128
|
+
self.update_label_position()
|
130
129
|
|
131
130
|
# Add the proxy widget to the scene
|
132
131
|
self._scene.addItem(self.label_proxy_widget)
|
@@ -157,7 +156,7 @@ class MapView(QGraphicsView):
|
|
157
156
|
:param val:
|
158
157
|
:return:
|
159
158
|
"""
|
160
|
-
self.
|
159
|
+
self.attribution_label.setText(val)
|
161
160
|
|
162
161
|
def selected_items(self) -> List[QGraphicsItem]:
|
163
162
|
"""
|
@@ -305,7 +304,7 @@ class MapView(QGraphicsView):
|
|
305
304
|
view_height = self.viewport().height()
|
306
305
|
|
307
306
|
# Set position relative to the bottom-left corner of the viewport
|
308
|
-
self.label_proxy_widget.setPos(self.mapToScene(0, view_height - self.
|
307
|
+
self.label_proxy_widget.setPos(self.mapToScene(0, view_height - self.attribution_label.height()))
|
309
308
|
|
310
309
|
def set_size_diagram(self) -> None:
|
311
310
|
"""
|
@@ -1879,15 +1878,6 @@ class MapWidget(QWidget):
|
|
1879
1878
|
# self.tile_size_y = tile_src.tile_size_y
|
1880
1879
|
self.level = level
|
1881
1880
|
|
1882
|
-
result = self.tile_src.GetInfo(level)
|
1883
|
-
(num_tiles_x, num_tiles_y, ppd_x, ppd_y) = result
|
1884
|
-
# self.map_width = self.tile_size_x * num_tiles_x
|
1885
|
-
# self.map_height = self.tile_size_y * num_tiles_y
|
1886
|
-
|
1887
|
-
# set tile levels stuff - allowed levels, etc
|
1888
|
-
# self.tiles_max_level = max(tile_src.levels)
|
1889
|
-
# self.tiles_min_level = min(tile_src.levels)
|
1890
|
-
|
1891
1881
|
# set callback from Tile source object when tile(s) available
|
1892
1882
|
self.tile_src.setCallback(self.on_tile_available)
|
1893
1883
|
|
{GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py
RENAMED
@@ -29,8 +29,10 @@ class LineEditor(QDialog):
|
|
29
29
|
LineEditor
|
30
30
|
"""
|
31
31
|
|
32
|
-
def __init__(self,
|
32
|
+
def __init__(self,
|
33
|
+
line: Line,
|
33
34
|
Sbase=100,
|
35
|
+
frequency=50,
|
34
36
|
templates: Union[List[Union[SequenceLineType, OverheadLineType, UndergroundLineType]], None] = None,
|
35
37
|
current_template=None):
|
36
38
|
"""
|
@@ -46,6 +48,8 @@ class LineEditor(QDialog):
|
|
46
48
|
|
47
49
|
self.Sbase = Sbase
|
48
50
|
|
51
|
+
self.frequency = frequency
|
52
|
+
|
49
53
|
self.templates = templates
|
50
54
|
|
51
55
|
self.current_template = current_template
|
@@ -130,6 +134,7 @@ class LineEditor(QDialog):
|
|
130
134
|
self.l_spinner.setMaximum(9999999)
|
131
135
|
self.l_spinner.setDecimals(6)
|
132
136
|
self.l_spinner.setValue(length)
|
137
|
+
self.l_spinner.setSuffix(' Km')
|
133
138
|
|
134
139
|
# Max current
|
135
140
|
self.i_spinner = QDoubleSpinBox()
|
@@ -137,6 +142,7 @@ class LineEditor(QDialog):
|
|
137
142
|
self.i_spinner.setMaximum(9999999)
|
138
143
|
self.i_spinner.setDecimals(2)
|
139
144
|
self.i_spinner.setValue(I)
|
145
|
+
self.i_spinner.setSuffix(' KA')
|
140
146
|
|
141
147
|
# R
|
142
148
|
self.r_spinner = QDoubleSpinBox()
|
@@ -144,6 +150,7 @@ class LineEditor(QDialog):
|
|
144
150
|
self.r_spinner.setMaximum(9999999)
|
145
151
|
self.r_spinner.setDecimals(6)
|
146
152
|
self.r_spinner.setValue(R)
|
153
|
+
self.r_spinner.setSuffix(' Ω/Km')
|
147
154
|
|
148
155
|
# X
|
149
156
|
self.x_spinner = QDoubleSpinBox()
|
@@ -151,6 +158,7 @@ class LineEditor(QDialog):
|
|
151
158
|
self.x_spinner.setMaximum(9999999)
|
152
159
|
self.x_spinner.setDecimals(6)
|
153
160
|
self.x_spinner.setValue(X)
|
161
|
+
self.x_spinner.setSuffix(' Ω/Km')
|
154
162
|
|
155
163
|
# B
|
156
164
|
self.b_spinner = QDoubleSpinBox()
|
@@ -158,6 +166,7 @@ class LineEditor(QDialog):
|
|
158
166
|
self.b_spinner.setMaximum(9999999)
|
159
167
|
self.b_spinner.setDecimals(6)
|
160
168
|
self.b_spinner.setValue(B)
|
169
|
+
self.b_spinner.setSuffix(" uS/Km")
|
161
170
|
|
162
171
|
# apply to profile
|
163
172
|
self.apply_to_profile = QCheckBox()
|
@@ -177,19 +186,19 @@ class LineEditor(QDialog):
|
|
177
186
|
self.layout.addWidget(self.load_template_btn)
|
178
187
|
self.layout.addWidget(QLabel(""))
|
179
188
|
|
180
|
-
self.layout.addWidget(QLabel("L: Line length
|
189
|
+
self.layout.addWidget(QLabel("L: Line length"))
|
181
190
|
self.layout.addWidget(self.l_spinner)
|
182
191
|
|
183
|
-
self.layout.addWidget(QLabel("Imax: Max. current
|
192
|
+
self.layout.addWidget(QLabel("Imax: Max. current @" + str(int(Vf)) + " [KV]"))
|
184
193
|
self.layout.addWidget(self.i_spinner)
|
185
194
|
|
186
|
-
self.layout.addWidget(QLabel("R: Resistance
|
195
|
+
self.layout.addWidget(QLabel("R: Resistance"))
|
187
196
|
self.layout.addWidget(self.r_spinner)
|
188
197
|
|
189
|
-
self.layout.addWidget(QLabel("X: Inductance
|
198
|
+
self.layout.addWidget(QLabel("X: Inductance"))
|
190
199
|
self.layout.addWidget(self.x_spinner)
|
191
200
|
|
192
|
-
self.layout.addWidget(QLabel("
|
201
|
+
self.layout.addWidget(QLabel("S: Susceptance"))
|
193
202
|
self.layout.addWidget(self.b_spinner)
|
194
203
|
|
195
204
|
self.layout.addWidget(self.apply_to_profile)
|
@@ -210,37 +219,27 @@ class LineEditor(QDialog):
|
|
210
219
|
self.line.length = self.l_spinner.value()
|
211
220
|
self.line.apply_template(self.selected_template, Sbase=self.Sbase)
|
212
221
|
else:
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
self.line.R = np.round(R / Zbase, 6)
|
225
|
-
self.line.X = np.round(X / Zbase, 6)
|
226
|
-
self.line.B = np.round(B * 1e-6 / Ybase, 6)
|
227
|
-
old_rate = float(self.line.rate)
|
228
|
-
new_rate = np.round(I * Vf * 1.73205080757, 6) # nominal power in MVA = kA * kV * sqrt(3)
|
229
|
-
self.line.rate = new_rate
|
230
|
-
self.line.length = length
|
231
|
-
|
232
|
-
if self.apply_to_profile.isChecked():
|
233
|
-
prof_old = self.line.rate_prof.toarray()
|
234
|
-
self.line.rate_prof.set(prof_old * new_rate / old_rate)
|
222
|
+
wf = 2 * np.pi * self.frequency
|
223
|
+
self.line.fill_design_properties(
|
224
|
+
r_ohm=self.r_spinner.value(), # ohm / km
|
225
|
+
x_ohm=self.x_spinner.value(), # ohm / km
|
226
|
+
c_nf=self.b_spinner.value() * 1e3 / wf, # nF / km
|
227
|
+
length=self.l_spinner.value(), # km
|
228
|
+
Imax=self.i_spinner.value(), # kA
|
229
|
+
freq=self.frequency, # Hz
|
230
|
+
Sbase=self.Sbase, # MVA
|
231
|
+
apply_to_profile=self.apply_to_profile.isChecked()
|
232
|
+
)
|
235
233
|
|
236
234
|
self.accept()
|
237
235
|
|
238
|
-
def load_template(self, template):
|
236
|
+
def load_template(self, template: Union[SequenceLineType, OverheadLineType, UndergroundLineType]):
|
239
237
|
"""
|
240
|
-
|
241
|
-
:param template:
|
238
|
+
Load a template in the editor
|
239
|
+
:param template: line compatible template
|
242
240
|
:return:
|
243
241
|
"""
|
242
|
+
|
244
243
|
if isinstance(template, SequenceLineType):
|
245
244
|
self.i_spinner.setValue(template.Imax)
|
246
245
|
self.r_spinner.setValue(template.R)
|
{GridCal-5.1.35 → GridCal-5.1.37}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py
RENAMED
@@ -245,7 +245,8 @@ class LineGraphicItem(LineGraphicTemplateItem):
|
|
245
245
|
templates.append(temp)
|
246
246
|
|
247
247
|
current_template = self.api_object.template
|
248
|
-
dlg = LineEditor(self.api_object, Sbase,
|
248
|
+
dlg = LineEditor(line=self.api_object, Sbase=Sbase, frequency=self.editor.circuit.fBase,
|
249
|
+
templates=templates, current_template=current_template)
|
249
250
|
if dlg.exec_():
|
250
251
|
pass
|
251
252
|
|
@@ -256,7 +257,8 @@ class LineGraphicItem(LineGraphicTemplateItem):
|
|
256
257
|
"""
|
257
258
|
Sbase = self.editor.circuit.Sbase
|
258
259
|
|
259
|
-
dlg = LineEditor(self.api_object, Sbase
|
260
|
+
dlg = LineEditor(line=self.api_object, Sbase=Sbase, frequency=self.editor.circuit.fBase,
|
261
|
+
templates=None, current_template=None)
|
260
262
|
if dlg.exec_():
|
261
263
|
pass
|
262
264
|
|
@@ -40,7 +40,7 @@ from GridCalEngine.Devices.Diagrams.schematic_diagram import SchematicDiagram
|
|
40
40
|
from GridCalEngine.Devices.Diagrams.map_diagram import MapDiagram
|
41
41
|
from GridCalEngine.Simulations.types import DRIVER_OBJECTS
|
42
42
|
from GridCalEngine.basic_structures import Logger
|
43
|
-
from GridCalEngine.enumerations import
|
43
|
+
from GridCalEngine.enumerations import SimulationTypes
|
44
44
|
|
45
45
|
from GridCal.Gui.Diagrams.graphics_manager import GraphicsManager
|
46
46
|
import GridCalEngine.Devices.Diagrams.palettes as palettes
|