MoleditPy 2.4.8__py3-none-any.whl → 2.5.0__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.
- moleditpy/modules/constants.py +1 -1
- moleditpy/modules/main_window_main_init.py +51 -1
- {moleditpy-2.4.8.dist-info → moleditpy-2.5.0.dist-info}/METADATA +1 -1
- {moleditpy-2.4.8.dist-info → moleditpy-2.5.0.dist-info}/RECORD +8 -8
- {moleditpy-2.4.8.dist-info → moleditpy-2.5.0.dist-info}/WHEEL +0 -0
- {moleditpy-2.4.8.dist-info → moleditpy-2.5.0.dist-info}/entry_points.txt +0 -0
- {moleditpy-2.4.8.dist-info → moleditpy-2.5.0.dist-info}/licenses/LICENSE +0 -0
- {moleditpy-2.4.8.dist-info → moleditpy-2.5.0.dist-info}/top_level.txt +0 -0
moleditpy/modules/constants.py
CHANGED
|
@@ -499,6 +499,7 @@ class MainWindowMainInit(object):
|
|
|
499
499
|
self.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.plugin_toolbar)
|
|
500
500
|
self.plugin_toolbar.hide()
|
|
501
501
|
|
|
502
|
+
|
|
502
503
|
# Initialize menu bar (and populate toolbars) AFTER all toolbars are created
|
|
503
504
|
self.init_menu_bar()
|
|
504
505
|
|
|
@@ -799,7 +800,7 @@ class MainWindowMainInit(object):
|
|
|
799
800
|
toolbar.addAction(self.edit_3d_action)
|
|
800
801
|
|
|
801
802
|
# 3Dスタイル変更ボタンとメニューを作成
|
|
802
|
-
|
|
803
|
+
# Reverted to original location and added immediate update for plugins
|
|
803
804
|
self.style_button = QToolButton()
|
|
804
805
|
self.style_button.setText("3D Style")
|
|
805
806
|
self.style_button.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup)
|
|
@@ -836,6 +837,22 @@ class MainWindowMainInit(object):
|
|
|
836
837
|
style_menu.addAction(stick_action)
|
|
837
838
|
style_group.addAction(stick_action)
|
|
838
839
|
|
|
840
|
+
# --- Fix for Custom 3D Styles from Plugins ---
|
|
841
|
+
# Since style_button is created after plugins are discovered/menus init,
|
|
842
|
+
# we need to manually trigger the update/injection of custom styles here.
|
|
843
|
+
if self.plugin_manager and self.plugin_manager.custom_3d_styles:
|
|
844
|
+
# Add separator
|
|
845
|
+
style_menu.addSeparator()
|
|
846
|
+
|
|
847
|
+
for style_name in self.plugin_manager.custom_3d_styles:
|
|
848
|
+
# Avoid duplicates just in case
|
|
849
|
+
if not any(a.text() == style_name for a in style_menu.actions()):
|
|
850
|
+
action = QAction(style_name, self, checkable=True)
|
|
851
|
+
action.triggered.connect(lambda checked=False, s=style_name: self.set_3d_style(s))
|
|
852
|
+
style_menu.addAction(action)
|
|
853
|
+
style_group.addAction(action)
|
|
854
|
+
|
|
855
|
+
|
|
839
856
|
quit_shortcut = QShortcut(QKeySequence("Ctrl+Q"), self)
|
|
840
857
|
quit_shortcut.activated.connect(self.close)
|
|
841
858
|
|
|
@@ -1838,6 +1855,39 @@ class MainWindowMainInit(object):
|
|
|
1838
1855
|
# Add dynamic plugin actions (Legacy + New Registration)
|
|
1839
1856
|
plugins = self.plugin_manager.discover_plugins(self)
|
|
1840
1857
|
|
|
1858
|
+
# --- Update 3D Style Menu with discovered styles ---
|
|
1859
|
+
# This menu is built in init_ui (before plugins are discovered), so we must update it here.
|
|
1860
|
+
if hasattr(self, 'style_button') and self.style_button.menu():
|
|
1861
|
+
style_menu = self.style_button.menu()
|
|
1862
|
+
|
|
1863
|
+
# Find the exclusive ActionGroup from an existing action (e.g. Ball & Stick)
|
|
1864
|
+
style_group = None
|
|
1865
|
+
for action in style_menu.actions():
|
|
1866
|
+
if action.actionGroup():
|
|
1867
|
+
style_group = action.actionGroup()
|
|
1868
|
+
break
|
|
1869
|
+
|
|
1870
|
+
if style_group and self.plugin_manager.custom_3d_styles:
|
|
1871
|
+
# Add separator if not present at end
|
|
1872
|
+
actions = style_menu.actions()
|
|
1873
|
+
if actions and not actions[-1].isSeparator():
|
|
1874
|
+
style_menu.addSeparator()
|
|
1875
|
+
|
|
1876
|
+
for style_name in self.plugin_manager.custom_3d_styles:
|
|
1877
|
+
# Check if already added to avoid duplicates
|
|
1878
|
+
exists = False
|
|
1879
|
+
for act in style_menu.actions():
|
|
1880
|
+
if act.text() == style_name:
|
|
1881
|
+
exists = True
|
|
1882
|
+
break
|
|
1883
|
+
|
|
1884
|
+
if not exists:
|
|
1885
|
+
action = QAction(style_name, self, checkable=True)
|
|
1886
|
+
# Use default arg to capture loop variable
|
|
1887
|
+
action.triggered.connect(lambda checked=False, s=style_name: self.set_3d_style(s))
|
|
1888
|
+
style_menu.addAction(action)
|
|
1889
|
+
style_group.addAction(action)
|
|
1890
|
+
|
|
1841
1891
|
# 1. Add Registered Menu Actions (New System)
|
|
1842
1892
|
if self.plugin_manager.menu_actions:
|
|
1843
1893
|
for action_def in self.plugin_manager.menu_actions:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: MoleditPy
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5.0
|
|
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=21oX1sR5kpY-MlfUsmekkV6XATVwIAhmsH1UMwV34r
|
|
|
12
12
|
moleditpy/modules/bond_length_dialog.py,sha256=6bFPGssnqlgINuqpxLv-OhjMH3_hspnaH8QtorAyu2M,14782
|
|
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=
|
|
15
|
+
moleditpy/modules/constants.py,sha256=3xT6rZMT_ArPpTc6QOYNLYaipq_C7KX7_qixiWJHPxI,4702
|
|
16
16
|
moleditpy/modules/constrained_optimization_dialog.py,sha256=REsk4ePsqNmAGPMTS_jckeM7jexrU3krwun8sKqKUCs,30062
|
|
17
17
|
moleditpy/modules/custom_interactor_style.py,sha256=LDNODMJoNHGe1AUSrvqv6PdeJm-hpPmSpWINppnJLt0,38942
|
|
18
18
|
moleditpy/modules/custom_qt_interactor.py,sha256=vCZsDfRO-FtphD5cTP7Ps-5rpHZMIGloaoe6EaKzrsw,4139
|
|
@@ -25,7 +25,7 @@ moleditpy/modules/main_window_dialog_manager.py,sha256=QR96LqHAPSOShXbc9cK-Ffq8a
|
|
|
25
25
|
moleditpy/modules/main_window_edit_3d.py,sha256=CUArB5wcsgq1C7LygAEC6URlbnn4RhRYDa5n-Y-etWI,19731
|
|
26
26
|
moleditpy/modules/main_window_edit_actions.py,sha256=drVXRFpSOhILYfApcSro9zssnDw-a8F7wNcfQ3xQukw,69412
|
|
27
27
|
moleditpy/modules/main_window_export.py,sha256=_Vd7MeP_xaLWDYDm3-ZIZiPuAXhP-AvrQbi7Yx3Jy3c,43020
|
|
28
|
-
moleditpy/modules/main_window_main_init.py,sha256=
|
|
28
|
+
moleditpy/modules/main_window_main_init.py,sha256=kvNuFxUinCPfBZ_qKE9iSybNFeN-onfmn_ER18_hnVI,97531
|
|
29
29
|
moleditpy/modules/main_window_molecular_parsers.py,sha256=KR6vzuqc3nutOcorpYr0QOyX3MFBcxTwDhZX96VgJ9Q,48291
|
|
30
30
|
moleditpy/modules/main_window_project_io.py,sha256=TWwtuKDuvgcvPZ9IGmW8r1EJJOrgxrIJRnxe_f4C1oM,17149
|
|
31
31
|
moleditpy/modules/main_window_string_importers.py,sha256=v47wOd4RtjKYcF-aLP-mogGGdYTpTEo3dDyAu79_5MM,10782
|
|
@@ -51,9 +51,9 @@ moleditpy/modules/assets/file_icon.ico,sha256=yyVj084A7HuMNbV073cE_Ag3Ne405qgOP3
|
|
|
51
51
|
moleditpy/modules/assets/icon.icns,sha256=wD5R6-Vw7K662tVKhu2E1ImN0oUuyAP4youesEQsn9c,139863
|
|
52
52
|
moleditpy/modules/assets/icon.ico,sha256=RfgFcx7-dHY_2STdsOQCQziY5SNhDr3gPnjO6jzEDPI,147975
|
|
53
53
|
moleditpy/modules/assets/icon.png,sha256=kCFN1WacYIdy0GN6SFEbNA00ef39pCczBnFdkkBI8Bs,147110
|
|
54
|
-
moleditpy-2.
|
|
55
|
-
moleditpy-2.
|
|
56
|
-
moleditpy-2.
|
|
57
|
-
moleditpy-2.
|
|
58
|
-
moleditpy-2.
|
|
59
|
-
moleditpy-2.
|
|
54
|
+
moleditpy-2.5.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
55
|
+
moleditpy-2.5.0.dist-info/METADATA,sha256=K5mfX2IQq3hwJyr_bc1c-q0XcWIfeHCWOYvVnkV3yHE,60629
|
|
56
|
+
moleditpy-2.5.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
57
|
+
moleditpy-2.5.0.dist-info/entry_points.txt,sha256=yH1h9JjALhok1foXT3-hYrC4ufoZt8b7oiBcsdnGNNM,54
|
|
58
|
+
moleditpy-2.5.0.dist-info/top_level.txt,sha256=ARICrS4ihlPXqywlKl6o-oJa3Qz3gZRWu_VZsQ3_c44,10
|
|
59
|
+
moleditpy-2.5.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|