feat(translate): keep translated subtitles next to the video so they load on reopen #14

Merged
tri merged 2 commits from feat/persist-translated-subs into main 2026-11-13 22:49:56 +07:00
Showing only changes of commit dbb2f07713 - Show all commits
+6 -2
View File
@@ -255,6 +255,12 @@ void TranslationService::applyGlossaryEdits(const GlossaryStore::Glossary &previ
if (m_lastTranslationPath.isEmpty() || !QFileInfo::exists(m_lastTranslationPath)) { if (m_lastTranslationPath.isEmpty() || !QFileInfo::exists(m_lastTranslationPath)) {
return; return;
} }
// A translation the user has edited since is theirs; leave it alone.
const QString registryFile = TranslationStore::registryFile();
TranslationStore::Registry registry = TranslationStore::load(registryFile);
if (!TranslationStore::isOwned(registry, m_lastTranslationPath)) {
return;
}
QFile file(m_lastTranslationPath); QFile file(m_lastTranslationPath);
if (!file.open(QIODevice::ReadOnly)) { if (!file.open(QIODevice::ReadOnly)) {
return; return;
@@ -307,8 +313,6 @@ void TranslationService::applyGlossaryEdits(const GlossaryStore::Glossary &previ
return; return;
} }
// Still QtPotato's file, so a later translation may replace it. // Still QtPotato's file, so a later translation may replace it.
const QString registryFile = TranslationStore::registryFile();
TranslationStore::Registry registry = TranslationStore::load(registryFile);
TranslationStore::recordRewrite(registry, m_lastTranslationPath, data); TranslationStore::recordRewrite(registry, m_lastTranslationPath, data);
TranslationStore::save(registryFile, registry); TranslationStore::save(registryFile, registry);
Q_EMIT translated(QUrl::fromLocalFile(m_lastTranslationPath), true); Q_EMIT translated(QUrl::fromLocalFile(m_lastTranslationPath), true);