void TarListingThread::processDir( const KTarDirectory *tardir, const TQString & root ) { TQStringList list = tardir->entries(); TQStringList::const_iterator itEnd = list.constEnd(); for ( TQStringList::const_iterator it = list.constBegin(); it != itEnd; ++it ) { const KTarEntry* tarEntry = tardir->entry((*it)); if (!tarEntry) continue; TQStringList col_list; TQString name; if (root.isEmpty() || root.isNull()) name = tarEntry->name(); else name = root + tarEntry->name(); if ( !tarEntry->isFile() ) name += '/'; col_list.append( name ); TQString perms = makeAccessString(tarEntry->permissions()); if (!tarEntry->isFile()) perms = "d" + perms; else if (!tarEntry->symlink().isEmpty()) perms = "l" + perms; else perms = "-" + perms; col_list.append(perms); col_list.append( tarEntry->user() ); col_list.append( tarEntry->group() ); TQString strSize = "0"; if (tarEntry->isFile()) { strSize.sprintf("%d", ((KTarFile *)tarEntry)->size()); } col_list.append(strSize); TQString timestamp = tarEntry->datetime().toString(Qt::ISODate); col_list.append(timestamp); col_list.append(tarEntry->symlink()); ListingEvent *ev = new ListingEvent( col_list ); tqApp->postEvent( m_parent, ev ); // if it's a directory, process it. // remember that name is root + / + the name of the directory if ( tarEntry->isDirectory() ) { processDir( static_cast<const KTarDirectory *>( tarEntry ), name ); } } }
void KSpellConfig::getAvailDictsAspell () { langfnames.clear(); dictcombo->clear(); langfnames.append(""); // Default dictcombo->insertItem (i18n("ASpell Default")); // Aspell now have /usr/lib/aspell as // ASPELL_DATADIR default. TQFileInfo dir ( ASPELL_DATADIR ); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/lib" KDELIBSUFF "/aspell-0.60"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/local/lib" KDELIBSUFF "/aspell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/share/aspell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/local/share/aspell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/pkg/lib/aspell"); if (!dir.exists() || !dir.isDir()) return; kdDebug(750) << "KSpellConfig::getAvailDictsAspell " << dir.filePath() << " " << dir.dirPath() << endl; const TQDir thedir (dir.filePath(),"*"); const TQStringList entryList = thedir.entryList(); kdDebug(750) << "KSpellConfig" << thedir.path() << "\n" << endl; kdDebug(750) << "entryList().count()=" << entryList.count() << endl; TQStringList::const_iterator entryListItr = entryList.constBegin(); const TQStringList::const_iterator entryListEnd = entryList.constEnd(); for ( ; entryListItr != entryListEnd; ++entryListItr) { TQString fname, lname, hname; fname = *entryListItr; // consider only simple dicts without '-' in the name // FIXME: may be this is wrong an the list should contain // all *.multi files too, to allow using special dictionaries // Well, KSpell2 has a better way to do this, but this code has to be // cleaned up somehow: since aspell 0.6 we have quite a lot of files in the // aspell dictionary that are not dictionaries. These must not be presented as "languages" // We only keep // *.rws: dictionary // *.multi: definition file to load several subdictionaries if ( !( fname.endsWith(".rws") || fname.endsWith(".multi") ) ) { // remove noise from the language list continue; } if (fname[0] != '.') { // remove .multi if (fname.endsWith(".multi")) fname.remove (fname.length()-6,6); // remove .rws if (fname.endsWith(".rws")) fname.remove (fname.length()-4,4); if (interpret (fname, lname, hname) && langfnames.first().isEmpty()) { // This one is the KDE default language // so place it first in the lists (overwrite "Default") langfnames.remove ( langfnames.begin() ); langfnames.prepend ( fname ); hname=i18n("default spelling dictionary" ,"Default - %1").arg(hname); dictcombo->changeItem (hname,0); } else { langfnames.append (fname); dictcombo->insertItem (hname); } } } }
void KSpellConfig::fillDicts( TQComboBox* box, TQStringList* dictionaries ) { langfnames.clear(); if ( box ) { if ( iclient == KS_CLIENT_ISPELL ) { box->clear(); langfnames.append(""); // Default box->insertItem( i18n("ISpell Default") ); // dictionary path TQFileInfo dir ("/usr/lib/ispell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/local/lib/ispell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/local/share/ispell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/share/ispell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/pkg/lib"); /* TODO get them all instead of just one of them. * If /usr/local/lib exists, it skips the rest if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/local/lib"); */ if (!dir.exists() || !dir.isDir()) return; kdDebug(750) << "KSpellConfig::getAvailDictsIspell " << dir.filePath() << " " << dir.dirPath() << endl; const TQDir thedir (dir.filePath(),"*.hash"); const TQStringList entryList = thedir.entryList(); kdDebug(750) << "KSpellConfig" << thedir.path() << "\n" << endl; kdDebug(750) << "entryList().count()=" << entryList.count() << endl; TQStringList::const_iterator entryListItr = entryList.constBegin(); const TQStringList::const_iterator entryListEnd = entryList.constEnd(); for ( ; entryListItr != entryListEnd; ++entryListItr) { TQString fname, lname, hname; fname = *entryListItr; // remove .hash if (fname.endsWith(".hash")) fname.remove (fname.length()-5,5); if (interpret (fname, lname, hname) && langfnames.first().isEmpty()) { // This one is the KDE default language // so place it first in the lists (overwrite "Default") langfnames.remove ( langfnames.begin() ); langfnames.prepend ( fname ); hname=i18n("default spelling dictionary" ,"Default - %1 [%2]").arg(hname).arg(fname); box->changeItem (hname,0); } else { langfnames.append (fname); hname=hname+" ["+fname+"]"; box->insertItem (hname); } } } else if ( iclient == KS_CLIENT_HSPELL ) { box->clear(); box->insertItem( i18n("Hebrew") ); langfnames.append(""); // Default sChangeEncoding( KS_E_CP1255 ); } else if ( iclient == KS_CLIENT_ZEMBEREK ) { box->clear(); box->insertItem( i18n("Turkish") ); langfnames.append(""); sChangeEncoding( KS_E_UTF8 ); } else { box->clear(); langfnames.append(""); // Default box->insertItem (i18n("ASpell Default")); // dictionary path // FIXME: use "aspell dump config" to find out the dict-dir TQFileInfo dir ("/usr/lib" KDELIBSUFF "/aspell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/lib" KDELIBSUFF "/aspell-0.60"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/local/lib" KDELIBSUFF "/aspell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/share/aspell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/local/share/aspell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/pkg/lib/aspell"); if (!dir.exists() || !dir.isDir()) return; kdDebug(750) << "KSpellConfig::getAvailDictsAspell " << dir.filePath() << " " << dir.dirPath() << endl; const TQDir thedir (dir.filePath(),"*"); const TQStringList entryList = thedir.entryList(); kdDebug(750) << "KSpellConfig" << thedir.path() << "\n" << endl; kdDebug(750) << "entryList().count()=" << entryList.count() << endl; TQStringList::const_iterator entryListItr = entryList.constBegin(); const TQStringList::const_iterator entryListEnd = entryList.constEnd(); for ( ; entryListItr != entryListEnd; ++entryListItr) { TQString fname, lname, hname; fname = *entryListItr; // consider only simple dicts without '-' in the name // FIXME: may be this is wrong an the list should contain // all *.multi files too, to allow using special dictionaries // Well, KSpell2 has a better way to do this, but this code has to be // cleaned up somehow: since aspell 0.6 we have quite a lot of files in the // aspell dictionary that are not dictionaries. These must not be presented as "languages" // We only keep // *.rws: dictionary // *.multi: definition file to load several subdictionaries if ( !( fname.endsWith(".rws") || fname.endsWith(".multi") ) ) { // remove noise from the language list continue; } if (fname[0] != '.') { // remove .multi if (fname.endsWith(".multi")) fname.remove (fname.length()-6,6); // remove .rws if (fname.endsWith(".rws")) fname.remove (fname.length()-4,4); if (interpret (fname, lname, hname) && langfnames.first().isEmpty()) { // This one is the KDE default language // so place it first in the lists (overwrite "Default") langfnames.remove ( langfnames.begin() ); langfnames.prepend ( fname ); hname=i18n("default spelling dictionary" ,"Default - %1").arg(hname); box->changeItem (hname,0); } else { langfnames.append (fname); box->insertItem (hname); } } } } int whichelement = langfnames.findIndex(qsdict); if ( whichelement >= 0 ) { box->setCurrentItem( whichelement ); } if ( dictionaries ) *dictionaries = langfnames; } }
void KSpellConfig::getAvailDictsIspell () { langfnames.clear(); dictcombo->clear(); langfnames.append(""); // Default dictcombo->insertItem( i18n("ISpell Default") ); // dictionary path TQFileInfo dir ("/usr/lib" KDELIBSUFF "/ispell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/local/lib" KDELIBSUFF "/ispell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/local/share/ispell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/share/ispell"); if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/pkg/lib"); /* TODO get them all instead of just one of them. * If /usr/local/lib exists, it skips the rest if (!dir.exists() || !dir.isDir()) dir.setFile ("/usr/local/lib"); */ if (!dir.exists() || !dir.isDir()) return; kdDebug(750) << "KSpellConfig::getAvailDictsIspell " << dir.filePath() << " " << dir.dirPath() << endl; const TQDir thedir (dir.filePath(),"*.hash"); const TQStringList entryList = thedir.entryList(); kdDebug(750) << "KSpellConfig" << thedir.path() << "\n" << endl; kdDebug(750) << "entryList().count()=" << entryList.count() << endl; TQStringList::const_iterator entryListItr = entryList.constBegin(); const TQStringList::const_iterator entryListEnd = entryList.constEnd(); for ( ; entryListItr != entryListEnd; ++entryListItr) { TQString fname, lname, hname; fname = *entryListItr; // remove .hash if (fname.endsWith(".hash")) fname.remove (fname.length()-5,5); if (interpret (fname, lname, hname) && langfnames.first().isEmpty()) { // This one is the KDE default language // so place it first in the lists (overwrite "Default") langfnames.remove ( langfnames.begin() ); langfnames.prepend ( fname ); hname=i18n("default spelling dictionary" ,"Default - %1 [%2]").arg(hname).arg(fname); dictcombo->changeItem (hname,0); } else { langfnames.append (fname); hname=hname+" ["+fname+"]"; dictcombo->insertItem (hname); } } }