summaryrefslogtreecommitdiff
path: root/noncore/net/mail/mainwindow.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/mainwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/mainwindow.cpp151
1 files changed, 26 insertions, 125 deletions
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp
index e16f853..c38392c 100644
--- a/noncore/net/mail/mainwindow.cpp
+++ b/noncore/net/mail/mainwindow.cpp
@@ -4,17 +4,12 @@
4#include <qtimer.h> 4#include <qtimer.h>
5#include <qlayout.h> 5#include <qlayout.h>
6#include <qmessagebox.h> 6#include <qmessagebox.h>
7#include <qtextstream.h>
8 7
9#include <qpe/qpeapplication.h> 8#include <qpe/qpeapplication.h>
10#include <qpe/resource.h> 9#include <qpe/resource.h>
11 10
12
13#include "defines.h" 11#include "defines.h"
14#include "mainwindow.h" 12#include "mainwindow.h"
15#include "viewmail.h"
16#include <libmailwrapper/mailtypes.h>
17#include "mailistviewitem.h"
18 13
19 14
20MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) 15MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
@@ -127,6 +122,16 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
127 connect( mailView, SIGNAL( mouseButtonPressed(int, QListViewItem *,const QPoint&,int ) ),this, 122 connect( mailView, SIGNAL( mouseButtonPressed(int, QListViewItem *,const QPoint&,int ) ),this,
128 SLOT( mailHold( int, QListViewItem *,const QPoint&,int ) ) ); 123 SLOT( mailHold( int, QListViewItem *,const QPoint&,int ) ) );
129 connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*))); 124 connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*)));
125 connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) );
126 connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) );
127// connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) );
128 connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) );
129 // Added by Stefan Eilers to allow starting by addressbook..
130 // copied from old mail2
131#if !defined(QT_NO_COP)
132 connect( qApp, SIGNAL( appMessage( const QCString&, const QByteArray& ) ),
133 this, SLOT( appMessage( const QCString&, const QByteArray& ) ) );
134#endif
130 135
131 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); 136 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) );
132} 137}
@@ -135,6 +140,11 @@ MainWindow::~MainWindow()
135{ 140{
136} 141}
137 142
143void MainWindow::appMessage(const QCString &, const QByteArray &)
144{
145 qDebug("appMessage not reached");
146}
147
138void MainWindow::slotAdjustLayout() { 148void MainWindow::slotAdjustLayout() {
139 149
140 QWidget *d = QApplication::desktop(); 150 QWidget *d = QApplication::desktop();
@@ -164,141 +174,32 @@ void MainWindow::slotEditSettings()
164{ 174{
165} 175}
166 176
167void MainWindow::slotShowFolders( bool show ) 177void MainWindow::slotShowFolders( bool )
168{ 178{
169 qDebug( "Show Folders" ); 179 qDebug( "slotShowFolders not reached" );
170 if ( show && folderView->isHidden() ) {
171 qDebug( "-> showing" );
172 folderView->show();
173 } else if ( !show && !folderView->isHidden() ) {
174 qDebug( "-> hiding" );
175 folderView->hide();
176 }
177} 180}
178 181
179void MainWindow::refreshMailView(QList<RecMail>*list) 182void MainWindow::refreshMailView(QList<RecMail>*)
180{ 183{
181 MailListViewItem*item = 0; 184 qDebug( "refreshMailView not reached" );
182 mailView->clear();
183 for (unsigned int i = 0; i < list->count();++i) {
184 item = new MailListViewItem(mailView,item);
185 item->storeData(*(list->at(i)));
186 item->showEntry();
187 }
188} 185}
189void MainWindow::mailLeftClicked(int button, QListViewItem *item,const QPoint&,int ) 186
187void MainWindow::mailLeftClicked(int, QListViewItem *,const QPoint&,int )
190{ 188{
191 /* just LEFT button - or tap with stylus on pda */ 189 qDebug( "mailLeftClicked not reached" );
192 if (button!=1) return;
193 if (!item) return;
194 displayMail();
195} 190}
196 191
197void MainWindow::displayMail() 192void MainWindow::displayMail()
198{ 193{
199 QListViewItem*item = mailView->currentItem(); 194 qDebug("displayMail not reached");
200 if (!item) return;
201 RecMail mail = ((MailListViewItem*)item)->data();
202 RecBody body = folderView->fetchBody(mail);
203 ViewMail readMail( this );
204 readMail.setBody( body );
205 readMail.setMail( mail );
206 readMail.showMaximized();
207 readMail.exec();
208
209 if ( readMail.deleted ) {
210 folderView->refreshCurrent();
211 } else {
212 ( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "") );
213 }
214} 195}
215 196
216void MainWindow::slotDeleteMail() 197void MainWindow::slotDeleteMail()
217{ 198{
218 if (!mailView->currentItem()) return; 199 qDebug("deleteMail not reached");
219 RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data();
220 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 ) {
221 mail.Wrapper()->deleteMail( mail );
222 folderView->refreshCurrent();
223 }
224}
225
226void MainWindow::mailHold(int button, QListViewItem *item,const QPoint&,int )
227{
228 /* just the RIGHT button - or hold on pda */
229 if (button!=2) {return;}
230 qDebug("Event right/hold");
231 if (!item) return;
232 QPopupMenu *m = new QPopupMenu(0);
233 if (m) {
234 m->insertItem(tr("Read this mail"),this,SLOT(displayMail()));
235 m->insertItem(tr("Delete this mail"),this,SLOT(slotDeleteMail()));
236 m->setFocus();
237 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
238 delete m;
239 }
240}
241
242MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item )
243 :QListViewItem(parent,item),mail_data()
244{
245}
246
247void MailListViewItem::showEntry()
248{
249 if ( mail_data.getFlags().testBit( FLAG_ANSWERED ) == true) {
250 setPixmap( 0, Resource::loadPixmap( "mail/kmmsgreplied") );
251 } else if ( mail_data.getFlags().testBit( FLAG_SEEN ) == true ) {
252 /* I think it looks nicer if there are not such a log of icons but only on mails
253 replied or new - Alwin*/
254 //setPixmap( 0, Resource::loadPixmap( "mail/kmmsgunseen") );
255 } else {
256 setPixmap( 0, Resource::loadPixmap( "mail/kmmsgnew") );
257 }
258 double s = mail_data.Msgsize();
259 int w;
260 w=0;
261
262 while (s>1024) {
263 s/=1024;
264 ++w;
265 if (w>=2) break;
266 }
267
268 QString q="";
269 QString fsize="";
270 switch(w) {
271 case 1:
272 q="k";
273 break;
274 case 2:
275 q="M";
276 break;
277 default:
278 break;
279 }
280
281 {
282 QTextOStream o(&fsize);
283 if (w>0) o.precision(2); else o.precision(0);
284 o.setf(QTextStream::fixed);
285 o << s << " " << q << "Byte";
286 }
287
288 setText(1,mail_data.getSubject());
289 setText(2,mail_data.getFrom());
290 setText(3,fsize);
291 setText(4,mail_data.getDate());
292} 200}
293 201
294void MailListViewItem::storeData(const RecMail&data) 202void MainWindow::mailHold(int, QListViewItem *,const QPoint&,int )
295{ 203{
296 mail_data = data; 204 qDebug("mailHold not reached");
297} 205}
298
299const RecMail& MailListViewItem::data()const
300{
301 return mail_data;
302}
303
304