setWindowTitle(tr("StarDict Settings"));
infoLabel->setText(tr("Plugin: ") + plugin->type().toUpper() +"\n" +
- 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"));
+ 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);
}
if(keyword.exactMatch(fkey)) {
TranslationStarDict tran(fkey, infoNote(), this);
+ qDebug() << "off/len" << offset << len;
int id = translations.indexOf(tran);
if(id == -1) {
tran.add(offset, len);
-QString StarDictPlugin::search(QString key) {
- return "";
+QString StarDictPlugin::search(QString key, qint64 offset, qint32 len) {
+ if(!dictReader)
+ return "";
+
+ qDebug() << dictReader->readString(offset, len);
+ return dictReader->readString(offset, len);
}
disconnect(plugin, SIGNAL(notify(Notify::NotifyType,QString)),
this, SIGNAL(notify(Notify::NotifyType,QString)));
plugin->getDictionaryInfo();
+ plugin->dictReader = StarDictReaderFactory::
+ createReader(settings->value("dictFileName"));
return plugin;
}
else {
bool isAvailable() const;
//! \returns a description of a word given by a QString
- QString search(QString key);
+ QString search(QString key) {
+ return search(key, 0, 0);
+ }
+
+ /*! \return a description of a word given by a QString
+ \param offset offset of translation to be cut out
+ \param len lenght of translation to be cut out
+ */
+ QString search(QString key, qint64 offset, qint32 len);
//! \returns current plugin settings
Settings* settings();
Settings *_settings;
StarDictDialog* _dictDialog;
Settings* _ifoFileSettings;
+ StarDictReader * dictReader;
};
#endif // XDXFPLUGIN_H
#include "StarDictReaderFactory.h"
#include "CompressedReader.h"
#include "UncompressedReader.h"
+#include <QDebug>
StarDictReader* StarDictReaderFactory::createReader(QString filename) {
if(filename.endsWith(".gz", Qt::CaseInsensitive) ||
- filename.endsWith(".dz", Qt::CaseInsensitive)) {
+ filename.endsWith(".dz", Qt::CaseInsensitive)) {
+ qDebug() << "compressed";
return new CompressedReader(filename);
}
else {
+ qDebug() << "uncompressed";
return new UncompressedReader(filename);
}
}
_dictionaryInfo = base._dictionaryInfo;
lengths = base.lengths;
offsets = base.offsets;
+ starDictPlugin = base.starDictPlugin;
}
}
QString TranslationStarDict::toXml() const {
+ qDebug() << "asdf" << _dictionaryInfo;
QString result("");
if(!starDictPlugin)
return result;
-
- result=result + "<dict> <info path=\"/usr/share/mdictionary/xdxf.png\" ";
- if(isBookmark())
- result+= " bookmark=\"true\" > \n";
- else
- result+= " bookmark=\"false\" > \n";
- result+= _dictionaryInfo + "</info>" + starDictPlugin->search(_key) + "</dict>";
- return result.replace("&","&");
+ qDebug() << "asdf";
+ for(int i = 0; i < offsets.size(); i++) {
+ result=result + "<dict> <info path=\"/usr/share/mdictionary/xdxf.png\" ";
+ if(isBookmark())
+ result+= " bookmark=\"true\" > \n";
+ else
+ result+= " bookmark=\"false\" > \n";
+ qDebug() << "!!asdf";
+ result+= _dictionaryInfo + "</info>" +
+ starDictPlugin->search(_key, offsets.at(i), lengths.at(i))
+ + "</dict>";
+ qDebug() << "!!!!asdf";
+ }
+ return result.replace("&","&");
}
void TranslationStarDict::setKey(QString _key) {