-rw-r--r-- | noncore/net/mailit/config.in | 2 | ||||
-rw-r--r-- | noncore/net/mailit/popclient.cpp | 3 | ||||
-rw-r--r-- | noncore/net/mailit/resource.cpp | 136 | ||||
-rw-r--r-- | noncore/net/mailit/resource.h | 80 | ||||
-rw-r--r-- | noncore/net/mailit/smtpclient.cpp | 6 | ||||
-rw-r--r-- | noncore/net/mailit/viewatt.cpp | 2 |
6 files changed, 7 insertions, 222 deletions
diff --git a/noncore/net/mailit/config.in b/noncore/net/mailit/config.in index 142b840..2b56b5f 100644 --- a/noncore/net/mailit/config.in +++ b/noncore/net/mailit/config.in @@ -1,4 +1,4 @@ config MAILIT - boolean "opie-mailit (a simple POP3 email client)" + boolean "mailit" default "n" depends ( LIBQPE || LIBQPE-X11 ) diff --git a/noncore/net/mailit/popclient.cpp b/noncore/net/mailit/popclient.cpp index 5da3bcb..1df6b2b 100644 --- a/noncore/net/mailit/popclient.cpp +++ b/noncore/net/mailit/popclient.cpp @@ -1,91 +1,92 @@ /********************************************************************** ** 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; } @@ -146,97 +147,97 @@ void PopClient::incomingData() 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) { + 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); } diff --git a/noncore/net/mailit/resource.cpp b/noncore/net/mailit/resource.cpp deleted file mode 100644 index dc19880..0000000 --- a/noncore/net/mailit/resource.cpp +++ b/dev/null @@ -1,136 +0,0 @@ -/********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. -** -** This file is part of Qtopia 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 "qpeapplication.h" -#include "resource.h" -#include <qdir.h> -#include <qfile.h> -#include <qregexp.h> -#include <qpixmapcache.h> -#include <qpainter.h> - -#include "inlinepics_p.h" - -/*! - \class Resource resource.h - \brief The Resource class provides access to named resources. - - The resources may be provided from files or other sources. -*/ - -/*! - \fn Resource::Resource() - \internal -*/ - -/*! - Returns the QPixmap named \a pix. You should avoid including - any filename type extension (eg. .png, .xpm). -*/ -QPixmap Resource::loadPixmap( const QString &pix ) -{ - QPixmap pm; - QString key="QPE_"+pix; - if ( !QPixmapCache::find(key,pm) ) { - pm.convertFromImage(loadImage(pix)); - QPixmapCache::insert(key,pm); - } - return pm; -} - -/*! - Returns the QBitmap named \a pix. You should avoid including - any filename type extension (eg. .png, .xpm). -*/ -QBitmap Resource::loadBitmap( const QString &pix ) -{ - QBitmap bm; - bm = loadPixmap(pix); - return bm; -} - -/*! - Returns the filename of a pixmap named \a pix. You should avoid including - any filename type extension (eg. .png, .xpm). - - Normally you will use loadPixmap() rather than this function. -*/ -QString Resource::findPixmap( const QString &pix ) -{ - QString picsPath = QPEApplication::qpeDir() + "pics/"; - - if ( QFile( picsPath + pix + ".png").exists() ) - return picsPath + pix + ".png"; - else if ( QFile( picsPath + pix + ".xpm").exists() ) - return picsPath + pix + ".xpm"; - else if ( QFile( picsPath + pix ).exists() ) - return picsPath + pix; - - //qDebug("Cannot find pixmap: %s", pix.latin1()); - return QString(); -} - -/*! - Returns a sound file for a sound named \a name. - You should avoid including any filename type extension (eg. .wav, .au, .mp3). -*/ -QString Resource::findSound( const QString &name ) -{ - QString picsPath = QPEApplication::qpeDir() + "sounds/"; - - QString result; - if ( QFile( (result = picsPath + name + ".wav") ).exists() ) - return result; - - return QString(); -} - -/*! - Returns a list of all sound names. -*/ -QStringList Resource::allSounds() -{ - QDir resourcedir( QPEApplication::qpeDir() + "sounds/", "*.wav" ); - QStringList entries = resourcedir.entryList(); - QStringList result; - for (QStringList::Iterator i=entries.begin(); i != entries.end(); ++i) - result.append((*i).replace(QRegExp("\\.wav"),"")); - return result; -} - -/*! - Returns the QImage named \a name. You should avoid including - any filename type extension (eg. .png, .xpm). -*/ -QImage Resource::loadImage( const QString &name) -{ - QImage img = qembed_findImage(name.latin1()); - if ( img.isNull() ) - return QImage(findPixmap(name)); - return img; -} - -/*! - \fn QIconSet Resource::loadIconSet( const QString &name ) - - Returns a QIconSet for the pixmap named \a name. A disabled icon is - generated that conforms to the Qtopia look & feel. You should avoid - including any filename type extension (eg. .png, .xpm). -*/ diff --git a/noncore/net/mailit/resource.h b/noncore/net/mailit/resource.h deleted file mode 100644 index 982c58a..0000000 --- a/noncore/net/mailit/resource.h +++ b/dev/null @@ -1,80 +0,0 @@ -/********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. -** -** This file is part of Qtopia 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 PIXMAPLOADER_H -#define PIXMAPLOADER_H - -#include <qimage.h> -#include <qbitmap.h> -#include <qiconset.h> -#include <qstringlist.h> - -class Resource -{ -public: - Resource() {} - - static QImage loadImage( const QString &name); - - static QPixmap loadPixmap( const QString &name ); - static QBitmap loadBitmap( const QString &name ); - static QString findPixmap( const QString &name ); - - static QIconSet loadIconSet( const QString &name ); - - static QString findSound( const QString &name ); - static QStringList allSounds(); -}; - -// Inline for compatibility with SHARP ROMs -inline QIconSet Resource::loadIconSet( const QString &pix ) -{ - QImage img = loadImage( pix ); - QPixmap pm; - pm.convertFromImage( img ); - QIconSet is( pm ); - QIconSet::Size size = pm.width() <= 22 ? QIconSet::Small : QIconSet::Large; - - QPixmap dpm = loadPixmap( pix + "_disabled" ); - -#ifndef QT_NO_DEPTH_32 // have alpha-blended pixmaps - if ( dpm.isNull() ) { - QImage dimg( img.width(), img.height(), 32 ); - for ( int y = 0; y < img.height(); y++ ) { - for ( int x = 0; x < img.width(); x++ ) { - QRgb p = img.pixel( x, y ); - uint a = (p & 0xff000000) / 3; - p = (p & 0x00ffffff) | (a & 0xff000000); - dimg.setPixel( x, y, p ); - } - } - - dimg.setAlphaBuffer( TRUE ); - dpm.convertFromImage( dimg ); - } -#endif - - if ( !dpm.isNull() ) - is.setPixmap( dpm, size, QIconSet::Disabled ); - - return is; -} - - -#endif diff --git a/noncore/net/mailit/smtpclient.cpp b/noncore/net/mailit/smtpclient.cpp index 5b5ef52..51ca50b 100644 --- a/noncore/net/mailit/smtpclient.cpp +++ b/noncore/net/mailit/smtpclient.cpp @@ -59,112 +59,112 @@ void SmtpClient::addMail(const QString &from, const QString &subject, const QStr 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"; + *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"; + *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"; + *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/viewatt.cpp b/noncore/net/mailit/viewatt.cpp index 293e137..3515ba5 100644 --- a/noncore/net/mailit/viewatt.cpp +++ b/noncore/net/mailit/viewatt.cpp @@ -1,68 +1,68 @@ /********************************************************************** ** 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 "resource.h" +#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); |