VeraGrid 5.5.15__tar.gz → 5.5.17__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 (312) hide show
  1. {veragrid-5.5.15 → veragrid-5.5.17}/PKG-INFO +1 -1
  2. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +1 -28
  3. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/schematic_widget.py +44 -1
  4. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/MainWindow.py +89 -63
  5. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Model/data_base.py +1 -1
  6. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Model/time_events.py +76 -4
  7. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/base_gui.py +81 -30
  8. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/simulations.py +2 -30
  9. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/icons_rc.py +845 -188
  10. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/__version__.py +1 -1
  11. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ExecuteVeraGrid.py +0 -0
  12. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/AboutDialogue/__init__.py +0 -0
  13. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/AboutDialogue/about_dialogue.py +0 -0
  14. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/AboutDialogue/gui.py +0 -0
  15. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/AboutDialogue/icons_rc.py +0 -0
  16. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/AboutDialogue/update_gui_file.py +0 -0
  17. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Analysis/AnalysisDialogue.py +0 -0
  18. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Analysis/__init__.py +0 -0
  19. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Analysis/gui.py +0 -0
  20. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Analysis/icons_rc.py +0 -0
  21. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Analysis/object_plot_analysis.py +0 -0
  22. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Analysis/update_gui_file.py +0 -0
  23. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ContingencyPlanner/__init__.py +0 -0
  24. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
  25. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ContingencyPlanner/gui.py +0 -0
  26. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ContingencyPlanner/icons_rc.py +0 -0
  27. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ContingencyPlanner/update_gui_file.py +0 -0
  28. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/CoordinatesInput/__init__.py +0 -0
  29. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
  30. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/CoordinatesInput/gui.py +0 -0
  31. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/CoordinatesInput/icons_rc.py +0 -0
  32. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/CoordinatesInput/update_gui_file.py +0 -0
  33. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/__init__.py +0 -0
  34. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/icons_rc.py +0 -0
  35. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/rms_model_editor.py +0 -0
  36. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/rms_model_editor_dialogue.py +0 -0
  37. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/rms_model_editor_engine.py +0 -0
  38. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/rms_templates.py +0 -0
  39. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/update_gui_file.py +0 -0
  40. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/__init__.py +0 -0
  41. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/controllable_shunt_editor.py +0 -0
  42. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/generator_editor.py +0 -0
  43. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/line_editor.py +0 -0
  44. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/new_line_dialogue.py +0 -0
  45. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/transformer3w_editor.py +0 -0
  46. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/transformer_editor.py +0 -0
  47. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/transformer_taps_editor.py +0 -0
  48. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
  49. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +0 -0
  50. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
  51. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
  52. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
  53. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
  54. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
  55. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
  56. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
  57. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
  58. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
  59. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
  60. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
  61. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
  62. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
  63. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
  64. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
  65. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
  66. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
  67. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
  68. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
  69. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
  70. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/__init__.py +0 -0
  71. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/grid_map_widget.py +0 -0
  72. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/map_widget.py +0 -0
  73. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
  74. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
  75. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
  76. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
  77. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
  78. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
  79. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
  80. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
  81. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
  82. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
  83. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
  84. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics_3term.py +0 -0
  85. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
  86. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
  87. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
  88. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
  89. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
  90. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
  91. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
  92. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
  93. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
  94. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
  95. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
  96. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
  97. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
  98. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
  99. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
  100. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
  101. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
  102. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
  103. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
  104. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
  105. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
  106. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/__init__.py +0 -0
  107. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/base_diagram_widget.py +0 -0
  108. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/diagrams_model.py +0 -0
  109. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/generic_graphics.py +0 -0
  110. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/graphics_manager.py +0 -0
  111. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridGenerator/__init__.py +0 -0
  112. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
  113. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridGenerator/gui.py +0 -0
  114. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridGenerator/icons_rc.py +0 -0
  115. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridGenerator/update_gui_file.py +0 -0
  116. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/__init__.py +0 -0
  117. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/build_diff_tree.py +0 -0
  118. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/grid_diff.py +0 -0
  119. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/grid_diff_gui.py +0 -0
  120. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/grid_merge.py +0 -0
  121. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/grid_merge_gui.py +0 -0
  122. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/update_gui_file.py +0 -0
  123. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridReduce/__init__.py +0 -0
  124. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridReduce/grid_reduce.py +0 -0
  125. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridReduce/grid_reduce_gui.py +0 -0
  126. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/GridReduce/update_gui_file.py +0 -0
  127. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/LoadCatalogue/SelectComponents.py +0 -0
  128. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/LoadCatalogue/__init__.py +0 -0
  129. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
  130. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/LoadCatalogue/icons_rc.py +0 -0
  131. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/LoadCatalogue/update_gui_file.py +0 -0
  132. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/LoadDesigner/__init__.py +0 -0
  133. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/LoadDesigner/icons_rc.py +0 -0
  134. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/LoadDesigner/load_designer.py +0 -0
  135. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/LoadDesigner/load_designer_ui.py +0 -0
  136. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/LoadDesigner/update_gui_file.py +0 -0
  137. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/ConsoleLog.py +0 -0
  138. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/ConsoleLogController.py +0 -0
  139. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Model/__init__.py +0 -0
  140. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
  141. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Model/compiled_arrays_model.py +0 -0
  142. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Model/diagrams.py +0 -0
  143. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/README.txt +0 -0
  144. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Results/__init__.py +0 -0
  145. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Results/results.py +0 -0
  146. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
  147. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
  148. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Server/__init__.py +0 -0
  149. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Server/server.py +0 -0
  150. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Settings/__init__.py +0 -0
  151. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Settings/configuration.py +0 -0
  152. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/__init__.py +0 -0
  153. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/io.py +0 -0
  154. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/VeraGridMain.py +0 -0
  155. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/__init__.py +0 -0
  156. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/object_select_window.py +0 -0
  157. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Main/update_gui_file.py +0 -0
  158. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/__init__.py +0 -0
  159. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/excel_dialog.py +0 -0
  160. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
  161. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/icons_rc.py +0 -0
  162. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/models_dialogue.py +0 -0
  163. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/profile_dialogue.py +0 -0
  164. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
  165. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
  166. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/update_gui_file.py +0 -0
  167. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/RmsModelEditor/__init__.py +0 -0
  168. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/RmsModelEditor/block_editor.py +0 -0
  169. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/RmsModelEditor/icons_rc.py +0 -0
  170. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/RmsModelEditor/rms_model_editor.py +0 -0
  171. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/RmsModelEditor/rms_model_editor_dialogue.py +0 -0
  172. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/RmsModelEditor/update_gui_file.py +0 -0
  173. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/RosetaExplorer/MainWindow.py +0 -0
  174. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
  175. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/RosetaExplorer/__init__.py +0 -0
  176. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/RosetaExplorer/icons_rc.py +0 -0
  177. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
  178. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/RosetaExplorer/update_gui_file.py +0 -0
  179. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SigmaAnalysis/__init__.py +0 -0
  180. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SigmaAnalysis/gui.py +0 -0
  181. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SigmaAnalysis/icons_rc.py +0 -0
  182. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
  183. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SigmaAnalysis/update_gui_file.py +0 -0
  184. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SmallSignalEditor/Icons/__init__.py +0 -0
  185. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SmallSignalEditor/SmallSignal_dialogue.py +0 -0
  186. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SmallSignalEditor/__init__.py +0 -0
  187. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SolarPowerWizard/__init__.py +0 -0
  188. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SolarPowerWizard/gui.py +0 -0
  189. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SolarPowerWizard/icons_rc.py +0 -0
  190. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
  191. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SolarPowerWizard/update_gui_file.py +0 -0
  192. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SubstationDesigner/__init__.py +0 -0
  193. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SubstationDesigner/substation_designer.py +0 -0
  194. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
  195. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SubstationDesigner/update_gui_file.py +0 -0
  196. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SubstationDesigner/voltage_level_conversion.py +0 -0
  197. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SyncDialogue/__init__.py +0 -0
  198. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SyncDialogue/gui.py +0 -0
  199. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SyncDialogue/icons_rc.py +0 -0
  200. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SyncDialogue/sync_dialogue.py +0 -0
  201. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SyncDialogue/update_gui_file.py +0 -0
  202. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SystemScaler/__init__.py +0 -0
  203. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SystemScaler/icons_rc.py +0 -0
  204. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SystemScaler/system_scaler.py +0 -0
  205. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SystemScaler/system_scaler_ui.py +0 -0
  206. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/SystemScaler/update_gui_file.py +0 -0
  207. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
  208. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/TowerBuilder/__init__.py +0 -0
  209. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/TowerBuilder/icons_rc.py +0 -0
  210. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/TowerBuilder/table_models.py +0 -0
  211. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/TowerBuilder/tower_builder.py +0 -0
  212. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/TowerBuilder/update_gui_file.py +0 -0
  213. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/TreeModelViewer/MainWindow.py +0 -0
  214. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
  215. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/TreeModelViewer/__init__.py +0 -0
  216. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/TreeModelViewer/icons_rc.py +0 -0
  217. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/TreeModelViewer/update_gui_file.py +0 -0
  218. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Visualization/__init__.py +0 -0
  219. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Visualization/visualization.py +0 -0
  220. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Widgets/__init__.py +0 -0
  221. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Widgets/custom_qrangeslider.py +0 -0
  222. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/Widgets/matplotlibwidget.py +0 -0
  223. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/WindPowerWizard/__init__.py +0 -0
  224. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/WindPowerWizard/gui.py +0 -0
  225. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/WindPowerWizard/icons_rc.py +0 -0
  226. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/WindPowerWizard/update_gui_file.py +0 -0
  227. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
  228. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/__init__.py +0 -0
  229. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/associations_model.py +0 -0
  230. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/correct_icons.py +0 -0
  231. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/general_dialogues.py +0 -0
  232. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/gui_functions.py +0 -0
  233. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/messages.py +0 -0
  234. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/object_model.py +0 -0
  235. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/object_proxy_model.py +0 -0
  236. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/pandas_model.py +0 -0
  237. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/plot_config.py +0 -0
  238. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/profiles_model.py +0 -0
  239. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/python_console.py +0 -0
  240. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/python_highlighter.py +0 -0
  241. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/results_model.py +0 -0
  242. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/rms_plot_variables_dialog.py +0 -0
  243. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/table_view_header_wrap.py +0 -0
  244. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/themes.py +0 -0
  245. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/toast_widget.py +0 -0
  246. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/update_gui_all.py +0 -0
  247. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/update_gui_common.py +0 -0
  248. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Gui/wrappable_table_model.py +0 -0
  249. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/LICENSE.txt +0 -0
  250. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Session/__init__.py +0 -0
  251. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Session/export_results_driver.py +0 -0
  252. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Session/file_handler.py +0 -0
  253. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Session/server_driver.py +0 -0
  254. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Session/session.py +0 -0
  255. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/Session/synchronization_driver.py +0 -0
  256. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/__init__.py +0 -0
  257. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/darkdetect/__init__.py +0 -0
  258. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/darkdetect/_dummy.py +0 -0
  259. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/darkdetect/_linux_detect.py +0 -0
  260. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/darkdetect/_mac_detect.py +0 -0
  261. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/darkdetect/_windows_detect.py +0 -0
  262. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/__init__.py +0 -0
  263. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_color.py +0 -0
  264. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
  265. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
  266. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_icon/svg.py +0 -0
  267. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_main.py +0 -0
  268. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
  269. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
  270. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
  271. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
  272. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_proxy_style.py +0 -0
  273. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
  274. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_resources/colors.py +0 -0
  275. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_resources/palette.py +0 -0
  276. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
  277. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
  278. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_resources/svg.py +0 -0
  279. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_style_loader.py +0 -0
  280. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_template/__init__.py +0 -0
  281. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_template/engine.py +0 -0
  282. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_template/filter.py +0 -0
  283. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_util.py +0 -0
  284. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
  285. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
  286. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
  287. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
  288. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
  289. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
  290. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
  291. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
  292. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
  293. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
  294. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
  295. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
  296. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
  297. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
  298. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
  299. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
  300. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/__init__.py +0 -0
  301. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/data/VeraGrid.ico +0 -0
  302. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/data/VeraGrid.svg +0 -0
  303. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/data/__init__.py +0 -0
  304. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/data/cables.csv +0 -0
  305. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/data/sequence_lines.csv +0 -0
  306. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/data/transformers.csv +0 -0
  307. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/data/wires.csv +0 -0
  308. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/plugins.py +0 -0
  309. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/templates.py +0 -0
  310. {veragrid-5.5.15 → veragrid-5.5.17}/VeraGrid/update.py +0 -0
  311. {veragrid-5.5.15 → veragrid-5.5.17}/setup.cfg +0 -0
  312. {veragrid-5.5.15 → veragrid-5.5.17}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: VeraGrid
