summaryrefslogtreecommitdiff
path: root/noncore/net
authorspiralman <spiralman>2003-03-21 21:59:58 (UTC)
committer spiralman <spiralman>2003-03-21 21:59:58 (UTC)
commit07a03b603d964b07d2866e04f480014fadcf1570 (patch) (unidiff)
treebcc0b9c9a91855a21ec6dc777eb9ca803bf1b2f4 /noncore/net
parentd1d55108ecc8c913267122014aa2f139be947299 (diff)
downloadopie-07a03b603d964b07d2866e04f480014fadcf1570.zip
opie-07a03b603d964b07d2866e04f480014fadcf1570.tar.gz
opie-07a03b603d964b07d2866e04f480014fadcf1570.tar.bz2
fixed commandline argument reading, made ubrowser a "document-oriented application" (implemented setDocument, etc)
Diffstat (limited to 'noncore/net') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/ubrowser/httpfactory.cpp40
-rw-r--r--noncore/net/ubrowser/main.cpp4
-rw-r--r--noncore/net/ubrowser/mainview.cpp24
-rw-r--r--noncore/net/ubrowser/mainview.h2
4 files changed, 44 insertions, 26 deletions
diff --git a/noncore/net/ubrowser/httpfactory.cpp b/noncore/net/ubrowser/httpfactory.cpp
index 154d5d0..b57149f 100644
--- a/noncore/net/ubrowser/httpfactory.cpp
+++ b/noncore/net/ubrowser/httpfactory.cpp
@@ -36,13 +36,13 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const
36 //comm->setUp((QString *)&abs_name); 36 //comm->setUp((QString *)&abs_name);
37 37
38 name = abs_name; 38 name = abs_name;
39 //name = name.lower(); 39 //name = name.lower();
40 name = name.stripWhiteSpace(); 40 name = name.stripWhiteSpace();
41 41
42 printf("%s\n", name.latin1()); 42 //printf("%s\n", name.latin1());
43 43
44 if(name.startsWith("http://")) 44 if(name.startsWith("http://"))
45 { 45 {
46 name = name.remove(0, 7); 46 name = name.remove(0, 7);
47 } 47 }
48 else 48 else
@@ -70,13 +70,13 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const
70 portS=host; 70 portS=host;
71 host.truncate(portSep); 71 host.truncate(portSep);
72 portS.remove(0, portSep+1); 72 portS.remove(0, portSep+1);
73 port = portS.toInt(); 73 port = portS.toInt();
74 } 74 }
75 75
76 printf("%s %s %d\n", host.latin1(), file.latin1(), port); 76 //printf("%s %s %d\n", host.latin1(), file.latin1(), port);
77 77
78 if(port == 80) 78 if(port == 80)
79 { 79 {
80 portS="80"; 80 portS="80";
81 } 81 }
82 82
@@ -104,13 +104,13 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const
104 mb->exec(); 104 mb->exec();
105 perror("HttpFactory::data:"); 105 perror("HttpFactory::data:");
106 return 0; 106 return 0;
107 } 107 }
108 108
109 QByteArray data; 109 QByteArray data;
110 printf( "HttpFactory::data: %s\n", inet_ntoa(*((struct in_addr *)serverInfo->h_addr )) ); 110 //printf( "HttpFactory::data: %s\n", inet_ntoa(*((struct in_addr *)serverInfo->h_addr )) );
111 111
112 QString request("GET " + file + " HTTP/1.1\r\nHost: " + host + ':' + portS + "\r\nConnection: close\r\n\r\n"); 112 QString request("GET " + file + " HTTP/1.1\r\nHost: " + host + ':' + portS + "\r\nConnection: close\r\n\r\n");
113 113
114 con = socket( AF_INET, SOCK_STREAM, 0 ); 114 con = socket( AF_INET, SOCK_STREAM, 0 );
115 if( con == -1 ) 115 if( con == -1 )
116 { 116 {
@@ -142,14 +142,14 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const
142 perror("HttpFactory::data:"); 142 perror("HttpFactory::data:");
143 return 0; 143 return 0;
144 } 144 }
145 145
146 146
147 bytesSent = send( con, request.latin1(), request.length(), 0); 147 bytesSent = send( con, request.latin1(), request.length(), 0);
148 printf("HttpFactory::data: bytes written: %d out of: %d\n", bytesSent, request.length() ); 148 //printf("HttpFactory::data: bytes written: %d out of: %d\n", bytesSent, request.length() );
149 printf("HttpFactory::data: request sent:\n%s", request.latin1()); 149 //printf("HttpFactory::data: request sent:\n%s", request.latin1());
150 150
151 data = this->processResponse( con, isText ); 151 data = this->processResponse( con, isText );
152 152
153 ::close( con ); 153 ::close( con );
154 154
155 if(isText) 155 if(isText)
@@ -213,54 +213,54 @@ const QByteArray HttpFactory::processResponse( int sockfd, bool &isText ) const
213 done = true; 213 done = true;
214 } 214 }
215 215
216 if( currentLine.contains( "Transfer-Encoding: chunked", false) >= 1 ) 216 if( currentLine.contains( "Transfer-Encoding: chunked", false) >= 1 )
217 { 217 {
218 chunked = true; 218 chunked = true;
219 printf( "HttpFactory::processResponse: chunked encoding\n" ); 219 // printf( "HttpFactory::processResponse: chunked encoding\n" );
220 } 220 }
221 221
222 if( currentLine.contains( "Content-Type: text", false ) >= 1 ) 222 if( currentLine.contains( "Content-Type: text", false ) >= 1 )
223 { 223 {
224 isText = true; 224 isText = true;
225 printf( "HttpFactory::processResponse: content type text\n" ); 225 // printf( "HttpFactory::processResponse: content type text\n" );
226 if( currentLine.contains( "html", false ) >= 1) 226 if( currentLine.contains( "html", false ) >= 1)
227 { 227 {
228 browser->setTextFormat(Qt::RichText); 228 browser->setTextFormat(Qt::RichText);
229 printf( "HttpFactory::processResponse: content type html\n" ); 229 // printf( "HttpFactory::processResponse: content type html\n" );
230 } 230 }
231 } 231 }
232 232
233 if( currentLine.contains( "Content-Type: image", false ) >= 1 ) 233 if( currentLine.contains( "Content-Type: image", false ) >= 1 )
234 { 234 {
235 isText = false; 235 isText = false;
236 printf( "HttpFactory::processResponse: content type image\n" ); 236 // printf( "HttpFactory::processResponse: content type image\n" );
237 } 237 }
238 238
239 if( currentLine.contains( "Content-Length", false ) >= 1 ) 239 if( currentLine.contains( "Content-Length", false ) >= 1 )
240 { 240 {
241 currentLine.remove( 0, 16 ); 241 currentLine.remove( 0, 16 );
242 dataLength = currentLine.toInt(); 242 dataLength = currentLine.toInt();
243 printf( "HttpFactory::processResponse: content length: %d\n", dataLength ); 243 // printf( "HttpFactory::processResponse: content length: %d\n", dataLength );
244 } 244 }
245 245
246 if( currentLine.contains( "404", false ) >= 1 ) 246 if( currentLine.contains( "404", false ) >= 1 )
247 { 247 {
248 printf( "HttpFactory::processResponse: 404 error\n" ); 248 // printf( "HttpFactory::processResponse: 404 error\n" );
249 return 0; 249 return 0;
250 } 250 }
251 251
252 currentLine = ""; 252 currentLine = "";
253 printf("HttpFactory::processResponse: reseting currentLine: %s\n", currentLine.latin1() ); 253 // printf("HttpFactory::processResponse: reseting currentLine: %s\n", currentLine.latin1() );
254 } 254 }
255 } 255 }
256} 256}
257 257
258const QByteArray HttpFactory::recieveNormal( int sockfd, int dataLen ) const 258const QByteArray HttpFactory::recieveNormal( int sockfd, int dataLen ) const
259{ 259{
260 printf( "HttpFactory::recieveNormal: recieving w/out chunked encoding\n" ); 260 //printf( "HttpFactory::recieveNormal: recieving w/out chunked encoding\n" );
261 261
262 QByteArray data( dataLen ); 262 QByteArray data( dataLen );
263 QByteArray temp( dataLen ); 263 QByteArray temp( dataLen );
264 int recieved, i; 264 int recieved, i;
265 265
266 recieved = recv( sockfd, temp.data(), temp.size(), 0 ); 266 recieved = recv( sockfd, temp.data(), temp.size(), 0 );
@@ -280,19 +280,19 @@ const QByteArray HttpFactory::recieveNormal( int sockfd, int dataLen ) const
280 data[i] = temp[j]; 280 data[i] = temp[j];
281 i++; 281 i++;
282 } 282 }
283 temp.fill('\0'); 283 temp.fill('\0');
284 } 284 }
285 285
286 printf( "HttpFactory::recieveNormal: end of data\n" ); 286 //printf( "HttpFactory::recieveNormal: end of data\n" );
287 return data; 287 return data;
288} 288}
289 289
290const QByteArray HttpFactory::recieveChunked( int sockfd ) const 290const QByteArray HttpFactory::recieveChunked( int sockfd ) const
291{ 291{
292 printf( "HttpFactory::recieveChunked: recieving data with chunked encoding\n" ); 292 //printf( "HttpFactory::recieveChunked: recieving data with chunked encoding\n" );
293 293
294 QByteArray data; 294 QByteArray data;
295 QByteArray temp( 1 ); 295 QByteArray temp( 1 );
296 int recieved, i = 0, cSize = 0; 296 int recieved, i = 0, cSize = 0;
297 QString cSizeS; 297 QString cSizeS;
298 298
@@ -303,15 +303,15 @@ const QByteArray HttpFactory::recieveChunked( int sockfd ) const
303 // printf( "HttpFactory::recieveChunked: temp.size(): %d\n", temp.size() ); 303 // printf( "HttpFactory::recieveChunked: temp.size(): %d\n", temp.size() );
304 // printf( "HttpFactory::recieveChunked: temp.data(): %c\n", temp[0] ); 304 // printf( "HttpFactory::recieveChunked: temp.data(): %c\n", temp[0] );
305 cSizeS += temp[0]; 305 cSizeS += temp[0];
306 recv( sockfd, temp.data(), temp.size(), 0 ); 306 recv( sockfd, temp.data(), temp.size(), 0 );
307 } 307 }
308 308
309 printf( "HttpFactory::recieveChunked: cSizeS: %s\n", cSizeS.latin1() ); 309 //printf( "HttpFactory::recieveChunked: cSizeS: %s\n", cSizeS.latin1() );
310 cSize = cSizeS.toInt( 0, 16 ); 310 cSize = cSizeS.toInt( 0, 16 );
311 printf( "HttpFactory::recieveChunked: first chunk of size: %d\n", cSize ); 311 //printf( "HttpFactory::recieveChunked: first chunk of size: %d\n", cSize );
312 312
313 if( *(temp.data()) == ';' ) 313 if( *(temp.data()) == ';' )
314 { 314 {
315 while( *(temp.data()) != '\n' ) 315 while( *(temp.data()) != '\n' )
316 { 316 {
317 recv( sockfd, temp.data(), temp.size(), 0 ); 317 recv( sockfd, temp.data(), temp.size(), 0 );
@@ -352,15 +352,15 @@ const QByteArray HttpFactory::recieveChunked( int sockfd ) const
352 // printf( "HttpFactory::recieveChunked: temp.size(): %d\n", temp.size() ); 352 // printf( "HttpFactory::recieveChunked: temp.size(): %d\n", temp.size() );
353 // printf( "HttpFactory::recieveChunked: temp.data(): %d\n", temp[0] ); 353 // printf( "HttpFactory::recieveChunked: temp.data(): %d\n", temp[0] );
354 cSizeS += temp[0]; 354 cSizeS += temp[0];
355 recv( sockfd, temp.data(), temp.size(), 0 ); 355 recv( sockfd, temp.data(), temp.size(), 0 );
356 } 356 }
357 357
358 printf( "HttpFactory::recieveChunked: cSizeS: %s\n", cSizeS.latin1() ); 358 // printf( "HttpFactory::recieveChunked: cSizeS: %s\n", cSizeS.latin1() );
359 cSize = cSizeS.toInt( 0, 16 ); 359 cSize = cSizeS.toInt( 0, 16 );
360 printf( "HttpFactory::recieveChunked: next chunk of size: %d\n", cSize ); 360 // printf( "HttpFactory::recieveChunked: next chunk of size: %d\n", cSize );
361 361
362 if( *(temp.data()) == ';' ) 362 if( *(temp.data()) == ';' )
363 { 363 {
364 while( *(temp.data()) != '\n' ) 364 while( *(temp.data()) != '\n' )
365 { 365 {
366 recv( sockfd, temp.data(), temp.size(), 0 ); 366 recv( sockfd, temp.data(), temp.size(), 0 );
@@ -368,9 +368,9 @@ const QByteArray HttpFactory::recieveChunked( int sockfd ) const
368 } 368 }
369 369
370 temp.fill( '\0', cSize ); 370 temp.fill( '\0', cSize );
371 data.resize( data.size() + cSize ); 371 data.resize( data.size() + cSize );
372 } 372 }
373 373
374 printf( "HttpFactory::recieveChunked: end of data\n" ); 374 //printf( "HttpFactory::recieveChunked: end of data\n" );
375 return data; 375 return data;
376} 376}
diff --git a/noncore/net/ubrowser/main.cpp b/noncore/net/ubrowser/main.cpp
index fe0f243..e4a873d 100644
--- a/noncore/net/ubrowser/main.cpp
+++ b/noncore/net/ubrowser/main.cpp
@@ -20,10 +20,10 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 20
21int main( int argc, char **argv ) 21int main( int argc, char **argv )
22{ 22{
23 QPEApplication a( argc, argv ); 23 QPEApplication a( argc, argv );
24 MainView w; 24 MainView w;
25 25
26 a.setMainWidget( &w ); 26 //a.setMainWidget( &w );
27 w.showMaximized(); 27 a.showMainDocumentWidget( &w );
28 return a.exec(); 28 return a.exec();
29} 29}
diff --git a/noncore/net/ubrowser/mainview.cpp b/noncore/net/ubrowser/mainview.cpp
index d3f4c57..f68c5db 100644
--- a/noncore/net/ubrowser/mainview.cpp
+++ b/noncore/net/ubrowser/mainview.cpp
@@ -30,12 +30,13 @@ MainView::MainView(QWidget *parent, const char *name) : QMainWindow(parent, name
30 home = new QToolButton(Resource::loadPixmap("ubrowser/home"), 0, 0, 0, 0, toolbar, "home"); 30 home = new QToolButton(Resource::loadPixmap("ubrowser/home"), 0, 0, 0, 0, toolbar, "home");
31 location = new QComboBox(true, toolbar, "location"); 31 location = new QComboBox(true, toolbar, "location");
32 go = new QToolButton(Resource::loadPixmap("ubrowser/go"), 0, 0, 0, 0, toolbar, "go"); 32 go = new QToolButton(Resource::loadPixmap("ubrowser/go"), 0, 0, 0, 0, toolbar, "go");
33 33
34 toolbar->setStretchableWidget(location); 34 toolbar->setStretchableWidget(location);
35 toolbar->setHorizontalStretchable(true); 35 toolbar->setHorizontalStretchable(true);
36 location->setAutoCompletion( true );
36 37
37 addToolBar(toolbar); 38 addToolBar(toolbar);
38 39
39 browser = new QTextBrowser(this, "browser"); 40 browser = new QTextBrowser(this, "browser");
40 setCentralWidget(browser); 41 setCentralWidget(browser);
41 42
@@ -58,18 +59,25 @@ MainView::MainView(QWidget *parent, const char *name) : QMainWindow(parent, name
58 59
59 http = new HttpFactory(browser); 60 http = new HttpFactory(browser);
60 61
61 if( qApp->argc() > 1 ) 62 if( qApp->argc() > 1 )
62 { 63 {
63 char **argv = qApp->argv(); 64 char **argv = qApp->argv();
64 QString *argv1 = new QString( argv[1] ); 65 int i = 0;
65 if( !argv1->startsWith( "http://" ) && !argv1->startsWith( "/" ) ) 66 QString *openfile = new QString( argv[0] );
67 while( openfile->contains( "ubrowser" ) == 0 && i < qApp->argc() )
66 { 68 {
67 argv1->insert( 0, QDir::currentDirPath()+"/" ); 69 i++;
70 *openfile = argv[i];
68 } 71 }
69 location->setEditText( *argv1 ); 72 *openfile = argv[i+1];
73 if( !openfile->startsWith( "http://" ) && !openfile->startsWith( "/" ) )
74 {
75 openfile->insert( 0, QDir::currentDirPath()+"/" );
76 }
77 location->setEditText( *openfile );
70 goClicked(); 78 goClicked();
71 } 79 }
72} 80}
73 81
74void MainView::goClicked() 82void MainView::goClicked()
75{ 83{
@@ -100,6 +108,14 @@ void MainView::textChanged()
100 { 108 {
101 setCaption(browser->documentTitle() + " - uBrowser"); 109 setCaption(browser->documentTitle() + " - uBrowser");
102 } 110 }
103 111
104 location->setEditText(browser->source()); 112 location->setEditText(browser->source());
105} 113}
114
115void MainView::setDocument( const QString& applnk_filename )
116{
117 DocLnk *file = new DocLnk( applnk_filename );
118
119 location->setEditText( file->file() );
120 goClicked();
121}
diff --git a/noncore/net/ubrowser/mainview.h b/noncore/net/ubrowser/mainview.h
index 1a9b0db..20e2c70 100644
--- a/noncore/net/ubrowser/mainview.h
+++ b/noncore/net/ubrowser/mainview.h
@@ -13,12 +13,13 @@ Public License for more details.
13You should have received a copy of the GNU General Public License along with this program; if not, write to the Free 13You should have received a copy of the GNU General Public License along with this program; if not, write to the Free
14Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 14Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15*/ 15*/
16 16
17#include <qpe/resource.h> 17#include <qpe/resource.h>
18#include <qpe/qpetoolbar.h> 18#include <qpe/qpetoolbar.h>
19#include <qpe/applnk.h>
19 20
20#include <qapplication.h> 21#include <qapplication.h>
21#include <qmainwindow.h> 22#include <qmainwindow.h>
22#include <qwidget.h> 23#include <qwidget.h>
23#include <qtextbrowser.h> 24#include <qtextbrowser.h>
24#include <qtoolbutton.h> 25#include <qtoolbutton.h>
@@ -36,12 +37,13 @@ class MainView : public QMainWindow
36 Q_OBJECT 37 Q_OBJECT
37public: 38public:
38 MainView(QWidget *parent=0, const char *name=0); 39 MainView(QWidget *parent=0, const char *name=0);
39public slots: 40public slots:
40 void goClicked(); 41 void goClicked();
41 void textChanged(); 42 void textChanged();
43 void setDocument( const QString& applnk_filename );
42private: 44private:
43 QToolButton *back; 45 QToolButton *back;
44 QToolButton *forward; 46 QToolButton *forward;
45 QToolButton *home; 47 QToolButton *home;
46 QToolButton *go; 48 QToolButton *go;
47 QComboBox *location; 49 QComboBox *location;