summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mailit/.cvsignore2
-rw-r--r--noncore/net/mailit/README83
-rw-r--r--noncore/net/mailit/addatt.cpp224
-rw-r--r--noncore/net/mailit/addatt.h76
-rw-r--r--noncore/net/mailit/addresslist.cpp161
-rw-r--r--noncore/net/mailit/addresslist.h58
-rw-r--r--noncore/net/mailit/config.in4
-rw-r--r--noncore/net/mailit/editaccount.cpp133
-rw-r--r--noncore/net/mailit/editaccount.h69
-rw-r--r--noncore/net/mailit/emailclient.cpp1042
-rw-r--r--noncore/net/mailit/emailclient.h181
-rw-r--r--noncore/net/mailit/emailhandler.cpp630
-rw-r--r--noncore/net/mailit/emailhandler.h150
-rw-r--r--noncore/net/mailit/emaillistitem.cpp158
-rw-r--r--noncore/net/mailit/emaillistitem.h45
-rw-r--r--noncore/net/mailit/mailit.pro40
-rw-r--r--noncore/net/mailit/mailitwindow.cpp168
-rw-r--r--noncore/net/mailit/mailitwindow.h65
-rw-r--r--noncore/net/mailit/maillist.cpp131
-rw-r--r--noncore/net/mailit/maillist.h50
-rw-r--r--noncore/net/mailit/main.cpp25
-rw-r--r--noncore/net/mailit/md5.c251
-rw-r--r--noncore/net/mailit/md5.h55
-rw-r--r--noncore/net/mailit/opie-mailit.control9
-rw-r--r--noncore/net/mailit/popclient.cpp332
-rw-r--r--noncore/net/mailit/popclient.h77
-rw-r--r--noncore/net/mailit/readmail.cpp399
-rw-r--r--noncore/net/mailit/readmail.h95
-rw-r--r--noncore/net/mailit/smtpclient.cpp170
-rw-r--r--noncore/net/mailit/smtpclient.h76
-rw-r--r--noncore/net/mailit/textparser.cpp304
-rw-r--r--noncore/net/mailit/textparser.h85
-rw-r--r--noncore/net/mailit/viewatt.cpp121
-rw-r--r--noncore/net/mailit/viewatt.h46
-rw-r--r--noncore/net/mailit/writemail.cpp402
-rw-r--r--noncore/net/mailit/writemail.h96
-rw-r--r--packages2
37 files changed, 1 insertions, 6014 deletions
diff --git a/noncore/net/mailit/.cvsignore b/noncore/net/mailit/.cvsignore
deleted file mode 100644
index 6fc3d98..0000000
--- a/noncore/net/mailit/.cvsignore
+++ b/dev/null
@@ -1,2 +0,0 @@
-Makefile
-qpeobj
diff --git a/noncore/net/mailit/README b/noncore/net/mailit/README
deleted file mode 100644
index 01781b4..0000000
--- a/noncore/net/mailit/README
+++ b/dev/null
@@ -1,83 +0,0 @@
-Issues regarding Mailit
------------------------
-
-Mailit is still in development and is lacking some
-features to make it completely usable. Listed below are the
-most important issues.
-
-Due to the development status, numerous messages are passed too
-the console during usage of the program.
-No messages are deleted from the POP server after retrival.
-
-Synchronization:
----------------------
-Works by comparing the last known size of the mailbox on the server
-to the current size.
-Possible problem: If a popserver shuffles the order of the mails
-when it receives a new mail, mailit won't know since it only uses
-the messagecount as a reference. If this occurs, turn sync off in
-the account settings.
-Haven't encountered this problem on the currently tested servers,
-but if it turns out that several servers do this, it will be resolved.
-
-Mail parsing
-------------
-Parsing of MIME-encoded email works for all currently tested cases.
-BASE64 decoding works.
-Attatchments are saved in the enclosure subdirectory of qtmail
-(in the Documents directory). You can install the files to the documents
-folder (creates a doclnk)
-Adding enclosures is limited to the preselected directories, and they
-are not really correct at the moment (trivial issue awaiting decision
-of fileplacements in QPE)
-attatched pictures will be displayed (jpg dependant on qte compilation)
-
-
-SMTP
-----
-The SMTP-client now supports attatchments, but it's not completly done.
-Encoding works, but it doesn't examine the file to check what type of
-file you are attatching. In other words, if it doesn't know that you
-are attatching a picture, the mime setting for content type could be
-wrong. Mail clients with inline viewing of pictures (like hotmail) could
-have a problem with displaying the mail correctly.
-(Should be fixed soon)
-
-You can now have multiple recipients.
-
-
-POP
----
-The popclient connects to the all accounts in turn, downloads all headers
-and emails smaller than 2000 bytes. After its done, it reconnects
-and downloads the mails that were too big (> 2000)
-The to-be-downloaded mails are sorted according to size. If you view
-a mail, it is shifted to the front of the queue. Deleting a mail(header)
-while the download is in progress will remove it from the queue of
-mails to download (except if the mail is currently in transfer)
-You may exit mailit during a transfer of mails/headers. Next time
-you reconnect to the same server it will continue downloading from
-where it left off.
-
-You can now choose between getting mail from only one account or all.
-The get all option is just added and not fully testet yet. Get from
-a single account should work fine. The current way of downloading
-does not work well without sync turned on if you keep old mails in
-the inbox.
-
-Experienced some problems with servers reporting mail size less and
-bigger than actual size. Don't know whats causing this yet, but I
-have added a workaround. It now scans the mail for endofmail
-definition ("\r\n.\r\n"), disregarding size.
-
-
-Saving/Retrieving mail
-----------------------
-The inbox is saved and retrieved. Any mail not sent from the outbox
-is not saved (will of course be added)
-
-Miscelaneous issues
--------------------
-Numerous cosmetic changes, including icons (which are temporary)
-
-Very little error checking is done on usertyped variables.
diff --git a/noncore/net/mailit/addatt.cpp b/noncore/net/mailit/addatt.cpp
deleted file mode 100644
index 19ac58f..0000000
--- a/noncore/net/mailit/addatt.cpp
+++ b/dev/null
@@ -1,224 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include <qlayout.h>
-#include <qhbox.h>
-#include <qdir.h>
-#include <qstringlist.h>
-#include <qpe/resource.h>
-#include "addatt.h"
-
-FileItem::FileItem(QListView *parent, DocLnk* dl)
- : QListViewItem(parent)
-{
- /*file = fileInfo;
- type = fileType;*/
-
- doclnk=dl;
-
- setText(0, doclnk->name());
-
-/* if (fileType == "Picture") {
- setPixmap(0, Resource::loadPixmap("pixmap"));
- } else if (fileType == "Document") {
- setPixmap(0, Resource::loadPixmap("txt"));
- } else if (fileType == "Sound") {
- setPixmap(0, Resource::loadPixmap("play"));
- } else if (fileType == "Movie") {
- setPixmap(0, Resource::loadPixmap("MPEGPlayer"));
- } else if (fileType == "File") {
- setPixmap(0, Resource::loadPixmap("exec"));
- }*/
-}
-
-FileItem::~FileItem()
-{
- if (doclnk!=NULL) delete doclnk;
- doclnk=NULL;
-}
-
-AddAtt::AddAtt(QWidget *parent, const char *name, WFlags f)
- : QDialog(parent, name, f)
-{
- setCaption(tr("Adding attachments") );
-
- QGridLayout *top = new QGridLayout(this, 1,1 );
-
- QHBox *buttons=new QHBox(this);
- /*fileCategoryButton = new QPushButton(this);*/
- attachButton = new QPushButton(tr("attach..."), buttons);
- removeButton = new QPushButton(tr("Remove"), buttons);
-
- /*fileCategories = new QPopupMenu(fileCategoryButton);
- fileCategoryButton->setPopup(fileCategories);
- fileCategories->insertItem("Document");
- fileCategories->insertItem("Picture");
- fileCategories->insertItem("Sound");
- fileCategories->insertItem("Movie");
- fileCategories->insertItem("File");
-
- fileCategoryButton->setText("Document");
- top->addWidget(fileCategoryButton, 0, 0);*/
-
-
- top->addWidget(buttons,1,0);
- //buttons->addWidget(attachButton,0,0);
- //buttons->addWidget(removeButton,0,1);
-
- //connect(fileCategories, SIGNAL(activated(int)), this,
- // SLOT(fileCategorySelected(int)) );*/
- connect(attachButton, SIGNAL(clicked()), this,
- SLOT(addattachment()) );
- connect(removeButton, SIGNAL(clicked()), this,
- SLOT(removeattachment()) );
-
- /*listView = new QListView(this, "AttView");
- listView->addColumn("Documents");*
- connect(listView, SIGNAL(doubleClicked(QListViewItem *)), this,
- SLOT(addattachment()) );*/
-
-
- attView = new QListView(this, "Selected");
- attView->addColumn(tr("Attached"));
- attView->addColumn(tr("File type"));
- connect(attView, SIGNAL(doubleClicked(QListViewItem *)), this,
- SLOT(removeattachment()) );
-
- //top->addWidget(ofs, 0,0);
- top->addWidget(attView, 0,0);
-
- clear();
-
-
-}
-
-void AddAtt::clear()
-{
- attView->clear();
- //getFiles();
- modified = FALSE;
-}
-
-/*void AddAtt::fileCategorySelected(int id)
-{
- fileCategoryButton->setText(fileCategories->text(id));
- getFiles();
-}*/
-
-void AddAtt::addattachment()
-{ // ### FIXME wrong use -zecke
- OFileDialog ofs("Attachments",this,0,0,"/root/Documents");
-
- ofs.showMaximized();
-
- if (ofs.exec()==QDialog::Accepted)
- {
- DocLnk* dl=new DocLnk(ofs.selectedDocument());
- FileItem* fi=new FileItem(attView,dl);
- fi->setPixmap(0,dl->pixmap());
- fi->setText(1,dl->type());
- attView->insertItem(fi);
- modified = TRUE;
- }
-}
-
-void AddAtt::removeattachment()
-{
- if (attView->selectedItem() != NULL)
- {
- attView->takeItem(attView->selectedItem());
- }
- modified = TRUE;
-}
-
-void AddAtt::reject()
-{
- if (modified) {
- attView->clear();
- modified = FALSE;
- }
-}
-
-void AddAtt::accept()
-{
- modified = FALSE;
- hide();
-}
-
-void AddAtt::getFiles()
-{
- QString path, selected;
-
- /*listView->clear();
-
- selected = fileCategoryButton->text();
- if (selected == "Picture") {
- path = "../pics/";
- } else if (selected == "Document") {
- path = "" ; //sub-dirs not decided
- } else if (selected == "Sound") {
- path = "../sounds/"; //sub-dirs not decided
- } else if (selected == "Movie") {
- path = ""; //sub-dirs not decided
- } else if (selected == "File") {
- path = ""; //sub-dirs not decided
- }
-
- dir = new QDir(path);
- dir->setFilter(QDir::Files);
- const QFileInfoList *dirInfoList = dir->entryInfoList();
-
- QFileInfoListIterator it(*dirInfoList); // create list iterator
-
- while ( (fi=it.current()) ) { // for each file...
- item = new FileItem(lis+ütView, *fi, selected);
- ++it; // goto next list element
- }*/
-}
-
-QStringList AddAtt::returnattachedFiles()
-{
- QFileInfo info;
- QStringList list;
-
- item = (FileItem *) attView->firstChild();
-
-
- while (item != NULL) {
- DocLnk* dl=item->getDocLnk();
- list+=dl->file();
- /*info = item->getFileInfo();
- list += info.filePath();*/
- item = (FileItem *) item->nextSibling();
- }
- return list;
-}
-
-QStringList AddAtt::returnFileTypes()
-{
- QStringList list;
-
- item = (FileItem *) attView->firstChild();
-
- while (item != NULL) {
- list += item->getDocLnk()->type();
- item = (FileItem *) item->nextSibling();
- }
- return list;
-}
diff --git a/noncore/net/mailit/addatt.h b/noncore/net/mailit/addatt.h
deleted file mode 100644
index a365947..0000000
--- a/noncore/net/mailit/addatt.h
+++ b/dev/null
@@ -1,76 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef ADDATT_H
-#define ADDATT_H
-
-#include <qdialog.h>
-#include <qlistview.h>
-#include <qpushbutton.h>
-#include <qpopupmenu.h>
-#include <qstring.h>
-#include <qfileinfo.h>
-#include <qstringlist.h>
-#include <opie/ofiledialog.h>
-#include <qpe/applnk.h>
-
-class FileItem : public QListViewItem
-{
-public:
- //FileItem(QListView *parent, QFileInfo fileInfo, QString fileType);
- FileItem(QListView*, DocLnk*);
- ~FileItem();
- DocLnk* getDocLnk() {return doclnk;}
-
-
-private:
- DocLnk* doclnk;
-};
-
-class AddAtt : public QDialog
-{
- Q_OBJECT
-
-public:
- AddAtt(QWidget *parent = 0, const char *name = 0, WFlags f = 0);
- QStringList returnattachedFiles();
- QStringList returnFileTypes();
- void getFiles();
- void clear();
-
-
-public slots:
- //void fileCategorySelected(int);
- void addattachment();
- void removeattachment();
- void reject();
- void accept();
-
-private:
- FileItem* item;
- QListView *attView;
- QPushButton *attachButton, *removeButton;
- QPopupMenu *fileCategories;
- bool modified;
- //QFileInfo *fi;
-
- OFileDialog* ofs;
-};
-
-#endif
diff --git a/noncore/net/mailit/addresslist.cpp b/noncore/net/mailit/addresslist.cpp
deleted file mode 100644
index f2b027c..0000000
--- a/noncore/net/mailit/addresslist.cpp
+++ b/dev/null
@@ -1,161 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include <qfile.h>
-#include <qtextstream.h>
-#include <opie/ocontactaccess.h>
-#include <opie/ocontact.h>
-
-#include "addresslist.h"
-
-AddressList::AddressList()
-{
- addresses.setAutoDelete(TRUE);
- read();
- dirty = FALSE;
-}
-
-AddressList::~AddressList()
-{
- addresses.clear();
-}
-
-void AddressList::addContact(const QString &email, const QString &name)
-{
- //skip if not a valid email address,
- if (email.find( '@') == -1)
- return;
-
- if ( ! containsEmail(email) ) {
- AContact *in = new AContact;
- in->email = email;
- in->name = name;
- addresses.append(in);
- dirty = TRUE;
- }
-}
-
-bool AddressList::containsEmail(const QString &email)
-{
- return ( getEmailRef(email) != -1 );
-}
-
-bool AddressList::containsName(const QString &name)
-{
- return ( getNameRef(name) != -1 );
-}
-
-QString AddressList::getNameByEmail(const QString &email)
-{
- int pos = getEmailRef(email);
- if (pos != -1) {
- AContact *ptr = addresses.at(pos);
- return ptr->name;
- }
-
- return QString::null;
-}
-
-QString AddressList::getEmailByName(const QString &name)
-{
- int pos = getNameRef(name);
- if (pos != -1) {
- AContact *ptr = addresses.at(pos);
- return ptr->email;
- }
-
- return QString::null;
-}
-
-int AddressList::getEmailRef(const QString &email)
-{
- int pos = 0;
- AContact *ptr;
-
- for (ptr = addresses.first(); ptr != 0; ptr = addresses.next() ) {
- if (ptr->email == email)
- return pos;
- pos++;
- }
- return -1;
-}
-
-int AddressList::getNameRef(const QString &name)
-{
- int pos = 0;
- AContact *ptr;
-
- for (ptr = addresses.first(); ptr != 0; ptr = addresses.next() ) {
- if (ptr->name == name)
- return pos;
- pos++;
- }
- return -1;
-}
-
-QList<AContact>* AddressList::getContactList()
-{
- return &addresses;
-}
-
-void AddressList::read()
-{
- OContactAccess::List::Iterator it;
-
- QString lineEmail, lineName, email, name;
- OContactAccess m_contactdb("mailit");
- OContactAccess::List m_list = m_contactdb.sorted( true, 0, 0, 0 );
- //OContact* oc;(*it).defaultEmail()
-
- for ( it = m_list.begin(); it != m_list.end(); ++it )
- {
- //oc=(OContact*) it;
- if ((*it).defaultEmail().length()!=0)
- addContact((*it).defaultEmail(),(*it).fileAs());
- }
-
- /*if (! f.open(IO_ReadOnly) )
- return;
-
- QTextStream stream(&f);
-
- while (! stream.atEnd() ) {
- lineEmail = stream.readLine();
- if (! stream.atEnd() )
- lineName = stream.readLine();
- else return;
-
- email = getRightString(lineEmail);
- name = getRightString(lineName);
- addContact(email, name);
- }
- f.close();*/
-}
-
-QString AddressList::getRightString(const QString &in)
-{
- QString out = "";
-
- int pos = in.find('=');
- if (pos != -1) {
- out = in.mid(pos+1).stripWhiteSpace();
- }
- return out;
-}
-
diff --git a/noncore/net/mailit/addresslist.h b/noncore/net/mailit/addresslist.h
deleted file mode 100644
index 763b6d4..0000000
--- a/noncore/net/mailit/addresslist.h
+++ b/dev/null
@@ -1,58 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef ADDRESSLIST_H
-#define ADDRESSLIST_H
-
-#include <qobject.h>
-#include <qlist.h>
-
-struct AContact
-{
- QString email;
- QString name;
-};
-
-class AddressList : public QObject
-{
- Q_OBJECT
-
-public:
- AddressList();
- ~AddressList();
- void addContact(const QString &email, const QString &name);
- bool containsEmail(const QString &email);
- bool containsName(const QString &name);
- QString getNameByEmail(const QString &email);
- QString getEmailByName(const QString &name);
- QList<AContact>* getContactList();
-
-private:
- int getEmailRef(const QString &email);
- int getNameRef(const QString &name);
- QString getRightString(const QString &in);
- void read();
-
-private:
- QList<AContact> addresses;
- QString filename;
- bool dirty;
-};
-
-#endif
diff --git a/noncore/net/mailit/config.in b/noncore/net/mailit/config.in
deleted file mode 100644
index 142b840..0000000
--- a/noncore/net/mailit/config.in
+++ b/dev/null
@@ -1,4 +0,0 @@
- config MAILIT
- boolean "opie-mailit (a simple POP3 email client)"
- default "n"
- depends ( LIBQPE || LIBQPE-X11 )
diff --git a/noncore/net/mailit/editaccount.cpp b/noncore/net/mailit/editaccount.cpp
deleted file mode 100644
index c0afbb2..0000000
--- a/noncore/net/mailit/editaccount.cpp
+++ b/dev/null
@@ -1,133 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-***
-**********************************************************************/
-
-#include <qhbox.h>
-#include "editaccount.h"
-
-EditAccount::EditAccount( QWidget* parent, const char* name, WFlags fl )
- : QDialog(parent, name, fl)
-{
- setCaption( tr("Edit Account") );
- init();
- popPasswInput->setEchoMode(QLineEdit::Password);
-}
-
-void EditAccount::setAccount(MailAccount *in, bool newOne)
-{
- account = in;
- if (newOne) {
- accountNameInput->setText("");
- nameInput->setText("");
- emailInput->setText("");
- popUserInput->setText("");
- popPasswInput->setText("");
- popServerInput->setText("");
- smtpServerInput->setText("");
- syncCheckBox->setChecked(TRUE);
- syncLimitInput->setValue(2);
-
- setCaption( tr("Create new Account") );
- } else {
- accountNameInput->setText(account->accountName);
- nameInput->setText(account->name);
- emailInput->setText(account->emailAddress);
- popUserInput->setText(account->popUserName);
- popPasswInput->setText(account->popPasswd);
- popServerInput->setText(account->popServer);
- smtpServerInput->setText(account->smtpServer);
- syncCheckBox->setChecked(account->synchronize);
- syncLimitInput->setValue(account->syncLimit/1000);
- }
-}
-
-void EditAccount::init()
-{
- grid = new QGridLayout(this);
- grid->setSpacing( 6 );
- grid->setMargin( 11 );
-
- accountNameInputLabel = new QLabel(tr("Account name"), this);
- grid->addWidget( accountNameInputLabel, 0, 0 );
- accountNameInput = new QLineEdit( this, "account nameInput" );
- grid->addWidget( accountNameInput, 0, 1 );
-
- nameInputLabel = new QLabel(tr("Your name"), this);
- grid->addWidget( nameInputLabel, 1, 0 );
- nameInput = new QLineEdit( this, "nameInput" );
- grid->addWidget( nameInput, 1, 1 );
-
- emailInputLabel = new QLabel(tr("Email"), this);
- grid->addWidget(emailInputLabel, 2, 0 );
- emailInput = new QLineEdit( this, "emailInput" );
- grid->addWidget( emailInput, 2, 1 );
-
- popUserInputLabel = new QLabel(tr("POP username"), this);
- grid->addWidget( popUserInputLabel, 3, 0 );
- popUserInput = new QLineEdit( this, "popUserInput" );
- grid->addWidget( popUserInput, 3, 1 );
-
- popPasswInputLabel = new QLabel( tr("POP password"), this);
- grid->addWidget( popPasswInputLabel, 4, 0 );
- popPasswInput = new QLineEdit( this, "popPasswInput" );
- grid->addWidget( popPasswInput, 4, 1 );
-
- popServerInputLabel = new QLabel(tr("POP server"), this);
- grid->addWidget( popServerInputLabel, 5, 0 );
- popServerInput = new QLineEdit( this, "popServerInput" );
- grid->addWidget( popServerInput, 5, 1 );
-
- smtpServerInputLabel = new QLabel(tr("SMTP server"), this );
- grid->addWidget( smtpServerInputLabel, 6, 0 );
- smtpServerInput = new QLineEdit( this, "smtpServerInput" );
- grid->addWidget( smtpServerInput, 6, 1 );
-
- QHBox* syncBox=new QHBox(this);
- grid->addWidget( syncBox, 7, 1 );
-
- syncCheckBox = new QCheckBox( tr( "Synchronize" ), this);
- syncCheckBox->setChecked( TRUE );
- grid->addWidget( syncCheckBox,7,0);
-
- syncLimitInputLabel = new QLabel(tr("Mail Size (k)"), syncBox);
- //syncBox->addWidget( syncLimitInputLabel);
- syncLimitInput = new QSpinBox( syncBox, "syncSize" );
- //syncBox->addWidget(syncLimitInput);
-
-}
-
-
-void EditAccount::accept()
-{
- account->accountName = accountNameInput->text();
- account->name = nameInput->text();
- account->emailAddress = emailInput->text();
- account->popUserName = popUserInput->text();
- account->popPasswd = popPasswInput->text();
- account->popServer = popServerInput->text();
- account->smtpServer = smtpServerInput->text();
- account->synchronize = syncCheckBox->isChecked();
- account->syncLimit = syncLimitInput->value()*1000; //Display in kB
-
- QDialog::accept();
-}
-
-void EditAccount::reject()
-{
-}
diff --git a/noncore/net/mailit/editaccount.h b/noncore/net/mailit/editaccount.h
deleted file mode 100644
index 1e15047..0000000
--- a/noncore/net/mailit/editaccount.h
+++ b/dev/null
@@ -1,69 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef EDITACCOUNT_H
-#define EDITACCOUNT_H
-
-#include <qdialog.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qcheckbox.h>
-#include <qlayout.h>
-#include <qspinbox.h>
-#include "emailhandler.h"
-
-class EditAccount : public QDialog
-{
- Q_OBJECT
-
-public:
- EditAccount( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
- void setAccount(MailAccount *in, bool newOne = TRUE);
- void init();
-
-public slots:
- void accept();
- void reject();
-
-private:
- MailAccount thisAccount, *account;
-
- QLabel *accountNameInputLabel;
- QLabel *nameInputLabel;
- QLabel *emailInputLabel;
- QLabel *popUserInputLabel;
- QLabel *popPasswInputLabel;
- QLabel *popServerInputLabel;
- QLabel *smtpServerInputLabel;
- QLabel *syncLimitInputLabel;
-
- QLineEdit *accountNameInput;
- QLineEdit *nameInput;
- QLineEdit *emailInput;
- QLineEdit *popUserInput;
- QLineEdit *popPasswInput;
- QLineEdit *popServerInput;
- QLineEdit *smtpServerInput;
- QSpinBox *syncLimitInput;
- QCheckBox *syncCheckBox;
-
- QGridLayout *grid;
-};
-
-#endif
diff --git a/noncore/net/mailit/emailclient.cpp b/noncore/net/mailit/emailclient.cpp
deleted file mode 100644
index 8359acf..0000000
--- a/noncore/net/mailit/emailclient.cpp
+++ b/dev/null
@@ -1,1042 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include <qapplication.h>
-#include <qmessagebox.h>
-#include <qvbox.h>
-#include <qfile.h>
-#include <qcheckbox.h>
-#include <qmenubar.h>
-#include <qaction.h>
-#include <qwhatsthis.h>
-#include <qpe/resource.h>
-#include "emailclient.h"
-#include "writemail.h"
-
-QCollection::Item AccountList::newItem(QCollection::Item d)
-{
- return dupl( (MailAccount *) d);
-}
-
-MailAccount* AccountList::dupl(MailAccount *in)
-{
- ac = new MailAccount(*in);
- return ac;
-}
-
-EmailClient::EmailClient( QWidget* parent, const char* name, WFlags fl )
- : QMainWindow( parent, name, fl )
-{
- emailHandler = new EmailHandler();
- addressList = new AddressList();
-
- sending = FALSE;
- receiving = FALSE;
- previewingMail = FALSE;
- mailIdCount = 1;
- accountIdCount = 1;
- allAccounts = FALSE;
-
- init();
-
-
-
- connect(emailHandler, SIGNAL(mailSent()), this, SLOT(mailSent()) );
-
- connect(emailHandler, SIGNAL(smtpError(int,const QString &)), this,
- SLOT(smtpError(int,const QString &)) );
- connect(emailHandler, SIGNAL(popError(int,const QString &)), this,
- SLOT(popError(int,const QString &)) );
-
- connect(inboxView, SIGNAL(doubleClicked(QListViewItem *)), this, SLOT(inboxItemSelected()) );
- connect(outboxView, SIGNAL(doubleClicked(QListViewItem *)), this, SLOT(outboxItemSelected()) );
-
- connect(inboxView, SIGNAL(pressed(QListViewItem *)), this, SLOT(inboxItemPressed()) );
- connect(inboxView, SIGNAL(clicked(QListViewItem *)), this, SLOT(inboxItemReleased()) );
-
- connect(emailHandler, SIGNAL(mailArrived(const Email &, bool)), this,
- SLOT(mailArrived(const Email &, bool)) );
- connect(emailHandler, SIGNAL(mailTransfered(int)), this,
- SLOT(allMailArrived(int)) );
-
- mailconf = new Config("mailit");
- //In case Synchronize is not defined in settings.txt
-
- readSettings();
-
- updateAccounts();
-
- lineShift = "\n";
- readMail();
- lineShift = "\r\n";
-
- mailboxView->setCurrentTab(0); //ensure that inbox has focus
-
- /*channel = new QCopChannel( "QPE/Application/mailit", this );
- connect( channel, SIGNAL(received(const QCString&, const QByteArray&)),
- this, SLOT(receive(const QCString&, const QByteArray&)) );*/
-
-}
-
-
-EmailClient::~EmailClient()
-{
- //needs to be moved from destructor to closewindow event
- saveMail(getPath(FALSE) + "inbox.txt", inboxView);
- //does not currently work. Defining outbox in the same
- //format as inbox is not a good solution as they have
- //different properties
- saveMail(getPath(FALSE) + "outbox.txt", outboxView);
- saveSettings();
-
- mailconf->write();
- delete mailconf;
-
-}
-
-void EmailClient::init()
-{
- initStatusBar(this);
-
- setToolBarsMovable(FALSE);
-
- bar = new QToolBar(this);
- QWhatsThis::add(bar,tr("Main operation toolbar"));
- bar->setHorizontalStretchable( TRUE );
-
- mb = new QMenuBar( bar );
-
- QPopupMenu *mail = new QPopupMenu(mb);
- mb->insertItem( tr( "&Mail" ), mail);
-
- QPopupMenu *configure = new QPopupMenu(mb);
- mb->insertItem( tr( "Accounts" ), configure);
-
- selectAccountMenu = new QPopupMenu(mb);
- editAccountMenu = new QPopupMenu(mb);
- deleteAccountMenu = new QPopupMenu(mb);
-
- mail->insertItem(tr("Get Mail in"), selectAccountMenu);
- configure->insertItem(tr("Edit account"), editAccountMenu);
- configure->insertItem(tr("Delete account"), deleteAccountMenu);
-
- bar = new QToolBar(this);
-
- getMailButton = new QToolButton(Resource::loadPixmap("mailit/getmail"),tr("getMail"),tr("select account"), this,SLOT(getAllNewMail()),bar);
- QWhatsThis::add(getMailButton,tr("Click to download mail via all available accounts.\n Press and hold to select the desired account."));
-
- getMailButton->setPopup(selectAccountMenu);
-
- sendMailButton = new QAction(tr("Send mail"), Resource::loadPixmap("mailit/sendqueue"), QString::null, 0, this, 0);
- connect(sendMailButton, SIGNAL(activated()), this, SLOT(sendQuedMail()) );
- sendMailButton->addTo(bar);
- sendMailButton->addTo(mail);
- sendMailButton->setWhatsThis("Send mail queued in the outbox");
-
- composeButton = new QAction(tr("Compose"), Resource::loadPixmap("new"), QString::null, 0, this, 0);
- connect(composeButton, SIGNAL(activated()), this, SLOT(compose()) );
- composeButton->addTo(bar);
- composeButton->addTo(mail);
- composeButton->setWhatsThis("Compose a new mail");
-
- cancelButton = new QAction(tr("Cancel transfer"), Resource::loadPixmap("close"), QString::null, 0, this, 0);
- connect(cancelButton, SIGNAL(activated()), this, SLOT(cancel()) );
- cancelButton->addTo(mail);
- cancelButton->addTo(bar);
- cancelButton->setEnabled(FALSE);
- cancelButton->setWhatsThis("Stop the currently active mail transfer");
-
-
- deleteButton = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null, 0, this, 0 );
- connect( deleteButton, SIGNAL( activated() ), this, SLOT( deleteItem() ) );
- deleteButton->addTo(bar);
- deleteButton->setWhatsThis("Remove the currently selected eMail(s)");
-
- mailboxView = new OTabWidget( this, "mailboxView" );
-
- QWidget* widget = new QWidget( mailboxView, "widget" );
- grid_2 = new QGridLayout( widget );
-// grid_2->setSpacing(6);
-// grid_2->setMargin( 11 );
-
- inboxView = new QListView( widget, "inboxView" );
- inboxView->addColumn( tr( "From" ) );
- inboxView->addColumn( tr( "Subject" ) );
- inboxView->addColumn( tr( "Date" ) );
- inboxView->setMinimumSize( QSize( 0, 0 ) );
- inboxView->setAllColumnsShowFocus(TRUE);
- QWhatsThis::add(inboxView,QWidget::tr("This is the inbox view.\n"
- "It keeps the fetched mail which can be \n"
- "viewed by double clicking the entry.\n"
- "blue attachment icon shows whether this \n"
- "mailhas attachments.\n"));
-
- grid_2->addWidget( inboxView, 2, 0 );
- mailboxView->addTab( widget, "mailit/inbox", tr( "Inbox" ) );
-
- QWidget* widget_2 = new QWidget( mailboxView, "widget_2" );
- grid_3 = new QGridLayout( widget_2 );
-// grid_3->setSpacing(6);
-// grid_3->setMargin( 11 );
-
- outboxView = new QListView( widget_2, "outboxView" );
- outboxView->addColumn( tr( "To" ) );
- outboxView->addColumn( tr( "Subject" ) );
- outboxView->setAllColumnsShowFocus(TRUE);
-
- QWhatsThis::add(outboxView,QWidget::tr("This is the outbox view.\n"
- "It keeps the queued mails to send which can be \n"
- "reviewed by double clicking the entry."));
- grid_3->addWidget( outboxView, 0, 0 );
- mailboxView->addTab( widget_2,"mailit/outbox", tr( "Outbox" ) );
-
- setCentralWidget(mailboxView);
-
-}
-
-void EmailClient::initStatusBar(QWidget* parent)
-{
- statusBar = new QStatusBar(parent);
- statusBar->setSizeGripEnabled(FALSE);
-
- status1Label = new QLabel( tr("Idle"), statusBar);
- status2Label = new QLabel("", statusBar);
- connect(emailHandler, SIGNAL(updatePopStatus(const QString &)),
- status2Label, SLOT(setText(const QString &)) );
- connect(emailHandler, SIGNAL(updateSmtpStatus(const QString &)),
- status2Label, SLOT(setText(const QString &)) );
-
- progressBar = new QProgressBar(statusBar);
-
- connect(emailHandler, SIGNAL(mailboxSize(int)),
- this, SLOT(setTotalSize(int)) );
- connect(emailHandler, SIGNAL(currentMailSize(int)),
- this, SLOT(setMailSize(int)) );
- connect(emailHandler, SIGNAL(downloadedSize(int)),
- this, SLOT(setDownloadedSize(int)) );
-
- statusBar->addWidget(status1Label);
- statusBar->addWidget(progressBar);
- statusBar->addWidget(status2Label);
-
-}
-
-void EmailClient::compose()
-{
- emit composeRequested();
-}
-
-void EmailClient::cancel()
-{
- emailHandler->cancel();
-}
-
-AddressList* EmailClient::getAdrListRef()
-{
- return addressList;
-}
-
-//this needs to be rewritten to syncronize with outboxView
-void EmailClient::enqueMail(const Email &mail)
-{
- if (accountList.count() == 0) {
- QMessageBox::warning(qApp->activeWindow(),
- tr("No account selected"), tr("You must create an account"), "OK\n");
- return;
- }
-
- if (accountList.count() > 0) {
- currentAccount = accountList.first();
- qWarning("using account " + currentAccount->name);
- }
-
- Email addMail = mail;
- addMail.from = currentAccount->name;
- addMail.fromMail = currentAccount->emailAddress;
- addMail.rawMail.prepend("From: \"" + addMail.from + "\" <" + addMail.fromMail + ">\n");
- item = new EmailListItem(outboxView, addMail, false);
-
- mailboxView->setCurrentTab(1);
-
-}
-
-void EmailClient::sendQuedMail()
-{
- int count = 0;
-
- if (accountList.count() == 0) {
- QMessageBox::warning(qApp->activeWindow(), tr("No account selected"), tr("You must create an account"), "OK\n");
- return;
- }
- //traverse listview, find messages to send
- if (! sending) {
- item = (EmailListItem *) outboxView->firstChild();
- if (item != NULL) {
- while (item != NULL) {
- quedMessages.append(item->getMail());
- item = (EmailListItem *) item->nextSibling();
- count++;
- }
- setMailAccount();
- emailHandler->sendMail(&quedMessages);
- sending = TRUE;
- sendMailButton->setEnabled(FALSE);
- cancelButton->setEnabled(TRUE);
- } else {
- qWarning("sendQuedMail(): no messages to send");
- }
- }
-}
-
-void EmailClient::setMailAccount()
-{
- emailHandler->setAccount(*currentAccount);
-}
-
-void EmailClient::mailSent()
-{
- sending = FALSE;
- sendMailButton->setEnabled(TRUE);
-
- quedMessages.clear();
- outboxView->clear(); //should be moved to an sentBox
-}
-
-void EmailClient::getNewMail() {
-
- if (accountList.count() == 0) {
- QMessageBox::warning(qApp->activeWindow(),tr("No account selected"),
- tr("You must create an account"), "OK\n");
- return;
- }
-
- setMailAccount();
-
- receiving = TRUE;
- previewingMail = TRUE;
- getMailButton->setEnabled(FALSE);
- cancelButton->setEnabled(TRUE);
- selectAccountMenu->setEnabled(FALSE);
-
- status1Label->setText(currentAccount->accountName + " headers");
- progressBar->reset();
-
- //get any previous mails not downloaded and add to queue
- /*mailDownloadList.clear();
- Email *mailPtr;
- item = (EmailListItem *) inboxView->firstChild();
- while (item != NULL) {
- mailPtr = item->getMail();
- if ( (!mailPtr->downloaded) && (mailPtr->fromAccountId == currentAccount->id) ) {
- mailDownloadList.sizeInsert(mailPtr->serverId, mailPtr->size);
- }
- item = (EmailListItem *) item->nextSibling();
- }*/
-
- emailHandler->getMailHeaders();
-
-}
-
-void EmailClient::getAllNewMail()
-{
- allAccounts = TRUE;
- currentAccount = accountList.first();
- getNewMail();
-}
-
-void EmailClient::mailArrived(const Email &mail, bool fromDisk)
-{
- Enclosure *ePtr;
- Email newMail;
- int thisMailId;
- emailHandler->parse( mail.rawMail, lineShift, &newMail);
- mailconf->setGroup(newMail.id);
-
- if (fromDisk)
- {
-
- newMail.downloaded = mailconf->readBoolEntry("downloaded");
- newMail.size = mailconf->readNumEntry("size");
- newMail.serverId = mailconf->readNumEntry("serverid");
- newMail.fromAccountId = mailconf->readNumEntry("fromaccountid");
- }
- else
- { //mail arrived from server
-
- newMail.serverId = mail.serverId;
- newMail.size = mail.size;
- newMail.downloaded = mail.downloaded;
-
- newMail.fromAccountId = emailHandler->getAccount()->id;
- mailconf->writeEntry("fromaccountid", newMail.fromAccountId);
- }
-
- //add if read or not
- newMail.read = mailconf->readBoolEntry("mailread");
-
- //check if new mail
- if ( (thisMailId = mailconf->readNumEntry("internalmailid", -1)) == -1) {
- thisMailId = mailIdCount;
- mailIdCount++;
-
- //set server count, so that if the user aborts, the new
- //header is not reloaded
- if ((currentAccount)&&(currentAccount->synchronize))
- currentAccount->lastServerMailCount++;
-
- mailconf->writeEntry("internalmailid", thisMailId);
- mailconf->writeEntry("downloaded", newMail.downloaded);
- mailconf->writeEntry("size", (int) newMail.size);
- mailconf->writeEntry("serverid", newMail.serverId);
-
- //addressList->addContact(newMail.fromMail, newMail.from);
- }
-
- mailconf->writeEntry("downloaded", newMail.downloaded);
-
- QString stringMailId;
- stringMailId.setNum(thisMailId);
- //see if any attatchments needs to be stored
-
- for ( ePtr=newMail.files.first(); ePtr != 0; ePtr=newMail.files.next() ) {
- QString stringId;
- stringId.setNum(ePtr->id);
-
- int id = mailconf->readNumEntry("enclosureid_" + stringId);
- if (id != ePtr->id) { //new entry
- mailconf->writeEntry("enclosureid_" + stringId, ePtr->id);
- mailconf->writeEntry("name_" + stringId, ePtr->originalName);
- mailconf->writeEntry("contenttype_" + stringId, ePtr->contentType);
- mailconf->writeEntry("contentattribute_" + stringId, ePtr->contentAttribute);
- mailconf->writeEntry("saved_" + stringId, ePtr->saved);
- mailconf->writeEntry("installed_" + stringId, FALSE);
-
- ePtr->name = stringMailId + "_" + stringId;
- ePtr->path = getPath(TRUE);
- if (emailHandler->getEnclosure(ePtr)) { //file saved
- ePtr->saved = TRUE;
- mailconf->writeEntry("saved_" + stringId, ePtr->saved);
- mailconf->writeEntry("filename_" + stringId, ePtr->name);
- mailconf->writeEntry("path_" + stringId, ePtr->path);
- } else {
- ePtr->saved = FALSE;
- mailconf->writeEntry("saved_" + stringId, ePtr->saved);
- }
- } else {
- ePtr->saved = mailconf->readBoolEntry("saved_" + stringId);
- ePtr->installed = mailconf->readBoolEntry("installed_" + stringId);
- if (ePtr->saved) {
- ePtr->name = mailconf->readEntry("filename_" + stringId);
- ePtr->path = mailconf->readEntry("path_" + stringId);
- }
- }
- }
-
- bool found=false;
-
- if (!fromDisk)
- {
-
- Email *mailPtr;
- item = (EmailListItem *) inboxView->firstChild();
- while ((item != NULL)&&(!found))
- {
- mailPtr = item->getMail();
- if (mailPtr->id == newMail.id) {
- item->setMail(newMail);
- emit mailUpdated(item->getMail());
- found = true;
- }
- item = (EmailListItem *) item->nextSibling();
- }
- }
- if ((!found)||(fromDisk)) {
- item = new EmailListItem(inboxView, newMail, TRUE);
- }
-// if (item->getMail()->files.count()>0)
-// {
-// item->setPixmap(0, Resource::loadPixmap("mailit/attach"));
-// }
- /*if (!newMail.downloaded)
- mailDownloadList.sizeInsert(newMail.serverId, newMail.size);*/
-
- mailboxView->setCurrentTab(0);
-
-}
-
-void EmailClient::allMailArrived(int /*count*/)
-{
- // not previewing means all mailtransfer has been done
- /*if (!previewingMail) {*/
- if ( (allAccounts) && ( (currentAccount = accountList.next()) !=0 ) ) {
- emit newCaption("Mailit - " + currentAccount->accountName);
- getNewMail();
- return;
- } else {
- allAccounts = FALSE;
- receiving = FALSE;
- getMailButton->setEnabled(TRUE);
- cancelButton->setEnabled(FALSE);
- selectAccountMenu->setEnabled(TRUE);
- status1Label->setText("Idle");
-
- progressBar->reset();
- return;
- }
- //}
-
- // all headers downloaded from server, start downloading remaining mails
- previewingMail = FALSE;
- status1Label->setText(currentAccount->accountName);
- progressBar->reset();
-
-
- mailboxView->setCurrentTab(0);
-}
-
-
-void EmailClient::moveMailFront(Email *mailPtr)
-{
- if ( (receiving) && (mailPtr->fromAccountId == currentAccount->id) ) {
- mailDownloadList.moveFront(mailPtr->serverId, mailPtr->size);
- }
-}
-
-void EmailClient::smtpError(int code, const QString & Msg)
-{
- QString temp;
-
- if (code == ErrUnknownResponse) {
- temp = tr("<qt>Unknown response from server</qt>");
- if( ! Msg.isEmpty() )
- temp += Msg;
- } else if (code == QSocket::ErrHostNotFound) {
- temp = tr("<qt>host not found</qt>");
- } else if (code == QSocket::ErrConnectionRefused) {
- temp = tr("<qt>connection refused</qt>");
- } else if (code == QSocket::ErrSocketRead) {
- temp = tr("<qt>socket packet error</qt>");
- }
-
- if (code != ErrCancel) {
- QMessageBox::warning(qApp->activeWindow(), "Sending error", temp, "OK\n");
- } else {
- status2Label->setText("Aborted by user");
- }
-
- sending = FALSE;
- sendMailButton->setEnabled(TRUE);
- cancelButton->setEnabled(FALSE);
- quedMessages.clear();
-}
-
-void EmailClient::popError(int code, const QString & Msg)
-{
- QString temp;
-
- if (code == ErrUnknownResponse) {
- temp = tr("<qt>Unknown response from server</qt>");
- if( ! Msg.isEmpty() )
- temp += Msg;
- } else if (code == ErrLoginFailed) {
- temp = tr("<qt>Login failed\nCheck user name and password</qt>");
- } else if (code == QSocket::ErrHostNotFound) {
- temp = tr("<qt>host not found</qt>");
- } else if (code == QSocket::ErrConnectionRefused) {
- temp = tr("<qt>connection refused</qt>");
- } else if (code == QSocket::ErrSocketRead) {
- temp = tr("<qt>socket packet error</qt>");
- }
-
- if (code != ErrCancel) {
- QMessageBox::warning(qApp->activeWindow(), tr("Receiving error"), temp, tr("OK\n"));
-
- } else {
- status2Label->setText("Aborted by user");
- }
-
- receiving = FALSE;
- getMailButton->setEnabled(TRUE);
- cancelButton->setEnabled(FALSE);
- selectAccountMenu->setEnabled(TRUE);
-}
-
-void EmailClient::inboxItemSelected()
-{
- //killTimer(timerID);
-
- item = (EmailListItem*) inboxView->selectedItem();
- if (item != NULL) {
- emit viewEmail(inboxView, item->getMail());
- }
-}
-
-void EmailClient::outboxItemSelected()
-{
- //killTimer(timerID);
-
- item = (EmailListItem*) outboxView->selectedItem();
- if (item != NULL) {
- emit viewEmail(outboxView, item->getMail());
- }
-
-}
-
-void EmailClient::readMail()
-{
- Email mail;
- int start, stop;
- QString s, del;
-
- QFile f(getPath(FALSE) + "inbox.txt");
-
- if ( f.open(IO_ReadOnly) ) { // file opened successfully
- QTextStream t( &f ); // use a text stream
- s = t.read();
- f.close();
-
- start = 0;
- del = "\n.\n";
- while ((uint) start < s.length()) {
- stop = s.find(del, start);
- if (stop == -1)
- stop = s.length() - del.length();
-
- mail.rawMail = s.mid(start, stop + del.length() - start );
- start = stop + del.length();
- mailArrived(mail, TRUE);
- }
- }
-
- QFile fo(getPath(FALSE) + "outbox.txt");
- if ( fo.open(IO_ReadOnly) ) { // file opened successfully
- QTextStream t( &fo ); // use a text stream
- s = t.read();
- fo.close();
-
- start = 0;
- del = "\n.\n";
- while ((uint) start < s.length()) {
- stop = s.find(del, start);
- if (stop == -1)
- stop = s.length() - del.length();
-
- mail.rawMail = s.mid(start, stop + del.length() - start );
- start = stop + del.length();
- emailHandler->parse(mail.rawMail, lineShift, &mail);
- mail.sent = false;
- mail.received = false;
- enqueMail(mail);
-
- }
- }
-}
-
-void EmailClient::saveMail(const QString &fileName, QListView *view)
-{
- QFile f(fileName);
- Email *mail;
-
- if (! f.open(IO_WriteOnly) ) {
- qWarning("could not open file");
- return;
- }
- item = (EmailListItem *) view->firstChild();
- QTextStream t(&f);
- while (item != NULL) {
- mail = item->getMail();
- t << mail->rawMail;
-
- mailconf->setGroup(mail->id);
- mailconf->writeEntry("mailread", mail->read);
-
- item = (EmailListItem *) item->nextSibling();
- }
- f.close();
-}
-
-//paths for mailit, is settings, inbox, enclosures
-QString EmailClient::getPath(bool enclosurePath)
-{
- QString basePath = "qtmail";
- QString enclosures = "enclosures";
-
- QDir dir = (QString(getenv("HOME")) + "/Applications/" + basePath);
- if ( !dir.exists() )
- dir.mkdir( dir.path() );
-
- if (enclosurePath) {
- dir = (QString(getenv("HOME")) + "/Applications/" + basePath + "/" + enclosures);
-
- if ( !dir.exists() )
- dir.mkdir( dir.path() );
-
- return (dir.path() + "/");
-
- }
- return (dir.path() + "/");
-}
-
-void EmailClient::readSettings()
-{
- int y,acc_count;
-
- mailconf->setGroup("mailitglobal");
- acc_count=mailconf->readNumEntry("Accounts",0);
-
- for (int accountPos = 0;accountPos<acc_count ; accountPos++)
- {
- mailconf->setGroup("Account_"+QString::number(accountPos+1)); //Account numbers start at 1 ...
- account.accountName = mailconf->readEntry("AccName","");
- account.name = mailconf->readEntry("UserName","");
- account.emailAddress = mailconf->readEntry("Email","");
- account.popUserName = mailconf->readEntry("POPUser","");
- account.popPasswd = mailconf->readEntryCrypt("POPPassword","");
- account.popServer = mailconf->readEntry("POPServer","");
- account.smtpServer = mailconf->readEntry("SMTPServer","");
- account.id = mailconf->readNumEntry("AccountId",0);
- account.syncLimit = mailconf->readNumEntry("HeaderLimit",0);
- account.lastServerMailCount = 0;
- account.synchronize = FALSE;
-
- account.synchronize = (mailconf->readEntry("Synchronize","No")=="Yes");
- if (account.synchronize)
- {
- mailconf->readNumEntry("LASTSERVERMAILCOUNT",0);
- }
-
- accountList.append(&account);
- }
-
- mailconf->setGroup("mailitglobal");
-
- if ( (y = mailconf->readNumEntry("mailidcount", -1)) != -1)
- {
- mailIdCount = y;
- }
- if ( (y = mailconf->readNumEntry("accountidcount", -1)) != -1)
- {
- accountIdCount = y;
- }
-}
-
-void EmailClient::saveSettings()
-{
- int acc_count=0;
- MailAccount *accountPtr;
-
-
- if (!mailconf)
- {
- qWarning("could not save settings");
- return;
- }
-
- for (accountPtr = accountList.first(); accountPtr != 0;
- accountPtr = accountList.next())
- {
- mailconf->setGroup("Account_"+QString::number(++acc_count));
- mailconf->writeEntry("AccName",accountPtr->accountName );
- mailconf->writeEntry("UserName",accountPtr->name);
- mailconf->writeEntry("Email",accountPtr->emailAddress);
- mailconf->writeEntry("POPUser",accountPtr->popUserName);
- mailconf->writeEntryCrypt("POPPassword",accountPtr->popPasswd);
- mailconf->writeEntry("POPServer",accountPtr->popServer);
- mailconf->writeEntry("SMTPServer",accountPtr->smtpServer);
- mailconf->writeEntry("AccountId",accountPtr->id);
- if (accountPtr->synchronize)
- {
- mailconf->writeEntry("Synchronize","Yes");
- mailconf->writeEntry("HeaderLimit",accountPtr->syncLimit);
- mailconf->writeEntry("LastServerMailCount",accountPtr->lastServerMailCount);
- }
- else
- {
- mailconf->writeEntry("Synchronize", "No");
- }
- }
-
- mailconf->setGroup("mailitglobal");
- mailconf->writeEntry("Accounts",acc_count);
- mailconf->writeEntry("mailidcount", mailIdCount);
- mailconf->writeEntry("accountidcount", accountIdCount);
-}
-
-void EmailClient::selectAccount(int id)
-{
- if (accountList.count() > 0) {
- currentAccount = accountList.at(id);
- emit newCaption("Mailit - " + currentAccount->accountName);
- getNewMail();
- } else {
- emit newCaption( tr("Mailit ! No account defined") );
- }
-}
-
-void EmailClient::editAccount(int id)
-{
- MailAccount *newAccount;
-
- editAccountView = new EditAccount(this, "account", TRUE);
- if (id == newAccountId) { //new account
- newAccount = new MailAccount;
- editAccountView->setAccount(newAccount);
- } else {
- newAccount = accountList.at(id);
- editAccountView->setAccount(newAccount, FALSE);
- }
-
- editAccountView->showMaximized();
- editAccountView->exec();
-
- if (editAccountView->result() == QDialog::Accepted) {
- if (id == newAccountId) {
- newAccount->id = accountIdCount;
- accountIdCount++;
- accountList.append(newAccount);
- updateAccounts();
- } else {
- updateAccounts();
- }
- }
-
- delete editAccountView;
-}
-
-void EmailClient::deleteAccount(int id)
-{
- MailAccount *newAccount;
- QString message;
-
- newAccount = accountList.at(id);
- message = tr("Delete account:\n") + newAccount->accountName;
- switch( QMessageBox::warning( this, "Mailit", message,
- "Yes", "No", 0, 0, 1 ) ) {
-
- case 0: accountList.remove(id);
- updateAccounts();
- break;
- case 1:
- break;
- }
-}
-
-void EmailClient::updateAccounts()
-{
- MailAccount *accountPtr;
-
- //rebuild menus, clear all first
- editAccountMenu->clear();
- selectAccountMenu->clear();
- deleteAccountMenu->clear();
-
- newAccountId = editAccountMenu->insertItem( tr("New"), this,
- SLOT(editAccount(int)) );
- editAccountMenu->insertSeparator();
-
- idCount = 0;
- for (accountPtr = accountList.first(); accountPtr != 0;
- accountPtr = accountList.next()) {
-
- editAccountMenu->insertItem(accountPtr->accountName,
- this, SLOT(editAccount(int)), 0, idCount);
- selectAccountMenu->insertItem(accountPtr->accountName,
- this, SLOT(selectAccount(int)), 0, idCount);
- deleteAccountMenu->insertItem(accountPtr->accountName,
- this, SLOT(deleteAccount(int)), 0, idCount);
- idCount++;
- }
-}
-
-void EmailClient::deleteMail(EmailListItem *mailItem, bool &inbox)
-{
- Email *mPtr;
- Enclosure *ePtr;
-
- if (inbox)
- {
- mPtr = mailItem->getMail();
-
- //if mail is in queue for download, remove it from
- //queue if possible
- if ( (receiving) && (mPtr->fromAccountId == currentAccount->id) ) {
- if ( !mPtr->downloaded )
- mailDownloadList.remove(mPtr->serverId, mPtr->size);
- }
-
- mailconf->setGroup(mPtr->id);
- mailconf->clearGroup();
-
- //delete any temporary attatchemnts storing
- for ( ePtr=mPtr->files.first(); ePtr != 0; ePtr=mPtr->files.next() ) {
- if (ePtr->saved) {
- QFile::remove( (ePtr->path + ePtr->name) );
- }
- }
- inboxView->takeItem(mailItem);
- }
- else
- {
- outboxView->takeItem(mailItem);
- }
-}
-
-void EmailClient::setMailSize(int size)
-{
- progressBar->reset();
- progressBar->setTotalSteps(size);
-}
-
-void EmailClient::setTotalSize(int /*size*/)
-{
-
-}
-
-void EmailClient::setDownloadedSize(int size)
-{
- int total = progressBar->totalSteps();
-
- if (size < total) {
- progressBar->setProgress(size);
- } else {
- progressBar->setProgress(total);
- }
-}
-
-void EmailClient::deleteItem()
-{
- bool inbox=mailboxView->currentTab()==0;
- QListView* box;
-
- EmailListItem* eli;
- // int pos;
-
- inbox ? box=inboxView : box=outboxView;
-
- eli=(EmailListItem*)box->selectedItem();
-
- if (eli)
- {
- box->setSelected(eli->itemBelow(),true); //select the previous item
-
- deleteMail(eli,(bool&)inbox); //remove mail entry
- }
-}
-
-void EmailClient::inboxItemPressed()
-{
-// timerID=startTimer(500);
-}
-
-void EmailClient::inboxItemReleased()
-{
- // killTimer(timerID);
-}
-
-/*void EmailClient::timerEvent(QTimerEvent *e)
-{
- //killTimer(timerID);
-
-
- QPopupMenu *action = new QPopupMenu(this);
-
- int reply=0;
-
- action->insertItem(tr( "Reply To" ),this,SLOT(reply()));
- action->insertItem( tr( "Reply All" ),this,SLOT(replyAll()));
- action->insertItem( tr( "Forward" ), this,SLOT(forward()));
- action->insertItem( tr( "Remove Mail" ), this,SLOT(remove()));
-
- action->exec(QCursor::pos());
-
- if (action) delete action;
-
-}*/
-
-Email* EmailClient::getCurrentMail()
-{
- EmailListItem *eli=(EmailListItem* ) (inboxView->selectedItem());
- if (eli!=NULL)
- return eli->getMail();
- else
- return NULL;
-}
-
-void EmailClient::download(Email* mail)
-{
- MailAccount* acc=0;
-
- tempMailDownloadList.clear();
- tempMailDownloadList.sizeInsert(mail->serverId, mail->size);
-
- acc=accountList.at(mail->fromAccountId-1);
- if (acc)
- {
- emailHandler->setAccount(*acc);
- emailHandler->getMailByList(&tempMailDownloadList);
- }
- else
- QMessageBox::warning(qApp->activeWindow(),
- tr("No account associated"), tr("There is no active account \nassociated to this mail\n it can not be downloaded"), "Abort\n");
-}
-
-void EmailClient::receive(const QCString& /*msg*/, const QByteArray& /*data*/)
-{
- /*if (msg=="getMail()")
- {
- //QDialog qd(qApp->activeWindow(),"Getting mail",true);
- QVBoxLayout *vbProg = new QVBoxLayout( &qd );
-
- initStatusBar(&qd);
-
- if (statusBar==0)
- {
- qDebug("No Bar ...");
- //statusBar=new ProgressBar(&qd);
- }
- statusBar->show();
- vbProg->addWidget(statusBar);
- qd.showMaximized();
- qd.show();
- emit getAllNewMail();
- //qd.exec();
- }
- else if (msg=="compose()")
- {
- QDialog qd(qApp->activeWindow(),"Getting mail",true);
-
- WriteMail wm(&qd,"write new mail");
- QVBoxLayout vbProg( &qd );
-
- wm.showMaximized();
- vbProg.addWidget(&wm);
-
- qd.showMaximized();
-
- emit composeRequested();
- qd.exec();
-
- QMessageBox::warning(qApp->activeWindow(),tr("Info"), tr("Info"), "OK\n");
- }
-
- else if (msg=="dialog()")
- {
- QMessageBox::warning(qApp->activeWindow(),tr("Info"), tr("Info"), "OK\n");
- }*/
-}
diff --git a/noncore/net/mailit/emailclient.h b/noncore/net/mailit/emailclient.h
deleted file mode 100644
index 80c6d31..0000000
--- a/noncore/net/mailit/emailclient.h
+++ b/dev/null
@@ -1,181 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef EMAILCLIENT_H
-#define EMAILCLIENT_H
-
-#include <qlist.h>
-#include <qcstring.h>
-#include <qmainwindow.h>
-
-#include <qtoolbar.h>
-#include <qcheckbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qlistview.h>
-#include <qaction.h>
-#include <qlayout.h>
-#include <qtooltip.h>
-#include <qtoolbutton.h>
-#include <qimage.h>
-#include <qpixmap.h>
-#include <qstringlist.h>
-#include <qprogressbar.h>
-#include <qstatusbar.h>
-#include <qdir.h>
-#include <stdlib.h>
-#include <opie/otabwidget.h>
-#include <qpe/qcopenvelope_qws.h>
-#include <qtimer.h>
-
-#include "emailhandler.h"
-#include "emaillistitem.h"
-#include "textparser.h"
-#include "editaccount.h"
-#include "maillist.h"
-#include "addresslist.h"
-
-#include <qpe/config.h>
-
-class AccountList : public QList<MailAccount>
-{
-public:
- Item newItem(Item d);
-private:
- MailAccount* dupl(MailAccount *in);
- MailAccount *ac;
-};
-
-//class EmailClient : public EmailClientBase
-class EmailClient : public QMainWindow
-{
- Q_OBJECT
-
-public:
- EmailClient( QWidget* parent, const char* name, WFlags fl = 0 );
- ~EmailClient();
- AddressList* getAdrListRef();
-
-protected:
- //void timerEvent(QTimerEvent*);
-
-signals:
- void composeRequested();
- void viewEmail(QListView *, Email *);
- void mailUpdated(Email *);
- void newCaption(const QString &);
- void replyRequested(Email&, bool&);
- void forwardRequested(Email&);
- void removeItem(EmailListItem*, bool&);
- /*void reply(Email&);
- void replyAll(Email&);
- void remove(Email&);
- void forward(Email&);*/
-
-public slots:
- void compose();
- void cancel();
- void enqueMail(const Email &mail);
- void setMailAccount();
- void sendQuedMail();
- void mailSent();
- void deleteItem();
- void getNewMail();
- void getAllNewMail();
- void smtpError(int code, const QString & Msg );
- void popError(int code, const QString & Msg);
- void inboxItemSelected();
- void outboxItemSelected();
- void inboxItemPressed();
- void inboxItemReleased();
- void mailArrived(const Email &mail, bool fromDisk);
- void allMailArrived(int);
- void saveMail(const QString &fileName, QListView *view);
- void selectAccount(int);
- void editAccount(int);
- void updateAccounts();
- void deleteAccount(int);
- void deleteMail(EmailListItem *mailItem, bool &inbox);
- void setTotalSize(int);
- void setMailSize(int);
- void setDownloadedSize(int);
- void moveMailFront(Email *mailPtr);
- void download(Email*);
-/* void reply();
- void replyAll();
- void forward();
- void remove();*/
-
-private slots:
- void receive(const QCString&, const QByteArray&);
-
-private:
- void init();
- void initStatusBar(QWidget*);
- void readMail();
- QString getPath(bool enclosurePath);
- void readSettings();
- void saveSettings();
- Email* getCurrentMail();
- int timerID;
- Config *mailconf;
- int newAccountId, idCount, mailIdCount;
- int accountIdCount;
- AccountList accountList;
- AddressList *addressList;
-
- EditAccount *editAccountView;
- EmailListItem *item;
- EmailHandler *emailHandler;
- QList<Email> quedMessages;
- MailList mailDownloadList;
- MailList tempMailDownloadList;
-
- bool sending, receiving, previewingMail, allAccounts;
- QString lineShift;
- MailAccount account, *currentAccount;
-
- QCopChannel* channel;
-
- QToolBar *bar;
- QProgressBar *progressBar;
- QStatusBar *statusBar;
- QLabel *status1Label, *status2Label;
- QToolButton *getMailButton;
- QAction *sendMailButton;
- QAction *composeButton;
- QAction *cancelButton;
- QAction *deleteButton;
- //QToolButton *setAccountButton;
-
- QMenuBar *mb;
- QPopupMenu *selectAccountMenu;
- QPopupMenu *editAccountMenu;
- QPopupMenu *deleteAccountMenu;
- QPopupMenu *setAccountMenu;
-
- OTabWidget* mailboxView;
- QListView* inboxView;
- QListView* outboxView;
-
- QGridLayout* grid_2;
- QGridLayout* grid_3;
-};
-
-#endif // EMAILCLIENT_H
diff --git a/noncore/net/mailit/emailhandler.cpp b/noncore/net/mailit/emailhandler.cpp
deleted file mode 100644
index 06e978d..0000000
--- a/noncore/net/mailit/emailhandler.cpp
+++ b/dev/null
@@ -1,630 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include <qfileinfo.h>
-#include <stdlib.h>
-#include <qapplication.h>
-#include <qmessagebox.h>
-#include <qcstring.h>
-#include "emailhandler.h"
-#include <qpe/applnk.h>
-#include <qpe/filemanager.h>
-
-QCollection::Item EnclosureList::newItem(QCollection::Item d)
-{
- return dupl( (Enclosure *) d);
-}
-
-Enclosure* EnclosureList::dupl(Enclosure *in)
-{
- ac = new Enclosure(*in);
- return ac;
-}
-
-EmailHandler::EmailHandler()
-{
- qDebug("EMailHandler::EmailHandler");
-
- smtpClient = new SmtpClient();
- popClient = new PopClient();
-
- connect(smtpClient, SIGNAL(errorOccurred(int, const QString &)), this,
- SIGNAL(smtpError(int, const QString &)) );
- connect(smtpClient, SIGNAL(mailSent()), this, SIGNAL(mailSent()) );
- connect(smtpClient, SIGNAL(updateStatus(const QString &)), this,
- SIGNAL(updateSmtpStatus(const QString &)) );
-
- connect(popClient, SIGNAL(errorOccurred(int, const QString &)), this,
- SIGNAL(popError(int, const QString &)) );
- connect(popClient, SIGNAL(newMessage(const QString &, int, uint, bool)),
- this, SLOT(messageArrived(const QString &, int, uint, bool)) );
- connect(popClient, SIGNAL(updateStatus(const QString &)), this,
- SIGNAL(updatePopStatus(const QString &)) );
- connect(popClient, SIGNAL(mailTransfered(int)), this,
- SIGNAL(mailTransfered(int)) );
-
-
- //relaying size information
- connect(popClient, SIGNAL(currentMailSize(int)),
- this, SIGNAL(currentMailSize(int)) );
- connect(popClient, SIGNAL(downloadedSize(int)),
- this, SIGNAL(downloadedSize(int)) );
-}
-
-void EmailHandler::sendMail(QList<Email> *mailList)
-{
- Email *currentMail;
- QString temp;
- QString userName = QString::null;
- // not supported by ALL SMTP servers in the MAIL From field
- // userName = "\""+mailAccount.name+"\"";
- userName += "<" + mailAccount.emailAddress + ">";
-
- for (currentMail = mailList->first(); currentMail != 0;
- currentMail = mailList->next()) {
-
- if (encodeMime(currentMail) == 0) {
- smtpClient->addMail(userName, currentMail->subject,
- currentMail->recipients, currentMail->rawMail);
- } else { //error
- temp = tr("Could not locate all files in \nmail with subject: ") +
- currentMail->subject;
- temp += tr("\nMail has NOT been sent");
- QMessageBox::warning(qApp->activeWindow(), tr("Attachment error"), temp, tr("OK\n"));
-
- }
- }
- smtpClient->newConnection(mailAccount.smtpServer, 25);
-}
-
-void EmailHandler::setAccount(MailAccount account)
-{
- mailAccount = account;
-}
-
-void EmailHandler::getMail()
-{
- popClient->setAccount(mailAccount.popUserName, mailAccount.popPasswd);
- if (mailAccount.synchronize) {
- popClient->setSynchronize(mailAccount.lastServerMailCount);
- } else {
- popClient->removeSynchronize();
- }
-
- headers = FALSE;
- //popClient->headersOnly(headers, 0);
- popClient->newConnection(mailAccount.popServer, 110);
-}
-
-void EmailHandler::getMailHeaders()
-{
- popClient->setAccount(mailAccount.popUserName, mailAccount.popPasswd);
- mailAccount.synchronize ? popClient->setSynchronize(mailAccount.lastServerMailCount): popClient->removeSynchronize();
-
- headers = TRUE;
- popClient->headersOnly(headers, mailAccount.syncLimit); //less than requested syncLimit, download all
- qDebug("Initiating connection");
- popClient->newConnection(mailAccount.popServer, 110);
-}
-
-void EmailHandler::getMailByList(MailList *mailList)
-{
- if (mailList->count() == 0) { //should not occur though
- emit mailTransfered(0);
- return;
- }
-
- headers = FALSE;
- popClient->headersOnly(FALSE, 0);
-
- popClient->setAccount(mailAccount.popUserName,mailAccount.popPasswd);
- popClient->setSelectedMails(mailList);
- popClient->newConnection(mailAccount.popServer, 110);
- }
-
-void EmailHandler::messageArrived(const QString &message, int id, uint size, bool complete)
-{
- Email mail;
-
- mail.rawMail = message;
- mail.serverId = id;
- mail.size = size;
- mail.downloaded = complete;
-
- emit mailArrived(mail, FALSE);
-}
-
-bool EmailHandler::parse(const QString &in, const QString &lineShift, Email *mail)
-{
- QString temp, boundary;
- int pos;
- QString delimiter, header, body, mimeHeader, mimeBody;
- QString content, contentType, contentAttribute, id, encoding;
- QString fileName, storedName;
- int enclosureId = 0;
-
- mail->rawMail = in;
- mail->received = TRUE;
- mail->files.setAutoDelete(TRUE);
-
- temp = lineShift + "." + lineShift;
-
- if (in.right(temp.length()) != temp) {
- mail->rawMail += temp;
- }
-
-
- delimiter = lineShift + lineShift; // "\n\n" or "\r\n\r\n"
- pos = in.find(delimiter, 0, FALSE);
- header = in.left(pos);
- body = in.right(in.length() - pos - delimiter.length());
- if ((body.at(body.length()-2) == '.') && (body.at(body.length()-3) == '\n'))
- body.truncate(body.length()-2);
-
- // TextParser p(header, lineShift);
- TextParser * lp = new TextParser(header, lineShift);
-#define p (*lp)
-
- if ((pos = p.find("FROM",':', 0, TRUE)) != -1) {
- pos++;
- if (p.separatorAt(pos) == ' ') {
- mail->from = p.getString(&pos, '<', false);
- mail->from = mail->from.stripWhiteSpace();
- if ( (mail->from.length() > 2) && (mail->from[0] == '"') ) {
- mail->from = mail->from.left(mail->from.length() - 1);
- mail->from = mail->from.right(mail->from.length() - 1);
- }
- pos++;
- mail->fromMail = p.getString(&pos, '>', false);
- } else {
- if (p.separatorAt(pos) == '<') //No name.. nasty
- pos++;
- //pos++;
- mail->fromMail = p.getString(&pos, 'z', TRUE);
- if (mail->fromMail.at(mail->fromMail.length()-1) == '>')
- mail->fromMail.truncate(mail->fromMail.length() - 1);
- mail->from=mail->fromMail;
- }
- }
-
- pos=0;
-
- //Search for To: after the FROM: attribute to prevent hitting the Delivered-To:
- while((pos = p.find("TO",':', pos+1, TRUE))!=-1)
- {
- QString rec;
-
- if (p.separatorAt(pos-1)!='-') //The - separator means that this is a Delivered-To: or Reply-To:
- {
- pos++;
- mail->recipients.append(p.getString(&pos, '\r', TRUE));
- }
- }
- //
- //if (pos==-1) mail->recipients.append (tr("undisclosed recipients") );
-
- if ((pos = p.find("CC",':', 0, TRUE)) != -1)
- {
- pos++;
- mail->carbonCopies.append (p.getString(&pos, 'z', TRUE) );
- }
-
- if ((pos = p.find("SUBJECT",':', 0, TRUE)) != -1) {
- pos++;
- mail->subject = p.getString(&pos, 'z', TRUE);
- }
-
- if ((pos = p.find("DATE",':', 0, TRUE)) != -1) {
- pos++;
- mail->date = p.getString(&pos, 'z', TRUE);
- }
-
-
-
- if ((pos = p.find("MESSAGE",'-', 0, TRUE)) != -1) {
- pos++;
- if ( (p.wordAt(pos).upper() == "ID") &&
- (p.separatorAt(pos) == ':') ) {
-
- id = p.getString(&pos, 'z', TRUE);
- mail->id = id;
- }
- }
-
- pos = 0;
- while ( ((pos = p.find("MIME",'-', pos, TRUE)) != -1) ) {
- pos++;
- if ( (p.wordAt(pos).upper() == "VERSION") &&
- (p.separatorAt(pos) == ':') ) {
- pos++;
- if (p.getString(&pos, 'z', true) == "1.0") {
- mail->mimeType = 1;
- }
- }
- }
-
- if (mail->mimeType == 1) {
- boundary = "";
- if ((pos = p.find("BOUNDARY", '=', 0, TRUE)) != -1) {
- pos++;
- boundary = p.getString(&pos, 'z', true);
- if (boundary[0] == '"') {
- boundary = boundary.left(boundary.length() - 1); //strip "
- boundary = boundary.right(boundary.length() - 1); //strip "
- }
- boundary = "--" + boundary; //create boundary field
- }
-
- if (boundary == "") { //fooled by Mime-Version
- mail->body = body;
- mail->bodyPlain = body;
- delete lp;
- return mail;
- }
-
- while (body.length() > 0) {
- pos = body.find(boundary, 0, FALSE);
- pos = body.find(delimiter, pos, FALSE);
- mimeHeader = body.left(pos);
- mimeBody = body.right(body.length() - pos - delimiter.length());
- TextParser bp(mimeHeader, lineShift);
-
- contentType = "";
- contentAttribute = "";
- fileName = "";
- if ((pos = bp.find("CONTENT",'-', 0, TRUE)) != -1) {
- pos++;
- if ( (bp.wordAt(pos).upper() == "TYPE") &&
- (bp.separatorAt(pos) == ':') ) {
- contentType = bp.nextWord().upper();
- if (bp.nextSeparator() == '/')
- contentAttribute = bp.nextWord().upper();
- content = contentType + "/" + contentAttribute;
- }
- if ((pos = bp.find("ENCODING",':', 0, TRUE)) != -1) {
- pos++;
- encoding = bp.getString(&pos, 'z', TRUE);
- }
-
- if ( (pos = bp.find("FILENAME",'=', 0, TRUE)) != -1) {
- pos++;
- fileName = bp.getString(&pos, 'z', TRUE);
- fileName = fileName.right(fileName.length() - 1);
- fileName = fileName.left(fileName.length() - 1);
- }
-
- }
- pos = mimeBody.find(boundary, 0, FALSE);
- if (pos == -1) //should not occur, malformed mail
- pos = mimeBody.length();
- body = mimeBody.right(mimeBody.length() - pos);
- mimeBody = mimeBody.left(pos);
-
- if (fileName != "") { //attatchments of some type, audio, image etc.
-
- Enclosure e;
- e.id = enclosureId;
- e.originalName = fileName;
- e.contentType = contentType;
- e.contentAttribute = contentAttribute;
- e.encoding = encoding;
- e.body = mimeBody;
- e.saved = FALSE;
- mail->addEnclosure(&e);
- enclosureId++;
-
- } else if (contentType == "TEXT") {
- if (contentAttribute == "PLAIN") {
- mail->body = mimeBody;
- mail->bodyPlain = mimeBody;
- }
- if (contentAttribute == "HTML") {
- mail->body = mimeBody;
- }
- }
- }
- } else {
- mail->bodyPlain = body;
- mail->body = body;
- }
- delete lp;
- return TRUE;
-}
-
-bool EmailHandler::getEnclosure(Enclosure *ePtr)
-{
- QFile f(ePtr->path + ePtr->name);
- char src[4];
- char *destPtr;
- QByteArray buffer;
- uint bufCount, pos, decodedCount, size, x;
-
- if (! f.open(IO_WriteOnly) ) {
- qWarning("could not save: " + ePtr->path + ePtr->name);
- return FALSE;
- }
-
- if (ePtr->encoding.upper() == "BASE64") {
- size = (ePtr->body.length() * 3 / 4); //approximate size (always above)
- buffer.resize(size);
- bufCount = 0;
- pos = 0;
- destPtr = buffer.data();
-
- while (pos < ePtr->body.length()) {
- decodedCount = 4;
- x = 0;
- while ( (x < 4) && (pos < ePtr->body.length()) ) {
- src[x] = ePtr->body[pos].latin1();
- pos++;
- if (src[x] == '\r' || src[x] == '\n' || src[x] == ' ')
- x--;
- x++;
- }
- if (x > 1) {
- decodedCount = parse64base(src, destPtr);
- destPtr += decodedCount;
- bufCount += decodedCount;
- }
- }
-
- buffer.resize(bufCount); //set correct length of file
- f.writeBlock(buffer);
- } else {
- QTextStream t(&f);
- t << ePtr->body;
- }
- return TRUE;
-}
-
-int EmailHandler::parse64base(char *src, char *bufOut) {
-
- char c, z;
- char li[4];
- int processed;
-
- //conversion table withouth table...
- for (int x = 0; x < 4; x++) {
- c = src[x];
-
- if ( (int) c >= 'A' && (int) c <= 'Z')
- li[x] = (int) c - (int) 'A';
- if ( (int) c >= 'a' && (int) c <= 'z')
- li[x] = (int) c - (int) 'a' + 26;
- if ( (int) c >= '0' && (int) c <= '9')
- li[x] = (int) c - (int) '0' + 52;
- if (c == '+')
- li[x] = 62;
- if (c == '/')
- li[x] = 63;
- }
-
- processed = 1;
- bufOut[0] = (char) li[0] & (32+16+8+4+2+1); //mask out top 2 bits
- bufOut[0] <<= 2;
- z = li[1] >> 4;
- bufOut[0] = bufOut[0] | z; //first byte retrived
-
- if (src[2] != '=') {
- bufOut[1] = (char) li[1] & (8+4+2+1); //mask out top 4 bits
- bufOut[1] <<= 4;
- z = li[2] >> 2;
- bufOut[1] = bufOut[1] | z; //second byte retrived
- processed++;
-
- if (src[3] != '=') {
- bufOut[2] = (char) li[2] & (2+1); //mask out top 6 bits
- bufOut[2] <<= 6;
- z = li[3];
- bufOut[2] = bufOut[2] | z; //third byte retrieved
- processed++;
- }
- }
- return processed;
-}
-
-int EmailHandler::encodeMime(Email *mail)
-{
-
- QString fileName, fileType, contentType, newBody, boundary;
- Enclosure *ePtr;
- QString userName;
-
- if ( ! mailAccount.name.isEmpty() ) {
- userName = "\"" + mailAccount.name + "\" <" + mailAccount.emailAddress + ">";
- } else {
- userName = "<" + mailAccount.emailAddress + ">";
- }
-
- //add standard headers
- newBody = "From: " + userName + "\r\nTo: ";
- for (QStringList::Iterator it = mail->recipients.begin(); it != mail->recipients.end(); ++it ) {
- newBody += *it + " ";
- }
-
- newBody += "\r\nCC: ";
-
- for (QStringList::Iterator it = mail->carbonCopies.begin(); it != mail->carbonCopies.end(); ++it ) {
- newBody += *it + " ";
- }
-
- newBody += "\r\nSubject: " + mail->subject + "\r\n";
-
- if (mail->files.count() == 0) { //just a simple mail
- newBody += "\r\n" + mail->body;
- mail->rawMail = newBody;
- return 0;
- }
-
- //Build mime encoded mail
- boundary = "-----4345=next_bound=0495----";
-
- newBody += "Mime-Version: 1.0\r\n";
- newBody += "Content-Type: multipart/mixed; boundary=\"" +
- boundary + "\"\r\n\r\n";
-
- newBody += "This is a multipart message in Mime 1.0 format\r\n\r\n";
- newBody += "--" + boundary + "\r\nContent-Type: text/plain\r\n\r\n";
- newBody += mail->body;
-
- for ( ePtr=mail->files.first(); ePtr != 0; ePtr=mail->files.next() ) {
- fileName = ePtr->originalName;
- fileType = ePtr->contentType;
- QFileInfo fi(fileName);
-
- // This specification of contentType is temporary
- contentType = "";
- if (fileType == "Picture") {
- contentType = "image/x-image";
- } else if (fileType == "Document") {
- contentType = "text/plain";
- } else if (fileType == "Sound") {
- contentType = "audio/x-wav";
- } else if (fileType == "Movie") {
- contentType = "video/mpeg";
- } else {
- contentType = "application/octet-stream";
- }
-
- newBody += "\r\n\r\n--" + boundary + "\r\n";
- newBody += "Content-Type: " + contentType + "; name=\"" +
- fi.fileName() + "\"\r\n";
- newBody += "Content-Transfer-Encoding: base64\r\n";
- newBody += "Content-Disposition: inline; filename=\"" +
- fi.fileName() + "\"\r\n\r\n";
-
- if (encodeFile(fileName, &newBody) == -1) //file not found?
- return -1;
- }
-
- newBody += "\r\n\r\n--" + boundary + "--";
- mail->rawMail = newBody;
-
- return 0;
-}
-
-int EmailHandler::encodeFile(const QString &fileName, QString *toBody)
-{
- char *fileData;
- char *dataPtr;
- QString temp;
- uint dataSize, count;
- QFile f(fileName);
-
- if (! f.open(IO_ReadOnly) ) {
- qWarning("could not open file: " + fileName);
- return -1;
- }
- QTextStream s(&f);
- dataSize = f.size();
- fileData = (char *) malloc(dataSize + 3);
- s.readRawBytes(fileData, dataSize);
-
- temp = "";
- dataPtr = fileData;
- count = 0;
- while (dataSize > 0) {
- if (dataSize < 3) {
- encode64base(dataPtr, &temp, dataSize);
- dataSize = 0;
- } else {
- encode64base(dataPtr, &temp, 3);
- dataSize -= 3;
- dataPtr += 3;
- count += 4;
- }
- if (count > 72) {
- count = 0;
- temp += "\r\n";
- }
- }
- toBody->append(temp);
-
- delete(fileData);
- f.close();
- return 0;
-}
-
-void EmailHandler::encode64base(char *src, QString *dest, int len)
-{
- QString temp;
- uchar c;
- uchar bufOut[4];
-
- bufOut[0] = src[0];
- bufOut[0] >>= 2; //Done byte 0
-
- bufOut[1] = src[0];
- bufOut[1] = bufOut[1] & (1 + 2); //mask out top 6 bits
- bufOut[1] <<= 4; //copy up 4 places
- if (len > 1) {
- c = src[1];
- } else {
- c = 0;
- }
-
- c = c & (16 + 32 + 64 + 128);
- c >>= 4;
- bufOut[1] = bufOut[1] | c; //Done byte 1
-
- bufOut[2] = src[1];
- bufOut[2] = bufOut[2] & (1 + 2 + 4 + 8);
- bufOut[2] <<= 2;
- if (len > 2) {
- c = src[2];
- } else {
- c = 0;
- }
- c >>= 6;
- bufOut[2] = bufOut[2] | c;
-
- bufOut[3] = src[2];
- bufOut[3] = bufOut[3] & (1 + 2 + 4 + 8 + 16 + 32);
-
- if (len == 1) {
- bufOut[2] = 64;
- bufOut[3] = 64;
- }
- if (len == 2) {
- bufOut[3] = 64;
- }
- for (int x = 0; x < 4; x++) {
- if (bufOut[x] <= 25)
- bufOut[x] += (uint) 'A';
- else if (bufOut[x] >= 26 && bufOut[x] <= 51)
- bufOut[x] += (uint) 'a' - 26;
- else if (bufOut[x] >= 52 && bufOut[x] <= 61)
- bufOut[x] += (uint) '0' - 52;
- else if (bufOut[x] == 62)
- bufOut[x] = '+';
- else if (bufOut[x] == 63)
- bufOut[x] = '/';
- else if (bufOut[x] == 64)
- bufOut[x] = '=';
-
- dest->append(bufOut[x]);
- }
-}
-
-void EmailHandler::cancel()
-{
- popClient->errorHandling(ErrCancel);
- smtpClient->errorHandling(ErrCancel);
-}
-
diff --git a/noncore/net/mailit/emailhandler.h b/noncore/net/mailit/emailhandler.h
deleted file mode 100644
index 74a8e4c..0000000
--- a/noncore/net/mailit/emailhandler.h
+++ b/dev/null
@@ -1,150 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef EmailHandler_H
-#define EmailHandler_H
-
-#include <qobject.h>
-#include <qstring.h>
-#include <qdatetime.h>
-#include <qlist.h>
-#include <qstringlist.h>
-#include <qfile.h>
-#include <qstringlist.h>
-#include <qcollection.h>
-#include <qpe/qcopenvelope_qws.h>
-
-#include "smtpclient.h"
-#include "popclient.h"
-#include "textparser.h"
-#include "maillist.h"
-
-struct Enclosure
-{
- int id;
- QString originalName;
- QString name;
- QString path;
- QString contentType;
- QString contentAttribute;
- QString encoding;
- QString body; //might use to much mem. check!!
- bool saved, installed;
-};
-
-class EnclosureList : public QList<Enclosure>
-{
-public:
- Item newItem(Item d);
-private:
- Enclosure* dupl(Enclosure *in);
- Enclosure *ac;
-};
-
-struct Email
-{
- QString id;
- QString from;
- QString fromMail;
- QStringList recipients;
- QStringList carbonCopies;
- QString date;
- QString subject;
- QString body;
- QString bodyPlain;
- bool sent, received, read, downloaded;
- QString rawMail;
- int mimeType; //1 = Mime 1.0
- int serverId;
- int internalId;
- int fromAccountId;
- QString contentType; //0 = text
- QString contentAttribute; //0 = plain, 1 = html
- EnclosureList files;
- uint size;
-
- void addEnclosure(Enclosure *e)
- {
- files.append(e);
- }
-};
-
-struct MailAccount
-{
- QString accountName;
- QString name;
- QString emailAddress;
- QString popUserName;
- QString popPasswd;
- QString popServer;
- QString smtpServer;
- bool synchronize;
- int syncLimit;
- int lastServerMailCount;
- int id;
-};
-
- const int ErrUnknownResponse = 1001;
- const int ErrLoginFailed = 1002;
- const int ErrCancel = 1003;
-
-
-class EmailHandler : public QObject
-{
- Q_OBJECT
-
-public:
- EmailHandler();
- void setAccount(MailAccount account);
- MailAccount* getAccount(){return &mailAccount;}
- void sendMail(QList<Email> *mailList);
- void getMail();
- void getMailHeaders();
- void getMailByList(MailList *mailList);
- bool parse(const QString &in, const QString &lineShift, Email *mail);
- bool getEnclosure(Enclosure *ePtr);
- int parse64base(char *src, char *dest);
- int encodeMime(Email *mail);
- int encodeFile(const QString &fileName, QString *toBody);
- void encode64base(char *src, QString *dest, int len);
- void cancel();
-
-signals:
- void mailSent();
- void smtpError(int, const QString & Msg );
- void popError(int, const QString & Msg );
- void mailArrived(const Email &, bool);
- void updatePopStatus(const QString &);
- void updateSmtpStatus(const QString &);
- void mailTransfered(int);
- void mailboxSize(int);
- void currentMailSize(int);
- void downloadedSize(int);
-
-public slots:
- void messageArrived(const QString &, int id, uint size, bool complete);
-
-private:
- MailAccount mailAccount;
- SmtpClient *smtpClient;
- PopClient *popClient;
- bool headers;
-};
-
-#endif
diff --git a/noncore/net/mailit/emaillistitem.cpp b/noncore/net/mailit/emaillistitem.cpp
deleted file mode 100644
index a25f93a..0000000
--- a/noncore/net/mailit/emaillistitem.cpp
+++ b/dev/null
@@ -1,158 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include <qstring.h>
-#include <qpe/resource.h>
-#include "emaillistitem.h"
-
-EmailListItem::EmailListItem(QListView *parent, Email mailIn, bool inbox)
- : QListViewItem(parent)
-{
- QString temp;
-
- mail = mailIn;
-
- if (inbox) {
- setText(0, mail.from);
- } else {
- QStringList::Iterator it = mail.recipients.begin();
- temp = *it;
- if (mail.recipients.count() > 1)
- temp += "...";
- setText(0, temp);
- }
- setText(1, mail.subject);
- // setText(2,mail.date);
- setText(2,dateFromULCString(mail.date));
-
- if (mailIn.files.count()>0)
- {
- setPixmap(0, Resource::loadPixmap("mailit/attach"));
- }
-
- selected = FALSE;
-}
-
-Email* EmailListItem::getMail()
-{
- return &mail;
-}
-
-void EmailListItem::setMail(Email newMail)
-{
- mail = newMail;
- repaint();
-}
-
-void EmailListItem::setItemSelected(bool enable)
-{
- selected = enable;
- setSelected(enable);
- repaint();
-}
-
-bool EmailListItem::isItemSelected()
-{
- return selected;
-}
-
-void EmailListItem::paintCell( QPainter *p, const QColorGroup &cg,
- int column, int width, int alignment )
-{
-
- QColorGroup _cg( cg );
- QColor c = _cg.text();
-
- if ( (! mail.read) && (mail.received) )
- _cg.setColor( QColorGroup::Text, Qt::blue);
- if (!mail.downloaded)
- _cg.setColor( QColorGroup::Text, Qt::red);
-
-/* if (selected) {
- _cg.setColor(QColorGroup::Base, Qt::blue);
- _cg.setColor(QColorGroup::Text, Qt::yellow);
- if (isSelected()) {
- _cg.setColor(QColorGroup::HighlightedText, Qt::yellow);
- } else {
- _cg.setColor(QColorGroup::Highlight, Qt::blue);
- }
- }
-*/
- QListViewItem::paintCell( p, _cg, column, width, alignment );
-
- _cg.setColor( QColorGroup::Text, c );
-}
-
-/*
- * Converts an E-Mail date (ULC) RFC 2822 conform to a QDateTime.
- * Returning a QString with formatting of "YYYY-MM-DD HH:MM:SS"
- * (zodiac: This method was tested with more than 300 inbox mails,
- * it didn't slow down the loading of mail-it.)
- */
-QString EmailListItem::dateFromULCString( QString ulcDate )
-{
- QString sTemp, sTime;
- int iPos, iDay, iMon=1, iYear;
-
- iPos=ulcDate.find(',');
- if (iPos) { // it has a day-of-week
- ulcDate=ulcDate.remove(0,++iPos); //.stripWhiteSpace();
- }
-
- QStringList dateEntries = QStringList::split(" ",ulcDate,FALSE);
- QStringList::Iterator iter = dateEntries.begin();
-
- // Get day as DD
- iDay = (*iter++).toInt();
-
- // Get month as string Mmm
- sTemp = (*iter++);
- if (sTemp =="Jan") {iMon=1;} else
- if (sTemp =="Feb") {iMon=2;} else
- if (sTemp =="Mar") {iMon=3;} else
- if (sTemp =="Apr") {iMon=4;} else
- if (sTemp =="May") {iMon=5;} else
- if (sTemp =="Jun") {iMon=6;} else
- if (sTemp =="Jul") {iMon=7;} else
- if (sTemp =="Aug") {iMon=8;} else
- if (sTemp =="Sep") {iMon=9;} else
- if (sTemp =="Oct") {iMon=10;} else
- if (sTemp =="Nov") {iMon=11;} else
- if (sTemp =="Dec") {iMon=12;}
-
- // Get year as YYYY or YY
- iYear = (*iter++).toInt();
-
- QDate date = QDate(iYear, iMon, iDay);
-
- // Convert timestring into a QTime
- QStringList timeEntries = QStringList::split(":",(*iter++),FALSE);
- QStringList::Iterator iterTime = timeEntries.begin();
- iYear=(*iterTime++).toInt(); // var reuse.. *cough*
- iMon=(*iterTime++).toInt();
- iDay=(*iterTime++).toInt();
- QTime time = QTime(iYear,iMon,iDay);
-
- return QString::number(date.year())+"-"
- +QString::number(date.month()).rightJustify(2,'0')+"-"
- +QString::number(date.day()).rightJustify(2,'0')+" "
- +time.toString();
-}
-
-
diff --git a/noncore/net/mailit/emaillistitem.h b/noncore/net/mailit/emaillistitem.h
deleted file mode 100644
index 129a774..0000000
--- a/noncore/net/mailit/emaillistitem.h
+++ b/dev/null
@@ -1,45 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef EMAILLISTITEM_H
-#define EMAILLISTITEM_H
-
-#include <qlistview.h>
-#include "emailhandler.h"
-
-class EmailListItem: public QListViewItem
-{
-public:
- EmailListItem(QListView *parent, Email mailIn, bool inbox);
- Email* getMail();
- void setMail(Email newMail);
- void setItemSelected(bool enable);
- bool isItemSelected();
- bool itemSelected();
-
-protected:
- void paintCell( QPainter *p, const QColorGroup &cg,
- int column, int width, int alignment );
-private:
- Email mail;
- bool selected;
- QString dateFromULCString( QString ulc );
-};
-
-#endif
diff --git a/noncore/net/mailit/mailit.pro b/noncore/net/mailit/mailit.pro
deleted file mode 100644
index bdb89be..0000000
--- a/noncore/net/mailit/mailit.pro
+++ b/dev/null
@@ -1,40 +0,0 @@
-TARGET = mailit
-CONFIG = qt warn_on release quick-app
-HEADERS = emailclient.h \
- emailhandler.h \
- emaillistitem.h \
- mailitwindow.h \
- md5.h \
- popclient.h \
- readmail.h \
- smtpclient.h \
- writemail.h \
- textparser.h \
- viewatt.h \
- addatt.h \
- editaccount.h \
- maillist.h \
- addresslist.h
-SOURCES = emailclient.cpp \
- emailhandler.cpp \
- emaillistitem.cpp \
- mailitwindow.cpp \
- main.cpp \
- md5.c \
- popclient.cpp \
- readmail.cpp \
- smtpclient.cpp \
- writemail.cpp \
- textparser.cpp \
- viewatt.cpp \
- addatt.cpp \
- editaccount.cpp \
- maillist.cpp \
- addresslist.cpp
-
-INCLUDEPATH += $(OPIEDIR)/include
-DEPENDPATH += $(OPIEDIR)/include
-LIBS += -lqpe -lopie
-# -lssl
-
-include ( $(OPIEDIR)/include.pro )
diff --git a/noncore/net/mailit/mailitwindow.cpp b/noncore/net/mailit/mailitwindow.cpp
deleted file mode 100644
index 6e298c7..0000000
--- a/noncore/net/mailit/mailitwindow.cpp
+++ b/dev/null
@@ -1,168 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include <qwhatsthis.h>
-#include <qmessagebox.h>
-#include "mailitwindow.h"
-
-MailItWindow::MailItWindow(QWidget *parent, const char *name, WFlags /*fl*/)
- : QMainWindow(parent, name, WStyle_ContextHelp)
-{
- currentCaption = tr("Mailit");
- setCaption(tr(currentCaption));
- views = new QWidgetStack(this);
- setCentralWidget(views);
- QWhatsThis::add(views,tr("Central view area"));
- emailClient = new EmailClient(views, "client");
- writeMail = new WriteMail(views, "writing");
- readMail = new ReadMail(views, "reading");
-
- views->raiseWidget(emailClient);
-
- connect(emailClient, SIGNAL(composeRequested()),
- this, SLOT(compose()) );
- connect(emailClient, SIGNAL(viewEmail(QListView *, Email *)), this,
- SLOT(viewMail(QListView *, Email *)) );
- connect(emailClient, SIGNAL(mailUpdated(Email *)), this,
- SLOT(updateMailView(Email *)) );
-
- connect(writeMail, SIGNAL(cancelMail()), this, SLOT(showEmailClient()) );
- connect(writeMail, SIGNAL(sendMailRequested(const Email &)), this,
- SLOT(showEmailClient()) );
- connect(writeMail, SIGNAL(sendMailRequested(const Email &)), emailClient,
- SLOT(enqueMail(const Email &)) );
-
- connect(readMail, SIGNAL(cancelView()), this, SLOT(showEmailClient()) );
- connect(readMail, SIGNAL(replyRequested(Email &, bool&)), this,
- SLOT(composeReply(Email &, bool&)) );
- connect(readMail, SIGNAL(forwardRequested(Email &)), this,
- SLOT(composeForward(Email &)) );
-
- connect(readMail, SIGNAL(removeItem(EmailListItem *, bool &)), emailClient,
- SLOT(deleteMail(EmailListItem *, bool &)) );
- connect(readMail, SIGNAL(viewingMail(Email *)), emailClient,
- SLOT(moveMailFront(Email *)) );
-
- connect(emailClient, SIGNAL(newCaption(const QString &)),
- this, SLOT(updateCaption(const QString &)) );
-
- connect(readMail, SIGNAL(download(Email *)), emailClient, SLOT(download(Email*)) );
-
- viewingMail = FALSE;
-}
-
-MailItWindow::~MailItWindow()
-{
-}
-
-void MailItWindow::closeEvent(QCloseEvent *e)
-{
- if (views->visibleWidget() == emailClient) {
- e->accept();
- } else {
- showEmailClient();
- }
-}
-
-void MailItWindow::compose()
-{
- viewingMail = FALSE;
- emailClient->hide();
- readMail->hide();
- views->raiseWidget(writeMail);
- writeMail->setAddressList(emailClient->getAdrListRef());
- writeMail->newMail();
- setCaption( tr( "Write mail" ) );
-}
-
-void MailItWindow::composeReply(Email &mail, bool& replyAll)
-{
- compose();
- writeMail->reply(mail,replyAll) ;
-}
-
-void MailItWindow::composeForward(Email &mail)
-{
- compose();
- writeMail->forward(mail) ;
-}
-
-
-void MailItWindow::showEmailClient()
-{
- viewingMail = FALSE;
- writeMail->hide();
- readMail->hide();
- views->raiseWidget(emailClient);
- setCaption( tr(currentCaption) );
-}
-
-void MailItWindow::viewMail(QListView *view, Email *mail)
-{
- viewingMail = TRUE;
- emailClient->hide();
-
- int result=0;
-
- if ((mail->received)&&(!mail->downloaded))
- {
- QMessageBox mb( tr("Mail not downloaded"),
- tr("The mail you have clicked \n"
- "has not been downloaded yet.\n "
- "Would you like to do it now ?"),
- QMessageBox::Information,
- QMessageBox::Yes | QMessageBox::Default,
- QMessageBox::No | QMessageBox::Escape,0 );
-
- result=mb.exec();
-
- if (result==QMessageBox::Yes)
- {
- emailClient->download(mail);
- }
- }
-
- readMail->update(view, mail);
- views->raiseWidget(readMail);
- setCaption( tr( "Read Mail" ) );
-}
-
-void MailItWindow::updateMailView(Email *mail)
-{
- if (viewingMail) {
- readMail->mailUpdated(mail);
- }
-}
-
-void MailItWindow::updateCaption(const QString &newCaption)
-{
- currentCaption = newCaption;
- setCaption(tr(currentCaption));
-}
-
-void MailItWindow::setDocument(const QString &_address)
-{
- // strip leading 'mailto:'
- QString address = _address;
- if (address.startsWith("mailto:"))
- address = address.mid(6);
-
- compose();
- writeMail->setRecipient(address);
-}
diff --git a/noncore/net/mailit/mailitwindow.h b/noncore/net/mailit/mailitwindow.h
deleted file mode 100644
index 11e56b9..0000000
--- a/noncore/net/mailit/mailitwindow.h
+++ b/dev/null
@@ -1,65 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef MailItWindow_H
-#define MailItWindow_H
-
-#include <qmainwindow.h>
-#include <qwidgetstack.h>
-#include <qevent.h>
-//#include <qlayout.h>
-#include "emailclient.h"
-#include "writemail.h"
-#include "readmail.h"
-#include "addresslist.h"
-
-class MailItWindow: public QMainWindow
-{
- Q_OBJECT
-public:
- static QString appName() { return QString::fromLatin1("mailit"); }
- MailItWindow(QWidget *parent = 0, const char *name = 0, WFlags fl = 0);
- ~MailItWindow();
-
-signals:
-public slots:
- void compose();
- void composeReply(Email &, bool&);
- void composeForward(Email &);
- void showEmailClient();
- void viewMail(QListView *, Email *mail);
- void updateMailView(Email *mail);
- void closeEvent(QCloseEvent *e);
- void updateCaption(const QString &);
- void setDocument(const QString &);
- /*void reply(Email&);
- void replyAll(Email&);
- void forward(Email&);
- void remove(Email&);*/
-
-private:
- EmailClient *emailClient;
- WriteMail *writeMail;
- ReadMail *readMail;
- QWidgetStack *views;
- QString currentCaption;
- bool viewingMail;
-};
-
-#endif
diff --git a/noncore/net/mailit/maillist.cpp b/noncore/net/mailit/maillist.cpp
deleted file mode 100644
index 8c34295..0000000
--- a/noncore/net/mailit/maillist.cpp
+++ b/dev/null
@@ -1,131 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include "maillist.h"
-
-void MailList::clear()
-{
- sortedList.setAutoDelete(TRUE);
- sortedList.clear();
- currentPos = 0;
-}
-
-int MailList::count()
-{
- return sortedList.count();
-}
-
-int* MailList::first()
-{
- dList *mPtr;
-
- if (sortedList.count() == 0)
- return NULL;
-
- mPtr = sortedList.at(0);
- currentPos = 1;
- return &(mPtr->serverId);
-}
-
-int* MailList::next()
-{
- dList *mPtr;
-
- if ( (currentPos) >= sortedList.count())
- return NULL;
-
- mPtr = sortedList.at(currentPos);
- currentPos++;
- return &(mPtr->serverId);
-}
-
-void MailList::sizeInsert(int serverId, uint size)
-{
- dList *tempPtr;
- int x;
-
- dList *newEntry = new dList;
- newEntry->serverId = serverId;
- newEntry->size = size;
-
- for (tempPtr = sortedList.first(); tempPtr != NULL; tempPtr = sortedList.next() ) {
- if (newEntry->size < tempPtr->size) {
- x = sortedList.at();
- sortedList.insert(x, newEntry);
- return;
- }
- }
- sortedList.append(newEntry);
-}
-
-void MailList::moveFront(int serverId, uint/* size*/)
-{
- dList *currentPtr;
- uint tempPos;
- QString temp;
-
- tempPos = currentPos;
- if ( tempPos >= sortedList.count() )
- return;
- currentPtr = sortedList.at(tempPos);
- while ( ((tempPos+1) < sortedList.count()) && ( currentPtr->serverId != serverId) ) {
- tempPos++;
- currentPtr = sortedList.at(tempPos);
- }
-
- if ( (currentPtr != NULL) && (currentPtr->serverId == serverId) ) {
- temp.setNum(currentPtr->serverId);
- qWarning("moved to front, message: " + temp);
-
- dList *itemPtr = sortedList.take(tempPos);
- sortedList.insert(currentPos, itemPtr);
- }
-
-}
-
-//only works if mail is not already in download
-bool MailList::remove(int serverId, uint /*size*/)
-{
- dList *currentPtr;
- uint tempPos;
- QString temp;
-
- tempPos = currentPos;
- if ( tempPos >=sortedList.count() )
- return FALSE;
- currentPtr = sortedList.at(tempPos);
- while ( ((tempPos + 1) < sortedList.count()) && ( currentPtr->serverId != serverId) ) {
- tempPos++;
- currentPtr = sortedList.at(tempPos);
- }
-
- if ( (currentPtr != NULL) && (currentPtr->serverId == serverId) ) {
- temp.setNum(currentPtr->serverId);
- qWarning("deleted message: " + temp);
- sortedList.remove(tempPos);
-
- return TRUE;
- }
- return FALSE;
-}
-
-void MailList::insert(int /*pos*/, int /*serverId*/, uint/* size*/)
-{
-// sortedList.insert(pos, mPtr);
-}
diff --git a/noncore/net/mailit/maillist.h b/noncore/net/mailit/maillist.h
deleted file mode 100644
index ec996df..0000000
--- a/noncore/net/mailit/maillist.h
+++ b/dev/null
@@ -1,50 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef MAILLIST_H
-#define MAILLIST_H
-
-#include <qobject.h>
-#include <qlist.h>
-
-struct dList{
- int serverId;
- uint size;
-};
-
-class MailList : public QObject
-{
- Q_OBJECT
-
-public:
- void clear();
- int count();
- int* first();
- int* next();
- void sizeInsert(int serverId, uint size);
- void moveFront(int serverId, uint size);
- bool remove(int serverId, uint size);
- void insert(int pos, int serverId, uint size);
-
-private:
- QList<dList> sortedList;
- uint currentPos;
-};
-
-#endif
diff --git a/noncore/net/mailit/main.cpp b/noncore/net/mailit/main.cpp
deleted file mode 100644
index 71f8877..0000000
--- a/noncore/net/mailit/main.cpp
+++ b/dev/null
@@ -1,25 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include <qpe/qpeapplication.h>
-#include "mailitwindow.h"
-
-#include <opie/oapplicationfactory.h>
-
-OPIE_EXPORT_APP( OApplicationFactory<MailItWindow> ) \ No newline at end of file
diff --git a/noncore/net/mailit/md5.c b/noncore/net/mailit/md5.c
deleted file mode 100644
index 611f151..0000000
--- a/noncore/net/mailit/md5.c
+++ b/dev/null
@@ -1,251 +0,0 @@
-/*
- * This code implements the MD5 message-digest algorithm.
- * The algorithm is due to Ron Rivest. This code was
- * written by Colin Plumb in 1993, no copyright is claimed.
- * This code is in the public domain; do with it what you wish.
- *
- * Equivalent code is available from RSA Data Security, Inc.
- * This code has been tested against that, and is equivalent,
- * except that you don't need to include two pages of legalese
- * with every copy.
- *
- * To compute the message digest of a chunk of bytes, declare an
- * MD5Context structure, pass it to MD5Init, call MD5Update as
- * needed on buffers full of bytes, and then call MD5Final, which
- * will fill a supplied 16-byte array with the digest.
- *
- * Changed so as no longer to depend on Colin Plumb's `usual.h' header
- * definitions; now uses stuff from dpkg's config.h.
- * - Ian Jackson <ijackson@nyx.cs.du.edu>.
- * Still in the public domain.
- *
- * md5_buffer added by Steven Fuller
- * Still in the public domain.
- */
-
-#include <string.h> /* for memcpy() */
-
-#include "md5.h"
-
-#ifdef WORDS_BIGENDIAN
-void
-byteSwap(UWORD32 *buf, unsigned words)
-{
- md5byte *p = (md5byte *)buf;
-
- do {
- *buf++ = (UWORD32)((unsigned)p[3] << 8 | p[2]) << 16 |
- ((unsigned)p[1] << 8 | p[0]);
- p += 4;
- } while (--words);
-}
-#else
-#define byteSwap(buf,words)
-#endif
-
-/* md5_buffer frontend added for AvP */
-void md5_buffer(char const *buffer, unsigned int len, char *digest)
-{
- struct MD5Context md5c;
-
- MD5Init(&md5c);
- MD5Update(&md5c, (md5byte const *)buffer, len);
- MD5Final((md5byte *)digest, &md5c);
-}
-
-/*
- * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious
- * initialization constants.
- */
-void
-MD5Init(struct MD5Context *ctx)
-{
- ctx->buf[0] = 0x67452301;
- ctx->buf[1] = 0xefcdab89;
- ctx->buf[2] = 0x98badcfe;
- ctx->buf[3] = 0x10325476;
-
- ctx->bytes[0] = 0;
- ctx->bytes[1] = 0;
-}
-
-/*
- * Update context to reflect the concatenation of another buffer full
- * of bytes.
- */
-void
-MD5Update(struct MD5Context *ctx, md5byte const *buf, unsigned len)
-{
- UWORD32 t;
-
- /* Update byte count */
-
- t = ctx->bytes[0];
- if ((ctx->bytes[0] = t + len) < t)
- ctx->bytes[1]++; /* Carry from low to high */
-
- t = 64 - (t & 0x3f); /* Space available in ctx->in (at least 1) */
- if (t > len) {
- memcpy((md5byte *)ctx->in + 64 - t, buf, len);
- return;
- }
- /* First chunk is an odd size */
- memcpy((md5byte *)ctx->in + 64 - t, buf, t);
- byteSwap(ctx->in, 16);
- MD5Transform(ctx->buf, ctx->in);
- buf += t;
- len -= t;
-
- /* Process data in 64-byte chunks */
- while (len >= 64) {
- memcpy(ctx->in, buf, 64);
- byteSwap(ctx->in, 16);
- MD5Transform(ctx->buf, ctx->in);
- buf += 64;
- len -= 64;
- }
-
- /* Handle any remaining bytes of data. */
- memcpy(ctx->in, buf, len);
-}
-
-/*
- * Final wrapup - pad to 64-byte boundary with the bit pattern
- * 1 0* (64-bit count of bits processed, MSB-first)
- */
-void
-MD5Final(md5byte digest[16], struct MD5Context *ctx)
-{
- int count = ctx->bytes[0] & 0x3f; /* Number of bytes in ctx->in */
- md5byte *p = (md5byte *)ctx->in + count;
-
- /* Set the first char of padding to 0x80. There is always room. */
- *p++ = 0x80;
-
- /* Bytes of padding needed to make 56 bytes (-8..55) */
- count = 56 - 1 - count;
-
- if (count < 0) { /* Padding forces an extra block */
- memset(p, 0, count + 8);
- byteSwap(ctx->in, 16);
- MD5Transform(ctx->buf, ctx->in);
- p = (md5byte *)ctx->in;
- count = 56;
- }
- memset(p, 0, count);
- byteSwap(ctx->in, 14);
-
- /* Append length in bits and transform */
- ctx->in[14] = ctx->bytes[0] << 3;
- ctx->in[15] = ctx->bytes[1] << 3 | ctx->bytes[0] >> 29;
- MD5Transform(ctx->buf, ctx->in);
-
- byteSwap(ctx->buf, 4);
- memcpy(digest, ctx->buf, 16);
- memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
-}
-
-#ifndef ASM_MD5
-
-/* The four core functions - F1 is optimized somewhat */
-
-/* #define F1(x, y, z) (x & y | ~x & z) */
-#define F1(x, y, z) (z ^ (x & (y ^ z)))
-#define F2(x, y, z) F1(z, x, y)
-#define F3(x, y, z) (x ^ y ^ z)
-#define F4(x, y, z) (y ^ (x | ~z))
-
-/* This is the central step in the MD5 algorithm. */
-#define MD5STEP(f,w,x,y,z,in,s) \
- (w += f(x,y,z) + in, w = (w<<s | w>>(32-s)) + x)
-
-/*
- * The core of the MD5 algorithm, this alters an existing MD5 hash to
- * reflect the addition of 16 longwords of new data. MD5Update blocks
- * the data and converts bytes into longwords for this routine.
- */
-void
-MD5Transform(UWORD32 buf[4], UWORD32 const in[16])
-{
- register UWORD32 a, b, c, d;
-
- a = buf[0];
- b = buf[1];
- c = buf[2];
- d = buf[3];
-
- MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
- MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
- MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
- MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
- MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
- MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
- MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
- MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
- MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
- MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
- MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
- MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
- MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
- MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
- MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
- MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
-
- MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
- MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
- MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
- MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
- MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
- MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
- MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
- MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
- MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
- MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
- MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
- MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
- MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
- MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
- MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
- MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
-
- MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
- MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
- MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
- MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
- MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
- MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
- MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
- MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
- MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
- MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
- MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
- MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
- MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
- MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
- MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
- MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
-
- MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
- MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
- MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
- MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
- MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
- MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
- MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
- MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
- MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
- MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
- MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
- MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
- MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
- MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
- MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
- MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
-
- buf[0] += a;
- buf[1] += b;
- buf[2] += c;
- buf[3] += d;
-}
-
-#endif
diff --git a/noncore/net/mailit/md5.h b/noncore/net/mailit/md5.h
deleted file mode 100644
index 7e22494..0000000
--- a/noncore/net/mailit/md5.h
+++ b/dev/null
@@ -1,55 +0,0 @@
-/*
- * This is the header file for the MD5 message-digest algorithm.
- * The algorithm is due to Ron Rivest. This code was
- * written by Colin Plumb in 1993, no copyright is claimed.
- * This code is in the public domain; do with it what you wish.
- *
- * Equivalent code is available from RSA Data Security, Inc.
- * This code has been tested against that, and is equivalent,
- * except that you don't need to include two pages of legalese
- * with every copy.
- *
- * To compute the message digest of a chunk of bytes, declare an
- * MD5Context structure, pass it to MD5Init, call MD5Update as
- * needed on buffers full of bytes, and then call MD5Final, which
- * will fill a supplied 16-byte array with the digest.
- *
- * Changed so as no longer to depend on Colin Plumb's `usual.h'
- * header definitions; now uses stuff from dpkg's config.h
- * - Ian Jackson <ijackson@nyx.cs.du.edu>.
- * Still in the public domain.
- *
- * md5_buffer added by Steven Fuller
- * Still in the public domain.
- */
-
-#ifndef MD5_H
-#define MD5_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef unsigned int UWORD32;
-
-#define md5byte unsigned char
-
-struct MD5Context {
- UWORD32 buf[4];
- UWORD32 bytes[2];
- UWORD32 in[16];
-};
-
-void MD5Init(struct MD5Context *context);
-void MD5Update(struct MD5Context *context, md5byte const *buf, unsigned len);
-void MD5Final(unsigned char digest[16], struct MD5Context *context);
-void MD5Transform(UWORD32 buf[4], UWORD32 const in[16]);
-
-/* md5_buffer frontend added for AvP */
-void md5_buffer(char const *buffer, unsigned int len, char *digest);
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif /* !MD5_H */
diff --git a/noncore/net/mailit/opie-mailit.control b/noncore/net/mailit/opie-mailit.control
deleted file mode 100644
index 3789016..0000000
--- a/noncore/net/mailit/opie-mailit.control
+++ b/dev/null
@@ -1,9 +0,0 @@
-Package: opie-mailit
-Files: plugins/application/libmailit.so* bin/mailit apps/1Pim/mailit.desktop pics/mailit
-Priority: optional
-Section: opie/pim
-Maintainer: L.J. Potter <llornkcor@handhelds.org>
-Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
-Description: EMail
- A simple POP3 email client for the Opie environment.
diff --git a/noncore/net/mailit/popclient.cpp b/noncore/net/mailit/popclient.cpp
deleted file mode 100644
index 1df6b2b..0000000
--- a/noncore/net/mailit/popclient.cpp
+++ b/dev/null
@@ -1,332 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include "popclient.h"
-#include "emailhandler.h"
-//#define APOP_TEST
-
-extern "C" {
-#include "md5.h"
-}
-
-#include <qcstring.h>
-
-PopClient::PopClient()
-{
-
- socket = new QSocket(this, "popClient");
- connect(socket, SIGNAL(error(int)), this, SLOT(errorHandling(int)));
- connect(socket, SIGNAL(connected()), this, SLOT(connectionEstablished()));
- connect(socket, SIGNAL(readyRead()), this, SLOT(incomingData()));
-
- stream = new QTextStream(socket);
-
- receiving = FALSE;
- synchronize = FALSE;
- lastSync = 0;
- headerLimit = 0;
- mailList = 0;
- preview = FALSE;
-}
-
-PopClient::~PopClient()
-{
- delete socket;
- delete stream;
-}
-
-void PopClient::newConnection(const QString &target, int port)
-{
- if (receiving) {
- qWarning("socket in use, connection refused");
- return;
- }
-
- status = Init;
-
- socket->connectToHost(target, port);
- receiving = TRUE;
- //selected = FALSE;
-
- emit updateStatus(tr("DNS lookup"));
-}
-
-void PopClient::setAccount(const QString &popUser, const QString &popPasswd)
-{
- popUserName = popUser;
- popPassword = popPasswd;
-}
-
-void PopClient::setSynchronize(int lastCount)
-{
- synchronize = TRUE;
- lastSync = lastCount;
-}
-
-void PopClient::removeSynchronize()
-{
- synchronize = FALSE;
- lastSync = 0;
-}
-
-void PopClient::headersOnly(bool headers, int limit)
-{
- preview = headers;
- headerLimit = limit;
-}
-
-void PopClient::setSelectedMails(MailList *list)
-{
- selected = TRUE;
- mailList = list;
-}
-
-void PopClient::connectionEstablished()
-{
- emit updateStatus(tr("Connection established"));
-}
-
-void PopClient::errorHandling(int status)
-{
- errorHandlingWithMsg( status, QString::null );
-}
-void PopClient::errorHandlingWithMsg(int status, const QString & Msg )
-{
- emit updateStatus(tr("Error Occured"));
- emit errorOccurred(status, Msg);
- socket->close();
- receiving = FALSE;
-}
-
-void PopClient::incomingData()
-{
- QString response, temp, temp2, timeStamp;
- QString md5Source;
- int start, end;
-// char *md5Digest;
- char md5Digest[16];
-// if ( !socket->canReadLine() )
-// return;
-
-
- response = socket->readLine();
-
- switch(status) {
- //logging in
- case Init: {
-#ifdef APOP_TEST
- start = response.find('<',0);
- end = response.find('>', start);
- if( start >= 0 && end > start )
- {
- timeStamp = response.mid( start , end - start + 1);
- md5Source = timeStamp + popPassword;
-
- md5_buffer( (char const *)md5Source, md5Source.length(),&md5Digest[0]);
-
- for(int j =0;j < MD5_DIGEST_LENGTH ;j++)
- {
- printf("%x", md5Digest[j]);
- }
- printf("\n");
-// qDebug(md5Digest);
- *stream << "APOP " << popUserName << " " << md5Digest << "\r\n";
- // qDebug("%s", stream);
- status = Stat;
- }
- else
-#endif
- {
- timeStamp = "";
- *stream << "USER " << popUserName << "\r\n";
- status = Pass;
- }
-
- break;
- }
-
- case Pass: {
- *stream << "PASS " << popPassword << "\r\n";
- status = Stat;
-
- break;
- }
- //ask for number of messages
- case Stat: {
- if (response[0] == '+') {
- *stream << "STAT" << "\r\n";
- status = Mcnt;
- } else errorHandlingWithMsg(ErrLoginFailed, response);
- break;
- }
- //get count of messages, eg "+OK 4 900.." -> int 4
- case Mcnt: {
- if (response[0] == '+') {
- temp = response.replace(0, 4, "");
- int x = temp.find(" ", 0);
- temp.truncate((uint) x);
- newMessages = temp.toInt();
- messageCount = 1;
- status = List;
-
- if (synchronize) {
- //messages deleted from server, reload all
- if (newMessages < lastSync)
- lastSync = 0;
- messageCount = 1;
- }
-
- if (selected && mailList ) {
- int *ptr = mailList->first();
- if (ptr != 0) {
- newMessages++; //to ensure no early jumpout
- messageCount = *ptr;
- } else newMessages = 0;
- }
-
- } else errorHandlingWithMsg(ErrUnknownResponse, response);
- }
- //Read message number x, count upwards to messageCount
- case List: {
- if (messageCount <= newMessages) {
- *stream << "LIST " << messageCount << "\r\n";
- status = Size;
- temp2.setNum(newMessages - lastSync);
- temp.setNum(messageCount - lastSync);
- if (!selected) {
- emit updateStatus(tr("Retrieving ") + temp + "/" + temp2);
- } else {
- //completing a previously closed transfer
- /* if ( (messageCount - lastSync) <= 0) {
- temp.setNum(messageCount);
- emit updateStatus(tr("Previous message ") + temp);
- } else {*/
- emit updateStatus(tr("Completing message ") + temp);
- //}
- }
- break;
- } else {
- emit updateStatus(tr("No new Messages"));
- status = Quit;
- }
- }
- //get size of message, eg "500 characters in message.." -> int 500
- case Size: {
- if (status != Quit) { //because of idiotic switch
- if (response[0] == '+') {
- temp = response.replace(0, 4, "");
- int x = temp.find(" ", 0);
- temp = temp.right(temp.length() - ((uint) x + 1) );
- mailSize = temp.toInt();
- emit currentMailSize(mailSize);
-
- status = Retr;
- } else {
- //qWarning(response);
- errorHandlingWithMsg(ErrUnknownResponse, response);
- }
- }
- }
- //Read message number x, count upwards to messageCount
- case Retr: {
- if (status != Quit) {
- if ((selected)||(mailSize <= headerLimit))
- {
- *stream << "RETR " << messageCount << "\r\n";
- } else { //only header
- *stream << "TOP " << messageCount << " 0\r\n";
- }
- messageCount++;
- status = Ignore;
- break;
- } }
- case Ignore: {
- if (status != Quit) { //because of idiotic switch
- if (response[0] == '+') {
- message = "";
- status = Read;
- if (!socket->canReadLine()) //sync. problems
- break;
- response = socket->readLine();
- } else errorHandlingWithMsg(ErrUnknownResponse, response);
- }
- }
- //add all incoming lines to body. When size is reached, send
- //message, and go back to read new message
- case Read: {
- if (status != Quit) { //because of idiotic switch
- message += response;
- while ( socket->canReadLine() ) {
- response = socket->readLine();
- message += response;
- }
- emit downloadedSize(message.length());
- int x = message.find("\r\n.\r\n",-5);
- if (x == -1) {
- break;
- } else { //message reach entire size
- if ( (selected)||(mailSize <= headerLimit)) //mail size limit is not used if late download is active
- {
- emit newMessage(message, messageCount-1, mailSize, TRUE);
- } else { //incomplete mail downloaded
- emit newMessage(message, messageCount-1, mailSize, FALSE);
- }
-
- if ((messageCount > newMessages)||(selected)) //last message ?
- {
- status = Quit;
- if (selected) { //grab next from queue
- newMessages--;
- status = Quit;
- }
- }
- else
- {
- *stream << "LIST " << messageCount << "\r\n";
- status = Size;
- temp2.setNum(newMessages - lastSync);
- temp.setNum(messageCount - lastSync);
- emit updateStatus(tr("Retrieving ") + temp + "/" + temp2);
-
- break;
- }
- }
- }
- if (status != Quit)
- break;
- }
- case Quit: {
- *stream << "Quit\r\n";
- status = Done;
- int newM = newMessages - lastSync;
- if (newM > 0) {
- temp.setNum(newM);
- emit updateStatus(temp + tr(" new messages"));
- } else {
- emit updateStatus(tr("No new messages"));
- }
-
- socket->close();
- receiving = FALSE;
- emit mailTransfered(newM);
- break;
- }
- }
-
-}
diff --git a/noncore/net/mailit/popclient.h b/noncore/net/mailit/popclient.h
deleted file mode 100644
index 6774ceb..0000000
--- a/noncore/net/mailit/popclient.h
+++ b/dev/null
@@ -1,77 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef PopClient_H
-#define PopClient_H
-
-#include <stdio.h>
-#include <qsocket.h>
-#include <qstring.h>
-#include <qobject.h>
-#include <qtextstream.h>
-#include <qlist.h>
-#include "maillist.h"
-
-class PopClient: public QObject
-{
- Q_OBJECT
-
-public:
- PopClient();
- ~PopClient();
- void newConnection(const QString &target, int port);
- void setAccount(const QString &popUser, const QString &popPasswd);
- void setSynchronize(int lastCount);
- void removeSynchronize();
- void headersOnly(bool headers, int limit);
- void setSelectedMails(MailList *list);
-
-signals:
- void newMessage(const QString &, int, uint, bool);
- void errorOccurred(int status, const QString & Msg );
- void updateStatus(const QString &);
- void mailTransfered(int);
- void mailboxSize(int);
- void currentMailSize(int);
- void downloadedSize(int);
-
-public slots:
- void errorHandling(int);
- void errorHandlingWithMsg(int, const QString & );
-
-protected slots:
- void connectionEstablished();
- void incomingData();
-
-private:
- QSocket *socket;
- QTextStream *stream;
- enum transferStatus
- {
- Init, Pass, Stat, Mcnt, Read, List, Size, Retr, Acks,
- Quit, Done, Ignore
- };
- int status, lastSync;
- int messageCount, newMessages, mailSize, headerLimit;
- bool receiving, synchronize, preview, selected;
- QString popUserName, popPassword, message;
- MailList *mailList;
-};
-
-#endif
diff --git a/noncore/net/mailit/readmail.cpp b/noncore/net/mailit/readmail.cpp
deleted file mode 100644
index 1682675..0000000
--- a/noncore/net/mailit/readmail.cpp
+++ b/dev/null
@@ -1,399 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include "readmail.h"
-#include <qimage.h>
-#include <qwhatsthis.h>
-#include <qmime.h>
-#include <qaction.h>
-#include <qpopupmenu.h>
-#include <qpe/resource.h>
-
-ReadMail::ReadMail( QWidget* parent, const char* name, WFlags fl )
- : QMainWindow(parent, name, fl)
-{
- plainTxt = FALSE;
-
- init();
- viewAtt = new ViewAtt(0, "View Attatchments");
-}
-
-ReadMail::~ReadMail()
-{
- delete emailView->mimeSourceFactory();
- delete viewAtt;
-}
-
-void ReadMail::init()
-{
- setToolBarsMovable(FALSE);
-
- QPopupMenu* mailaction=new QPopupMenu(this);
-
- bar = new QToolBar(this);
- bar->setHorizontalStretchable( TRUE );
-
- menu = new QMenuBar( bar );
-
- viewMenu = new QPopupMenu(menu);
- menu->insertItem( tr( "&View" ), viewMenu);
-
- mailMenu = new QPopupMenu(menu);
- menu->insertItem( tr( "&Mail" ), mailMenu);
-
- bar = new QToolBar(this);
-
- downloadButton = new QAction( tr( "Download" ), Resource::loadPixmap( "mailit/download" ),QString::null, 0, this, 0 );
- connect(downloadButton, SIGNAL(activated()), this, SLOT(download()) );
- downloadButton->setWhatsThis(tr("Click here to download the selected mail"));
-
-
- previousButton = new QAction( tr( "Previous" ), Resource::loadPixmap( "back" ), QString::null, 0, this, 0 );
- connect( previousButton, SIGNAL( activated() ), this, SLOT( previous() ) );
- previousButton->addTo(bar);
- previousButton->addTo(viewMenu);
- previousButton->setWhatsThis(tr("Read the previous mail in the list"));
-
- nextButton = new QAction( tr( "Next" ), Resource::loadPixmap( "forward" ), QString::null, 0, this, 0 );
- connect( nextButton, SIGNAL( activated() ), this, SLOT( next() ) );
- nextButton->addTo(bar);
- nextButton->addTo(viewMenu);
- previousButton->setWhatsThis(tr("Read the next mail in the list"));
-
- attachmentButton = new QAction( tr( "Attatchments" ), Resource::loadPixmap( "mailit/attach" ), QString::null, 0, this, 0 );
- connect( attachmentButton, SIGNAL( activated() ), this,
- SLOT( viewAttachments() ) );
- attachmentButton->addTo(bar);
- attachmentButton->addTo(viewMenu);
- attachmentButton->setWhatsThis(tr("Click here to add attachments to your mail"));
-
- plainTextButton = new QAction( tr( "Text Format" ), Resource::loadPixmap( "DocsIcon" ), QString::null, 0, this, 0, TRUE);
- connect( plainTextButton, SIGNAL( activated() ), this, SLOT( shiftText() ) );
- plainTextButton->addTo(bar);
- plainTextButton->addTo(viewMenu);
- plainTextButton->setWhatsThis(tr("The mail view has 2 modes:\n"
- "<LI><B>RichText</B> shows the mail as HTML with reach features (no standard line breaks)</LI>"
- "<LI><B>Plain</B> shows the mail as standard plain text</LI>"
- "Click here to switch between those view modes" ));
-
- //reply dependant on viewing inbox
- replyButton = new QToolButton(Resource::loadPixmap("mailit/reply"),tr("reply"),tr("reply to mail"), this,SLOT(reply()),bar);
- QWhatsThis::add(replyButton,tr("Click here to reply to the selected mail\nPress and hold for more options."));
- replyButton->setPopup(mailaction);
-
- replyAllButton = new QAction( tr( "Reply all" ), Resource::loadPixmap( "mailit/reply" ),QString::null, 0, this, 0 );
- connect(replyAllButton, SIGNAL(activated()), this, SLOT(replyAll()));
- replyAllButton->setWhatsThis(tr("Click here to reply to the selected mail to CC: addresses also"));
- replyAllButton->addTo(mailaction);
-
- forwardButton = new QAction( tr( "Forward" ), Resource::loadPixmap( "mailit/forward" ),
- QString::null, 0, this, 0 );
- connect(forwardButton, SIGNAL(activated()), this, SLOT(forward()));
- forwardButton->setWhatsThis(tr("Click here to forward the selected mail"));
- forwardButton->addTo(mailaction);
-
-
- deleteButton = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null, 0, this, 0 );
- connect( deleteButton, SIGNAL( activated() ), this, SLOT( deleteItem() ) );
- deleteButton->addTo(bar);
- deleteButton->addTo(mailMenu);
- deleteButton->setWhatsThis(tr("Click here to remove the selected mail"));
-
- viewMenu->insertItem(Resource::loadPixmap("close"), "Close", this, SLOT(close()));
-
- emailView = new QTextView( this, "emailView" );
-
- setCentralWidget(emailView);
-
- mime = new QMimeSourceFactory();
- emailView->setMimeSourceFactory(mime);
-}
-
-void ReadMail::updateView()
-{
- Enclosure *ePtr;
- QString mailStringSize;
- QString text, temp;
-
- mail->read = TRUE; //mark as read
- inbox = mail->received;
-
- replyButton->setEnabled(false);
- /*replyButton->removeFrom(bar);
- forwardButton->removeFrom(mailMenu);
- forwardButton->removeFrom(bar);*/
- downloadButton->removeFrom(bar);
-
- //downloadButton->setEnabled(!mail->downloaded);
-
-
- if (inbox == TRUE) {
- replyButton->setEnabled(true);
- /*replyButton->addTo(mailMenu);
- forwardButton->addTo(bar);
- forwardButton->addTo(mailMenu);*/
-
-
- if (!mail->downloaded) {
-
- downloadButton->addTo(bar);
-
- //report currently viewed mail so that it will be
- //placed first in the queue of new mails to download
- emit viewingMail(mail);
-
- double mailSize = (double) mail->size;
- if (mailSize < 1024) {
- mailStringSize.setNum(mailSize);
- mailStringSize += " Bytes";
- } else if (mailSize < 1024*1024) {
- mailStringSize.setNum( (mailSize / 1024), 'g', 2 );
- mailStringSize += " Kb";
- } else {
- mailStringSize.setNum( (mailSize / (1024*1024)), 'g', 3);
- mailStringSize += " Mb";
- }
- }
- }
-
- QMimeSourceFactory *mime = emailView->mimeSourceFactory();
-
- if (! plainTxt) { //use RichText, inline pics etc.
- emailView->setTextFormat(QTextView::RichText);
- text = "<b><big><center><font color=\"blue\">" + mail->subject
- +"</font></center></big></b><br>";
- text += "<b>From: </b>" + mail->from + " <i>" +
- mail->fromMail + "</i><br>";
-
- text +="<b>To: </b>";
- for (QStringList::Iterator it = mail->recipients.begin();
- it != mail->recipients.end(); ++it ) {
- text += *it + " ";
- }
-
- text +="<br><b>CC: </b>";
- for (QStringList::Iterator it = mail->carbonCopies.begin();
- it != mail->carbonCopies.end(); ++it ) {
- text += *it + " ";
- }
-
- text += "<br>" + mail->date;
-
- if (mail->files.count() > 0) {
- text += "<br><b>Attatchments: </b>";
-
- for ( ePtr=mail->files.first(); ePtr != 0; ePtr=mail->files.next() ) {
- text += ePtr->originalName + " ";
- }
- text += "<hr><br>" + mail->body;
-
- if (inbox) {
- for ( ePtr=mail->files.first(); ePtr != 0; ePtr=mail->files.next() ) {
-
- text += "<br><hr><b>Attatchment: </b>" +
- ePtr->originalName + "<hr>";
-
- if (ePtr->contentType == "TEXT") {
- QFile f(ePtr->path + ePtr->name);
-
- if (f.open(IO_ReadOnly) ) {
- QTextStream t(&f);
- temp = t.read();
- text += temp + "<br>";
- f.close();
- } else {
- text += "<b>Could not locate file</b><br>";
- }
-
- }
- if (ePtr->contentType == "IMAGE") {
-// temp.setNum(emailView->width()); //get display width
-// text += "<img width=" + temp +" src =""" +
-// ePtr->originalName + """> </img>";
- text += "<img src =""" +
- ePtr->originalName + """> </img>";
- mime->setPixmap(ePtr->originalName, QPixmap( (ePtr->path + ePtr->name) ));
- }
- }
- }
- } else {
- if (mail->downloaded || !inbox) {
- text += "<hr><br>" + mail->body;
- } else {
- text += "<hr><br><b> Awaiting download </b><br>";
- text += "Size of mail: " + mailStringSize;
- }
- }
- emailView->setText(text);
- } else { // show plain txt mail
- emailView->setTextFormat(QTextView::PlainText);
- text = "Subject: " + mail->subject + "\n";
- text += "From: " + mail->from + " " + mail->fromMail + "\n";
- text += "To: ";
- for (QStringList::Iterator it = mail->recipients.begin();
- it != mail->recipients.end(); ++it ) {
- text += *it + " ";
- }
-
- text += "\nCC: ";
- for (QStringList::Iterator it = mail->carbonCopies.begin();
- it != mail->carbonCopies.end(); ++it ) {
- text += *it + " ";
- }
-
-
- text += "\nDate: " + mail->date + "\n";
- if (mail->files.count() > 0) {
- text += "Attatchments: ";
- for ( ePtr=mail->files.first(); ePtr != 0; ePtr=mail->files.next() ) {
- text += ePtr->originalName + " ";
- }
- text += "\n\n";
- } else text += "\n";
-
- if (!inbox) {
- text += mail->body;
- } else if (mail->downloaded) {
- text += mail->bodyPlain;
- } else {
- text += "\nAwaiting download\n";
- text += "Size of mail: " + mailStringSize;
- }
-
- emailView->setText(text);
- }
-
- if (mail->files.count() == 0)
- attachmentButton->setEnabled(FALSE);
- else attachmentButton->setEnabled(TRUE);
-
- setCaption("Examining mail: " + mail->subject);
-}
-
-//update view with current EmailListItem (item)
-void ReadMail::update(QListView *thisView, Email *mailIn)
-{
- view = thisView;
- item = (EmailListItem *) view->selectedItem();
- mail = mailIn;
- updateView();
- updateButtons();
-}
-
-void ReadMail::mailUpdated(Email *mailIn)
-{
- if (mailIn == mail) {
- updateView();
- } else {
- updateButtons();
- }
-}
-
-void ReadMail::close()
-{
- emit cancelView();
-}
-
-//gets next item in listview, exits if there is no next
-void ReadMail::next()
-{
- item = (EmailListItem *) item->nextSibling();
- if (item != NULL) {
- mail = item->getMail();
- updateView();
- }
- updateButtons();
-}
-
-//gets previous item in listview, exits if there is no previous
-void ReadMail::previous()
-{
- item = (EmailListItem *) item->itemAbove();
- if (item != NULL) {
- mail = item->getMail();
- updateView();
- }
- updateButtons();
-}
-
-//deletes item, tries bringing up next or previous, exits if unsucessful
-void ReadMail::deleteItem()
-{
- EmailListItem *temp = item;
- temp = (EmailListItem *) item->nextSibling(); //trybelow
- if (temp == NULL)
- temp = (EmailListItem *) item->itemAbove(); //try above
-
- emit removeItem(item, inbox);
-
- item = temp;
- if (item != NULL) { //more items in list
- mail = item->getMail();
- updateView();
- updateButtons();
- } else close(); //no more items to see
-}
-
-void ReadMail::updateButtons()
-{
- EmailListItem *temp;
-
- temp = item;
- if ((EmailListItem *) temp->nextSibling() == NULL)
- nextButton->setEnabled(FALSE);
- else nextButton->setEnabled(TRUE);
-
- temp = item;
- if ((EmailListItem *) temp->itemAbove() == NULL)
- previousButton->setEnabled(FALSE);
- else previousButton->setEnabled(TRUE);
-}
-
-void ReadMail::shiftText()
-{
- plainTxt = ! plainTxt;
- updateView();
-}
-
-void ReadMail::viewAttachments()
-{
- viewAtt->update(mail, inbox);
- viewAtt->showMaximized();
-}
-
-void ReadMail::reply()
-{
- emit replyRequested(*mail, (bool&)FALSE);
-}
-
-void ReadMail::replyAll()
-{
- emit replyRequested(*mail, (bool&)TRUE);
-}
-
-void ReadMail::forward()
-{
- emit forwardRequested(*mail);
-}
-
-void ReadMail::download()
-{
- emit download(mail);
-}
-
diff --git a/noncore/net/mailit/readmail.h b/noncore/net/mailit/readmail.h
deleted file mode 100644
index 6700595..0000000
--- a/noncore/net/mailit/readmail.h
+++ b/dev/null
@@ -1,95 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef READMAIL_H
-#define READMAIL_H
-
-#include <qaction.h>
-#include <qmainwindow.h>
-#include <qmenubar.h>
-#include <qpopupmenu.h>
-#include <qlabel.h>
-#include <qlistview.h>
-#include <qlayout.h>
-#include <qtextview.h>
-#include <qtoolbutton.h>
-
-#include "emailhandler.h"
-#include "emaillistitem.h"
-#include "viewatt.h"
-
-class ReadMail : public QMainWindow
-{
- Q_OBJECT
-
-public:
- ReadMail( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
- ~ReadMail();
- void update(QListView *thisView, Email *mailIn);
- void updateView();
- void mailUpdated(Email *mailIn);
-
-signals:
- void cancelView();
- void replyRequested(Email &, bool &);
- void forwardRequested(Email&);
- void removeItem(EmailListItem *, bool &);
- void viewingMail(Email *);
- void download (Email*);
-
-public slots:
- void close();
- void next();
- void previous();
- void deleteItem();
- void shiftText();
- void viewAttachments();
- void reply();
- void replyAll();
- void forward();
- void download();
-
-private:
- void init();
- void updateButtons();
-
-private:
- QListView *view;
- EmailListItem *item;
- bool plainTxt, inbox;
- Email *mail;
- ViewAtt *viewAtt;
-
- QToolBar *bar;
- QMenuBar *menu;
- QPopupMenu *viewMenu, *mailMenu;
- QAction *deleteButton;
- QMimeSourceFactory *mime;
- QAction *plainTextButton;
- QAction *nextButton;
- QTextView *emailView;
- QAction *attachmentButton;
- QAction *previousButton;
- QToolButton *replyButton;
- QAction *forwardButton;
- QAction *replyAllButton;
- QAction *downloadButton;
-};
-
-#endif // READMAIL_H
diff --git a/noncore/net/mailit/smtpclient.cpp b/noncore/net/mailit/smtpclient.cpp
deleted file mode 100644
index 51ca50b..0000000
--- a/noncore/net/mailit/smtpclient.cpp
+++ b/dev/null
@@ -1,170 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include "smtpclient.h"
-#include "emailhandler.h"
-
-SmtpClient::SmtpClient()
-{
- socket = new QSocket(this, "smtpClient");
- stream = new QTextStream(socket);
- mailList.setAutoDelete(TRUE);
-
- connect(socket, SIGNAL(error(int)), this, SLOT(errorHandling(int)));
- connect(socket, SIGNAL(connected()), this, SLOT(connectionEstablished()));
- connect(socket, SIGNAL(readyRead()), this, SLOT(incomingData()));
-
- sending = FALSE;
-}
-
-SmtpClient::~SmtpClient()
-{
- delete socket;
- delete stream;
-}
-
-void SmtpClient::newConnection(const QString &target, int port)
-{
- if (sending) {
- qWarning("socket in use, connection refused");
- return;
- }
-
- status = Init;
- sending = TRUE;
- socket->connectToHost(target, port);
-
- emit updateStatus(tr("DNS lookup"));
-}
-
-void SmtpClient::addMail(const QString &from, const QString &subject, const QStringList &to, const QString &body)
-{
- RawEmail *mail = new RawEmail;
-
- mail->from = from;
- mail->subject = subject;
- mail->to = to;
- mail->body = body;
-
- mailList.append(mail);
-}
-
-void SmtpClient::connectionEstablished()
-{
- emit updateStatus(tr("Connection established"));
-
-}
-
-void SmtpClient::errorHandling(int status)
-{
- errorHandlingWithMsg( status, QString::null );
-}
-
-void SmtpClient::errorHandlingWithMsg(int status, const QString & EMsg )
-{
- emit errorOccurred(status, EMsg );
- socket->close();
- mailList.clear();
- sending = FALSE;
-}
-
-void SmtpClient::incomingData()
-{
- QString response;
-
- if (!socket->canReadLine())
- return;
-
- response = socket->readLine();
- switch(status) {
- case Init: {
- if (response[0] == '2') {
- status = From;
- mailPtr = mailList.first();
- *stream << "HELO there\r\n";
- } else errorHandlingWithMsg(ErrUnknownResponse,response);
- break;
- }
- case From: {
- if (response[0] == '2') {
- qDebug(mailPtr->from);
- *stream << "MAIL FROM: " << mailPtr->from << "\r\n";
- status = Recv;
- } else errorHandlingWithMsg(ErrUnknownResponse, response );
- break;
- }
- case Recv: {
- if (response[0] == '2') {
- it = mailPtr->to.begin();
- if (it == NULL) {
- errorHandlingWithMsg(ErrUnknownResponse,response);
- }
- *stream << "RCPT TO: " << *it << "\r\n";
- status = MRcv;
- } else errorHandlingWithMsg(ErrUnknownResponse,response);
- break;
- }
- case MRcv: {
- if (response[0] == '2') {
- it++;
- if ( it != mailPtr->to.end() ) {
- *stream << "RCPT TO: " << *it << "\r\n";
- break;
- } else {
- status = Data;
- }
- } else errorHandlingWithMsg(ErrUnknownResponse,response);
- }
- case Data: {
- if (response[0] == '2') {
- *stream << "DATA\r\n";
- status = Body;
- emit updateStatus(tr("Sending: ") + mailPtr->subject);
-
- } else errorHandlingWithMsg(ErrUnknownResponse,response);
- break;
- }
- case Body: {
- if (response[0] == '3') {
- *stream << mailPtr->body << "\r\n.\r\n";
- mailPtr = mailList.next();
- if (mailPtr != NULL) {
- status = From;
- } else {
- status = Quit;
- }
- } else errorHandlingWithMsg(ErrUnknownResponse,response);
- break;
- }
- case Quit: {
- if (response[0] == '2') {
- *stream << "QUIT\r\n";
- status = Done;
- QString temp;
- temp.setNum(mailList.count());
- emit updateStatus(tr("Sent ") + temp + tr(" messages"));
- emit mailSent();
- mailList.clear();
- sending = FALSE;
- socket->close();
- } else errorHandlingWithMsg(ErrUnknownResponse,response);
- break;
- }
- }
-}
diff --git a/noncore/net/mailit/smtpclient.h b/noncore/net/mailit/smtpclient.h
deleted file mode 100644
index 554ba3f..0000000
--- a/noncore/net/mailit/smtpclient.h
+++ b/dev/null
@@ -1,76 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef SmtpClient_H
-#define SmtpClient_H
-
-//#include <stdio.h>
-#include <qsocket.h>
-#include <qstring.h>
-#include <qobject.h>
-#include <qtextstream.h>
-#include <qstringlist.h>
-#include <qlist.h>
-
-struct RawEmail
-{
- QString from;
- QString subject;
- QStringList to;
- QString body;
-};
-
-class SmtpClient: public QObject
-{
- Q_OBJECT
-
-public:
- SmtpClient();
- ~SmtpClient();
- void newConnection(const QString &target, int port);
- void addMail(const QString &from, const QString &subject, const QStringList &to, const QString &body);
-
-signals:
- void errorOccurred(int, const QString & LR );
- void updateStatus(const QString &);
- void mailSent();
-
-public slots:
- void errorHandling(int);
- void errorHandlingWithMsg(int, const QString & LastResponse );
-
-protected slots:
- void connectionEstablished();
- void incomingData();
-
-private:
- QSocket *socket;
- QTextStream *stream;
- enum transferStatus
- {
- Init, From, Recv, MRcv, Data, Body, Quit, Done
- };
- int status;
- QList<RawEmail> mailList;
- RawEmail *mailPtr;
- bool sending;
- QStringList::Iterator it;
-};
-
-#endif
diff --git a/noncore/net/mailit/textparser.cpp b/noncore/net/mailit/textparser.cpp
deleted file mode 100644
index e5c9f7c..0000000
--- a/noncore/net/mailit/textparser.cpp
+++ b/dev/null
@@ -1,304 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include "textparser.h"
-
-TextParser::TextParser(const QString &in, const QString &lineBreak)
-{
- data = in;
- lineSep = lineBreak;
-
- init();
- createSeparators();
- split();
-}
-
-TextParser::TextParser(const QString &in, const QString &lineBreak, const QString &sep)
-{
- data = in;
- lineSep = lineBreak;
-
- init();
- separators = sep;
- split();
-}
-
-void TextParser::init()
-{
- lineCount = 0;
- linePos = 0;
- totalElmCount = 0;
- separatorPos = -1; //not initialized
- wordPos = -1; //not initialized
- sepAtLine = 0;
- sepAtPosElm = -1; //such that nextSep equals 0
- wordAtLine = 0;
- wordAtPosElm = -1; //such that nextWord equals 0
- atLine = 0;
- atPosElm = 0;
-}
-
-void TextParser::createSeparators()
-{
- separators = " @#,.:;<>*/(){}|'?-+=_";
-}
-
-/* Returns pos of given search criteria, -1 if not found */
-int TextParser::find(const QString &target, QChar sep, int pos, bool upperCase)
-{
-
- t_splitElm parsstr;
- QString pString, pTarget;
- pTarget = target;
- int atLine = 0, atPosElm = 0;
-
- getLineReference(pos,&atLine,&atPosElm);
-
- for (int x = pos; x < totalElmCount; x++)
- {
- parsstr=splitDone[atLine].elm[atPosElm++];
-
- if (upperCase)
- {
- pString=parsstr.str.upper();
- pTarget=pTarget.upper();
- }
- else
- {
- pString=parsstr.str;
- }
- if ((pString == pTarget) && (parsstr.separator == sep))
- {
- return x;
- }
- if (atPosElm >= splitDone[atLine].elmCount)
- { //new Line
- atLine++;
- atPosElm = 0;
- }
- }
- return -1;
-}
-
-int TextParser::elmCount()
-{
- return totalElmCount;
-}
-
-QChar TextParser::separatorAt(int pos)
-{
- if (getLineReference(pos, &sepAtLine, &sepAtPosElm) == -1)
- return QChar::null;
-
- separatorPos = pos;
- return splitDone[sepAtLine].elm[sepAtPosElm].separator;
-}
-
-QChar TextParser::nextSeparator()
-{
- sepAtPosElm++;
- if (splitDone[sepAtLine].elmCount <= sepAtPosElm) {
- sepAtLine++;
- sepAtPosElm = 0;
- }
-
- separatorPos++;
- return splitDone[sepAtLine].elm[sepAtPosElm].separator;
-}
-
-bool TextParser::hasNextSeparator()
-{
- return ((separatorPos+1) < totalElmCount);
-}
-
-QString TextParser::wordAt(int pos)
-{
- if (getLineReference(pos, &wordAtLine, &wordAtPosElm) == -1)
- return NULL;
-
- wordPos = pos;
- return splitDone[wordAtLine].elm[wordAtPosElm].str;
-}
-
-QString TextParser::nextWord()
-{
- wordAtPosElm++;
- if (splitDone[wordAtLine].elmCount <= wordAtPosElm) {
- wordAtLine++;
- wordAtPosElm = 0;
- }
-
- wordPos++;
- return splitDone[wordAtLine].elm[wordAtPosElm].str;
-}
-
-bool TextParser::hasNextWord()
-{
- return ((wordPos + 1) < totalElmCount);
-}
-
-QString TextParser::getString(int *pos, QChar stop, bool lineEnd = false)
-{
- QString returnStr = wordAt(*pos);
- QChar chr = separatorAt(*pos);
- QString s;
-
- if (returnStr == "")
- return "";
- if (chr == stop)
- return returnStr;
-
- if (!lineEnd) {
- while ((chr != stop) && hasNextWord()) {
- returnStr.append(chr);
- returnStr += nextWord();
- chr = nextSeparator();
- }
- } else { //copy from pos to end of line
- getLineReference(*pos, &atLine, &atPosElm);
- returnStr = "";
- while (atPosElm < splitDone[atLine].elmCount) {
- if (splitDone[atLine].elm[atPosElm].str != "") {
- returnStr += splitDone[atLine].elm[atPosElm].str;
- }
- chr = splitDone[atLine].elm[atPosElm].separator;
- if (!chr.isNull() && (int) chr != 0) {
- returnStr.append(splitDone[atLine].elm[atPosElm].separator);
- }
- atPosElm++;
- }
- }
-
- *pos = wordPos;
- return returnStr;
-}
-
-QString TextParser::getNextLine()
-{
- atLine++;
- atPosElm = 0;
- if (atLine < lineCount)
- return splitDone[atLine].str;
- return "";
-}
-
-bool TextParser::hasNextLine()
-{
- if (atLine+1 < lineCount)
- return TRUE;;
- return FALSE;
-}
-
-int TextParser::endLinePos(int pos)
-{
- if ( (getLineReference(pos, &atLine, &atPosElm)) == -1)
- return -1;
-
- return (pos + (splitDone[atLine].elmCount - atPosElm) + 1);
-}
-
-int TextParser::getLineReference(int pos, int *line, int *inLinePos)
-{
- int currentPos = 0;
-
- for (int x = 0; x < lineCount; x++) {
- if ( currentPos + splitDone[x].elmCount > pos) {
- *line = x;
- *inLinePos = pos - currentPos;
- return 0; //pos found okay
- }
- currentPos += splitDone[x].elmCount;
- }
- return -1; //no reference found
-}
-
-void TextParser::split()
-{
- t_splitLine newLine;
-
- while ((uint) linePos < data.length()) {
- newLine = nextLine();
- splitDone[lineCount] = splitLine(newLine);
- totalElmCount += splitDone[lineCount].elmCount;
- lineCount++;
- }
-}
-
-t_splitLine TextParser::splitLine(t_splitLine line)
-{
- uint pos = 0;
- uint elmCount = 0;
- t_splitLine tempLine = line;
-
- tempLine.str = line.str.simplifyWhiteSpace();
- tempLine.elm[0].str = "";
- while ( pos < line.str.length() ) {
- if ( isSeparator(tempLine.str[pos]) ) {
- tempLine.elm[elmCount].separator = tempLine.str[pos];
- elmCount++;
- pos++;
- while (tempLine.str[pos] == ' ')
- pos++;
- if (pos > line.str.length())
- elmCount--;
- tempLine.elm[elmCount].str = "";
- } else {
- if (!tempLine.str[pos].isNull())
- tempLine.elm[elmCount].str += tempLine.str[pos];
- pos++;
- }
- }
-
- tempLine.elmCount = elmCount + 1;
- return tempLine;
-}
-
-bool TextParser::isSeparator(QChar chr)
-{
- for (uint x = 0; x < separators.length(); x++) {
- if (chr == separators[x])
- return true;
- }
- return false;
-}
-
-t_splitLine TextParser::nextLine()
-{
- int newLinePos;
- t_splitLine lineType;
-
- newLinePos = data.find(lineSep, linePos);
-
- lineType.lineType = NewLine;
- lineType.str = "";
-
- if (newLinePos == -1) {
- newLinePos = data.length();
- lineType.lineType = LastLine;
- }
-
- for (int x = linePos; x < newLinePos; x++)
- lineType.str += data[x];
-
- linePos = newLinePos;
- if ((uint) linePos < data.length()) //if not EOF, add length of lineSep
- linePos += lineSep.length();
-
- return lineType;
-}
diff --git a/noncore/net/mailit/textparser.h b/noncore/net/mailit/textparser.h
deleted file mode 100644
index 03bb6d5..0000000
--- a/noncore/net/mailit/textparser.h
+++ b/dev/null
@@ -1,85 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include <qobject.h>
-#include <qstring.h>
-
-#ifndef TEXTPARSER_H
-#define TEXTPARSER_H
-
-enum t_strType { Word, Number};
-enum t_lineType {NewLine, LastLine};
-
-const uint MAX_ELEMENTS = 200; //Should be dynamic
-const uint MAX_LINES = 500; //Should be dynamic
-
-struct t_splitElm
-{
- QChar separator;
- int strType;
- QString str;
-};
-
-struct t_splitLine
-{
- t_lineType lineType;
- QString str; //a bit redundant...
- t_splitElm elm[MAX_ELEMENTS];
- int elmCount;
-};
-
-class TextParser: public QObject
-{
- Q_OBJECT
-
-public:
- TextParser(const QString &in, const QString &lineBreak);
- TextParser(const QString &in, const QString &lineBreak, const QString &sep);
- int find(const QString &target, QChar sep, int pos, bool upperCase);
- int elmCount();
- QChar separatorAt(int pos);
- QChar nextSeparator();
- bool hasNextSeparator();
- QString wordAt(int pos);
- QString nextWord();
- bool hasNextWord();
- QString getString(int *pos, QChar stop, bool lineEnd);
- QString getNextLine();
- bool hasNextLine();
- int endLinePos(int pos);
-
-private:
- void init();
- void createSeparators();
- t_splitLine nextLine();
- void split();
- t_splitLine splitLine(t_splitLine line);
- bool isSeparator(QChar chr);
- t_splitLine splitDone[MAX_LINES];
- int getLineReference(int pos, int *line, int *inLinePos);
-
- int lineCount, linePos, totalElmCount;
- int separatorPos, wordPos;
- QString data, separators, lineSep;
- int sepAtLine, sepAtPosElm;
- int wordAtLine, wordAtPosElm;
- int atLine, atPosElm;
-};
-
-#endif
diff --git a/noncore/net/mailit/viewatt.cpp b/noncore/net/mailit/viewatt.cpp
deleted file mode 100644
index 3515ba5..0000000
--- a/noncore/net/mailit/viewatt.cpp
+++ b/dev/null
@@ -1,121 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include <qpe/resource.h>
-#include "viewatt.h"
-#include <qwhatsthis.h>
-#include <qpe/applnk.h>
-#include <qpe/mimetype.h>
-
-ViewAtt::ViewAtt(QWidget *parent, const char *name, WFlags f)
- : QMainWindow(parent, name, f)
-{
- setCaption(tr("Exploring attatchments"));
-
- setToolBarsMovable( FALSE );
- bar = new QToolBar(this);
- installButton = new QAction( tr( "Install" ), Resource::loadPixmap( "exec" ), QString::null, CTRL + Key_C, this, 0 );
- connect(installButton, SIGNAL(activated()), this, SLOT(install()) );
- installButton->setWhatsThis(tr("Click here to install the attachment to your Documents"));
-
- listView = new QListView(this, "AttView");
- listView->addColumn( tr("Attatchment") );
- listView->addColumn( tr("Type") );
- listView->addColumn( tr("Installed") );
- setCentralWidget(listView);
- QWhatsThis::add(listView,QWidget::tr("This is an overview about all attachments in the mail"));
-}
-
-void ViewAtt::update(Email *mailIn, bool inbox)
-{
- QListViewItem *item;
- Enclosure *ePtr;
-
-
-
- listView->clear();
- if (inbox) {
- bar->clear();
- installButton->addTo( bar );
- bar->show();
- } else {
- bar->hide();
- }
-
- mail = mailIn;
- for ( ePtr=mail->files.first(); ePtr != 0; ePtr=mail->files.next() ) {
-
- QString isInstalled = tr("No");
- if (ePtr->installed)
- isInstalled = tr("Yes");
- item = new QListViewItem(listView, ePtr->originalName, ePtr->contentType, isInstalled);
-
- const QString& mtypeDef=(const QString&) ePtr->contentType+"/"+ePtr->contentAttribute;
-
- MimeType mt(mtypeDef);
-
- item->setPixmap(0, mt.pixmap());
-
- /*
- if (ePtr->contentType == "TEXT") {
- actions = new QAction( tr("View"), Resource::loadPixmap("TextEditor"), QString::null, CTRL + Key_C, this, 0);
- actions->addTo(bar);
- }
- if (ePtr->contentType == "AUDIO") {
- actions = new QAction( tr("Play"), Resource::loadPixmap("SoundPlayer"), QString::null, CTRL + Key_C, this, 0);
- actions->addTo(bar);
- item->setPixmap(0, Resource::loadPixmap("play"));
- }
- if (ePtr->contentType == "IMAGE") {
- actions = new QAction( tr("Show"), Resource::loadPixmap("pixmap"), QString::null, CTRL + Key_C, this, 0);
- actions->addTo(bar);
- item->setPixmap(0, Resource::loadPixmap("pixmap"));
- }*/
- }
-}
-
-void ViewAtt::install()
-{
- Enclosure *ePtr, *selPtr;
- QListViewItem *item;
- QString filename;
- DocLnk d;
-
- item = listView->selectedItem();
- if (item != NULL) {
- filename = item->text(0);
- selPtr = NULL;
- for ( ePtr=mail->files.first(); ePtr != 0; ePtr=mail->files.next() ) {
- if (ePtr->originalName == filename)
- selPtr = ePtr;
- }
-
- if (selPtr == NULL) {
- qWarning("Internal error, file is not installed to documents");
- return;
- }
-
- d.setName(selPtr->originalName);
- d.setFile(selPtr->path + selPtr->name);
- d.setType(selPtr->contentType + "/" + selPtr->contentAttribute);
- d.writeLink();
- selPtr->installed = TRUE;
- item->setText(2, tr("Yes"));
- }
-}
diff --git a/noncore/net/mailit/viewatt.h b/noncore/net/mailit/viewatt.h
deleted file mode 100644
index 9e43407..0000000
--- a/noncore/net/mailit/viewatt.h
+++ b/dev/null
@@ -1,46 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef VIEWATT_H
-#define VIEWATT_H
-
-#include <qmainwindow.h>
-#include <qtoolbar.h>
-#include <qaction.h>
-#include <qlistview.h>
-#include "emailhandler.h"
-
-class ViewAtt : public QMainWindow
-{
- Q_OBJECT
-
-public:
- ViewAtt(QWidget *parent = 0, const char *name = 0, WFlags f = 0);
- void update(Email *mailIn, bool inbox);
-
-public slots:
- void install();
-
-private:
- QListView *listView;
- QToolBar *bar;
- QAction *installButton, *actions;
- Email *mail;
-};
-#endif
diff --git a/noncore/net/mailit/writemail.cpp b/noncore/net/mailit/writemail.cpp
deleted file mode 100644
index 26b9660..0000000
--- a/noncore/net/mailit/writemail.cpp
+++ b/dev/null
@@ -1,402 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#include <qmessagebox.h>
-#include <qwhatsthis.h>
-#include "writemail.h"
-#include <qpe/resource.h>
-
-WriteMail::WriteMail( QWidget* parent, const char* name, WFlags fl ):QMainWindow( parent, name, fl )
-{
- showingAddressList = FALSE;
- init();
-
- addAtt = new AddAtt(0, "Add Attachments");
-}
-
-WriteMail::~WriteMail()
-{
- delete addAtt;
-}
-
-void WriteMail::setAddressList(AddressList *list)
-{
- AContact *cPtr;
-
- addressList = list;
-
- addressView->clear();
- QList<AContact> *cListPtr = addressList->getContactList();
- QListViewItem *item;
- for (cPtr = cListPtr->first(); cPtr != 0; cPtr = cListPtr->next() ) {
- item = new QListViewItem(addressView, cPtr->name, cPtr->email);
- }
-}
-
-void WriteMail::init()
-{
- setToolBarsMovable(FALSE);
-
- bar = new QToolBar(this);
- bar->setHorizontalStretchable( TRUE );
-
- menu = new QMenuBar( bar );
-
- mailMenu = new QPopupMenu(menu);
- menu->insertItem( tr( "&Mail" ), mailMenu);
- addMenu = new QPopupMenu(menu);
- menu->insertItem( tr( "&Add" ), addMenu);
-
- bar = new QToolBar(this);
- attachButton = new QAction(tr("Attachment"), Resource::loadPixmap("mailit/attach"), QString::null, 0, this, 0);
- attachButton->addTo(bar);
- attachButton->addTo(addMenu);
- connect( attachButton, SIGNAL( activated() ), this, SLOT( attachFile() ) );
- attachButton->setWhatsThis(tr("Click here to attach files to your mail"));
-
- confirmButton = new QAction(tr("Enque mail"), Resource::loadPixmap("OKButton"), QString::null, 0, this, 0);
- confirmButton->addTo(bar);
- confirmButton->addTo(mailMenu);
- connect( confirmButton, SIGNAL( activated() ), this, SLOT( accept() ) );
- confirmButton->setWhatsThis(tr("This button puts your mail in the send queue"));
-
- newButton = new QAction(tr("New mail"), Resource::loadPixmap("new"), QString::null, 0, this, 0);
- newButton->addTo(mailMenu);
- connect( newButton, SIGNAL( activated() ), this, SLOT( newMail() ) );
- newButton->setWhatsThis(tr("Click here to create a new mail"));
-
- widget = new QWidget(this, "widget");
- grid = new QGridLayout( widget );
-
- recipientsBox = new QComboBox( FALSE, widget, "toLabel" );
- recipientsBox->insertItem( tr( "To:" ) );
- recipientsBox->insertItem( tr( "CC:" ) );
- recipientsBox->setCurrentItem(0);
- grid->addWidget( recipientsBox, 0, 0 );
- connect(recipientsBox,SIGNAL(activated(int)),this, SLOT(changeRecipients(int)));
-
- subjetLabel = new QLabel( widget, "subjetLabel" );
- subjetLabel->setText( tr( "Subject:" ) );
-
- grid->addWidget( subjetLabel, 1, 0 );
-
- ToolButton13_2 = new QToolButton( widget, "ToolButton13_2" );
- ToolButton13_2->setText( tr( "..." ) );
- grid->addWidget( ToolButton13_2, 1, 2 );
-
- subjectInput = new QLineEdit( widget, "subjectInput" );
- grid->addWidget( subjectInput, 1, 1 );
- QWhatsThis::add(subjectInput,QWidget::tr("The mail subject should be entered here"));
-
- toInput = new QLineEdit( widget, "toInput" );
- grid->addWidget( toInput, 0, 1 );
- QWhatsThis::add(recipientsBox,QWidget::tr("Recipients can be entered here"));
-
- ccInput = new QLineEdit( widget, "ccInput" );
- ccInput->hide();
- grid->addWidget( ccInput, 0, 1 );
- QWhatsThis::add(ccInput,QWidget::tr("If you would like to send copies of your mail they can be entered here"));
-
- addressButton = new QToolButton( widget, "addressButton" );
- addressButton->setPixmap( Resource::loadPixmap("AddressBook") );
- addressButton->setToggleButton(TRUE);
- grid->addWidget( addressButton, 0, 2 );
- connect(addressButton, SIGNAL(clicked()), this, SLOT(getAddress()) );
- QWhatsThis::add(addressButton,QWidget::tr("This button opens the address selector with all mail adresses from your Opie addressbook"));
-
- emailInput = new QMultiLineEdit( widget, "emailInput" );
- grid->addMultiCellWidget( emailInput, 2, 2, 0, 2);
- QWhatsThis::add(emailInput,QWidget::tr("Enter your mail text here"));
-
- addressView = new QListView( widget, "addressView");
- addressView->addColumn(tr("Name"));
- addressView->addColumn(tr("EMail") );
- addressView->setAllColumnsShowFocus(TRUE);
- addressView->setMultiSelection(TRUE);
- addressView->hide();
- grid->addMultiCellWidget( addressView, 3, 3, 0, 2);
- QWhatsThis::add(recipientsBox,QWidget::tr("Choose the recipients from this list"));
-
- okButton = new QToolButton(bar, "ok");
- okButton->setPixmap( Resource::loadPixmap("enter") );
- okButton->hide();
- connect(okButton, SIGNAL(clicked()), this, SLOT(addRecipients()) );
- QWhatsThis::add(okButton,QWidget::tr("Queue your mail by clicking here"));
-
- setCentralWidget(widget);
-}
-
-void WriteMail::reject()
-{
- emit cancelMail();
-}
-
-void WriteMail::accept()
-{
- QStringList attachedFiles, attachmentsType;
- int idCount = 0;
-
- if (toInput->text() == "")
- {
- QMessageBox::warning(this,tr("No recipient"), tr("Send mail to whom?"), tr("OK\n"));
- return;
- }
-
- if (! getRecipients(false) )
- {
- QMessageBox::warning(this,tr("Incorrect recipient separator"),
- tr("Recipients must be separated by ;\nand be valid emailaddresses"), tr("OK\n"));
- return;
- }
-
- if ((ccInput->text()!="") && (! getRecipients(true) ))
- {
- QMessageBox::warning(this,tr("Incorrect carbon copy separator"),
- tr("CC Recipients must be separated by ;\nand be valid emailaddresses"), tr("OK\n"));
- return;
- }
-
- mail.subject = subjectInput->text();
- mail.body = emailInput->text();
- mail.sent = false;
- mail.received = false;
-
- mail.rawMail = "To: ";
-
- for (QStringList::Iterator it = mail.recipients.begin();
- it != mail.recipients.end(); ++it) {
-
- mail.rawMail += (*it);
- mail.rawMail += ",\n";
- }
-
- mail.rawMail.truncate(mail.rawMail.length()-2);
-
- mail.rawMail += "\nCC: ";
-
- for (QStringList::Iterator it = mail.carbonCopies.begin();
- it != mail.carbonCopies.end(); ++it) {
-
- mail.rawMail += (*it);
- mail.rawMail += ",\n";
- }
-
- mail.rawMail += mail.from;
- mail.rawMail += "\nSubject: ";
- mail.rawMail += mail.subject;
- mail.rawMail += "\n\n";
-
- attachedFiles = addAtt->returnattachedFiles();
- attachmentsType = addAtt->returnFileTypes();
-
- QStringList::Iterator itType = attachmentsType.begin();
-
- Enclosure e;
- for ( QStringList::Iterator it = attachedFiles.begin(); it != attachedFiles.end(); ++it ) {
- e.id = idCount;
- e.originalName = (*it).latin1();
- e.contentType = (*itType).latin1();
- e.contentAttribute = (*itType).latin1();
- e.saved = TRUE;
- mail.addEnclosure(&e);
-
- itType++;
- idCount++;
- }
- mail.rawMail += mail.body;
- mail.rawMail += "\n";
- mail.rawMail += ".\n";
- emit sendMailRequested(mail);
- addAtt->clear();
-}
-
-void WriteMail::getAddress()
-{
- showingAddressList = !showingAddressList;
-
- if (showingAddressList) {
- emailInput->hide();
- addressView->show();
- okButton->show();
-
- } else {
- addressView->hide();
- okButton->hide();
- emailInput->show();
- }
-}
-
-void WriteMail::attachFile()
-{
- addAtt->showMaximized();
-}
-
-void WriteMail::reply(Email replyMail, bool replyAll)
-{
- int pos;
- QString ccRecipients;
-
- mail = replyMail;
- mail.files.clear();
-
- toInput->setText(mail.fromMail);
-
- if (replyAll)
- {
- for (QStringList::Iterator it = mail.carbonCopies.begin();it != mail.carbonCopies.end(); ++it)
- {
- ccRecipients.append(*it);
- ccRecipients.append(";");
- }
- ccRecipients.truncate(ccRecipients.length()-1); //no ; at the end
- ccInput->setText(ccRecipients);
- }
- else ccInput->clear();
-
- subjectInput->setText(tr("Re: ") + mail.subject);
-
- QString citation=mail.fromMail;
- citation.append(tr(" wrote on "));
- citation.append(mail.date);
- citation.append(":\n");
-
-
- //mail.body.insert(0,tr("On"));
- pos = 0;
- mail.body.insert(pos, ">");
- while (pos != -1) {
- pos = mail.body.find('\n', pos);
- if (pos != -1)
- mail.body.insert(++pos, ">");
- }
- mail.body.insert(0,citation);
- emailInput->setText(mail.body);
-}
-
-void WriteMail::forward(Email forwMail)
-{
- // int pos=0;
-
- QString fwdBody=tr("======forwarded message from ");
- fwdBody.append(forwMail.fromMail);
- fwdBody.append(tr(" starts======\n\n"));
-
- mail=forwMail;
- toInput->setText("");
- ccInput->setText("");
- subjectInput->setText(tr("FWD: ") + mail.subject);
-
- fwdBody+=mail.body;
- fwdBody+=QString(tr("======end of forwarded message======\n\n"));
-
- emailInput->setText(fwdBody);
-}
-
-bool WriteMail::getRecipients(bool ccField)
-{
- QString str, temp;
- int pos = 0;
-
- if (ccField)
- {
- mail.carbonCopies.clear();
- temp = ccInput->text();
- }
- else
- {
- mail.recipients.clear();
- temp=toInput->text() ;
- }
-
- while ( (pos = temp.find(';')) != -1) {
- str = temp.left(pos).stripWhiteSpace();
- temp = temp.right(temp.length() - (pos + 1));
- if ( str.find('@') == -1)
- return false;
- ccField ? mail.carbonCopies.append(str) : mail.recipients.append(str);
- //addressList->addContact(str, "");
- }
- temp = temp.stripWhiteSpace();
- if ( temp.find('@') == -1)
- return false;
- ccField ? mail.carbonCopies.append(temp) : mail.recipients.append(temp);
- //addressList->addContact(temp, "");
-
- return TRUE;
-}
-
-void WriteMail::addRecipients()
-{
- toInput->isVisible() ? addRecipients(false) : addRecipients(true);
-}
-
-void WriteMail::addRecipients(bool ccField)
-{
- QString recipients = "";
-
- mail.recipients.clear();
-
- QListViewItem *item = addressView->firstChild();
- while (item != NULL) {
- if ( item->isSelected() ) {
- if (recipients == "") {
- recipients = item->text(1);
- } else {
- recipients += "; " + item->text(1);
- }
- }
- item = item->nextSibling();
- }
-
- ccField ? ccInput->setText(recipients):toInput->setText(recipients);
-
- addressView->hide();
- okButton->hide();
- emailInput->show();
- addressButton->setOn(FALSE);
- showingAddressList = !showingAddressList;
-}
-
-void WriteMail::changeRecipients(int selection)
-{
- if (selection==0)
- {
- toInput->show();
- ccInput->hide();
- }
- else if (selection==1)
- {
- toInput->hide();
- ccInput->show();
- }
-}
-
-void WriteMail::setRecipient(const QString &recipient)
-{
- toInput->setText(recipient);
-}
-
-void WriteMail::newMail()
-{
- toInput->clear();
- ccInput->clear();
- subjectInput->clear();
- emailInput->clear();
- setAddressList(addressList);
-}
diff --git a/noncore/net/mailit/writemail.h b/noncore/net/mailit/writemail.h
deleted file mode 100644
index 921f27e..0000000
--- a/noncore/net/mailit/writemail.h
+++ b/dev/null
@@ -1,96 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Palmtop Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-#ifndef WRITEMAIL_H
-#define WRITEMAIL_H
-
-#include <qmainwindow.h>
-#include <qaction.h>
-#include <qlabel.h>
-#include <qtoolbar.h>
-#include <qtoolbutton.h>
-#include <qmenubar.h>
-#include <qlayout.h>
-#include <qlineedit.h>
-#include <qmultilineedit.h>
-#include <qlistview.h>
-#include <qcombobox.h>
-
-#include "emailhandler.h"
-#include "addresslist.h"
-#include "addatt.h"
-
-class WriteMail : public QMainWindow
-{
- Q_OBJECT
-
-public:
- WriteMail( QWidget* parent, const char* name, WFlags fl = 0 );
- ~WriteMail();
- void reply(Email replyMail, bool replyAll);
- void setRecipient(const QString &recipient);
- void setAddressList(AddressList *list);
- void forward(Email forwMail);
-
-signals:
- void sendMailRequested(const Email &mail);
- void cancelMail();
-
-
-public slots:
- void getAddress();
- void attachFile();
- void addRecipients();
- void newMail();
- void accept();
- void reject();
- void changeRecipients(int);
-
-private:
- bool getRecipients(bool);
- void init();
- void addRecipients(bool);
-
- Email mail;
- AddAtt *addAtt;
- AddressList *addressList;
- bool showingAddressList;
-
- QToolBar *bar;
- QMenuBar *menu;
- QPopupMenu *addMenu, *mailMenu;
- QListView *addressView;
-
- QToolButton *okButton;
- QWidget *widget;
- QAction *attachButton;
- QAction *confirmButton;
- QAction *newButton;
- QLabel* subjetLabel;
- QToolButton* ToolButton13_2;
- QComboBox* recipientsBox;
- QLineEdit *subjectInput;
- QLineEdit *toInput;
- QLineEdit *ccInput;
- QToolButton* addressButton;
- QMultiLineEdit* emailInput;
- QGridLayout* grid;
-};
-
-#endif // WRITEMAIL_H
diff --git a/packages b/packages
index c4eaf66..ae84e97 100644
--- a/packages
+++ b/packages
@@ -1,204 +1,204 @@
CONFIG_ADDRESSBOOK core/pim/addressbook addressbook.pro
CONFIG_ADVANCEDFM noncore/apps/advancedfm advancedfm.pro
CONFIG_APPEARANCE2 noncore/settings/appearance2 appearance2.pro
CONFIG_APPLET_EXAMPLE examples/applet example.pro
CONFIG_APPSKEY noncore/settings/appskey appskey.pro
CONFIG_AQPKG noncore/settings/aqpkg aqpkg.pro
CONFIG_AUTOROTATEAPPLET noncore/applets/autorotateapplet autorotateapplet.pro
CONFIG_BACKGAMMON noncore/games/backgammon backgammon.pro
CONFIG_BACKUP noncore/settings/backup backup.pro
CONFIG_BATTERYAPPLET core/applets/batteryapplet batteryapplet.pro
CONFIG_BEND noncore/unsupported/mail2/bend bend.pro
CONFIG_BIGSCREEN_EXAMPLE libopie/big-screen/example osplitter_mail.pro
CONFIG_BINARY noncore/tools/calc2/binary binary.pro
CONFIG_BLUE-PIN noncore/net/opietooth/blue-pin blue-pin.pro
CONFIG_BOUNCE noncore/games/bounce bounce.pro
CONFIG_BUTTON-SETTINGS core/settings/button button.pro
CONFIG_BUZZWORD noncore/games/buzzword buzzword.pro
CONFIG_CALC2 noncore/tools/calc2 calc.pro
CONFIG_CALCULATOR noncore/tools/calculator calculator.pro
CONFIG_CALIBRATE core/apps/calibrate calibrate.pro
CONFIG_CAMERA noncore/multimedia/camera camera.pro
CONFIG_CARDMON core/applets/cardmon cardmon.pro
CONFIG_CHECKBOOK noncore/apps/checkbook checkbook.pro
CONFIG_CITYTIME core/settings/citytime citytime.pro
CONFIG_CLIPBOARDAPPLET core/applets/clipboardapplet clipboardapplet.pro
CONFIG_CLOCKAPPLET core/applets/clockapplet clockapplet.pro
CONFIG_CLOCK noncore/tools/clock clock.pro
CONFIG_CONFEDIT noncore/apps/confedit confedit.pro
CONFIG_DASHER inputmethods/dasher dasher.pro
CONFIG_DATEBOOK core/pim/datebook datebook.pro
CONFIG_DECO_FLAT noncore/decorations/flat flat.pro
CONFIG_DECO_LIQUID noncore/decorations/liquid liquid.pro
CONFIG_DECO_POLISHED noncore/decorations/polished polished.pro
CONFIG_DICTIONARY noncore/apps/dictionary dictionary.pro
CONFIG_DOCTAB noncore/settings/doctab doctab.pro
CONFIG_DRAWPAD noncore/graphics/drawpad drawpad.pro
CONFIG_DVORAK inputmethods/dvorak dvorak.pro
CONFIG_EMBEDDEDKONSOLE core/apps/embeddedkonsole embeddedkonsole.pro
CONFIG_EUROCONV noncore/tools/euroconv/ euroconv.pro
CONFIG_EXAMPLE_BOARD examples/inputmethod example.pro
CONFIG_EXAMPLE_MENU examples/menuapplet menuapplet.pro
CONFIG_EXAMPLE_VPN examples/networksettings example.pro
CONFIG_FIFTEEN noncore/games/fifteen fifteen.pro
CONFIG_FILEBROWSER noncore/unsupported/filebrowser filebrowser.pro
CONFIG_FLAT noncore/styles/flat flat.pro
CONFIG_FORMATTER noncore/tools/formatter formatter.pro
CONFIG_FREETYPE freetype freetype.pro
CONFIG_FRESH noncore/styles/fresh fresh.pro
CONFIG_FTPLIB noncore/net/ftplib ftplib.pro
CONFIG_GO noncore/games/go go.pro
CONFIG_GSMTOOL noncore/unsupported/gsmtool gsmtool.pro
CONFIG_HANDWRITING inputmethods/handwriting handwriting.pro
CONFIG_HELPBROWSER core/apps/helpbrowser helpbrowser.pro
CONFIG_HOMEAPPLET core/applets/homeapplet homeapplet.pro
CONFIG_INTERFACES noncore/settings/networksettings/interfaces interfaces.pro
CONFIG_IRDAAPPLET core/applets/irdaapplet irdaapplet.pro
CONFIG_JUMPX inputmethods/jumpx jumpx.pro
CONFIG_KBILL noncore/games/kbill kbill.pro
CONFIG_KCHECKERS noncore/games/kcheckers kcheckers.pro
CONFIG_KEYBOARD inputmethods/keyboard keyboard.pro
CONFIG_KEYPEBBLE noncore/comm/keypebble keypebble.pro
CONFIG_KEYVIEW development/keyview keyview.pro
CONFIG_KJUMPX inputmethods/kjumpx kjumpx.pro
CONFIG_KPACMAN noncore/games/kpacman kpacman.pro
CONFIG_LANGUAGE noncore/settings/language language.pro
CONFIG_LAUNCHER_CORE core/launcher server.pro
CONFIG_LAUNCHER-SETTINGS core/settings/launcher launcher.pro
CONFIG_LIBFFMPEG core/multimedia/opieplayer/libffmpeg libffmpeg.pro
CONFIG_LIBFLASH core/multimedia/opieplayer/libflash libflash.pro
CONFIG_LIBKATE noncore/apps/tinykate/libkate libkate.pro
CONFIG_LIBMAD core/multimedia/opieplayer/libmad libmad.pro
CONFIG_LIBMAIL noncore/unsupported/mail2/libmail libmail.pro
CONFIG_LIBMAILWRAPPER noncore/net/mail/libmailwrapper libmailwrapper.pro
CONFIG_LIBMPEG3 core/multimedia/opieplayer/libmpeg3 libmpeg3.pro
CONFIG_LIBOPIE2CORE libopie2/opiecore opiecore.pro
CONFIG_LIBOPIE2DB libopie2/opiedb opiedb.pro
CONFIG_LIBOPIE2EXAMPLES libopie2/examples examples.pro
CONFIG_LIBOPIE2MM libopie2/opiemm opiemm.pro
CONFIG_LIBOPIE2NET libopie2/opienet opienet.pro
CONFIG_LIBOPIE2PIM libopie2/opiepim opiepim.pro
CONFIG_LIBOPIE2UI libopie2/opieui opieui.pro
CONFIG_LIBOPIE libopie libopie.pro
CONFIG_LIBOPIE_PIM libopie/pim pim.pro
CONFIG_LIBOPIETOOTH noncore/net/opietooth/lib lib.pro
CONFIG_LIBQPE library library.pro
CONFIG_LIBQPE-X11 x11/libqpe-x11 libqpe-x11.pro
CONFIG_LIBQTAUX libqtaux libqtaux.pro
CONFIG_LIBSQL libsql libsql.pro
CONFIG_LIBTREMOR core/multimedia/opieplayer/vorbis/tremor tremor.pro
CONFIG_LIBTREMORPLUGIN core/multimedia/opieplayer/vorbis libtremor.pro
CONFIG_LIGHT-AND-POWER core/settings/light-and-power light-and-power.pro
CONFIG_LIQUID noncore/styles/liquid liquid.pro
CONFIG_LOGOUTAPPLET core/applets/logoutapplet logoutapplet.pro
CONFIG_MAIL3 noncore/net/mail mail.pro
CONFIG_MAILAPPLET noncore/net/mail/taskbarapplet taskbarapplet.pro
-CONFIG_MAILIT noncore/net/mailit mailit.pro
+CONFIG_MAILIT noncore/unsupported/mailit mailit.pro
CONFIG_MAIN_TAB_EXAMPLE examples/main-tab example.pro
CONFIG_MEDIUMMOUNT noncore/settings/mediummount mediummount.pro
CONFIG_MEMORYAPPLET noncore/applets/memoryapplet memoryapplet.pro
CONFIG_METAL noncore/styles/metal metal.pro
CONFIG_MINDBREAKER noncore/games/mindbreaker mindbreaker.pro
CONFIG_MINESWEEP noncore/games/minesweep minesweep.pro
CONFIG_MOBILEMSG noncore/comm/mobilemsg mobilemsg.pro
CONFIG_MODPLUG core/multimedia/opieplayer/modplug modplug.pro
CONFIG_MULTIKEYAPPLET core/applets/multikeyapplet multikeyapplet.pro
CONFIG_MULTIKEY inputmethods/multikey multikey.pro
CONFIG_NETSYSTEMTIME noncore/settings/netsystemtime netsystemtime.pro
CONFIG_NETWORKAPPLET noncore/applets/networkapplet networkapplet.pro
CONFIG_NETWORKSETUP noncore/settings/networksettings networksettings.pro
CONFIG_NOTESAPPLET noncore/applets/notesapplet notesapplet.pro
CONFIG_OAPP core/apps/oapp oapp.pro
CONFIG_OBEX core/applets/obex2 obex.pro
CONFIG_ODICT noncore/apps/odict odict.pro
CONFIG_OIPKG noncore/unsupported/oipkg oipkg.pro
CONFIG_OPIEALARM core/opiealarm
CONFIG_OPIE-CONSOLE noncore/apps/opie-console opie-console.pro
CONFIG_OPIEFTP noncore/net/opieftp opieftp.pro
CONFIG_OPIEIRC noncore/net/opieirc opieirc.pro
CONFIG_OPIE-LOGIN core/opie-login opie-login.pro
CONFIG_OPIEMAIL2 noncore/unsupported/mail2 mail.pro
CONFIG_OPIEPLAYER2 noncore/multimedia/opieplayer2 opieplayer2.pro
CONFIG_OPIEPLAYER core/multimedia/opieplayer opieplayer.pro
CONFIG_OPIE-RDESKTOP noncore/net/opierdesktop opierdesktop.pro
CONFIG_OPIE-READER noncore/apps/opie-reader opie-reader.pro
CONFIG_OPIEREC noncore/multimedia/opierec opierec.pro
CONFIG_OPIE-SHEET noncore/apps/opie-sheet opie-sheet.pro
CONFIG_OPIE-SH noncore/tools/opie-sh opie-sh.pro
CONFIG_OPIETOOTH-APPLET noncore/net/opietooth/applet applet.pro
CONFIG_OPIETOOTH-MANAGER noncore/net/opietooth/manager manager.pro
CONFIG_OPIE-WRITE noncore/apps/opie-write opie-write.pro
CONFIG_OSEARCH core/pim/osearch osearch.pro
CONFIG_OXYGEN noncore/apps/oxygen oxygen.pro
CONFIG_PACKAGEMANAGER noncore/settings/packagemanager packagemanager.pro
CONFIG_PARASHOOT noncore/games/parashoot parashoot.pro
CONFIG_PICKBOARD inputmethods/pickboard pickboard.pro
CONFIG_POWERCHORD noncore/multimedia/powerchord powerchord.pro
CONFIG_PPP noncore/settings/networksettings/ppp ppp.pro
CONFIG_QASHMONEY noncore/apps/qashmoney qashmoney.pro
CONFIG_QASTEROIDS noncore/games/qasteroids qasteroids.pro
CONFIG_QCOP core/apps/qcop qcop.pro
CONFIG_QPDF noncore/unsupported/qpdf qpdf.pro
CONFIG_QUICKLAUNCHER core/tools/quicklauncher quicklauncher.pro
CONFIG_QWS core/qws qws.pro
CONFIG_REMOTE noncore/tools/remote remote.pro
CONFIG_RESTARTAPPLET2 core/applets/restartapplet2 restartapplet2.pro
CONFIG_RESTARTAPPLET core/applets/restartapplet restartapplet.pro
CONFIG_ROTATEAPPLET core/applets/rotateapplet rotateapplet.pro
CONFIG_ROTATION noncore/settings/rotation rotation.pro
CONFIG_RUNAPPLET core/applets/runapplet runapplet.pro
CONFIG_SCREENSHOTAPPLET core/applets/screenshotapplet screenshotapplet.pro
CONFIG_SECURITY core/settings/security security.pro
CONFIG_SFCAVE noncore/games/sfcave sfcave.pro
CONFIG_SFCAVE-SDL noncore/games/sfcave-sdl sfcave-sdl.pro
CONFIG_SHOWIMG noncore/multimedia/showimg showimg.pro
CONFIG_SIMPLE_EXAMPLE examples/simple example.pro
CONFIG_SIMPLE_ICON examples/simple-icon example.pro
CONFIG_SIMPLE_MAIN examples/simple-main example.pro
CONFIG_SIMPLE noncore/tools/calc2/simple simple.pro
CONFIG_SIMPLE_PIM examples/simple-pim example.pro
CONFIG_SINGLE single single.pro
CONFIG_SNAKE noncore/games/snake snake.pro
CONFIG_SOLITAIRE noncore/games/solitaire solitaire.pro
CONFIG_SOUND noncore/settings/sound sound.pro
CONFIG_SSHKEYS noncore/settings/sshkeys sshkeys.pro
CONFIG_SUSPENDAPPLET core/applets/suspendapplet suspendapplet.pro
CONFIG_SYSINFO noncore/settings/sysinfo sysinfo.pro
CONFIG_TABLEVIEWER noncore/apps/tableviewer tableviewer.pro
CONFIG_TABMANAGER noncore/settings/tabmanager tabmanager.pro
CONFIG_TABOAPP core/apps/taboapp taboapp.pro
CONFIG_TEST libsql/test test.pro
CONFIG_TEST noncore/apps/opie-console/test test.pro
CONFIG_TETRIX noncore/games/tetrix tetrix.pro
CONFIG_TEXTEDIT core/apps/textedit textedit.pro
CONFIG_THEME noncore/styles/theme theme.pro
CONFIG_TICTAC noncore/games/tictac tictac.pro
CONFIG_TINYKATE noncore/apps/tinykate tinykate.pro
CONFIG_TODAY_ADDRESSBOOK core/pim/today/plugins/addressbook addressbook.pro
CONFIG_TODAY core/pim/today today.pro
CONFIG_TODAY_DATEBOOK core/pim/today/plugins/datebook datebook.pro
CONFIG_TODAY_EXAMPLE examples/todayplugin example.pro
CONFIG_TODAY_FORTUNE noncore/todayplugins/fortune fortune.pro
CONFIG_TODAY_MAIL core/pim/today/plugins/mail mail.pro
CONFIG_TODAY_STOCKTICKERLIB noncore/todayplugins/stockticker/stocktickerlib stocktickerlib.pro
CONFIG_TODAY_STOCKTICKER noncore/todayplugins/stockticker/stockticker stockticker.pro
CONFIG_TODAY_TODOLIST core/pim/today/plugins/todolist todolist.pro
CONFIG_TODAY_WEATHER noncore/todayplugins/weather weather.pro
CONFIG_TODO core/pim/todo todo.pro
CONFIG_TONLEITER noncore/multimedia/tonleiter tonleiter.pro
CONFIG_TRACKER noncore/multimedia/tracker tracker.pro
CONFIG_UBROWSER noncore/net/ubrowser ubrowser.pro
CONFIG_UNIKEYBOARD inputmethods/unikeyboard unikeyboard.pro
CONFIG_USERMANAGER noncore/settings/usermanager usermanager.pro
CONFIG_VMEMO core/applets/vmemo vmemo.pro
CONFIG_VOLUMEAPPLET core/applets/volumeapplet volumeapplet.pro
CONFIG_VTAPPLET core/applets/vtapplet vtapplet.pro
CONFIG_WAVPLUGIN core/multimedia/opieplayer/wavplugin wavplugin.pro
CONFIG_WELLENREITER noncore/net/wellenreiter wellenreiter.pro
CONFIG_WIRELESSAPPLET noncore/applets/wirelessapplet wirelessapplet.pro
CONFIG_WLAN noncore/settings/networksettings/wlan wlan.pro
CONFIG_WORDGAME noncore/games/wordgame wordgame.pro
CONFIG_YATZEE noncore/games/oyatzee oyatzee.pro
CONFIG_ZLINES noncore/games/zlines zlines.pro
CONFIG_ZSAFE noncore/apps/zsafe zsafe.pro
CONFIG_ZSAME noncore/games/zsame zsame.pro