summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2005-02-06 04:30:34 (UTC)
committer llornkcor <llornkcor>2005-02-06 04:30:34 (UTC)
commit60a856903eb688b56c61fa787ac26b6be9f6d6c4 (patch) (side-by-side diff)
tree81848a11c6b006ed4b6ac5a036de8402dde8e25d
parente23dd592fc71aa22c449363231eac2f8ebd2a45b (diff)
downloadopie-60a856903eb688b56c61fa787ac26b6be9f6d6c4.zip
opie-60a856903eb688b56c61fa787ac26b6be9f6d6c4.tar.gz
opie-60a856903eb688b56c61fa787ac26b6be9f6d6c4.tar.bz2
fix #1494 - download of file when search is canceled
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-gutenbrowser/LibraryDialog.cpp185
1 files changed, 95 insertions, 90 deletions
diff --git a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp
index 3c096ed..7426e80 100644
--- a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp
+++ b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp
@@ -514,159 +514,162 @@ bool LibraryDialog::download_Etext()
}
} else
QMessageBox::message("Note","<p>There was an error with the file</p>");
}
}
return true;
}
bool LibraryDialog::httpDownload()
{// httpDownload
#ifndef Q_WS_QWS
Config config("Gutenbrowser");
config.setGroup( "Browser" );
QString brow = config.readEntry("Preferred", "");
QString file_name = "./.guten_temp";
// config.setGroup( "HttpServer" );
// QString s_http = config.readEntry("Preferred", "http://sailor.gutenbook.org");
QString httpName = proxy_http + "/"+Edir;
// progressBar->setProgress( i);
i++;
if ( brow != "Konq") { /////////// use lynx
// QString cmd = "lynx -source " + httpName +" | cat >> " + file_name;
// system(cmd);
} 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;
- }
- }
+ 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;
+ 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;
// 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;
if( searchDlg->caseSensitiveCheckBox->isChecked())
cS=true; //case sensitive
else
cS=false;
@@ -684,131 +687,133 @@ void LibraryDialog::onButtonSearch()
}
}
}
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);
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);
}
}
}
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;
+ resultLs = SearchResultsDialog->resultsList;
i_berger = 1;
- }
+ } else {
+ resultLs.clear();
+ }
Searchlist.clear();
// if(SearchResultsDialog)
// delete SearchResultsDialog;
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) {
int titleInt = resultStr.find( " : ", 0, TRUE);
DlglistItemTitle = resultStr.left( titleInt);
int yearInt = resultStr.find( " : ", titleInt+3, TRUE);
DlglistItemYear = resultStr.mid( titleInt+3, (yearInt - titleInt)-3);
DlglistItemFile = resultStr.right( resultStr.length() - (yearInt + 3));
download_Etext();
}
/*
printf( DlglistItemTitle+"\n"); printf( DlglistItemYear+"\n"); printf( DlglistItemFile+"\n");*/
}
// bool LibraryDialog::UnzipIt( QString zipFile) {
// //////////TODO findsome other way of dealingwithzip files.
// ///usr/bin/unzip";
// if( QFile::exists( zipFile)) {
// // QString thatFile = local_library +"PGWHOLE.TXT";
// QString cmd;
// #if defined(_WS_X11_)
// cmd = "gunzip -d " + zipFile /*newestLibraryFile */+" -d " + local_library;
// #endif
// #if defined(_WS_WIN_)
// QString temp= QDir::convertSeparators(local_library);
// zipFile=QDir::convertSeparators( zipFile);
// cmd = temp+"unzip.exe -o " +zipFile/*newestLibraryFile */+" -d " + temp;
// #endif
// #ifndef Q_WS_QWS
// // QString cmd = "gunzip -d " + zipFile /*newestLibraryFile */+" -d " + local_library;
// cmd = "unzip " + zipFile;
// #endif
// int exit=QMessageBox::information(this, "Unzip?", "Ok to unzip "+ zipFile+" ?", QMessageBox::Yes, QMessageBox::No);
// if (exit==QMessageBox::Yes) {
@@ -867,186 +872,186 @@ 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);
- QDir gutDir(QPEApplication::qpeDir()+"etc/gutenbrowser");
- if(!gutDir.exists()) gutDir.mkdir(QPEApplication::qpeDir()+"etc/gutenbrowser",true);
- if( chdir(QPEApplication::qpeDir()+"etc/gutenbrowser") == 0) {
- odebug << "changing dir "+QPEApplication::qpeDir()+"etc/gutenbrowser" << oendl;
- QString gutenindex1 = QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL";
- QString cmd="wget -O " + gutenindex1 + " http://sailor.gutenberg.org/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);
- } else {
- QMessageBox::message("Note","Could not change directories");
- }
- // if(outDlg)
- // delete outDlg;
- }
+ if(indexLoaded) {
+ onButtonDownload();
+ } else {
+ Output *outDlg;
+ buttonNewList->setDown(TRUE);
+ QDir gutDir(QPEApplication::qpeDir()+"etc/gutenbrowser");
+ if(!gutDir.exists()) gutDir.mkdir(QPEApplication::qpeDir()+"etc/gutenbrowser",true);
+ if( chdir(QPEApplication::qpeDir()+"etc/gutenbrowser") == 0) {
+ odebug << "changing dir "+QPEApplication::qpeDir()+"etc/gutenbrowser" << oendl;
+ QString gutenindex1 = QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL";
+ QString cmd="wget -O " + gutenindex1 + " http://sailor.gutenberg.org/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);
+ } else {
+ QMessageBox::message("Note","Could not change directories");
+ }
+ // 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)
item = ListView4->currentItem();
if( item != 0) {
titleString = item->text(0);
ListView4->clearSelection();
item = 0;
}
if( item == 0)
item = ListView5->currentItem();
if( item != 0) {
titleString = item->text(0);
ListView5->clearSelection();
item = 0;
}
item=0;
if(titleString.length()>2) {
odebug << "Title is "+titleString << oendl;
titleString.replace( QRegExp("\\s"), "%20");
titleString.replace( QRegExp("'"), "%20");
titleString.replace( QRegExp("\""), "%20");
titleString.replace( QRegExp("&"), "%20");
QString cmd= "http://google.com/search?q="+titleString+"&num=30&sa=Google+Search";
cmd="opera "+cmd;
system(cmd);
} else
QMessageBox::message( "Note","<p>If you select a title, this will search google.com for that title.</p>");
return true;
}
/*
This loads the library Index*/
void LibraryDialog::FindLibrary()
{
buttonLibrary->setDown(TRUE);