summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2005-02-28 09:24:10 (UTC)
committer llornkcor <llornkcor>2005-02-28 09:24:10 (UTC)
commit61fa699140c5efbb6ba0bf2a62f7e8fbf62976be (patch) (side-by-side diff)
tree7b3695c8a13d694487011526e3ae052b69b6d5fb
parent7d4beaf7922f15451da6ba65c2e21fb569887b52 (diff)
downloadopie-61fa699140c5efbb6ba0bf2a62f7e8fbf62976be.zip
opie-61fa699140c5efbb6ba0bf2a62f7e8fbf62976be.tar.gz
opie-61fa699140c5efbb6ba0bf2a62f7e8fbf62976be.tar.bz2
fix index dl from main view, user 8 bit files by default, do not show audio files
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-gutenbrowser/LibraryDialog.cpp1553
-rw-r--r--noncore/apps/opie-gutenbrowser/gutenbrowser.cpp27
2 files changed, 799 insertions, 781 deletions
diff --git a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp
index 7426e80..549c1d2 100644
--- a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp
+++ b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp
@@ -1,1078 +1,1085 @@
/***************************************************************************
// LibraryDialog.cpp - description
// -------------------
// begin : Sat Aug 19 2000
// copyright : (C) 2000 - 2004 by llornkcor
// email : ljp@llornkcor.com
// ***************************************************/
// /***************************************************************************
// * This program is free software; you can redistribute it and/or modify *
// * it under the terms of the GNU General Public License as published by *
// * 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>
/* QT */
#include <qpushbutton.h>
#include <qmultilineedit.h>
//#include <qlayout.h>
/* STD */
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
/*
* The dialog will by default be modeless, unless you set 'modal' to
* TRUE to construct a modal dialog. */
LibraryDialog::LibraryDialog( QWidget* parent, const char* name , bool /*modal*/, WFlags fl )
- : QDialog( parent, name, true/* modal*/, fl )
+ : QDialog( parent, name, true/* modal*/, fl )
{
- if ( !name )
- setName( "LibraryDialog" );
- indexLoaded=false;
- initDialog();
+ if ( !name )
+ setName( "LibraryDialog" );
+ indexLoaded=false;
+ initDialog();
// this->setMaximumWidth(240);
- index = "GUTINDEX.ALL";
- local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/";
- local_index = local_library + index;
+ index = "GUTINDEX.ALL";
+ local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/";
+ local_index = local_library + index;
- QString iniFile ;
- iniFile = QPEApplication::qpeDir()+"etc/gutenbrowser/gutenbrowserrc";
+ QString iniFile ;
+ iniFile = QPEApplication::qpeDir()+"etc/gutenbrowser/gutenbrowserrc";
- new_index =QPEApplication::qpeDir()+"etc/gutenbrowser/PGWHOLE.TXT";
+ new_index =QPEApplication::qpeDir()+"etc/gutenbrowser/PGWHOLE.TXT";
- old_index = QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL";
- // old_index = QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL";
+ old_index = QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL";
+ // old_index = QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL";
- // iniFile = local_library+"gutenbrowserrc";
- // new_index = local_library + "PGWHOLE.TXT";
- // old_index = local_library + "GUTINDEX.ALL";
+ // iniFile = local_library+"gutenbrowserrc";
+ // new_index = local_library + "PGWHOLE.TXT";
+ // old_index = local_library + "GUTINDEX.ALL";
- Config config("Gutenbrowser");
+ Config config("Gutenbrowser");
- config.setGroup( "HttpServer" );
- proxy_http = config.readEntry("Preferred", "http://sailor.gutenbook.org");
+ config.setGroup( "HttpServer" );
+ proxy_http = config.readEntry("Preferred", "http://sailor.gutenbook.org");
- config.setGroup( "FTPsite" );
- ftp_host=config.readEntry("SiteName", "sailor.gutenberg.org");
- odebug << "Library Dialog: ftp_host is "+ftp_host << oendl;
- // ftp_host=ftp_host.right(ftp_host.length()-(ftp_host.find(") ",0,TRUE)+1) );
- // ftp_host=ftp_host.stripWhiteSpace();
- ftp_base_dir= config.readEntry("base", "/pub/gutenberg");
+ config.setGroup( "FTPsite" );
+ ftp_host=config.readEntry("SiteName", "sailor.gutenberg.org");
+ odebug << "Library Dialog: ftp_host is "+ftp_host << oendl;
+ // ftp_host=ftp_host.right(ftp_host.length()-(ftp_host.find(") ",0,TRUE)+1) );
+ // ftp_host=ftp_host.stripWhiteSpace();
+ ftp_base_dir= config.readEntry("base", "/pub/gutenberg");
- i_binary = 0;
+ i_binary = 0;
- config.setGroup("SortAuth");
- if( config.readEntry("authSort", "FALSE") == "TRUE")
- authBox->setChecked(TRUE);
+ config.setGroup("SortAuth");
+ if( config.readEntry("authSort", "FALSE") == "TRUE")
+ authBox->setChecked(TRUE);
- config.setGroup("General");
- downDir =config.readEntry( "DownloadDirectory",local_library);
- odebug << "downDir is "+downDir << oendl;
- newindexLib.setName( old_index);
- indexLib.setName( old_index);
+ config.setGroup("General");
+ downDir =config.readEntry( "DownloadDirectory",local_library);
+ odebug << "downDir is "+downDir << oendl;
+ newindexLib.setName( old_index);
+ indexLib.setName( old_index);
- new QPEDialogListener(this);
- QTimer::singleShot( 1000, this, SLOT( FindLibrary()) );
+ new QPEDialogListener(this);
+ QTimer::singleShot( 1000, this, SLOT( FindLibrary()) );
}
LibraryDialog::~LibraryDialog()
{
// delete QList_Item2;
// delete QList_Item1;
// delete QList_Item3;
// delete QList_Item4;
// delete QList_Item5;
- // saveConfig();
+ // saveConfig();
}
/*This groks using PGWHOLE.TXT */
void LibraryDialog::Newlibrary()
{
#ifndef Q_WS_QWS //sorry embedded gutenbrowser cant use zip files
- //odebug << "Opening new library index " << newindexLib << "" << oendl;
- if ( newindexLib.open( IO_ReadOnly) ) {
- setCaption( tr( "Library Index - using master pg index." ) );// file opened successfully
- QTextStream indexStream( &newindexLib );
- QString indexLine;
- while ( !indexStream.atEnd() ) { // until end of file..
- indexLine = indexStream.readLine();
- if ( ( indexLine.mid(4,4)).toInt() && !( indexLine.left(3)).toInt()) {
- year = indexLine.mid(4,4);
- year = year.stripWhiteSpace();
- file = indexLine.mid( indexLine.find( "[", 0, TRUE )+1, 12 );
- file = file.stripWhiteSpace();
- number = indexLine.mid( indexLine.find( "]", 0, TRUE ) +1, indexLine.find( " ", 0, TRUE )+1 );
- if( year.toInt() < 1984)
- number = number.left( number.length() -1 );
- number = number.stripWhiteSpace();
- title = indexLine.mid( indexLine.find(" ", 26, TRUE), indexLine.length() );
- title = title.stripWhiteSpace();
-
- getAuthor(); // groks author
- author = author.stripWhiteSpace();
- if (authBox->isChecked()) { // this reverses the first name and last name of the author
+ //odebug << "Opening new library index " << newindexLib << "" << oendl;
+ if ( newindexLib.open( IO_ReadOnly) ) {
+ setCaption( tr( "Library Index - using master pg index." ) );// file opened successfully
+ QTextStream indexStream( &newindexLib );
+ QString indexLine;
+ while ( !indexStream.atEnd() ) { // until end of file..
+ indexLine = indexStream.readLine();
+ if ( ( indexLine.mid(4,4)).toInt() && !( indexLine.left(3)).toInt()) {
+ year = indexLine.mid(4,4);
+ year = year.stripWhiteSpace();
+ file = indexLine.mid( indexLine.find( "[", 0, TRUE )+1, 12 );
+ file = file.stripWhiteSpace();
+ number = indexLine.mid( indexLine.find( "]", 0, TRUE ) +1, indexLine.find( " ", 0, TRUE )+1 );
+ if( year.toInt() < 1984)
+ number = number.left( number.length() -1 );
+ number = number.stripWhiteSpace();
+ title = indexLine.mid( indexLine.find(" ", 26, TRUE), indexLine.length() );
+ title = title.stripWhiteSpace();
+
+ getAuthor(); // groks author
+ author = author.stripWhiteSpace();
+ if (authBox->isChecked()) { // this reverses the first name and last name of the author
// odebug << "Sorting last name first" << oendl;
- QString lastName, firstName="";
- int finder=author.findRev( ' ', -1, TRUE);
- lastName=author.right( author.length()-finder);
- firstName=author.left(finder);
- lastName=lastName.stripWhiteSpace();
- firstName=firstName.stripWhiteSpace();
-
- if( lastName.find( firstName, 0, true) == -1) // this avoids dup names
- author=lastName+", "+firstName;
- }
-
- if( !number.isEmpty() && (title.find( "reserved",0, FALSE) == -1) && (file.find( "]",0, TRUE) == -1) ) {
-
- // fill string list or something to be able to resort the whole library
- if( author.isEmpty() )
- QList_Item5 = new QListViewItem( ListView5, /* number,*/ title, author, 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 );
-
- 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.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.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
- QList_Item5 = new QListViewItem( ListView5, /* number,*/ title, author, year, file );
- }
- }
- }// end if
- }// end while
- newindexLib.close();
- }
+ QString lastName, firstName="";
+ int finder=author.findRev( ' ', -1, TRUE);
+ lastName=author.right( author.length()-finder);
+ firstName=author.left(finder);
+ lastName=lastName.stripWhiteSpace();
+ firstName=firstName.stripWhiteSpace();
+
+ if( lastName.find( firstName, 0, true) == -1) // this avoids dup names
+ author=lastName+", "+firstName;
+ }
+
+ if( !number.isEmpty()
+ && (title.find( "reserved",0, FALSE) == -1)
+ && (file.find( "]",0, TRUE) == -1)
+ && (title.find( "Audio",0, FALSE) == -1)) {
+
+ // fill string list or something to be able to resort the whole library
+ if( author.isEmpty() )
+ QList_Item5 = new QListViewItem( ListView5, /* number,*/ title, author, 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 );
+
+ 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.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.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
+ QList_Item5 = new QListViewItem( ListView5, /* number,*/ title, author, year, file );
+ }
+ }
+ }// end if
+ }// end while
+ newindexLib.close();
+ }
#ifndef Q_WS_QWS
- setCursor( arrowCursor);
+ setCursor( arrowCursor);
#endif
#endif
} // end Newlibrary()
void LibraryDialog::Library()
{// old library groking method
- ListView1->clear();
- ListView2->clear();
- ListView3->clear();
- ListView4->clear();
- ListView5->clear();
-
- odebug << "opening GUTINDEX.ALL file" << oendl;
- IDontKnowWhy = "";
- if ( indexLib.open( IO_ReadOnly) ) { // file opened successfully
- QTextStream indexStream( &indexLib );
- QString indexLine;
- qApp->processEvents();
- // int jig;
- while ( !indexStream.eof() ) {
-
- indexLine = indexStream.readLine();
- if ( indexLine != "") {
- if( (indexLine.mid(4,4)).toInt() /* && !( indexLine.left(3)).toInt()*/ ) {
- // month = indexLine.left( 3);
- year = indexLine.mid(4,4);
- // title = indexLine.mid( 9, 50);
- file = indexLine.mid(60,12);
- if(file.left(1).find("[",0,TRUE) != -1)
- file.remove(1,1);
- if( file.find("]",0,TRUE) != -1)
- file = file.left( file.find("]",0,TRUE));
- //odebug << "file is "+file << oendl;
- /// number = indexLine.mid( indexLine.find( "]", 0, TRUE ) +1, indexLine.find( " ", 0, TRUE )+1 );
- number = indexLine.mid(55,5);
- number = number.stripWhiteSpace();
- // title = indexLine.mid( indexLine.find(" ", 26, TRUE), indexLine.length() );
- title = indexLine.mid( 9, 50 );
- title = title.stripWhiteSpace();
- //odebug << "title is "+title << oendl;
- getAuthor(); // grok author
- author = author.stripWhiteSpace();
- //odebug << "author is "+author << oendl;
- if (authBox->isChecked() == TRUE) { // this reverses the first name and last name of the author
- QString lastName, firstName="";
- int finder=author.findRev( ' ', -1, TRUE);
- lastName=author.right( author.length()-finder);
- firstName=author.left(finder);
- lastName=lastName.stripWhiteSpace();
- firstName=firstName.stripWhiteSpace();
-
- if( lastName.find( firstName, 0, true) == -1) // this avoids dup names
- author=lastName+", "+firstName;
- }
-
- if( !number.isEmpty() && (title.find( "reserved",0, FALSE) == -1) /*&& (file.find( "]",0, TRUE))*/ ) {
- // fill string list or something to be able to sort by Author
- if( author.isEmpty() )
- QList_Item5 = new QListViewItem( ListView5, /*number, */title, author, 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 );
-
- 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.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.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 );
- }
- }
- }
- }
- }
- indexLib.close();
- } else {
- QString sMsg;
- sMsg = ( tr("<p>Error opening local library index:</P> "))+local_index;
- QMessageBox::message( "Error",sMsg);
- }
+ ListView1->clear();
+ ListView2->clear();
+ ListView3->clear();
+ ListView4->clear();
+ ListView5->clear();
+
+ odebug << "opening GUTINDEX.ALL file" << oendl;
+ IDontKnowWhy = "";
+ if ( indexLib.open( IO_ReadOnly) ) { // file opened successfully
+ QTextStream indexStream( &indexLib );
+ QString indexLine;
+ qApp->processEvents();
+ // int jig;
+ while ( !indexStream.eof() ) {
+
+ indexLine = indexStream.readLine();
+ if ( indexLine != "") {
+ if( (indexLine.mid(4,4)).toInt() /* && !( indexLine.left(3)).toInt()*/ ) {
+ // month = indexLine.left( 3);
+ year = indexLine.mid(4,4);
+ // title = indexLine.mid( 9, 50);
+ file = indexLine.mid(60,12);
+ if(file.left(1).find("[",0,TRUE) != -1)
+ file.remove(1,1);
+ if( file.find("]",0,TRUE) != -1)
+ file = file.left( file.find("]",0,TRUE));
+
+
+ if(file.find("?", 0, false) != -1 ) {
+ QString tmpfile = file.replace(QRegExp("[?]"), "8");
+// qDebug( "file is now " + tmpfile );
+ file = tmpfile;
+ }
+
+// number = indexLine.mid( indexLine.find( "]", 0, TRUE ) +1, indexLine.find( " ", 0, TRUE )+1 );
+ number = indexLine.mid(55,5);
+ number = number.stripWhiteSpace();
+ // title = indexLine.mid( indexLine.find(" ", 26, TRUE), indexLine.length() );
+ title = indexLine.mid( 9, 50 );
+ title = title.stripWhiteSpace();
+ //odebug << "title is "+title << oendl;
+ getAuthor(); // grok author
+ author = author.stripWhiteSpace();
+ //odebug << "author is "+author << oendl;
+ if (authBox->isChecked() == TRUE) { // this reverses the first name and last name of the author
+ QString lastName, firstName="";
+ int finder=author.findRev( ' ', -1, TRUE);
+ lastName=author.right( author.length()-finder);
+ firstName=author.left(finder);
+ lastName=lastName.stripWhiteSpace();
+ firstName=firstName.stripWhiteSpace();
+
+ if( lastName.find( firstName, 0, true) == -1) // this avoids dup names
+ author=lastName+", "+firstName;
+ }
+
+ if( !number.isEmpty()
+ && (title.find( "reserved",0, FALSE) == -1)
+ &&(title.find( "Audio",0, FALSE) == -1)) {
+ // fill string list or something to be able to sort by Author
+ if( author.isEmpty() )
+ QList_Item5 = new QListViewItem( ListView5, /*number, */title, author, 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 );
+
+ 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.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.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 );
+ }
+ }
+ }
+ }
+ }
+ indexLib.close();
+ } else {
+ QString sMsg;
+ sMsg = ( tr("<p>Error opening local library index:</P> "))+local_index;
+ QMessageBox::message( "Error",sMsg);
+ }
} //end Library()
/*
Groks the author out of the title */
bool LibraryDialog::getAuthor()
{
- if( title.contains( ", by", TRUE)) {
- int auth;
- auth = title.find(", by", 0, TRUE);
- author = title.right(title.length() - (auth + 4) );
- if( int finder = author.find("[", 0, TRUE)) {
- author = author.left(finder);
- }
- }
- else if ( title.contains( "by, ", TRUE) ) {
- int auth;
- auth = title.find("by, ", 0, TRUE);
- author = title.right(title.length() - (auth + 4) );
- if( int finder = author.find("[", 0, TRUE)) {
- author = author.left( finder);
- }
- }
- else if ( title.contains( " by", TRUE) ) {
- int auth;
- auth = title.find(" by", 0, TRUE);
- author = title.right(title.length() - (auth + 3) );
- if( int finder = author.find("[", 0, TRUE)) {
- author = author.left( finder);
- }
- }
- else if ( title.contains( "by ", TRUE) ) {
- int auth;
- auth = title.find("by ", 0, TRUE);
- author = title.right(title.length() - (auth + 3) );
- if( int finder = author.find("[", 0, TRUE)) {
- author = author.left( finder);
- }
- }
- else if ( title.contains( ",", TRUE) ) {
- int auth;
- auth = title.find(",", 0, TRUE);
- author = title.right( title.length() - (auth + 1) );
- if ( author.contains( ",", TRUE) ) {
- int auth;
- auth = author.find(",", 0, TRUE);
- author = author.right( author.length() - (auth + 1) );
- }
- if( int finder = author.find("[", 0, TRUE)) {
- author = author.left( finder);
- }
- }
- else if ( title.contains( "/", TRUE) ) {
- int auth;
- auth = title.find("/", 0, TRUE);
- author = title.right(title.length() - (auth + 1) );
- if( int finder = author.find("[", 0, TRUE)) {
- author = author.left( finder);
- }
- }
- else if ( title.contains( "of", TRUE) ) {
- int auth;
- auth = title.find("of", 0, TRUE);
- author = title.right(title.length() - (auth + 2) );
- if( int finder = author.find("[", 0, TRUE))
- {
- author = author.left( finder);
- }
- } else {
- author = "";
- }
- if ( author.contains("et. al")) {
- int auth;
- auth = author.find("et. al", 0, TRUE);
- author = author.left( auth );
- }
- if ( author.contains("#")) {
- int auth;
- auth = author.find("#", 0, TRUE);
- author = author.left( auth);
- }
- if ( author.contains("(")) {
- int auth;
- auth = author.find("(", 0, TRUE);
- author = author.left( auth);
- }
- if ( author.contains("et al")) {
- int auth;
- auth = author.find("et al", 0, TRUE);
- author = author.left( auth );
- }
- QRegExp r = QRegExp("[0-9]", TRUE, FALSE);
- if ( author.left(2).find( r) != -1 ) {
- author = "";
- }
- // if( author.contains(" ", TRUE)) {
- // int suth = author.findRev(" ", -1, TRUE);
- // author = author.right( author.length() - suth);
- // }
-
- // title
- // author
- return true;
+ if( title.contains( ", by", TRUE)) {
+ int auth;
+ auth = title.find(", by", 0, TRUE);
+ author = title.right(title.length() - (auth + 4) );
+ if( int finder = author.find("[", 0, TRUE)) {
+ author = author.left(finder);
+ }
+ }
+ else if ( title.contains( "by, ", TRUE) ) {
+ int auth;
+ auth = title.find("by, ", 0, TRUE);
+ author = title.right(title.length() - (auth + 4) );
+ if( int finder = author.find("[", 0, TRUE)) {
+ author = author.left( finder);
+ }
+ }
+ else if ( title.contains( " by", TRUE) ) {
+ int auth;
+ auth = title.find(" by", 0, TRUE);
+ author = title.right(title.length() - (auth + 3) );
+ if( int finder = author.find("[", 0, TRUE)) {
+ author = author.left( finder);
+ }
+ }
+ else if ( title.contains( "by ", TRUE) ) {
+ int auth;
+ auth = title.find("by ", 0, TRUE);
+ author = title.right(title.length() - (auth + 3) );
+ if( int finder = author.find("[", 0, TRUE)) {
+ author = author.left( finder);
+ }
+ }
+ else if ( title.contains( ",", TRUE) ) {
+ int auth;
+ auth = title.find(",", 0, TRUE);
+ author = title.right( title.length() - (auth + 1) );
+ if ( author.contains( ",", TRUE) ) {
+ int auth;
+ auth = author.find(",", 0, TRUE);
+ author = author.right( author.length() - (auth + 1) );
+ }
+ if( int finder = author.find("[", 0, TRUE)) {
+ author = author.left( finder);
+ }
+ }
+ else if ( title.contains( "/", TRUE) ) {
+ int auth;
+ auth = title.find("/", 0, TRUE);
+ author = title.right(title.length() - (auth + 1) );
+ if( int finder = author.find("[", 0, TRUE)) {
+ author = author.left( finder);
+ }
+ }
+ else if ( title.contains( "of", TRUE) ) {
+ int auth;
+ auth = title.find("of", 0, TRUE);
+ author = title.right(title.length() - (auth + 2) );
+ if( int finder = author.find("[", 0, TRUE))
+ {
+ author = author.left( finder);
+ }
+ } else {
+ author = "";
+ }
+ if ( author.contains("et. al")) {
+ int auth;
+ auth = author.find("et. al", 0, TRUE);
+ author = author.left( auth );
+ }
+ if ( author.contains("#")) {
+ int auth;
+ auth = author.find("#", 0, TRUE);
+ author = author.left( auth);
+ }
+ if ( author.contains("(")) {
+ int auth;
+ auth = author.find("(", 0, TRUE);
+ author = author.left( auth);
+ }
+ if ( author.contains("et al")) {
+ int auth;
+ auth = author.find("et al", 0, TRUE);
+ author = author.left( auth );
+ }
+ QRegExp r = QRegExp("[0-9]", TRUE, FALSE);
+ if ( author.left(2).find( r) != -1 ) {
+ author = "";
+ }
+ // if( author.contains(" ", TRUE)) {
+ // int suth = author.findRev(" ", -1, TRUE);
+ // author = author.right( author.length() - suth);
+ // }
+
+ // title
+ // author
+ return true;
}////// end getAuthor()
/*
selected one etext*/
void LibraryDialog::select_title( QListViewItem * item)
{
- if(item != NULL) {
- i++;
- int index = tabWidget->currentPageIndex();
- DlglistItemTitle = item->text(0);
- DlglistItemYear = item->text(2);
- DlglistItemFile = item->text(3);
- switch (index) {
- case 0: {
- ListView1->clearSelection();
- }
- break;
- case 1: {
- ListView2->clearSelection();
- }
- break;
- case 2: {
- ListView3->clearSelection();
- }
- break;
- case 3: {
- ListView4->clearSelection();
- }
- break;
- case 4: {
- ListView5->clearSelection();
- }
- break;
- };
- }
-
- if(DlglistItemTitle.length()>2) {
- // DlglistItemNumber = item->text(0);
- item = 0;
- odebug << "string from librarydialog is:" << DlglistItemYear << " " << DlglistItemFile << " " << DlglistItemNumber << "" << oendl;
- odebug << "Title is "+DlglistItemTitle << oendl;
-
- // check for connection here
- // if( get_extext())
-
- if(download_Etext()) {
- // odebug << "get here 2" << oendl;
- if(i_binary == 1) {
-
- }
- if(checkBox->isChecked () ) {
- accept();
- }
- }
- }
+ if(item != NULL) {
+ i++;
+ int index = tabWidget->currentPageIndex();
+ DlglistItemTitle = item->text(0);
+ DlglistItemYear = item->text(2);
+ DlglistItemFile = item->text(3);
+ switch (index) {
+ case 0: {
+ ListView1->clearSelection();
+ }
+ break;
+ case 1: {
+ ListView2->clearSelection();
+ }
+ break;
+ case 2: {
+ ListView3->clearSelection();
+ }
+ break;
+ case 3: {
+ ListView4->clearSelection();
+ }
+ break;
+ case 4: {
+ ListView5->clearSelection();
+ }
+ break;
+ };
+ }
+
+ if(DlglistItemTitle.length()>2) {
+ // DlglistItemNumber = item->text(0);
+ item = 0;
+ odebug << "string from librarydialog is:" << DlglistItemYear << " " << DlglistItemFile << " " << DlglistItemNumber << "" << oendl;
+ odebug << "Title is "+DlglistItemTitle << oendl;
+
+ // check for connection here
+ // if( get_extext())
+
+ if(download_Etext()) {
+ // odebug << "get here 2" << oendl;
+ if(i_binary == 1) {
+
+ }
+ if(checkBox->isChecked () ) {
+ accept();
+ }
+ }
+ }
}
bool LibraryDialog::download_Etext()
{ // ftp method
// might have to use old gpl'd ftp for embedded!!
- Config cfg("Gutenbrowser");
- cfg.setGroup("FTPsite");
- ftp_host=cfg.readEntry("SiteName", "sailor.gutenberg.org");
- ftp_base_dir= cfg.readEntry("base", "/pub/gutenberg");
-
- odebug << "about to network dialog" << oendl;
- QString NewlistItemNumber, NewlistItemYear, ls_result, result_line, s, dir, networkUrl, outputFile;
-
- //////////////////// FIXME- if 'x' is part of real name....
- NewlistItemFile = DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, FALSE)).left(DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, FALSE)).find("x", 1, FALSE));
-
- if( NewlistItemFile.find( DlglistItemFile.left(4) ,0,TRUE) ==-1 ) {
- NewlistItemFile.replace( 0,4, DlglistItemFile.left(4));
- odebug << "NewlistItemFile is now "+NewlistItemFile << oendl;
- }
- NewlistItemYear = DlglistItemYear.right(2);
- int NewlistItemYear_Int = NewlistItemYear.toInt(0, 10);
- odebug << NewlistItemYear << oendl;
- if (NewlistItemYear_Int < 91 && NewlistItemYear_Int > 70) {
- NewlistItemYear = "90";
- }
- Edir ="etext" +NewlistItemYear;
- dir= ftp_base_dir + "/etext" +NewlistItemYear+"/";
- if( ftp_base_dir.find("=",0,true) )
- ftp_base_dir.remove( ftp_base_dir.find("=",0,true),1);
-
- networkUrl= "ftp://"+ftp_host+dir;
-
- outputFile=local_library+".guten_temp";
- //odebug << "Download file:" << NewlistItemFile << "" << oendl;
- odebug << "Checking: "+ftp_host+" "+dir+" "+outputFile+" "+NewlistItemFile << oendl;
- QStringList networkList;
- networkList.append((const char *)ftp_host);
- networkList.append((const char *)dir);
- networkList.append((const char *)outputFile);
- networkList.append((const char *)NewlistItemFile);
+ Config cfg("Gutenbrowser");
+ cfg.setGroup("FTPsite");
+ ftp_host=cfg.readEntry("SiteName", "sailor.gutenberg.org");
+ ftp_base_dir= cfg.readEntry("base", "/pub/gutenberg");
+
+ odebug << "about to network dialog" << oendl;
+ QString NewlistItemNumber, NewlistItemYear, ls_result, result_line, s, dir, networkUrl, outputFile;
+
+ //////////////////// FIXME- if 'x' is part of real name....
+ NewlistItemFile = DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, FALSE)).left(DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, FALSE)).find("x", 1, FALSE));
+
+ if( NewlistItemFile.find( DlglistItemFile.left(4) ,0,TRUE) ==-1 ) {
+ NewlistItemFile.replace( 0,4, DlglistItemFile.left(4));
+ odebug << "NewlistItemFile is now "+NewlistItemFile << oendl;
+ }
+ NewlistItemYear = DlglistItemYear.right(2);
+ int NewlistItemYear_Int = NewlistItemYear.toInt(0, 10);
+ odebug << NewlistItemYear << oendl;
+ if (NewlistItemYear_Int < 91 && NewlistItemYear_Int > 70) {
+ NewlistItemYear = "90";
+ }
+ Edir ="etext" +NewlistItemYear;
+ dir= ftp_base_dir + "/etext" +NewlistItemYear+"/";
+ if( ftp_base_dir.find("=",0,true) )
+ ftp_base_dir.remove( ftp_base_dir.find("=",0,true),1);
+
+ networkUrl= "ftp://"+ftp_host+dir;
+
+ outputFile=local_library+".guten_temp";
+ //odebug << "Download file:" << NewlistItemFile << "" << oendl;
+ odebug << "Checking: "+ftp_host+" "+dir+" "+outputFile+" "+NewlistItemFile << oendl;
+ QStringList networkList;
+ networkList.append((const char *)ftp_host);
+ networkList.append((const char *)dir);
+ networkList.append((const char *)outputFile);
+ networkList.append((const char *)NewlistItemFile);
//<< (char *)ftp_host << (char *)dir << (char *)outputFile << (char *)NewlistItemFile;
- NetworkDialog *NetworkDlg;
- NetworkDlg = new NetworkDialog( this,"Network Protocol Dialog", TRUE, 0, networkList);
-
-
- if( NetworkDlg->exec() != 0 ) { // use new, improved, *INSTANT* network-dialog-file-getterer
- File_Name= NetworkDlg->localFileName;
- odebug << "back to Library from Network Dialog" << oendl;
- odebug << "Just downloaded "+NetworkDlg->localFileName << oendl;
-
- // if (File_Name.find( local_library, 0, TRUE) != -1 ) { //could not be found
- // QString oldName=File_Name;
- // File_Name.replace(0,local_library.length(),downDir);
- // odebug << "File_Name now is "+File_Name << oendl;
-
- // }
- // rename .txt to .etx
- 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());
- 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;
- DocLnk lnk;
- 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;
+ NetworkDialog *NetworkDlg;
+ NetworkDlg = new NetworkDialog( this,"Network Protocol Dialog", TRUE, 0, networkList);
+
+
+ if( NetworkDlg->exec() != 0 ) { // use new, improved, *INSTANT* network-dialog-file-getterer
+ File_Name= NetworkDlg->localFileName;
+ odebug << "back to Library from Network Dialog" << oendl;
+ odebug << "Just downloaded "+NetworkDlg->localFileName << oendl;
+
+ // if (File_Name.find( local_library, 0, TRUE) != -1 ) { //could not be found
+ // QString oldName=File_Name;
+ // File_Name.replace(0,local_library.length(),downDir);
+ // odebug << "File_Name now is "+File_Name << oendl;
+
+ // }
+ // rename .txt to .etx
+ 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());
+ 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;
+ DocLnk lnk;
+ 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::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++;
+ 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;
+ return false;
}
void LibraryDialog::cancelIt()
{
- saveConfig();
+ saveConfig();
- DlglistItemNumber = "";
- this->reject();
+ 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.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);
- 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();
+ 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;
-
- 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);
-
- 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;
- i_berger = 1;
- } else {
- resultLs.clear();
+ 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;
+
+ 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);
+
+ if( resultString.find( searcherStr, 0, cS) != -1) {
+ Searchlist.append( resultString);
}
- 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();
- }
+ }
+ }
+ 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;
+ i_berger = 1;
+ }
+ 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");*/
+ 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) {
// odebug << "Issuing the command "+cmd << oendl;
// #if defined(_WS_WIN_)
// WinExec( cmd, SW_HIDE );
// #endif
// #if defined(_WS_X11_)
// system( cmd);
// #endif
// #ifndef Q_WS_QWS
// system( cmd);
// #endif
// // printf("unzip\n");
// // remove( zipFile /*newestLibraryFile*/);
// return true;
// }
// else if(exit==QMessageBox::No) {
// // printf("unzip\n");
// return false;
// }
// } else {
// // QMessageBox::message( "Note",( tr("Please install unzip in your PATH")) );
// return false;
// }
// return true;
// }
void LibraryDialog::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;
+ // 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;
+ // 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();
+ // 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;
}
}
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;
+ 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);
-
- qApp->processEvents();
- if( QFile( new_index).exists() /* && this->isHidden() */) {
- newindexLib.setName( new_index);
- indexLib.setName( new_index);
- odebug << "index file is "+ new_index << oendl;
- Newlibrary();
- } else {
- newindexLib.setName( old_index);
- indexLib.setName( old_index);
- odebug << "new index nameis "+ old_index << oendl;
- Library();
- }
- indexLoaded=true;
- buttonSearch->setEnabled(TRUE);
- moreInfoButton->setEnabled(TRUE);
-
- buttonLibrary->setDown(FALSE);
- buttonNewList->setText("Download");
- qApp->processEvents();
+ buttonLibrary->setDown(TRUE);
+
+ qApp->processEvents();
+ if( QFile( new_index).exists() /* && this->isHidden() */) {
+ newindexLib.setName( new_index);
+ indexLib.setName( new_index);
+ odebug << "index file is "+ new_index << oendl;
+ Newlibrary();
+ } else {
+ newindexLib.setName( old_index);
+ indexLib.setName( old_index);
+ odebug << "new index nameis "+ old_index << oendl;
+ Library();
+ }
+ indexLoaded=true;
+ buttonSearch->setEnabled(TRUE);
+ moreInfoButton->setEnabled(TRUE);
+
+ buttonLibrary->setDown(FALSE);
+ buttonNewList->setText("Download");
+ qApp->processEvents();
}
diff --git a/noncore/apps/opie-gutenbrowser/gutenbrowser.cpp b/noncore/apps/opie-gutenbrowser/gutenbrowser.cpp
index fac21da..c7cdd83 100644
--- a/noncore/apps/opie-gutenbrowser/gutenbrowser.cpp
+++ b/noncore/apps/opie-gutenbrowser/gutenbrowser.cpp
@@ -1,752 +1,763 @@
/***************************************************************************
gutenbrowser.cpp - description
-------------------
begin : Mon Jul 24 22:33:12 MDT 2000
copyright : (C) 2000 -2004 by llornkcor
email : ljp@llornkcor.com
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
***************************************************************************/
// http search
// http://digital.library.upenn.edu/books/authors.html
// http://digital.library.upenn.edu/books/titles.html
// ftp://ibiblio.org/pub/docs/books/gutenberg/GUTINDEX.ALL
// donate@gutenberg.net
#include "editTitle.h"
#include "gutenbrowser.h"
#include "LibraryDialog.h"
//#include "bookmarksdlg.h"
#include "optionsDialog.h"
#include "helpme.h"
#include "NetworkDialog.h"
#include "openetext.h"
#include "output.h"
/* OPIE */
#include <opie2/odebug.h>
#include <qpe/qpeapplication.h>
#include <qpe/fontdatabase.h>
#include <qpe/config.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/mimetype.h>
#include <qpe/resource.h>
#include <qpe/applnk.h>
/* QT */
#include <qregexp.h>
#include <qregion.h>
#include <qpaintdevicemetrics.h>
#include <qvaluelist.h>
#include <qlabel.h>
#include <qclipboard.h>
#include <qpainter.h>
#include <qpalette.h>
#include <qobjectlist.h>
#include <qfontdialog.h>
#include <qtextview.h>
#include <qbrush.h>
#include <qfile.h>
#include <qfontinfo.h>
#include <qscrollview.h>
#include <qpoint.h>
/* STD */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
static const int nfontsizes = 9;
static const int fontsize[nfontsizes] = {8,9,10,11,12,13,14,18,24};
#ifdef NOQUICKLAUNCH
Gutenbrowser::Gutenbrowser()
Gutenbrowser();
#else
Gutenbrowser::Gutenbrowser(QWidget *,const char*, WFlags )
#endif
: QMainWindow()
{
// QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable;
// QCopEnvelope e("QPE/System", "grabKeyboard(QString)" );
// e << "";
// QPEApplication::grabKeyboard();
showMainList=TRUE;
working=false;
this->setUpdatesEnabled(TRUE);
// #ifndef Q_WS_QWS
QString msg;
msg="You have now entered unto gutenbrowser,\n";
msg+="make your self at home, sit back, relax and read something great.\n";
local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/";
setCaption("Gutenbrowser");// Embedded " VERSION);
this->setUpdatesEnabled(TRUE);
// bool firstTime=FALSE;
topLayout = new QVBoxLayout( this, 0, 0, "topLayout");
menu = new QHBoxLayout(-1,"menu");
buttons2 = new QHBoxLayout(-1,"buttons2");
edits = new QHBoxLayout(-1,"edits");
useSplitter=TRUE;
initConfig();
initMenuBar();
initButtonBar();
initStatusBar();
initView();
initSlots();
qDebug("init finished");
QPEApplication::setStylusOperation( mainList->viewport(),QPEApplication::RightOnHold);
connect( mainList, SIGNAL( mouseButtonPressed( int, QListBoxItem *, const QPoint &)),
this, SLOT( mainListPressed(int, QListBoxItem *, const QPoint &)) );
if( useIcons)
toggleButtonIcons( TRUE);
else
toggleButtonIcons( FALSE);
enableButtons(false);
Config config("Gutenbrowser"); // populate menubuttonlist
config.setGroup("General");
config.setGroup( "Files" );
QString s_numofFiles = config.readEntry("NumberOfFiles", "0" );
int i_numofFiles = s_numofFiles.toInt();
QString tempFileName;
for (int i = 0; i <= i_numofFiles; i++) {
// tempFileName.setNum(i);
config.setGroup( "Files" );
QString ramble = config.readEntry( QString::number(i), "" );
config.setGroup( "Titles" );
QString tempTitle = config.readEntry( ramble, "");
config.setGroup( tempTitle);
int index = config.readNumEntry( "LineNumber", -1 );
if( index != -1) {
odebug << tempTitle << oendl;
if(!tempTitle.isEmpty()) bookmarksMenu->insertItem( tempTitle);
}
}
// QString gutenIndex= local_library + "GUTINDEX.ALL";
QString gutenIndex = QPEApplication::qpeDir()+ "etc/gutenbrowser/GUTINDEX.ALL";
qDebug("gutenindex "+gutenIndex );
if( QFile( gutenIndex).exists() ) {
indexLib.setName( gutenIndex);
} else {
QString localLibIndexFile = QPEApplication::qpeDir()+ "etc/gutenbrowser/PGWHOLE.TXT";
// QString localLibIndexFile= local_library + "PGWHOLE.TXT";
newindexLib.setName( localLibIndexFile);
}
qDebug("attempting new library");
LibraryDlg = new LibraryDialog( this, "Library Index" /*, TRUE */);
loadCheck = false;
chdir(local_library);
if(!showMainList) {
Lview->setFocus();
// if(firstTime)
// Bookmark();
for (int i=1;i< qApp->argc();i++) {
qDebug("Suppose we open somethin");
if(!load(qApp->argv()[i])) return;
}
} else {
fillWithTitles();
mainList->setFocus();
// mainList->setCurrentItem(0);
}
writeConfig();
QTimer::singleShot( 250, this, SLOT(hideView()) );
} //end init
Gutenbrowser::~Gutenbrowser() {
// QPEApplication::grabKeyboard();
// QPEApplication::ungrabKeyboard();
odebug << "Exit" << oendl;
}
/*
Google.com search */
void Gutenbrowser::InfoBarClick() {
QString text;
if( Lview->hasSelectedText()) {
Lview->copy();
QClipboard *cb = QApplication::clipboard();
text = cb->text();
} else {
// text=title;
text=this->caption();
}
searchGoogle(text);
}
/*
download http with wget or preferred browser */
void Gutenbrowser::goGetit( const QString &url, bool showMsg) {
// int eexit=0;
QString cmd;
// config.read();
qApp->processEvents();
QString filename = QPEApplication::qpeDir();
if(filename.right(1)!="/")
filename+="/etc/gutenbrowser/";
else
filename+="etc/gutenbrowser/";
odebug << "filename "+filename << oendl;
// QString filename = QDir::homeDirPath()+"/Applications/gutenbrowser/";
filename += url.right( url.length() - url.findRev("/",-1,TRUE) -1);
Config config("Gutenbrowser");
config.setGroup( "Browser" );
QString brow = config.readEntry("Preferred", "Opera");
odebug << "Preferred browser is "+brow << oendl;
if(!showMsg) { //if we just get the gutenindex.all
cmd="wget -O " + filename +" " + url+" 2>&1" ;
chdir(local_library);
odebug << "Issuing the system command: " << cmd << "" << oendl;
Output *outDlg;
- outDlg = new Output(this, tr("Gutenbrowser Output"),FALSE);
+
+ 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");
- 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);
+ 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();
+
}
- pclose(fp);
- outDlg->close();
+ outDlg->close();
+
if(outDlg)
delete outDlg;
} else {
if( brow == "Konq") {
cmd = "konqueror "+url+" &";
}
if( brow == "Opera") { //for desktop testing
cmd = "opera "+url+" &";
}
// if( brow == "Opera") { // on Zaurus
// cmd = "operagui "+url+" &";
// }
if( brow == "Mozilla") {
cmd = "mozilla "+url+" &";
}
if( brow == "Netscape") {
cmd = "netscape "+url+" &";
}
if(brow == "wget") {
// cmd="wget -q "+url+" &";
QString tempHtml=local_library+"webster.html";
cmd="wget -O "+tempHtml+" -q "+url;
}
chdir(local_library);
odebug << "Issuing the sys command: " << cmd << "" << oendl;
system(cmd);
}
}
void Gutenbrowser::toggleButtonIcons( bool useEm) {
QString pixDir;
if(useEm)
useEm=TRUE;
pixDir=QPEApplication::qpeDir()+"pics/gutenbrowser";
odebug << "Docdir is "+QPEApplication::documentDir() << oendl;
if( useIcons && QDir( pixDir).exists() ) {
LibraryButton->setPixmap( Resource::loadPixmap("home") ); //in inline
OpenButton->setPixmap( Resource::loadPixmap("gutenbrowser/openbook"));
ForwardButton->setPixmap( Resource::loadPixmap("forward"));//in inline
BackButton->setPixmap( Resource::loadPixmap("back") );//in inline
SearchButton->setPixmap( Resource::loadPixmap("gutenbrowser/search") );//in inline
lastBmkButton->setPixmap( Resource::loadPixmap("gutenbrowser/bookmark_folder"));
setBookmarkButton->setPixmap( Resource::loadPixmap("gutenbrowser/bookmark") );
dictionaryButton->setPixmap( Resource::loadPixmap("gutenbrowser/spellcheck") );
InfoBar->setPixmap( Resource::loadPixmap("gutenbrowser/google"));
}
}
bool Gutenbrowser::queryExit()
{
int exit=QMessageBox::information(this, "Quit...", "Do your really want to quit?",
QMessageBox::Ok, QMessageBox::Cancel);
if (exit==1) {
writeConfig();
qApp->quit();
} else {
};
return (exit==1);
}
// SLOT IMPLEMENTATION
void Gutenbrowser::slotFilePrint() {
}
void Gutenbrowser::ByeBye() {
if (b_queryExit)
queryExit();
else {
// writeConfig();
qApp->quit();
}
}
void Gutenbrowser::HelpBtn() {
HelpMe* HelpDlg;
HelpDlg = new HelpMe( this, "Help Dialog");
HelpDlg->showMaximized();
}
void Gutenbrowser::DownloadIndex() {
#ifndef Q_WS_QWS
{
switch( QMessageBox::information( 0, (tr("Download Library Index, or FTP sites?")),
(tr("Do you want to download the newest\n"
"Project Gutenberg Library Index?\n"
"or select an ftp site?\n")),
(tr("&Library Index")), (tr("&Ftp Site")), (tr("&Cancel")), 2, 2 ) )
{
case 0: // index clicked,
downloadLibIndex();
break;
case 1: // ftp selected
downloadFtpList();
break;
case 2: // Cancel
break;
};
}
#endif
} // end DownloadIndex
void Gutenbrowser::downloadFtpList() {
// QString cmd="wget http://www.promo.net/pg/list.html");
//system(cmd);
qApp->processEvents();
optionsDialog* optDlg;
optDlg = new optionsDialog( this,"Options_Dlg", true);
optDlg->getSite();
if(optDlg)
delete optDlg;
}
void Gutenbrowser::downloadLibIndex() {
// QString dwmloader = local_library + "pgwhole.zip";
// QString cmd = "lynx -source http://www.gutenberg.net/pgwhole.zip | cat >> " + dwmloader;
// system(cmd);
// QString outputFile= local_library+ "GUTINDEX.ALL";
// config.setGroup( "FTPsite" ); // ftp server config
// ftp_host=config.readEntry("SiteName", "");
// ftp_base_dir= config.readEntry("base", "");
// QString networkUrl= "ftp://"+ftp_host+ftp_base_dir+"/GUTINDEX.ALL";
QDir dir( local_library);
dir.cd("", TRUE);
goGetit( "http://sailor.gutenberg.org/GUTINDEX.ALL", false); // until ghttp works on binaries -qt3
// goGetit( "http://www.gutenberg.net/pgwhole.zip", true); // until ghttp works on binaries -qt3
// NetworkDialog *NetworkDlg;
// NetworkDlg = new NetworkDialog( this,"Network Protocol Dialog", TRUE, 0, networkUrl, outputFile );
// if( NetworkDlg->exec() != 0 )
// { // use new, improved, *INSTANT* network-dialog-file-getterer
//// QMessageBox::message("Note","");
// }
// if(NetworkDlg)
// delete NetworkDlg;
}
void Gutenbrowser::PrintBtn() {
}
void Gutenbrowser::SearchBtn() {
if( loadCheck) {
odebug << "loadCheck: we have a loaded doc" << oendl;
Search();
}
// else
// QMessageBox::message("Note","Sorry, can't search. No etext is loaded");
}
void Gutenbrowser::ForwardBtn() {
if( !ForwardButton->autoRepeat() && !ForwardButton->isDown()) {
QString s;
QString insertString;
int pageSize= Lview->PageSize();
Lview->clear();
for(int fd=0; fd < pageSize - 1;fd++) {
f.readLine(s, 256);
if(useWrap)
s.replace(QRegExp("\n"),"");
insertString+=s;
Lview->insertLine( s, -1);
// odebug << s << oendl;
currentLine++;
}
// Lview->insertAt( insertString,0,0, FALSE);
currentFilePos = f.at();
// if( i_pageNum != pages) {
// Lview->MultiLine_Ex::pageDown( FALSE);
i_pageNum++;
pageStopArray.resize(i_pageNum + 1);
// int length = Lview->length();
pageStopArray[i_pageNum ] = currentFilePos;
odebug << currentFilePos << " current page is number " << i_pageNum
<< ", pagesize " << pageSize << ", length " << Lview->length()
<< ", current " << pageStopArray[i_pageNum] << oendl;
setStatus();
// Lview->setCursorPosition( 0, 0, FALSE);
// }
} else {
odebug << "bal" << oendl;
// if( i_pageNum != pages) {
// // int newTop = Lview->Top();
// // if(Lview->lastRow() > i)
// Lview->ScrollUp(1);
// // i_pageNum++;
// setStatus();
// Lview->setCursorPosition( Lview->Top(), 0, FALSE);
// }
}
Lview->setFocus();
odebug << "page number " << i_pageNum << " line number " << currentLine << "" << oendl;
}
void Gutenbrowser::BackBtn() {
if( i_pageNum > 0) {
int pageSize= Lview->PageSize();
// int length=Lview->length();
i_pageNum--;
currentFilePos = f.at();
odebug << currentFilePos << " move back to " << pageStopArray[i_pageNum - 1 ]
<< ", current page number " << i_pageNum
<< ", " << pageSize << ", length " << Lview->length() << oendl;
if( i_pageNum < 2) {
f.at( 0);
} else {
if(!f.at( pageStopArray[i_pageNum - 1] ))
odebug << "File positioned backward did not work" << oendl;
}
QString s;
// int sizeLine=0;
Lview->clear();
// QString insertString;
for(int fd = 0; fd < pageSize ;fd++) {
// Lview->removeLine( Lview->PageSize() );
f.readLine(s, 256);
if(useWrap)
s.replace(QRegExp("\n"),"");
currentLine++;
// insertString+=s;
Lview->insertLine( s, -1);
}
// Lview->insertAt( insertString,0,0, FALSE);
if( !BackButton->autoRepeat() && !BackButton->isDown()) {
QString topR;
QString lastR;
QString pageR;
// int sizer = Lview->lastRow() - Lview->topRow();
// int i_topRow = Lview->topRow();
if( i_pageNum < 1)
i_pageNum = 1;
setCaption(QString::number(i_pageNum));
} else {
// int newTop = Lview->Top();
// if(Lview->lastRow() > i)
Lview->MultiLine_Ex::pageUp( FALSE);
// Lview->ScrollDown(1);
// i_pageNum--;
if( i_pageNum < 1)
i_pageNum = 1;
setStatus();
// Lview->setCursorPosition( Lview->Top(), 0, FALSE);
}
}
Lview->setFocus();
}
void Gutenbrowser::doBeginBtn() {
if(loadCheck) {
qApp->processEvents();
BeginBtn();
}
}
// moves text to the very top = 0
void Gutenbrowser::TopBtn() {
if(loadCheck) {
if( i_pageNum != 0) {
odebug << "top" << oendl;
qApp->processEvents();
currentLine = 0;
i_pageNum = 1;
int pageSize = Lview->PageSize() ;
Lview->clear();
QString s;
f.at(0);
for(int fd=0; fd < pageSize ;fd++) {
f.readLine(s, 256);
if(useWrap)
s.replace(QRegExp("\n"),"");
Lview->insertLine(s ,-1);
currentLine++;
}
// Lview->setCursorPosition( 0,0, FALSE);
i_pageNum=1;
setStatus();
}
Lview->setFocus();
}
}
//moves text to the start of the EText
void Gutenbrowser::BeginBtn() {
i_pageNum = 1;
currentLine = 0;
QString s_pattern="*END*THE SMALL PRINT";
QString sPattern2 = "*END THE SMALL PRINT";
int pageSize = Lview->PageSize();
Lview->clear();
// int lines = Lview->numLines();
int pos = 0;//, i = 0;
int i_topRow = Lview->topRow();
QString LeftText;// = Lview->text();
// int linesPerPage = Lview->lastRow() - Lview->topRow();
// int pages = (( linesPerPage / Lview->editSize() ) ) +1;
// int pageN = 0;
i_pageNum = 1;
int lastPage=1;
int lineNo=0;
QString s;
f.at( 0);
while ( !f.atEnd() ) {
f.readLine(s, 256);
lineNo++;
LeftText = s;
currentFilePos = f.at();
i_pageNum = lineNo/pageSize;
if(lastPage < i_pageNum) {
pageStopArray.resize(i_pageNum + 1);
pageStopArray[i_pageNum ] = currentFilePos;
// odebug << "new page number " << i_pageNum << ", found at " << currentFilePos << "" << oendl;
}
// lastPage = i_pageNum;
if( LeftText.find( s_pattern, 0 , TRUE) != -1 || LeftText.find( sPattern2, 0 , TRUE) != -1 ) {
odebug << "<<<<<< FOUND IT!! new page number " << i_pageNum << ", found at " << currentFilePos << "" << oendl;
break;
}
}
if(f.atEnd()) //in case we didnt find anything, we need to show something
f.at(0);
Lview->clear();
for(int fd=0; fd < pageSize - 1;fd++) {
f.readLine(s, 256);
if(useWrap)
s.replace(QRegExp("\n"),"");
Lview->insertLine( s, -1);
currentLine++;
}
i_pageNum = lineNo/pageSize;
pageStopArray.resize(i_pageNum + 1);
// int length = Lview->length();
qApp->processEvents();
if( pos > i_topRow ) {
// Lview->setCursorPosition( pos+linesPerPage+2/* - i_topRow+3 */,0, FALSE);
} else {
// Lview->setCursorPosition( pos+2 , 0, FALSE );
}
Lview->deselect();
// AdjustStatus();
Lview->setFocus();
}
/*
sets the current page and place as a bookmark*/
void Gutenbrowser::setBookmark() {
int eexit=QMessageBox::information(this, "Note",
"Do you really want to \nset this bookmark?."
,QMessageBox::Yes, QMessageBox::No);
if (eexit== 3) {
currentFilePos = f.at();
Config cfg("Gutenbrowser");
cfg.setGroup("General");
file_name = cfg.readEntry("Current","");
qApp->processEvents();
odebug << "Setting book mark "+file_name << oendl;
cfg.setGroup("Titles");
title = cfg.readEntry(file_name,"");
odebug << "title is "+ title << oendl;
cfg.setGroup( "Bookmarks" );
cfg.writeEntry("File Name",file_name);
cfg.writeEntry("Page Number",QString::number(i_pageNum) );
cfg.writeEntry( "PagePosition", QString::number( pageStopArray[i_pageNum - 1]));
cfg.writeEntry("Title", title);
int row = Lview->topRow();// Lview->Top();
cfg.writeEntry("LineNumber",QString::number(row) );
cfg.setGroup(title);
cfg.writeEntry("File Name",file_name);
cfg.writeEntry( "LineNumber", QString::number( row));
cfg.writeEntry( "PagePosition", QString::number( pageStopArray[i_pageNum - 1]));
cfg.writeEntry( "Page Number", QString::number( i_pageNum) );
cfg.write();
bookmarksMenu->insertItem( title);
}
} //end setBookmark
/* goes to last set bookmark*/
void Gutenbrowser::Bookmark( int itemId) {
// qApp->processEvents();
Config config("Gutenbrowser");
config.setGroup( "Bookmarks" );
odebug << "<<<<<< " << Lview->PageSize() << ", " << Lview->lastRow() - Lview->topRow() << "" << oendl;
QString itemString;
odebug << "menu item " << itemId << "" << oendl;
QString tempTitle;
QString s_Bmrkrow;
QString s_pageNum;
int Bmrkrow=0;
int bookmarkPosition = 0;
// qApp->processEvents();
config.setGroup( "Bookmarks" );
title = config.readEntry("Title", "");
file_name = config.readEntry("File Name", "");
i_pageNum = config.readNumEntry("Page Number", 0);
bookmarkPosition = config.readNumEntry( "PagePosition",0);
Bmrkrow = config.readNumEntry("LineNumber",0);
if( !file_name.contains("/")) {
file_name = local_library + file_name;
}
// getTitle(file_name);
// qApp->processEvents();
// Lview->setFocus();
this->setFocus();
Lview->clear();
if(!load(file_name)) return;
int pageSize = Lview->PageSize();
f.at(0);
// Lview->clear();
QString s;
int lineNo=0;
int lastPage=1;
while ( !f.atEnd() ) {
f.readLine(s, 256);
lineNo++;
currentFilePos = f.at();
i_pageNum = lineNo/pageSize;
if(lastPage < i_pageNum) {
pageStopArray.resize(i_pageNum + 1);
pageStopArray[i_pageNum ] = currentFilePos;
// odebug << "new page number " << i_pageNum << ", found at " << currentFilePos << "" << oendl;
}
if(currentFilePos == bookmarkPosition)
break;
}
if(f.atEnd())
f.at(0);
else
f.at( bookmarkPosition);
for(int fd=0; fd < pageSize - 1;fd++) {
f.readLine(s, 256);
lineNo++;
if(useWrap)
s.replace(QRegExp("\n"),"");
Lview->insertLine( s, -1);
currentLine++;
}
i_pageNum = lineNo/pageSize;
pageStopArray.resize(i_pageNum + 1);
if(showMainList) {
showMainList=FALSE;
mainList->hide();
Lview->show();
// qApp->processEvents();
}
odebug << "bookmark loaded" << oendl;
setCaption(title);
}
bool Gutenbrowser::load( const char *fileName) {
// QCopEnvelope ( "QPE/System", "busy()" );
odebug << "Title is already set as "+title << oendl;
odebug << "sizeHint " << sizeHint().height() << " pageSize " << Lview->PageSize() << "" << oendl;
// pointSize = Lview->fontInfo().pointSize();