#include <QDebug>
#include <QFile>
-StarDialog::StarDialog(StarDictPlugin *plugin,
- StarDialogType type,
- QWidget *parent) :
- QDialog(parent) {
- this->plugin = plugin;
- this->type = type;
-
-
- cacheToolTip = tr("Optimize for quicker searches (may take some time)");
- accentsToolTip = tr("Strip accents (searching takes more time, but spelling doesn't have to be exact)");
-
- initializeUI();
-
- connect(cacheCheckBox, SIGNAL(toggled(bool)),
- this, SLOT(setGenerateCache(bool)));
-
- connect(accentsCheckBox, SIGNAL(toggled(bool)),
- this, SLOT(setAccents(bool)));
-
- #ifdef Q_WS_MAEMO_5
- connect(accentsInfoToolButton, SIGNAL(clicked()),
- this, SLOT(showAccentsInfo()));
-
- connect(cacheInfoToolButton, SIGNAL(clicked()),
- this, SLOT(showCacheInfo()));
- #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()));
}
mainVerticalLayout = new QVBoxLayout;
widget = new QWidget;
widget->setLayout(mainVerticalLayout);
-
infoLabel = new QLabel;
infoLabel->setWordWrap(true);
if(type == New) {
- setWindowTitle(tr("Add new XDXF dictionary"));
-
browseLayout = new QHBoxLayout;
browseButton = new QPushButton(tr("Browse"));
- 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->addWidget(browseButton, 0, Qt::AlignRight);
-
mainVerticalLayout->addLayout(browseLayout);
}
else {
- setWindowTitle(tr("XDXF Settings"));
-
+ setWindowTitle(tr("StarDict Settings"));
infoLabel->setText(tr("Plugin: ") + plugin->type().toUpper() +"\n" +
- tr("From: ") + plugin->langFrom() + "\n" +
- tr("To: ") + plugin->langTo() + "\n" +
- tr("Description: ") + plugin->name() + "\n" +
- plugin->infoNote());
+ tr("Book name: ") + plugin->settings()->value("bookname")
+ + "\n" +
+ tr("Version: ") + plugin->settings()->value("version") + "\n" +
+ tr("Word count: ") + plugin->settings()->value("wordcount")
+ + "\n" +
+ tr("Author: ") + plugin->settings()->value("author") + "\n" +
+ tr("E-mail: ") + plugin->settings()->value("email") + "\n" +
+ tr("Website: ") + plugin->settings()->value("website") + "\n" +
+ tr("Description: ") + plugin->settings()->value("description")
+ + "\n" +
+ tr("Date: ") + plugin->settings()->value("date"));
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
-
- cacheLayout = new QHBoxLayout;
- cacheCheckBox = new QCheckBox(tr("Optimize"));
- cacheCheckBox->setToolTip(cacheToolTip);
- cacheLayout->addWidget(cacheCheckBox);
- #ifdef Q_WS_MAEMO_5
- cacheInfoToolButton = new QToolButton;
- cacheInfoToolButton->setIcon(QIcon::fromTheme("general_information"));
- cacheLayout->addWidget(cacheInfoToolButton);
- #endif
-
- mainVerticalLayout->addLayout(cacheLayout);
- mainVerticalLayout->addLayout(accentsLayout);
-
-
- //load old setting if exists
- if(!plugin) {
- cacheCheckBox->setChecked(true);
- accentsCheckBox->setChecked(true);
- accentsCheckBox->setEnabled(false);
- _generateCache = true;
- _accents = true;
+ if(!plugin)
_dictionaryFilePath = "";
- }
- else if(plugin && plugin->settings()->value("cached") == "true") {
- cacheCheckBox->setChecked(true);
- accentsCheckBox->setChecked(true);
- accentsCheckBox->setEnabled(false);
- _generateCache = true;
- _accents = true;
- }
- else {
- cacheCheckBox->setChecked(false);
- _generateCache = false;
-
- 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);
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(".ifo Files (*.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");
- _settings->setValue("dictFileName", _dictName + ".dict");
- if (QFile::exists(_dictName + ".syn") == true) {
- _settings->setValue("synFileName", _dictName + ".syn");
- }
- }
- if(_generateCache)
- _settings->setValue("generateCache", "true");
- else
- _settings->setValue("generateCache", "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(_accents)
- _settings->setValue("strip_accents", "true");
- else
- _settings->setValue("strip_accents", "false");
+ 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;
}
QDialog::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 {
- //TODO: untar files (?)
- return false;
+ 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
-