Skip to content

Commit 02cbb97

Browse files
committed
Update screenshot folder validation
- Allow screenshots w/o a splits folder - Validate screenshot folder location is valid and exists - Move validate_before_parsing to split_parser.py
1 parent a6a1a03 commit 02cbb97

File tree

5 files changed

+34
-27
lines changed

5 files changed

+34
-27
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,8 @@ Not a developer? You can still help through the following methods:
289289
- <https://bugreports.qt.io/browse/QTBUG-114436>
290290
- <https://bugreports.qt.io/browse/QTBUG-114635>
291291
- <https://bugreports.qt.io/browse/PYSIDE-2542>
292-
- <https://github.com/astral-sh/ruff/issues?q=is%3Aissue+is%3Aopen+involves%3AAvasam>
293-
- <https://github.com/opencv/opencv/issues?q=is%3Aissue+is%3Aopen+involves%3AAvasam>
292+
- <https://github.com/astral-sh/ruff/issues?q=is%3Aissue+is%3Aopen+involves%3AAvasam+sort%3Areactions-%2B1-asc+>
293+
- <https://github.com/opencv/opencv/issues?q=is%3Aissue+is%3Aopen+involves%3AAvasam+sort%3Areactions-%2B1-asc+>
294294
- <https://github.com/opencv/opencv/issues/23906>
295295
- <https://github.com/pywinrt/python-winsdk/issues/11>
296296
- <https://github.com/microsoft/vscode/issues/40239>

src/AutoSplit.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
open_update_checker,
3434
view_help,
3535
)
36-
from region_selection import align_region, select_region, select_window, validate_before_parsing
37-
from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG, parse_and_validate_images
36+
from region_selection import align_region, select_region, select_window
37+
from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG, parse_and_validate_images, validate_before_parsing
3838
from user_profile import DEFAULT_PROFILE
3939
from utils import (
4040
AUTOSPLIT_VERSION,
@@ -381,18 +381,24 @@ def __update_height(self):
381381
self.settings_dict["capture_region"]["height"] = self.height_spinbox.value()
382382

383383
def __take_screenshot(self):
384-
if not validate_before_parsing(self, check_empty_directory=False):
384+
if not self.capture_method.check_selected_region_exists():
385+
error_messages.region()
386+
return
387+
388+
screenshot_directory = self.settings_dict["screenshot_directory"] or self.settings_dict["split_image_directory"]
389+
if not screenshot_directory:
390+
error_messages.split_image_directory()
391+
return
392+
if not os.path.exists(screenshot_directory):
393+
error_messages.invalid_directory(screenshot_directory)
385394
return
386395

387396
# Check if file exists and rename it if it does.
388397
# Below starts the file_name_number at #001 up to #999. After that it will go to 1000,
389398
# which is a problem, but I doubt anyone will get to 1000 split images...
390399
screenshot_index = 1
391400
while True:
392-
screenshot_path = os.path.join(
393-
self.settings_dict["screenshot_directory"] or self.settings_dict["split_image_directory"],
394-
f"{screenshot_index:03}_SplitImage.png",
395-
)
401+
screenshot_path = os.path.join(screenshot_directory, f"{screenshot_index:03}_SplitImage.png")
396402
if not os.path.exists(screenshot_path):
397403
break
398404
screenshot_index += 1

src/error_messages.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ def set_text_message(message: str, details: str = "", kill_button: str = "", acc
4343

4444

4545
def split_image_directory():
46-
set_text_message("No split image folder is selected.")
46+
set_text_message("No Split Image Folder is selected.")
4747

4848

49-
def split_image_directory_not_found():
50-
set_text_message("The Split Image Folder does not exist.")
49+
def invalid_directory(directory: str):
50+
set_text_message(f"Folder {directory!r} is invalid or does not exist.")
5151

5252

5353
def split_image_directory_empty():

src/region_selection.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -307,21 +307,6 @@ def __test_alignment(capture: MatLike, template: MatLike):
307307
return best_match, best_height, best_width, best_loc
308308

309309

310-
def validate_before_parsing(autosplit: "AutoSplit", show_error: bool = True, check_empty_directory: bool = True):
311-
error = None
312-
if not autosplit.settings_dict["split_image_directory"]:
313-
error = error_messages.split_image_directory
314-
elif not os.path.isdir(autosplit.settings_dict["split_image_directory"]):
315-
error = error_messages.split_image_directory_not_found
316-
elif check_empty_directory and not os.listdir(autosplit.settings_dict["split_image_directory"]):
317-
error = error_messages.split_image_directory_empty
318-
elif not autosplit.capture_method.check_selected_region_exists():
319-
error = error_messages.region
320-
if error and show_error:
321-
error()
322-
return not error
323-
324-
325310
class BaseSelectWidget(QtWidgets.QWidget):
326311
selection: Region | None = None
327312

src/split_parser.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,22 @@ def __pop_image_type(split_image: list[AutoSplitImage], image_type: ImageType):
173173
return None
174174

175175

176+
def validate_before_parsing(autosplit: "AutoSplit", show_error: bool = True):
177+
error = None
178+
split_image_directory = autosplit.settings_dict["split_image_directory"]
179+
if not split_image_directory:
180+
error = error_messages.split_image_directory
181+
elif not os.path.isdir(split_image_directory):
182+
error = partial(error_messages.invalid_directory, split_image_directory)
183+
elif not os.listdir(split_image_directory):
184+
error = error_messages.split_image_directory_empty
185+
elif not autosplit.capture_method.check_selected_region_exists():
186+
error = error_messages.region
187+
if error and show_error:
188+
error()
189+
return not error
190+
191+
176192
def parse_and_validate_images(autosplit: "AutoSplit"):
177193
# Get split images
178194
all_images = [

0 commit comments

Comments
 (0)