fix: rename tab export-folder helper to avoid clobbering self._export_folder
self._export_folder is an existing str attribute (stashed during export), so the new _export_folder() method shadowed it and 'str' object is not callable crashed on startup at _update_next_label. Renamed to _tab_export_folder(). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4475,7 +4475,7 @@ class MainWindow(QMainWindow):
|
|||||||
return ""
|
return ""
|
||||||
return label
|
return label
|
||||||
|
|
||||||
def _export_folder(self) -> str:
|
def _tab_export_folder(self) -> str:
|
||||||
"""The export base folder, with the active tab name appended when enabled."""
|
"""The export base folder, with the active tab name appended when enabled."""
|
||||||
base = self._txt_folder.text()
|
base = self._txt_folder.text()
|
||||||
if getattr(self, "_chk_tab_folder", None) and self._chk_tab_folder.isChecked():
|
if getattr(self, "_chk_tab_folder", None) and self._chk_tab_folder.isChecked():
|
||||||
@@ -4485,7 +4485,7 @@ class MainWindow(QMainWindow):
|
|||||||
return base
|
return base
|
||||||
|
|
||||||
def _export_base_name(self) -> str:
|
def _export_base_name(self) -> str:
|
||||||
return os.path.basename(self._export_folder())
|
return os.path.basename(self._tab_export_folder())
|
||||||
|
|
||||||
def _on_tab_folder_toggled(self, _checked: bool = False) -> None:
|
def _on_tab_folder_toggled(self, _checked: bool = False) -> None:
|
||||||
if self._file_path:
|
if self._file_path:
|
||||||
@@ -4996,7 +4996,7 @@ class MainWindow(QMainWindow):
|
|||||||
# Run DB fuzzy match off the main thread — can be slow on large databases.
|
# Run DB fuzzy match off the main thread — can be slow on large databases.
|
||||||
filename = os.path.basename(self._file_path)
|
filename = os.path.basename(self._file_path)
|
||||||
self._db_worker = _DBWorker(self._db, filename, self._profile,
|
self._db_worker = _DBWorker(self._db, filename, self._profile,
|
||||||
self._export_folder())
|
self._tab_export_folder())
|
||||||
self._db_worker.result.connect(self._on_db_result)
|
self._db_worker.result.connect(self._on_db_result)
|
||||||
self._db_worker.start()
|
self._db_worker.start()
|
||||||
|
|
||||||
@@ -5013,7 +5013,7 @@ class MainWindow(QMainWindow):
|
|||||||
|
|
||||||
def _refresh_markers(self) -> None:
|
def _refresh_markers(self) -> None:
|
||||||
filename = os.path.basename(self._file_path)
|
filename = os.path.basename(self._file_path)
|
||||||
folder = self._export_folder()
|
folder = self._tab_export_folder()
|
||||||
markers = self._db.get_markers(filename, self._profile, folder)
|
markers = self._db.get_markers(filename, self._profile, folder)
|
||||||
self._timeline.set_markers(markers)
|
self._timeline.set_markers(markers)
|
||||||
others = self._db.get_other_folder_markers(
|
others = self._db.get_other_folder_markers(
|
||||||
@@ -5025,7 +5025,7 @@ class MainWindow(QMainWindow):
|
|||||||
self._timeline.set_other_markers({})
|
self._timeline.set_other_markers({})
|
||||||
return
|
return
|
||||||
filename = os.path.basename(self._file_path)
|
filename = os.path.basename(self._file_path)
|
||||||
folder = self._export_folder()
|
folder = self._tab_export_folder()
|
||||||
others = self._db.get_other_folder_markers(
|
others = self._db.get_other_folder_markers(
|
||||||
filename, self._profile, folder)
|
filename, self._profile, folder)
|
||||||
self._timeline.set_other_markers(others)
|
self._timeline.set_other_markers(others)
|
||||||
@@ -5065,7 +5065,7 @@ class MainWindow(QMainWindow):
|
|||||||
if not deleted:
|
if not deleted:
|
||||||
self._db.delete_by_output_path(output_path)
|
self._db.delete_by_output_path(output_path)
|
||||||
deleted = [output_path]
|
deleted = [output_path]
|
||||||
folder = self._export_folder()
|
folder = self._tab_export_folder()
|
||||||
for path in deleted:
|
for path in deleted:
|
||||||
if os.path.isdir(path):
|
if os.path.isdir(path):
|
||||||
shutil.rmtree(path, ignore_errors=True)
|
shutil.rmtree(path, ignore_errors=True)
|
||||||
@@ -5095,7 +5095,7 @@ class MainWindow(QMainWindow):
|
|||||||
return
|
return
|
||||||
filename = os.path.basename(self._file_path)
|
filename = os.path.basename(self._file_path)
|
||||||
markers = self._db.get_markers(filename, self._profile)
|
markers = self._db.get_markers(filename, self._profile)
|
||||||
folder = self._export_folder()
|
folder = self._tab_export_folder()
|
||||||
total_files = 0
|
total_files = 0
|
||||||
for _, _, output_path, _ in markers:
|
for _, _, output_path, _ in markers:
|
||||||
group = self._db.delete_group(output_path)
|
group = self._db.delete_group(output_path)
|
||||||
@@ -5235,7 +5235,7 @@ class MainWindow(QMainWindow):
|
|||||||
if reply != QMessageBox.StandardButton.Yes:
|
if reply != QMessageBox.StandardButton.Yes:
|
||||||
return
|
return
|
||||||
# Delete all group clips from disk
|
# Delete all group clips from disk
|
||||||
folder = self._export_folder()
|
folder = self._tab_export_folder()
|
||||||
for path in all_paths:
|
for path in all_paths:
|
||||||
if os.path.isdir(path):
|
if os.path.isdir(path):
|
||||||
shutil.rmtree(path, ignore_errors=True)
|
shutil.rmtree(path, ignore_errors=True)
|
||||||
@@ -6007,7 +6007,7 @@ class MainWindow(QMainWindow):
|
|||||||
)
|
)
|
||||||
if reply != QMessageBox.StandardButton.Yes:
|
if reply != QMessageBox.StandardButton.Yes:
|
||||||
return
|
return
|
||||||
folder = self._export_folder() or ""
|
folder = self._tab_export_folder() or ""
|
||||||
vid_dirs: set[str] = set()
|
vid_dirs: set[str] = set()
|
||||||
for p in all_paths:
|
for p in all_paths:
|
||||||
if os.path.isdir(p):
|
if os.path.isdir(p):
|
||||||
@@ -6430,7 +6430,7 @@ class MainWindow(QMainWindow):
|
|||||||
self._btn_auto_export.setEnabled(True)
|
self._btn_auto_export.setEnabled(True)
|
||||||
return
|
return
|
||||||
|
|
||||||
folder = self._export_folder()
|
folder = self._tab_export_folder()
|
||||||
name = self._txt_name.text() or "clip"
|
name = self._txt_name.text() or "clip"
|
||||||
fmt = self._cmb_format.currentText()
|
fmt = self._cmb_format.currentText()
|
||||||
image_sequence = fmt == "WebP sequence"
|
image_sequence = fmt == "WebP sequence"
|
||||||
@@ -6646,7 +6646,7 @@ class MainWindow(QMainWindow):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def _update_next_label(self):
|
def _update_next_label(self):
|
||||||
folder = self._export_folder()
|
folder = self._tab_export_folder()
|
||||||
name = self._txt_name.text() or "clip"
|
name = self._txt_name.text() or "clip"
|
||||||
vid_name = self._get_vid_folder(folder)
|
vid_name = self._get_vid_folder(folder)
|
||||||
vid_folder = os.path.join(folder, vid_name)
|
vid_folder = os.path.join(folder, vid_name)
|
||||||
@@ -6686,7 +6686,7 @@ class MainWindow(QMainWindow):
|
|||||||
|
|
||||||
fmt = self._cmb_format.currentText()
|
fmt = self._cmb_format.currentText()
|
||||||
image_sequence = fmt == "WebP sequence"
|
image_sequence = fmt == "WebP sequence"
|
||||||
folder = self._export_folder()
|
folder = self._tab_export_folder()
|
||||||
if folder_suffix:
|
if folder_suffix:
|
||||||
folder = folder.rstrip(os.sep) + "_" + folder_suffix
|
folder = folder.rstrip(os.sep) + "_" + folder_suffix
|
||||||
os.makedirs(folder, exist_ok=True)
|
os.makedirs(folder, exist_ok=True)
|
||||||
@@ -6952,7 +6952,7 @@ class MainWindow(QMainWindow):
|
|||||||
if not groups:
|
if not groups:
|
||||||
self._show_status("No manual exports to re-export")
|
self._show_status("No manual exports to re-export")
|
||||||
return
|
return
|
||||||
folder = self._export_folder()
|
folder = self._tab_export_folder()
|
||||||
spread = self._spn_spread.value()
|
spread = self._spn_spread.value()
|
||||||
|
|
||||||
clip_dur = self._clip_dur
|
clip_dur = self._clip_dur
|
||||||
|
|||||||
Reference in New Issue
Block a user