MoleditPy-linux 4.1.3__tar.gz → 4.1.4__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 (80) hide show
  1. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/PKG-INFO +1 -1
  2. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/pyproject.toml +1 -1
  3. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/MoleditPy_linux.egg-info/PKG-INFO +1 -1
  4. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/plugins/plugin_manager.py +9 -1
  5. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/plugins/plugin_manager_window.py +2 -3
  6. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/move_selected_atoms_dialog.py +1 -2
  7. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/LICENSE +0 -0
  8. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/README.md +0 -0
  9. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/setup.cfg +0 -0
  10. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/MoleditPy_linux.egg-info/SOURCES.txt +0 -0
  11. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/MoleditPy_linux.egg-info/dependency_links.txt +0 -0
  12. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/MoleditPy_linux.egg-info/entry_points.txt +0 -0
  13. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/MoleditPy_linux.egg-info/requires.txt +0 -0
  14. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/MoleditPy_linux.egg-info/top_level.txt +0 -0
  15. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/__init__.py +0 -0
  16. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/__main__.py +0 -0
  17. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/assets/file_icon.ico +0 -0
  18. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/assets/icon.icns +0 -0
  19. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/assets/icon.ico +0 -0
  20. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/assets/icon.png +0 -0
  21. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/core/__init__.py +0 -0
  22. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/core/mol_geometry.py +0 -0
  23. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/core/molecular_data.py +0 -0
  24. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/main.py +0 -0
  25. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/plugins/__init__.py +0 -0
  26. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/plugins/plugin_interface.py +0 -0
  27. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/__init__.py +0 -0
  28. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/about_dialog.py +0 -0
  29. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/align_plane_dialog.py +0 -0
  30. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/alignment_dialog.py +0 -0
  31. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/analysis_window.py +0 -0
  32. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/angle_dialog.py +0 -0
  33. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/app_state.py +0 -0
  34. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/atom_item.py +0 -0
  35. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/atom_picking.py +0 -0
  36. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/base_picking_dialog.py +0 -0
  37. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/bond_item.py +0 -0
  38. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/bond_length_dialog.py +0 -0
  39. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/calculation_worker.py +0 -0
  40. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/color_settings_dialog.py +0 -0
  41. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/compute_logic.py +0 -0
  42. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/constrained_optimization_dialog.py +0 -0
  43. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/custom_interactor_style.py +0 -0
  44. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/custom_qt_interactor.py +0 -0
  45. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/dialog_3d_picking_mixin.py +0 -0
  46. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/dialog_logic.py +0 -0
  47. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/dihedral_dialog.py +0 -0
  48. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/edit_3d_logic.py +0 -0
  49. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/edit_actions_logic.py +0 -0
  50. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/export_logic.py +0 -0
  51. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/geometry_base_dialog.py +0 -0
  52. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/io_logic.py +0 -0
  53. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/main_window.py +0 -0
  54. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/main_window_init.py +0 -0
  55. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/mirror_dialog.py +0 -0
  56. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/molecular_scene_handler.py +0 -0
  57. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/molecule_scene.py +0 -0
  58. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/move_group_dialog.py +0 -0
  59. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/periodic_table_dialog.py +0 -0
  60. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/planarize_dialog.py +0 -0
  61. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/plugin_menu_manager.py +0 -0
  62. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/settings_dialog.py +0 -0
  63. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/settings_tabs/__init__.py +0 -0
  64. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/settings_tabs/settings_2d_tab.py +0 -0
  65. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/settings_tabs/settings_3d_tabs.py +0 -0
  66. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/settings_tabs/settings_other_tab.py +0 -0
  67. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/settings_tabs/settings_tab_base.py +0 -0
  68. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/string_importers.py +0 -0
  69. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/template_preview_item.py +0 -0
  70. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/template_preview_view.py +0 -0
  71. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/translation_dialog.py +0 -0
  72. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/ui_manager.py +0 -0
  73. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/user_template_dialog.py +0 -0
  74. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/view_3d_logic.py +0 -0
  75. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/ui/zoomable_view.py +0 -0
  76. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/utils/__init__.py +0 -0
  77. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/utils/constants.py +0 -0
  78. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/utils/default_settings.py +0 -0
  79. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/utils/sip_isdeleted_safe.py +0 -0
  80. {moleditpy_linux-4.1.3 → moleditpy_linux-4.1.4}/src/moleditpy_linux/utils/system_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: MoleditPy-linux
