From 0e5995ae8adfb8ab80385d040b0ea19d3ea6759b Mon Sep 17 00:00:00 2001 From: Przemyslaw Wojtysiak Date: Wed, 6 Oct 2010 11:44:49 +0200 Subject: [PATCH 1/1] Repair choice StarDict dictionary files. --- src/plugins/stardict/StarDialog.cpp | 38 ++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/src/plugins/stardict/StarDialog.cpp b/src/plugins/stardict/StarDialog.cpp index e628b65..13168da 100644 --- a/src/plugins/stardict/StarDialog.cpp +++ b/src/plugins/stardict/StarDialog.cpp @@ -205,7 +205,13 @@ void StarDialog::saveSettings() { _settings->setValue("path", _dictionaryFilePath); _settings->setValue("ifoFileName", _dictName + ".ifo"); _settings->setValue("idxFileName", _dictName + ".idx"); - _settings->setValue("dictFileName", _dictName + ".dict"); + if (QFile::exists(_dictName + ".dict.dz") == true) { + _settings->setValue("dictFileName", _dictName + ".dict.dz"); + } + else { + _settings->setValue("dictFileName", _dictName + ".dict"); + } + if (QFile::exists(_dictName + ".syn") == true) { _settings->setValue("synFileName", _dictName + ".syn"); } @@ -233,19 +239,27 @@ void StarDialog::accept() { } bool StarDialog::checkFiles() { - if (!_isCompressed){ - _dictName = _dictionaryFilePath.left(_dictionaryFilePath.lastIndexOf(".")); - if (QFile::exists(_dictName + ".idx") == false && QFile::exists(_dictName + ".idx.gz") == false) { - return false; - } - if (QFile::exists(_dictName + ".dict") == false && QFile::exists(_dictName + ".dict.dz") == false) { - return false; - } - return true; + if (!_isCompressed) { + + if (_dictionaryFilePath.right(2) == "dz") { + _dictName = _dictionaryFilePath.left(_dictionaryFilePath.lastIndexOf(".")); + _dictName = _dictName.left(_dictName.lastIndexOf(".")); + } + else { + _dictName = _dictionaryFilePath.left(_dictionaryFilePath.lastIndexOf(".")); + } + + if (QFile::exists(_dictName + ".idx") == false && QFile::exists(_dictName + ".idx.gz") == false) { + return false; + } + if (QFile::exists(_dictName + ".dict") == false && QFile::exists(_dictName + ".dict.dz") == false) { + return false; + } + return true; } else { - //TODO: untar files (?) - return false; + //TODO: untar files (?) + return false; } } -- 1.7.9.5