3
- Version: 5.5.15
3
+ Version: 5.5.17
4
4
  Summary: VeraGrid is a Power Systems simulation program intended for professional use and research
5
5
  Home-page: https://github.com/SanPen/VeraGrid
6
6
  Author: Santiago Peñate Vera et. Al.
@@ -208,34 +208,7 @@ class InjectionTemplateGraphicItem(GenericDiagramWidget, QGraphicsItemGroup):
208
208
  """
209
209
  Change the generator bus
210
210
  """
211
- idx_bus_list = self._editor.get_selected_buses()
212
-
213
- if len(idx_bus_list) == 2:
214
-
215
- # detect the bus and its combinations
216
- if idx_bus_list[0][1] == self.api_object.bus:
217
- idx, old_bus, old_bus_graphic_item = idx_bus_list[0]
218
- idx, new_bus, new_bus_graphic_item = idx_bus_list[1]
219
- elif idx_bus_list[1][1] == self.api_object.bus:
220
- idx, new_bus, new_bus_graphic_item = idx_bus_list[0]
221
- idx, old_bus, old_bus_graphic_item = idx_bus_list[1]
222
- else:
223
- error_msg("The bus to change has not been selected!", 'Change bus')
224
- return
225
-
226
- ok = yes_no_question(
227
- text=f"Are you sure that you want to relocate the bus from {old_bus.name} to {new_bus.name}?",
228
- title='Change bus')
229
-
230
- if ok:
231
- self.api_object.bus = new_bus
232
- new_bus_graphic_item.add_object(api_obj=self.api_object)
233
- new_bus_graphic_item.update()
234
- self._editor.remove_element(device=self.api_object, graphic_object=self)
235
-
236
- else:
237
- warning_msg("you have to select the origin and destination buses!",
238
- title='Change bus')
211
+ self._editor.change_injection_bus(injection_graphics=self)
239
212
 
