Merge branch 'stardict' of ssh://drop.maemo.org/git/mdictionary into stardict
[mdictionary] / src / plugins / stardict / StarDialog.cpp
index c3b6131..da50275 100644 (file)
 #include <QDebug>
 #include <QFile>
 
-StarDialog::StarDialog(StarDictPlugin *plugin,
-                       StarDialogType type,
-                       QWidget *parent) :
-    QDialog(parent) {
-    this->plugin = plugin;
-    this->type = type;
-
-    accentsToolTip = tr("Strip accents (searching takes more time, but spelling doesn't have to be exact)");
-
-    initializeUI();
-
-
-    connect(accentsCheckBox, SIGNAL(toggled(bool)),
-            this, SLOT(setAccents(bool)));
-
-    #ifdef Q_WS_MAEMO_5
-        connect(accentsInfoToolButton, SIGNAL(clicked()),
-
-    #endif
-
-    if(type == New) {
-        connect(browseButton, SIGNAL(clicked()),
-                this, SLOT(selectFile()));
-    }
-
-    connect(confirmButton, SIGNAL(clicked()),
-            this, SLOT(accept()));
-
+StarDialog::StarDialog(StarDictPlugin *plugin, StarDialogType type,
+                       QWidget *parent) : QDialog(parent) {
+   this->plugin = plugin;
+   this->type = type;
+   initializeUI();
+   if(type == New)
+       connect(browseButton, SIGNAL(clicked()),this, SLOT(selectFile()));
+   connect(confirmButton, SIGNAL(clicked()),this, SLOT(accept()));
 }
 
 
@@ -60,28 +40,24 @@ void StarDialog::initializeUI() {
     mainVerticalLayout = new QVBoxLayout;
     widget = new QWidget;
     widget->setLayout(mainVerticalLayout);
-
     infoLabel = new QLabel;
     infoLabel->setWordWrap(true);
     QVBoxLayout* buttonLayout = new QVBoxLayout;
 
     if(type == New) {
-        setWindowTitle(tr("Add new StarDict dictionary"));
-
         browseLayout = new QHBoxLayout;
         browseButton = new QPushButton(tr("Browse"));
         browseButton->setMaximumWidth(150);
         infoLabel->setText(tr("Dictionary file: not selected"));
-
+        setWindowTitle(tr("Add new StarDict dictionary"));
+        infoLabel->setText(tr("Dictionary file: not selected"));
         browseLayout->addWidget(infoLabel, 0, Qt::AlignLeft);
         browseLayout->addLayout(buttonLayout);
         browseLayout->addWidget(browseButton, 0, Qt::AlignRight);
-
         mainVerticalLayout->addLayout(browseLayout);
     }
     else {
         setWindowTitle(tr("StarDict Settings"));
-
         infoLabel->setText(tr("Plugin: ") + plugin->type().toUpper() +"\n" +
                 tr("Book name: ") + plugin->settings()->value("bookname") 
                         + "\n" +
@@ -97,51 +73,15 @@ void StarDialog::initializeUI() {
         mainVerticalLayout->addWidget(infoLabel);
     }
 
-    accentsLayout = new QHBoxLayout;
-    accentsCheckBox = new QCheckBox(tr("Strip accents"));
-    accentsCheckBox->setToolTip(accentsToolTip);
-    accentsLayout->addWidget(accentsCheckBox);
-    #ifdef Q_WS_MAEMO_5
-        accentsInfoToolButton = new QToolButton;
-        accentsInfoToolButton->setIcon(QIcon::fromTheme("general_information"));
-        accentsLayout->addWidget(accentsInfoToolButton);
-    #endif
-
-
-    mainVerticalLayout->addLayout(accentsLayout);
-
-
-    //load old setting if exists
-    if(!plugin) {
-        accentsCheckBox->setChecked(true);
-        accentsCheckBox->setEnabled(false);
-        _accents = true;
+    if(!plugin)
         _dictionaryFilePath = "";
-    }
-    else if(plugin && plugin->settings()->value("cached") == "true") {
-        accentsCheckBox->setChecked(true);
-        accentsCheckBox->setEnabled(false);
-        _accents = true;
-    }
-    else {
-        if(plugin->settings()->value("strip_accents") == "true") {
-            accentsCheckBox->setChecked(true);
-            _accents = true;
-        }
-        else {
-            accentsCheckBox->setChecked(false);
-            _accents = false;
-        }
-    }
 
     confirmButton = new QPushButton;
     mainVerticalLayout->addWidget(confirmButton);
-    if(type == New) {
+    if(type == New)
         confirmButton->setText(tr("Add"));
-    }
-    else {
+    else
         confirmButton->setText(tr("Save settings"));
-    }
 
     scrollArea = new QScrollArea;
     scrollArea->setWidget(widget);
@@ -170,68 +110,60 @@ void StarDialog::initializeUI() {
     scrollArea->setLineWidth(0);
     scrollArea->setMidLineWidth(0);
     scrollArea->setFrameStyle(QFrame::NoFrame);
-
-
-}
-
-
-void StarDialog::setAccents(bool accents) {
-    _accents = accents;
 }
 
 
 void StarDialog::selectFile() {
     QString fileName = QFileDialog::getOpenFileName(this,
-                                     tr("Select dictionary file"),
-                                     _dictionaryFilePath,
-                                     tr("StarDict Files (*.dict *dict.dz *.idx *idx.gz *.ifo)"),
-                                     NULL,
-                                     NULL);
-
+                     tr("Select dictionary file"),
+                     _dictionaryFilePath,
+                     tr("StarDict Files (*.dict *dict.dz *.idx *idx.gz *.ifo)"),
+                     NULL,
+                     NULL);
     if (!fileName.isEmpty()) {
         infoLabel->setText(tr("Dictionary file: %1").arg(fileName));
         _dictionaryFilePath = fileName;
-        if (_dictionaryFilePath.endsWith(".tar.bz2")){
-                _isCompressed = true;
-        }
-        else {
-                _isCompressed = false;
-        }
+        if (_dictionaryFilePath.endsWith(".tar.bz2"))
+            _isCompressed = true;
+        else
+            _isCompressed = false;
         updateGeometry();
     }
 }
 
+
 void StarDialog::saveSettings() {
     _settings = new Settings;
-    if(plugin) {
+
+    if(plugin)
         foreach(QString key, plugin->settings()->keys())
             _settings->setValue(key, plugin->settings()->value(key));
-    }
-    //else {
+
+    if(_settings->value("path")=="")
         _settings->setValue("path", _dictionaryFilePath);
+
+    if(_settings->value("ifoFileName")=="")
         _settings->setValue("ifoFileName", _dictName + ".ifo");
+
+    if(_settings->value("idxFileName")=="")
         _settings->setValue("idxFileName", _dictName + ".idx");
-        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");
-        }
-    //}
-    if(_accents)
-        _settings->setValue("strip_accents", "true");
-    else
-        _settings->setValue("strip_accents", "false");
+    if(_settings->value("dictFileName")==""){
+        if (QFile::exists(_dictName + ".dict.dz") == true)
+            _settings->setValue("dictFileName", _dictName + ".dict.dz");
+        else
+            _settings->setValue("dictFileName", _dictName + ".dict");
+    }
+
+    if(_settings->value("synFileName")=="")
+        if (QFile::exists(_dictName + ".syn") == true)
+            _settings->setValue("synFileName", _dictName + ".syn");
 }
 
+
 void StarDialog::accept() {
     if(type == New && _dictionaryFilePath.isEmpty()) {
         Q_EMIT notify(Notify::Warning, tr("File path is not set"));
-
         return;
     }
 
@@ -244,38 +176,34 @@ void StarDialog::accept() {
     QDialog::accept();
 }
 
+
 bool StarDialog::checkFiles() {
-        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;
+    if (!_isCompressed) {
+        if (_dictionaryFilePath.right(2) == "dz") {
+            _dictName = _dictionaryFilePath.left(_dictionaryFilePath.lastIndexOf("."));
+            _dictName = _dictName.left(_dictName.lastIndexOf("."));
         }
-        else {
-            //TODO: untar files (?)
+        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
+        return false;
 }
 
+
 Settings* StarDialog::getSettings() {
     return _settings;
 }
 
-#ifdef Q_WS_MAEMO_5
-    void StarDialog::showAccentsInfo() {
-        Q_EMIT notify(Notify::Warning, accentsToolTip);
-    }
-#endif
-