author | alwin <alwin> | 2004-01-08 14:04:54 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-01-08 14:04:54 (UTC) |
commit | ab6a32266c8fb625e782c601c9729af7f98904f6 (patch) (side-by-side diff) | |
tree | 1457c421109359bdaa50082f2640d33ac4d74cc2 /noncore/net/mail/opiemail.cpp | |
parent | b85bc4484bcc0a53557b4759c3e9e58dc9059138 (diff) | |
download | opie-ab6a32266c8fb625e782c601c9729af7f98904f6.zip opie-ab6a32266c8fb625e782c601c9729af7f98904f6.tar.gz opie-ab6a32266c8fb625e782c601c9729af7f98904f6.tar.bz2 |
- store single message to another folder implemented
- cleaned code in mainwindow and opiemail.cpp
Diffstat (limited to 'noncore/net/mail/opiemail.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/opiemail.cpp | 119 |
1 files changed, 105 insertions, 14 deletions
diff --git a/noncore/net/mail/opiemail.cpp b/noncore/net/mail/opiemail.cpp index c888708..dee3f70 100644 --- a/noncore/net/mail/opiemail.cpp +++ b/noncore/net/mail/opiemail.cpp @@ -7,4 +7,9 @@ #include <qpe/qcopenvelope_qws.h> +#include <qpe/resource.h> #include <qaction.h> #include <qapplication.h> +#include <libmailwrapper/mailtypes.h> +#include "mailistviewitem.h" +#include "viewmail.h" +#include "selectstore.h" @@ -16,16 +21,2 @@ OpieMail::OpieMail( QWidget *parent, const char *name, WFlags flags ) folderView->populate( settings->getAccounts() ); - - connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) ); - connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) ); -// connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) ); - connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) ); - // Added by Stefan Eilers to allow starting by addressbook.. - // copied from old mail2 -#if !defined(QT_NO_COP) - connect( qApp, SIGNAL( appMessage( const QCString&, const QByteArray& ) ), - this, SLOT( appMessage( const QCString&, const QByteArray& ) ) ); -#endif - - - } @@ -120 +111,101 @@ void OpieMail::slotEditAccounts() +void OpieMail::displayMail() +{ + QListViewItem*item = mailView->currentItem(); + if (!item) return; + RecMail mail = ((MailListViewItem*)item)->data(); + RecBody body = folderView->fetchBody(mail); + ViewMail readMail( this ); + readMail.setBody( body ); + readMail.setMail( mail ); + readMail.showMaximized(); + readMail.exec(); + + if ( readMail.deleted ) { + folderView->refreshCurrent(); + } else { + ( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "") ); + } +} + +void OpieMail::slotDeleteMail() +{ + if (!mailView->currentItem()) return; + RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data(); + if ( QMessageBox::warning(this, tr("Delete Mail"), QString( tr("<p>Do you really want to delete this mail? <br><br>" ) + mail.getFrom() + " - " + mail.getSubject() ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) { + mail.Wrapper()->deleteMail( mail ); + folderView->refreshCurrent(); + } +} + +void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int ) +{ + /* just the RIGHT button - or hold on pda */ + if (button!=2) {return;} + qDebug("Event right/hold"); + if (!item) return; + QPopupMenu *m = new QPopupMenu(0); + if (m) { + m->insertItem(tr("Read this mail"),this,SLOT(displayMail())); + m->insertItem(tr("Delete this mail"),this,SLOT(slotDeleteMail())); + m->insertItem(tr("Copy/Move this mail"),this,SLOT(slotMoveCopyMail())); + m->setFocus(); + m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); + delete m; + } +} + +void OpieMail::slotShowFolders( bool show ) +{ + qDebug( "Show Folders" ); + if ( show && folderView->isHidden() ) { + qDebug( "-> showing" ); + folderView->show(); + } else if ( !show && !folderView->isHidden() ) { + qDebug( "-> hiding" ); + folderView->hide(); + } +} + +void OpieMail::refreshMailView(QList<RecMail>*list) +{ + MailListViewItem*item = 0; + mailView->clear(); + for (unsigned int i = 0; i < list->count();++i) { + item = new MailListViewItem(mailView,item); + item->storeData(*(list->at(i))); + item->showEntry(); + } +} + +void OpieMail::mailLeftClicked(int button, QListViewItem *item,const QPoint&,int ) +{ + /* just LEFT button - or tap with stylus on pda */ + if (button!=1) return; + if (!item) return; + displayMail(); +} + +void OpieMail::slotMoveCopyMail() +{ + if (!mailView->currentItem()) return; + RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data(); + AbstractMail*targetMail = 0; + QString targetFolder = ""; + Selectstore sels; + folderView->setupFolderselect(&sels); + if (!sels.exec()) return; + targetMail = sels.currentMail(); + targetFolder = sels.currentFolder(); + if ( (mail.Wrapper()==targetMail && mail.getMbox()==targetFolder) || + targetFolder.isEmpty()) { + return; + } + if (sels.newFolder() && !targetMail->createMbox(targetFolder)) { + QMessageBox::critical(0,tr("Error creating new Folder"), + tr("<center>Error while creating<br>new folder - breaking.</center>")); + return; + } + mail.Wrapper()->mvcpMail(mail,targetFolder,targetMail,sels.moveMails()); + folderView->refreshCurrent(); +} |