author | llornkcor <llornkcor> | 2005-03-01 07:56:26 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2005-03-01 07:56:26 (UTC) |
commit | 2f2b707684582cfa97c96c5fabab2197a7c7f307 (patch) (unidiff) | |
tree | 72df20aae2b443f649f73e7f983eefe53a54109d | |
parent | e12f0049687c84c24f0b7b737b65df2ed6a500a5 (diff) | |
download | opie-2f2b707684582cfa97c96c5fabab2197a7c7f307.zip opie-2f2b707684582cfa97c96c5fabab2197a7c7f307.tar.gz opie-2f2b707684582cfa97c96c5fabab2197a7c7f307.tar.bz2 |
update to new gutenberg directory structures
-rw-r--r-- | noncore/apps/opie-gutenbrowser/LibraryDialog.cpp | 1854 | ||||
-rw-r--r-- | noncore/apps/opie-gutenbrowser/LibraryDialog.h | 7 | ||||
-rw-r--r-- | noncore/apps/opie-gutenbrowser/NetworkDialog.cpp | 67 | ||||
-rw-r--r-- | noncore/apps/opie-gutenbrowser/gutenbrowser.cpp | 38 |
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. */ |
38 | LibraryDialog::LibraryDialog( QWidget* parent, const char* name , bool /*modal*/, WFlags fl ) | 38 | LibraryDialog::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 | ||
93 | LibraryDialog::~LibraryDialog() | 89 | LibraryDialog::~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(); | 93 | void 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 */ |
105 | void LibraryDialog::Newlibrary() | 102 | void 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 | ||
183 | void LibraryDialog::Library() | 134 | void 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 */ |
281 | bool LibraryDialog::getAuthor() | 200 | bool 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 | /* | 306 | void 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*/ | ||
383 | void LibraryDialog::select_title( QListViewItem * item) | 339 | void 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 | ||
436 | bool LibraryDialog::download_Etext() | 394 | bool 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; | 431 | bool 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 | } | 484 | bool 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 | ||
534 | bool LibraryDialog::httpDownload() | 538 | bool 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 | ||
580 | void LibraryDialog::cancelIt() | 584 | void LibraryDialog::cancelIt() |
581 | { | 585 | { |
582 | saveConfig(); | 586 | saveConfig(); |
583 | 587 | ||
584 | DlglistItemNumber = ""; | 588 | DlglistItemNumber = ""; |
585 | this->reject(); | 589 | this->reject(); |
586 | } | 590 | } |
587 | 591 | ||
588 | bool LibraryDialog::setTitle() | 592 | bool 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 | ||
624 | void LibraryDialog::saveConfig() | 631 | void 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*/ |
648 | void LibraryDialog::onButtonSearch() | 655 | void 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*/ |
787 | void LibraryDialog::parseSearchResults( QString resultStr) | 798 | void 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 | |||
852 | void LibraryDialog::sort() | 832 | void LibraryDialog::sort() |
853 | { | 833 | { |
854 | 834 | ||
855 | } | 835 | } |
856 | 836 | ||
857 | /* | 837 | /* |
858 | Downloads the current selected listitem*/ | 838 | Downloads the current selected listitem*/ |
859 | bool LibraryDialog::getItem(QListViewItem *it) | 839 | bool 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*/ |
877 | bool LibraryDialog::onButtonDownload() | 857 | bool 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 */ |
919 | void LibraryDialog::comboSelect(int index) | 899 | void 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 | ||
941 | void LibraryDialog::newList() | 921 | void 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 | ||
1003 | bool LibraryDialog::moreInfo() | 979 | bool 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*/ |
1061 | void LibraryDialog::FindLibrary() | 1037 | void 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 | ||
1063 | void 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 | |||
@@ -1,126 +1,133 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | LibraryDialog.h - description | 2 | LibraryDialog.h - 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 | * This program is free software; you can redistribute it and/or modify * | 7 | * This program is free software; you can redistribute it and/or modify * |
8 | * it under the terms of the GNU General Public License as published by * | 8 | * it under the terms of the GNU General Public License as published by * |
9 | * the Free Software Foundation; either version 2 of the License, or * | 9 | * the Free Software Foundation; either version 2 of the License, or * |
10 | * (at your option) any later version. * | 10 | * (at your option) any later version. * |
11 | ***************************************************************************/ | 11 | ***************************************************************************/ |
12 | #ifndef LIBRARYDIALOG_H | 12 | #ifndef LIBRARYDIALOG_H |
13 | #define LIBRARYDIALOG_H | 13 | #define LIBRARYDIALOG_H |
14 | 14 | ||
15 | #include <qpe/config.h> | 15 | #include <qpe/config.h> |
16 | 16 | ||
17 | #include "SearchDialog.h" | 17 | #include "SearchDialog.h" |
18 | #include "NetworkDialog.h" | 18 | #include "NetworkDialog.h" |
19 | #include <qstringlist.h> | 19 | #include <qstringlist.h> |
20 | #include <qdialog.h> | 20 | #include <qdialog.h> |
21 | #include <qcheckbox.h> | 21 | #include <qcheckbox.h> |
22 | #include <qdatetime.h> | 22 | #include <qdatetime.h> |
23 | #include <qfile.h> | 23 | #include <qfile.h> |
24 | #include <qheader.h> | 24 | #include <qheader.h> |
25 | #include <qlistview.h> | 25 | #include <qlistview.h> |
26 | #include <qmessagebox.h> | 26 | #include <qmessagebox.h> |
27 | #include <qregexp.h> | 27 | #include <qregexp.h> |
28 | #include <qstring.h> | 28 | #include <qstring.h> |
29 | #include <qtextstream.h> | 29 | #include <qtextstream.h> |
30 | #include <qlabel.h> | 30 | #include <qlabel.h> |
31 | #include <stdlib.h> | 31 | #include <stdlib.h> |
32 | #include <qtabwidget.h> | 32 | #include <qtabwidget.h> |
33 | 33 | ||
34 | class QVBoxLayout; | 34 | class QVBoxLayout; |
35 | class QHBoxLayout; | 35 | class QHBoxLayout; |
36 | class QGridLayout; | 36 | class QGridLayout; |
37 | class QListView; | 37 | class QListView; |
38 | class QListViewItem; | 38 | class QListViewItem; |
39 | class QPushButton; | 39 | class QPushButton; |
40 | //class QTabWidget; | 40 | //class QTabWidget; |
41 | class QWidget; | 41 | class QWidget; |
42 | //class Gutenbrowser; | 42 | //class Gutenbrowser; |
43 | 43 | ||
44 | class LibraryDialog : public QDialog { | 44 | class LibraryDialog : public QDialog { |
45 | Q_OBJECT | 45 | Q_OBJECT |
46 | 46 | ||
47 | public: | 47 | public: |
48 | LibraryDialog( QWidget* parent = 0, const char* name = 0 , bool modal = TRUE, WFlags fl = 0 ); | 48 | LibraryDialog( QWidget* parent = 0, const char* name = 0 , bool modal = TRUE, WFlags fl = 0 ); |
49 | ~LibraryDialog(); | 49 | ~LibraryDialog(); |
50 | 50 | ||
51 | QTabWidget *tabWidget; | 51 | QTabWidget *tabWidget; |
52 | QListView *ListView1,*ListView2,*ListView3,*ListView4,*ListView5; | 52 | QListView *ListView1,*ListView2,*ListView3,*ListView4,*ListView5; |
53 | QWidget *widget_1,*widget_2,*widget_3,*widget_4,*widget_5,*widget_6; | 53 | QWidget *widget_1,*widget_2,*widget_3,*widget_4,*widget_5,*widget_6; |
54 | QString ftp_host,ftp_base_dir; | 54 | QString ftp_host,ftp_base_dir; |
55 | QLabel *statusLabel; | 55 | QLabel *statusLabel; |
56 | QListViewItem *QList_Item1,*QList_Item2,*QList_Item3,*QList_Item4,*QList_Item5; | 56 | QListViewItem *QList_Item1,*QList_Item2,*QList_Item3,*QList_Item4,*QList_Item5; |
57 | QStringList list,ItemStrlist,Searchlist,resultLs; | 57 | QStringList list,ItemStrlist,Searchlist,resultLs; |
58 | // QStringList list1,list2,list3,list4; | 58 | // QStringList list1,list2,list3,list4; |
59 | 59 | ||
60 | QPushButton *buttonSearch,*buttonCancel,*buttonDownload,*buttonLibrary,*buttonNewList,*moreInfoButton; | 60 | QPushButton *buttonSearch,*buttonCancel,*buttonDownload,*buttonLibrary,*buttonNewList,*moreInfoButton; |
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; |
67 | bool indexLoaded; | 67 | bool 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 | ||
92 | public slots: | 92 | public 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); |
114 | protected slots: | 116 | protected slots: |
115 | 117 | ||
116 | 118 | ||
117 | protected: | 119 | protected: |
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(); |
125 | private: | ||
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 | |||
@@ -1,279 +1,278 @@ | |||
1 | // /*************************************************************************** | 1 | // /*************************************************************************** |
2 | // NetworkDialog.cpp - description | 2 | // NetworkDialog.cpp - description |
3 | // begin : Sun Aug 27 2000 | 3 | // begin : Sun Aug 27 2000 |
4 | // copyright : (C) 2000 - 2004 by L.J. Potter | 4 | // copyright : (C) 2000 - 2004 by L.J. Potter |
5 | // email : ljp@llornkcor.com | 5 | // email : ljp@llornkcor.com |
6 | // * This program is free software; you can redistribute it and/or modify * | 6 | // * This program is free software; you can redistribute it and/or modify * |
7 | // * it under the terms of the GNU General Public License as published by * | 7 | // * it under the terms of the GNU General Public License as published by * |
8 | // * the Free Software Foundation; either version 2 of the License, or * | 8 | // * the Free Software Foundation; either version 2 of the License, or * |
9 | // * (at your option) any later version. * | 9 | // * (at your option) any later version. * |
10 | // ***************************************************************************/ | 10 | // ***************************************************************************/ |
11 | // // half-assed attempt at providing a network dialog. | 11 | // // half-assed attempt at providing a network dialog. |
12 | // /* Created: Sun Aug 27 15:24:52 2000*/ | 12 | // /* Created: Sun Aug 27 15:24:52 2000*/ |
13 | 13 | ||
14 | 14 | ||
15 | #include "NetworkDialog.h" | 15 | #include "NetworkDialog.h" |
16 | #include "gutenbrowser.h" | 16 | #include "gutenbrowser.h" |
17 | 17 | ||
18 | /* OPIE */ | 18 | /* OPIE */ |
19 | #include <opie2/odebug.h> | 19 | #include <opie2/odebug.h> |
20 | 20 | ||
21 | /* QT */ | 21 | /* QT */ |
22 | #include <qprogressbar.h> | 22 | #include <qprogressbar.h> |
23 | #include <qstringlist.h> | 23 | #include <qstringlist.h> |
24 | #include <qpe/config.h> | 24 | #include <qpe/config.h> |
25 | #include <qvaluelist.h> | 25 | #include <qvaluelist.h> |
26 | #include <qapplication.h> | 26 | #include <qapplication.h> |
27 | #include <qfile.h> | 27 | #include <qfile.h> |
28 | #include <qstringlist.h> | 28 | #include <qstringlist.h> |
29 | #include <qlabel.h> | 29 | #include <qlabel.h> |
30 | #include <qpushbutton.h> | 30 | #include <qpushbutton.h> |
31 | #include <qlayout.h> | 31 | #include <qlayout.h> |
32 | 32 | ||
33 | /* STD */ | 33 | /* STD */ |
34 | #include <unistd.h> | 34 | #include <unistd.h> |
35 | extern "C" { | 35 | extern "C" { |
36 | #include <ftplib.h> | 36 | #include <ftplib.h> |
37 | } | 37 | } |
38 | 38 | ||
39 | QProgressBar* ProgressBar1; | 39 | QProgressBar* ProgressBar1; |
40 | QPushButton* buttonCancel; | 40 | QPushButton* buttonCancel; |
41 | static netbuf *conn = NULL; | 41 | static netbuf *conn = NULL; |
42 | 42 | ||
43 | static int log_progress(netbuf *, int xfered, void *arg) { | 43 | static int log_progress(netbuf *, int xfered, void *arg) { |
44 | int fsz = *(int *)arg; | 44 | int fsz = *(int *)arg; |
45 | int pct = (xfered * 100) / fsz; | 45 | int pct = (xfered * 100) / fsz; |
46 | printf("%3d%%\r", pct); | 46 | printf("%3d%%\r", pct); |
47 | fflush(stdout); | 47 | fflush(stdout); |
48 | ProgressBar1->setProgress(xfered); | 48 | ProgressBar1->setProgress(xfered); |
49 | qApp->processEvents(); | 49 | qApp->processEvents(); |
50 | 50 | ||
51 | return 1; | 51 | return 1; |
52 | } | 52 | } |
53 | 53 | ||
54 | NetworkDialog::NetworkDialog( QWidget* parent, const char* name, bool modal, WFlags fl, const QStringList netL) | 54 | NetworkDialog::NetworkDialog( QWidget* parent, const char* name, bool modal, WFlags fl, const QStringList netL) |
55 | : QDialog( parent, name, modal, fl ) | 55 | : QDialog( parent, name, modal, fl ) |
56 | { | 56 | { |
57 | 57 | ||
58 | ftp_host = netL[0]; | 58 | ftp_host = netL[0]; |
59 | networkUrl = strUrl = netL[0]; | 59 | networkUrl = strUrl = netL[0]; |
60 | 60 | ||
61 | dir = ftp_base_dir = netL[1]; | 61 | dir = ftp_base_dir = netL[1]; |
62 | localFileName = netL[2]; | 62 | localFileName = netL[2]; |
63 | s_partialFileName = netL[3]; | 63 | s_partialFileName = netL[3]; |
64 | 64 | ||
65 | resize(240,120); | 65 | resize(240,120); |
66 | 66 | ||
67 | local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/"; | 67 | local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/"; |
68 | // autoOk = autoDownload; | 68 | // autoOk = autoDownload; |
69 | // if( networkUrl.find("ftp",0,false)== -1 ) { | 69 | // if( networkUrl.find("ftp",0,false)== -1 ) { |
70 | // if ( !name ) | 70 | // if ( !name ) |
71 | // setName( "HTTP NetworkDialog" ); | 71 | // setName( "HTTP NetworkDialog" ); |
72 | // setCaption( tr( "HTTP Download ) ); | 72 | // setCaption( tr( "HTTP Download ) ); |
73 | // qInitNetworkProtocols(); // registers ftp protocol // for now | 73 | // qInitNetworkProtocols(); // registers ftp protocol // for now |
74 | // QNetworkProtocol::registerNetworkProtocol( "http", new QNetworkProtocolFactory<Http> ); | 74 | // QNetworkProtocol::registerNetworkProtocol( "http", new QNetworkProtocolFactory<Http> ); |
75 | // } else { | 75 | // } else { |
76 | if ( !name ) | 76 | if ( !name ) |
77 | setName( "FTP NetworkDialog" ); | 77 | setName( "FTP NetworkDialog" ); |
78 | setCaption(tr("FTP Download")); | 78 | setCaption(tr("FTP Download")); |
79 | // } | 79 | // } |
80 | initDialog(); //opens file to be written | 80 | initDialog(); //opens file to be written |
81 | } | 81 | } |
82 | 82 | ||
83 | NetworkDialog::~NetworkDialog() { | 83 | NetworkDialog::~NetworkDialog() { |
84 | } | 84 | } |
85 | 85 | ||
86 | void NetworkDialog::initDialog() { | 86 | void NetworkDialog::initDialog() { |
87 | 87 | ||
88 | QGridLayout *layout = new QGridLayout( this ); | 88 | QGridLayout *layout = new QGridLayout( this ); |
89 | totalBytesDownloaded=0; | 89 | totalBytesDownloaded=0; |
90 | warnLabel = new QLabel( this, "TextLabel" ); | 90 | warnLabel = new QLabel( this, "TextLabel" ); |
91 | warnLabel ->setText( tr( "Download should start shortly" ) ); | 91 | warnLabel ->setText( tr( "Download should start shortly" ) ); |
92 | TextLabel3 = new QLabel( this, "TextLabel3" ); | 92 | TextLabel3 = new QLabel( this, "TextLabel3" ); |
93 | TextLabel3->setText( ""); | 93 | TextLabel3->setText( ""); |
94 | layout->addMultiCellWidget( warnLabel, 0, 0, 0, 5 ); | 94 | layout->addMultiCellWidget( warnLabel, 0, 0, 0, 5 ); |
95 | layout->addMultiCellWidget( TextLabel3, 1, 1, 0, 5 ); | 95 | layout->addMultiCellWidget( TextLabel3, 1, 1, 0, 5 ); |
96 | 96 | ||
97 | ProgressBar1 = new QProgressBar( this, "ProgressBar1" ); | 97 | ProgressBar1 = new QProgressBar( this, "ProgressBar1" ); |
98 | ProgressBar1->setProgress(0); | 98 | ProgressBar1->setProgress(0); |
99 | layout->addMultiCellWidget( ProgressBar1, 3, 3, 0, 4 ); | 99 | layout->addMultiCellWidget( ProgressBar1, 3, 3, 0, 4 ); |
100 | 100 | ||
101 | // hbox->addStretch(1); | 101 | // hbox->addStretch(1); |
102 | buttonCancel = new QPushButton( this, "buttonCancel" ); | 102 | buttonCancel = new QPushButton( this, "buttonCancel" ); |
103 | buttonCancel->setText( tr( "&Cancel" ) ); | 103 | buttonCancel->setText( tr( "&Cancel" ) ); |
104 | buttonCancel->setAutoDefault( TRUE ); | 104 | buttonCancel->setAutoDefault( TRUE ); |
105 | buttonCancel->setDefault( TRUE ); | 105 | buttonCancel->setDefault( TRUE ); |
106 | layout->addMultiCellWidget( buttonCancel, 3, 3, 5, 5 ); | 106 | layout->addMultiCellWidget( buttonCancel, 3, 3, 5, 5 ); |
107 | 107 | ||
108 | connect(buttonCancel,SIGNAL(clicked()),this,SLOT(reject())); | 108 | connect(buttonCancel,SIGNAL(clicked()),this,SLOT(reject())); |
109 | QTimer::singleShot( 1000, this, SLOT( doOk() )); | 109 | QTimer::singleShot( 1000, this, SLOT( doOk() )); |
110 | 110 | ||
111 | } | 111 | } |
112 | 112 | ||
113 | /* | 113 | /* |
114 | downloads the file networkUrl */ | 114 | downloads the file networkUrl */ |
115 | bool NetworkDialog::downloadFile( QString networkUrl ) | 115 | bool NetworkDialog::downloadFile( QString networkUrl ) |
116 | { | 116 | { |
117 | int fsz; | 117 | int fsz; |
118 | warnLabel ->setText( ""); | 118 | warnLabel ->setText( ""); |
119 | qApp->processEvents(); | 119 | qApp->processEvents(); |
120 | odebug << "Downloading: " << networkUrl << "" << oendl; | 120 | odebug << "Downloading: " << networkUrl << "" << oendl; |
121 | odebug << "Into: " << localFileName << "" << oendl; | 121 | odebug << "Into: " << localFileName << "" << oendl; |
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 | ||
254 | void NetworkDialog::doOk() { | 253 | void NetworkDialog::doOk() { |
255 | owarn << "Do OK" << oendl; | 254 | owarn << "Do OK" << oendl; |
256 | QString loginStr; | 255 | QString loginStr; |
257 | loginStr = "gutenbrowser"; | 256 | loginStr = "gutenbrowser"; |
258 | if ( !ftp_host.isEmpty() ) { | 257 | if ( !ftp_host.isEmpty() ) { |
259 | if( ftp_host.find( "/", ftp_host.length() - 1,TRUE) != -1 && ftp_host.find("ftp://",0, TRUE) != -1) { | 258 | if( ftp_host.find( "/", ftp_host.length() - 1,TRUE) != -1 && ftp_host.find("ftp://",0, TRUE) != -1) { |
260 | TextLabel3->setText( tr( "List remote dir:\n" + ftp_host) ); | 259 | TextLabel3->setText( tr( "List remote dir:\n" + ftp_host) ); |
261 | // TextLabel2->setText( tr( "local file to download into: " +localFileName ) ); | 260 | // TextLabel2->setText( tr( "local file to download into: " +localFileName ) ); |
262 | 261 | ||
263 | if( downloadFile(ftp_host)) | 262 | if( downloadFile(ftp_host)) |
264 | successDownload = true; | 263 | successDownload = true; |
265 | else { | 264 | else { |
266 | successDownload = false; | 265 | successDownload = false; |
267 | reject(); | 266 | reject(); |
268 | } | 267 | } |
269 | } else { | 268 | } else { |
270 | if(downloadFile(ftp_host)) | 269 | if(downloadFile(ftp_host)) |
271 | successDownload = true; | 270 | successDownload = true; |
272 | else { | 271 | else { |
273 | successDownload = false; | 272 | successDownload = false; |
274 | reject(); | 273 | reject(); |
275 | } | 274 | } |
276 | } | 275 | } |
277 | } | 276 | } |
278 | accept(); | 277 | accept(); |
279 | } | 278 | } |
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 | |||
@@ -1,469 +1,469 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | gutenbrowser.cpp - description | 2 | gutenbrowser.cpp - description |
3 | ------------------- | 3 | ------------------- |
4 | begin : Mon Jul 24 22:33:12 MDT 2000 | 4 | begin : Mon Jul 24 22:33:12 MDT 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 | * This program is free software; you can redistribute it and/or modify * | 7 | * This program is free software; you can redistribute it and/or modify * |
8 | * it under the terms of the GNU General Public License as published by * | 8 | * it under the terms of the GNU General Public License as published by * |
9 | * the Free Software Foundation; either version 2 of the License, or * | 9 | * the Free Software Foundation; either version 2 of the License, or * |
10 | * (at your option) any later version. * | 10 | * (at your option) any later version. * |
11 | ***************************************************************************/ | 11 | ***************************************************************************/ |
12 | // http search | 12 | // http search |
13 | // http://digital.library.upenn.edu/books/authors.html | 13 | // http://digital.library.upenn.edu/books/authors.html |
14 | // http://digital.library.upenn.edu/books/titles.html | 14 | // http://digital.library.upenn.edu/books/titles.html |
15 | // ftp://ibiblio.org/pub/docs/books/gutenberg/GUTINDEX.ALL | 15 | // ftp://ibiblio.org/pub/docs/books/gutenberg/GUTINDEX.ALL |
16 | // donate@gutenberg.net | 16 | // donate@gutenberg.net |
17 | 17 | ||
18 | 18 | ||
19 | #include "editTitle.h" | 19 | #include "editTitle.h" |
20 | #include "gutenbrowser.h" | 20 | #include "gutenbrowser.h" |
21 | #include "LibraryDialog.h" | 21 | #include "LibraryDialog.h" |
22 | //#include "bookmarksdlg.h" | 22 | //#include "bookmarksdlg.h" |
23 | #include "optionsDialog.h" | 23 | #include "optionsDialog.h" |
24 | #include "helpme.h" | 24 | #include "helpme.h" |
25 | #include "NetworkDialog.h" | 25 | #include "NetworkDialog.h" |
26 | 26 | ||
27 | #include "openetext.h" | 27 | #include "openetext.h" |
28 | #include "output.h" | 28 | #include "output.h" |
29 | 29 | ||
30 | /* OPIE */ | 30 | /* OPIE */ |
31 | #include <opie2/odebug.h> | 31 | #include <opie2/odebug.h> |
32 | #include <qpe/qpeapplication.h> | 32 | #include <qpe/qpeapplication.h> |
33 | #include <qpe/fontdatabase.h> | 33 | #include <qpe/fontdatabase.h> |
34 | #include <qpe/config.h> | 34 | #include <qpe/config.h> |
35 | #include <qpe/qcopenvelope_qws.h> | 35 | #include <qpe/qcopenvelope_qws.h> |
36 | #include <qpe/mimetype.h> | 36 | #include <qpe/mimetype.h> |
37 | #include <qpe/resource.h> | 37 | #include <qpe/resource.h> |
38 | #include <qpe/applnk.h> | 38 | #include <qpe/applnk.h> |
39 | 39 | ||
40 | /* QT */ | 40 | /* QT */ |
41 | #include <qregexp.h> | 41 | #include <qregexp.h> |
42 | #include <qregion.h> | 42 | #include <qregion.h> |
43 | #include <qpaintdevicemetrics.h> | 43 | #include <qpaintdevicemetrics.h> |
44 | #include <qvaluelist.h> | 44 | #include <qvaluelist.h> |
45 | #include <qlabel.h> | 45 | #include <qlabel.h> |
46 | #include <qclipboard.h> | 46 | #include <qclipboard.h> |
47 | #include <qpainter.h> | 47 | #include <qpainter.h> |
48 | #include <qpalette.h> | 48 | #include <qpalette.h> |
49 | #include <qobjectlist.h> | 49 | #include <qobjectlist.h> |
50 | #include <qfontdialog.h> | 50 | #include <qfontdialog.h> |
51 | #include <qtextview.h> | 51 | #include <qtextview.h> |
52 | #include <qbrush.h> | 52 | #include <qbrush.h> |
53 | #include <qfile.h> | 53 | #include <qfile.h> |
54 | #include <qfontinfo.h> | 54 | #include <qfontinfo.h> |
55 | #include <qscrollview.h> | 55 | #include <qscrollview.h> |
56 | #include <qpoint.h> | 56 | #include <qpoint.h> |
57 | 57 | ||
58 | /* STD */ | 58 | /* STD */ |
59 | #include <stdio.h> | 59 | #include <stdio.h> |
60 | #include <stdlib.h> | 60 | #include <stdlib.h> |
61 | #include <unistd.h> | 61 | #include <unistd.h> |
62 | #include <sys/stat.h> | 62 | #include <sys/stat.h> |
63 | #include <fcntl.h> | 63 | #include <fcntl.h> |
64 | #include <errno.h> | 64 | #include <errno.h> |
65 | 65 | ||
66 | static const int nfontsizes = 9; | 66 | static const int nfontsizes = 9; |
67 | static const int fontsize[nfontsizes] = {8,9,10,11,12,13,14,18,24}; | 67 | static const int fontsize[nfontsizes] = {8,9,10,11,12,13,14,18,24}; |
68 | 68 | ||
69 | #ifdef NOQUICKLAUNCH | 69 | #ifdef NOQUICKLAUNCH |
70 | Gutenbrowser::Gutenbrowser() | 70 | Gutenbrowser::Gutenbrowser() |
71 | Gutenbrowser(); | 71 | Gutenbrowser(); |
72 | #else | 72 | #else |
73 | Gutenbrowser::Gutenbrowser(QWidget *,const char*, WFlags ) | 73 | Gutenbrowser::Gutenbrowser(QWidget *,const char*, WFlags ) |
74 | #endif | 74 | #endif |
75 | : QMainWindow() | 75 | : QMainWindow() |
76 | { | 76 | { |
77 | // QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; | 77 | // QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; |
78 | // QCopEnvelope e("QPE/System", "grabKeyboard(QString)" ); | 78 | // QCopEnvelope e("QPE/System", "grabKeyboard(QString)" ); |
79 | // e << ""; | 79 | // e << ""; |
80 | // QPEApplication::grabKeyboard(); | 80 | // QPEApplication::grabKeyboard(); |
81 | showMainList=TRUE; | 81 | showMainList=TRUE; |
82 | working=false; | 82 | working=false; |
83 | this->setUpdatesEnabled(TRUE); | 83 | this->setUpdatesEnabled(TRUE); |
84 | // #ifndef Q_WS_QWS | 84 | // #ifndef Q_WS_QWS |
85 | QString msg; | 85 | QString msg; |
86 | msg="You have now entered unto gutenbrowser,\n"; | 86 | msg="You have now entered unto gutenbrowser,\n"; |
87 | msg+="make your self at home, sit back, relax and read something great.\n"; | 87 | msg+="make your self at home, sit back, relax and read something great.\n"; |
88 | 88 | ||
89 | local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/"; | 89 | local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/"; |
90 | setCaption("Gutenbrowser");// Embedded " VERSION); | 90 | setCaption("Gutenbrowser");// Embedded " VERSION); |
91 | this->setUpdatesEnabled(TRUE); | 91 | this->setUpdatesEnabled(TRUE); |
92 | 92 | ||
93 | // bool firstTime=FALSE; | 93 | // bool firstTime=FALSE; |
94 | topLayout = new QVBoxLayout( this, 0, 0, "topLayout"); | 94 | topLayout = new QVBoxLayout( this, 0, 0, "topLayout"); |
95 | 95 | ||
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 | ||
176 | Gutenbrowser::~Gutenbrowser() { | 176 | Gutenbrowser::~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 */ |
184 | void Gutenbrowser::InfoBarClick() { | 184 | void 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 */ |
199 | void Gutenbrowser::goGetit( const QString &url, bool showMsg) { | 199 | void 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 | ||
282 | void Gutenbrowser::toggleButtonIcons( bool useEm) { | 282 | void 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 | ||
303 | bool Gutenbrowser::queryExit() | 303 | bool 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 | ||
317 | void Gutenbrowser::slotFilePrint() { | 317 | void Gutenbrowser::slotFilePrint() { |
318 | } | 318 | } |
319 | 319 | ||
320 | void Gutenbrowser::ByeBye() { | 320 | void 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(); |
326 | } | 326 | } |
327 | } | 327 | } |
328 | 328 | ||
329 | void Gutenbrowser::HelpBtn() { | 329 | void Gutenbrowser::HelpBtn() { |
330 | HelpMe* HelpDlg; | 330 | HelpMe* HelpDlg; |
331 | HelpDlg = new HelpMe( this, "Help Dialog"); | 331 | HelpDlg = new HelpMe( this, "Help Dialog"); |
332 | HelpDlg->showMaximized(); | 332 | HelpDlg->showMaximized(); |
333 | } | 333 | } |
334 | 334 | ||
335 | void Gutenbrowser::DownloadIndex() { | 335 | void Gutenbrowser::DownloadIndex() { |
336 | #ifndef Q_WS_QWS | 336 | #ifndef Q_WS_QWS |
337 | { | 337 | { |
338 | switch( QMessageBox::information( 0, (tr("Download Library Index, or FTP sites?")), | 338 | switch( QMessageBox::information( 0, (tr("Download Library Index, or FTP sites?")), |
339 | (tr("Do you want to download the newest\n" | 339 | (tr("Do you want to download the newest\n" |
340 | "Project Gutenberg Library Index?\n" | 340 | "Project Gutenberg Library Index?\n" |
341 | "or select an ftp site?\n")), | 341 | "or select an ftp site?\n")), |
342 | (tr("&Library Index")), (tr("&Ftp Site")), (tr("&Cancel")), 2, 2 ) ) | 342 | (tr("&Library Index")), (tr("&Ftp Site")), (tr("&Cancel")), 2, 2 ) ) |
343 | { | 343 | { |
344 | case 0: // index clicked, | 344 | case 0: // index clicked, |
345 | downloadLibIndex(); | 345 | downloadLibIndex(); |
346 | break; | 346 | break; |
347 | 347 | ||
348 | case 1: // ftp selected | 348 | case 1: // ftp selected |
349 | downloadFtpList(); | 349 | downloadFtpList(); |
350 | break; | 350 | break; |
351 | 351 | ||
352 | case 2: // Cancel | 352 | case 2: // Cancel |
353 | break; | 353 | break; |
354 | }; | 354 | }; |
355 | } | 355 | } |
356 | #endif | 356 | #endif |
357 | } // end DownloadIndex | 357 | } // end DownloadIndex |
358 | 358 | ||
359 | 359 | ||
360 | void Gutenbrowser::downloadFtpList() { | 360 | void Gutenbrowser::downloadFtpList() { |
361 | // QString cmd="wget http://www.promo.net/pg/list.html"); | 361 | // QString cmd="wget http://www.promo.net/pg/list.html"); |
362 | //system(cmd); | 362 | //system(cmd); |
363 | qApp->processEvents(); | 363 | qApp->processEvents(); |
364 | optionsDialog* optDlg; | 364 | optionsDialog* optDlg; |
365 | optDlg = new optionsDialog( this,"Options_Dlg", true); | 365 | optDlg = new optionsDialog( this,"Options_Dlg", true); |
366 | optDlg->getSite(); | 366 | optDlg->getSite(); |
367 | if(optDlg) | 367 | if(optDlg) |
368 | delete optDlg; | 368 | delete optDlg; |
369 | } | 369 | } |
370 | 370 | ||
371 | 371 | ||
372 | void Gutenbrowser::downloadLibIndex() { | 372 | void Gutenbrowser::downloadLibIndex() { |
373 | // QString dwmloader = local_library + "pgwhole.zip"; | 373 | // QString dwmloader = local_library + "pgwhole.zip"; |
374 | // QString cmd = "lynx -source http://www.gutenberg.net/pgwhole.zip | cat >> " + dwmloader; | 374 | // QString cmd = "lynx -source http://www.gutenberg.net/pgwhole.zip | cat >> " + dwmloader; |
375 | // system(cmd); | 375 | // system(cmd); |
376 | 376 | ||
377 | // QString outputFile= local_library+ "GUTINDEX.ALL"; | 377 | // QString outputFile= local_library+ "GUTINDEX.ALL"; |
378 | // config.setGroup( "FTPsite" ); // ftp server config | 378 | // config.setGroup( "FTPsite" ); // ftp server config |
379 | // ftp_host=config.readEntry("SiteName", ""); | 379 | // ftp_host=config.readEntry("SiteName", ""); |
380 | // ftp_base_dir= config.readEntry("base", ""); | 380 | // ftp_base_dir= config.readEntry("base", ""); |
381 | // QString networkUrl= "ftp://"+ftp_host+ftp_base_dir+"/GUTINDEX.ALL"; | 381 | // QString networkUrl= "ftp://"+ftp_host+ftp_base_dir+"/GUTINDEX.ALL"; |
382 | QDir dir( local_library); | 382 | QDir dir( local_library); |
383 | dir.cd("", TRUE); | 383 | dir.cd("", TRUE); |
384 | goGetit( "http://sailor.gutenberg.org/GUTINDEX.ALL", false); // until ghttp works on binaries -qt3 | 384 | goGetit( "http://sailor.gutenberg.org/GUTINDEX.ALL", false); // until ghttp works on binaries -qt3 |
385 | // goGetit( "http://www.gutenberg.net/pgwhole.zip", true); // until ghttp works on binaries -qt3 | 385 | // goGetit( "http://www.gutenberg.net/pgwhole.zip", true); // until ghttp works on binaries -qt3 |
386 | // NetworkDialog *NetworkDlg; | 386 | // NetworkDialog *NetworkDlg; |
387 | // NetworkDlg = new NetworkDialog( this,"Network Protocol Dialog", TRUE, 0, networkUrl, outputFile ); | 387 | // NetworkDlg = new NetworkDialog( this,"Network Protocol Dialog", TRUE, 0, networkUrl, outputFile ); |
388 | // if( NetworkDlg->exec() != 0 ) | 388 | // if( NetworkDlg->exec() != 0 ) |
389 | // { // use new, improved, *INSTANT* network-dialog-file-getterer | 389 | // { // use new, improved, *INSTANT* network-dialog-file-getterer |
390 | //// QMessageBox::message("Note",""); | 390 | //// QMessageBox::message("Note",""); |
391 | // } | 391 | // } |
392 | // if(NetworkDlg) | 392 | // if(NetworkDlg) |
393 | // delete NetworkDlg; | 393 | // delete NetworkDlg; |
394 | } | 394 | } |
395 | 395 | ||
396 | 396 | ||
397 | void Gutenbrowser::PrintBtn() { | 397 | void Gutenbrowser::PrintBtn() { |
398 | } | 398 | } |
399 | 399 | ||
400 | void Gutenbrowser::SearchBtn() { | 400 | void Gutenbrowser::SearchBtn() { |
401 | if( loadCheck) { | 401 | if( loadCheck) { |
402 | odebug << "loadCheck: we have a loaded doc" << oendl; | 402 | odebug << "loadCheck: we have a loaded doc" << oendl; |
403 | Search(); | 403 | Search(); |
404 | } | 404 | } |
405 | // else | 405 | // else |
406 | // QMessageBox::message("Note","Sorry, can't search. No etext is loaded"); | 406 | // QMessageBox::message("Note","Sorry, can't search. No etext is loaded"); |
407 | } | 407 | } |
408 | 408 | ||
409 | 409 | ||
410 | void Gutenbrowser::ForwardBtn() { | 410 | void Gutenbrowser::ForwardBtn() { |
411 | 411 | ||
412 | if( !ForwardButton->autoRepeat() && !ForwardButton->isDown()) { | 412 | if( !ForwardButton->autoRepeat() && !ForwardButton->isDown()) { |
413 | 413 | ||
414 | QString s; | 414 | QString s; |
415 | QString insertString; | 415 | QString insertString; |
416 | int pageSize= Lview->PageSize(); | 416 | int pageSize= Lview->PageSize(); |
417 | Lview->clear(); | 417 | Lview->clear(); |
418 | 418 | ||
419 | for(int fd=0; fd < pageSize - 1;fd++) { | 419 | for(int fd=0; fd < pageSize - 1;fd++) { |
420 | f.readLine(s, 256); | 420 | f.readLine(s, 256); |
421 | if(useWrap) | 421 | if(useWrap) |
422 | s.replace(QRegExp("\n"),""); | 422 | s.replace(QRegExp("\n"),""); |
423 | insertString+=s; | 423 | insertString+=s; |
424 | Lview->insertLine( s, -1); | 424 | Lview->insertLine( s, -1); |
425 | // odebug << s << oendl; | 425 | // odebug << s << oendl; |
426 | currentLine++; | 426 | currentLine++; |
427 | } | 427 | } |
428 | // Lview->insertAt( insertString,0,0, FALSE); | 428 | // Lview->insertAt( insertString,0,0, FALSE); |
429 | currentFilePos = f.at(); | 429 | currentFilePos = f.at(); |
430 | // if( i_pageNum != pages) { | 430 | // if( i_pageNum != pages) { |
431 | // Lview->MultiLine_Ex::pageDown( FALSE); | 431 | // Lview->MultiLine_Ex::pageDown( FALSE); |
432 | i_pageNum++; | 432 | i_pageNum++; |
433 | pageStopArray.resize(i_pageNum + 1); | 433 | pageStopArray.resize(i_pageNum + 1); |
434 | // int length = Lview->length(); | 434 | // int length = Lview->length(); |
435 | 435 | ||
436 | pageStopArray[i_pageNum ] = currentFilePos; | 436 | pageStopArray[i_pageNum ] = currentFilePos; |
437 | odebug << currentFilePos << " current page is number " << i_pageNum | 437 | odebug << currentFilePos << " current page is number " << i_pageNum |
438 | << ", pagesize " << pageSize << ", length " << Lview->length() | 438 | << ", pagesize " << pageSize << ", length " << Lview->length() |
439 | << ", current " << pageStopArray[i_pageNum] << oendl; | 439 | << ", current " << pageStopArray[i_pageNum] << oendl; |
440 | setStatus(); | 440 | setStatus(); |
441 | // Lview->setCursorPosition( 0, 0, FALSE); | 441 | // Lview->setCursorPosition( 0, 0, FALSE); |
442 | // } | 442 | // } |
443 | 443 | ||
444 | } else { | 444 | } else { |
445 | odebug << "bal" << oendl; | 445 | odebug << "bal" << oendl; |
446 | // if( i_pageNum != pages) { | 446 | // if( i_pageNum != pages) { |
447 | 447 | ||
448 | // // int newTop = Lview->Top(); | 448 | // // int newTop = Lview->Top(); |
449 | // // if(Lview->lastRow() > i) | 449 | // // if(Lview->lastRow() > i) |
450 | // Lview->ScrollUp(1); | 450 | // Lview->ScrollUp(1); |
451 | // // i_pageNum++; | 451 | // // i_pageNum++; |
452 | // setStatus(); | 452 | // setStatus(); |
453 | // Lview->setCursorPosition( Lview->Top(), 0, FALSE); | 453 | // Lview->setCursorPosition( Lview->Top(), 0, FALSE); |
454 | 454 | ||
455 | // } | 455 | // } |
456 | 456 | ||
457 | } | 457 | } |
458 | Lview->setFocus(); | 458 | Lview->setFocus(); |
459 | 459 | ||
460 | odebug << "page number " << i_pageNum << " line number " << currentLine << "" << oendl; | 460 | odebug << "page number " << i_pageNum << " line number " << currentLine << "" << oendl; |
461 | } | 461 | } |
462 | 462 | ||
463 | 463 | ||
464 | void Gutenbrowser::BackBtn() { | 464 | void Gutenbrowser::BackBtn() { |
465 | if( i_pageNum > 0) { | 465 | if( i_pageNum > 0) { |
466 | int pageSize= Lview->PageSize(); | 466 | int pageSize= Lview->PageSize(); |
467 | // int length=Lview->length(); | 467 | // int length=Lview->length(); |
468 | 468 | ||
469 | i_pageNum--; | 469 | i_pageNum--; |