author | llornkcor <llornkcor> | 2005-08-25 08:23:59 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2005-08-25 08:23:59 (UTC) |
commit | 938d1f0a0c16a8acbd7866191d099a4054c4c3e2 (patch) (side-by-side diff) | |
tree | 3d7de3be92a8a15ad16b4dc9b5fd6fd207e1fa7e | |
parent | 65edeafe2dc8689dce7c2ce94e954933b393dcf0 (diff) | |
download | opie-938d1f0a0c16a8acbd7866191d099a4054c4c3e2.zip opie-938d1f0a0c16a8acbd7866191d099a4054c4c3e2.tar.gz opie-938d1f0a0c16a8acbd7866191d099a4054c4c3e2.tar.bz2 |
fix search results
-rw-r--r-- | noncore/apps/opie-gutenbrowser/LibraryDialog.cpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp index 9858188..6c246e97 100644 --- a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp +++ b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp @@ -581,402 +581,403 @@ bool LibraryDialog::httpDownload() } else { //////////// use KFM // KFM::download( httpName, file_name); } i++; QFile tmp( file_name); QString str; if (tmp.open(IO_ReadOnly)) { QTextStream t( &tmp ); // use a text stream while ( !t.eof()) { QString s = t.readLine(); if (s.contains( NewlistItemFile, false) && (s.contains(".txt")) ) { str = s.mid( s.find( ".txt\">"+NewlistItemFile, 0, true)+6, (s.find( ".txt</A>", 0, true) + 4) - ( s.find( ".txt\">"+NewlistItemFile, 0, true)+6 ) ); httpName += "/" + str; } } //end of while loop } tmp.close(); m_getFilePath = local_library + str; i++; if ( brow != "KFM"){ ///////// use lynx QString cmd = "lynx -source " + httpName +" | cat >> " + m_getFilePath; // QMessageBox::message("Error", cmd); system(cmd); } else { ////////// use KFM // KFM::download( httpName, m_getFilePath); } i++; #endif return false; } void LibraryDialog::cancelIt() { saveConfig(); DlglistItemNumber = ""; this->reject(); } bool LibraryDialog::setTitle() { Config config("Gutenbrowser"); //odebug << "setting title" << oendl; //odebug << DlglistItemTitle << oendl; if( DlglistItemTitle.find("[",0,true) != -1) DlglistItemTitle.replace(DlglistItemTitle.find("[",0,true),1, "(" ); if( DlglistItemTitle.find("]",0,true) !=-1) DlglistItemTitle.replace(DlglistItemTitle.find("]",0,true),1, ")" ); //odebug << "Title being set is "+DlglistItemTitle << oendl; int test = 0; QString ramble, temp; config.setGroup("Files"); QString s_numofFiles = config.readEntry("NumberOfFiles", "0" ); int i_numofFiles = s_numofFiles.toInt(); for ( int i = 0; i <= i_numofFiles; i++){ temp.setNum( i); ramble = config.readEntry( temp, "" ); if( strcmp( ramble, File_Name) == 0){ test = 1; } } if(test == 0 ) { config.setGroup("Files"); config.writeEntry( "NumberOfFiles", i_numofFiles +1 ); QString interger; interger.setNum( i_numofFiles +1); config.writeEntry( interger, File_Name); config.setGroup( "Titles" ); config.writeEntry( File_Name, DlglistItemTitle); } test = 0; return true; } void LibraryDialog::saveConfig() { Config config("Gutenbrowser"); if( httpBox->isChecked() == true) { checked = 1; config.setGroup( "Proxy" ); config.writeEntry("IsChecked", "true"); } else { checked = 0; config.setGroup( "Proxy" ); config.writeEntry("IsChecked", "false"); } if (authBox->isChecked() == true) { config.setGroup("SortAuth"); config.writeEntry("authSort", "true"); } else { config.setGroup("SortAuth"); config.writeEntry("authSort", "false"); } // config.write(); } /* searches library index for user word*/ void LibraryDialog::onButtonSearch() { ListView1->clearSelection(); ListView2->clearSelection(); ListView3->clearSelection(); ListView4->clearSelection(); ListView5->clearSelection(); int curTab = tabWidget->currentPageIndex(); SearchDialog* searchDlg; // if( resultsList) searchDlg = new SearchDialog( this, "Library Search", true); searchDlg->setCaption( tr( "Library Search" ) ); searchDlg->setLabel( "- author or title"); QString resultString; int i_berger = 0; if( searchDlg->exec() != 0 ) { QString searcherStr = searchDlg->get_text(); int fluff = 0; bool cS; if( searchDlg->caseSensitiveCheckBox->isChecked()) cS = true; //case sensitive else cS = false; etext etextStruct; QValueList<etext>::Iterator it; 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); } } tabWidget->setCurrentPage( curTab); Searchlist.sort(); SearchResultsDlg* SearchResultsDialog; SearchResultsDialog = new SearchResultsDlg( searchDlg, "Results Dialog", true, 0 , Searchlist); SearchResultsDialog->showMaximized(); if( SearchResultsDialog->exec() != 0) { texter = SearchResultsDialog->selText; // //odebug << texter << oendl; resultLs = SearchResultsDialog->resultsList; i_berger = 1; } else { resultLs.clear(); } Searchlist.clear(); QString tester; for ( QStringList::Iterator it = resultLs.begin(); it != resultLs.end(); ++it ) { texter.sprintf("%s \n",(*it).latin1()); // //odebug << texter << oendl; if( tester!=texter) parseSearchResults( texter); tester = texter; } if(searchDlg) delete searchDlg; } if(checkBox->isChecked() ) { accept(); } else { setActiveWindow(); } } /* splits the result string and calls download for the current search result*/ void LibraryDialog::parseSearchResults( QString resultStr) { int stringLeng = resultStr.length(); QString my; my.setNum( stringLeng, 10); if( resultStr.length() > 2 && resultStr.length() < 130) { + QStringList token = QStringList::split(" : ", resultStr); - int titleInt = resultStr.find( " : ", 0, true); - DlglistItemTitle = resultStr.left( titleInt); + DlglistItemTitle = token[0]; + DlglistItemTitle = DlglistItemTitle.stripWhiteSpace(); - int yearInt = resultStr.find( " : ", titleInt+3, true); - - DlglistItemYear = resultStr.mid( titleInt+3, (yearInt - titleInt)-3); - - DlglistItemFile = resultStr.right( resultStr.length() - (yearInt + 3)); - DlglistItemFile = DlglistItemFile.left( DlglistItemFile.length() - 2); - - cleanStrings(); + DlglistItemYear = token[1]; + DlglistItemYear = DlglistItemYear.stripWhiteSpace(); + + DlglistItemFile = token[2]; + + DlglistItemFile = DlglistItemFile.stripWhiteSpace(); + +// qWarning(DlglistItemYear); + if(DlglistItemFile.left(1) == "/") DlglistItemFile = DlglistItemFile.right( DlglistItemFile.length() - 1); - - if( DlglistItemFile.toInt() > 10000 || yearInt == 1980 ) { + if( DlglistItemFile.toInt() > 10000 || DlglistItemYear == "1980" ) { // new directory sturcture download_newEtext(); //) } else { download_Etext(); //) } } } 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(); } /* Downloads the current selected listitem*/ bool LibraryDialog::getItem(QListViewItem *it) { // //odebug << "selected getItem" << oendl; // DlglistItemNumber = it->text(0); DlglistItemTitle = it->text(0); DlglistItemYear = it->text(2); DlglistItemFile = it->text(3); if(download_Etext()) { if(i_binary == 1) { } } return true; } /* download button is pushed so we get the current items to download*/ bool LibraryDialog::onButtonDownload() { // //odebug << "selected onButtonDownloadz" << oendl; QListViewItemIterator it1( ListView1 ); QListViewItemIterator it2( ListView2 ); QListViewItemIterator it3( ListView3 ); QListViewItemIterator it4( ListView4 ); QListViewItemIterator it5( ListView5 ); // iterate through all items of the listview for ( ; it1.current(); ++it1 ) { if ( it1.current()->isSelected() ) getItem(it1.current()); it1.current()->setSelected(false); } for ( ; it2.current(); ++it2 ) { if ( it2.current()->isSelected() ) getItem(it2.current()); it2.current()->setSelected(false); } for ( ; it3.current(); ++it3 ) { if ( it3.current()->isSelected() ) getItem(it3.current()); it3.current()->setSelected(false); } for ( ; it4.current(); ++it4 ) { if ( it4.current()->isSelected() ) getItem(it4.current()); it4.current()->setSelected(false); } for ( ; it5.current(); ++it5 ) { if ( it5.current()->isSelected() ) getItem(it5.current()); it5.current()->setSelected(false); } return true; } /* handles the sorting combo box */ void LibraryDialog::comboSelect(int index) { // //odebug << "we are sorting" << oendl; ListView1->setSorting( index, true); ListView2->setSorting( index, true); ListView3->setSorting( index, true); ListView4->setSorting( index, true); ListView5->setSorting( index, true); ListView1->sort(); ListView2->sort(); ListView3->sort(); ListView4->sort(); ListView5->sort(); // ListView1->triggerUpdate(); // ListView2->triggerUpdate(); // ListView3->triggerUpdate(); // ListView4->triggerUpdate(); // ListView5->triggerUpdate(); } void LibraryDialog::newList() { if(indexLoaded) { onButtonDownload(); } else { Output *outDlg; buttonNewList->setDown(true); //odebug << "changing dir "+QPEApplication::qpeDir()+"etc/gutenbrowser" << oendl; QString gutenindex1 = local_library + "/GUTINDEX.ALL"; QString cmd="wget -O " + gutenindex1 + " http://www.gutenberg.org/dirs/GUTINDEX.ALL 2>&1"; int result = QMessageBox::warning( this,"Download" ,"<p>Ok to use /'wget/' to download a new library list?</P>" ,"Yes","No",0,0,1); qApp->processEvents(); if(result == 0) { outDlg = new Output( 0, tr("Downloading Gutenberg Index...."),true); outDlg->showMaximized(); outDlg->show(); qApp->processEvents(); FILE *fp; char line[130]; outDlg->OutputEdit->append( tr("Running wget") ); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,false); sleep(1); fp = popen( (const char *) cmd, "r"); if ( !fp ) { } else { //odebug << "Issuing the command\n"+cmd << oendl; // system(cmd); while ( fgets( line, sizeof line, fp)) { outDlg->OutputEdit->append(line); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,false); } pclose(fp); outDlg->OutputEdit->append("Finished downloading\n"); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,false); qApp->processEvents(); // if( QFile(gutenindex1).exists() ) { // QString gutenindex=QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL"; // if( rename(gutenindex1.latin1(),gutenindex.latin1()) !=0) // //odebug << "renaming error" << oendl; // } } // outDlg->close(); FindLibrary(); if(outDlg) delete outDlg; } buttonNewList->setDown(false); // if(outDlg) // delete outDlg; } } bool LibraryDialog::moreInfo() { QListViewItem * item; item = 0; QString titleString; item = ListView1->currentItem(); if( item != 0) { titleString = item->text(0); ListView1->clearSelection(); item = 0; } if( item == 0) item = ListView2->currentItem(); if( item != 0) { titleString = item->text(0); ListView2->clearSelection(); item = 0; } if( item == 0) item = ListView3->currentItem(); if( item != 0) { titleString = item->text(0); ListView3->clearSelection(); item = 0; } if( item == 0) |