#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()));
}
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" +
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);
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;
}
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
-