author | spiralman <spiralman> | 2002-08-03 03:25:31 (UTC) |
---|---|---|
committer | spiralman <spiralman> | 2002-08-03 03:25:31 (UTC) |
commit | 7d4b246bc728b73e9d38e110619222dd89c1fd1c (patch) (side-by-side diff) | |
tree | 7e6fbb8bbb106967993fa786a917fccde43970f3 | |
parent | 4005263f7c64a631f4df9aeece83321ba818160d (diff) | |
download | opie-7d4b246bc728b73e9d38e110619222dd89c1fd1c.zip opie-7d4b246bc728b73e9d38e110619222dd89c1fd1c.tar.gz opie-7d4b246bc728b73e9d38e110619222dd89c1fd1c.tar.bz2 |
fixed relative links (except from forward and back buttons), added initial image code (not working), changes to chunked encoding (still not working, might be a qsocket issue)
-rw-r--r-- | noncore/net/ubrowser/httpcomm.cpp | 37 | ||||
-rw-r--r-- | noncore/net/ubrowser/httpcomm.h | 6 | ||||
-rw-r--r-- | noncore/net/ubrowser/httpfactory.cpp | 21 | ||||
-rw-r--r-- | noncore/net/ubrowser/httpfactory.h | 1 |
4 files changed, 54 insertions, 11 deletions
diff --git a/noncore/net/ubrowser/httpcomm.cpp b/noncore/net/ubrowser/httpcomm.cpp index 3c14053..4f189ce 100644 --- a/noncore/net/ubrowser/httpcomm.cpp +++ b/noncore/net/ubrowser/httpcomm.cpp @@ -41,3 +41,3 @@ void HttpComm::setUp(QString *newName) -void HttpComm::setStuff(QString newHost, QString newPortS, QString newFile, QTextDrag *newText) +void HttpComm::setStuff(QString newHost, QString newPortS, QString newFile, QTextDrag *newText, QImageDrag *newImage, bool newIsImage) { @@ -47,2 +47,4 @@ void HttpComm::setStuff(QString newHost, QString newPortS, QString newFile, QTex text = newText; + isImage = newIsImage; + image = newImage; } @@ -72,8 +74,11 @@ void HttpComm::incoming() { - int ba=socket->bytesAvailable(), i=0, j=0, semi=0; + int ba=socket->size(), i=0, j=0, semi=0; char *tempString = new char [ba]; + int br = socket->readBlock(tempString, ba); + socket->flush(); bool nextChunk=false; bool done=false; - socket->readBlock(tempString, ba); printf("HttpComm::incoming: ba: %d\n", ba); + printf("HttpComm::incoming: bytes read from socket: %d\n", br); +// printf("HttpComm::incoming: tempString length: %d\n"); QString sclength; @@ -134,2 +139,3 @@ void HttpComm::incoming() { + int startclength=0; QString tempQString = tempString; @@ -190,3 +196,6 @@ void HttpComm::incoming() status=0; - tempQString = tempQString.remove(0, clength); + tempQString = tempQString.remove(0, newTQstring.length()); + startclength = tempQString.find('\n'); + printf("HttpComm::incoming: startclength: %d\n", startclength); + tempQString = tempQString.remove(0, startclength+1); done=false; @@ -199,2 +208,3 @@ void HttpComm::incoming() { + printf("HttpComm::incoming: not truncating tempQString\n"); body+=tempQString; @@ -204,2 +214,3 @@ void HttpComm::incoming() { + printf("HttpComm::incoming: truncating tempQString\n"); tempQString.truncate(ba); @@ -229,3 +240,6 @@ void HttpComm::incoming() status=0; - tempQString = tempQString.remove(0, clength); + tempQString = tempQString.remove(0, newTQstring.length()); + startclength = tempQString.find('\n'); + printf("HttpComm::incoming: startclength, tempQString length: %d %d\n", startclength, tempQString.length()); + tempQString = tempQString.remove(0, startclength+1); done=false; @@ -238,2 +252,3 @@ void HttpComm::incoming() { + printf("HttpComm::incoming: not truncating tempQString\n"); body+=tempQString; @@ -243,2 +258,3 @@ void HttpComm::incoming() { + printf("HttpComm::incoming: truncating tempQString\n"); tempQString.truncate(ba); @@ -310,5 +326,7 @@ void HttpComm::processBody() end.truncate(lastSlash+1); - QString context("http://"+host+':'+portS+end); + QString context = "http://"+host+':'+portS+end; printf("HttpComm::processBody: context: %s\n", context.latin1() ); + if(!isImage) + { browser->setTextFormat(RichText); @@ -317 +335,8 @@ void HttpComm::processBody() } + else + { + QImage tempImage(body.latin1()); + image->setImage(tempImage); + browser->update(); + } +} diff --git a/noncore/net/ubrowser/httpcomm.h b/noncore/net/ubrowser/httpcomm.h index c20fe72..d6f63fc 100644 --- a/noncore/net/ubrowser/httpcomm.h +++ b/noncore/net/ubrowser/httpcomm.h @@ -22,2 +22,4 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include <qtextbrowser.h> +#include <qcstring.h> +#include <qimage.h> @@ -31,3 +33,3 @@ public: void setUp(QString *newName); - void setStuff(QString newHost, QString newPortS, QString newFile, QTextDrag *newText); + void setStuff(QString newHost, QString newPortS, QString newFile, QTextDrag *newText, QImageDrag *newImage, bool newIsImage); void parseHeader(); @@ -51,2 +53,3 @@ private: QTextDrag *text; + QImageDrag *image; QTextBrowser *browser; @@ -56,2 +59,3 @@ private: int status; + bool isImage; }; diff --git a/noncore/net/ubrowser/httpfactory.cpp b/noncore/net/ubrowser/httpfactory.cpp index 92718fb..50a3c9a 100644 --- a/noncore/net/ubrowser/httpfactory.cpp +++ b/noncore/net/ubrowser/httpfactory.cpp @@ -24,2 +24,3 @@ HttpFactory::HttpFactory(QTextBrowser *newBrowser):QMimeSourceFactory() comm = new HttpComm(socket, browser); + image = new QImageDrag; } @@ -32,3 +33,3 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const QString host, file, portS, name, tempString; - bool done=false; + bool done=false, isImage=false; @@ -48,3 +49,4 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const { - return 0; + name.prepend(browser->context()); + name = name.remove(0, 7); } @@ -80,3 +82,8 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const - comm->setStuff(host, portS, file, text); + if(file.find(".png", file.length()-4) != -1 || file.find(".gif", file.length()-4) != -1 || file.find(".jpg", file.length()-4) != -1) + { + isImage=true; + } + + comm->setStuff(host, portS, file, text, image, isImage); @@ -84,6 +91,12 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const + if(!image) + { text->setText(""); - return text; } + else + { + return image; + } +} diff --git a/noncore/net/ubrowser/httpfactory.h b/noncore/net/ubrowser/httpfactory.h index bb7615b..1802f56 100644 --- a/noncore/net/ubrowser/httpfactory.h +++ b/noncore/net/ubrowser/httpfactory.h @@ -36,2 +36,3 @@ private: QTextDrag *text; + QImageDrag *image; QTextBrowser *browser; |