summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2005-03-01 07:56:26 (UTC)
committer llornkcor <llornkcor>2005-03-01 07:56:26 (UTC)
commit2f2b707684582cfa97c96c5fabab2197a7c7f307 (patch) (unidiff)
tree72df20aae2b443f649f73e7f983eefe53a54109d
parente12f0049687c84c24f0b7b737b65df2ed6a500a5 (diff)
downloadopie-2f2b707684582cfa97c96c5fabab2197a7c7f307.zip
opie-2f2b707684582cfa97c96c5fabab2197a7c7f307.tar.gz
opie-2f2b707684582cfa97c96c5fabab2197a7c7f307.tar.bz2
update to new gutenberg directory structures
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-gutenbrowser/LibraryDialog.cpp1854
-rw-r--r--noncore/apps/opie-gutenbrowser/LibraryDialog.h7
-rw-r--r--noncore/apps/opie-gutenbrowser/NetworkDialog.cpp67
-rw-r--r--noncore/apps/opie-gutenbrowser/gutenbrowser.cpp38
4 files changed, 978 insertions, 988 deletions
diff --git a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp
index 549c1d2..3b540c5 100644
--- a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp
+++ b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp
@@ -1,1085 +1,1069 @@
1/*************************************************************************** 1/***************************************************************************
2// LibraryDialog.cpp - description 2// LibraryDialog.cpp - description
3// ------------------- 3// -------------------
4// begin : Sat Aug 19 2000 4// begin : Sat Aug 19 2000
5// copyright : (C) 2000 - 2004 by llornkcor 5// copyright : (C) 2000 - 2004 by llornkcor
6// email : ljp@llornkcor.com 6// email : ljp@llornkcor.com
7// ***************************************************/ 7// ***************************************************/
8// /*************************************************************************** 8// /***************************************************************************
9// * This program is free software; you can redistribute it and/or modify * 9// * This program is free software; you can redistribute it and/or modify *
10// * it under the terms of the GNU General Public License as published by * 10// * it under the terms of the GNU General Public License as published by *
11// * the Free Software Foundation; either version 2 of the License, or * 11// * the Free Software Foundation; either version 2 of the License, or *
12// * (at your option) any later version. * 12// * (at your option) any later version. *
13// ***************************************************************************/ 13// ***************************************************************************/
14//ftp://ibiblio.org/pub/docs/books/gutenberg/GUTINDEX.ALL 14//ftp://ibiblio.org/pub/docs/books/gutenberg/GUTINDEX.ALL
15 15
16#include "LibraryDialog.h" 16#include "LibraryDialog.h"
17#include "output.h" 17#include "output.h"
18 18
19/* OPIE */ 19/* OPIE */
20#include <qpe/applnk.h> 20#include <qpe/applnk.h>
21#include <qpe/qpeapplication.h> 21#include <qpe/qpeapplication.h>
22#include <qpe/qpedialog.h> 22#include <qpe/qpedialog.h>
23#include <opie2/odebug.h> 23//#include <opie2///odebug.h>
24 24
25/* QT */ 25/* QT */
26#include <qpushbutton.h> 26#include <qpushbutton.h>
27#include <qmultilineedit.h> 27#include <qmultilineedit.h>
28//#include <qlayout.h> 28//#include <qlayout.h>
29 29
30/* STD */ 30/* STD */
31#include <unistd.h> 31#include <unistd.h>
32#include <stdio.h> 32#include <stdio.h>
33#include <stdlib.h> 33#include <stdlib.h>
34 34
35/* 35/*
36 * The dialog will by default be modeless, unless you set 'modal' to 36 * The dialog will by default be modeless, unless you set 'modal' to
37 * TRUE to construct a modal dialog. */ 37 * true to construct a modal dialog. */
38LibraryDialog::LibraryDialog( QWidget* parent, const char* name , bool /*modal*/, WFlags fl ) 38LibraryDialog::LibraryDialog( QWidget* parent, const char* name , bool /*modal*/, WFlags fl )
39 : QDialog( parent, name, true/* modal*/, fl ) 39 : QDialog( parent, name, true/* modal*/, fl )
40{ 40{
41 if ( !name ) 41 if ( !name )
42 setName( "LibraryDialog" ); 42 setName( "LibraryDialog" );
43 indexLoaded=false; 43 indexLoaded=false;
44 initDialog(); 44 initDialog();
45 45
46 // this->setMaximumWidth(240); 46 // this->setMaximumWidth(240);
47 47
48 index = "GUTINDEX.ALL"; 48 index = "GUTINDEX.ALL";
49 local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/"; 49 local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/";
50 local_index = local_library + index; 50 local_index = local_library + index;
51 51
52 QString iniFile ; 52 QString iniFile ;
53 iniFile = QPEApplication::qpeDir()+"etc/gutenbrowser/gutenbrowserrc"; 53 iniFile = local_library + "/gutenbrowserrc";
54 new_index = local_library + "/PGWHOLE.TXT";
55 old_index = local_index;
56 // iniFile = local_library+"gutenbrowserrc";
57 // new_index = local_library + "PGWHOLE.TXT";
58 // old_index = local_library + "GUTINDEX.ALL";
54 59
55 new_index =QPEApplication::qpeDir()+"etc/gutenbrowser/PGWHOLE.TXT"; 60 Config config("Gutenbrowser");
56 61
57 old_index = QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL"; 62 config.setGroup( "HttpServer" );
58 // old_index = QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL"; 63 proxy_http = config.readEntry("Preferred", "http://sailor.gutenbook.org");
59 64
60 // iniFile = local_library+"gutenbrowserrc"; 65 config.setGroup( "FTPsite" );
61 // new_index = local_library + "PGWHOLE.TXT"; 66 ftp_host = config.readEntry("SiteName", "sailor.gutenberg.org");
62 // old_index = local_library + "GUTINDEX.ALL"; 67 //odebug << "Library Dialog: ftp_host is "+ftp_host << oendl;
68 // ftp_host=ftp_host.right(ftp_host.length()-(ftp_host.find(") ",0,true)+1) );
69 // ftp_host=ftp_host.stripWhiteSpace();
70 ftp_base_dir= config.readEntry("base", "/pub/gutenberg");
63 71
64 Config config("Gutenbrowser"); 72 i_binary = 0;
65 73
66 config.setGroup( "HttpServer" ); 74 config.setGroup("SortAuth");
67 proxy_http = config.readEntry("Preferred", "http://sailor.gutenbook.org"); 75 if( config.readEntry("authSort", "false") == "true")
76 authBox->setChecked(true);
68 77
69 config.setGroup( "FTPsite" ); 78 config.setGroup("General");
70 ftp_host=config.readEntry("SiteName", "sailor.gutenberg.org"); 79 downDir = config.readEntry( "DownloadDirectory",local_library);
71 odebug << "Library Dialog: ftp_host is "+ftp_host << oendl; 80 //odebug << "downDir is "+downDir << oendl;
72 // ftp_host=ftp_host.right(ftp_host.length()-(ftp_host.find(") ",0,TRUE)+1) ); 81 newindexLib.setName( old_index);
73 // ftp_host=ftp_host.stripWhiteSpace(); 82 indexLib.setName( old_index);
74 ftp_base_dir= config.readEntry("base", "/pub/gutenberg");
75 83
76 i_binary = 0; 84 new QPEDialogListener(this);
77 85 QTimer::singleShot( 1000, this, SLOT( FindLibrary()) );
78 config.setGroup("SortAuth");
79 if( config.readEntry("authSort", "FALSE") == "TRUE")
80 authBox->setChecked(TRUE);
81
82 config.setGroup("General");
83 downDir =config.readEntry( "DownloadDirectory",local_library);
84 odebug << "downDir is "+downDir << oendl;
85 newindexLib.setName( old_index);
86 indexLib.setName( old_index);
87
88 new QPEDialogListener(this);
89 QTimer::singleShot( 1000, this, SLOT( FindLibrary()) );
90 86
91} 87}
92 88
93LibraryDialog::~LibraryDialog() 89LibraryDialog::~LibraryDialog()
94{ 90{
95// delete QList_Item2; 91}
96// delete QList_Item1;
97// delete QList_Item3;
98// delete QList_Item4;
99// delete QList_Item5;
100 92
101 // saveConfig(); 93void LibraryDialog::clearItems() {
94 ListView1->clear();
95 ListView2->clear();
96 ListView3->clear();
97 ListView4->clear();
98 ListView5->clear();
102} 99}
103 100
104 /*This groks using PGWHOLE.TXT */ 101/*This groks using PGWHOLE.TXT */
105void LibraryDialog::Newlibrary() 102void LibraryDialog::Newlibrary()
106{ 103{
104 clearItems();
107#ifndef Q_WS_QWS //sorry embedded gutenbrowser cant use zip files 105#ifndef Q_WS_QWS //sorry embedded gutenbrowser cant use zip files
108 //odebug << "Opening new library index " << newindexLib << "" << oendl; 106 ////odebug << "Opening new library index " << newindexLib << "" << oendl;
109 if ( newindexLib.open( IO_ReadOnly) ) { 107 if ( newindexLib.open( IO_ReadOnly) ) {
110 setCaption( tr( "Library Index - using master pg index." ) );// file opened successfully 108 setCaption( tr( "Library Index - using master pg index." ) );// file opened successfully
111 QTextStream indexStream( &newindexLib ); 109 QTextStream indexStream( &newindexLib );
112 QString indexLine; 110 QString indexLine;
113 while ( !indexStream.atEnd() ) { // until end of file.. 111 while ( !indexStream.atEnd() ) { // until end of file..
114 indexLine = indexStream.readLine(); 112 indexLine = indexStream.readLine();
115 if ( ( indexLine.mid(4,4)).toInt() && !( indexLine.left(3)).toInt()) { 113 if ( ( indexLine.mid(4,4)).toInt() && !( indexLine.left(3)).toInt()) {
116 year = indexLine.mid(4,4); 114 year = indexLine.mid(4,4);
117 year = year.stripWhiteSpace(); 115 file = indexLine.mid( indexLine.find( "[", 0, true )+1, 12 );
118 file = indexLine.mid( indexLine.find( "[", 0, TRUE )+1, 12 ); 116 number = indexLine.mid( indexLine.find( "]", 0, true ) +1, indexLine.find( " ", 0, true )+1 );
119 file = file.stripWhiteSpace(); 117 if( year.toInt() < 1984)
120 number = indexLine.mid( indexLine.find( "]", 0, TRUE ) +1, indexLine.find( " ", 0, TRUE )+1 ); 118 number = number.left( number.length() -1 );
121 if( year.toInt() < 1984) 119 title = indexLine.mid( indexLine.find(" ", 26, true), indexLine.length() );
122 number = number.left( number.length() -1 ); 120
123 number = number.stripWhiteSpace(); 121 addItems();
124 title = indexLine.mid( indexLine.find(" ", 26, TRUE), indexLine.length() ); 122
125 title = title.stripWhiteSpace(); 123 }// end if
126 124 }// end while
127 getAuthor(); // groks author 125 newindexLib.close();
128 author = author.stripWhiteSpace(); 126 }
129 if (authBox->isChecked()) { // this reverses the first name and last name of the author
130 // odebug << "Sorting last name first" << oendl;
131 QString lastName, firstName="";
132 int finder=author.findRev( ' ', -1, TRUE);
133 lastName=author.right( author.length()-finder);
134 firstName=author.left(finder);
135 lastName=lastName.stripWhiteSpace();
136 firstName=firstName.stripWhiteSpace();
137
138 if( lastName.find( firstName, 0, true) == -1) // this avoids dup names
139 author=lastName+", "+firstName;
140 }
141
142 if( !number.isEmpty()
143 && (title.find( "reserved",0, FALSE) == -1)
144 && (file.find( "]",0, TRUE) == -1)
145 && (title.find( "Audio",0, FALSE) == -1)) {
146
147 // fill string list or something to be able to resort the whole library
148 if( author.isEmpty() )
149 QList_Item5 = new QListViewItem( ListView5, /* number,*/ title, author, year, file );
150 else {
151
152 if( (author.left(1) >= QString("A") && author.left(1) <= QString("F")) ||
153 (author.left(1) >= QString("a") && author.left(1) <= QString("f")) )
154 QList_Item1 = new QListViewItem( ListView1,/* number,*/ title, author, year, file );
155
156 else if( (author.left(1) >= QString("G") && author.left(1) <= QString("M")) ||
157 (author.left(1) >= QString("g") && author.left(1) <= QString("m")) )
158 QList_Item2 = new QListViewItem( ListView2, /*number, */title, author, year, file );
159
160 else if( (author.left(1) >= QString("N") && author.left(1) <= QString("R")) ||
161 (author.left(1) >= QString("n") && author.left(1) <= QString("r")) )
162 QList_Item3 = new QListViewItem( ListView3, /*number,*/ title, author, year, file );
163
164 else if( (author.left(1) >= QString("S") && author.left(1) <= QString("Z")) ||
165 (author.left(1) >= QString("s") && author.left(1) <= QString("z")) )
166 QList_Item4 = new QListViewItem( ListView4, /* number,*/ title, author, year, file );
167
168 else
169 QList_Item5 = new QListViewItem( ListView5, /* number,*/ title, author, year, file );
170 }
171 }
172 }// end if
173 }// end while
174 newindexLib.close();
175 }
176#ifndef Q_WS_QWS 127#ifndef Q_WS_QWS
177 setCursor( arrowCursor); 128 setCursor( arrowCursor);
178#endif 129#endif
179#endif 130#endif
180} // end Newlibrary() 131} // end Newlibrary()
181 132
182 133
183void LibraryDialog::Library() 134void LibraryDialog::Library() {
184{// old library groking method 135 clearItems();
136
137 // qDebug( "opening GUTINDEX.ALL file");
138 IDontKnowWhy = "";
139 if ( indexLib.open( IO_ReadOnly) ) { // file opened successfully
140 QTextStream indexStream( &indexLib );
141 QString indexLine;
142 qApp->processEvents();
185 143
186 ListView1->clear(); 144 while ( !indexStream.eof() ) {
187 ListView2->clear(); 145
188 ListView3->clear(); 146 indexLine = indexStream.readLine();
189 ListView4->clear(); 147 if ( indexLine != "") {
190 ListView5->clear(); 148
149 if( (indexLine.mid(4,4)).toInt() ) {
150
151 year = indexLine.mid(4,4);
152 file = indexLine.mid(60,12);
153 if(file.left(1).find("[",0,TRUE) != -1)
154 file.remove(1,1);
155 if( file.find("]",0,TRUE) != -1)
156 file = file.left( file.find("]",0,TRUE));
191 157
192 odebug << "opening GUTINDEX.ALL file" << oendl;
193 IDontKnowWhy = "";
194 if ( indexLib.open( IO_ReadOnly) ) { // file opened successfully
195 QTextStream indexStream( &indexLib );
196 QString indexLine;
197 qApp->processEvents();
198 // int jig;
199 while ( !indexStream.eof() ) {
200
201 indexLine = indexStream.readLine();
202 if ( indexLine != "") {
203 if( (indexLine.mid(4,4)).toInt() /* && !( indexLine.left(3)).toInt()*/ ) {
204 // month = indexLine.left( 3);
205 year = indexLine.mid(4,4);
206 // title = indexLine.mid( 9, 50);
207 file = indexLine.mid(60,12);
208 if(file.left(1).find("[",0,TRUE) != -1)
209 file.remove(1,1);
210 if( file.find("]",0,TRUE) != -1)
211 file = file.left( file.find("]",0,TRUE));
212
213
214 if(file.find("?", 0, false) != -1 ) { 158 if(file.find("?", 0, false) != -1 ) {
215 QString tmpfile = file.replace(QRegExp("[?]"), "8"); 159 QString tmpfile = file.replace(QRegExp("[?]"), "8");
216 // qDebug( "file is now " + tmpfile ); 160 file = tmpfile;
217 file = tmpfile;
218 } 161 }
219 162
220// number = indexLine.mid( indexLine.find( "]", 0, TRUE ) +1, indexLine.find( " ", 0, TRUE )+1 ); 163 number = indexLine.mid(55,5);
221 number = indexLine.mid(55,5); 164 title = indexLine.mid( 9, 50 );
222 number = number.stripWhiteSpace(); 165
223 // title = indexLine.mid( indexLine.find(" ", 26, TRUE), indexLine.length() ); 166 addItems();
224 title = indexLine.mid( 9, 50 ); 167
225 title = title.stripWhiteSpace(); 168 }
226 //odebug << "title is "+title << oendl; 169 else if ( indexLine.mid(73,5).toInt() && indexLine.mid(73,5).toInt() > 10000 ) {
227 getAuthor(); // grok author 170// newer files with numbers > 100000 have new dir structure and need to be parsed differently..
228 author = author.stripWhiteSpace(); 171 number = indexLine.mid(73,5);
229 //odebug << "author is "+author << oendl; 172 int num = number.toInt();
230 if (authBox->isChecked() == TRUE) { // this reverses the first name and last name of the author 173 if(num < 10626)
231 QString lastName, firstName=""; 174 year = "2003";
232 int finder=author.findRev( ' ', -1, TRUE); 175 else if(num >= 10626 && num < 14600)
233 lastName=author.right( author.length()-finder); 176 year = "2004";
234 firstName=author.left(finder); 177 else if(num >= 14600)
235 lastName=lastName.stripWhiteSpace(); 178 year = "2005";
236 firstName=firstName.stripWhiteSpace(); 179
237 180 file = number;// + ".txt";
238 if( lastName.find( firstName, 0, true) == -1) // this avoids dup names 181 title = indexLine.mid(0,72);
239 author=lastName+", "+firstName; 182
240 } 183 addItems();
241 184 //qDebug("file number is " + number + " title is " + title );
242 if( !number.isEmpty() 185 }
243 && (title.find( "reserved",0, FALSE) == -1) 186 }
244 &&(title.find( "Audio",0, FALSE) == -1)) { 187 }
245 // fill string list or something to be able to sort by Author 188 indexLib.close();
246 if( author.isEmpty() ) 189 } else {
247 QList_Item5 = new QListViewItem( ListView5, /*number, */title, author, year, file ); 190 QString sMsg;
248 else { 191
249 if( (author.left(1) >= QString("A") && author.left(1) <= QString("F")) || 192 sMsg = ( tr("<p>Error opening library index file. Please download a new one.</P> "));
250 (author.left(1) >= QString("a") && author.left(1) <= QString("f")) ) 193 QMessageBox::message( "Error",sMsg);
251 QList_Item1 = new QListViewItem( ListView1, /* number,*/ title, author, year, file ); 194 }
252
253 else if( (author.left(1) >= QString("G") && author.left(1) <= QString("M")) ||
254 (author.left(1) >= QString("g") && author.left(1) <= QString("m")) )
255 QList_Item2 = new QListViewItem( ListView2, /* number,*/ title, author, year, file );
256
257 else if( (author.left(1) >= QString("N") && author.left(1) <= QString("R")) ||
258 (author.left(1) >= QString("n") && author.left(1) <= QString("r")) )
259 QList_Item3 = new QListViewItem( ListView3, /* number,*/ title, author, year, file );
260
261 else if( (author.left(1) >= QString("S") && author.left(1) <= QString("Z")) ||
262 (author.left(1) >= QString("s") && author.left(1) <= QString("z")) )
263 QList_Item4 = new QListViewItem( ListView4, /* number,*/ title, author, year, file );
264 }
265 }
266 }
267 }
268 }
269 indexLib.close();
270 } else {
271 QString sMsg;
272 sMsg = ( tr("<p>Error opening local library index:</P> "))+local_index;
273 QMessageBox::message( "Error",sMsg);
274 }
275
276} //end Library() 195} //end Library()
277 196
278 197
279 /* 198/*
280 Groks the author out of the title */ 199 Groks the author out of the title */
281bool LibraryDialog::getAuthor() 200bool LibraryDialog::getAuthor()
282{ 201{
283 if( title.contains( ", by", TRUE)) { 202 if( title.contains( ", by", true)) {
284 int auth; 203 int auth;
285 auth = title.find(", by", 0, TRUE); 204 auth = title.find(", by", 0, true);
286 author = title.right(title.length() - (auth + 4) ); 205 author = title.right(title.length() - (auth + 4) );
287 if( int finder = author.find("[", 0, TRUE)) { 206 if( int finder = author.find("[", 0, true)) {
288 author = author.left(finder); 207 author = author.left(finder);
289 } 208 }
290 } 209 }
291 else if ( title.contains( "by, ", TRUE) ) { 210 else if ( title.contains( "by, ", true) ) {
292 int auth; 211 int auth;
293 auth = title.find("by, ", 0, TRUE); 212 auth = title.find("by, ", 0, true);
294 author = title.right(title.length() - (auth + 4) ); 213 author = title.right(title.length() - (auth + 4) );
295 if( int finder = author.find("[", 0, TRUE)) { 214 if( int finder = author.find("[", 0, true)) {
296 author = author.left( finder); 215 author = author.left( finder);
297 } 216 }
298 } 217 }
299 else if ( title.contains( " by", TRUE) ) { 218 else if ( title.contains( " by", true) ) {
300 int auth; 219 int auth;
301 auth = title.find(" by", 0, TRUE); 220 auth = title.find(" by", 0, true);
302 author = title.right(title.length() - (auth + 3) ); 221 author = title.right(title.length() - (auth + 3) );
303 if( int finder = author.find("[", 0, TRUE)) { 222 if( int finder = author.find("[", 0, true)) {
304 author = author.left( finder); 223 author = author.left( finder);
305 } 224 }
306 } 225 }
307 else if ( title.contains( "by ", TRUE) ) { 226 else if ( title.contains( "by ", true) ) {
308 int auth; 227 int auth;
309 auth = title.find("by ", 0, TRUE); 228 auth = title.find("by ", 0, true);
310 author = title.right(title.length() - (auth + 3) ); 229 author = title.right(title.length() - (auth + 3) );
311 if( int finder = author.find("[", 0, TRUE)) { 230 if( int finder = author.find("[", 0, true)) {
312 author = author.left( finder); 231 author = author.left( finder);
313 } 232 }
314 } 233 }
315 else if ( title.contains( ",", TRUE) ) { 234 else if ( title.contains( ",", true) ) {
316 int auth; 235 int auth;
317 auth = title.find(",", 0, TRUE); 236 auth = title.find(",", 0, true);
318 author = title.right( title.length() - (auth + 1) ); 237 author = title.right( title.length() - (auth + 1) );
319 if ( author.contains( ",", TRUE) ) { 238 if ( author.contains( ",", true) ) {
320 int auth; 239 int auth;
321 auth = author.find(",", 0, TRUE); 240 auth = author.find(",", 0, true);
322 author = author.right( author.length() - (auth + 1) ); 241 author = author.right( author.length() - (auth + 1) );
323 } 242 }
324 if( int finder = author.find("[", 0, TRUE)) { 243 if( int finder = author.find("[", 0, true)) {
325 author = author.left( finder); 244 author = author.left( finder);
326 } 245 }
327 } 246 }
328 else if ( title.contains( "/", TRUE) ) { 247 else if ( title.contains( "/", true) ) {
329 int auth; 248 int auth;
330 auth = title.find("/", 0, TRUE); 249 auth = title.find("/", 0, true);
331 author = title.right(title.length() - (auth + 1) ); 250 author = title.right(title.length() - (auth + 1) );
332 if( int finder = author.find("[", 0, TRUE)) { 251 if( int finder = author.find("[", 0, true)) {
333 author = author.left( finder); 252 author = author.left( finder);
334 } 253 }
335 } 254 }
336 else if ( title.contains( "of", TRUE) ) { 255 else if ( title.contains( "of", true) ) {
337 int auth; 256 int auth;
338 auth = title.find("of", 0, TRUE); 257 auth = title.find("of", 0, true);
339 author = title.right(title.length() - (auth + 2) ); 258 author = title.right(title.length() - (auth + 2) );
340 if( int finder = author.find("[", 0, TRUE)) 259 if( int finder = author.find("[", 0, true))
341 { 260 {
342 author = author.left( finder); 261 author = author.left( finder);
343 } 262 }
344 } else { 263 } else {
345 author = ""; 264 author = "";
346 } 265 }
347 if ( author.contains("et. al")) { 266 if ( author.contains("et. al")) {
348 int auth; 267 int auth;
349 auth = author.find("et. al", 0, TRUE); 268 auth = author.find("et. al", 0, true);
350 author = author.left( auth ); 269 author = author.left( auth );
351 } 270 }
352 if ( author.contains("#")) { 271 if ( author.contains("#")) {
353 int auth; 272 int auth;
354 auth = author.find("#", 0, TRUE); 273 auth = author.find("#", 0, true);
355 author = author.left( auth); 274 author = author.left( auth);
356 } 275 }
357 if ( author.contains("(")) { 276 if ( author.contains("(")) {
358 int auth; 277 int auth;
359 auth = author.find("(", 0, TRUE); 278 auth = author.find("(", 0, true);
360 author = author.left( auth); 279 author = author.left( auth);
361 } 280 }
362 if ( author.contains("et al")) { 281 if ( author.contains("et al")) {
363 int auth; 282 int auth;
364 auth = author.find("et al", 0, TRUE); 283 auth = author.find("et al", 0, true);
365 author = author.left( auth ); 284 author = author.left( auth );
366 } 285 }
367 QRegExp r = QRegExp("[0-9]", TRUE, FALSE); 286 QRegExp r = QRegExp("[0-9]", true, false);
368 if ( author.left(2).find( r) != -1 ) { 287 if ( author.left(2).find( r) != -1 ) {
369 author = ""; 288 author = "";
370 } 289 }
371 // if( author.contains(" ", TRUE)) { 290
372 // int suth = author.findRev(" ", -1, TRUE); 291 author = author.stripWhiteSpace();
373 // author = author.right( author.length() - suth); 292 if (authBox->isChecked() == TRUE) { // this reverses the first name and last name of the author
374 // } 293 QString lastName, firstName="";
375 294 int finder = author.findRev( ' ', -1, TRUE);
376 // title 295 lastName = author.right( author.length()-finder);
377 // author 296 firstName = author.left(finder);
378 return true; 297 lastName = lastName.stripWhiteSpace();
298 firstName = firstName.stripWhiteSpace();
299
300 if( lastName.find( firstName, 0, true) == -1) // this avoids dup names
301 author = lastName+", "+firstName;
302 }
303 return true;
379}////// end getAuthor() 304}////// end getAuthor()
380 305
381 /* 306void LibraryDialog::addItems() {
382 selected one etext*/ 307 cleanStrings();
308 getAuthor(); // grok author
309 if( !number.isEmpty()
310 && (title.find( "reserved",0, FALSE) == -1)
311 && (file.find( "]",0, true) == -1)
312 &&(title.find( "Audio",0, FALSE) == -1)) {
313 // qDebug("new item "+title);
314 // fill string list or something to be able to sort by Author
315 if( author.isEmpty() )
316 QList_Item5 = new QListViewItem( ListView5, /*number, */title, author, year, file );
317 else {
318 if( (author.left(1) >= QString("A") && author.left(1) <= QString("F")) ||
319 (author.left(1) >= QString("a") && author.left(1) <= QString("f")) )
320 QList_Item1 = new QListViewItem( ListView1, /* number,*/ title, author, year, file );
321
322 else if( (author.left(1) >= QString("G") && author.left(1) <= QString("M")) ||
323 (author.left(1) >= QString("g") && author.left(1) <= QString("m")) )
324 QList_Item2 = new QListViewItem( ListView2, /* number,*/ title, author, year, file );
325
326 else if( (author.left(1) >= QString("N") && author.left(1) <= QString("R")) ||
327 (author.left(1) >= QString("n") && author.left(1) <= QString("r")) )
328 QList_Item3 = new QListViewItem( ListView3, /* number,*/ title, author, year, file );
329
330 else if( (author.left(1) >= QString("S") && author.left(1) <= QString("Z")) ||
331 (author.left(1) >= QString("s") && author.left(1) <= QString("z")) )
332 QList_Item4 = new QListViewItem( ListView4, /* number,*/ title, author, year, file );
333 }
334 }
335}
336
337/*
338 selected one etext*/
383void LibraryDialog::select_title( QListViewItem * item) 339void LibraryDialog::select_title( QListViewItem * item)
384{ 340{
385 if(item != NULL) { 341 if(item != NULL) {
386 i++; 342 i++;
387 int index = tabWidget->currentPageIndex(); 343 int index = tabWidget->currentPageIndex();
388 DlglistItemTitle = item->text(0); 344 DlglistItemTitle = item->text(0);
389 DlglistItemYear = item->text(2); 345 DlglistItemYear = item->text(2);
390 DlglistItemFile = item->text(3); 346 DlglistItemFile = item->text(3);
391 switch (index) { 347
392 case 0: { 348 switch (index) {
393 ListView1->clearSelection(); 349 case 0: {
394 } 350 ListView1->clearSelection();
395 break; 351 }
396 case 1: { 352 break;
397 ListView2->clearSelection(); 353 case 1: {
398 } 354 ListView2->clearSelection();
399 break; 355 }
400 case 2: { 356 break;
401 ListView3->clearSelection(); 357 case 2: {
402 } 358 ListView3->clearSelection();
403 break; 359 }
404 case 3: { 360 break;
405 ListView4->clearSelection(); 361 case 3: {
406 } 362 ListView4->clearSelection();
407 break; 363 }
408 case 4: { 364 break;
409 ListView5->clearSelection(); 365 case 4: {
410 } 366 ListView5->clearSelection();
411 break; 367 }
412 }; 368 break;
413 } 369 };
414 370 }
415 if(DlglistItemTitle.length()>2) { 371
416 // DlglistItemNumber = item->text(0); 372 if(DlglistItemTitle.length() > 2) {
417 item = 0; 373 item = 0;
418 odebug << "string from librarydialog is:" << DlglistItemYear << " " << DlglistItemFile << " " << DlglistItemNumber << "" << oendl; 374 // todo check for connection here
419 odebug << "Title is "+DlglistItemTitle << oendl; 375
420 376 bool ok = false;
421 // check for connection here 377 qDebug(DlglistItemFile);
422 // if( get_extext()) 378
423 379 if(DlglistItemFile.toInt() > 10000 ) {
424 if(download_Etext()) { 380 // new directory sturcture
425 // odebug << "get here 2" << oendl; 381 if( download_newEtext())
426 if(i_binary == 1) { 382 ok = true;
427 383 } else {
428 } 384 if(download_Etext())
429 if(checkBox->isChecked () ) { 385 ok = true;
430 accept(); 386 }
431 } 387 if(ok) {
432 } 388 if(checkBox->isChecked () )
433 } 389 accept();
390 }
391 }
434} 392}
435 393
436bool LibraryDialog::download_Etext() 394bool LibraryDialog::download_newEtext()
437{ // ftp method 395{ // ftp method
438 // might have to use old gpl'd ftp for embedded!! 396 QString fileName = DlglistItemFile;
439 Config cfg("Gutenbrowser"); 397
398 QString directory;
399 int stringlength = DlglistItemFile.length();
400 for(i = 0; i < stringlength - 1; i++ ) {
401 directory += "/"+ DlglistItemFile[i];
402 }
403
404 directory += "/" + DlglistItemFile;
405
406// qWarning(directory);
407
408 Config cfg("Gutenbrowser");
440 cfg.setGroup("FTPsite"); 409 cfg.setGroup("FTPsite");
441 ftp_host=cfg.readEntry("SiteName", "sailor.gutenberg.org"); 410 ftp_host = cfg.readEntry("SiteName", "sailor.gutenberg.org");
442 ftp_base_dir= cfg.readEntry("base", "/pub/gutenberg"); 411 ftp_base_dir = cfg.readEntry("base", "/pub/gutenberg");
443 412
444 odebug << "about to network dialog" << oendl;
445 QString NewlistItemNumber, NewlistItemYear, ls_result, result_line, s, dir, networkUrl, outputFile;
446
447 //////////////////// FIXME- if 'x' is part of real name....
448 NewlistItemFile = DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, FALSE)).left(DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, FALSE)).find("x", 1, FALSE));
449
450 if( NewlistItemFile.find( DlglistItemFile.left(4) ,0,TRUE) ==-1 ) {
451 NewlistItemFile.replace( 0,4, DlglistItemFile.left(4));
452 odebug << "NewlistItemFile is now "+NewlistItemFile << oendl;
453 }
454 NewlistItemYear = DlglistItemYear.right(2);
455 int NewlistItemYear_Int = NewlistItemYear.toInt(0, 10);
456 odebug << NewlistItemYear << oendl;
457 if (NewlistItemYear_Int < 91 && NewlistItemYear_Int > 70) {
458 NewlistItemYear = "90";
459 }
460 Edir ="etext" +NewlistItemYear;
461 dir= ftp_base_dir + "/etext" +NewlistItemYear+"/";
462 if( ftp_base_dir.find("=",0,true) ) 413 if( ftp_base_dir.find("=",0,true) )
463 ftp_base_dir.remove( ftp_base_dir.find("=",0,true),1); 414 ftp_base_dir.remove( ftp_base_dir.find("=",0,true),1);
464 415
465 networkUrl= "ftp://"+ftp_host+dir; 416 QString dir = ftp_base_dir + directory;
417 QString outputFile = local_library + ".guten_temp";
418 QString file = fileName + ".txt";
466 419
467 outputFile=local_library+".guten_temp";
468 //odebug << "Download file:" << NewlistItemFile << "" << oendl;
469 odebug << "Checking: "+ftp_host+" "+dir+" "+outputFile+" "+NewlistItemFile << oendl;
470 QStringList networkList; 420 QStringList networkList;
471 networkList.append((const char *)ftp_host); 421 networkList.append((const char *)ftp_host); //host
472 networkList.append((const char *)dir); 422 networkList.append((const char *)dir); //ftp base directory
473 networkList.append((const char *)outputFile); 423 networkList.append((const char *)outputFile); //output filepath
474 networkList.append((const char *)NewlistItemFile); 424 networkList.append((const char *)file); //filename
475//<< (char *)ftp_host << (char *)dir << (char *)outputFile << (char *)NewlistItemFile; 425
426 getEtext( networkList);
427
428 return true;
429}
476 430
477 NetworkDialog *NetworkDlg; 431bool LibraryDialog::getEtext(const QStringList &networkList)
478 NetworkDlg = new NetworkDialog( this,"Network Protocol Dialog", TRUE, 0, networkList); 432{
479 433 NetworkDialog *NetworkDlg;
480 434 NetworkDlg = new NetworkDialog( this,"Network Protocol Dialog", true, 0, networkList);
481 if( NetworkDlg->exec() != 0 ) { // use new, improved, *INSTANT* network-dialog-file-getterer 435
482 File_Name= NetworkDlg->localFileName; 436// use new, improved, *INSTANT* network-dialog-file-getterer
483 odebug << "back to Library from Network Dialog" << oendl; 437 if( NetworkDlg->exec() != 0 ) {
484 odebug << "Just downloaded "+NetworkDlg->localFileName << oendl; 438 File_Name = NetworkDlg->localFileName;
485 439
486 // if (File_Name.find( local_library, 0, TRUE) != -1 ) { //could not be found 440 qDebug("Just downloaded " + NetworkDlg->localFileName);
487 // QString oldName=File_Name; 441
488 // File_Name.replace(0,local_library.length(),downDir); 442 if(NetworkDlg->successDownload) {
489 // odebug << "File_Name now is "+File_Name << oendl; 443 //odebug << "Filename is "+File_Name << oendl;
490 444 if(File_Name.right(4) == ".txt") {
491 // } 445 QString s_fileName = File_Name;
492 // rename .txt to .etx 446 s_fileName.replace( s_fileName.length() - 3, 3, "gtn");
493 if(NetworkDlg->successDownload) { 447 // s_fileName.replace( s_fileName.length()-3,3,"etx");
494 odebug << "Filename is "+File_Name << oendl; 448 rename( File_Name.latin1(), s_fileName.latin1());
495 if(File_Name.right(4)==".txt") { 449 File_Name = s_fileName;
496 QString s_fileName=File_Name; 450
497 s_fileName.replace( s_fileName.length()-3,3,"gtn"); 451 //odebug << "Filename is now "+File_Name << oendl;
498 // s_fileName.replace( s_fileName.length()-3,3,"etx"); 452
499 rename(File_Name.latin1(),s_fileName.latin1()); 453 }
500 File_Name=s_fileName; 454 if(File_Name.length() > 5 ) {
501 455 setTitle();
502 odebug << "Filename is now "+File_Name << oendl; 456 QFileInfo fi(File_Name);
503 457 QString name_file = fi.fileName();
504 } 458 name_file = name_file.left( name_file.length() - 4);
505 if(File_Name.length() > 5 ) { 459
506 setTitle(); 460 //odebug << "Setting doclink" << oendl;
507 QFileInfo fi(File_Name); 461 DocLnk lnk;
508 QString name_file=fi.fileName(); 462 //odebug << "name is "+name_file << oendl;
509 name_file=name_file.left(name_file.length()-4); 463 lnk.setName(name_file); //sets file name
510 464 //odebug << "Title is "+DlglistItemTitle << oendl;
511 odebug << "Setting doclink" << oendl; 465 lnk.setComment(DlglistItemTitle);
512 DocLnk lnk; 466
513 odebug << "name is "+name_file << oendl; 467 //odebug << "Filename is "+File_Name << oendl;
514 lnk.setName(name_file); //sets file name 468 lnk.setFile(File_Name); //sets File property
515 odebug << "Title is "+DlglistItemTitle << oendl; 469 lnk.setType("guten/plain");// hey is this a REGISTERED mime type?!?!? ;D
516 lnk.setComment(DlglistItemTitle); 470 lnk.setExec(File_Name);
517 471 lnk.setIcon("gutenbrowser/Gutenbrowser");
518 odebug << "Filename is "+File_Name << oendl; 472 if(!lnk.writeLink()) {
519 lnk.setFile(File_Name); //sets File property 473 //odebug << "Writing doclink did not work" << oendl;
520 lnk.setType("guten/plain");// hey is this a REGISTERED mime type?!?!? ;D 474 } else {
521 lnk.setExec(File_Name); 475 }
522 lnk.setIcon("gutenbrowser/Gutenbrowser"); 476 } else
523 if(!lnk.writeLink()) { 477 QMessageBox::message("Note","<p>There was an error with the file</p>");
524 odebug << "Writing doclink did not work" << oendl; 478 }
525 } else { 479 }
526 } 480
527 } else 481 return true;
528 QMessageBox::message("Note","<p>There was an error with the file</p>"); 482}
529 } 483
530 } 484bool LibraryDialog::download_Etext()
531 return true; 485{ // ftp method
486 // might have to use old gpl'd ftp for embedded!!
487
488 Config cfg("Gutenbrowser");
489 cfg.setGroup("FTPsite");
490 ftp_host = cfg.readEntry("SiteName", "sailor.gutenberg.org");
491 ftp_base_dir = cfg.readEntry("base", "/pub/gutenberg");
492
493 qDebug( "about to network dialog");
494
495 QString NewlistItemNumber, NewlistItemYear, ls_result, result_line, s, dir, /*networkUrl, */outputFile;
496
497 //////////////////// FIXME- if 'x' is part of real name....
498 NewlistItemFile = DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, false)).left(DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, false)).find("x", 1, false));
499
500 if( NewlistItemFile.find( DlglistItemFile.left(4) ,0,true) ==-1 ) {
501 NewlistItemFile.replace( 0,4, DlglistItemFile.left(4));
502 qDebug("NewlistItemFile is now " + NewlistItemFile);
503 }
504
505 NewlistItemYear = DlglistItemYear.right(2);
506 int NewlistItemYear_Int = NewlistItemYear.toInt(0, 10);
507 //odebug << NewlistItemYear << oendl;
508 if (NewlistItemYear_Int < 91 && NewlistItemYear_Int > 70) {
509 NewlistItemYear = "90";
510 }
511
512 Edir ="etext" +NewlistItemYear;
513
514 dir = ftp_base_dir + "/etext" + NewlistItemYear + "/";
515
516 if( ftp_base_dir.find("=",0,true) )
517 ftp_base_dir.remove( ftp_base_dir.find("=",0,true),1);
518
519// networkUrl = "ftp://"+ftp_host+dir;
520
521 outputFile = local_library+".guten_temp";
522
523 qDebug( "Download file: " +NewlistItemFile);
524 qDebug("Checking: " + ftp_host + " " + dir + " " + outputFile+" " + NewlistItemFile);
525
526
527 QStringList networkList;
528 networkList.append((const char *)ftp_host); //host
529 networkList.append((const char *)dir); //ftp base directory
530 networkList.append((const char *)outputFile); //output filepath
531 networkList.append((const char *)NewlistItemFile); //filename
532//<< (char *)ftp_host << (char *)dir << (char *)outputFile << (char *)NewlistItemFile;
533 getEtext( networkList);
534
535 return true;
532} 536}
533 537
534bool LibraryDialog::httpDownload() 538bool LibraryDialog::httpDownload()
535{// httpDownload 539{// httpDownload
536#ifndef Q_WS_QWS 540#ifndef Q_WS_QWS
537 Config config("Gutenbrowser"); 541 Config config("Gutenbrowser");
538 config.setGroup( "Browser" ); 542 config.setGroup( "Browser" );
539 QString brow = config.readEntry("Preferred", ""); 543 QString brow = config.readEntry("Preferred", "");
540 QString file_name = "./.guten_temp"; 544 QString file_name = "./.guten_temp";
541 // config.setGroup( "HttpServer" ); 545 // config.setGroup( "HttpServer" );
542 // QString s_http = config.readEntry("Preferred", "http://sailor.gutenbook.org"); 546 // QString s_http = config.readEntry("Preferred", "http://sailor.gutenbook.org");
543 QString httpName = proxy_http + "/"+Edir; 547 QString httpName = proxy_http + "/"+Edir;
544 // progressBar->setProgress( i); 548 // progressBar->setProgress( i);
545 i++; 549 i++;
546 if ( brow != "Konq") { /////////// use lynx 550 if ( brow != "Konq") { /////////// use lynx
547 // QString cmd = "lynx -source " + httpName +" | cat >> " + file_name; 551 // QString cmd = "lynx -source " + httpName +" | cat >> " + file_name;
548 // system(cmd); 552 // system(cmd);
549 } else { //////////// use KFM 553 } else { //////////// use KFM
550 // KFM::download( httpName, file_name); 554 // KFM::download( httpName, file_name);
551 } 555 }
552 i++; 556 i++;
553 QFile tmp( file_name); 557 QFile tmp( file_name);
554 QString str; 558 QString str;
555 if (tmp.open(IO_ReadOnly)) { 559 if (tmp.open(IO_ReadOnly)) {
556 QTextStream t( &tmp ); // use a text stream 560 QTextStream t( &tmp ); // use a text stream
557 while ( !t.eof()) { 561 while ( !t.eof()) {
558 QString s = t.readLine(); 562 QString s = t.readLine();
559 if (s.contains( NewlistItemFile, FALSE) && (s.contains(".txt")) ) { 563 if (s.contains( NewlistItemFile, false) && (s.contains(".txt")) ) {
560 str = s.mid( s.find( ".txt\">"+NewlistItemFile, 0, TRUE)+6, (s.find( ".txt</A>", 0, TRUE) + 4) - ( s.find( ".txt\">"+NewlistItemFile, 0, TRUE)+6 ) ); 564 str = s.mid( s.find( ".txt\">"+NewlistItemFile, 0, true)+6, (s.find( ".txt</A>", 0, true) + 4) - ( s.find( ".txt\">"+NewlistItemFile, 0, true)+6 ) );
561 httpName += "/" + str; 565 httpName += "/" + str;
562 } 566 }
563 } //end of while loop 567 } //end of while loop
564 } 568 }
565 tmp.close(); 569 tmp.close();
566 m_getFilePath = local_library + str; 570 m_getFilePath = local_library + str;
567 i++; 571 i++;
568 if ( brow != "KFM"){ ///////// use lynx 572 if ( brow != "KFM"){ ///////// use lynx
569 QString cmd = "lynx -source " + httpName +" | cat >> " + m_getFilePath; 573 QString cmd = "lynx -source " + httpName +" | cat >> " + m_getFilePath;
570 // QMessageBox::message("Error", cmd); 574 // QMessageBox::message("Error", cmd);
571 system(cmd); 575 system(cmd);
572 } else { ////////// use KFM 576 } else { ////////// use KFM
573 // KFM::download( httpName, m_getFilePath); 577 // KFM::download( httpName, m_getFilePath);
574 } 578 }
575 i++; 579 i++;
576#endif 580#endif
577 return false; 581 return false;
578} 582}
579 583
580void LibraryDialog::cancelIt() 584void LibraryDialog::cancelIt()
581{ 585{
582 saveConfig(); 586 saveConfig();
583 587
584 DlglistItemNumber = ""; 588 DlglistItemNumber = "";
585 this->reject(); 589 this->reject();
586} 590}
587 591
588bool LibraryDialog::setTitle() 592bool LibraryDialog::setTitle()
589{ 593{
590 Config config("Gutenbrowser"); 594 Config config("Gutenbrowser");
591 odebug << "setting title" << oendl; 595 //odebug << "setting title" << oendl;
592 odebug << DlglistItemTitle << oendl; 596 //odebug << DlglistItemTitle << oendl;
593 597
594 if( DlglistItemTitle.find("[",0,TRUE) != -1) 598 if( DlglistItemTitle.find("[",0,true) != -1)
595 DlglistItemTitle.replace(DlglistItemTitle.find("[",0,TRUE),1, "(" ); 599 DlglistItemTitle.replace(DlglistItemTitle.find("[",0,true),1, "(" );
596 if( DlglistItemTitle.find("]",0,TRUE) !=-1) 600 if( DlglistItemTitle.find("]",0,true) !=-1)
597 DlglistItemTitle.replace(DlglistItemTitle.find("]",0,TRUE),1, ")" ); 601 DlglistItemTitle.replace(DlglistItemTitle.find("]",0,true),1, ")" );
598 odebug << "Title being set is "+DlglistItemTitle << oendl; 602 //odebug << "Title being set is "+DlglistItemTitle << oendl;
599 int test = 0; 603 int test = 0;
600 QString ramble, temp; 604 QString ramble, temp;
601 config.setGroup("Files"); 605 config.setGroup("Files");
602 QString s_numofFiles = config.readEntry("NumberOfFiles", "0" ); 606 QString s_numofFiles = config.readEntry("NumberOfFiles", "0" );
603 int i_numofFiles = s_numofFiles.toInt(); 607 int i_numofFiles = s_numofFiles.toInt();
604 for ( int i = 0; i <= i_numofFiles; i++){ 608 for ( int i = 0; i <= i_numofFiles; i++){
605 temp.setNum( i); 609 temp.setNum( i);
606 ramble = config.readEntry( temp, "" ); 610 ramble = config.readEntry( temp, "" );
607 if( strcmp( ramble, File_Name) == 0){ 611 if( strcmp( ramble, File_Name) == 0){
608 test = 1; 612 test = 1;
609 } 613 }
610 } 614 }
611 config.setGroup("Files"); 615
612 config.writeEntry( "NumberOfFiles", i_numofFiles +1 ); 616 if(test == 0 ) {
613 QString interger; 617
614 interger.setNum( i_numofFiles +1); 618 config.setGroup("Files");
615 config.writeEntry( interger, File_Name); 619 config.writeEntry( "NumberOfFiles", i_numofFiles +1 );
616 config.setGroup( "Titles" ); 620 QString interger;
617 config.writeEntry( File_Name, DlglistItemTitle); 621 interger.setNum( i_numofFiles +1);
618 622 config.writeEntry( interger, File_Name);
619 test = 0; 623 config.setGroup( "Titles" );
620 return true; 624 config.writeEntry( File_Name, DlglistItemTitle);
625 }
626 test = 0;
627 return true;
621} 628}
622 629
623 630
624void LibraryDialog::saveConfig() 631void LibraryDialog::saveConfig()
625{ 632{
626 Config config("Gutenbrowser"); 633 Config config("Gutenbrowser");
627 if( httpBox->isChecked() == TRUE) { 634 if( httpBox->isChecked() == true) {
628 checked = 1; 635 checked = 1;
629 config.setGroup( "Proxy" ); 636 config.setGroup( "Proxy" );
630 config.writeEntry("IsChecked", "TRUE"); 637 config.writeEntry("IsChecked", "true");
631 } else { 638 } else {
632 checked = 0; 639 checked = 0;
633 config.setGroup( "Proxy" ); 640 config.setGroup( "Proxy" );
634 config.writeEntry("IsChecked", "FALSE"); 641 config.writeEntry("IsChecked", "false");
635 } 642 }
636 if (authBox->isChecked() == TRUE) { 643 if (authBox->isChecked() == true) {
637 config.setGroup("SortAuth"); 644 config.setGroup("SortAuth");
638 config.writeEntry("authSort", "TRUE"); 645 config.writeEntry("authSort", "true");
639 } else { 646 } else {
640 config.setGroup("SortAuth"); 647 config.setGroup("SortAuth");
641 config.writeEntry("authSort", "FALSE"); 648 config.writeEntry("authSort", "false");
642 } 649 }
643 // config.write(); 650 // config.write();
644} 651}
645 652
646 /* 653/*
647 searches library index for user word*/ 654 searches library index for user word*/
648void LibraryDialog::onButtonSearch() 655void LibraryDialog::onButtonSearch()
649{ 656{
650 ListView1->clearSelection(); 657 ListView1->clearSelection();
651 ListView2->clearSelection(); 658 ListView2->clearSelection();
652 ListView3->clearSelection(); 659 ListView3->clearSelection();
653 ListView4->clearSelection(); 660 ListView4->clearSelection();
654 ListView5->clearSelection(); 661 ListView5->clearSelection();
655 662
656 int curTab=tabWidget->currentPageIndex(); 663 int curTab = tabWidget->currentPageIndex();
657 SearchDialog* searchDlg; 664 SearchDialog* searchDlg;
658 665
659 // if( resultsList) 666 // if( resultsList)
660 searchDlg = new SearchDialog( this, "Library Search", TRUE); 667 searchDlg = new SearchDialog( this, "Library Search", true);
661 searchDlg->setCaption( tr( "Library Search" ) ); 668 searchDlg->setCaption( tr( "Library Search" ) );
662 searchDlg->setLabel( "- author or title"); 669 searchDlg->setLabel( "- author or title");
663 QString resultString; 670
664 int i_berger = 0; 671 QString resultString;
665 if( searchDlg->exec() != 0 ) { 672
666 QString searcherStr = searchDlg->get_text(); 673 int i_berger = 0;
667 int fluff=0; 674 if( searchDlg->exec() != 0 ) {
668 675 QString searcherStr = searchDlg->get_text();
669 // int tabPage = tabWidget->currentPageIndex(); 676 int fluff = 0;
670 // TODO ititerate here... struct<listViews>?? 677
671 678 // int tabPage = tabWidget->currentPageIndex();
672 QListViewItemIterator it1( ListView1 ); 679 // TODO ititerate here... struct<listViews>??
673 QListViewItemIterator it2( ListView2 ); 680
674 QListViewItemIterator it3( ListView3 ); 681 QListViewItemIterator it1( ListView1 );
675 QListViewItemIterator it4( ListView4 ); 682 QListViewItemIterator it2( ListView2 );
676 QListViewItemIterator it5( ListView5 ); 683 QListViewItemIterator it3( ListView3 );
677 684 QListViewItemIterator it4( ListView4 );
678 //// this is really pitiful work, 685 QListViewItemIterator it5( ListView5 );
679 /////// 686
680 bool cS; 687 //// this is really pitiful work,
681 if( searchDlg->caseSensitiveCheckBox->isChecked()) 688 ///////
682 cS=true; //case sensitive 689 bool cS;
683 else 690 if( searchDlg->caseSensitiveCheckBox->isChecked())
684 cS=false; 691 cS=true; //case sensitive
685 692 else
686 if(fluff==0) { 693 cS=false;
687 for ( ; it1.current(); ++it1 ) { 694
688 resultString = ( it1.current() )->text(0); 695 if(fluff==0) {
689 resultString += (" : "); 696 for ( ; it1.current(); ++it1 ) {
690 resultString += ( it1.current() )->text(2); 697 resultString = ( it1.current() )->text(0);
691 resultString += (" : "); 698 resultString += (" : ");
692 resultString += ( it1.current() )->text(3); 699 resultString += ( it1.current() )->text(2);
693 if( resultString.find( searcherStr, 0, cS) != -1) 700 resultString += (" : ");
694 { 701 resultString += ( it1.current() )->text(3);
695 Searchlist.append( resultString); 702 if( resultString.find( searcherStr, 0, cS) != -1)
696 } 703 {
697 } 704 Searchlist.append( resultString);
698 } 705 }
699 if(fluff==0) {// search routine here 706 }
700 for ( ; it2.current(); ++it2 ) { 707 }
701 resultString = ( it2.current() )->text(0); 708 if(fluff==0) {// search routine here
702 resultString += (" : "); 709 for ( ; it2.current(); ++it2 ) {
703 resultString += ( it2.current() )->text(2); 710 resultString = ( it2.current() )->text(0);
704 resultString += (" : "); 711 resultString += (" : ");
705 resultString += ( it2.current() )->text(3); 712 resultString += ( it2.current() )->text(2);
706 if( resultString.find( searcherStr, 0, cS) != -1) { 713 resultString += (" : ");
707 Searchlist.append( resultString); 714 resultString += ( it2.current() )->text(3);
708 } 715 if( resultString.find( searcherStr, 0, cS) != -1) {
709 } 716 Searchlist.append( resultString);
710 } 717 }
711 if(fluff==0) {// search routine here 718 }
712 for ( ; it3.current(); ++it3 ) { 719 }
713 resultString = ( it3.current() )->text(0); 720 if(fluff==0) {// search routine here
714 resultString += (" : "); 721 for ( ; it3.current(); ++it3 ) {
715 resultString += ( it3.current() )->text(2); 722 resultString = ( it3.current() )->text(0);
716 resultString += (" : "); 723 resultString += (" : ");
717 resultString += ( it3.current() )->text(3); 724 resultString += ( it3.current() )->text(2);
718 725 resultString += (" : ");
719 if( resultString.find( searcherStr, 0, cS) != -1) { 726 resultString += ( it3.current() )->text(3);
720 Searchlist.append( resultString); 727
721 } 728 if( resultString.find( searcherStr, 0, cS) != -1) {
722 } 729 Searchlist.append( resultString);
723 } 730 }
724 if(fluff==0) { 731 }
725 // search routine here 732 }
726 for ( ; it4.current(); ++it4 ) { 733 if(fluff==0) {
727 resultString = ( it4.current() )->text(0); 734 // search routine here
728 resultString += (" : "); 735 for ( ; it4.current(); ++it4 ) {
729 resultString += ( it4.current() )->text(2); 736 resultString = ( it4.current() )->text(0);
730 resultString += (" : "); 737 resultString += (" : ");
731 resultString += ( it4.current() )->text(3); 738 resultString += ( it4.current() )->text(2);
732 if( resultString.find( searcherStr, 0, cS) != -1) { 739 resultString += (" : ");
733 Searchlist.append( resultString); 740 resultString += ( it4.current() )->text(3);
734 } 741 if( resultString.find( searcherStr, 0, cS) != -1) {
735 } 742 Searchlist.append( resultString);
736 } 743 }
737 if(fluff==0) { // search routine here 744 }
738 for ( ; it5.current(); ++it5 ) { 745 }
739 resultString = ( it5.current() )->text(0); 746 if(fluff==0) { // search routine here
740 resultString += (" : "); 747 for ( ; it5.current(); ++it5 ) {
741 resultString += ( it5.current() )->text(2); 748 resultString = ( it5.current() )->text(0);
742 resultString += (" : "); 749 resultString += (" : ");
743 resultString += ( it5.current() )->text(3); 750 resultString += ( it5.current() )->text(2);
744 if( resultString.find( searcherStr, 0, cS) != -1) { 751 resultString += (" : ");
745 Searchlist.append( resultString); 752 resultString += ( it5.current() )->text(3);
746 } 753 if( resultString.find( searcherStr, 0, cS) != -1) {
747 } 754 Searchlist.append( resultString);
748 } 755 }
749 756 }
750 tabWidget->setCurrentPage( curTab); 757 }
751 758
752 Searchlist.sort(); 759 tabWidget->setCurrentPage( curTab);
753 SearchResultsDlg* SearchResultsDialog; 760
754 SearchResultsDialog = new SearchResultsDlg( searchDlg, "Results Dialog", true, 0 , Searchlist); 761 Searchlist.sort();
755 762 SearchResultsDlg* SearchResultsDialog;
756 SearchResultsDialog->showMaximized(); 763 SearchResultsDialog = new SearchResultsDlg( searchDlg, "Results Dialog", true, 0 , Searchlist);
757 if( SearchResultsDialog->exec() != 0) { 764
758 texter = SearchResultsDialog->selText; 765 SearchResultsDialog->showMaximized();
759 // odebug << texter << oendl; 766 if( SearchResultsDialog->exec() != 0) {
760 resultLs= SearchResultsDialog->resultsList; 767 texter = SearchResultsDialog->selText;
761 i_berger = 1; 768 // //odebug << texter << oendl;
762 } 769 resultLs = SearchResultsDialog->resultsList;
763 Searchlist.clear(); 770 i_berger = 1;
764 771 } else {
765 // if(SearchResultsDialog) 772 resultLs.clear();
766 // delete SearchResultsDialog; 773 }
767 QString tester; 774 Searchlist.clear();
768 for ( QStringList::Iterator it = resultLs.begin(); it != resultLs.end(); ++it ) { 775
769 texter.sprintf("%s \n",(*it).latin1()); 776 // if(SearchResultsDialog)
770 // odebug << texter << oendl; 777 // delete SearchResultsDialog;
771 if( tester!=texter) 778 QString tester;
772 parseSearchResults( texter); 779 for ( QStringList::Iterator it = resultLs.begin(); it != resultLs.end(); ++it ) {
773 tester = texter; 780 texter.sprintf("%s \n",(*it).latin1());
774 } 781 // //odebug << texter << oendl;
775 if(searchDlg) 782 if( tester!=texter)
776 delete searchDlg; 783 parseSearchResults( texter);
777 } 784 tester = texter;
778 if(checkBox->isChecked() ) { 785 }
779 accept(); 786 if(searchDlg)
780 } else { 787 delete searchDlg;
781 setActiveWindow(); 788 }
782 } 789 if(checkBox->isChecked() ) {
790 accept();
791 } else {
792 setActiveWindow();
793 }
783} 794}
784 795
785 /* 796/*
786 splits the result string and calls download for the current search result*/ 797 splits the result string and calls download for the current search result*/
787void LibraryDialog::parseSearchResults( QString resultStr) 798void LibraryDialog::parseSearchResults( QString resultStr)
788{ 799{
789 800 int stringLeng = resultStr.length();
790 int stringLeng=resultStr.length(); 801
791 QString my; 802 QString my;
792 my.setNum( stringLeng, 10); 803 my.setNum( stringLeng, 10);
793 804
794 if( resultStr.length() > 2 && resultStr.length() < 130) { 805 if( resultStr.length() > 2 && resultStr.length() < 130) {
795 int titleInt = resultStr.find( " : ", 0, TRUE); 806
796 DlglistItemTitle = resultStr.left( titleInt); 807 int titleInt = resultStr.find( " : ", 0, true);
797 int yearInt = resultStr.find( " : ", titleInt+3, TRUE); 808 DlglistItemTitle = resultStr.left( titleInt);
798 DlglistItemYear = resultStr.mid( titleInt+3, (yearInt - titleInt)-3); 809
799 DlglistItemFile = resultStr.right( resultStr.length() - (yearInt + 3)); 810 int yearInt = resultStr.find( " : ", titleInt+3, true);
800 download_Etext(); 811
801 } 812 DlglistItemYear = resultStr.mid( titleInt+3, (yearInt - titleInt)-3);
802 /* 813
803 printf( DlglistItemTitle+"\n"); printf( DlglistItemYear+"\n"); printf( DlglistItemFile+"\n");*/ 814 DlglistItemFile = resultStr.right( resultStr.length() - (yearInt + 3));
815 DlglistItemFile = DlglistItemFile.left( DlglistItemFile.length() - 2);
816
817 cleanStrings();
818
819 if(DlglistItemFile.left(1) == "/")
820 DlglistItemFile = DlglistItemFile.right( DlglistItemFile.length() - 1);
821
822
823 if(DlglistItemFile.toInt() > 10000 ) {
824 // new directory sturcture
825 download_newEtext(); //)
826 } else {
827 download_Etext(); //)
828 }
829 }
804} 830}
805 831
806 // bool LibraryDialog::UnzipIt( QString zipFile) {
807 // //////////TODO findsome other way of dealingwithzip files.
808 // ///usr/bin/unzip";
809 // if( QFile::exists( zipFile)) {
810 // // QString thatFile = local_library +"PGWHOLE.TXT";
811 // QString cmd;
812 // #if defined(_WS_X11_)
813 // cmd = "gunzip -d " + zipFile /*newestLibraryFile */+" -d " + local_library;
814 // #endif
815 // #if defined(_WS_WIN_)
816 // QString temp= QDir::convertSeparators(local_library);
817 // zipFile=QDir::convertSeparators( zipFile);
818 // cmd = temp+"unzip.exe -o " +zipFile/*newestLibraryFile */+" -d " + temp;
819 // #endif
820 // #ifndef Q_WS_QWS
821 // // QString cmd = "gunzip -d " + zipFile /*newestLibraryFile */+" -d " + local_library;
822 // cmd = "unzip " + zipFile;
823 // #endif
824
825 // int exit=QMessageBox::information(this, "Unzip?", "Ok to unzip "+ zipFile+" ?", QMessageBox::Yes, QMessageBox::No);
826 // if (exit==QMessageBox::Yes) {
827 // odebug << "Issuing the command "+cmd << oendl;
828 // #if defined(_WS_WIN_)
829 // WinExec( cmd, SW_HIDE );
830 // #endif
831 // #if defined(_WS_X11_)
832 // system( cmd);
833 // #endif
834 // #ifndef Q_WS_QWS
835 // system( cmd);
836 // #endif
837 // // printf("unzip\n");
838 // // remove( zipFile /*newestLibraryFile*/);
839 // return true;
840 // }
841 // else if(exit==QMessageBox::No) {
842 // // printf("unzip\n");
843 // return false;
844 // }
845 // } else {
846 // // QMessageBox::message( "Note",( tr("Please install unzip in your PATH")) );
847 // return false;
848 // }
849 // return true;
850 // }
851
852void LibraryDialog::sort() 832void LibraryDialog::sort()
853{ 833{
854 834
855} 835}
856 836
857 /* 837/*
858 Downloads the current selected listitem*/ 838 Downloads the current selected listitem*/
859bool LibraryDialog::getItem(QListViewItem *it) 839bool LibraryDialog::getItem(QListViewItem *it)
860{ 840{
861 // odebug << "selected getItem" << oendl; 841 // //odebug << "selected getItem" << oendl;
862 842
863 // DlglistItemNumber = it->text(0); 843 // DlglistItemNumber = it->text(0);
864 DlglistItemTitle = it->text(0); 844 DlglistItemTitle = it->text(0);
865 DlglistItemYear = it->text(2); 845 DlglistItemYear = it->text(2);
866 DlglistItemFile = it->text(3); 846 DlglistItemFile = it->text(3);
867 847
868 if(download_Etext()) { 848 if(download_Etext()) {
869 if(i_binary == 1) { 849 if(i_binary == 1) {
870 } 850 }
871 } 851 }
872 return true; 852 return true;
873} 853}
874 854
875 /* 855/*
876 download button is pushed so we get the current items to download*/ 856 download button is pushed so we get the current items to download*/
877bool LibraryDialog::onButtonDownload() 857bool LibraryDialog::onButtonDownload()
878{ 858{
879 // odebug << "selected onButtonDownloadz" << oendl; 859 // //odebug << "selected onButtonDownloadz" << oendl;
880 860
881 QListViewItemIterator it1( ListView1 ); 861 QListViewItemIterator it1( ListView1 );
882 QListViewItemIterator it2( ListView2 ); 862 QListViewItemIterator it2( ListView2 );
883 QListViewItemIterator it3( ListView3 ); 863 QListViewItemIterator it3( ListView3 );
884 QListViewItemIterator it4( ListView4 ); 864 QListViewItemIterator it4( ListView4 );
885 QListViewItemIterator it5( ListView5 ); 865 QListViewItemIterator it5( ListView5 );
886 866
887 // iterate through all items of the listview 867 // iterate through all items of the listview
888 for ( ; it1.current(); ++it1 ) { 868 for ( ; it1.current(); ++it1 ) {
889 if ( it1.current()->isSelected() ) 869 if ( it1.current()->isSelected() )
890 getItem(it1.current()); 870 getItem(it1.current());
891 it1.current()->setSelected(FALSE); 871 it1.current()->setSelected(false);
892 } 872 }
893 for ( ; it2.current(); ++it2 ) { 873 for ( ; it2.current(); ++it2 ) {
894 if ( it2.current()->isSelected() ) 874 if ( it2.current()->isSelected() )
895 getItem(it2.current()); 875 getItem(it2.current());
896 it2.current()->setSelected(FALSE); 876 it2.current()->setSelected(false);
897 } 877 }
898 for ( ; it3.current(); ++it3 ) { 878 for ( ; it3.current(); ++it3 ) {
899 if ( it3.current()->isSelected() ) 879 if ( it3.current()->isSelected() )
900 getItem(it3.current()); 880 getItem(it3.current());
901 it3.current()->setSelected(FALSE); 881 it3.current()->setSelected(false);
902 } 882 }
903 for ( ; it4.current(); ++it4 ) { 883 for ( ; it4.current(); ++it4 ) {
904 if ( it4.current()->isSelected() ) 884 if ( it4.current()->isSelected() )
905 getItem(it4.current()); 885 getItem(it4.current());
906 it4.current()->setSelected(FALSE); 886 it4.current()->setSelected(false);
907 } 887 }
908 for ( ; it5.current(); ++it5 ) { 888 for ( ; it5.current(); ++it5 ) {
909 if ( it5.current()->isSelected() ) 889 if ( it5.current()->isSelected() )
910 getItem(it5.current()); 890 getItem(it5.current());
911 it5.current()->setSelected(FALSE); 891 it5.current()->setSelected(false);
912 } 892 }
913 return true; 893 return true;
914} 894}
915 895
916 896
917 /* 897/*
918 handles the sorting combo box */ 898 handles the sorting combo box */
919void LibraryDialog::comboSelect(int index) 899void LibraryDialog::comboSelect(int index)
920{ 900{
921 // odebug << "we are sorting" << oendl; 901 // //odebug << "we are sorting" << oendl;
922 ListView1->setSorting( index, TRUE); 902 ListView1->setSorting( index, true);
923 ListView2->setSorting( index, TRUE); 903 ListView2->setSorting( index, true);
924 ListView3->setSorting( index, TRUE); 904 ListView3->setSorting( index, true);
925 ListView4->setSorting( index, TRUE); 905 ListView4->setSorting( index, true);
926 ListView5->setSorting( index, TRUE); 906 ListView5->setSorting( index, true);
927 907
928 ListView1->sort(); 908 ListView1->sort();
929 ListView2->sort(); 909 ListView2->sort();
930 ListView3->sort(); 910 ListView3->sort();
931 ListView4->sort(); 911 ListView4->sort();
932 ListView5->sort(); 912 ListView5->sort();
933 913
934 // ListView1->triggerUpdate(); 914 // ListView1->triggerUpdate();
935 // ListView2->triggerUpdate(); 915 // ListView2->triggerUpdate();
936 // ListView3->triggerUpdate(); 916 // ListView3->triggerUpdate();
937 // ListView4->triggerUpdate(); 917 // ListView4->triggerUpdate();
938 // ListView5->triggerUpdate(); 918 // ListView5->triggerUpdate();
939} 919}
940 920
941void LibraryDialog::newList() 921void LibraryDialog::newList()
942{ 922{
943 if(indexLoaded) { 923 if(indexLoaded) {
944 onButtonDownload(); 924 onButtonDownload();
945 } else { 925 } else {
946 Output *outDlg; 926 Output *outDlg;
947 buttonNewList->setDown(TRUE); 927 buttonNewList->setDown(true);
948 QDir gutDir(QPEApplication::qpeDir()+"etc/gutenbrowser"); 928 //odebug << "changing dir "+QPEApplication::qpeDir()+"etc/gutenbrowser" << oendl;
949 if(!gutDir.exists()) gutDir.mkdir(QPEApplication::qpeDir()+"etc/gutenbrowser",true); 929 QString gutenindex1 = local_library + "/GUTINDEX.ALL";
950 if( chdir(QPEApplication::qpeDir()+"etc/gutenbrowser") == 0) { 930
951 odebug << "changing dir "+QPEApplication::qpeDir()+"etc/gutenbrowser" << oendl; 931 QString cmd="wget -O " + gutenindex1 + " http://sailor.gutenberg.org/GUTINDEX.ALL 2>&1";
952 QString gutenindex1 = QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL"; 932
953 QString cmd="wget -O " + gutenindex1 + " http://sailor.gutenberg.org/GUTINDEX.ALL 2>&1"; 933 int result = QMessageBox::warning( this,"Download"
954 934 ,"<p>Ok to use /'wget/' to download a new library list?</P>"
955 int result = QMessageBox::warning( this,"Download" 935 ,"Yes","No",0,0,1);
956 ,"<p>Ok to use /'wget/' to download a new library list?</P>" 936 qApp->processEvents();
957 ,"Yes","No",0,0,1); 937 if(result == 0) {
958 qApp->processEvents(); 938 outDlg = new Output( 0, tr("Downloading Gutenberg Index...."),true);
959 if(result == 0) { 939 outDlg->showMaximized();
960 outDlg = new Output( 0, tr("Downloading Gutenberg Index...."),TRUE); 940 outDlg->show();
961 outDlg->showMaximized(); 941 qApp->processEvents();
962 outDlg->show(); 942 FILE *fp;
963 qApp->processEvents(); 943 char line[130];
964 FILE *fp; 944 outDlg->OutputEdit->append( tr("Running wget") );
965 char line[130]; 945 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,false);
966 outDlg->OutputEdit->append( tr("Running wget") ); 946 sleep(1);
967 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 947 fp = popen( (const char *) cmd, "r");
968 sleep(1); 948 if ( !fp ) {
969 fp = popen( (const char *) cmd, "r"); 949 } else {
970 if ( !fp ) { 950 //odebug << "Issuing the command\n"+cmd << oendl;
971 } else { 951 // system(cmd);
972 odebug << "Issuing the command\n"+cmd << oendl; 952 while ( fgets( line, sizeof line, fp)) {
973 // system(cmd); 953 outDlg->OutputEdit->append(line);
974 while ( fgets( line, sizeof line, fp)) { 954 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,false);
975 outDlg->OutputEdit->append(line); 955 }
976 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 956 pclose(fp);
977 } 957 outDlg->OutputEdit->append("Finished downloading\n");
978 pclose(fp); 958 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,false);
979 outDlg->OutputEdit->append("Finished downloading\n"); 959 qApp->processEvents();
980 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 960
981 qApp->processEvents(); 961 // if( QFile(gutenindex1).exists() ) {
982 962 // QString gutenindex=QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL";
983 // if( QFile(gutenindex1).exists() ) { 963 // if( rename(gutenindex1.latin1(),gutenindex.latin1()) !=0)
984 // QString gutenindex=QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL"; 964 // //odebug << "renaming error" << oendl;
985 // if( rename(gutenindex1.latin1(),gutenindex.latin1()) !=0) 965 // }
986 // odebug << "renaming error" << oendl; 966
987 // } 967 }
988 968 // outDlg->close();
989 } 969 FindLibrary();
990 // outDlg->close(); 970 if(outDlg) delete outDlg;
991 FindLibrary(); 971 }
992 if(outDlg) delete outDlg; 972 buttonNewList->setDown(false);
993 } 973
994 buttonNewList->setDown(FALSE); 974 // if(outDlg)
995 } else { 975 // delete outDlg;
996 QMessageBox::message("Note","Could not change directories"); 976 }
997 }
998 // if(outDlg)
999 // delete outDlg;
1000 }
1001} 977}
1002 978
1003bool LibraryDialog::moreInfo() 979bool LibraryDialog::moreInfo()
1004{ 980{
1005 981
1006 QListViewItem * item; 982 QListViewItem * item;
1007 item = 0; 983 item = 0;
1008 QString titleString; 984 QString titleString;
1009 item = ListView1->currentItem(); 985 item = ListView1->currentItem();
1010 if( item != 0) { 986 if( item != 0) {
1011 titleString = item->text(0); 987 titleString = item->text(0);
1012 ListView1->clearSelection(); 988 ListView1->clearSelection();
1013 item = 0; 989 item = 0;
1014 } 990 }
1015 if( item == 0) 991 if( item == 0)
1016 item = ListView2->currentItem(); 992 item = ListView2->currentItem();
1017 if( item != 0) { 993 if( item != 0) {
1018 titleString = item->text(0); 994 titleString = item->text(0);
1019 ListView2->clearSelection(); 995 ListView2->clearSelection();
1020 item = 0; 996 item = 0;
1021 } 997 }
1022 if( item == 0) 998 if( item == 0)
1023 item = ListView3->currentItem(); 999 item = ListView3->currentItem();
1024 if( item != 0) { 1000 if( item != 0) {
1025 titleString = item->text(0); 1001 titleString = item->text(0);
1026 ListView3->clearSelection(); 1002 ListView3->clearSelection();
1027 item = 0; 1003 item = 0;
1028 } 1004 }
1029 if( item == 0) 1005 if( item == 0)
1030 item = ListView4->currentItem(); 1006 item = ListView4->currentItem();
1031 if( item != 0) { 1007 if( item != 0) {
1032 titleString = item->text(0); 1008 titleString = item->text(0);
1033 ListView4->clearSelection(); 1009 ListView4->clearSelection();
1034 item = 0; 1010 item = 0;
1035 } 1011 }
1036 if( item == 0) 1012 if( item == 0)
1037 item = ListView5->currentItem(); 1013 item = ListView5->currentItem();
1038 if( item != 0) { 1014 if( item != 0) {
1039 titleString = item->text(0); 1015 titleString = item->text(0);
1040 ListView5->clearSelection(); 1016 ListView5->clearSelection();
1041 item = 0; 1017 item = 0;
1042 } 1018 }
1043 item=0; 1019 item=0;
1044 if(titleString.length()>2) { 1020 if(titleString.length()>2) {
1045 odebug << "Title is "+titleString << oendl; 1021 //odebug << "Title is "+titleString << oendl;
1046 titleString.replace( QRegExp("\\s"), "%20"); 1022 titleString.replace( QRegExp("\\s"), "%20");
1047 titleString.replace( QRegExp("'"), "%20"); 1023 titleString.replace( QRegExp("'"), "%20");
1048 titleString.replace( QRegExp("\""), "%20"); 1024 titleString.replace( QRegExp("\""), "%20");
1049 titleString.replace( QRegExp("&"), "%20"); 1025 titleString.replace( QRegExp("&"), "%20");
1050 QString cmd= "http://google.com/search?q="+titleString+"&num=30&sa=Google+Search"; 1026 QString cmd= "http://google.com/search?q="+titleString+"&num=30&sa=Google+Search";
1051 cmd="opera "+cmd; 1027 cmd="opera "+cmd;
1052 system(cmd); 1028 system(cmd);
1053 } else 1029 } else
1054 QMessageBox::message( "Note","<p>If you select a title, this will search google.com for that title.</p>"); 1030 QMessageBox::message( "Note","<p>If you select a title, this will search google.com for that title.</p>");
1055 return true; 1031 return true;
1056 1032
1057} 1033}
1058 1034
1059 /* 1035/*
1060 This loads the library Index*/ 1036 This loads the library Index*/
1061void LibraryDialog::FindLibrary() 1037void LibraryDialog::FindLibrary()
1062{ 1038{
1063 buttonLibrary->setDown(TRUE); 1039 buttonLibrary->setDown(true);
1064 1040
1065 qApp->processEvents(); 1041 qApp->processEvents();
1066 if( QFile( new_index).exists() /* && this->isHidden() */) { 1042 if( QFile( new_index).exists() /* && this->isHidden() */) {
1067 newindexLib.setName( new_index); 1043 newindexLib.setName( new_index);
1068 indexLib.setName( new_index); 1044 indexLib.setName( new_index);
1069 odebug << "index file is "+ new_index << oendl; 1045 //odebug << "index file is "+ new_index << oendl;
1070 Newlibrary(); 1046 Newlibrary();
1071 } else { 1047 } else {
1072 newindexLib.setName( old_index); 1048 newindexLib.setName( old_index);
1073 indexLib.setName( old_index); 1049 indexLib.setName( old_index);
1074 odebug << "new index nameis "+ old_index << oendl; 1050 //odebug << "new index nameis "+ old_index << oendl;
1075 Library(); 1051 Library();
1076 } 1052 }
1077 indexLoaded=true; 1053 indexLoaded=true;
1078 buttonSearch->setEnabled(TRUE); 1054 buttonSearch->setEnabled(true);
1079 moreInfoButton->setEnabled(TRUE); 1055 moreInfoButton->setEnabled(true);
1080 1056
1081 buttonLibrary->setDown(FALSE); 1057 buttonLibrary->setDown(false);
1082 buttonNewList->setText("Download"); 1058 buttonNewList->setText("Download");
1083 qApp->processEvents(); 1059 qApp->processEvents();
1060
1061}
1084 1062
1063void LibraryDialog::cleanStrings() {
1064 year = year.stripWhiteSpace();
1065 file = file.stripWhiteSpace();
1066 title = title.stripWhiteSpace();
1067 number = number.stripWhiteSpace();
1068
1085} 1069}
diff --git a/noncore/apps/opie-gutenbrowser/LibraryDialog.h b/noncore/apps/opie-gutenbrowser/LibraryDialog.h
index f5bfe08..8d6352f 100644
--- a/noncore/apps/opie-gutenbrowser/LibraryDialog.h
+++ b/noncore/apps/opie-gutenbrowser/LibraryDialog.h
@@ -61,66 +61,73 @@ public:
61 QString new_index,old_index; 61 QString new_index,old_index;
62 QFile newindexLib,indexLib; 62 QFile newindexLib,indexLib;
63 63
64 int checked; 64 int checked;
65 int i_binary; 65 int i_binary;
66 bool useSmallInterface; 66 bool useSmallInterface;
67bool indexLoaded; 67bool indexLoaded;
68 QPushButton *cancel,*DownloadAll; 68 QPushButton *cancel,*DownloadAll;
69 QCheckBox *checkBox,*httpBox,*authBox; 69 QCheckBox *checkBox,*httpBox,*authBox;
70// QCheckBox * httpBox; 70// QCheckBox * httpBox;
71 71
72 QString filename; 72 QString filename;
73 QString downDir; 73 QString downDir;
74 int ftpNumb; 74 int ftpNumb;
75 int i; 75 int i;
76 QString year,title,number,file,author; 76 QString year,title,number,file,author;
77 QString DlglistItemNumber,DlglistItemFile,DlglistItemYear,DlglistItemTitle,NewlistItemFile; 77 QString DlglistItemNumber,DlglistItemFile,DlglistItemYear,DlglistItemTitle,NewlistItemFile;
78 QString m_getFilePath; 78 QString m_getFilePath;
79 QString Edir; 79 QString Edir;
80 80
81 QString index; 81 QString index;
82 QString IDontKnowWhy; 82 QString IDontKnowWhy;
83 QString local_library; 83 QString local_library;
84 QString local_index; 84 QString local_index;
85 QString File_Name; 85 QString File_Name;
86 QString proxy_http; 86 QString proxy_http;
87 int doitAll; 87 int doitAll;
88 QString texter; 88 QString texter;
89// CConfigFile *config; 89// CConfigFile *config;
90 void parseSearchResults( QString resultStr); 90 void parseSearchResults( QString resultStr);
91 91
92public slots: 92public slots:
93 bool getItem(QListViewItem* ); 93 bool getItem(QListViewItem* );
94 void doListView(); 94 void doListView();
95 void FindLibrary(); 95 void FindLibrary();
96 void newList(); 96 void newList();
97 void Newlibrary(); 97 void Newlibrary();
98 void Library(); 98 void Library();
99 bool getAuthor(); 99 bool getAuthor();
100 void select_title(QListViewItem*); 100 void select_title(QListViewItem*);
101 void cancelIt(); 101 void cancelIt();
102 void sort(); 102 void sort();
103 bool moreInfo(); 103 bool moreInfo();
104// void DownloadEmAll(); 104// void DownloadEmAll();
105 bool httpDownload(); 105 bool httpDownload();
106 bool setTitle(); 106 bool setTitle();
107 void saveConfig(); 107 void saveConfig();
108 bool download_Etext(); 108 bool download_Etext();
109 bool download_newEtext();
110
109 void onButtonSearch(); 111 void onButtonSearch();
110 bool onButtonDownload(); 112 bool onButtonDownload();
111 113
112// bool UnzipIt( QString fileName); 114// bool UnzipIt( QString fileName);
113 void comboSelect(int index); 115 void comboSelect(int index);
114protected slots: 116protected slots:
115 117
116 118
117protected: 119protected:
118 120
119 void initDialog(); 121 void initDialog();
120 QHBoxLayout *hbox,*hbox1,*hbox2; 122 QHBoxLayout *hbox,*hbox1,*hbox2;
121 QVBoxLayout *vbox; 123 QVBoxLayout *vbox;
122// void search_slot(); 124// void search_slot();
125private:
126 void addItems();
127 void clearItems();
128 void cleanStrings();
129 bool getEtext(const QStringList &);
123 130
124}; 131};
125 132
126#endif // LIBRARYDIALOG_H 133#endif // LIBRARYDIALOG_H
diff --git a/noncore/apps/opie-gutenbrowser/NetworkDialog.cpp b/noncore/apps/opie-gutenbrowser/NetworkDialog.cpp
index a321952..ba583ad 100644
--- a/noncore/apps/opie-gutenbrowser/NetworkDialog.cpp
+++ b/noncore/apps/opie-gutenbrowser/NetworkDialog.cpp
@@ -122,136 +122,135 @@ bool NetworkDialog::downloadFile( QString networkUrl )
122 if( networkUrl.length() > 5) { 122 if( networkUrl.length() > 5) {
123 QString ftp_user = "anonymous"; 123 QString ftp_user = "anonymous";
124 QString ftp_pass = "zaurus@gutenbrowser.com"; 124 QString ftp_pass = "zaurus@gutenbrowser.com";
125// ftp_host= networkUrl.mid(networkUrl.find("ftp://",0, TRUE), 125// ftp_host= networkUrl.mid(networkUrl.find("ftp://",0, TRUE),
126 if(ftp_host.length() < 2) { 126 if(ftp_host.length() < 2) {
127 odebug << "Please select an ftp host" << oendl; 127 odebug << "Please select an ftp host" << oendl;
128 successDownload=false; 128 successDownload=false;
129 QMessageBox::message("Note","You need to select an ftp host"); 129 QMessageBox::message("Note","You need to select an ftp host");
130 return false; 130 return false;
131 } 131 }
132 QString msg; 132 QString msg;
133 odebug << ftp_host << oendl; 133 odebug << ftp_host << oendl;
134 odebug << "Opening ftp connection." << oendl; 134 odebug << "Opening ftp connection." << oendl;
135 warnLabel->setText("connecting to: "+ftp_host ); 135 warnLabel->setText("connecting to: "+ftp_host );
136 qApp->processEvents(); 136 qApp->processEvents();
137 /////////// Open FTP connection 137 /////////// Open FTP connection
138 if (!FtpConnect( ftp_host.latin1(), &conn)) { 138 if (!FtpConnect( ftp_host.latin1(), &conn)) {
139 i=0; 139 i=0;
140 successDownload=false; 140 successDownload=false;
141 QMessageBox::message("Note","Unable to connect to\n"+ftp_host); 141 QMessageBox::message("Note","Unable to connect to\n"+ftp_host);
142 return false; 142 return false;
143 } 143 }
144 TextLabel3->setText("Opening ftp connection."); 144 TextLabel3->setText("Opening ftp connection.");
145 qApp->processEvents(); 145 qApp->processEvents();
146 if (!FtpLogin( ftp_user.latin1(), ftp_pass.latin1(),conn )) { 146 if (!FtpLogin( ftp_user.latin1(), ftp_pass.latin1(),conn )) {
147 FtpQuit(conn); 147 FtpQuit(conn);
148 successDownload=false; 148 successDownload=false;
149 msg.sprintf("Unable to log in\n%s",FtpLastResponse(conn)); 149 msg.sprintf("Unable to log in\n%s",FtpLastResponse(conn));
150 QMessageBox::message("Note",msg); 150 QMessageBox::message("Note",msg);
151 return false; 151 return false;
152 } 152 }
153 odebug << "Changing directories." << oendl; 153 odebug << "Changing directories." << oendl;
154 TextLabel3->setText("Changing directories."); 154 TextLabel3->setText("Changing directories.");
155 qApp->processEvents(); 155 qApp->processEvents();
156 if (!FtpChdir( dir.latin1(), conn )) { 156 if (!FtpChdir( dir.latin1(), conn )) {
157 successDownload=false; 157 successDownload=false;
158 msg.sprintf("Unable to change directories "+dir+"\n%s",FtpLastResponse(conn)); 158 msg.sprintf("Unable to change directories "+dir+"\n%s",FtpLastResponse(conn));
159 QMessageBox::message("Note",msg); 159 QMessageBox::message("Note",msg);
160 FtpQuit(conn); 160 FtpQuit(conn);
161 return false; 161 return false;
162 } 162 }
163// if (!FtpNlst( "./.guten_temp", dir, conn)) { 163// if (!FtpNlst( "./.guten_temp", dir, conn)) {
164// successDownload=false; 164// successDownload=false;
165// msg.sprintf("Unable to change directories "+dir+"\n%s",FtpLastResponse(conn)); 165// msg.sprintf("Unable to change directories "+dir+"\n%s",FtpLastResponse(conn));
166// QMessageBox::message("Note",msg); 166// QMessageBox::message("Note",msg);
167// FtpQuit(conn); 167// FtpQuit(conn);
168// return false; 168// return false;
169// } 169// }
170 odebug << "Requesting directory list." << oendl; 170 QString File_Name;
171 TextLabel3->setText("Getting directory list.");
172 qApp->processEvents();
173 if (!FtpDir( "./.guten_temp", dir.latin1(), conn) ) {
174 msg.sprintf("Unable to list the directory\n"+dir+"\n%s",FtpLastResponse(conn));
175 QMessageBox::message("Note",msg);
176 successDownload=false;
177 FtpQuit(conn);
178 return false;
179 }
180 QFile tmp("./.guten_temp");
181 QString s, File_Name;
182 171
183 if (tmp.open(IO_ReadOnly)) { 172 if( s_partialFileName.right(4) != ".txt") {
184 QTextStream t( &tmp ); // use a text stream 173 TextLabel3->setText("Getting directory list.");
185 odebug << "Finding partial filename "+s_partialFileName << oendl; 174 qApp->processEvents();
186 while ( !t.eof()) { 175 if (!FtpDir( "./.guten_temp", dir.latin1(), conn) ) {
187 s = t.readLine(); 176 msg.sprintf("Unable to list the directory\n"+dir+"\n%s",FtpLastResponse(conn));
177 QMessageBox::message("Note",msg);
178 successDownload = false;
179 FtpQuit(conn);
180 return false;
181 }
182 QFile tmp("./.guten_temp");
183 if (tmp.open(IO_ReadOnly)) {
184 QTextStream t( &tmp ); // use a text stream
185 //odebug << "Finding partial filename "+s_partialFileName << oendl;
186 QString s;
188 187
189 if (s.contains(s_partialFileName, FALSE)) { 188 while ( !t.eof()) {
190 QString str = s.right( (s.length()) - (s.find(s_partialFileName, FALSE)) ); 189 s = t.readLine();
191 190
192 if (str.contains(".txt")) { 191 if (s.contains(s_partialFileName, FALSE)) {
193 File_Name = str; 192 QString str = s.right( (s.length()) - (s.find(s_partialFileName, FALSE)) );
194 odebug << "Found file_name "+ File_Name << oendl;
195 break;
196 }
197// if (str.contains(".zip")) {
198// File_Name = str;
199// odebug << "Found file_name "+ File_Name << oendl;
200// break;
201// }
202 193
203 } 194 if (str.contains(".txt")) {
204 } //end of while loop 195 File_Name = str;
205 tmp.close(); 196 //odebug << "Found file_name "+ File_Name << oendl;
197 break;
198 }
199 }
200 } //end of while loop
201 tmp.close();
206// tmp.remove(); ///TODO this is for release version Zaurus 202// tmp.remove(); ///TODO this is for release version Zaurus
203 }
204 } else {
205 File_Name = s_partialFileName;
206 qDebug("new dir " + File_Name);
207 } 207 }
208 else 208
209 odebug << "Error opening temp file." << oendl;
210 209
211 Config cfg("Gutenbrowser"); 210 Config cfg("Gutenbrowser");
212 cfg.setGroup("General"); 211 cfg.setGroup("General");
213 QString temp=cfg.readEntry("DownloadDirectory",local_library); 212 QString temp=cfg.readEntry("DownloadDirectory",local_library);
214 213
215 localFileName = temp+File_Name; 214 localFileName = temp+File_Name;
216 odebug << "Requesting file "+ File_Name << oendl; 215 odebug << "Requesting file "+ File_Name << oendl;
217 odebug << "Saving as "+localFileName << oendl; 216 odebug << "Saving as "+localFileName << oendl;
218 msg="Requesting file "+ File_Name; 217 msg="Requesting file "+ File_Name;
219 TextLabel3->setText(msg); 218 TextLabel3->setText(msg);
220 qApp->processEvents(); 219 qApp->processEvents();
221 if( File_Name.length()>3) { 220 if( File_Name.length()>3) {
222 if (!FtpSize( File_Name.latin1(), &fsz, FTPLIB_ASCII, conn)) 221 if (!FtpSize( File_Name.latin1(), &fsz, FTPLIB_ASCII, conn))
223 fsz = 0; 222 fsz = 0;
224 QString temp; 223 QString temp;
225 temp.sprintf( File_Name+" "+" %dkb", fsz); 224 temp.sprintf( File_Name+" "+" %dkb", fsz);
226 TextLabel3->setText(temp); 225 TextLabel3->setText(temp);
227 226
228 ProgressBar1->setTotalSteps(fsz); 227 ProgressBar1->setTotalSteps(fsz);
229 FtpOptions(FTPLIB_CALLBACK, (long) log_progress, conn); 228 FtpOptions(FTPLIB_CALLBACK, (long) log_progress, conn);
230 FtpOptions(FTPLIB_IDLETIME, (long) 1000, conn); 229 FtpOptions(FTPLIB_IDLETIME, (long) 1000, conn);
231 FtpOptions(FTPLIB_CALLBACKARG, (long) &fsz, conn); 230 FtpOptions(FTPLIB_CALLBACKARG, (long) &fsz, conn);
232 FtpOptions(FTPLIB_CALLBACKBYTES, (long) fsz/10, conn); 231 FtpOptions(FTPLIB_CALLBACKBYTES, (long) fsz/10, conn);
233 232
234 if (!FtpGet( localFileName.latin1(), File_Name.latin1(), FTPLIB_ASCII, conn)) { 233 if (!FtpGet( localFileName.latin1(), File_Name.latin1(), FTPLIB_ASCII, conn)) {
235 msg.sprintf("Could not download "+ File_Name+"\n%s",FtpLastResponse(conn)); 234 msg.sprintf("Could not download "+ File_Name+"\n%s",FtpLastResponse(conn));
236 successDownload=false; 235 successDownload=false;
237 QMessageBox::message("Note",msg); 236 QMessageBox::message("Note",msg);
238 update(); 237 update();
239 } 238 }
240 } else { 239 } else {
241 QMessageBox::message("Note","Could not download file "+ File_Name); 240 QMessageBox::message("Note","Could not download file "+ File_Name);
242 successDownload=false; 241 successDownload=false;
243 FtpQuit(conn); 242 FtpQuit(conn);
244 return false; 243 return false;
245 } 244 }
246 odebug << "Ftp session successful" << oendl; 245 odebug << "Ftp session successful" << oendl;
247 successDownload=TRUE; 246 successDownload=TRUE;
248 FtpQuit(conn); 247 FtpQuit(conn);
249 return true; 248 return true;
250 } //no network url 249 } //no network url
251 return false; 250 return false;
252} 251}
253 252
254void NetworkDialog::doOk() { 253void NetworkDialog::doOk() {
255 owarn << "Do OK" << oendl; 254 owarn << "Do OK" << oendl;
256 QString loginStr; 255 QString loginStr;
257 loginStr = "gutenbrowser"; 256 loginStr = "gutenbrowser";
diff --git a/noncore/apps/opie-gutenbrowser/gutenbrowser.cpp b/noncore/apps/opie-gutenbrowser/gutenbrowser.cpp
index c7cdd83..413ab51 100644
--- a/noncore/apps/opie-gutenbrowser/gutenbrowser.cpp
+++ b/noncore/apps/opie-gutenbrowser/gutenbrowser.cpp
@@ -96,230 +96,230 @@ Gutenbrowser::Gutenbrowser(QWidget *,const char*, WFlags )
96 menu = new QHBoxLayout(-1,"menu"); 96 menu = new QHBoxLayout(-1,"menu");
97 buttons2 = new QHBoxLayout(-1,"buttons2"); 97 buttons2 = new QHBoxLayout(-1,"buttons2");
98 edits = new QHBoxLayout(-1,"edits"); 98 edits = new QHBoxLayout(-1,"edits");
99 99
100 useSplitter=TRUE; 100 useSplitter=TRUE;
101 101
102 initConfig(); 102 initConfig();
103 initMenuBar(); 103 initMenuBar();
104 initButtonBar(); 104 initButtonBar();
105 initStatusBar(); 105 initStatusBar();
106 initView(); 106 initView();
107 initSlots(); 107 initSlots();
108 qDebug("init finished"); 108 qDebug("init finished");
109 QPEApplication::setStylusOperation( mainList->viewport(),QPEApplication::RightOnHold); 109 QPEApplication::setStylusOperation( mainList->viewport(),QPEApplication::RightOnHold);
110 110
111 connect( mainList, SIGNAL( mouseButtonPressed( int, QListBoxItem *, const QPoint &)), 111 connect( mainList, SIGNAL( mouseButtonPressed( int, QListBoxItem *, const QPoint &)),
112 this, SLOT( mainListPressed(int, QListBoxItem *, const QPoint &)) ); 112 this, SLOT( mainListPressed(int, QListBoxItem *, const QPoint &)) );
113 if( useIcons) 113 if( useIcons)
114 toggleButtonIcons( TRUE); 114 toggleButtonIcons( TRUE);
115 else 115 else
116 toggleButtonIcons( FALSE); 116 toggleButtonIcons( FALSE);
117 117
118 enableButtons(false); 118 enableButtons(false);
119 119
120 Config config("Gutenbrowser"); // populate menubuttonlist 120 Config config("Gutenbrowser"); // populate menubuttonlist
121 config.setGroup("General"); 121 config.setGroup("General");
122 122
123 config.setGroup( "Files" ); 123 config.setGroup( "Files" );
124 QString s_numofFiles = config.readEntry("NumberOfFiles", "0" ); 124 QString s_numofFiles = config.readEntry("NumberOfFiles", "0" );
125 int i_numofFiles = s_numofFiles.toInt(); 125 int i_numofFiles = s_numofFiles.toInt();
126 126
127 QString tempFileName; 127 QString tempFileName;
128 128
129 for (int i = 0; i <= i_numofFiles; i++) { 129 for (int i = 0; i <= i_numofFiles; i++) {
130 // tempFileName.setNum(i); 130 // tempFileName.setNum(i);
131 config.setGroup( "Files" ); 131 config.setGroup( "Files" );
132 QString ramble = config.readEntry( QString::number(i), "" ); 132 QString ramble = config.readEntry( QString::number(i), "" );
133 133
134 config.setGroup( "Titles" ); 134 config.setGroup( "Titles" );
135 QString tempTitle = config.readEntry( ramble, ""); 135 QString tempTitle = config.readEntry( ramble, "");
136 config.setGroup( tempTitle); 136 config.setGroup( tempTitle);
137 int index = config.readNumEntry( "LineNumber", -1 ); 137 int index = config.readNumEntry( "LineNumber", -1 );
138 if( index != -1) { 138 if( index != -1) {
139 odebug << tempTitle << oendl; 139 odebug << tempTitle << oendl;
140 if(!tempTitle.isEmpty()) bookmarksMenu->insertItem( tempTitle); 140 if(!tempTitle.isEmpty()) bookmarksMenu->insertItem( tempTitle);
141 } 141 }
142 } 142 }
143 143
144 // QString gutenIndex= local_library + "GUTINDEX.ALL"; 144 QString gutenIndex = local_library + "/GUTINDEX.ALL";
145 QString gutenIndex = QPEApplication::qpeDir()+ "etc/gutenbrowser/GUTINDEX.ALL";
146 qDebug("gutenindex "+gutenIndex ); 145 qDebug("gutenindex "+gutenIndex );
146
147 if( QFile( gutenIndex).exists() ) { 147 if( QFile( gutenIndex).exists() ) {
148 indexLib.setName( gutenIndex); 148 indexLib.setName( gutenIndex);
149 } else { 149 } else {
150 QString localLibIndexFile = QPEApplication::qpeDir()+ "etc/gutenbrowser/PGWHOLE.TXT"; 150 QString localLibIndexFile = local_library + "/PGWHOLE.TXT";
151 // QString localLibIndexFile= local_library + "PGWHOLE.TXT"; 151 // QString localLibIndexFile= local_library + "PGWHOLE.TXT";
152 newindexLib.setName( localLibIndexFile); 152 newindexLib.setName( localLibIndexFile);
153 } 153 }
154 qDebug("attempting new library"); 154 qDebug("attempting new library");
155 LibraryDlg = new LibraryDialog( this, "Library Index" /*, TRUE */); 155 LibraryDlg = new LibraryDialog( this, "Library Index" /*, TRUE */);
156 loadCheck = false; 156 loadCheck = false;
157 chdir(local_library); 157 chdir(local_library);
158 if(!showMainList) { 158 if(!showMainList) {
159 Lview->setFocus(); 159 Lview->setFocus();
160 // if(firstTime) 160 // if(firstTime)
161 // Bookmark(); 161 // Bookmark();
162 for (int i=1;i< qApp->argc();i++) { 162 for (int i=1;i< qApp->argc();i++) {
163 qDebug("Suppose we open somethin"); 163 qDebug("Suppose we open somethin");
164 if(!load(qApp->argv()[i])) return; 164 if(!load(qApp->argv()[i])) return;
165 } 165 }
166 } else { 166 } else {
167 fillWithTitles(); 167 fillWithTitles();
168 mainList->setFocus(); 168 mainList->setFocus();
169 // mainList->setCurrentItem(0); 169 // mainList->setCurrentItem(0);
170 170
171 } 171 }
172 writeConfig(); 172 writeConfig();
173 QTimer::singleShot( 250, this, SLOT(hideView()) ); 173 QTimer::singleShot( 250, this, SLOT(hideView()) );
174} //end init 174} //end init
175 175
176Gutenbrowser::~Gutenbrowser() { 176Gutenbrowser::~Gutenbrowser() {
177 // QPEApplication::grabKeyboard(); 177 // QPEApplication::grabKeyboard();
178 // QPEApplication::ungrabKeyboard(); 178 // QPEApplication::ungrabKeyboard();
179 odebug << "Exit" << oendl; 179 odebug << "Exit" << oendl;
180} 180}
181 181
182 /* 182 /*
183 Google.com search */ 183 Google.com search */
184void Gutenbrowser::InfoBarClick() { 184void Gutenbrowser::InfoBarClick() {
185 QString text; 185 QString text;
186 if( Lview->hasSelectedText()) { 186 if( Lview->hasSelectedText()) {
187 Lview->copy(); 187 Lview->copy();
188 QClipboard *cb = QApplication::clipboard(); 188 QClipboard *cb = QApplication::clipboard();
189 text = cb->text(); 189 text = cb->text();
190 } else { 190 } else {
191 // text=title; 191 // text=title;
192 text=this->caption(); 192 text=this->caption();
193 } 193 }
194 searchGoogle(text); 194 searchGoogle(text);
195} 195}
196 196
197 /* 197 /*
198 download http with wget or preferred browser */ 198 download http with wget or preferred browser */
199void Gutenbrowser::goGetit( const QString &url, bool showMsg) { 199void Gutenbrowser::goGetit( const QString &url, bool showMsg) {
200 // int eexit=0;
201 QString cmd; 200 QString cmd;
202 // config.read();
203 qApp->processEvents(); 201 qApp->processEvents();
204 QString filename = QPEApplication::qpeDir();
205 if(filename.right(1)!="/")
206 filename+="/etc/gutenbrowser/";
207 else
208 filename+="etc/gutenbrowser/";
209 odebug << "filename "+filename << oendl;
210 // QString filename = QDir::homeDirPath()+"/Applications/gutenbrowser/";
211 202
212 filename += url.right( url.length() - url.findRev("/",-1,TRUE) -1); 203 QString filename = local_library + "/GUTINDEX.ALL";
204// QString filename = old_index;
213 205
214 Config config("Gutenbrowser"); 206 // filename += url.right( url.length() - url.findRev("/",-1,TRUE) -1);
215 config.setGroup( "Browser" ); 207
216 QString brow = config.readEntry("Preferred", "Opera"); 208 Config cfg("Gutenbrowser");
217 odebug << "Preferred browser is "+brow << oendl; 209 cfg.setGroup("FTPsite");
210 ftp_host=cfg.readEntry("SiteName", "sailor.gutenberg.org");
211 ftp_base_dir= cfg.readEntry("base", "/pub/gutenberg");
212
213 // Config config("Gutenbrowser");
214 // config.setGroup( "Browser" );
215 // QString brow = config.readEntry("Preferred", "Opera");
216 // //odebug << "Preferred browser is "+brow << oendl;
218 if(!showMsg) { //if we just get the gutenindex.all 217 if(!showMsg) { //if we just get the gutenindex.all
218// QString cmd="wget -O " + gutenindex1 + " http://sailor.gutenberg.org/GUTINDEX.ALL 2>&1";
219 cmd="wget -O " + filename +" " + url+" 2>&1" ; 219 cmd="wget -O " + filename +" " + url+" 2>&1" ;
220 chdir(local_library); 220 chdir(local_library);
221 odebug << "Issuing the system command: " << cmd << "" << oendl; 221 // //odebug << "Issuing the system command: " << cmd << "" << oendl;
222 222
223 Output *outDlg; 223 Output *outDlg;
224 224
225 outDlg = new Output( 0, tr("Downloading Gutenberg Index...."),TRUE); 225 outDlg = new Output( 0, tr("Downloading Gutenberg Index...."),TRUE);
226 226
227 outDlg->showMaximized(); 227 outDlg->showMaximized();
228 outDlg->show(); 228 outDlg->show();
229 qApp->processEvents(); 229 qApp->processEvents();
230 FILE *fp; 230 FILE *fp;
231 char line[130]; 231 char line[130];
232 outDlg->OutputEdit->append( tr("Running wget") ); 232 outDlg->OutputEdit->append( tr("Running wget") );
233 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 233 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
234 sleep(1); 234 sleep(1);
235 fp = popen( (const char *) cmd, "r"); 235 fp = popen( (const char *) cmd, "r");
236 if ( !fp ) { 236 if ( !fp ) {
237 } else { 237 } else {
238 //odebug << "Issuing the command\n"+cmd << oendl; 238 //odebug << "Issuing the command\n"+cmd << oendl;
239 // system(cmd); 239 // system(cmd);
240 while ( fgets( line, sizeof line, fp)) { 240 while ( fgets( line, sizeof line, fp)) {
241 outDlg->OutputEdit->append(line); 241 outDlg->OutputEdit->append(line);
242 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 242 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
243 } 243 }
244 pclose(fp); 244 pclose(fp);
245 outDlg->OutputEdit->append("Finished downloading\n"); 245 outDlg->OutputEdit->append("Finished downloading\n");
246 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 246 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
247 qApp->processEvents(); 247 qApp->processEvents();
248 248
249 } 249 }
250 outDlg->close(); 250 outDlg->close();
251 251
252 if(outDlg) 252 if(outDlg)
253 delete outDlg; 253 delete outDlg;
254 } else { 254 } else {
255 if( brow == "Konq") { 255 if( brow == "Konq") {
256 cmd = "konqueror "+url+" &"; 256 cmd = "konqueror "+url+" &";
257 } 257 }
258 if( brow == "Opera") { //for desktop testing 258 if( brow == "Opera") { //for desktop testing
259 cmd = "opera "+url+" &"; 259 cmd = "opera "+url+" &";
260 } 260 }
261 // if( brow == "Opera") { // on Zaurus 261 // if( brow == "Opera") { // on Zaurus
262 // cmd = "operagui "+url+" &"; 262 // cmd = "operagui "+url+" &";
263 // } 263 // }
264 if( brow == "Mozilla") { 264 if( brow == "Mozilla") {
265 cmd = "mozilla "+url+" &"; 265 cmd = "mozilla "+url+" &";
266 } 266 }
267 if( brow == "Netscape") { 267 if( brow == "Netscape") {
268 cmd = "netscape "+url+" &"; 268 cmd = "netscape "+url+" &";
269 } 269 }
270 if(brow == "wget") { 270 if(brow == "wget") {
271 // cmd="wget -q "+url+" &"; 271 // cmd="wget -q "+url+" &";
272 QString tempHtml=local_library+"webster.html"; 272 QString tempHtml=local_library+"webster.html";
273 cmd="wget -O "+tempHtml+" -q "+url; 273 cmd="wget -O "+tempHtml+" -q "+url;
274 } 274 }
275 275
276 chdir(local_library); 276 chdir(local_library);
277 odebug << "Issuing the sys command: " << cmd << "" << oendl; 277 // //odebug << "Issuing the sys command: " << cmd << "" << oendl;
278 system(cmd); 278 system(cmd);
279 } 279 }
280} 280}
281 281
282void Gutenbrowser::toggleButtonIcons( bool useEm) { 282void Gutenbrowser::toggleButtonIcons( bool useEm) {
283 QString pixDir; 283 QString pixDir;
284 if(useEm) 284 if(useEm)
285 useEm=TRUE; 285 useEm=TRUE;
286 pixDir=QPEApplication::qpeDir()+"pics/gutenbrowser"; 286 pixDir=QPEApplication::qpeDir()+"pics/gutenbrowser";
287 odebug << "Docdir is "+QPEApplication::documentDir() << oendl; 287 odebug << "Docdir is "+QPEApplication::documentDir() << oendl;
288 288
289 if( useIcons && QDir( pixDir).exists() ) { 289 if( useIcons && QDir( pixDir).exists() ) {
290 LibraryButton->setPixmap( Resource::loadPixmap("home") ); //in inline 290 LibraryButton->setPixmap( Resource::loadPixmap("home") ); //in inline
291 OpenButton->setPixmap( Resource::loadPixmap("gutenbrowser/openbook")); 291 OpenButton->setPixmap( Resource::loadPixmap("gutenbrowser/openbook"));
292 ForwardButton->setPixmap( Resource::loadPixmap("forward"));//in inline 292 ForwardButton->setPixmap( Resource::loadPixmap("forward"));//in inline
293 BackButton->setPixmap( Resource::loadPixmap("back") );//in inline 293 BackButton->setPixmap( Resource::loadPixmap("back") );//in inline
294 SearchButton->setPixmap( Resource::loadPixmap("gutenbrowser/search") );//in inline 294 SearchButton->setPixmap( Resource::loadPixmap("gutenbrowser/search") );//in inline
295 lastBmkButton->setPixmap( Resource::loadPixmap("gutenbrowser/bookmark_folder")); 295 lastBmkButton->setPixmap( Resource::loadPixmap("gutenbrowser/bookmark_folder"));
296 setBookmarkButton->setPixmap( Resource::loadPixmap("gutenbrowser/bookmark") ); 296 setBookmarkButton->setPixmap( Resource::loadPixmap("gutenbrowser/bookmark") );
297 dictionaryButton->setPixmap( Resource::loadPixmap("gutenbrowser/spellcheck") ); 297 dictionaryButton->setPixmap( Resource::loadPixmap("gutenbrowser/spellcheck") );
298 InfoBar->setPixmap( Resource::loadPixmap("gutenbrowser/google")); 298 InfoBar->setPixmap( Resource::loadPixmap("gutenbrowser/google"));
299 } 299 }
300} 300}
301 301
302 302
303bool Gutenbrowser::queryExit() 303bool Gutenbrowser::queryExit()
304{ 304{
305 int exit=QMessageBox::information(this, "Quit...", "Do your really want to quit?", 305 int exit=QMessageBox::information(this, "Quit...", "Do your really want to quit?",
306 QMessageBox::Ok, QMessageBox::Cancel); 306 QMessageBox::Ok, QMessageBox::Cancel);
307 if (exit==1) { 307 if (exit==1) {
308 writeConfig(); 308 writeConfig();
309 qApp->quit(); 309 qApp->quit();
310 } else { 310 } else {
311 }; 311 };
312 return (exit==1); 312 return (exit==1);
313} 313}
314 314
315 // SLOT IMPLEMENTATION 315 // SLOT IMPLEMENTATION
316 316
317void Gutenbrowser::slotFilePrint() { 317void Gutenbrowser::slotFilePrint() {
318} 318}
319 319
320void Gutenbrowser::ByeBye() { 320void Gutenbrowser::ByeBye() {
321 if (b_queryExit) 321 if (b_queryExit)
322 queryExit(); 322 queryExit();
323 else { 323 else {
324 // writeConfig(); 324 // writeConfig();
325 qApp->quit(); 325 qApp->quit();