GridCal 5.1.17__tar.gz → 5.1.19__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.
Files changed (276) hide show
  1. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +33 -13
  2. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +40 -15
  3. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +2 -2
  4. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +10 -0
  5. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/base_diagram_widget.py +40 -1
  6. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/MainWindow.py +60 -56
  7. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +95 -8
  8. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Model/objects.py +11 -5
  9. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/__version__.py +1 -1
  10. {GridCal-5.1.17 → GridCal-5.1.19}/PKG-INFO +1 -1
  11. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ExecuteGridCal.py +0 -0
  12. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
  13. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
  14. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/AboutDialogue/gui.py +0 -0
  15. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
  16. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
  17. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
  18. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Analysis/__init__.py +0 -0
  19. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Analysis/gui.py +0 -0
  20. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Analysis/icons_rc.py +0 -0
  21. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
  22. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
  23. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
  24. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
  25. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/CascadingSteps/gui.py +0 -0
  26. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
  27. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ConsoleWidget.py +0 -0
  28. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
  29. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
  30. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
  31. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
  32. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
  33. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
  34. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
  35. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
  36. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
  37. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
  38. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
  39. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
  40. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
  41. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
  42. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
  43. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
  44. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
  45. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
  46. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py +0 -0
  47. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
  48. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
  49. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/TileProviders/__init__.py +0 -0
  50. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/TileProviders/blue_marble.py +0 -0
  51. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/TileProviders/cartodb.py +0 -0
  52. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/TileProviders/gmt_local.py +0 -0
  53. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/TileProviders/mapbox.py +0 -0
  54. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/TileProviders/mapquest.py +0 -0
  55. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/TileProviders/open_street_map.py +0 -0
  56. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_toner.py +0 -0
  57. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_transport.py +0 -0
  58. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_watercolor.py +0 -0
  59. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
  60. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
  61. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
  62. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
  63. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
  64. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
  65. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
  66. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
  67. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/logger.py +0 -0
  68. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/map_events.py +0 -0
  69. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/MapWidget/node_widget.py +0 -0
  70. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
  71. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
  72. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
  73. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +0 -0
  74. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
  75. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
  76. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
  77. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
  78. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
  79. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
  80. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
  81. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
  82. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
  83. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
  84. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
  85. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
  86. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
  87. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
  88. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
  89. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
  90. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
  91. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
  92. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
  93. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
  94. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
  95. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
  96. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
  97. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
  98. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
  99. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
  100. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
  101. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
  102. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
  103. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
  104. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
  105. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
  106. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
  107. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
  108. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
  109. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
  110. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/__init__.py +0 -0
  111. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
  112. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
  113. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
  114. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/GeneralDialogues.py +0 -0
  115. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/GridGenerator/__init__.py +0 -0
  116. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
  117. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/GridGenerator/gui.py +0 -0
  118. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
  119. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
  120. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/GuiFunctions.py +0 -0
  121. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
  122. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
  123. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
  124. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
  125. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
  126. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/ConsoleLog.py +0 -0
  127. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
  128. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/GridCalMain.py +0 -0
  129. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
  130. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
  131. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
  132. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
  133. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
  134. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
  135. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
  136. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
  137. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
  138. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
  139. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
  140. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
  141. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
  142. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
  143. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
  144. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/io.py +0 -0
  145. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/SubClasses/simulations.py +0 -0
  146. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/__init__.py +0 -0
  147. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/icons_rc.py +0 -0
  148. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/object_select_window.py +0 -0
  149. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Main/update_gui_file.py +0 -0
  150. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
  151. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
  152. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
  153. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
  154. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
  155. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
  156. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
  157. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
  158. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
  159. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
  160. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
  161. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
  162. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
  163. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
  164. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
  165. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
  166. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
  167. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
  168. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
  169. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
  170. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
  171. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
  172. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
  173. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
  174. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
  175. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
  176. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
  177. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
  178. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SyncDialogue/gui.py +0 -0
  179. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
  180. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
  181. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
  182. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SystemScaler/__init__.py +0 -0
  183. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
  184. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
  185. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
  186. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
  187. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
  188. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
  189. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/TowerBuilder/gui.py +0 -0
  190. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
  191. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
  192. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/TowerBuilder/test_.py +0 -0
  193. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
  194. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
  195. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
  196. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
  197. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
  198. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
  199. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Visualization/__init__.py +0 -0
  200. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Visualization/palettes.py +0 -0
  201. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Visualization/visualization.py +0 -0
  202. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Widgets/__init__.py +0 -0
  203. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
  204. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
  205. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
  206. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
  207. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
  208. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
  209. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
  210. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/__init__.py +0 -0
  211. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/associations_model.py +0 -0
  212. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/messages.py +0 -0
  213. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/object_model.py +0 -0
  214. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/pandas_model.py +0 -0
  215. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/plot_config.py +0 -0
  216. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/profiles_model.py +0 -0
  217. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/themes.py +0 -0
  218. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/update_gui_all.py +0 -0
  219. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Gui/update_gui_common.py +0 -0
  220. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/LICENSE.txt +0 -0
  221. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Session/__init__.py +0 -0
  222. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Session/export_results_driver.py +0 -0
  223. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Session/file_handler.py +0 -0
  224. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Session/results_model.py +0 -0
  225. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Session/server_driver.py +0 -0
  226. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Session/session.py +0 -0
  227. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/Session/synchronization_driver.py +0 -0
  228. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/__init__.py +0 -0
  229. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
  230. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
  231. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
  232. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
  233. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
  234. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
  235. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
  236. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
  237. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
  238. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
  239. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
  240. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
  241. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
  242. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
  243. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
  244. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
  245. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
  246. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
  247. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
  248. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
  249. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
  250. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
  251. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
  252. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
  253. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
  254. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
  255. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
  256. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
  257. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
  258. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
  259. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
  260. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
  261. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
  262. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
  263. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
  264. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
  265. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
  266. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
  267. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/__init__.py +0 -0
  268. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/data/__init__.py +0 -0
  269. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/data/cables.csv +0 -0
  270. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/data/sequence_lines.csv +0 -0
  271. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/data/transformers.csv +0 -0
  272. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/data/wires.csv +0 -0
  273. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/templates.py +0 -0
  274. {GridCal-5.1.17 → GridCal-5.1.19}/GridCal/update.py +0 -0
  275. {GridCal-5.1.17 → GridCal-5.1.19}/setup.cfg +0 -0
  276. {GridCal-5.1.17 → GridCal-5.1.19}/setup.py +0 -0