240
213
  def rescale(self, scale: float = 1.0):
241
214
  """
@@ -50,7 +50,7 @@ from VeraGridEngine.enumerations import TerminalType
50
50
 
51
51
  from VeraGrid.Gui.SubstationDesigner.voltage_level_conversion import VoltageLevelConversionWizard
52
52
  from VeraGrid.Gui.Diagrams.SchematicWidget.terminal_item import BarTerminalItem, RoundTerminalItem
53
- from VeraGrid.Gui.Diagrams.SchematicWidget.Substation.bus_graphics import BusGraphicItem
53
+ from VeraGrid.Gui.Diagrams.SchematicWidget.Substation.bus_graphics import BusGraphicItem, INJECTION_GRAPHICS
54
54
  from VeraGrid.Gui.Diagrams.SchematicWidget.Fluid.fluid_node_graphics import FluidNodeGraphicItem
55
55
  from VeraGrid.Gui.Diagrams.SchematicWidget.Fluid.fluid_path_graphics import FluidPathGraphicItem
56
56
  from VeraGrid.Gui.Diagrams.SchematicWidget.Branches.line_graphics import LineGraphicItem
@@ -88,6 +88,7 @@ BRANCH_GRAPHICS = Union[
88
88
  SwitchGraphicItem
89
89
  ]
90
90
 
91
+
91
92
  OPTIONAL_PORT = Union[BarTerminalItem, RoundTerminalItem, None]
92
93
 
93
94
 
@@ -4821,6 +4822,48 @@ class SchematicWidget(BaseDiagramWidget):
4821
4822
 
4822
4823
  self.draw_additional_diagram(diagram=diagram)
4823
4824
 
4825
+ def change_injection_bus(self, injection_graphics: INJECTION_GRAPHICS):
4826
+ """
4827
+
4828
+ :param injection_graphics:
4829
+ :return:
4830
+ """
4831
+
4832
+ idx_bus_list = self.get_selected_buses()
4833
+
4834
+ if len(idx_bus_list) == 2:
4835
+
4836
+ # detect the bus and its combinations
4837
+ if idx_bus_list[0][1] == injection_graphics.api_object.bus:
4838
+ idx, old_bus, old_bus_graphic_item = idx_bus_list[0]
4839
+ idx, new_bus, new_bus_graphic_item = idx_bus_list[1]
4840
+ elif idx_bus_list[1][1] == injection_graphics.api_object.bus:
4841
+ idx, new_bus, new_bus_graphic_item = idx_bus_list[0]
4842
+ idx, old_bus, old_bus_graphic_item = idx_bus_list[1]
4843
+ else:
4844
+ error_msg("The bus to change has not been selected!", 'Change bus')
4845
+ return
4846
+
4847
+ ok = yes_no_question(
4848
+ text=f"Are you sure that you want to relocate the bus from {old_bus.name} to {new_bus.name}?",
4849
+ title='Change bus')
4850
+
4851
+ if ok:
4852
+
4853
+ # set the API object new bus
4854
+ injection_graphics.api_object.bus = new_bus
4855
+
4856
+ # add the graphics for the new bus
4857
+ new_bus_graphic_item.add_object(api_obj=injection_graphics.api_object)
4858
+ new_bus_graphic_item.update()
4859
+
4860
+ self._remove_from_scene(injection_graphics.nexus)
4861
+ self._remove_from_scene(injection_graphics)
4862
+
4863
+ else:
4864
+ warning_msg("you have to select the origin and destination buses!",
4865
+ title='Change bus')
4866
+
4824
4867
  def reconnect_bus_graphics(self,
4825
4868
  bus_graphics: BusGraphicItem,
4826
4869
  new_buses: List[Bus]):
@@ -1435,15 +1435,33 @@ class Ui_mainWindow(object):
1435
1435
 
1436
1436
  self.horizontalLayout.addWidget(self.edit_profiles_from_models_pushButton)
1437
1437
 
1438
+ self.crop_profiles_pushButton = QPushButton(self.frame)
1439
+ self.crop_profiles_pushButton.setObjectName(u"crop_profiles_pushButton")
1440
+ icon94 = QIcon()
1441
+ icon94.addFile(u":/Icons/icons/time_series_crop.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1442
+ self.crop_profiles_pushButton.setIcon(icon94)
1443
+ self.crop_profiles_pushButton.setFlat(False)
1444
+
1445
+ self.horizontalLayout.addWidget(self.crop_profiles_pushButton)
1446
+
1447
+ self.crop_cluster_profiles_pushButton = QPushButton(self.frame)
1448
+ self.crop_cluster_profiles_pushButton.setObjectName(u"crop_cluster_profiles_pushButton")
1449
+ icon95 = QIcon()
1450
+ icon95.addFile(u":/Icons/icons/time_series_crop_cluster.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1451
+ self.crop_cluster_profiles_pushButton.setIcon(icon95)
1452
+ self.crop_cluster_profiles_pushButton.setFlat(False)
1453
+
1454
+ self.horizontalLayout.addWidget(self.crop_cluster_profiles_pushButton)
1455
+
1438
1456
  self.horizontalSpacer = QSpacerItem(183, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
1439
1457
 
1440
1458
  self.horizontalLayout.addItem(self.horizontalSpacer)
1441
1459
 
1442
1460
  self.plot_time_series_pushButton = QPushButton(self.frame)
1443
1461
  self.plot_time_series_pushButton.setObjectName(u"plot_time_series_pushButton")
1444
- icon94 = QIcon()
1445
- icon94.addFile(u":/Icons/icons/plot.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1446
- self.plot_time_series_pushButton.setIcon(icon94)
1462
+ icon96 = QIcon()
1463
+ icon96.addFile(u":/Icons/icons/plot.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1464
+ self.plot_time_series_pushButton.setIcon(icon96)
1447
1465
 
1448
1466
  self.horizontalLayout.addWidget(self.plot_time_series_pushButton)
1449
1467
 
@@ -1468,25 +1486,25 @@ class Ui_mainWindow(object):
1468
1486
  self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
1469
1487
  self.copy_profile_pushButton = QPushButton(self.frame_12)
1470
1488
  self.copy_profile_pushButton.setObjectName(u"copy_profile_pushButton")
1471
- icon95 = QIcon()
1472
- icon95.addFile(u":/Icons/icons/copy.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1473
- self.copy_profile_pushButton.setIcon(icon95)
1489
+ icon97 = QIcon()
1490
+ icon97.addFile(u":/Icons/icons/copy.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1491
+ self.copy_profile_pushButton.setIcon(icon97)
1474
1492
 
1475
1493
  self.horizontalLayout_4.addWidget(self.copy_profile_pushButton)
1476
1494
 
1477
1495
  self.paste_profiles_pushButton = QPushButton(self.frame_12)
1478
1496
  self.paste_profiles_pushButton.setObjectName(u"paste_profiles_pushButton")
1479
- icon96 = QIcon()
1480
- icon96.addFile(u":/Icons/icons/paste.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1481
- self.paste_profiles_pushButton.setIcon(icon96)
1497
+ icon98 = QIcon()
1498
+ icon98.addFile(u":/Icons/icons/paste.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1499
+ self.paste_profiles_pushButton.setIcon(icon98)
1482
1500
 
1483
1501
  self.horizontalLayout_4.addWidget(self.paste_profiles_pushButton)
1484
1502
 
1485
1503
  self.set_linear_combination_profile_pushButton = QPushButton(self.frame_12)
1486
1504
  self.set_linear_combination_profile_pushButton.setObjectName(u"set_linear_combination_profile_pushButton")
1487
- icon97 = QIcon()
1488
- icon97.addFile(u":/Icons/icons/copy2right.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1489
- self.set_linear_combination_profile_pushButton.setIcon(icon97)
1505
+ icon99 = QIcon()
1506
+ icon99.addFile(u":/Icons/icons/copy2right.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1507
+ self.set_linear_combination_profile_pushButton.setIcon(icon99)
1490
1508
 
1491
1509
  self.horizontalLayout_4.addWidget(self.set_linear_combination_profile_pushButton)
1492
1510
 
@@ -1514,25 +1532,25 @@ class Ui_mainWindow(object):
1514
1532
 
1515
1533
  self.profile_multiply_pushButton = QPushButton(self.frame_12)
1516
1534
  self.profile_multiply_pushButton.setObjectName(u"profile_multiply_pushButton")
1517
- icon98 = QIcon()
1518
- icon98.addFile(u":/Icons/icons/multiply.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1519
- self.profile_multiply_pushButton.setIcon(icon98)
1535
+ icon100 = QIcon()
1536
+ icon100.addFile(u":/Icons/icons/multiply.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1537
+ self.profile_multiply_pushButton.setIcon(icon100)
1520
1538
 
1521
1539
  self.horizontalLayout_4.addWidget(self.profile_multiply_pushButton)
1522
1540
 
1523
1541
  self.profile_divide_pushButton = QPushButton(self.frame_12)
1524
1542
  self.profile_divide_pushButton.setObjectName(u"profile_divide_pushButton")
1525
- icon99 = QIcon()
1526
- icon99.addFile(u":/Icons/icons/divide.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1527
- self.profile_divide_pushButton.setIcon(icon99)
1543
+ icon101 = QIcon()
1544
+ icon101.addFile(u":/Icons/icons/divide.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1545
+ self.profile_divide_pushButton.setIcon(icon101)
1528
1546
 
1529
1547
  self.horizontalLayout_4.addWidget(self.profile_divide_pushButton)
1530
1548
 
1531
1549
  self.set_profile_value_pushButton = QPushButton(self.frame_12)
1532
1550
  self.set_profile_value_pushButton.setObjectName(u"set_profile_value_pushButton")
1533
- icon100 = QIcon()
1534
- icon100.addFile(u":/Icons/icons/copy2up.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1535
- self.set_profile_value_pushButton.setIcon(icon100)
1551
+ icon102 = QIcon()
1552
+ icon102.addFile(u":/Icons/icons/copy2up.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1553
+ self.set_profile_value_pushButton.setIcon(icon102)
1536
1554
 
1537
1555
  self.horizontalLayout_4.addWidget(self.set_profile_value_pushButton)
1538
1556
 
@@ -1547,9 +1565,9 @@ class Ui_mainWindow(object):
1547
1565
 
1548
1566
  self.verticalLayout_42.addWidget(self.frame_12)
1549
1567
 
1550
- icon101 = QIcon()
1551
- icon101.addFile(u":/Icons/icons/time_series.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1552
- self.tabWidget_5.addTab(self.tab_16, icon101, "")
1568
+ icon103 = QIcon()
1569
+ icon103.addFile(u":/Icons/icons/time_series.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1570
+ self.tabWidget_5.addTab(self.tab_16, icon103, "")
1553
1571
 
1554
1572
  self.verticalLayout_26.addWidget(self.tabWidget_5)
1555
1573
 
@@ -1588,9 +1606,9 @@ class Ui_mainWindow(object):
1588
1606
  self.compute_simulation_data_pushButton = QPushButton(self.frame_28)
1589
1607
  self.compute_simulation_data_pushButton.setObjectName(u"compute_simulation_data_pushButton")
1590
1608
  self.compute_simulation_data_pushButton.setMaximumSize(QSize(32, 16777215))
1591
- icon102 = QIcon()
1592
- icon102.addFile(u":/Icons/icons/calculator.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1593
- self.compute_simulation_data_pushButton.setIcon(icon102)
1609
+ icon104 = QIcon()
1610
+ icon104.addFile(u":/Icons/icons/calculator.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1611
+ self.compute_simulation_data_pushButton.setIcon(icon104)
1594
1612
 
1595
1613
  self.gridLayout_19.addWidget(self.compute_simulation_data_pushButton, 0, 0, 1, 1)
1596
1614
 
@@ -1624,23 +1642,23 @@ class Ui_mainWindow(object):
1624
1642
 
1625
1643
  self.copyArraysToNumpyButton = QPushButton(self.frame_29)
1626
1644
  self.copyArraysToNumpyButton.setObjectName(u"copyArraysToNumpyButton")
1627
- icon103 = QIcon()
1628
- icon103.addFile(u":/Icons/icons/array.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1629
- self.copyArraysToNumpyButton.setIcon(icon103)
1645
+ icon105 = QIcon()
1646
+ icon105.addFile(u":/Icons/icons/array.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1647
+ self.copyArraysToNumpyButton.setIcon(icon105)
1630
1648
 
1631
1649
  self.gridLayout_23.addWidget(self.copyArraysToNumpyButton, 0, 1, 1, 1)
1632
1650
 
1633
1651
  self.plotArraysButton = QPushButton(self.frame_29)
1634
1652
  self.plotArraysButton.setObjectName(u"plotArraysButton")
1635
1653
  self.plotArraysButton.setMinimumSize(QSize(32, 0))
1636
- self.plotArraysButton.setIcon(icon94)
1654
+ self.plotArraysButton.setIcon(icon96)
1637
1655
 
1638
1656
  self.gridLayout_23.addWidget(self.plotArraysButton, 0, 6, 1, 1)
1639
1657
 
1640
1658
  self.copyArraysButton = QPushButton(self.frame_29)
1641
1659
  self.copyArraysButton.setObjectName(u"copyArraysButton")
1642
1660
  self.copyArraysButton.setMinimumSize(QSize(32, 0))
1643
- self.copyArraysButton.setIcon(icon95)
1661
+ self.copyArraysButton.setIcon(icon97)
1644
1662
 
1645
1663
  self.gridLayout_23.addWidget(self.copyArraysButton, 0, 2, 1, 1)
1646
1664
 
@@ -1648,9 +1666,9 @@ class Ui_mainWindow(object):
1648
1666
 
1649
1667
  self.horizontalLayout_7.addWidget(self.simulationDataSplitter)
1650
1668
 
1651
- icon104 = QIcon()
1652
- icon104.addFile(u":/Icons/icons/spmat.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1653
- self.tabWidget_3.addTab(self.compiledArraysTab, icon104, "")
1669
+ icon106 = QIcon()
1670
+ icon106.addFile(u":/Icons/icons/spmat.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1671
+ self.tabWidget_3.addTab(self.compiledArraysTab, icon106, "")
1654
1672
  self.commentsTab = QWidget()
1655
1673
  self.commentsTab.setObjectName(u"commentsTab")
1656
1674
  self.verticalLayout_18 = QVBoxLayout(self.commentsTab)
@@ -1660,9 +1678,9 @@ class Ui_mainWindow(object):
1660
1678
 
1661
1679
  self.verticalLayout_18.addWidget(self.comments_textEdit)
1662
1680
 
1663
- icon105 = QIcon()
1664
- icon105.addFile(u":/Icons/icons/edit.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1665
- self.tabWidget_3.addTab(self.commentsTab, icon105, "")
1681
+ icon107 = QIcon()
1682
+ icon107.addFile(u":/Icons/icons/edit.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1683
+ self.tabWidget_3.addTab(self.commentsTab, icon107, "")
1666
1684
 
1667
1685
  self.verticalLayout_9.addWidget(self.tabWidget_3)
1668
1686
 
@@ -1841,45 +1859,45 @@ class Ui_mainWindow(object):
1841
1859
 
1842
1860
  self.results_traspose_checkBox = QCheckBox(self.frame_8)
1843
1861
  self.results_traspose_checkBox.setObjectName(u"results_traspose_checkBox")
1844
- icon106 = QIcon()
1845
- icon106.addFile(u":/Icons/icons/transpose.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1846
- self.results_traspose_checkBox.setIcon(icon106)
1862
+ icon108 = QIcon()
1863
+ icon108.addFile(u":/Icons/icons/transpose.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1864
+ self.results_traspose_checkBox.setIcon(icon108)
1847
1865
 
1848
1866
  self.horizontalLayout_2.addWidget(self.results_traspose_checkBox)
1849
1867
 
1850
1868
  self.results_as_cdf_checkBox = QCheckBox(self.frame_8)
1851
1869
  self.results_as_cdf_checkBox.setObjectName(u"results_as_cdf_checkBox")
1852
- icon107 = QIcon()
1853
- icon107.addFile(u":/Icons/icons/cdf.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1854
- self.results_as_cdf_checkBox.setIcon(icon107)
1870
+ icon109 = QIcon()
1871
+ icon109.addFile(u":/Icons/icons/cdf.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1872
+ self.results_as_cdf_checkBox.setIcon(icon109)
1855
1873
 
1856
1874
  self.horizontalLayout_2.addWidget(self.results_as_cdf_checkBox)
1857
1875
 
1858
1876
  self.results_as_abs_checkBox = QCheckBox(self.frame_8)
1859
1877
  self.results_as_abs_checkBox.setObjectName(u"results_as_abs_checkBox")
1860
- icon108 = QIcon()
1861
- icon108.addFile(u":/Icons/icons/abs.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1862
- self.results_as_abs_checkBox.setIcon(icon108)
1878
+ icon110 = QIcon()
1879
+ icon110.addFile(u":/Icons/icons/abs.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1880
+ self.results_as_abs_checkBox.setIcon(icon110)
1863
1881
 
1864
1882
  self.horizontalLayout_2.addWidget(self.results_as_abs_checkBox)
1865
1883
 
1866
1884
  self.stacked_plot_checkBox = QCheckBox(self.frame_8)
1867
1885
  self.stacked_plot_checkBox.setObjectName(u"stacked_plot_checkBox")
1868
- icon109 = QIcon()
1869
- icon109.addFile(u":/Icons/icons/stacked_plot.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1870
- self.stacked_plot_checkBox.setIcon(icon109)
1886
+ icon111 = QIcon()
1887
+ icon111.addFile(u":/Icons/icons/stacked_plot.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
1888
+ self.stacked_plot_checkBox.setIcon(icon111)
1871
1889
 
1872
1890
  self.horizontalLayout_2.addWidget(self.stacked_plot_checkBox)
1873
1891
 
1874
1892
  self.copy_results_pushButton = QPushButton(self.frame_8)
1875
1893
  self.copy_results_pushButton.setObjectName(u"copy_results_pushButton")
1876
- self.copy_results_pushButton.setIcon(icon95)
1894
+ self.copy_results_pushButton.setIcon(icon97)
1877
1895
 
1878
1896
  self.horizontalLayout_2.addWidget(self.copy_results_pushButton)
1879
1897
 
1880
1898
  self.copy_numpy_button = QPushButton(self.frame_8)
1881
1899
  self.copy_numpy_button.setObjectName(u"copy_numpy_button")
1882
- self.copy_numpy_button.setIcon(icon103)
1900
+ self.copy_numpy_button.setIcon(icon105)
1883
1901
 
1884
1902
  self.horizontalLayout_2.addWidget(self.copy_numpy_button)
1885
1903
 
@@ -1891,7 +1909,7 @@ class Ui_mainWindow(object):
1891
1909
 
1892
1910
  self.plot_data_pushButton = QPushButton(self.frame_8)
1893
1911
  self.plot_data_pushButton.setObjectName(u"plot_data_pushButton")
1894
- self.plot_data_pushButton.setIcon(icon94)
1912
+ self.plot_data_pushButton.setIcon(icon96)
1895
1913
 
1896
1914
  self.horizontalLayout_2.addWidget(self.plot_data_pushButton)
1897
1915
 
@@ -1901,7 +1919,7 @@ class Ui_mainWindow(object):
1901
1919
 
1902
1920
  self.verticalLayout_40.addWidget(self.frame_5)
1903
1921
 
1904
- self.tabWidget_4.addTab(self.tab_7, icon103, "")
1922
+ self.tabWidget_4.addTab(self.tab_7, icon105, "")
1905
1923
  self.tab_14 = QWidget()
1906
1924
  self.tab_14.setObjectName(u"tab_14")
1907
1925
  self.verticalLayout_41 = QVBoxLayout(self.tab_14)
@@ -1942,7 +1960,7 @@ class Ui_mainWindow(object):
1942
1960
 
1943
1961
  self.verticalLayout_13.addWidget(self.frame_33)
1944
1962
 
1945
- self.tabWidget.addTab(self.ResultsTab, icon94, "")
1963
+ self.tabWidget.addTab(self.ResultsTab, icon96, "")
1946
1964
  self.main_console_tab = QWidget()
1947
1965
  self.main_console_tab.setObjectName(u"main_console_tab")
1948
1966
  self.verticalLayout_22 = QVBoxLayout(self.main_console_tab)
@@ -2001,9 +2019,9 @@ class Ui_mainWindow(object):
2001
2019
 
2002
2020
  self.runSourceCodeButton = QPushButton(self.frame_55)
2003
2021
  self.runSourceCodeButton.setObjectName(u"runSourceCodeButton")
2004
- icon110 = QIcon()
2005
- icon110.addFile(u":/Icons/icons/next.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
2006
- self.runSourceCodeButton.setIcon(icon110)
2022
+ icon112 = QIcon()
2023
+ icon112.addFile(u":/Icons/icons/next.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
2024
+ self.runSourceCodeButton.setIcon(icon112)
2007
2025
 
2008
2026
  self.horizontalLayout_3.addWidget(self.runSourceCodeButton)
2009
2027
 
@@ -2073,9 +2091,9 @@ class Ui_mainWindow(object):
2073
2091
 
2074
2092
  self.verticalLayout_33.addWidget(self.consoleFrame)
2075
2093
 
2076
- icon111 = QIcon()
2077
- icon111.addFile(u":/Icons/icons/console.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
2078
- self.tabWidget_2.addTab(self.pythonConsoleTab, icon111, "")
2094
+ icon113 = QIcon()
2095
+ icon113.addFile(u":/Icons/icons/console.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
2096
+ self.tabWidget_2.addTab(self.pythonConsoleTab, icon113, "")
2079
2097
  self.sourceCodeTab = QWidget()
2080
2098
  self.sourceCodeTab.setObjectName(u"sourceCodeTab")
2081
2099
  self.verticalLayout_39 = QVBoxLayout(self.sourceCodeTab)
@@ -2099,7 +2117,7 @@ class Ui_mainWindow(object):
2099
2117
 
2100
2118
  self.verticalLayout_22.addWidget(self.frame_10)
2101
2119
 
2102
- self.tabWidget.addTab(self.main_console_tab, icon111, "")
2120
+ self.tabWidget.addTab(self.main_console_tab, icon113, "")
2103
2121
  self.SettingsTab = QWidget()
2104
2122
  self.SettingsTab.setObjectName(u"SettingsTab")
2105
2123
  self.gridLayout_8 = QGridLayout(self.SettingsTab)
@@ -5054,7 +5072,7 @@ class Ui_mainWindow(object):
5054
5072
  mainWindow.setCentralWidget(self.centralwidget)
5055
5073
  self.menuBar = QMenuBar(mainWindow)
5056
5074
  self.menuBar.setObjectName(u"menuBar")
5057
- self.menuBar.setGeometry(QRect(0, 0, 1372, 33))
5075
+ self.menuBar.setGeometry(QRect(0, 0, 1372, 39))
5058
5076
  self.menuBar.setFont(font)
5059
5077
  self.menuProject = QMenu(self.menuBar)
5060
5078
  self.menuProject.setObjectName(u"menuProject")
@@ -5774,6 +5792,14 @@ class Ui_mainWindow(object):
5774
5792
  self.edit_profiles_from_models_pushButton.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p><span style=\" font-weight:700;\">Import profiles from grid models. </span></p><p>This is, load many individual grids in any of the supported VeraGrid formats and take the operational data from them, aplying them to all the profiles.</p></body></html>", None))
5775
5793
  #endif // QT_CONFIG(tooltip)
5776
5794
  self.edit_profiles_from_models_pushButton.setText("")
5795
+ #if QT_CONFIG(tooltip)
5796
+ self.crop_profiles_pushButton.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p>Time series crop to the selected time interval</p></body></html>", None))
5797
+ #endif // QT_CONFIG(tooltip)
5798
+ self.crop_profiles_pushButton.setText("")
5799
+ #if QT_CONFIG(tooltip)
5800
+ self.crop_cluster_profiles_pushButton.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p>Time series crop to the clusteres time indices.</p><p>For that you need cluster simulation in memory</p></body></html>", None))
5801
+ #endif // QT_CONFIG(tooltip)
5802
+ self.crop_cluster_profiles_pushButton.setText("")
5777
5803
  #if QT_CONFIG(tooltip)
5778
5804
  self.plot_time_series_pushButton.setToolTip(QCoreApplication.translate("mainWindow", u"Plot the selected object's profile", None))
5779
5805
  #endif // QT_CONFIG(tooltip)
@@ -677,7 +677,7 @@ class DataBaseTableMain(DiagramsMain):
677
677
  self.grid_reduction_dialogue.exec()
678
678
 
679
679
  if self.grid_reduction_dialogue.did_reduce:
680
- self.delete_from_all_diagrams(elements=[bus for i, bus, graphic in selected_buses])
680
+ self.delete_from_all_diagrams(elements=list(selected_buses))
681
681
 
682
682
  def grid_reduction_from_schematic_selection(self):
683
683
  """
