Add PSP game Category Lite setting for NoPayStation installs
This commit is contained in:
@@ -371,6 +371,8 @@ Connect a PSP over USB (or mount a UMD) and the **PSP Sync** tab detects it:
|
|||||||
can dump the disc image into your library.
|
can dump the disc image into your library.
|
||||||
- **Sync from Library** — copy discs from your library onto the PSP, optionally
|
- **Sync from Library** — copy discs from your library onto the PSP, optionally
|
||||||
into a Category Lite category (set in **Settings → PSP → ISO category**).
|
into a Category Lite category (set in **Settings → PSP → ISO category**).
|
||||||
|
NoPayStation PSP games install under `/PSP/GAME`, optionally nested in the
|
||||||
|
**PSP game category**; PS1 Classics use the **PS1 category**.
|
||||||
|
|
||||||
## Saves sync
|
## Saves sync
|
||||||
|
|
||||||
|
|||||||
+16
-6
@@ -1075,7 +1075,7 @@ class SettingsPage(QWidget):
|
|||||||
|
|
||||||
def __init__(self, games_dir, videos_dir, store_dir, ppsspp_dir, cloud_dir, ppsspp_exe,
|
def __init__(self, games_dir, videos_dir, store_dir, ppsspp_dir, cloud_dir, ppsspp_exe,
|
||||||
store_server_url, store_token, store_archive_id, store_archive_sig, store_archive_user,
|
store_server_url, store_token, store_archive_id, store_archive_sig, store_archive_user,
|
||||||
iso_category, ps1_category, ps1_dir, ps1_output_dir, ps1_base_pbp,
|
iso_category, ps1_category, psp_category, ps1_dir, ps1_output_dir, ps1_base_pbp,
|
||||||
nps_dir="", pkg2zip_path="", parent=None):
|
nps_dir="", pkg2zip_path="", parent=None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
outer = QVBoxLayout(self)
|
outer = QVBoxLayout(self)
|
||||||
@@ -1133,6 +1133,9 @@ class SettingsPage(QWidget):
|
|||||||
self.ps1_category_edit = QLineEdit(ps1_category)
|
self.ps1_category_edit = QLineEdit(ps1_category)
|
||||||
self.ps1_category_edit.setPlaceholderText("e.g. PS1 (blank = PSP/GAME root)")
|
self.ps1_category_edit.setPlaceholderText("e.g. PS1 (blank = PSP/GAME root)")
|
||||||
form.addRow("PS1 category (Category Lite):", self.ps1_category_edit)
|
form.addRow("PS1 category (Category Lite):", self.ps1_category_edit)
|
||||||
|
self.psp_category_edit = QLineEdit(psp_category)
|
||||||
|
self.psp_category_edit.setPlaceholderText("e.g. psp (blank = PSP/GAME root)")
|
||||||
|
form.addRow("PSP game category (Category Lite):", self.psp_category_edit)
|
||||||
self.tabs.addTab(page, "PSP")
|
self.tabs.addTab(page, "PSP")
|
||||||
|
|
||||||
# -- Cover sources ------------------------------------------------ #
|
# -- Cover sources ------------------------------------------------ #
|
||||||
@@ -1294,6 +1297,9 @@ class SettingsPage(QWidget):
|
|||||||
def ps1_category(self):
|
def ps1_category(self):
|
||||||
return self.ps1_category_edit.text().strip()
|
return self.ps1_category_edit.text().strip()
|
||||||
|
|
||||||
|
def psp_category(self):
|
||||||
|
return self.psp_category_edit.text().strip()
|
||||||
|
|
||||||
def ps1_dir(self):
|
def ps1_dir(self):
|
||||||
return self.ps1_edit.text().strip()
|
return self.ps1_edit.text().strip()
|
||||||
|
|
||||||
@@ -3878,6 +3884,7 @@ class MainWindow(QMainWindow):
|
|||||||
self._ppsspp_exe = str(self.settings.value("ppsspp_exe", "") or "")
|
self._ppsspp_exe = str(self.settings.value("ppsspp_exe", "") or "")
|
||||||
self._iso_category = str(self.settings.value("iso_category", "") or "")
|
self._iso_category = str(self.settings.value("iso_category", "") or "")
|
||||||
self._ps1_category = str(self.settings.value("ps1_category", "") or "")
|
self._ps1_category = str(self.settings.value("ps1_category", "") or "")
|
||||||
|
self._psp_category = str(self.settings.value("psp_category", "") or "")
|
||||||
self._ps1_dir = self._first_existing(config.PS1_ROOTS) or str(self.settings.value("ps1_dir", "") or "")
|
self._ps1_dir = self._first_existing(config.PS1_ROOTS) or str(self.settings.value("ps1_dir", "") or "")
|
||||||
self._ps1_output_dir = str(self.settings.value("ps1_output_dir", str(config.PS1_OUTPUT_DIR)) or "")
|
self._ps1_output_dir = str(self.settings.value("ps1_output_dir", str(config.PS1_OUTPUT_DIR)) or "")
|
||||||
self._ps1_base_pbp = str(self.settings.value("ps1_base_pbp", "") or "")
|
self._ps1_base_pbp = str(self.settings.value("ps1_base_pbp", "") or "")
|
||||||
@@ -4092,7 +4099,7 @@ class MainWindow(QMainWindow):
|
|||||||
self._ppsspp_saves_dir, self._cloud_saves_dir, self._ppsspp_exe,
|
self._ppsspp_saves_dir, self._cloud_saves_dir, self._ppsspp_exe,
|
||||||
self._store_server_url, self._store_token, self._store_archive_id,
|
self._store_server_url, self._store_token, self._store_archive_id,
|
||||||
self._store_archive_sig, self._store_archive_user, self._iso_category,
|
self._store_archive_sig, self._store_archive_user, self._iso_category,
|
||||||
self._ps1_category,
|
self._ps1_category, self._psp_category,
|
||||||
self._ps1_dir, self._ps1_output_dir, self._ps1_base_pbp,
|
self._ps1_dir, self._ps1_output_dir, self._ps1_base_pbp,
|
||||||
self._nps_dir, self._pkg2zip)
|
self._nps_dir, self._pkg2zip)
|
||||||
self.settings_page.saved.connect(self._on_settings_saved)
|
self.settings_page.saved.connect(self._on_settings_saved)
|
||||||
@@ -4125,6 +4132,7 @@ class MainWindow(QMainWindow):
|
|||||||
self._ppsspp_exe = self.settings_page.ppsspp_exe()
|
self._ppsspp_exe = self.settings_page.ppsspp_exe()
|
||||||
self._iso_category = self.settings_page.iso_category()
|
self._iso_category = self.settings_page.iso_category()
|
||||||
self._ps1_category = self.settings_page.ps1_category()
|
self._ps1_category = self.settings_page.ps1_category()
|
||||||
|
self._psp_category = self.settings_page.psp_category()
|
||||||
self._ps1_dir = self.settings_page.ps1_dir()
|
self._ps1_dir = self.settings_page.ps1_dir()
|
||||||
self._ps1_output_dir = self.settings_page.ps1_output_dir()
|
self._ps1_output_dir = self.settings_page.ps1_output_dir()
|
||||||
self._ps1_base_pbp = self.settings_page.ps1_base_pbp()
|
self._ps1_base_pbp = self.settings_page.ps1_base_pbp()
|
||||||
@@ -4142,6 +4150,7 @@ class MainWindow(QMainWindow):
|
|||||||
self.settings.setValue("ppsspp_exe", self._ppsspp_exe)
|
self.settings.setValue("ppsspp_exe", self._ppsspp_exe)
|
||||||
self.settings.setValue("iso_category", self._iso_category)
|
self.settings.setValue("iso_category", self._iso_category)
|
||||||
self.settings.setValue("ps1_category", self._ps1_category)
|
self.settings.setValue("ps1_category", self._ps1_category)
|
||||||
|
self.settings.setValue("psp_category", self._psp_category)
|
||||||
self._update_saves_locations()
|
self._update_saves_locations()
|
||||||
self._update_dir_status()
|
self._update_dir_status()
|
||||||
|
|
||||||
@@ -4575,15 +4584,16 @@ class MainWindow(QMainWindow):
|
|||||||
dest_dir = psp_root / "ISO" / "VIDEO"
|
dest_dir = psp_root / "ISO" / "VIDEO"
|
||||||
elif system == "ps1" or item.get("psp_kind") == "eboot":
|
elif system == "ps1" or item.get("psp_kind") == "eboot":
|
||||||
# PS1 EBOOTs and NoPayStation PSP games install as a whole game
|
# PS1 EBOOTs and NoPayStation PSP games install as a whole game
|
||||||
# folder under /PSP/GAME (optionally nested in a Category Lite folder
|
# folder under /PSP/GAME (optionally nested in a Category Lite
|
||||||
# for PS1).
|
# folder).
|
||||||
src_folder = Path(item["path"]).parent
|
src_folder = Path(item["path"]).parent
|
||||||
if system == "ps1":
|
if system == "ps1":
|
||||||
ps1_cat = "".join(c for c in (self._ps1_category or "").strip() if c not in "/\\")
|
ps1_cat = "".join(c for c in (self._ps1_category or "").strip() if c not in "/\\")
|
||||||
dest_dir = (psp_root / "PSP" / "GAME" / ps1_cat) if ps1_cat else (psp_root / "PSP" / "GAME")
|
dest_dir = (psp_root / "PSP" / "GAME" / ps1_cat) if ps1_cat else (psp_root / "PSP" / "GAME")
|
||||||
else:
|
else:
|
||||||
dest_dir = psp_root / "PSP" / "GAME"
|
psp_cat = "".join(c for c in (self._psp_category or "").strip() if c not in "/\\")
|
||||||
log.info("copying ps1 game to psp: %s -> %s", src_folder, dest_dir / src_folder.name)
|
dest_dir = (psp_root / "PSP" / "GAME" / psp_cat) if psp_cat else (psp_root / "PSP" / "GAME")
|
||||||
|
log.info("copying game folder to psp: %s -> %s", src_folder, dest_dir / src_folder.name)
|
||||||
self.queue.enqueue(transfers.TreeCopySource(str(src_folder)), dest_dir,
|
self.queue.enqueue(transfers.TreeCopySource(str(src_folder)), dest_dir,
|
||||||
{"dest_name": src_folder.name}, item.get("name") or src_folder.name,
|
{"dest_name": src_folder.name}, item.get("name") or src_folder.name,
|
||||||
kind="psp-install")
|
kind="psp-install")
|
||||||
|
|||||||
Reference in New Issue
Block a user