@@ -50,7 +50,7 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
50
50
  api_object: Substation,
51
51
  lat: float,
52
52
  lon: float,
53
- r: float = 0.4,
53
+ r: float = 0.8,
54
54
  draw_labels: bool = True):
55
55
  """
56
56
 
@@ -147,13 +147,22 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
147
147
  """
148
148
  lat, long = self.editor.to_lat_lon(self.rect().x(), self.rect().y())
149
149
 
150
- print(f'Updating SE position id:{self.api_object.idtag}, lat:{lat}, lon:{long}')
150
+ # print(f'Updating SE position id:{self.api_object.idtag}, lat:{lat}, lon:{long}')
151
151
 
152
152
  self.editor.update_diagram_element(device=self.api_object,
153
153
  latitude=lat,
154
154
  longitude=long,
155
155
  graphic_object=self)
156
156
 
157
+ def get_center_pos(self) -> QPointF:
158
+ """
159
+
160
+ :return:
161
+ """
162
+ x = self.rect().x() + self.rect().width() / 2
163
+ y = self.rect().y() + self.rect().height() / 2
164
+ return QPointF(x, y)
165
+
157
166
  def mouseMoveEvent(self, event: QtWidgets.QGraphicsSceneMouseEvent) -> None:
158
167
  """
159
168
  Event handler for mouse move events.
@@ -171,22 +180,17 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
171
180
  vl_graphics.center_on_substation()
172
181
 
173
182
  self.editor.update_connectors()
174
-
175
- def get_center_pos(self) -> QPointF:
176
- """
177
-
178
- :return:
179
- """
180
- x = self.rect().x() + self.rect().width() / 2
181
- y = self.rect().y() + self.rect().height() / 2
182
- return QPointF(x, y)
183
+ self.updateDiagram() # always update
183
184
 
184
185
  def mousePressEvent(self, event: QGraphicsSceneMouseEvent):
185
186
  """
186
187
  Event handler for mouse press events.
187
188
  """
189
+ super().mousePressEvent(event)
190
+ event.setAccepted(True)
188
191
  self.editor.map.view.disableMove = True
189
192
 
193
+ print("SE mouse press")
190
194
  if self.api_object is not None:
191
195
  self.editor.set_editor_model(api_object=self.api_object,
192
196
  dictionary_of_lists={
@@ -202,8 +206,10 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
202
206
  """
203
207
  Event handler for mouse release events.
204
208
  """
209
+ # super().mouseReleaseEvent(event)
205
210
  self.editor.disableMove = True
206
211
  self.updateDiagram() # always update
212
+ print("SE mouse release")
207
213
 
208
214
  def hoverEnterEvent(self, event: QtWidgets.QGraphicsSceneHoverEvent) -> None:
209
215
  """
@@ -248,6 +254,11 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
248
254
  icon_path="",
249
255
  function_ptr=self.add_function)
250
256
 
257
+ add_menu_entry(menu=menu,
258
+ text="Show diagram",
259
+ icon_path="",
260
+ function_ptr=self.new_substation_diagram)
261
+
251
262
  menu.exec_(event.screenPos())
252
263
 
253
264
  def add_function(self):
@@ -265,8 +276,10 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
265
276
  lines_info = []
266
277
 
267
278
  for idtag, graphic_object in dev_dict.items():
268
- substation_from_graphics = self.editor.graphics_manager.query(elm=graphic_object.api_object.get_substation_from())
269
- substation_to_graphics = self.editor.graphics_manager.query(elm=graphic_object.api_object.get_substation_to())
279
+ substation_from_graphics = self.editor.graphics_manager.query(
280
+ elm=graphic_object.api_object.get_substation_from())
281
+ substation_to_graphics = self.editor.graphics_manager.query(
282
+ elm=graphic_object.api_object.get_substation_to())
270
283
  lines_info.append((idtag, graphic_object, substation_from_graphics, substation_to_graphics))
271
284
 
272
285
  # Now, iterate over the collected information
@@ -301,6 +314,13 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
301
314
  self.move_to(lat=self.api_object.latitude, lon=self.api_object.longitude)
302
315
  self.editor.update_connectors()
303
316
 
317
+ def new_substation_diagram(self):
318
+ """
319
+ Function to create a new substation
320
+ :return:
321
+ """
322
+ self.editor.new_substation_diagram(substation=self.api_object)
323
+
304
324
  def add_voltage_level(self) -> None:
305
325
  """
306
326
  Add Voltage Level
@@ -207,7 +207,13 @@ class GridMapWidget(BaseDiagramWidget):
207
207
  name: str,
208
208
  circuit: MultiCircuit,
209
209
  diagram: Union[None, MapDiagram] = None,
210
- call_delete_db_element_func: Callable[["GridMapWidget", ALL_DEV_TYPES], None] = None):
210
+ use_flow_based_width: bool = False,
211
+ min_branch_width: int = 5,
212
+ max_branch_width=5,
213
+ min_bus_width=20,
214
+ max_bus_width=20,
215
+ call_delete_db_element_func: Callable[["GridMapWidget", ALL_DEV_TYPES], None] = None,
216
+ call_new_substation_diagram_func: Callable[[Substation], None] = None, ):
211
217
  """
212
218
 
213
219
  :param tile_src:
@@ -228,6 +234,11 @@ class GridMapWidget(BaseDiagramWidget):
228
234
  latitude=latitude) if diagram is None else diagram,
229
235
  library_model=MapLibraryModel(),
230
236
  time_index=None,
237
+ use_flow_based_width=use_flow_based_width,
238
+ min_branch_width=min_branch_width,
239
+ max_branch_width=max_branch_width,
240
+ min_bus_width=min_bus_width,
241
+ max_bus_width=max_bus_width,
231
242
  call_delete_db_element_func=call_delete_db_element_func)
232
243
 
233
244
  # declare the map
@@ -247,6 +258,9 @@ class GridMapWidget(BaseDiagramWidget):
247
258
  self.map.startLat = latitude
248
259
  self.map.startLon = longitude
249
260
 
261
+ # function pointer to call for a new substation diagram
262
+ self.call_new_substation_diagram_func = call_new_substation_diagram_func
263
+
250
264
  self.startHe = self.map.view.height()
251
265
  self.startWi = self.map.view.width()
252
266
  self.constantLineWidth = True
@@ -806,21 +820,21 @@ class GridMapWidget(BaseDiagramWidget):
806
820
  :return:
807
821
  """
808
822
 
809
- pass
823
+ # SANTIAGO: NO TOCAR ESTO ES EL COMPORTAMIENTO DESEADO
810
824
 
811
- # max_zoom = self.map.max_level
812
- # min_zoom = self.map.min_level
813
- # zoom = self.map.zoom_factor
814
- # scale = 0.1 + (zoom - min_zoom) / (max_zoom - min_zoom)
815
- #
816
- # # rescale lines
817
- # for dev_tpe in [DeviceType.LineDevice,
818
- # DeviceType.DCLineDevice,
819
- # DeviceType.HVDCLineDevice,
820
- # DeviceType.FluidPathDevice]:
821
- # graphics_dict = self.graphics_manager.get_device_type_dict(device_type=dev_tpe)
822
- # for key, lne in graphics_dict.items():
823
- # lne.setWidthScale(scale)
825
+ max_zoom = self.map.max_level
826
+ min_zoom = self.map.min_level
827
+ zoom = self.map.zoom_factor
828
+ scale = self.min_branch_width + (zoom - min_zoom) / (max_zoom - min_zoom)
829
+
830
+ # rescale lines
831
+ for dev_tpe in [DeviceType.LineDevice,
832
+ DeviceType.DCLineDevice,
833
+ DeviceType.HVDCLineDevice,
834
+ DeviceType.FluidPathDevice]:
835
+ graphics_dict = self.graphics_manager.get_device_type_dict(device_type=dev_tpe)
836
+ for key, lne in graphics_dict.items():
837
+ lne.setWidthScale(scale)
824
838
 
825
839
  def change_size_and_pen_width_all(self, new_radius, pen_width):
826
840
  """
@@ -1096,6 +1110,17 @@ class GridMapWidget(BaseDiagramWidget):
1096
1110
  else:
1097
1111
  raise Exception('Extension ' + str(extension) + ' not supported :(')
1098
1112
 
1113
+ def new_substation_diagram(self, substation: Substation):
1114
+ """
1115
+
1116
+ :param substation:
1117
+ :return:
1118
+ """
1119
+ if self.call_new_substation_diagram_func is not None:
1120
+ self.call_new_substation_diagram_func(substation)
1121
+ else:
1122
+ print("call_new_substation_diagram_func is None :( ")
1123
+
1099
1124
 
1100
1125
  def generate_map_diagram(substations: List[Substation],
1101
1126
  voltage_levels: List[VoltageLevel],
@@ -74,7 +74,7 @@ class MapScene(QGraphicsScene):
74
74
  :param event:
75
75
  :return:
76
76
  """
77
- print(f"Scene pressed at {event.scenePos()}")
77
+ # print(f"Scene pressed at {event.scenePos()}")
78
78
  super().mousePressEvent(event)
79
79
 
80
80
  def mouseReleaseEvent(self, event):
@@ -586,7 +586,7 @@ class MapWidget(QWidget):
586
586
  :param event:
587
587
  :return:
588
588
  """
589
-
589
+ super().mousePressEvent(event)
590
590
  click_x = event.x()
591
591
  click_y = event.y()
592
592
 
@@ -468,6 +468,11 @@ class SchematicWidget(BaseDiagramWidget):
468
468
  default_bus_voltage: float = 10.0,
469
469
  time_index: Union[None, int] = None,
470
470
  prefer_node_breaker: bool = False,
471
+ use_flow_based_width: bool = False,
472
+ min_branch_width: int = 5,
473
+ max_branch_width=5,
474
+ min_bus_width=20,
475
+ max_bus_width=20,
471
476
  call_delete_db_element_func: Callable[["SchematicWidget", ALL_DEV_TYPES], None] = None):
