summaryrefslogtreecommitdiff
authorspiralman <spiralman>2003-03-21 21:59:58 (UTC)
committer spiralman <spiralman>2003-03-21 21:59:58 (UTC)
commit07a03b603d964b07d2866e04f480014fadcf1570 (patch) (unidiff)
treebcc0b9c9a91855a21ec6dc777eb9ca803bf1b2f4
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 (more/less context) (ignore 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
@@ -30,25 +30,25 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const
30 printf("HttpFactory::data: using absolute data func\n"); 30 printf("HttpFactory::data: using absolute data func\n");
31 31
32 int port=80, addrEnd, portSep; 32 int port=80, addrEnd, portSep;
33 QString host, file, portS, name, tempString; 33 QString host, file, portS, name, tempString;
34 bool done=false, isText=true; 34 bool done=false, isText=true;
35 35
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
49 { 49 {
50 name.prepend(browser->context()); 50 name.prepend(browser->context());
51 name = name.remove(0, 7); 51 name = name.remove(0, 7);
52 } 52 }
53 53
54 addrEnd = name.find('/'); 54 addrEnd = name.find('/');
@@ -64,25 +64,25 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const
64 host.truncate(addrEnd); 64 host.truncate(addrEnd);
65 file.remove(0, addrEnd); 65 file.remove(0, addrEnd);
66 66
67 portSep = host.find(':'); 67 portSep = host.find(':');
68 if(portSep != -1) 68 if(portSep != -1)
69 { 69 {
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
83 //if(file.find(".png", file.length()-4) != -1 || file.find(".gif", file.length()-4) != -1 || file.find(".jpg", file.length()-4) != -1) 83 //if(file.find(".png", file.length()-4) != -1 || file.find(".gif", file.length()-4) != -1 || file.find(".jpg", file.length()-4) != -1)
84 //{ 84 //{
85 // isImage=true; 85 // isImage=true;
86 //} 86 //}
87 87
88 //comm->setStuff(host, portS, file, text, image, isImage); 88 //comm->setStuff(host, portS, file, text, image, isImage);
@@ -98,25 +98,25 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const
98 QMessageBox *mb = new QMessageBox("Error!", 98 QMessageBox *mb = new QMessageBox("Error!",
99 "couldnt find ip address", 99 "couldnt find ip address",
100 QMessageBox::NoIcon, 100 QMessageBox::NoIcon,
101 QMessageBox::Ok, 101 QMessageBox::Ok,
102 QMessageBox::NoButton, 102 QMessageBox::NoButton,
103 QMessageBox::NoButton); 103 QMessageBox::NoButton);
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 {
117 QMessageBox *mb = new QMessageBox("Error!", 117 QMessageBox *mb = new QMessageBox("Error!",
118 "couldnt create socket", 118 "couldnt create socket",
119 QMessageBox::NoIcon, 119 QMessageBox::NoIcon,
120 QMessageBox::Ok, 120 QMessageBox::Ok,
121 QMessageBox::NoButton, 121 QMessageBox::NoButton,
122 QMessageBox::NoButton); 122 QMessageBox::NoButton);
@@ -136,26 +136,26 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const
136 "couldnt connect to socket", 136 "couldnt connect to socket",
137 QMessageBox::NoIcon, 137 QMessageBox::NoIcon,
138 QMessageBox::Ok, 138 QMessageBox::Ok,
139 QMessageBox::NoButton, 139 QMessageBox::NoButton,
140 QMessageBox::NoButton); 140 QMessageBox::NoButton);
141 mb->exec(); 141 mb->exec();
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)
156 { 156 {
157 text->setText( QString( data ) ); 157 text->setText( QString( data ) );
158 return text; 158 return text;
159 } 159 }
160 else 160 else
161 { 161 {
@@ -207,66 +207,66 @@ const QByteArray HttpFactory::processResponse( int sockfd, bool &isText ) const
207 if( chunked ) 207 if( chunked )
208 { 208 {
209 return recieveChunked( sockfd ); 209 return recieveChunked( sockfd );
210 } else { 210 } else {
211 return recieveNormal( sockfd, dataLength ); 211 return recieveNormal( sockfd, dataLength );
212 } 212 }
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 );
267 //printf( "HttpFactory::recieveNormal: found some data: %s\n", (char *)temp.data() ); 267 //printf( "HttpFactory::recieveNormal: found some data: %s\n", (char *)temp.data() );
268 for( i = 0; i < recieved; i++ ) 268 for( i = 0; i < recieved; i++ )
269 { 269 {
270 data[i] = temp[i]; 270 data[i] = temp[i];
271 } 271 }
272 dataLen -= recieved; 272 dataLen -= recieved;
@@ -274,50 +274,50 @@ const QByteArray HttpFactory::recieveNormal( int sockfd, int dataLen ) const
274 { 274 {
275 recieved = recv( sockfd, temp.data(), temp.size(), 0 ); 275 recieved = recv( sockfd, temp.data(), temp.size(), 0 );
276 dataLen -= recieved; 276 dataLen -= recieved;
277 // printf( "HttpFactory::recieveNormal: found some more data: %s\n", (char *)temp.data() ); 277 // printf( "HttpFactory::recieveNormal: found some more data: %s\n", (char *)temp.data() );
278 for( int j = 0; j < recieved; j++ ) 278 for( int j = 0; j < recieved; j++ )
279 { 279 {
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
299 //printf( "HttpFactory::recieveChunked: temp.size(): %d\n", temp.size() ); 299 //printf( "HttpFactory::recieveChunked: temp.size(): %d\n", temp.size() );
300 recv( sockfd, temp.data(), temp.size(), 0 ); 300 recv( sockfd, temp.data(), temp.size(), 0 );
301 while( *(temp.data()) != '\n' && *(temp.data()) != ';' ) 301 while( *(temp.data()) != '\n' && *(temp.data()) != ';' )
302 { 302 {
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 );
318 } 318 }
319 } 319 }
320 320
321 temp.fill( '\0', cSize ); 321 temp.fill( '\0', cSize );
322 data.fill( '\0', cSize ); 322 data.fill( '\0', cSize );
323 323
@@ -346,31 +346,31 @@ const QByteArray HttpFactory::recieveChunked( int sockfd ) const
346 { 346 {
347 recv( sockfd, temp.data(), temp.size(), 0 ); 347 recv( sockfd, temp.data(), temp.size(), 0 );
348 } 348 }
349 recv( sockfd, temp.data(), temp.size(), 0 ); 349 recv( sockfd, temp.data(), temp.size(), 0 );
350 while( *(temp.data()) != '\n' && *(temp.data()) != ';' ) 350 while( *(temp.data()) != '\n' && *(temp.data()) != ';' )
351 { 351 {
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 );
367 } 367 }
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
@@ -14,16 +14,16 @@ You should have received a copy of the GNU General Public License along with thi
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/qpeapplication.h> 17#include <qpe/qpeapplication.h>
18 18
19#include "mainview.h" 19#include "mainview.h"
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
@@ -24,24 +24,25 @@ MainView::MainView(QWidget *parent, const char *name) : QMainWindow(parent, name
24 24
25 setToolBarsMovable( false ); 25 setToolBarsMovable( false );
26 26
27 QPEToolBar *toolbar = new QPEToolBar(this, "toolbar"); 27 QPEToolBar *toolbar = new QPEToolBar(this, "toolbar");
28 back = new QToolButton(Resource::loadPixmap("ubrowser/back"), 0, 0, 0, 0, toolbar, "back"); 28 back = new QToolButton(Resource::loadPixmap("ubrowser/back"), 0, 0, 0, 0, toolbar, "back");
29 forward = new QToolButton(Resource::loadPixmap("ubrowser/forward"), 0, 0, 0, 0, toolbar, "forward"); 29 forward = new QToolButton(Resource::loadPixmap("ubrowser/forward"), 0, 0, 0, 0, toolbar, "forward");
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
42//make the button take you to the location 43//make the button take you to the location
43 connect(go, SIGNAL(clicked()), this, SLOT(goClicked()) ); 44 connect(go, SIGNAL(clicked()), this, SLOT(goClicked()) );
44 connect(location->lineEdit(), SIGNAL(returnPressed()), this, SLOT(goClicked()) ); 45 connect(location->lineEdit(), SIGNAL(returnPressed()), this, SLOT(goClicked()) );
45 46
46//make back, forward and home do their thing (isnt QTextBrowser great?) 47//make back, forward and home do their thing (isnt QTextBrowser great?)
47 connect(back, SIGNAL(clicked()), browser, SLOT(backward()) ); 48 connect(back, SIGNAL(clicked()), browser, SLOT(backward()) );
@@ -52,30 +53,37 @@ MainView::MainView(QWidget *parent, const char *name) : QMainWindow(parent, name
52//this doesnt seem to work, but doesnt break anything either... 53//this doesnt seem to work, but doesnt break anything either...
53 connect(browser, SIGNAL(backwardAvailable(bool)), back, SLOT(setOn(bool)) ); 54 connect(browser, SIGNAL(backwardAvailable(bool)), back, SLOT(setOn(bool)) );
54 connect(browser, SIGNAL(forwardAvailable(bool)), forward, SLOT(setOn(bool)) ); 55 connect(browser, SIGNAL(forwardAvailable(bool)), forward, SLOT(setOn(bool)) );
55 56
56//notify me when the text of the browser has changed (like when the user clicks a link) 57//notify me when the text of the browser has changed (like when the user clicks a link)
57 connect(browser, SIGNAL(textChanged()), this, SLOT(textChanged()) ); 58 connect(browser, SIGNAL(textChanged()), this, SLOT(textChanged()) );
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{
76 location->insertItem( location->currentText() ); 84 location->insertItem( location->currentText() );
77 85
78 if(location->currentText().startsWith("http://") ) 86 if(location->currentText().startsWith("http://") )
79 { 87 {
80 location->setEditText(location->currentText().lower()); 88 location->setEditText(location->currentText().lower());
81 browser->setMimeSourceFactory(http); 89 browser->setMimeSourceFactory(http);
@@ -94,12 +102,20 @@ void MainView::textChanged()
94{ 102{
95 if(browser->documentTitle().isNull()) 103 if(browser->documentTitle().isNull())
96 { 104 {
97 setCaption(browser->source() + " - uBrowser"); 105 setCaption(browser->source() + " - uBrowser");
98 } 106 }
99 else 107 else
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
@@ -7,44 +7,46 @@ License as published by the Free Software Foundation; either version 2 of the Li
7version. 7version.
8 8
9This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 9This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
10implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
11Public License for more details. 11Public License for more details.
12 12
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>
25#include <qcombobox.h> 26#include <qcombobox.h>
26#include <qlayout.h> 27#include <qlayout.h>
27#include <qlineedit.h> 28#include <qlineedit.h>
28#include <qdir.h> 29#include <qdir.h>
29 30
30#include <stdio.h> 31#include <stdio.h>
31 32
32#include "httpfactory.h" 33#include "httpfactory.h"
33 34
34class MainView : public QMainWindow 35class MainView : public QMainWindow
35{ 36{
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;
48 QTextBrowser *browser; 50 QTextBrowser *browser;
49 HttpFactory *http; 51 HttpFactory *http;
50}; 52};