3
- Version: 4.1.3
3
+ Version: 4.1.4
4
4
  Summary: A cross-platform, simple, and intuitive molecular structure editor built in Python. It allows 2D molecular drawing and 3D structure visualization. It supports exporting structure files for input to DFT calculation software.
5
5
  Author-email: HiroYokoyama <titech.yoko.hiro@gmail.com>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  name = "MoleditPy-linux"
7
7
 
8
- version = "4.1.3"
8
+ version = "4.1.4"
9
9
 
10
10
  license = {file = "LICENSE"}
11
11
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: MoleditPy-linux
3
- Version: 4.1.3
3
+ Version: 4.1.4
4
4
  Summary: A cross-platform, simple, and intuitive molecular structure editor built in Python. It allows 2D molecular drawing and 3D structure visualization. It supports exporting structure files for input to DFT calculation software.
5
5
  Author-email: HiroYokoyama <titech.yoko.hiro@gmail.com>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -206,9 +206,10 @@ class PluginManager:
206
206
  shutil.copy2(file_path, dest_path)
207
207
  msg = f"Installed {filename}"
208
208
 
209
- # Reload plugins after install
209
+ # Reload plugins after install and rebuild UI immediately
210
210
  if self.main_window:
211
211
  self.discover_plugins(self.main_window)
212
+ self.rebuild_plugin_menus()
212
213
  return True, msg
213
214
  except (
214
215
  AttributeError,
@@ -315,6 +316,13 @@ class PluginManager:
315
316
  stub.__package__ = parent_name
316
317
  sys.modules[parent_name] = stub
317
318
 
319
+ # Purge stale cache so package submodules reload from disk on re-exec
320
+ for _cached_key in list(sys.modules.keys()):
321
+ if _cached_key == unique_module_name or _cached_key.startswith(
322
+ unique_module_name + "."
323
+ ):
324
+ del sys.modules[_cached_key]
325
+
318
326
  spec = importlib.util.spec_from_file_location(
319
327
  unique_module_name,
320
328
  filepath,
@@ -156,13 +156,12 @@ class PluginManagerWindow(QDialog):
156
156
  self.btn_remove.setEnabled(has_selection)
157
157
 
158
158
  def on_reload(self, silent: bool = False) -> None:
159
- """Reload all plugins from disk and refresh the table."""
160
- # Trigger reload in main manager
159
+ """Reload all plugins from disk, rebuild main-window UI, and refresh the table."""
161
160
  if self.plugin_manager.main_window:
162
161
  self.plugin_manager.discover_plugins(self.plugin_manager.main_window)
162
+ self.plugin_manager.rebuild_plugin_menus()
163
163
  self.refresh_plugin_list()
164
164
 
165
- # For immediate feedback:
166
165
  if not silent:
167
166
  QMessageBox.information(self, "Reloaded", "Plugins have been reloaded.")
168
167
  else:
@@ -57,7 +57,7 @@ class MoveSelectedAtomsDialog(BasePickingDialog):
57
57
  self._consume_next_left_release: bool = False
58
58
  self.highlight_actor: Optional[pv.Actor] = None
59
59
  self.original_style: Optional[Any] = None
60
- self.rubber_band_style: Optional[Any] = None
60
+ self._click_press_pos: Optional[Any] = None
61
61
 
62
62
  self.widgets: dict[str, Any] = {}
63
63
 
@@ -699,7 +699,6 @@ class MoveSelectedAtomsDialog(BasePickingDialog):
699
699
  # Restore original style
700
700
  if self.original_style is not None:
701
701
  plotter.interactor.SetInteractorStyle(self.original_style)
702
- self.rubber_band_style = None
703
702
 
704
703
  def on_rectangle_picked(self, selection: Any) -> None:
705
704
  """Handle PyVista rectangle picking callback."""
File without changes