472
477
  """
473
478
  Creates the Diagram Editor (DiagramEditorWidget)
@@ -483,6 +488,11 @@ class SchematicWidget(BaseDiagramWidget):
483
488
  diagram=diagram,
484
489
  library_model=SchematicLibraryModel(),
485
490
  time_index=time_index,
491
+ use_flow_based_width=use_flow_based_width,
492
+ min_branch_width=min_branch_width,
493
+ max_branch_width=max_branch_width,
494
+ min_bus_width=min_bus_width,
495
+ max_bus_width=max_bus_width,
486
496
  call_delete_db_element_func=call_delete_db_element_func)
487
497
 
488
498
  # create all the schematic objects and replace the existing ones
@@ -63,7 +63,13 @@ class BaseDiagramWidget(QSplitter):
63
63
  diagram: Union[SchematicDiagram, MapDiagram],
64
64
  library_model: Union[MapLibraryModel, SchematicLibraryModel],
65
65
  time_index: Union[None, int] = None,
66
- call_delete_db_element_func: Callable[[Union[GridMapWidget, SchematicWidget], ALL_DEV_TYPES], None] = None):
66
+ use_flow_based_width: bool = False,
67
+ min_branch_width: int = 5,
68
+ max_branch_width=5,
69
+ min_bus_width=20,
70
+ max_bus_width=20,
71
+ call_delete_db_element_func: Callable[
72
+ [Union[GridMapWidget, SchematicWidget], ALL_DEV_TYPES], None] = None):
67
73
  """
68
74
  Constructor
69
75
  :param circuit:
@@ -120,6 +126,13 @@ class BaseDiagramWidget(QSplitter):
120
126
  # diagram to store the objects locations
121
127
  self.diagram: SchematicDiagram = diagram
122
128
 
129
+ # sizes
130
+ self.use_flow_based_width: bool = use_flow_based_width
131
+ self.min_branch_width: float = min_branch_width
132
+ self.max_branch_width: float = max_branch_width
133
+ self.min_bus_width: float = min_bus_width
134
+ self.max_bus_width: float = max_bus_width
135
+
123
136
  # class to handle the relationships between widgets and API objects
124
137
  self.graphics_manager = GraphicsManager()
125
138
 
@@ -572,3 +585,29 @@ class BaseDiagramWidget(QSplitter):
572
585
 
573
586
  if location is not None:
574
587
  location.draw_labels = draw_labels
588
+
589
+ def set_size_constraints(self,
590
+ use_flow_based_width: bool = False,
591
+ min_branch_width: int = 5,
592
+ max_branch_width=5,
593
+ min_bus_width=20,
594
+ max_bus_width=20):
595
+ """
596
+ Set the size constraints
597
+ :param use_flow_based_width:
598
+ :param min_branch_width:
599
+ :param max_branch_width:
600
+ :param min_bus_width:
601
+ :param max_bus_width:
602
+ """
603
+ self.use_flow_based_width: bool = use_flow_based_width
604
+ self.min_branch_width: float = min_branch_width
605
+ self.max_branch_width: float = max_branch_width
606
+ self.min_bus_width: float = min_bus_width
607
+ self.max_bus_width: float = max_bus_width
608
+
609
+ # print(f"{self.use_flow_based_width}, "
610
+ # f"{self.min_branch_width}, "
611
+ # f"{self.max_branch_width}, "
612
+ # f"{self.min_bus_width}, "
613
+ # f"{self.max_bus_width}")
@@ -738,10 +738,10 @@ class Ui_mainWindow(object):
738
738
 
739
739
  self.horizontalLayout_9.addWidget(self.associationsComboBox)
740
740
 
741
- self.association_label = QLabel(self.frame_17)
742
- self.association_label.setObjectName(u"association_label")
741
+ self.association_units_label = QLabel(self.frame_17)
742
+ self.association_units_label.setObjectName(u"association_units_label")
743
743
 
744
- self.horizontalLayout_9.addWidget(self.association_label)
744
+ self.horizontalLayout_9.addWidget(self.association_units_label)
745
745
 
