-rw-r--r-- | noncore/apps/opie-gutenbrowser/LibraryDialog.cpp | 12 | ||||
-rw-r--r-- | noncore/apps/opie-gutenbrowser/openetext.cpp | 124 |
2 files changed, 65 insertions, 71 deletions
diff --git a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp index 6c246e97..7f21ab3 100644 --- a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp +++ b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp @@ -11,25 +11,25 @@ // * the Free Software Foundation; either version 2 of the License, or * // * (at your option) any later version. * // ***************************************************************************/ //ftp://ibiblio.org/pub/docs/books/gutenberg/GUTINDEX.ALL #include "LibraryDialog.h" #include "output.h" /* OPIE */ #include <qpe/applnk.h> #include <qpe/qpeapplication.h> #include <qpe/qpedialog.h> -//#include <opie2///odebug.h> +#include <opie2/odebug.h> /* QT */ #include <qpushbutton.h> #include <qmultilineedit.h> //#include <qlayout.h> /* STD */ #include <unistd.h> #include <stdio.h> #include <stdlib.h> /* @@ -463,26 +463,30 @@ bool LibraryDialog::getEtext(const QStringList &networkList) // use new, improved, *INSTANT* network-dialog-file-getterer if( NetworkDlg->exec() != 0 ) { File_Name = NetworkDlg->localFileName; qDebug("Just downloaded " + NetworkDlg->localFileName); if(NetworkDlg->successDownload) { //odebug << "Filename is "+File_Name << oendl; if(File_Name.right(4) == ".txt") { QString s_fileName = File_Name; s_fileName.replace( s_fileName.length() - 3, 3, "gtn"); - // s_fileName.replace( s_fileName.length()-3,3,"etx"); - rename( File_Name.latin1(), s_fileName.latin1()); + if (rename( File_Name.latin1(), s_fileName.latin1()) == 1) { + owarn << "Failed to rename " << File_Name.latin1() << " to " + << s_fileName.latin1() << oendl; + return false; + } + File_Name = s_fileName; //odebug << "Filename is now "+File_Name << oendl; } if(File_Name.length() > 5 ) { setTitle(); QFileInfo fi(File_Name); QString name_file = fi.fileName(); name_file = name_file.left( name_file.length() - 4); //odebug << "Setting doclink" << oendl; @@ -490,25 +494,24 @@ bool LibraryDialog::getEtext(const QStringList &networkList) //odebug << "name is "+name_file << oendl; lnk.setName(name_file); //sets file name //odebug << "Title is "+DlglistItemTitle << oendl; lnk.setComment(DlglistItemTitle); //odebug << "Filename is "+File_Name << oendl; lnk.setFile(File_Name); //sets File property lnk.setType("guten/plain");// hey is this a REGISTERED mime type?!?!? ;D lnk.setExec(File_Name); lnk.setIcon("gutenbrowser/Gutenbrowser"); if(!lnk.writeLink()) { //odebug << "Writing doclink did not work" << oendl; - } else { } } else QMessageBox::message("Note","<p>There was an error with the file</p>"); } } return true; } bool LibraryDialog::download_Etext() { // ftp method // might have to use old gpl'd ftp for embedded!! @@ -692,25 +695,24 @@ void LibraryDialog::onButtonSearch() 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; diff --git a/noncore/apps/opie-gutenbrowser/openetext.cpp b/noncore/apps/opie-gutenbrowser/openetext.cpp index 0267416..a5d855d 100644 --- a/noncore/apps/opie-gutenbrowser/openetext.cpp +++ b/noncore/apps/opie-gutenbrowser/openetext.cpp @@ -48,36 +48,40 @@ OpenEtext::OpenEtext(QWidget *parent, QString name) : QDialog(parent,name,true) } OpenEtext::~OpenEtext() { } void OpenEtext::getTitles() { QListBox_1->clear(); Config config("Gutenbrowser"); config.setGroup( "Files" ); s_numofFiles = config.readEntry("NumberOfFiles", "0"); - QLabel_1->setText( tr( - s_numofFiles+" etexts in your library.")); + QLabel_1->setText( tr( s_numofFiles+" etexts in your library." ) ); int i_numofFiles = s_numofFiles.toInt(); for (int i = 1; i <= i_numofFiles+1; i++) { QString temp; temp.setNum(i); config.setGroup( "Files" ); QString ramble = config.readEntry(temp, "" ); config.setGroup( "Titles" ); title = config.readEntry(ramble, ""); if( !title.isEmpty()) { - QListBox_1->insertItem ( QPixmap( QPEApplication::qpeDir()+"pics/gutenbrowser/gutenbrowser_sm.png"), title, -1); + QListBox_1->insertItem ( QPixmap( + QPEApplication::qpeDir() + + "pics/gutenbrowser/gutenbrowser_sm.png" + ), + title, + -1); } } } /* opens selected title */ void OpenEtext::OpenTitle() { if( QListBox_1->currentItem() != -1) select_title( QListBox_1->currentItem() ); else { QString sMsg; @@ -91,150 +95,133 @@ void OpenEtext::select_title(int index ) OpenButton->setDown(TRUE); QString temp; temp.setNum( index + 1); const char * title; title = QListBox_1->text( index ); openFileTitle = title; Config config("Gutenbrowser"); config.setGroup( "Files" ); file = config.readEntry(temp, ""); OpenEtext::accept(); } -/* - This function imports already existing etexts into the local library list*/ +/*! + * This function imports already existing etexts into the local library list + */ void OpenEtext::open() { OpenFileButton->setDown(TRUE); title = ""; QString currDir=""; QString filer; QString name_file; QString local ; local = (QDir::homeDirPath () +"Applications/gutenbrowser"); QDir library( local); -// fileBrowser *browseForFiles; -// browseForFiles=new fileBrowser(this,"Browse for File", TRUE, 0, "guten/plain;text/plain"); -// // browseForFiles=new fileBrowser(this,"fileBrowser",TRUE,0, "*"); -// browseForFiles->setFileView( 0); -// browseForFiles->showMaximized(); -// browseForFiles->exec(); -// QString selFile= browseForFiles->selectedFileName; -// fileList=browseForFiles->fileList; Config cfg("Gutenbrowser"); cfg. setGroup ( "View" ); QString dir = cfg.readEntry("LastOpenDirectory", QPEApplication::documentDir()); QMap<QString, QStringList> map; map.insert(tr("All"), QStringList() ); QStringList text; text << "text/*"; map.insert(tr("Text"), text ); text << "*"; map.insert(tr("All"), text ); QString str = OFileDialog::getOpenFileName( 2, dir , QString::null, map); if( !str.isEmpty() && QFile(str).exists() && !QFileInfo(str).isDir() ) { filer = str; odebug << "Open file: "+str << oendl; - // QStringList::ConstIterator f; -// QString fileTemp; -// for ( f = fileList.begin(); f != fileList.end(); f++ ) { -// fileTemp = *f; -// fileTemp.right( fileTemp.length()-5); -// fileName = fileTemp; -// if( !fileName.isEmpty() ){ -// filer = fileName; -// } else { //filename is empty -// // QString sMsg; -// // sMsg = "Error opening library filelist "+fileName; -// } - - if( filer.right(4) == ".txt" - || filer.right(4) == ".TXT" - || filer.right(4) == ".etx" - || filer.right(4) == ".ETX" - || filer.right(4) == ".etx" - || filer.right(4) == ".ETX" - || filer.right(4) == ".zip" - || filer.right(4) == ".ZIP" ) { + if( filer.right(4) == ".txt" || + filer.right(4) == ".TXT" || + filer.right(4) == ".etx" || + filer.right(4) == ".ETX" || + filer.right(4) == ".etx" || + filer.right(4) == ".ETX" || + filer.right(4) == ".zip" || + filer.right(4) == ".ZIP" ) + { QFileInfo zipFile( filer); QString s_fileName = zipFile.fileName(); QString cmd; - if( s_fileName.right(4) == ".zip") { // unzip that sucker.... + if( s_fileName.right(4) == ".zip") { // unzip the file s_fileName = s_fileName.left( s_fileName.length() - 4); if( chdir((const char*)local_library.latin1())!=0) - odebug << "chdir failed." << oendl; // QString cmd = "gunzip -d " + filer + " -d " + local_library; + odebug << "chdir failed." << oendl; cmd = "gunzip -S .zip " + filer; fileName = local_library + s_fileName + ".txt"; system( cmd); - } -// this renames the .txt to .etx!! - else /*if( s_fileName.right(4) == ".txt" || if( s_fileName.right(4) == ".TXT"))*/ { + } else { // else rename .txt to .etx // odebug << "Filename is "+fileName << oendl; s_fileName = fileName; - s_fileName.replace( s_fileName.length()-3,3,"gtn");// s_fileName.replace( s_fileName.length()-3,3,"etx"); - rename(fileName.latin1(),s_fileName.latin1()); + s_fileName.replace( s_fileName.length()-3,3,"gtn"); + if (rename(fileName.latin1(),s_fileName.latin1()) == -1) + owarn << "Rename of " << fileName.latin1() << " to " + << s_fileName.latin1() << " failed" << oendl; fileName = s_fileName; // odebug << "Filename is now "+fileName << oendl; } } else fileName = str; FindTitle(fileName); QFileInfo fi( fileName); name_file = fi.fileName(); name_file = name_file.left(name_file.length() - 4); odebug << "Setting doclink" << oendl; DocLnk lnk; odebug << "name is " + name_file << oendl; lnk.setName(name_file); //sets file name odebug << "Title is "+title << oendl; lnk.setComment(title); QListBox_1->clear(); getTitles(); odebug << "Filename is "+fileName << oendl; lnk.setFile(fileName); //sets File property - lnk.setType("guten/plain");// hey is this a REGISTERED mime type?!?!? ;D + // @bug This is probably not a registered MIME type. Perhaps we should + // set a valid MIME type here instead. Or maybe register .etx as a + // Gutenberge etext? + lnk.setType("guten/plain"); lnk.setExec(fileName); lnk.setIcon("gutenbrowser/Gutenbrowser"); if(!lnk.writeLink()) odebug << "Writing doclink did not work" << oendl; } // end of for each file name.... OpenFileButton->setDown(FALSE); } /* find the title in the config file */ bool OpenEtext::FindTitle( QString filename) { Config config("Gutenbrowser"); config.setGroup( "Files" ); QString s_numofFiles = config.readEntry("NumberOfFiles", "0"); int i_numofFiles = s_numofFiles.toInt(); QFileInfo fi(filename); name = fi.fileName(); odebug << "filename to open is " + name << oendl; QFile indexLib( filename); bool findCheck = FALSE; - // int Titlenumber=0; if ( indexLib.open( IO_ReadOnly) ) { odebug << "file opened successfully" << oendl; QTextStream indexStream( &indexLib ); QString target = "Project Gutenberg Etext of"; QString target2 = "Project Gutenberg Etext"; QString target3 = "Project Gutenberg's Etext of"; QString target4 = "Project Gutenberg's Etext"; QString indexLine; while ( !indexStream.eof() ) { // until end of file.. indexLine = indexStream.readLine(); @@ -268,25 +255,24 @@ bool OpenEtext::FindTitle( QString filename) // odebug << "Found the title 4 and it is " << title << "" << oendl; } } //endof file indexLib.close(); if( !findCheck || title.length() < 2) { odebug << "Trying hard to find title from GUTINDEX.ALL" << oendl; title = titleFromLibrary( filename); findCheck = TRUE; } if ( checkConf() == false && findCheck == TRUE) { - config.setGroup( "Files"); config.writeEntry("NumberOfFiles",i_numofFiles + 1 ); QString interger; interger.setNum( i_numofFiles +1); config.writeEntry(interger, filename); config.setGroup( "Titles" ); for (int i = 1; i <= i_numofFiles; i++) { //find dup titles in config file QString temp; temp.setNum(i); config.setGroup( "Files" ); QString ramble = config.readEntry(temp, "" ); config.setGroup( "Titles" ); @@ -306,28 +292,28 @@ bool OpenEtext::FindTitle( QString filename) sMsg = "Error opening library file: "+filename; printf( sMsg+"\n"); } return true; } QString OpenEtext::titleFromLibrary( QString fileName) { QFile indexLib( local_index); QString target; int find1 = fileName.findRev("/",-1,TRUE) + 1; int find2 = fileName.findRev(".gtn",-1,TRUE) - find1; - if(find2==-1-find1) - int find2 = fileName.findRev(".etx",-1,TRUE) - find1; - else if(find2==-1-find1) - int find2 = fileName.findRev(".txt",-1,TRUE) - find1; + if(find2== (-1-find1)) + find2 = fileName.findRev(".etx",-1,TRUE) - find1; + else if(find2==(-1-find1)) + find2 = fileName.findRev(".txt",-1,TRUE) - find1; target = fileName.mid( find1, find2 ); QString checker = target.right(1); bool ok; checker.toInt( &ok,10); if( ok) { target = target.left( target.length()-1); checker = target.right(1); ok = FALSE; checker.toInt( &ok,10); if( ok) { target = target.left( target.length()-1); @@ -335,25 +321,24 @@ QString OpenEtext::titleFromLibrary( QString fileName) } if ( indexLib.open( IO_ReadOnly) ) { // file opened successfully QTextStream indexStream( &indexLib ); QString indexLine; bool findCheck = FALSE; while ( !indexStream.atEnd() ) { // until end of file.. indexLine = indexStream.readLine(); if( indexLine.find( target,0,FALSE) > 0 ) { findCheck = TRUE; title = indexLine.mid( 9, 50); -// title = indexLine.mid( 26, indexLine.length() ); title = title.stripWhiteSpace (); // odebug << "Finally Found the title and it is\n " << title << "" << oendl; // QListBox_1->insertItem ( title); } } //end while loop } else odebug << "Error opening library index "+ local_index << oendl; return title; } bool OpenEtext::checkConf() @@ -372,40 +357,43 @@ bool OpenEtext::checkConf() if(ramble == file ) { return true; } } return false; } void OpenEtext::remove() { title_text = QListBox_1->text( QListBox_1->currentItem() ); title_text=title_text.stripWhiteSpace(); - QString msg ="<p>Do you really want to REMOVE\n" +title_text +"?\nThis will not delete the file.</P>"; - switch( QMessageBox::information( this, (tr("Remove Etext")), - (tr(msg)), - (tr("&Yes")), (tr("&Cancel")), 0 )){ + QString msg ="<p>Do you really want to REMOVE\n" + title_text + + "?\nThis will not delete the file.</P>"; + switch( QMessageBox::information( this, tr("Remove Etext"), + tr(msg), + tr("&Yes"), tr("&Cancel"), 0 ) ) + { case 0: // Yes clicked, removeSelection(); QListBox_1->clear(); getTitles(); break; - case 1: // Cancel - break; - }; + case 1: + default: + } } -/* - this removes selected title entry*/ +/*! + * This removes selected title entry + */ void OpenEtext::removeSelection() { Config config("Gutenbrowser"); config.setGroup( "Files" ); s_numofFiles = config.readEntry("NumberOfFiles", "0"); int rem=0; int i_numofFiles = s_numofFiles.toInt(); QString fileNum2; QString fileNum; for (int i = 1; i <= i_numofFiles; i++) { fileNum.setNum(i); @@ -427,63 +415,63 @@ void OpenEtext::removeSelection() for(int fg = rem; fg < i_numofFiles ; fg++ ) { //this rewrites Files number entry fileNum.setNum(fg); fileNum2.setNum( fg + 1); QString s_filename2 = config.readEntry(fileNum2, "" ); if (!s_filename2.isEmpty()) { config.writeEntry(fileNum, s_filename2 ); } } config.writeEntry("NumberOfFiles", i_numofFiles - 1 ); config.removeEntry(fileNum2); -// remFile(); } -/* - removes file title name from list and config file*/ +/*! + * Removes file title name from list and config file + */ void OpenEtext::remFile() { Config config("Gutenbrowser"); config.setGroup( "Files" ); QString remFile; s_numofFiles = config.readEntry("NumberOfFiles", "0"); int i_numofFiles = s_numofFiles.toInt(); for (int i = 1; i <= i_numofFiles; i++) { QString fileNum; fileNum.setNum(i); QString s_filename = config.readEntry(fileNum, "" ); if( s_filename == selFile) { config.removeEntry(selFile); for(int fg = i_numofFiles - i; fg < i_numofFiles ; fg++ ) { //this rewrites Files number entry QString fileNum2; fileNum2.setNum( fg + 1); QString s_filename2 = config.readEntry(fileNum2, "" ); - if (!s_filename2.isEmpty()) { + if (!s_filename2.isEmpty()) config.writeEntry(fileNum, s_filename2 ); } } } - } config.writeEntry("NumberOfFiles", i_numofFiles - 1 ); config.removeEntry(s_numofFiles); QListBox_1->triggerUpdate(true); } -/* -sorts the list*/ +/*! + * Sorts the list + */ void OpenEtext::scan() { QListBox_1->sort(TRUE); QListBox_1->triggerUpdate(true); } void OpenEtext::editTitle() { int currentItem=QListBox_1->currentItem(); QString title_text = QListBox_1->text( currentItem); //odebug << "Selected "+title_text << oendl; @@ -501,21 +489,25 @@ void OpenEtext::editTitle() { QString file_title = config.readEntry( s_filename, ""); //odebug << "file_title is "+file_title << oendl; if(title_text == file_title ) { selFile = s_filename; //odebug << "Edit: "+ file_title << oendl; i=i_numofFiles+1; Edit_Title *titleEdit; titleEdit = new Edit_Title(this,file_title ,TRUE); if(titleEdit->exec() !=0) { //odebug << titleEdit->newTitle << oendl; config.writeEntry( s_filename, titleEdit->newTitle); QListBox_1->removeItem(currentItem); - QListBox_1->insertItem ( QPixmap( QPEApplication::qpeDir()+"pics/gutenbrowser/gutenbrowser_sm.png"), titleEdit->newTitle, currentItem); + QListBox_1->insertItem ( + QPixmap( QPEApplication::qpeDir()+ + "pics/gutenbrowser/gutenbrowser_sm.png"), + titleEdit->newTitle, currentItem + ); } } } // getTitles(); QListBox_1->triggerUpdate(true); } |