summaryrefslogtreecommitdiff
authorspiralman <spiralman>2003-03-21 21:59:58 (UTC)
committer spiralman <spiralman>2003-03-21 21:59:58 (UTC)
commit07a03b603d964b07d2866e04f480014fadcf1570 (patch) (side-by-side diff)
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) (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
// comm->setUp((QString *)&abs_name);
name = abs_name;
// name = name.lower();
name = name.stripWhiteSpace();
- printf("%s\n", name.latin1());
+// printf("%s\n", name.latin1());
if(name.startsWith("http://"))
{
name = name.remove(0, 7);
}
else
@@ -70,13 +70,13 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const
portS=host;
host.truncate(portSep);
portS.remove(0, portSep+1);
port = portS.toInt();
}
- printf("%s %s %d\n", host.latin1(), file.latin1(), port);
+// printf("%s %s %d\n", host.latin1(), file.latin1(), port);
if(port == 80)
{
portS="80";
}
@@ -104,13 +104,13 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const
mb->exec();
perror("HttpFactory::data:");
return 0;
}
QByteArray data;
- printf( "HttpFactory::data: %s\n", inet_ntoa(*((struct in_addr *)serverInfo->h_addr )) );
+// printf( "HttpFactory::data: %s\n", inet_ntoa(*((struct in_addr *)serverInfo->h_addr )) );
QString request("GET " + file + " HTTP/1.1\r\nHost: " + host + ':' + portS + "\r\nConnection: close\r\n\r\n");
con = socket( AF_INET, SOCK_STREAM, 0 );
if( con == -1 )
{
@@ -142,14 +142,14 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const
perror("HttpFactory::data:");
return 0;
}
bytesSent = send( con, request.latin1(), request.length(), 0);
- printf("HttpFactory::data: bytes written: %d out of: %d\n", bytesSent, request.length() );
- printf("HttpFactory::data: request sent:\n%s", request.latin1());
+// printf("HttpFactory::data: bytes written: %d out of: %d\n", bytesSent, request.length() );
+// printf("HttpFactory::data: request sent:\n%s", request.latin1());
data = this->processResponse( con, isText );
::close( con );
if(isText)
@@ -213,54 +213,54 @@ const QByteArray HttpFactory::processResponse( int sockfd, bool &isText ) const
done = true;
}
if( currentLine.contains( "Transfer-Encoding: chunked", false) >= 1 )
{
chunked = true;
- printf( "HttpFactory::processResponse: chunked encoding\n" );
+// printf( "HttpFactory::processResponse: chunked encoding\n" );
}
if( currentLine.contains( "Content-Type: text", false ) >= 1 )
{
isText = true;
- printf( "HttpFactory::processResponse: content type text\n" );
+// printf( "HttpFactory::processResponse: content type text\n" );
if( currentLine.contains( "html", false ) >= 1)
{
browser->setTextFormat(Qt::RichText);
- printf( "HttpFactory::processResponse: content type html\n" );
+// printf( "HttpFactory::processResponse: content type html\n" );
}
}
if( currentLine.contains( "Content-Type: image", false ) >= 1 )
{
isText = false;
- printf( "HttpFactory::processResponse: content type image\n" );
+// printf( "HttpFactory::processResponse: content type image\n" );
}
if( currentLine.contains( "Content-Length", false ) >= 1 )
{
currentLine.remove( 0, 16 );
dataLength = currentLine.toInt();
- printf( "HttpFactory::processResponse: content length: %d\n", dataLength );
+// printf( "HttpFactory::processResponse: content length: %d\n", dataLength );
}
if( currentLine.contains( "404", false ) >= 1 )
{
- printf( "HttpFactory::processResponse: 404 error\n" );
+// printf( "HttpFactory::processResponse: 404 error\n" );
return 0;
}
currentLine = "";
- printf("HttpFactory::processResponse: reseting currentLine: %s\n", currentLine.latin1() );
+// printf("HttpFactory::processResponse: reseting currentLine: %s\n", currentLine.latin1() );
}
}
}
const QByteArray HttpFactory::recieveNormal( int sockfd, int dataLen ) const
{
- printf( "HttpFactory::recieveNormal: recieving w/out chunked encoding\n" );
+// printf( "HttpFactory::recieveNormal: recieving w/out chunked encoding\n" );
QByteArray data( dataLen );
QByteArray temp( dataLen );
int recieved, i;
recieved = recv( sockfd, temp.data(), temp.size(), 0 );
@@ -280,19 +280,19 @@ const QByteArray HttpFactory::recieveNormal( int sockfd, int dataLen ) const
data[i] = temp[j];
i++;
}
temp.fill('\0');
}
- printf( "HttpFactory::recieveNormal: end of data\n" );
+// printf( "HttpFactory::recieveNormal: end of data\n" );
return data;
}
const QByteArray HttpFactory::recieveChunked( int sockfd ) const
{
- printf( "HttpFactory::recieveChunked: recieving data with chunked encoding\n" );
+// printf( "HttpFactory::recieveChunked: recieving data with chunked encoding\n" );
QByteArray data;
QByteArray temp( 1 );
int recieved, i = 0, cSize = 0;
QString cSizeS;
@@ -303,15 +303,15 @@ const QByteArray HttpFactory::recieveChunked( int sockfd ) const
// printf( "HttpFactory::recieveChunked: temp.size(): %d\n", temp.size() );
// printf( "HttpFactory::recieveChunked: temp.data(): %c\n", temp[0] );
cSizeS += temp[0];
recv( sockfd, temp.data(), temp.size(), 0 );
}
- printf( "HttpFactory::recieveChunked: cSizeS: %s\n", cSizeS.latin1() );
+// printf( "HttpFactory::recieveChunked: cSizeS: %s\n", cSizeS.latin1() );
cSize = cSizeS.toInt( 0, 16 );
- printf( "HttpFactory::recieveChunked: first chunk of size: %d\n", cSize );
+// printf( "HttpFactory::recieveChunked: first chunk of size: %d\n", cSize );
if( *(temp.data()) == ';' )
{
while( *(temp.data()) != '\n' )
{
recv( sockfd, temp.data(), temp.size(), 0 );
@@ -352,15 +352,15 @@ const QByteArray HttpFactory::recieveChunked( int sockfd ) const
// printf( "HttpFactory::recieveChunked: temp.size(): %d\n", temp.size() );
// printf( "HttpFactory::recieveChunked: temp.data(): %d\n", temp[0] );
cSizeS += temp[0];
recv( sockfd, temp.data(), temp.size(), 0 );
}
- printf( "HttpFactory::recieveChunked: cSizeS: %s\n", cSizeS.latin1() );
+// printf( "HttpFactory::recieveChunked: cSizeS: %s\n", cSizeS.latin1() );
cSize = cSizeS.toInt( 0, 16 );
- printf( "HttpFactory::recieveChunked: next chunk of size: %d\n", cSize );
+// printf( "HttpFactory::recieveChunked: next chunk of size: %d\n", cSize );
if( *(temp.data()) == ';' )
{
while( *(temp.data()) != '\n' )
{
recv( sockfd, temp.data(), temp.size(), 0 );
@@ -368,9 +368,9 @@ const QByteArray HttpFactory::recieveChunked( int sockfd ) const
}
temp.fill( '\0', cSize );
data.resize( data.size() + cSize );
}
- printf( "HttpFactory::recieveChunked: end of data\n" );
+// printf( "HttpFactory::recieveChunked: end of data\n" );
return data;
}
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
int main( int argc, char **argv )
{
QPEApplication a( argc, argv );
MainView w;
- a.setMainWidget( &w );
- w.showMaximized();
+// a.setMainWidget( &w );
+ a.showMainDocumentWidget( &w );
return a.exec();
}
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
home = new QToolButton(Resource::loadPixmap("ubrowser/home"), 0, 0, 0, 0, toolbar, "home");
location = new QComboBox(true, toolbar, "location");
go = new QToolButton(Resource::loadPixmap("ubrowser/go"), 0, 0, 0, 0, toolbar, "go");
toolbar->setStretchableWidget(location);
toolbar->setHorizontalStretchable(true);
+ location->setAutoCompletion( true );
addToolBar(toolbar);
browser = new QTextBrowser(this, "browser");
setCentralWidget(browser);
@@ -58,18 +59,25 @@ MainView::MainView(QWidget *parent, const char *name) : QMainWindow(parent, name
http = new HttpFactory(browser);
if( qApp->argc() > 1 )
{
char **argv = qApp->argv();
- QString *argv1 = new QString( argv[1] );
- if( !argv1->startsWith( "http://" ) && !argv1->startsWith( "/" ) )
+ int i = 0;
+ QString *openfile = new QString( argv[0] );
+ while( openfile->contains( "ubrowser" ) == 0 && i < qApp->argc() )
{
- argv1->insert( 0, QDir::currentDirPath()+"/" );
+ i++;
+ *openfile = argv[i];
}
- location->setEditText( *argv1 );
+ *openfile = argv[i+1];
+ if( !openfile->startsWith( "http://" ) && !openfile->startsWith( "/" ) )
+ {
+ openfile->insert( 0, QDir::currentDirPath()+"/" );
+ }
+ location->setEditText( *openfile );
goClicked();
}
}
void MainView::goClicked()
{
@@ -100,6 +108,14 @@ void MainView::textChanged()
{
setCaption(browser->documentTitle() + " - uBrowser");
}
location->setEditText(browser->source());
}
+
+void MainView::setDocument( const QString& applnk_filename )
+{
+ DocLnk *file = new DocLnk( applnk_filename );
+
+ location->setEditText( file->file() );
+ goClicked();
+}
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.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <qpe/resource.h>
#include <qpe/qpetoolbar.h>
+#include <qpe/applnk.h>
#include <qapplication.h>
#include <qmainwindow.h>
#include <qwidget.h>
#include <qtextbrowser.h>
#include <qtoolbutton.h>
@@ -36,12 +37,13 @@ class MainView : public QMainWindow
Q_OBJECT
public:
MainView(QWidget *parent=0, const char *name=0);
public slots:
void goClicked();
void textChanged();
+ void setDocument( const QString& applnk_filename );
private:
QToolButton *back;
QToolButton *forward;
QToolButton *home;
QToolButton *go;
QComboBox *location;