746
746
  self.horizontalSpacer_8 = QSpacerItem(794, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
747
747
 
@@ -3528,13 +3528,10 @@ class Ui_mainWindow(object):
3528
3528
  self.gridLayout = QGridLayout(self.frame_58)
3529
3529
  self.gridLayout.setObjectName(u"gridLayout")
3530
3530
  self.gridLayout.setContentsMargins(-1, 0, -1, -1)
3531
- self.max_branch_size_spinBox = QSpinBox(self.frame_58)
3532
- self.max_branch_size_spinBox.setObjectName(u"max_branch_size_spinBox")
3533
- self.max_branch_size_spinBox.setMinimum(5)
3534
- self.max_branch_size_spinBox.setMaximum(10000)
3535
- self.max_branch_size_spinBox.setValue(20)
3531
+ self.label_14 = QLabel(self.frame_58)
3532
+ self.label_14.setObjectName(u"label_14")
3536
3533
 
3537
- self.gridLayout.addWidget(self.max_branch_size_spinBox, 12, 1, 1, 1)
3534
+ self.gridLayout.addWidget(self.label_14, 11, 0, 1, 1)
3538
3535
 
3539
3536
  self.label_56 = QLabel(self.frame_58)
3540
3537
  self.label_56.setObjectName(u"label_56")
@@ -3550,29 +3547,30 @@ class Ui_mainWindow(object):
3550
3547
 
3551
3548
  self.gridLayout.addWidget(self.label_56, 5, 0, 1, 1)
3552
3549
 
3553
- self.max_node_size_spinBox = QSpinBox(self.frame_58)
3554
- self.max_node_size_spinBox.setObjectName(u"max_node_size_spinBox")
3555
- self.max_node_size_spinBox.setMinimum(20)
3556
- self.max_node_size_spinBox.setMaximum(10000)
3557
- self.max_node_size_spinBox.setValue(40)
3550
+ self.label_43 = QLabel(self.frame_58)
3551
+ self.label_43.setObjectName(u"label_43")
3558
3552
 
3559
- self.gridLayout.addWidget(self.max_node_size_spinBox, 7, 1, 1, 1)
3553
+ self.gridLayout.addWidget(self.label_43, 2, 0, 1, 1)
3560
3554
 
3561
3555
  self.label_112 = QLabel(self.frame_58)
3562
3556
  self.label_112.setObjectName(u"label_112")
3563
3557
 
3564
3558
  self.gridLayout.addWidget(self.label_112, 8, 0, 1, 1)
3565
3559
 
3566
- self.label_43 = QLabel(self.frame_58)
3567
- self.label_43.setObjectName(u"label_43")
3560
+ self.label_15 = QLabel(self.frame_58)
3561
+ self.label_15.setObjectName(u"label_15")
3568
3562
 
3569
- self.gridLayout.addWidget(self.label_43, 2, 0, 1, 1)
3563
+ self.gridLayout.addWidget(self.label_15, 13, 0, 1, 1)
3570
3564
 
3571
- self.branch_width_based_on_flow_checkBox = QCheckBox(self.frame_58)
3572
- self.branch_width_based_on_flow_checkBox.setObjectName(u"branch_width_based_on_flow_checkBox")
3573
- self.branch_width_based_on_flow_checkBox.setChecked(False)
3565
+ self.label_113 = QLabel(self.frame_58)
3566
+ self.label_113.setObjectName(u"label_113")
3574
3567
 
3575
- self.gridLayout.addWidget(self.branch_width_based_on_flow_checkBox, 13, 0, 1, 2)
3568
+ self.gridLayout.addWidget(self.label_113, 4, 0, 1, 1)
3569
+
3570
+ self.palette_comboBox = QComboBox(self.frame_58)
3571
+ self.palette_comboBox.setObjectName(u"palette_comboBox")
3572
+
3573
+ self.gridLayout.addWidget(self.palette_comboBox, 3, 0, 1, 2)
3576
3574
 
3577
3575
  self.label_9 = QLabel(self.frame_58)
3578
3576
  self.label_9.setObjectName(u"label_9")
@@ -3612,18 +3610,6 @@ class Ui_mainWindow(object):
3612
3610
 
3613
3611
  self.gridLayout.addWidget(self.frame_74, 0, 0, 1, 1)
3614
3612
 
3615
- self.label_15 = QLabel(self.frame_58)
3616
- self.label_15.setObjectName(u"label_15")
3617
-
3618
- self.gridLayout.addWidget(self.label_15, 12, 0, 1, 1)
3619
-
3620
- self.min_branch_size_spinBox = QSpinBox(self.frame_58)
3621
- self.min_branch_size_spinBox.setObjectName(u"min_branch_size_spinBox")
3622
- self.min_branch_size_spinBox.setMinimum(5)
3623
- self.min_branch_size_spinBox.setMaximum(10000)
3624
-
3625
- self.gridLayout.addWidget(self.min_branch_size_spinBox, 11, 1, 1, 1)
3626
-
3627
3613
  self.label_54 = QLabel(self.frame_58)
3628
3614
  self.label_54.setObjectName(u"label_54")
3629
3615
  palette39 = QPalette()
@@ -3636,36 +3622,54 @@ class Ui_mainWindow(object):
3636
3622
 
3637
3623
  self.gridLayout.addWidget(self.label_54, 9, 0, 1, 1)
3638
3624
 
3639
- self.min_node_size_spinBox = QSpinBox(self.frame_58)
3640
- self.min_node_size_spinBox.setObjectName(u"min_node_size_spinBox")
3641
- self.min_node_size_spinBox.setMinimum(20)
3642
- self.min_node_size_spinBox.setMaximum(10000)
3625
+ self.branch_width_based_on_flow_checkBox = QCheckBox(self.frame_58)
3626
+ self.branch_width_based_on_flow_checkBox.setObjectName(u"branch_width_based_on_flow_checkBox")
3627
+ self.branch_width_based_on_flow_checkBox.setChecked(False)
3643
3628
 
3644
- self.gridLayout.addWidget(self.min_node_size_spinBox, 6, 1, 1, 1)
3629
+ self.gridLayout.addWidget(self.branch_width_based_on_flow_checkBox, 14, 0, 1, 2)
3645
3630
 
3646
3631
  self.label = QLabel(self.frame_58)
3647
3632
  self.label.setObjectName(u"label")
3648
3633
 
3649
3634
  self.gridLayout.addWidget(self.label, 6, 0, 1, 1)
3650
3635
 
3651
- self.palette_comboBox = QComboBox(self.frame_58)
3652
- self.palette_comboBox.setObjectName(u"palette_comboBox")
3636
+ self.verticalSpacer_4 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
3653
3637
 
3654
- self.gridLayout.addWidget(self.palette_comboBox, 3, 0, 1, 2)
3638
+ self.gridLayout.addItem(self.verticalSpacer_4, 15, 0, 1, 1)
3655
3639
 
3656
- self.verticalSpacer_4 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
3640
+ self.min_branch_size_spinBox = QDoubleSpinBox(self.frame_58)
3641
+ self.min_branch_size_spinBox.setObjectName(u"min_branch_size_spinBox")
3642
+ self.min_branch_size_spinBox.setDecimals(1)
3643
+ self.min_branch_size_spinBox.setSingleStep(0.100000000000000)
3644
+ self.min_branch_size_spinBox.setValue(0.500000000000000)
3657
3645
 
3658
- self.gridLayout.addItem(self.verticalSpacer_4, 14, 0, 1, 1)
3646
+ self.gridLayout.addWidget(self.min_branch_size_spinBox, 11, 1, 1, 1)
3659
3647
 
3660
- self.label_113 = QLabel(self.frame_58)
3661
- self.label_113.setObjectName(u"label_113")
3648
+ self.max_branch_size_spinBox = QDoubleSpinBox(self.frame_58)
3649
+ self.max_branch_size_spinBox.setObjectName(u"max_branch_size_spinBox")
3650
+ self.max_branch_size_spinBox.setDecimals(1)
3651
+ self.max_branch_size_spinBox.setSingleStep(0.100000000000000)
3652
+ self.max_branch_size_spinBox.setValue(20.000000000000000)
3662
3653
 
3663
- self.gridLayout.addWidget(self.label_113, 4, 0, 1, 1)
3654
+ self.gridLayout.addWidget(self.max_branch_size_spinBox, 13, 1, 1, 1)
3664
3655
 
3665
- self.label_14 = QLabel(self.frame_58)
3666
- self.label_14.setObjectName(u"label_14")
3656
+ self.min_node_size_spinBox = QDoubleSpinBox(self.frame_58)
3657
+ self.min_node_size_spinBox.setObjectName(u"min_node_size_spinBox")
3658
+ self.min_node_size_spinBox.setDecimals(1)
3659
+ self.min_node_size_spinBox.setMinimum(0.100000000000000)
3660
+ self.min_node_size_spinBox.setSingleStep(0.100000000000000)
3661
+ self.min_node_size_spinBox.setValue(20.000000000000000)
3667
3662
 
3668
- self.gridLayout.addWidget(self.label_14, 11, 0, 1, 1)
3663
+ self.gridLayout.addWidget(self.min_node_size_spinBox, 6, 1, 1, 1)
3664
+
3665
+ self.max_node_size_spinBox = QDoubleSpinBox(self.frame_58)
3666
+ self.max_node_size_spinBox.setObjectName(u"max_node_size_spinBox")
3667
+ self.max_node_size_spinBox.setDecimals(1)
3668
+ self.max_node_size_spinBox.setMinimum(0.100000000000000)
3669
+ self.max_node_size_spinBox.setSingleStep(0.100000000000000)
3670
+ self.max_node_size_spinBox.setValue(40.000000000000000)
3671
+
3672
+ self.gridLayout.addWidget(self.max_node_size_spinBox, 7, 1, 1, 1)
3669
3673
 
3670
3674
 
3671
3675
  self.horizontalLayout_39.addWidget(self.frame_58)
@@ -4764,7 +4768,7 @@ class Ui_mainWindow(object):
4764
4768
  #endif // QT_CONFIG(tooltip)
4765
4769
  self.delete_selected_objects_pushButton.setText("")
4766
4770
  self.tabWidget_5.setTabText(self.tabWidget_5.indexOf(self.tab_15), QCoreApplication.translate("mainWindow", u"Objects", None))
4767
- self.association_label.setText(QCoreApplication.translate("mainWindow", u"...", None))
4771
+ self.association_units_label.setText(QCoreApplication.translate("mainWindow", u"...", None))
4768
4772
  self.tabWidget_5.setTabText(self.tabWidget_5.indexOf(self.tab_2), QCoreApplication.translate("mainWindow", u"Associations", None))
4769
4773
  #if QT_CONFIG(tooltip)
4770
4774
  self.device_type_magnitude_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"Magnitude with profile", None))
