author | llornkcor <llornkcor> | 2005-08-24 20:22:10 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2005-08-24 20:22:10 (UTC) |
commit | 65edeafe2dc8689dce7c2ce94e954933b393dcf0 (patch) (side-by-side diff) | |
tree | 17d0986ef0bce73f44a4b9900466fcc533954814 /noncore/apps/opie-gutenbrowser/LibraryDialog.cpp | |
parent | f0bb6c410f19d502cf563254d95158617a32b94e (diff) | |
download | opie-65edeafe2dc8689dce7c2ce94e954933b393dcf0.zip opie-65edeafe2dc8689dce7c2ce94e954933b393dcf0.tar.gz opie-65edeafe2dc8689dce7c2ce94e954933b393dcf0.tar.bz2 |
optimize search. fix other things
Diffstat (limited to 'noncore/apps/opie-gutenbrowser/LibraryDialog.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/apps/opie-gutenbrowser/LibraryDialog.cpp | 213 |
1 files changed, 98 insertions, 115 deletions
diff --git a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp index 58babe9..9858188 100644 --- a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp +++ b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp @@ -138,3 +138,5 @@ void LibraryDialog::Library() { IDontKnowWhy = ""; - if ( indexLib.open( IO_ReadOnly) ) { // file opened successfully + system("date"); + if ( indexLib.open( IO_ReadOnly) ) { +// file opened successfully QTextStream indexStream( &indexLib ); @@ -143,12 +145,39 @@ void LibraryDialog::Library() { + bool okToRead = false; while ( !indexStream.eof() ) { - indexLine = indexStream.readLine(); - if ( indexLine != "") { + if(indexLine == "<==Start GUTINDEX.ALL listings==>") + okToRead = true; + if(indexLine == "<==End of GUTINDEX.ALL==>") { + okToRead = false; + indexLib.at(indexLib.size()); + } + + if(okToRead) { + QStringList token = QStringList::split(' ', indexLine); + int textNumber; + if(( textNumber = token.last().toInt() )) + if(textNumber > 10001) { +// qWarning("Last "+token.last()); +// newer files with numbers > 100000 have new dir structure and need to be parsed differently.. + if(textNumber < 10626) + year = "2003"; + else if(textNumber >= 10626 && textNumber < 14600) + year = "2004"; + else if(textNumber >= 14600) + year = "2005"; - if( (indexLine.mid(4,4)).toInt() ) { + file = token.last(); + title = indexLine.mid(0,72); - year = indexLine.mid(4,4); + addItems(); //author and qlistview + // qDebug("file number is " + number + " title is " + title ); + + } else { //end new etexts + + if(token[1].toInt() && token[1].toInt() > 1969) { + year = token[1]; file = indexLine.mid(60,12); - if(file.left(1).find("[",0,TRUE) != -1) + + if(file.left(1).find("[",0,TRUE) != -1) { file.remove(1,1); @@ -161,4 +190,2 @@ void LibraryDialog::Library() { } - - number = indexLine.mid(55,5); title = indexLine.mid( 9, 50 ); @@ -166,22 +193,13 @@ void LibraryDialog::Library() { addItems(); - } - else if ( indexLine.mid(73,5).toInt() && indexLine.mid(73,5).toInt() > 10000 ) { -// newer files with numbers > 100000 have new dir structure and need to be parsed differently.. - number = indexLine.mid(73,5); - int num = number.toInt(); - if(num < 10626) - year = "2003"; - else if(num >= 10626 && num < 14600) - year = "2004"; - else if(num >= 14600) - year = "2005"; - - file = number;// + ".txt"; + } else { // then try new format texts + file = token.last(); title = indexLine.mid(0,72); + year = "1980"; - addItems(); - // qDebug("file number is " + number + " title is " + title ); - } + addItems(); //author and qlistview } + } //end old etexts + + } //end okToTRead } @@ -194,2 +212,5 @@ void LibraryDialog::Library() { } + system("date"); + sortLists(0); + } //end Library() @@ -305,7 +326,11 @@ bool LibraryDialog::getAuthor() -void LibraryDialog::addItems() { +void LibraryDialog::addItems() +{ cleanStrings(); getAuthor(); // grok author - if( !number.isEmpty() - && (title.find( "reserved",0, FALSE) == -1) + + etext etextStruct; + if( /*!number.isEmpty() + && */ + (title.find( "reserved",0, FALSE) == -1) && (file.find( "]",0, true) == -1) @@ -314,20 +339,23 @@ void LibraryDialog::addItems() { // fill string list or something to be able to sort by Author + etextStruct.title = title; + etextStruct.author = author; + etextStruct.year = year; + etextStruct.file = file; + + etextLibrary.append( etextStruct); + if( author.isEmpty() ) - QList_Item5 = new QListViewItem( ListView5, /*number, */title, author, year, file ); + QList_Item5 = new QListViewItem( ListView5, /*number, */author, title, year, file ); else { - if( (author.left(1) >= QString("A") && author.left(1) <= QString("F")) || - (author.left(1) >= QString("a") && author.left(1) <= QString("f")) ) - QList_Item1 = new QListViewItem( ListView1, /* number,*/ title, author, year, file ); + if( author.find(QRegExp("[^a-fA-F]")) ) + QList_Item1 = new QListViewItem( ListView1, /* number,*/author, title, year, file ); - else if( (author.left(1) >= QString("G") && author.left(1) <= QString("M")) || - (author.left(1) >= QString("g") && author.left(1) <= QString("m")) ) - QList_Item2 = new QListViewItem( ListView2, /* number,*/ title, author, year, file ); + else if(author.find(QRegExp("[^g-mG-M]")) ) + QList_Item2 = new QListViewItem( ListView2, /* number,*/ author, title,year, file ); - else if( (author.left(1) >= QString("N") && author.left(1) <= QString("R")) || - (author.left(1) >= QString("n") && author.left(1) <= QString("r")) ) - QList_Item3 = new QListViewItem( ListView3, /* number,*/ title, author, year, file ); + else if(author.find(QRegExp("[^n-rN-R]")) ) + QList_Item3 = new QListViewItem( ListView3, /* number,*/ author, title, year, file ); - else if( (author.left(1) >= QString("S") && author.left(1) <= QString("Z")) || - (author.left(1) >= QString("s") && author.left(1) <= QString("z")) ) - QList_Item4 = new QListViewItem( ListView4, /* number,*/ title, author, year, file ); + else if(author.find(QRegExp("[^s-zS-Z]")) ) + QList_Item4 = new QListViewItem( ListView4, /* number,*/ author, title, year, file ); } @@ -677,13 +705,2 @@ void LibraryDialog::onButtonSearch() - // int tabPage = tabWidget->currentPageIndex(); - // TODO ititerate here... struct<listViews>?? - - QListViewItemIterator it1( ListView1 ); - QListViewItemIterator it2( ListView2 ); - QListViewItemIterator it3( ListView3 ); - QListViewItemIterator it4( ListView4 ); - QListViewItemIterator it5( ListView5 ); - - //// this is really pitiful work, - /////// bool cS; @@ -694,63 +711,14 @@ void LibraryDialog::onButtonSearch() - if(fluff==0) { - for ( ; it1.current(); ++it1 ) { - resultString = ( it1.current() )->text(0); - resultString += (" : "); - resultString += ( it1.current() )->text(2); - resultString += (" : "); - resultString += ( it1.current() )->text(3); - if( resultString.find( searcherStr, 0, cS) != -1) - { - Searchlist.append( resultString); - } - } - } - if(fluff==0) {// search routine here - for ( ; it2.current(); ++it2 ) { - resultString = ( it2.current() )->text(0); - resultString += (" : "); - resultString += ( it2.current() )->text(2); - resultString += (" : "); - resultString += ( it2.current() )->text(3); - if( resultString.find( searcherStr, 0, cS) != -1) { - Searchlist.append( resultString); - } - } - } - if(fluff==0) {// search routine here - for ( ; it3.current(); ++it3 ) { - resultString = ( it3.current() )->text(0); - resultString += (" : "); - resultString += ( it3.current() )->text(2); - resultString += (" : "); - resultString += ( it3.current() )->text(3); + etext etextStruct; + QValueList<etext>::Iterator it; - if( resultString.find( searcherStr, 0, cS) != -1) { - Searchlist.append( resultString); - } - } - } - if(fluff==0) { - // search routine here - for ( ; it4.current(); ++it4 ) { - resultString = ( it4.current() )->text(0); - resultString += (" : "); - resultString += ( it4.current() )->text(2); - resultString += (" : "); - resultString += ( it4.current() )->text(3); - if( resultString.find( searcherStr, 0, cS) != -1) { - Searchlist.append( resultString); - } - } - } - if(fluff==0) { // search routine here - for ( ; it5.current(); ++it5 ) { - resultString = ( it5.current() )->text(0); - resultString += (" : "); - resultString += ( it5.current() )->text(2); - resultString += (" : "); - resultString += ( it5.current() )->text(3); - if( resultString.find( searcherStr, 0, cS) != -1) { - Searchlist.append( resultString); - } + for( it = etextLibrary.begin(); it != etextLibrary.end(); ++it ) { + QString tempTitle = (*it).title; + QString tempAuthor = (*it).author; + QString tempFile = (*it).file; + QString tempYear = (*it).year; + if(tempTitle.find( searcherStr, 0, cS) != -1 + || tempAuthor.find( searcherStr, 0, cS) != -1) { + qWarning(tempTitle); + Searchlist.append( tempTitle + " : " + tempYear + " : " + tempFile); } @@ -758,2 +726,3 @@ void LibraryDialog::onButtonSearch() + tabWidget->setCurrentPage( curTab); @@ -775,4 +744,2 @@ void LibraryDialog::onButtonSearch() - // if(SearchResultsDialog) - // delete SearchResultsDialog; QString tester; @@ -822,3 +789,3 @@ void LibraryDialog::parseSearchResults( QString resultStr) - if( DlglistItemFile.toInt() > 10000 ) { + if( DlglistItemFile.toInt() > 10000 || yearInt == 1980 ) { // new directory sturcture @@ -831,5 +798,15 @@ void LibraryDialog::parseSearchResults( QString resultStr) -void LibraryDialog::sort() +void LibraryDialog::sortLists(int index) { + ListView1->setSorting(index); + ListView2->setSorting(index); + ListView3->setSorting(index); + ListView4->setSorting(index); + ListView5->setSorting(index); + ListView1->sort(); + ListView2->sort(); + ListView3->sort(); + ListView4->sort(); + ListView5->sort(); } @@ -1069 +1046,7 @@ void LibraryDialog::cleanStrings() { } + +void LibraryDialog::authBoxClicked() +{ + qApp->processEvents(); + FindLibrary(); +} |