@@ -10,10 +10,11 @@ from matplotlib import pyplot as plt
10
10
 
11
11
  from VeraGrid.Gui.object_proxy_model import ObjectModelFilterProxy
12
12
  from VeraGridEngine.basic_structures import Logger
13
- from VeraGridEngine.enumerations import DeviceType
13
+ from VeraGridEngine.enumerations import DeviceType, SimulationTypes
14
14
  from VeraGridEngine.Devices.types import ALL_DEV_TYPES
15
- from VeraGrid.Gui.general_dialogues import NewProfilesStructureDialogue, TimeReIndexDialogue, LogsDialogue
16
- from VeraGrid.Gui.messages import yes_no_question, warning_msg, info_msg
15
+ from VeraGrid.Gui.general_dialogues import (NewProfilesStructureDialogue, TimeReIndexDialogue, LogsDialogue,
16
+ StartEndSelectionDialogue)
17
+ from VeraGrid.Gui.messages import yes_no_question, warning_msg, info_msg, error_msg
17
18
  from VeraGrid.Gui.Main.SubClasses.Model.data_base import DataBaseTableMain
18
19
  from VeraGrid.Gui.ProfilesInput.models_dialogue import ModelsInputGUI
19
20
  from VeraGrid.Gui.ProfilesInput.profile_dialogue import ProfileInputGUI, GeneratorsProfileOptionsDialogue