@@ -5372,18 +5376,18 @@ class Ui_mainWindow(object):
5372
5376
  #endif // QT_CONFIG(tooltip)
5373
5377
  self.label_76.setText("")
5374
5378
  self.label_49.setText(QCoreApplication.translate("mainWindow", u"Draw", None))
5379
+ self.label_14.setText(QCoreApplication.translate("mainWindow", u"Min. size", None))
5375
5380
  self.label_56.setText(QCoreApplication.translate("mainWindow", u"Nodes", None))
5376
- self.label_112.setText("")
5377
5381
  self.label_43.setText(QCoreApplication.translate("mainWindow", u"Palette", None))
5378
- self.branch_width_based_on_flow_checkBox.setText(QCoreApplication.translate("mainWindow", u"Width based on flow", None))
5382
+ self.label_112.setText("")
5383
+ self.label_15.setText(QCoreApplication.translate("mainWindow", u"Max. size", None))
5384
+ self.label_113.setText("")
5379
5385
  self.label_9.setText(QCoreApplication.translate("mainWindow", u"Max. size", None))
5380
5386
  self.label_110.setText("")
5381
5387
  self.label_111.setText(QCoreApplication.translate("mainWindow", u"Schematic", None))
5382
- self.label_15.setText(QCoreApplication.translate("mainWindow", u"Max. size", None))
5383
5388
  self.label_54.setText(QCoreApplication.translate("mainWindow", u"Branches", None))
