MoleditPy 2.2.0a3__py3-none-any.whl → 2.2.2__py3-none-any.whl

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.
@@ -16,7 +16,7 @@ from PyQt6.QtGui import QFont, QColor
16
16
  from rdkit import Chem
17
17
 
18
18
  #Version
19
- VERSION = '2.2.0a3'
19
+ VERSION = '2.2.2'
20
20
 
21
21
  ATOM_RADIUS = 18
22
22
  BOND_OFFSET = 3.5
@@ -1822,7 +1822,7 @@ class MainWindowMainInit(object):
1822
1822
  current_menu = self.menuBar().addMenu(top_level_title)
1823
1823
 
1824
1824
  # Traverse rest
1825
- for part in parts[1:]:
1825
+ for part in parts[1:-1]:
1826
1826
  found_sub = False
1827
1827
  for act in current_menu.actions():
1828
1828
  if act.menu() and act.text().replace('&', '') == part:
@@ -85,7 +85,9 @@ class PluginManagerWindow(QDialog):
85
85
 
86
86
  self.table.setRowCount(len(plugins))
87
87
  for row, p in enumerate(plugins):
88
- self.table.setItem(row, 0, QTableWidgetItem(str(p.get('status', 'Unknown'))))
88
+ status_item = QTableWidgetItem(str(p.get('status', 'Unknown')))
89
+ status_item.setTextAlignment(Qt.AlignmentFlag.AlignCenter)
90
+ self.table.setItem(row, 0, status_item)
89
91
  self.table.setItem(row, 1, QTableWidgetItem(str(p.get('name', 'Unknown'))))
90
92
  self.table.setItem(row, 2, QTableWidgetItem(str(p.get('version', ''))))
91
93
  self.table.setItem(row, 3, QTableWidgetItem(str(p.get('author', ''))))
@@ -108,7 +110,7 @@ class PluginManagerWindow(QDialog):
108
110
  if status.startswith("Error"):
109
111
  color = Qt.GlobalColor.red
110
112
  elif status == "Loaded":
111
- color = Qt.GlobalColor.green
113
+ color = Qt.GlobalColor.darkGreen
112
114
  elif status == "No Entry Point":
113
115
  color = Qt.GlobalColor.gray
114
116
 
@@ -120,7 +122,7 @@ class PluginManagerWindow(QDialog):
120
122
  if hasattr(self, 'btn_remove'):
121
123
  self.btn_remove.setEnabled(has_selection)
122
124
 
123
- def on_reload(self):
125
+ def on_reload(self, silent=False):
124
126
  # Trigger reload in main manager
125
127
  if self.plugin_manager.main_window:
126
128
  self.plugin_manager.discover_plugins(self.plugin_manager.main_window)
@@ -132,7 +134,8 @@ class PluginManagerWindow(QDialog):
132
134
  # We will handle UI rebuild in the main window code by observing or callback.
133
135
 
134
136
  # For immediate feedback:
135
- QMessageBox.information(self, "Reloaded", "Plugins have been reloaded.")
137
+ if not silent:
138
+ QMessageBox.information(self, "Reloaded", "Plugins have been reloaded.")
136
139
  else:
137
140
  self.plugin_manager.discover_plugins()
138
141
  self.refresh_plugin_list()
@@ -155,7 +158,7 @@ class PluginManagerWindow(QDialog):
155
158
  if reply == QMessageBox.StandardButton.Yes:
156
159
  try:
157
160
  os.remove(filepath)
158
- self.on_reload() # Reload list and plugins
161
+ self.on_reload(silent=True) # Reload list and plugins
159
162
  QMessageBox.information(self, "Success", f"Removed '{plugin.get('name', 'Unknown')}'.")
160
163
  except Exception as e:
