diff --git a/kmcomposewin.cpp b/kmcomposewin.cpp index 33467281b..0c05ccebc 100644 --- a/kmcomposewin.cpp +++ b/kmcomposewin.cpp @@ -11,31 +11,50 @@ #include #include -KMComposeView::KMComposeView(QWidget *parent, const char *name, QString emailAddress, KMMessage *message, int action) : QWidget(parent,name) +KMComposeView::KMComposeView(QWidget *parent, const char *name, QString emailAddress, KMMessage *message, int action) : QWidget(parent, name) { printf("Entering composeView\n"); - + grid = new QGridLayout(this,10,2,4,4); + attWidget = NULL; if (message) currentMessage = message; else currentMessage = new KMMessage(); indexAttachment =0; toLEdit = new QLineEdit(this); + toLEdit->setMinimumSize(toLEdit->sizeHint()); + grid->addWidget(toLEdit,0,1); + if (emailAddress) toLEdit->setText(emailAddress); ccLEdit = new QLineEdit(this); + ccLEdit->setMinimumSize(ccLEdit->sizeHint()); + grid->addWidget(ccLEdit,1,1); + subjLEdit = new QLineEdit(this); + subjLEdit->setMinimumSize(subjLEdit->sizeHint()); + grid->addWidget(subjLEdit,2,1); QLabel *label = new QLabel(toLEdit, "&To:", this); - label->setGeometry(14,10,50,15); + label->adjustSize(); + label->setMinimumSize(label->sizeHint()); + grid->addWidget(label,0,0); label = new QLabel(subjLEdit, "&Cc:", this); - label->setGeometry(14,45,50,20); + label->adjustSize(); + label->setMinimumSize(label->sizeHint()); + grid->addWidget(label,1,0); label = new QLabel(ccLEdit, "&Subject:", this); - label->setGeometry(14,80,50,20); + label->adjustSize(); + label->setMinimumSize(label->sizeHint()); + grid->addWidget(label,2,0); editor = new KEdit(0,this); + grid->addMultiCellWidget(editor,3,9,0,1); + grid->setRowStretch(3,100); + + grid->setColStretch(1,100); if(message && action==FORWARD) {printf("Message will be forwarded\n"); @@ -52,6 +71,8 @@ KMComposeView::KMComposeView(QWidget *parent, const char *name, QString emailAdd else printf("Normal message\n"); + grid->activate(); + parseConfiguration(); printf("Leaving constructor\n"); @@ -446,6 +467,7 @@ void KMComposeView::toDo() void KMComposeView::resizeEvent(QResizeEvent *) { +#ifdef BROKEN toLEdit->setGeometry(70,10,width()-80,25); ccLEdit->setGeometry(70,45,width()-80,25); subjLEdit->setGeometry(70,80,width()-80,25); @@ -459,6 +481,7 @@ void KMComposeView::resizeEvent(QResizeEvent *) attWidget->setColumn(2,"File Size",width()/4); attWidget->repaint(); } +#endif } void KMComposeView::newComposer() diff --git a/kmcomposewin.h b/kmcomposewin.h index 15915f0ba..537aa1bc4 100644 --- a/kmcomposewin.h +++ b/kmcomposewin.h @@ -29,6 +29,7 @@ #define REPLYALL 2 class KMMessage; +class QGridLayout; class KMAttachmentItem // for Attachment Widget { @@ -81,6 +82,7 @@ private slots: void insertFile(); protected: virtual void resizeEvent(QResizeEvent *); + QGridLayout* grid; }; class KMComposeWin : public KTopLevelWidget diff --git a/kmfolder.cpp b/kmfolder.cpp index 51b5a0970..25c846efe 100644 --- a/kmfolder.cpp +++ b/kmfolder.cpp @@ -443,7 +443,20 @@ void KMFolder::readMsg(int msgno) msg->setStatus(mMsgInfo[msgno].status()); dwmsg = DwMessage::NewMessage(msg->msgStr(), 0); dwmsg->Parse(); + + printf("Message #%d: contentType=%d\n", msgno, + dwmsg->Headers().ContentType().Type()); + msg->takeMessage(dwmsg); + + DwBodyPart* part = dwmsg->Body().FirstBodyPart(); + while (part) + { + printf("part\n"); + part = part->Next(); + } + + printf("numBodyParts=%d\n", msg->numBodyParts()); } diff --git a/kmglobal.h b/kmglobal.h index deaaa4eda..abcd03c41 100644 --- a/kmglobal.h +++ b/kmglobal.h @@ -29,4 +29,7 @@ extern KMSender* msgSender; class KLocale; extern KLocale* nls; +class KMFolder; +extern KMFolder* trashFolder; + #endif /*kmglobal_h*/ diff --git a/kmreaderwin.cpp b/kmreaderwin.cpp index da27ac4d9..58f343979 100644 --- a/kmreaderwin.cpp +++ b/kmreaderwin.cpp @@ -2,6 +2,7 @@ #include "kmfolder.h" #include "kmmessage.h" +#include "kmmsgpart.h" #include "kmfoldermgr.h" #include "kmglobal.h" #include "kmreaderwin.h" @@ -39,17 +40,6 @@ KMReaderView::KMReaderView(QWidget *parent =0, const char *name = 0, int msgno = // Let's initialize the HTMLWidget - - headerCanvas = new KHTMLWidget(this,0,0); - headerCanvas->resize(parent->width(),parent->height()-100); - headerCanvas->setURLCursor(upArrowCursor); - connect(headerCanvas,SIGNAL(URLSelected(const char *,int)),this,SLOT(openURL(const char *,int))); - connect(headerCanvas,SIGNAL(popupMenu(const char *, const QPoint &)),SLOT(popupHeaderMenu(const char *, const QPoint &))); - - separator = new QFrame(this); - separator->setFrameStyle(QFrame::HLine | QFrame::Raised); - separator->setLineWidth(4); - messageCanvas = new KHTMLWidget(this,0,picsDir); messageCanvas->setURLCursor(upArrowCursor); messageCanvas->resize(parent->width()-16,parent->height()-110); //16 @@ -88,11 +78,6 @@ void KMReaderView::clearCanvas() { // Produce a white canvas - headerCanvas->begin(picsDir); - headerCanvas->write(""); - headerCanvas->end(); - headerCanvas->parse(); - messageCanvas->begin(picsDir); messageCanvas->write(""); messageCanvas->end(); @@ -108,11 +93,9 @@ void KMReaderView::updateDisplay() void KMReaderView::resizeEvent(QResizeEvent *) { - headerCanvas->setGeometry(0,0,this->width(),75); - separator->setGeometry(0,76,this->width(),4); - messageCanvas->setGeometry(0,81,this->width()-16,this->height()-87); //16 + messageCanvas->setGeometry(0,0,this->width()-16,this->height()); //16 horz->setGeometry(0,height()-16,width()-16,16); - vert->setGeometry(width()-16,81,16,height()-87); + vert->setGeometry(width()-16,0,16,height()); } @@ -127,20 +110,18 @@ void KMReaderView::parseMessage(KMMessage *message) QString text; QString header; QString dateStr; + QString toStr; QString ccStr; long length; int pos=0; + int numParts = message->numBodyParts(); currentMessage = message; // To make sure currentMessage is set. - int noAttach = (message->numBodyParts() <= 1); + printf("Debug numBodyparts=%i\n", numParts); text = message->body(&length); - if (noAttach) text.truncate(length); - - headerCanvas->begin(picsDir); - headerCanvas->write(""); - headerCanvas->write(""); + if (numParts <= 1) text.truncate(length); dateStr.sprintf("Date: %s
",message->dateStr()); @@ -160,22 +141,25 @@ void KMReaderView::parseMessage(KMMessage *message) strTemp.sprintf("%s",message->cc()); strTemp = strTemp.stripWhiteSpace(); if(strTemp.isEmpty()) - ccStr = "Cc:
"; + ccStr = ""; else - ccStr.sprintf("%s
",message->cc()); + ccStr.sprintf("Cc: %s
",message->cc()); subjStr.sprintf("Subject: %s