5389
+ self.branch_width_based_on_flow_checkBox.setText(QCoreApplication.translate("mainWindow", u"Width based on flow", None))
5384
5390
  self.label.setText(QCoreApplication.translate("mainWindow", u"Min. size", None))
5385
- self.label_113.setText("")
5386
- self.label_14.setText(QCoreApplication.translate("mainWindow", u"Min. size", None))
5387
5391
  self.label_114.setText("")
5388
5392
  self.label_99.setText("")
5389
5393
  self.label_100.setText(QCoreApplication.translate("mainWindow", u"Map", None))
@@ -166,6 +166,14 @@ class DiagramsMain(CompiledArraysMain):
166
166
  self.ui.explosion_factor_doubleSpinBox.valueChanged.connect(self.explosion_factor_change)
167
167
  self.ui.defaultBusVoltageSpinBox.valueChanged.connect(self.default_voltage_change)
168
168
 
169
+ self.ui.min_branch_size_spinBox.valueChanged.connect(self.set_diagrams_size_contraints)
170
+ self.ui.max_branch_size_spinBox.valueChanged.connect(self.set_diagrams_size_contraints)
171
+ self.ui.min_node_size_spinBox.valueChanged.connect(self.set_diagrams_size_contraints)
172
+ self.ui.max_node_size_spinBox.valueChanged.connect(self.set_diagrams_size_contraints)
173
+
174
+ # check boxes
175
+ self.ui.branch_width_based_on_flow_checkBox.clicked.connect(self.set_diagrams_size_contraints)
176
+
169
177
  # context menu
170
178
  self.ui.diagramsListView.customContextMenuRequested.connect(self.show_diagrams_context_menu)
171
179
 
@@ -884,6 +892,11 @@ class DiagramsMain(CompiledArraysMain):
884
892
  default_bus_voltage=self.ui.defaultBusVoltageSpinBox.value(),
885
893
  time_index=self.get_diagram_slider_index(),
886
894
  prefer_node_breaker=prefer_node_breaker,
895
+ use_flow_based_width=self.ui.branch_width_based_on_flow_checkBox.isChecked(),
896
+ min_branch_width=self.ui.min_branch_size_spinBox.value(),
897
+ max_branch_width=self.ui.max_branch_size_spinBox.value(),
898
+ min_bus_width=self.ui.min_node_size_spinBox.value(),
899
+ max_bus_width=self.ui.max_node_size_spinBox.value(),
887
900
  call_delete_db_element_func=self.call_delete_db_element)
888
901
 
889
902
  diagram_widget.setStretchFactor(1, 10)
@@ -921,6 +934,11 @@ class DiagramsMain(CompiledArraysMain):
921
934
  diagram=diagram,
922
935
  default_bus_voltage=self.ui.defaultBusVoltageSpinBox.value(),
923
936
  time_index=self.get_diagram_slider_index(),
937
+ use_flow_based_width=self.ui.branch_width_based_on_flow_checkBox.isChecked(),
938
+ min_branch_width=self.ui.min_branch_size_spinBox.value(),
939
+ max_branch_width=self.ui.max_branch_size_spinBox.value(),
940
+ min_bus_width=self.ui.min_node_size_spinBox.value(),
941
+ max_bus_width=self.ui.max_node_size_spinBox.value(),
924
942
  call_delete_db_element_func=self.call_delete_db_element)
925
943
 
926
944
  self.add_diagram_widget_and_diagram(diagram_widget=diagram_widget, diagram=diagram)
@@ -994,12 +1012,48 @@ class DiagramsMain(CompiledArraysMain):
994
1012
  diagram=diagram,
995
1013
  default_bus_voltage=self.ui.defaultBusVoltageSpinBox.value(),
996
1014
  time_index=self.get_diagram_slider_index(),
1015
+ use_flow_based_width=self.ui.branch_width_based_on_flow_checkBox.isChecked(),
1016
+ min_branch_width=self.ui.min_branch_size_spinBox.value(),
1017
+ max_branch_width=self.ui.max_branch_size_spinBox.value(),
1018
+ min_bus_width=self.ui.min_node_size_spinBox.value(),
1019
+ max_bus_width=self.ui.max_node_size_spinBox.value(),
997
1020
  call_delete_db_element_func=self.call_delete_db_element)
998
1021
 
999
1022
  self.add_diagram_widget_and_diagram(diagram_widget=diagram_widget,
1000
1023
  diagram=diagram)
1001
1024
  self.set_diagrams_list_view()
1002
1025
 
1026
+ def new_bus_branch_diagram_from_substation(self, substation: dev.Substation):
1027
+ """
1028
+ Add a bus-branch diagram of a particular selection of objects
1029
+ """
1030
+
1031
+ buses = self.circuit.get_substation_buses(substation=substation)
1032
+
1033
+ if len(buses):
1034
+ diagram = make_vecinity_diagram(circuit=self.circuit,
1035
+ root_bus=buses[0],
1036
+ max_level=2,
1037
+ prog_func=None,
1038
+ text_func=None)
1039
+
1040
+ diagram_widget = SchematicWidget(self.circuit,
1041
+ diagram=diagram,
1042
+ default_bus_voltage=self.ui.defaultBusVoltageSpinBox.value(),
1043
+ time_index=self.get_diagram_slider_index(),
1044
+ use_flow_based_width=self.ui.branch_width_based_on_flow_checkBox.isChecked(),
1045
+ min_branch_width=self.ui.min_branch_size_spinBox.value(),
1046
+ max_branch_width=self.ui.max_branch_size_spinBox.value(),
1047
+ min_bus_width=self.ui.min_node_size_spinBox.value(),
1048
+ max_bus_width=self.ui.max_node_size_spinBox.value(),
1049
+ call_delete_db_element_func=self.call_delete_db_element)
1050
+
1051
+ self.add_diagram_widget_and_diagram(diagram_widget=diagram_widget, diagram=diagram)
1052
+ self.set_diagrams_list_view()
1053
+ else:
1054
+ info_msg(text=f"No buses were found associated with the substation {substation.name}",
1055
+ title="New schematic from substation")
1056
+
1003
1057
  def create_circuit_stored_diagrams(self):