@@ -41,6 +42,9 @@ class TimeEventsMain(DataBaseTableMain):
41
42
  self.ui.new_profiles_structure_pushButton.clicked.connect(self.new_profiles_structure)
42
43
  self.ui.delete_profiles_structure_pushButton.clicked.connect(self.delete_profiles_structure)
43
44
  self.ui.edit_profiles_pushButton.clicked.connect(self.import_profiles)
45
+ self.ui.crop_profiles_pushButton.clicked.connect(self.crop_profiles)
46
+ self.ui.crop_cluster_profiles_pushButton.clicked.connect(self.crop_profiles_cluster)
47
+
44
48
  self.ui.edit_profiles_from_models_pushButton.clicked.connect(self.import_profiles_from_models)
45
49
  self.ui.set_profile_state_button.clicked.connect(self.set_profile_state_to_snapshot)
46
50
  self.ui.profile_add_pushButton.clicked.connect(lambda: self.modify_profiles('+'))
@@ -177,6 +181,74 @@ class TimeEventsMain(DataBaseTableMain):
177
181
  else:
178
182
  self.show_error_toast("There are no objects...", duration=3000)
179
183
 
184
+ def crop_profiles(self):
185
+ """
186
+ Crop (resample) the profiles
187
+ """
188
+ if self.circuit.has_time_series:
189
+ if self.circuit.get_time_number() > 0:
190
+ self.start_end_dialogue_window = StartEndSelectionDialogue(min_value=0,
191
+ max_value=len(self.circuit.time_profile),
192
+ time_array=self.circuit.time_profile)
193
+
194
+ self.start_end_dialogue_window.setModal(True)
195
+ self.start_end_dialogue_window.exec()
196
+
197
+ if self.start_end_dialogue_window.is_accepted:
198
+ self.circuit.resample_profiles2(
199
+ t0=self.start_end_dialogue_window.start_value,
200
+ t1=self.start_end_dialogue_window.end_value + 1
201
+ )
202
+
203
+ self.setup_sim_indices(st=self.start_end_dialogue_window.start_value,
204
+ en=self.start_end_dialogue_window.end_value)
205
+
206
+ self.show_info_toast("Resampled!")
207
+ else:
208
+ self.show_error_toast("Empty time series :/")
209
+
210
+ else:
211
+ self.show_warning_toast("No profiles to crop :/")
212
+
213
+ def crop_profiles_cluster(self):
214
+ """
215
+ Crop (resample) the profiles
216
+ """
217
+ if self.circuit.has_time_series:
218
+ if self.circuit.get_time_number() > 0:
219
+ _, clustering_results = self.session.clustering
220
+
221
+ if clustering_results is not None:
222
+ n = len(clustering_results.time_indices)
223
+
224
+ if n != self.ui.cluster_number_spinBox.value():
225
+ error_msg("The number of clusters in the stored results is different from the specified :(\n"
226
+ "Run another clustering analysis.")
227
+
228
+ return
229
+ else:
230
+ # all ok
231
+ ok = yes_no_question("Are you sure that you want to crop "
232
+ "the profiles to the clustered results?\n"
233
+ "This cannot be undone.\n"
234
+ "Also, the clustering will be removed after this.")
235
+
236
+ if ok:
237
+ self.circuit.resample_profiles(indices=clustering_results.time_indices)
238
+ self.setup_sim_indices(st=0, en=self.circuit.get_time_number() - 1)
239
+
240
+ # we need to remove the clustering simulation because it no longer matches the time data
241
+ self.session.delete_driver(driver_type=SimulationTypes.ClusteringAnalysis_run)
242
+ self.show_info_toast("Resampled!")
243
+ else:
244
+ self.show_error_toast("Run clustering simulation first")
245
+
246
+ else:
247
+ self.show_error_toast("Empty time series :/")
248
+
249
+ else:
250
+ self.show_warning_toast("No profiles to crop :/")
251
+
180
252
  def modify_profiles(self, operation='+'):
181
253
  """
182
254
  Edit profiles with a linear combination
@@ -391,7 +463,6 @@ class TimeEventsMain(DataBaseTableMain):
391
463
  fig = plt.figure(figsize=(12, 8))
392
464
  ax = fig.add_subplot(111)
393
465
 
394
-
395
466
  units_dict = {attr: pair.units for attr, pair in objects[0].registered_properties.items()}
396
467
 
397
468
  data_tpe = objects[0].get_property_by_name(magnitude).tpe
@@ -521,3 +592,4 @@ class TimeEventsMain(DataBaseTableMain):
521
592
  mdl.paste_from_clipboard(row_idx=row_idx, col_idx=col_idx)
522
593
  else:
523
594
  warning_msg('There is no profile displayed, please display one', 'Paste profile to clipboard')
595
+