",message->subject()); - - headerCanvas->write(dateStr); - headerCanvas->write(fromStr); - headerCanvas->write(ccStr); - headerCanvas->write(subjStr); - headerCanvas->write(""); - headerCanvas->end(); - headerCanvas->parse(); + + toStr.sprintf("To: %s
", message->to()); // Init messageCanvas messageCanvas->begin(picsDir); + // header + messageCanvas->write("
"); + messageCanvas->write(subjStr); + messageCanvas->write(toStr); + messageCanvas->write(ccStr); + messageCanvas->write(dateStr); + messageCanvas->write("


"); + + // Prepare text @@ -197,10 +181,15 @@ void KMReaderView::parseMessage(KMMessage *message) } // Okay! Let's write it to the canvas - messageCanvas->write(text); + messageCanvas->write(text); - // Now let's append the attachments - + int x=0; + for(x=0;x == noAttach;noAttach++) + {KMMessagePart *part = new KMMessagePart; + currentMessage->bodyPart(x,part); + cout << part->typeStr(); + cout << part->subtypeStr(); + } messageCanvas->write(""); messageCanvas->end(); @@ -744,3 +733,20 @@ KMSource::KMSource(QWidget *parent=0, const char *name=0,QString text=0) } + + + + + + + + + + + + + + + + + diff --git a/kmreaderwin.h b/kmreaderwin.h index 2017f7e9b..31d67909a 100644 --- a/kmreaderwin.h +++ b/kmreaderwin.h @@ -31,7 +31,6 @@ Q_OBJECT public: KMReaderView(QWidget *p=0,const char *n=0, int n=0, KMFolder *f=0); KHTMLWidget *messageCanvas; - KHTMLWidget *headerCanvas; QString selectedText; private: @@ -144,4 +143,4 @@ public: - \ No newline at end of file + diff --git a/kmsettings.cpp b/kmsettings.cpp index 5ad5f5510..60d8eec08 100644 --- a/kmsettings.cpp +++ b/kmsettings.cpp @@ -7,7 +7,6 @@ #include #include #include -#include #include "util.h" #include "kmmainwin.h" #include "kmaccount.h" diff --git a/main.cpp b/main.cpp index b90435673..914113ddf 100644 --- a/main.cpp +++ b/main.cpp @@ -21,6 +21,7 @@ KMAcctMgr* acctMgr = NULL; KMFolderMgr* folderMgr = NULL; KMSender* msgSender = NULL; KLocale* nls = NULL; +KMFolder* trashFolder = NULL; static msg_handler oldMsgHandler = NULL; @@ -54,7 +55,7 @@ static void kmailMsgHandler(QtMsgType aType, const char* aMsg) //----------------------------------------------------------------------------- static void init(int argc, char *argv[]) { - QString fname; + QString fname, trashName; KConfig* cfg; app = new KApplication(argc, argv, "kmail"); @@ -75,6 +76,18 @@ static void init(int argc, char *argv[]) cfg->readEntry("folders", &QString("/.kde/mail-folders")); folderMgr = new KMFolderMgr(fname); + trashName = cfg->readEntry("trashFolder", &QString("trash")); + trashFolder = folderMgr->find(trashName); + + if (!trashFolder) + { + warning("The folder `"+trashName+"' does not exist in the\n" + "mail folder directory and therefore will now be created."); + + trashFolder = folderMgr->createFolder(trashName); + if (!trashFolder) fatal("Cannot create trash folder '"+trashName+"'"); + } + msgSender = new KMSender(folderMgr); debug("init done");