/** This file is part of Kiten, a KDE Japanese Reference Tool... Copyright (C) 2001 Jason Katz-Brown This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA **/ #include #include #include #include #include #include "asyndeta.h" #include "dict.h" int Asyndeta::refCount = 0; Dict::Index *Asyndeta::index = 0; Asyndeta::Asyndeta() { refCount++; if (!index) { // create index index = new Dict::Index; } } Asyndeta::~Asyndeta() { refCount--; if (refCount == 0) { delete index; index = 0; } } Dict::Index *Asyndeta::retrieveIndex() { return index; } void Asyndeta::readKitenConfiguration() { TDEStandardDirs *dirs = TDEGlobal::dirs(); TDEConfig config(dirs->findResource("config", "kitenrc")); TQString globaledict = dirs->findResource("data", "kiten/edict"); TQString globalkanjidic = dirs->findResource("data", "kiten/kanjidic"); config.setGroup("edict"); bool edictUseGlobal = config.readBoolEntry("__useGlobal", true); TQStringList DictNameList = config.readListEntry("__NAMES"); TQStringList DictList; TQStringList::Iterator it; for (it = DictNameList.begin(); it != DictNameList.end(); ++it) DictList.append(config.readEntry(*it)); TQString personalDict(personalDictionaryLocation()); if (TQFile::exists(personalDict)) { DictList.prepend(personalDict); DictNameList.prepend(i18n("Personal")); } if (!globaledict.isNull() && edictUseGlobal) { DictList.prepend(globaledict); DictNameList.prepend("Edict"); } index->setDictList(DictList, DictNameList); config.setGroup("kanjidic"); bool kanjidicUseGlobal = config.readBoolEntry("__useGlobal", true); DictList.clear(); DictNameList = config.readListEntry("__NAMES"); for (it = DictNameList.begin(); it != DictNameList.end(); ++it) DictList.append(config.readEntry(*it)); if (!globalkanjidic.isNull() && kanjidicUseGlobal) { DictList.prepend(globalkanjidic); DictNameList.prepend("Kanjidic"); } index->setKanjiDictList(DictList, DictNameList); } TQString Asyndeta::personalDictionaryLocation() { return TDEGlobal::dirs()->saveLocation("data", "kiten/dictionaries/", true).append("personal"); }