MoleditPy 1.16.1a1__py3-none-any.whl → 1.16.1a3__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 +27 -26
- {moleditpy-1.16.1a1.dist-info → moleditpy-1.16.1a3.dist-info}/METADATA +1 -1
- {moleditpy-1.16.1a1.dist-info → moleditpy-1.16.1a3.dist-info}/RECORD +7 -7
- {moleditpy-1.16.1a1.dist-info → moleditpy-1.16.1a3.dist-info}/WHEEL +0 -0
- {moleditpy-1.16.1a1.dist-info → moleditpy-1.16.1a3.dist-info}/entry_points.txt +0 -0
- {moleditpy-1.16.1a1.dist-info → moleditpy-1.16.1a3.dist-info}/top_level.txt +0 -0
moleditpy/modules/constants.py
CHANGED
|
@@ -51,16 +51,15 @@ def detect_system_dark_mode():
|
|
|
51
51
|
macOS (defaults read), and GNOME/GTK-based Linux (gsettings). Return
|
|
52
52
|
None if no reliable information is available.
|
|
53
53
|
"""
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
pass
|
|
54
|
+
# Delegate detailed OS detection to `detect_system_theme` and map
|
|
55
|
+
# 'dark' -> True, 'light' -> False. This avoids duplicating the
|
|
56
|
+
# registry and subprocess calls in two places.
|
|
57
|
+
theme = detect_system_theme()
|
|
58
|
+
if theme == 'dark':
|
|
59
|
+
return True
|
|
60
|
+
if theme == 'light':
|
|
61
|
+
return False
|
|
62
|
+
return None
|
|
64
63
|
|
|
65
64
|
def detect_system_theme():
|
|
66
65
|
"""OSの優先テーマ設定を 'dark', 'light', または None として返す。
|
|
@@ -80,6 +79,8 @@ def detect_system_theme():
|
|
|
80
79
|
|
|
81
80
|
# macOS: 'defaults read -g AppleInterfaceStyle'
|
|
82
81
|
if platform.system() == 'Darwin':
|
|
82
|
+
return 'light'
|
|
83
|
+
'''
|
|
83
84
|
try:
|
|
84
85
|
# 'defaults read ...' が成功すればダークモード
|
|
85
86
|
p = subprocess.run(
|
|
@@ -95,6 +96,7 @@ def detect_system_theme():
|
|
|
95
96
|
except Exception:
|
|
96
97
|
# その他のエラー
|
|
97
98
|
pass
|
|
99
|
+
'''
|
|
98
100
|
|
|
99
101
|
# Linux / GNOME: try color-scheme gsetting; fallback to gtk-theme detection
|
|
100
102
|
if platform.system() == 'Linux':
|
|
@@ -103,16 +105,16 @@ def detect_system_theme():
|
|
|
103
105
|
if p.returncode == 0:
|
|
104
106
|
out = p.stdout.strip().strip("'\n ")
|
|
105
107
|
if 'dark' in out.lower():
|
|
106
|
-
return
|
|
108
|
+
return 'dark'
|
|
107
109
|
if 'light' in out.lower():
|
|
108
|
-
return
|
|
110
|
+
return 'light'
|
|
109
111
|
except Exception:
|
|
110
112
|
pass
|
|
111
113
|
|
|
112
114
|
try:
|
|
113
115
|
p = subprocess.run(['gsettings', 'get', 'org.gnome.desktop.interface', 'gtk-theme'], capture_output=True, text=True)
|
|
114
116
|
if p.returncode == 0 and '-dark' in p.stdout.lower():
|
|
115
|
-
return
|
|
117
|
+
return 'dark'
|
|
116
118
|
except Exception:
|
|
117
119
|
pass
|
|
118
120
|
except Exception:
|
|
@@ -236,8 +238,8 @@ class MainWindowMainInit(object):
|
|
|
236
238
|
self.atom_selection_mode = False
|
|
237
239
|
self.selected_atom_actors = []
|
|
238
240
|
|
|
239
|
-
# 3D編集用の原子選択状態
|
|
240
|
-
self.selected_atoms_3d = set()
|
|
241
|
+
# 3D編集用の原子選択状態 (3Dビューで選択された原子のインデックス)
|
|
242
|
+
self.selected_atoms_3d = set()
|
|
241
243
|
|
|
242
244
|
# 3D編集ダイアログの参照を保持
|
|
243
245
|
self.active_3d_dialogs = []
|
|
@@ -495,11 +497,10 @@ class MainWindowMainInit(object):
|
|
|
495
497
|
def _icon_foreground_color():
|
|
496
498
|
"""Return a QColor for icon foreground.
|
|
497
499
|
|
|
498
|
-
NOTE:
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
background. Priority: explicit setting in 'icon_foreground' -> OS
|
|
500
|
+
NOTE: choose icon foreground to contrast against the background
|
|
501
|
+
(i.e., white on dark backgrounds, black on light backgrounds). This
|
|
502
|
+
matches common conventions. Priority: explicit setting in
|
|
503
|
+
'icon_foreground' -> OS theme preference -> configured 3D
|
|
503
504
|
theme preference -> configured 3D background -> application palette.
|
|
504
505
|
"""
|
|
505
506
|
try:
|
|
@@ -514,9 +515,9 @@ class MainWindowMainInit(object):
|
|
|
514
515
|
# 1) Prefer the system/OS dark-mode preference if available.
|
|
515
516
|
try:
|
|
516
517
|
os_pref = detect_system_dark_mode()
|
|
517
|
-
#
|
|
518
|
+
# Standard mapping: dark -> white, light -> black
|
|
518
519
|
if os_pref is not None:
|
|
519
|
-
return QColor('#
|
|
520
|
+
return QColor('#FFFFFF') if os_pref else QColor('#000000')
|
|
520
521
|
except Exception:
|
|
521
522
|
pass
|
|
522
523
|
|
|
@@ -528,8 +529,8 @@ class MainWindowMainInit(object):
|
|
|
528
529
|
bg = QColor(bg_hex)
|
|
529
530
|
if bg.isValid():
|
|
530
531
|
lum = 0.2126 * bg.redF() + 0.7152 * bg.greenF() + 0.0722 * bg.blueF()
|
|
531
|
-
#
|
|
532
|
-
return QColor('#
|
|
532
|
+
# Return white on dark (lum<0.5), black on light
|
|
533
|
+
return QColor('#FFFFFF') if lum < 0.5 else QColor('#000000')
|
|
533
534
|
except Exception:
|
|
534
535
|
pass
|
|
535
536
|
|
|
@@ -538,8 +539,8 @@ class MainWindowMainInit(object):
|
|
|
538
539
|
# palette.window() returns a QBrush; call color()
|
|
539
540
|
window_bg = pal.window().color()
|
|
540
541
|
lum = 0.2126 * window_bg.redF() + 0.7152 * window_bg.greenF() + 0.0722 * window_bg.blueF()
|
|
541
|
-
#
|
|
542
|
-
return QColor('#
|
|
542
|
+
# Palette-based mapping: white on dark palette background
|
|
543
|
+
return QColor('#FFFFFF') if lum < 0.5 else QColor('#000000')
|
|
543
544
|
except Exception:
|
|
544
545
|
return QColor('#000000')
|
|
545
546
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: MoleditPy
|
|
3
|
-
Version: 1.16.
|
|
3
|
+
Version: 1.16.1a3
|
|
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
|
Project-URL: Homepage, https://github.com/HiroYokoyama/python_molecular_editor
|
|
@@ -12,7 +12,7 @@ moleditpy/modules/bond_item.py,sha256=zjQHa4vb8xhS9B7cYPRM0nak-f7lr5NQ1uAj_J78ah
|
|
|
12
12
|
moleditpy/modules/bond_length_dialog.py,sha256=xlx-bU3tVeLfShdVRw6_Geo5Gl9mztlIfTdT9tJ6WMA,14579
|
|
13
13
|
moleditpy/modules/calculation_worker.py,sha256=detE48BW08a2tvmKjMgz8zCShgARzsRH-ABmWrPcqZA,42055
|
|
14
14
|
moleditpy/modules/color_settings_dialog.py,sha256=h4AOKU8dCTenecI8zOM9GfnmKDm7jfe5C4Fa23Budvs,15205
|
|
15
|
-
moleditpy/modules/constants.py,sha256=
|
|
15
|
+
moleditpy/modules/constants.py,sha256=WjilRvqiXFWNenqWLdGAfr7iTPEvSp_nojw97fcgrso,4436
|
|
16
16
|
moleditpy/modules/constrained_optimization_dialog.py,sha256=MlWnPze0JJvnqmHx9n3qZWG_h-2kZymT0PQ6lALbCro,29861
|
|
17
17
|
moleditpy/modules/custom_interactor_style.py,sha256=K_uGM6FezY0kZ3zPqoR6f0nowG40ytt-L4UCAbPlwGM,38184
|
|
18
18
|
moleditpy/modules/custom_qt_interactor.py,sha256=6mzaVb3Mhp-4nryG5AraEvPPgBJpotrzVYwrpCAKmVo,2186
|
|
@@ -25,7 +25,7 @@ moleditpy/modules/main_window_dialog_manager.py,sha256=5WU6mFABB0aI4XCywP-cLFPkN
|
|
|
25
25
|
moleditpy/modules/main_window_edit_3d.py,sha256=FStBWVeDVAM2MoO-JCTjPM-G7iT8QZUHxsb0dS4MEAI,19553
|
|
26
26
|
moleditpy/modules/main_window_edit_actions.py,sha256=8tR0rYfgWYgdKTxBP4snzpxhiD2DExSKyf4jzSWb6sE,64598
|
|
27
27
|
moleditpy/modules/main_window_export.py,sha256=f_Z4qVYKBTe06lGTFqjd3deluUdkQvHhZYa81h7UpBM,34465
|
|
28
|
-
moleditpy/modules/main_window_main_init.py,sha256=
|
|
28
|
+
moleditpy/modules/main_window_main_init.py,sha256=xAstCr__601hkbb1IpqpQKUFTSS6quYe66sBOgqJjkc,75228
|
|
29
29
|
moleditpy/modules/main_window_molecular_parsers.py,sha256=8JAIgr1axzmJqX_Ue-Adkl8e_8B2Th9yutQbau8EEWQ,43401
|
|
30
30
|
moleditpy/modules/main_window_project_io.py,sha256=2ArkW23L4ahQIiktCCXlNsJphU0awO5YzJGihIJsn1c,17021
|
|
31
31
|
moleditpy/modules/main_window_string_importers.py,sha256=yrZblvPG840qnqVEJf__XVfNnWl_r3vt68Abfs2aYDQ,10674
|
|
@@ -47,8 +47,8 @@ moleditpy/modules/zoomable_view.py,sha256=ZgAmmWXIKtx7AhMjs6H6PCyvb_kpYuankf8Uxs
|
|
|
47
47
|
moleditpy/modules/assets/icon.icns,sha256=wD5R6-Vw7K662tVKhu2E1ImN0oUuyAP4youesEQsn9c,139863
|
|
48
48
|
moleditpy/modules/assets/icon.ico,sha256=RfgFcx7-dHY_2STdsOQCQziY5SNhDr3gPnjO6jzEDPI,147975
|
|
49
49
|
moleditpy/modules/assets/icon.png,sha256=kCFN1WacYIdy0GN6SFEbNA00ef39pCczBnFdkkBI8Bs,147110
|
|
50
|
-
moleditpy-1.16.
|
|
51
|
-
moleditpy-1.16.
|
|
52
|
-
moleditpy-1.16.
|
|
53
|
-
moleditpy-1.16.
|
|
54
|
-
moleditpy-1.16.
|
|
50
|
+
moleditpy-1.16.1a3.dist-info/METADATA,sha256=uul6fDdgfWCGAVMJbxbsp1fjag-asVpA2HM4TN-uM6g,17358
|
|
51
|
+
moleditpy-1.16.1a3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
52
|
+
moleditpy-1.16.1a3.dist-info/entry_points.txt,sha256=yH1h9JjALhok1foXT3-hYrC4ufoZt8b7oiBcsdnGNNM,54
|
|
53
|
+
moleditpy-1.16.1a3.dist-info/top_level.txt,sha256=ARICrS4ihlPXqywlKl6o-oJa3Qz3gZRWu_VZsQ3_c44,10
|
|
54
|
+
moleditpy-1.16.1a3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|