GameSentenceMiner 2.18.12__py3-none-any.whl → 2.18.14__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.
- GameSentenceMiner/ui/anki_confirmation.py +9 -20
- GameSentenceMiner/ui/screenshot_selector.py +6 -19
- GameSentenceMiner/web/database_api.py +2 -2
- {gamesentenceminer-2.18.12.dist-info → gamesentenceminer-2.18.14.dist-info}/METADATA +1 -1
- {gamesentenceminer-2.18.12.dist-info → gamesentenceminer-2.18.14.dist-info}/RECORD +9 -9
- {gamesentenceminer-2.18.12.dist-info → gamesentenceminer-2.18.14.dist-info}/WHEEL +0 -0
- {gamesentenceminer-2.18.12.dist-info → gamesentenceminer-2.18.14.dist-info}/entry_points.txt +0 -0
- {gamesentenceminer-2.18.12.dist-info → gamesentenceminer-2.18.14.dist-info}/licenses/LICENSE +0 -0
- {gamesentenceminer-2.18.12.dist-info → gamesentenceminer-2.18.14.dist-info}/top_level.txt +0 -0
|
@@ -46,28 +46,17 @@ class AnkiConfirmationDialog(tk.Toplevel):
|
|
|
46
46
|
# --- Create and lay out widgets ---
|
|
47
47
|
self._create_widgets(expression, sentence, screenshot_path, audio_path, translation)
|
|
48
48
|
|
|
49
|
-
# ---
|
|
49
|
+
# --- Center the dialog on screen ---
|
|
50
50
|
self.update_idletasks()
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
else:
|
|
61
|
-
self.transient(parent)
|
|
62
|
-
parent_x = parent.winfo_x()
|
|
63
|
-
parent_y = parent.winfo_y()
|
|
64
|
-
parent_width = parent.winfo_width()
|
|
65
|
-
parent_height = parent.winfo_height()
|
|
66
|
-
dialog_width = self.winfo_width()
|
|
67
|
-
dialog_height = self.winfo_height()
|
|
68
|
-
x = parent_x + (parent_width // 2) - (dialog_width // 2)
|
|
69
|
-
y = parent_y + (parent_height // 2) - (dialog_height // 2)
|
|
70
|
-
self.geometry(f'+{x}+{y}')
|
|
52
|
+
dialog_width = self.winfo_width()
|
|
53
|
+
dialog_height = self.winfo_height()
|
|
54
|
+
screen_width = self.winfo_screenwidth()
|
|
55
|
+
screen_height = self.winfo_screenheight()
|
|
56
|
+
|
|
57
|
+
x = (screen_width // 2) - (dialog_width // 2)
|
|
58
|
+
y = (screen_height // 2) - (dialog_height // 2)
|
|
59
|
+
self.geometry(f'+{x}+{y}')
|
|
71
60
|
|
|
72
61
|
self.protocol("WM_DELETE_WINDOW", self._on_cancel)
|
|
73
62
|
self.attributes('-topmost', True)
|
|
@@ -169,30 +169,17 @@ class ScreenshotSelectorDialog(tk.Toplevel):
|
|
|
169
169
|
|
|
170
170
|
def _center_window(self):
|
|
171
171
|
"""
|
|
172
|
-
|
|
173
|
-
otherwise centers on the screen.
|
|
172
|
+
Centers the dialog on the screen regardless of parent state.
|
|
174
173
|
"""
|
|
175
174
|
self.update_idletasks()
|
|
176
175
|
|
|
177
|
-
parent = self.parent_window
|
|
178
176
|
dialog_width = self.winfo_width()
|
|
179
177
|
dialog_height = self.winfo_height()
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
x = (screen_width // 2) - (dialog_width // 2)
|
|
186
|
-
y = (screen_height // 2) - (dialog_height // 2)
|
|
187
|
-
else:
|
|
188
|
-
# PARENT IS VISIBLE: Center relative to the parent window
|
|
189
|
-
self.transient(parent) # Associate dialog with its parent
|
|
190
|
-
parent_x = parent.winfo_x()
|
|
191
|
-
parent_y = parent.winfo_y()
|
|
192
|
-
parent_width = parent.winfo_width()
|
|
193
|
-
parent_height = parent.winfo_height()
|
|
194
|
-
x = parent_x + (parent_width // 2) - (dialog_width // 2)
|
|
195
|
-
y = parent_y + (parent_height // 2) - (dialog_height // 2)
|
|
178
|
+
screen_width = self.winfo_screenwidth()
|
|
179
|
+
screen_height = self.winfo_screenheight()
|
|
180
|
+
|
|
181
|
+
x = (screen_width // 2) - (dialog_width // 2)
|
|
182
|
+
y = (screen_height // 2) - (dialog_height // 2)
|
|
196
183
|
|
|
197
184
|
self.geometry(f'+{x}+{y}')
|
|
198
185
|
|
|
@@ -1089,7 +1089,7 @@ def register_database_api_routes(app):
|
|
|
1089
1089
|
color = colors[i % len(colors)]
|
|
1090
1090
|
|
|
1091
1091
|
datasets.append({
|
|
1092
|
-
"label": f"{game}
|
|
1092
|
+
"label": f"{game}",
|
|
1093
1093
|
"data": final_data[game]['lines'],
|
|
1094
1094
|
"borderColor": color,
|
|
1095
1095
|
"backgroundColor": f"{color}33", # Semi-transparent for fill
|
|
@@ -1098,7 +1098,7 @@ def register_database_api_routes(app):
|
|
|
1098
1098
|
"for": "Lines Received"
|
|
1099
1099
|
})
|
|
1100
1100
|
datasets.append({
|
|
1101
|
-
"label": f"{game}
|
|
1101
|
+
"label": f"{game}",
|
|
1102
1102
|
"data": final_data[game]['chars'],
|
|
1103
1103
|
"borderColor": color,
|
|
1104
1104
|
"backgroundColor": f"{color}33",
|
|
@@ -36,10 +36,10 @@ GameSentenceMiner/tools/furigana_filter_preview.py,sha256=DAT2-j6vSDHr9ufk6PiaLi
|
|
|
36
36
|
GameSentenceMiner/tools/ss_selector.py,sha256=ob2oJdiYreDMMau7CvsglpnhZ1CDnJqop3lV54-PjRo,4782
|
|
37
37
|
GameSentenceMiner/tools/window_transparency.py,sha256=GtbxbmZg0-UYPXhfHff-7IKZyY2DKe4B9GdyovfmpeM,8166
|
|
38
38
|
GameSentenceMiner/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
|
-
GameSentenceMiner/ui/anki_confirmation.py,sha256=
|
|
39
|
+
GameSentenceMiner/ui/anki_confirmation.py,sha256=GXNvujWSc3L8-tZ_93zdcEqJxAEBoh2oV5EP78Xcn7E,14685
|
|
40
40
|
GameSentenceMiner/ui/config_gui.py,sha256=pCZK7-PyllrNc7QmnT4MQ2rADkSC8y7YJcwz8UqjP48,155072
|
|
41
41
|
GameSentenceMiner/ui/furigana_filter_preview.py,sha256=DAT2-j6vSDHr9ufk6PiaLikEsbIp56B_OHIEeYLMwlk,17135
|
|
42
|
-
GameSentenceMiner/ui/screenshot_selector.py,sha256=
|
|
42
|
+
GameSentenceMiner/ui/screenshot_selector.py,sha256=7QvDhOMpA0ej8x_lYtu6fhmrWbM1GCg-dps3XVWwk1Q,8234
|
|
43
43
|
GameSentenceMiner/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
44
44
|
GameSentenceMiner/util/audio_player.py,sha256=-yFsf0qoTSS1ga5rCmEJZJGUSJzXCvfZHY3t0NxycDk,7896
|
|
45
45
|
GameSentenceMiner/util/configuration.py,sha256=8cXpeUJ4hOr8Qd4JPAx1qn_phBIFuKR5D-PybThu-Qk,48233
|
|
@@ -61,7 +61,7 @@ GameSentenceMiner/util/downloader/oneocr_dl.py,sha256=l3s9Z-x1b57GX048o5h-MVv0UT
|
|
|
61
61
|
GameSentenceMiner/util/win10toast/__init__.py,sha256=6TL2w6rzNmpJEp6_v2cAJP_7ExA3UsKzwdM08pNcVfE,5341
|
|
62
62
|
GameSentenceMiner/util/win10toast/__main__.py,sha256=5MYnBcFj8y_6Dyc1kiPd0_FsUuh4yl1cv5wsleU6V4w,668
|
|
63
63
|
GameSentenceMiner/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
|
-
GameSentenceMiner/web/database_api.py,sha256=
|
|
64
|
+
GameSentenceMiner/web/database_api.py,sha256=wedzDy_zpeJG1XvUw2fDWQ6InwRu6WfuVRdKWYUfvbE,84792
|
|
65
65
|
GameSentenceMiner/web/events.py,sha256=6Vyz5c9MdpMIa7Zqljqhap2XFQnAVYJ0CdQV64TSZsA,5119
|
|
66
66
|
GameSentenceMiner/web/gsm_websocket.py,sha256=B0VKpxmsRu0WRh5nFWlpDPBQ6-K2ed7TEIa0O6YWeoo,4166
|
|
67
67
|
GameSentenceMiner/web/service.py,sha256=6cgUmDgtp3ZKzuPFszowjPoq-BDtC1bS3ux6sykeaqo,6662
|
|
@@ -126,9 +126,9 @@ GameSentenceMiner/web/templates/components/kanji_grid/thousand_character_classic
|
|
|
126
126
|
GameSentenceMiner/web/templates/components/kanji_grid/wanikani_levels.json,sha256=8wjnnaYQqmho6t5tMxrIAc03512A2tYhQh5dfsQnfAM,11372
|
|
127
127
|
GameSentenceMiner/web/templates/components/kanji_grid/words_hk_frequency_list.json,sha256=wRkqZNPzz6DT9OTPHpXwfqW96Qb96stCQNNgOL-ZdKk,17535
|
|
128
128
|
GameSentenceMiner/wip/__init___.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
129
|
-
gamesentenceminer-2.18.
|
|
130
|
-
gamesentenceminer-2.18.
|
|
131
|
-
gamesentenceminer-2.18.
|
|
132
|
-
gamesentenceminer-2.18.
|
|
133
|
-
gamesentenceminer-2.18.
|
|
134
|
-
gamesentenceminer-2.18.
|
|
129
|
+
gamesentenceminer-2.18.14.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
130
|
+
gamesentenceminer-2.18.14.dist-info/METADATA,sha256=N8m_65tSgL6-jPIMS1pblttPwvsbu3sdNb-Uc6YDx5U,7488
|
|
131
|
+
gamesentenceminer-2.18.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
132
|
+
gamesentenceminer-2.18.14.dist-info/entry_points.txt,sha256=2APEP25DbfjSxGeHtwBstMH8mulVhLkqF_b9bqzU6vQ,65
|
|
133
|
+
gamesentenceminer-2.18.14.dist-info/top_level.txt,sha256=V1hUY6xVSyUEohb0uDoN4UIE6rUZ_JYx8yMyPGX4PgQ,18
|
|
134
|
+
gamesentenceminer-2.18.14.dist-info/RECORD,,
|
|
File without changes
|
{gamesentenceminer-2.18.12.dist-info → gamesentenceminer-2.18.14.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.12.dist-info → gamesentenceminer-2.18.14.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|