1004
1058
  """
1005
1059
  Create as Widgets the diagrams stored in the circuit
@@ -1015,6 +1069,11 @@ class DiagramsMain(CompiledArraysMain):
1015
1069
  diagram=diagram,
1016
1070
  default_bus_voltage=self.ui.defaultBusVoltageSpinBox.value(),
1017
1071
  time_index=self.get_diagram_slider_index(),
1072
+ use_flow_based_width=self.ui.branch_width_based_on_flow_checkBox.isChecked(),
1073
+ min_branch_width=self.ui.min_branch_size_spinBox.value(),
1074
+ max_branch_width=self.ui.max_branch_size_spinBox.value(),
1075
+ min_bus_width=self.ui.min_node_size_spinBox.value(),
1076
+ max_bus_width=self.ui.max_node_size_spinBox.value(),
1018
1077
  call_delete_db_element_func=self.call_delete_db_element)
1019
1078
 
1020
1079
  diagram_widget.setStretchFactor(1, 10)
@@ -1027,13 +1086,22 @@ class DiagramsMain(CompiledArraysMain):
1027
1086
  tile_source = self.tile_sources.get(diagram.tile_source, defualt_tile_source)
1028
1087
 
1029
1088
  # create the map widget
1030
- map_widget = GridMapWidget(tile_src=tile_source,
1031
- start_level=diagram.start_level,
1032
- longitude=diagram.longitude,
1033
- latitude=diagram.latitude,
1034
- name=diagram.name,
1035
- circuit=self.circuit,
1036
- diagram=diagram)
1089
+ map_widget = GridMapWidget(
1090
+ tile_src=tile_source,
1091
+ start_level=diagram.start_level,
1092
+ longitude=diagram.longitude,
1093
+ latitude=diagram.latitude,
1094
+ name=diagram.name,
1095
+ circuit=self.circuit,
1096
+ diagram=diagram,
1097
+ use_flow_based_width=self.ui.branch_width_based_on_flow_checkBox.isChecked(),
1098
+ min_branch_width=self.ui.min_branch_size_spinBox.value(),
1099
+ max_branch_width=self.ui.max_branch_size_spinBox.value(),
1100
+ min_bus_width=self.ui.min_node_size_spinBox.value(),
1101
+ max_bus_width=self.ui.max_node_size_spinBox.value(),
1102
+ call_delete_db_element_func=self.call_delete_db_element,
1103
+ call_new_substation_diagram_func=self.new_bus_branch_diagram_from_substation
1104
+ )
1037
1105
 
1038
1106
  # map_widget.GotoLevelAndPosition(5, -15.41, 40.11)
1039
1107
  self.diagram_widgets_list.append(map_widget)
@@ -1076,7 +1144,13 @@ class DiagramsMain(CompiledArraysMain):
1076
1144
  name=diagram.name,
1077
1145
  circuit=self.circuit,
1078
1146
  diagram=diagram,
1079
- call_delete_db_element_func=self.call_delete_db_element)
1147
+ use_flow_based_width=self.ui.branch_width_based_on_flow_checkBox.isChecked(),
1148
+ min_branch_width=self.ui.min_branch_size_spinBox.value(),
1149
+ max_branch_width=self.ui.max_branch_size_spinBox.value(),
1150
+ min_bus_width=self.ui.min_node_size_spinBox.value(),
1151
+ max_bus_width=self.ui.max_node_size_spinBox.value(),
1152
+ call_delete_db_element_func=self.call_delete_db_element,
1153
+ call_new_substation_diagram_func=self.new_bus_branch_diagram_from_substation)
1080
1154
 
1081
1155
  self.add_diagram_widget_and_diagram(diagram_widget=map_widget, diagram=diagram)
1082
1156
  self.set_diagrams_list_view()
@@ -1699,3 +1773,16 @@ class DiagramsMain(CompiledArraysMain):
1699
1773
  self.circuit.delete_element(obj=api_obj)
1700
1774
  except ValueError as e:
1701
1775
  print(e)
1776
+
1777
+ def set_diagrams_size_contraints(self):
1778
+ """
1779
+ Set the size constraints
1780
+ """
1781
+ for diagram_widget in self.diagram_widgets_list:
1782
+ diagram_widget.set_size_constraints(
1783
+ use_flow_based_width=self.ui.branch_width_based_on_flow_checkBox.isChecked(),
1784
+ min_branch_width=self.ui.min_branch_size_spinBox.value(),
1785
+ max_branch_width=self.ui.max_branch_size_spinBox.value(),
1786
+ min_bus_width=self.ui.min_node_size_spinBox.value(),
1787
+ max_bus_width=self.ui.max_node_size_spinBox.value()
1788
+ )