161
164
  QMessageBox.critical(self, "Error", f"Failed to delete file: {e}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: MoleditPy
3
- Version: 2.2.0a3
3
+ Version: 2.2.2
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
@@ -12,7 +12,7 @@ moleditpy/modules/bond_item.py,sha256=eVkEeKvM4igYI67DYxpey3FllqDyt_iWDo4VPYMhaP
12
12
  moleditpy/modules/bond_length_dialog.py,sha256=k5x_DhK9Q8CSwouKhEo_kLRRdaYHDaK84KDNmuDNLvY,14868
13
13
  moleditpy/modules/calculation_worker.py,sha256=KiGQY7i-QCQofEoE0r65KoQgpEGFcbhmxWv6egfkUdc,42324
14
14
  moleditpy/modules/color_settings_dialog.py,sha256=Ow44BhCOLo0AFb6klO001k6B4drOgKX9DeNBQhZLp5o,15474
15
- moleditpy/modules/constants.py,sha256=KNnQdr1hATDivMItO0ylf-0bSLTDmjrH6EBBQ53kkis,4704
15
+ moleditpy/modules/constants.py,sha256=BOJs1z3G-LIv4gISS5iChuE5PYejKhF758P6hxTUwd0,4702
16
16
  moleditpy/modules/constrained_optimization_dialog.py,sha256=IEdNVhFoNSEMeA5ABpUH9Q88-YzDXFloQM2gwnPwnHY,30150
17
17
  moleditpy/modules/custom_interactor_style.py,sha256=NjsXE2a43IDNEanZBlcG9eR4ZIERT1MsQC6lbfesapQ,38453
18
18
  moleditpy/modules/custom_qt_interactor.py,sha256=MFaTuDh-FPeFBS4303CqxsxmsOIOW4QXUz6USwI8PHQ,2451
@@ -25,7 +25,7 @@ moleditpy/modules/main_window_dialog_manager.py,sha256=S1ROCWqzB2uVSKHY4o5CbTtJA
25
25
  moleditpy/modules/main_window_edit_3d.py,sha256=uY203adPg3CLyAdbG2NCThG2Am0WduzPDan9rXAlc14,19841
26
26
  moleditpy/modules/main_window_edit_actions.py,sha256=lUFxNFTUQzeXN8CNlb4_4S9j4M1EEq8kpJmh9dCzM3M,64818
27
27
  moleditpy/modules/main_window_export.py,sha256=e0HA_jeaokIOBunQqGxUn5QKdniCmE8GrsE1Igy6zm8,38351
28
- moleditpy/modules/main_window_main_init.py,sha256=AZb2GZmvUYsVBhV2c54FEoWmFXRPkdSMlsshKraOGPs,89315
28
+ moleditpy/modules/main_window_main_init.py,sha256=YKUoKEFzg7YBeaLCUFdoxfsfg1pR7sfVC8J4-_S_8Aw,89317
29
29
  moleditpy/modules/main_window_molecular_parsers.py,sha256=Ex4-urYsKf6PyHp4XToOhgXzuYWa_n7q--QmHci4OCU,48401
30
30
  moleditpy/modules/main_window_project_io.py,sha256=q1vEmWQDqla32HVkmk8-j0OY9ut5TI5NJ4ikahewkEo,17259
31
31
  moleditpy/modules/main_window_string_importers.py,sha256=mQVDv2Dj4MwnPgMRe2IqdAAKnB_quE6QfYeAgCjfv28,10892
@@ -40,7 +40,7 @@ moleditpy/modules/periodic_table_dialog.py,sha256=ItEZUts1XCietz9paY-spvbzxh6SXa
40
40
  moleditpy/modules/planarize_dialog.py,sha256=yY8o-SxT8vGEHVWnjDTXecRv5NUaEejEsXH-836Xk8g,8681
41
41
  moleditpy/modules/plugin_interface.py,sha256=W6Hw1OLqMkcg8XU-S347v2sDBMEoo6iiCSbmL6MjZrA,7639
42
42
  moleditpy/modules/plugin_manager.py,sha256=cxbqIE7Rb_KeBd-cG1vF2ySY2qNx8IJVRXjVPyQMFDc,13457
43
- moleditpy/modules/plugin_manager_window.py,sha256=m2lJ-UltwoXQ2SYA1im6Q0v-5SfqWL2HcOBCTzUmiBw,9963
43
+ moleditpy/modules/plugin_manager_window.py,sha256=UeoPQWTxmckoFIQAuv9jVBzok_9gEKEm9c7JsKRX0P4,10135
44
44
  moleditpy/modules/settings_dialog.py,sha256=Nr7yE8UmYRi3VObWvRlrnv0DnjSjmYXbvqryZ02O12k,65348
45
45
  moleditpy/modules/template_preview_item.py,sha256=djdq3tz73d_fJGOvai3E-V9Hk9q9ZW7skx7BV59mooA,6556
46
46
  moleditpy/modules/template_preview_view.py,sha256=4OCHZDO51BvJpKdfrBWJ4_4WfLfFSKxsVIyf7I-Kj2E,3350
@@ -50,9 +50,9 @@ moleditpy/modules/zoomable_view.py,sha256=hjwljui13QpvjvxJHY4Evot4jMQvxRBQUNH5HU
50
50
  moleditpy/modules/assets/icon.icns,sha256=wD5R6-Vw7K662tVKhu2E1ImN0oUuyAP4youesEQsn9c,139863
51
51
  moleditpy/modules/assets/icon.ico,sha256=RfgFcx7-dHY_2STdsOQCQziY5SNhDr3gPnjO6jzEDPI,147975
52
52
  moleditpy/modules/assets/icon.png,sha256=kCFN1WacYIdy0GN6SFEbNA00ef39pCczBnFdkkBI8Bs,147110
53
- moleditpy-2.2.0a3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
54
- moleditpy-2.2.0a3.dist-info/METADATA,sha256=7GT1-GCaoevIBcSCUeQoXqwxNQRMlldgIVXHg9zOg3c,59277
55
- moleditpy-2.2.0a3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
56
- moleditpy-2.2.0a3.dist-info/entry_points.txt,sha256=yH1h9JjALhok1foXT3-hYrC4ufoZt8b7oiBcsdnGNNM,54
57
- moleditpy-2.2.0a3.dist-info/top_level.txt,sha256=ARICrS4ihlPXqywlKl6o-oJa3Qz3gZRWu_VZsQ3_c44,10
58
- moleditpy-2.2.0a3.dist-info/RECORD,,
53
+ moleditpy-2.2.2.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
54
+ moleditpy-2.2.2.dist-info/METADATA,sha256=GrgYMraRVwgK5-hY9N_3wVreL6FWDIeusYIAftR-_pI,59275
55
+ moleditpy-2.2.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
56
+ moleditpy-2.2.2.dist-info/entry_points.txt,sha256=yH1h9JjALhok1foXT3-hYrC4ufoZt8b7oiBcsdnGNNM,54
57
+ moleditpy-2.2.2.dist-info/top_level.txt,sha256=ARICrS4ihlPXqywlKl6o-oJa3Qz3gZRWu_VZsQ3_c44,10
58
+ moleditpy-2.2.2.dist-info/RECORD,,