本文整理汇总了C++中dictionary::Ptr::progress方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr::progress方法的具体用法?C++ Ptr::progress怎么用?C++ Ptr::progress使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dictionary::Ptr
的用法示例。
在下文中一共展示了Ptr::progress方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: import
Dictionary::Ptr Dictionary::import( const QString& fileName )
{
QFile file( fileName );
if ( !file.open( QIODevice::ReadOnly | QIODevice::Text ) )
{
qDebug() << "Can't open " << fileName << ", err: " << file.errorString();
return Dictionary::Ptr();
}
qint64 total = file.size();
int numWords = 0;
int numTranslations = 0;
Lang src = QLocale::C;
Lang trg = QLocale::C;
QString source;
QStringList targets;
int ops = 0;
Database* db = Database::instance();
db->begin();
Dictionary::Ptr dict;
bool ok = true;
QTextStream in( &file );
while ( !in.atEnd() )
{
QString line = in.readLine();
if ( line.startsWith('#') )
{
if ( line.startsWith( "#INDEX_LANGUAGE" ) )
{
src = QLocale::Finnish; // getLang( line );
}
else if ( line.startsWith( "#CONTENTS_LANGUAGE" ) )
{
trg = QLocale::Russian; // getLang( line );
}
if ( src != QLocale::C && trg != QLocale::C )
{
dict = Dictionary::Ptr( new Dictionary( LangPair( src, trg ) ) );
ok = dict->open();
if ( !ok ) break;
}
}
else if ( !line.isEmpty() && !line[0].isSpace() )
{
source = line;
}
else if ( line.contains("[trn]") )
{
int start = line.indexOf("[trn]") + QString("[trn]").length();
int end = line.indexOf("[/trn]");
if ( end > start )
{
targets.append( line.mid( start, end - start ) );
}
}
else if ( line.trimmed().isEmpty() && dict )
{
int res = dict->addWord( source, targets );
if ( res < 0 )
{
db->rollback();
ok = false;
break;
}
numWords++;
numTranslations += res - 1;
ops++;
if ( ops % 100 == 0 )
{
if ( !db->commit() && !db->begin() )
{
ok = false;
break;
}
double prog = in.pos() * 100.0 / total;
emit dict->progress( prog );
QCoreApplication::processEvents();
}
source.clear();
targets.clear();
}
}
db->commit();
qDebug() << "Added" << numWords << "new words and" << numTranslations << "new translations";
return dict;
}