summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/mainwindow.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp
index 3c659e4..d2e887b 100644
--- a/noncore/net/mail/mainwindow.cpp
+++ b/noncore/net/mail/mainwindow.cpp
@@ -1,276 +1,276 @@
1#include <qlabel.h> 1#include <qlabel.h>
2#include <qvbox.h> 2#include <qvbox.h>
3#include <qheader.h> 3#include <qheader.h>
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> 7#include <qtextstream.h>
8 8
9#include <qpe/qpeapplication.h> 9#include <qpe/qpeapplication.h>
10#include <qpe/resource.h> 10#include <qpe/resource.h>
11 11
12 12
13#include "defines.h" 13#include "defines.h"
14#include "mainwindow.h" 14#include "mainwindow.h"
15#include "viewmail.h" 15#include "viewmail.h"
16#include <libmailwrapper/mailtypes.h> 16#include <libmailwrapper/mailtypes.h>
17#include "mailistviewitem.h" 17#include "mailistviewitem.h"
18 18
19 19
20MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) 20MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
21 : QMainWindow( parent, name, flags ) 21 : QMainWindow( parent, name, flags )
22{ 22{
23 23
24 setCaption( tr( "Mail" ) ); 24 setCaption( tr( "Mail" ) );
25 setToolBarsMovable( false ); 25 setToolBarsMovable( false );
26 26
27 toolBar = new QToolBar( this ); 27 toolBar = new QToolBar( this );
28 menuBar = new QMenuBar( toolBar ); 28 menuBar = new QMenuBar( toolBar );
29 mailMenu = new QPopupMenu( menuBar ); 29 mailMenu = new QPopupMenu( menuBar );
30 menuBar->insertItem( tr( "Mail" ), mailMenu ); 30 menuBar->insertItem( tr( "Mail" ), mailMenu );
31 settingsMenu = new QPopupMenu( menuBar ); 31 settingsMenu = new QPopupMenu( menuBar );
32 menuBar->insertItem( tr( "Settings" ), settingsMenu ); 32 menuBar->insertItem( tr( "Settings" ), settingsMenu );
33 33
34 addToolBar( toolBar ); 34 addToolBar( toolBar );
35 toolBar->setHorizontalStretchable( true ); 35 toolBar->setHorizontalStretchable( true );
36 36
37 QLabel *spacer = new QLabel( toolBar ); 37 QLabel *spacer = new QLabel( toolBar );
38 spacer->setBackgroundMode( QWidget::PaletteButton ); 38 spacer->setBackgroundMode( QWidget::PaletteButton );
39 toolBar->setStretchableWidget( spacer ); 39 toolBar->setStretchableWidget( spacer );
40 40
41 composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL, 41 composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL,
42 0, 0, this ); 42 0, 0, this );
43 composeMail->addTo( toolBar ); 43 composeMail->addTo( toolBar );
44 composeMail->addTo( mailMenu ); 44 composeMail->addTo( mailMenu );
45 45
46 sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED, 46 sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED,
47 0, 0, this ); 47 0, 0, this );
48 sendQueued->addTo( toolBar ); 48 sendQueued->addTo( toolBar );
49 sendQueued->addTo( mailMenu ); 49 sendQueued->addTo( mailMenu );
50 50
51 /* 51 /*
52 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC, 52 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC,
53 0, 0, this ); 53 0, 0, this );
54 syncFolders->addTo( toolBar ); 54 syncFolders->addTo( toolBar );
55 syncFolders->addTo( mailMenu ); 55 syncFolders->addTo( mailMenu );
56 */ 56 */
57 57
58 showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS, 58 showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS,
59 0, 0, this, 0, true ); 59 0, 0, this, 0, true );
60 showFolders->addTo( toolBar ); 60 showFolders->addTo( toolBar );
61 showFolders->addTo( mailMenu ); 61 showFolders->addTo( mailMenu );
62 showFolders->setOn( true ); 62 showFolders->setOn( true );
63 connect(showFolders, SIGNAL( toggled( bool ) ), 63 connect(showFolders, SIGNAL( toggled( bool ) ),
64 SLOT( slotShowFolders( bool ) ) ); 64 SLOT( slotShowFolders( bool ) ) );
65 65
66 /* 66 /*
67 searchMails = new QAction( tr( "Search mails" ), QIconSet( Resource::loadPixmap("find") ), 67 searchMails = new QAction( tr( "Search mails" ), QIconSet( Resource::loadPixmap("find") ),
68 0, 0, this ); 68 0, 0, this );
69 searchMails->addTo( toolBar ); 69 searchMails->addTo( toolBar );
70 searchMails->addTo( mailMenu ); 70 searchMails->addTo( mailMenu );
71 */ 71 */
72 72
73 deleteMails = new QAction(tr("Delete Mail"), QIconSet( Resource::loadPixmap("trash")), 0, 0, this); 73 deleteMails = new QAction(tr("Delete Mail"), QIconSet( Resource::loadPixmap("trash")), 0, 0, this);
74 deleteMails->addTo( toolBar ); 74 deleteMails->addTo( toolBar );
75 deleteMails->addTo( mailMenu ); 75 deleteMails->addTo( mailMenu );
76 connect( deleteMails, SIGNAL( activated() ), 76 connect( deleteMails, SIGNAL( activated() ),
77 SLOT( slotDeleteMail() ) ); 77 SLOT( slotDeleteMail() ) );
78 78
79 editSettings = new QAction( tr( "Edit settings" ), QIconSet( Resource::loadPixmap("SettingsIcon") ) , 79 editSettings = new QAction( tr( "Edit settings" ), QIconSet( Resource::loadPixmap("SettingsIcon") ) ,
80 0, 0, this ); 80 0, 0, this );
81 editSettings->addTo( settingsMenu ); 81 editSettings->addTo( settingsMenu );
82 connect( editSettings, SIGNAL( activated() ), 82 connect( editSettings, SIGNAL( activated() ),
83 SLOT( slotEditSettings() ) ); 83 SLOT( slotEditSettings() ) );
84 editAccounts = new QAction( tr( "Configure accounts" ), QIconSet( Resource::loadPixmap("mail/editaccounts") ) , 84 editAccounts = new QAction( tr( "Configure accounts" ), QIconSet( Resource::loadPixmap("SettingsIcon") ) ,
85 0, 0, this ); 85 0, 0, this );
86 editAccounts->addTo( settingsMenu ); 86 editAccounts->addTo( settingsMenu );
87 87
88 //setCentralWidget( view ); 88 //setCentralWidget( view );
89 89
90 QVBox* wrapperBox = new QVBox( this ); 90 QVBox* wrapperBox = new QVBox( this );
91 setCentralWidget( wrapperBox ); 91 setCentralWidget( wrapperBox );
92 92
93 QWidget *view = new QWidget( wrapperBox ); 93 QWidget *view = new QWidget( wrapperBox );
94 94
95 layout = new QBoxLayout ( view, QBoxLayout::LeftToRight ); 95 layout = new QBoxLayout ( view, QBoxLayout::LeftToRight );
96 96
97 folderView = new AccountView( view ); 97 folderView = new AccountView( view );
98 folderView->header()->hide(); 98 folderView->header()->hide();
99 folderView->setRootIsDecorated( true ); 99 folderView->setRootIsDecorated( true );
100 folderView->addColumn( tr( "Mailbox" ) ); 100 folderView->addColumn( tr( "Mailbox" ) );
101 101
102 layout->addWidget( folderView ); 102 layout->addWidget( folderView );
103 103
104 mailView = new QListView( view ); 104 mailView = new QListView( view );
105 mailView->addColumn( tr( "" ) ); 105 mailView->addColumn( tr( "" ) );
106 mailView->addColumn( tr( "Subject" ),QListView::Manual ); 106 mailView->addColumn( tr( "Subject" ),QListView::Manual );
107 mailView->addColumn( tr( "Sender" ),QListView::Manual ); 107 mailView->addColumn( tr( "Sender" ),QListView::Manual );
108 mailView->addColumn( tr( "Size" ),QListView::Manual); 108 mailView->addColumn( tr( "Size" ),QListView::Manual);
109 mailView->addColumn( tr( "Date" )); 109 mailView->addColumn( tr( "Date" ));
110 mailView->setAllColumnsShowFocus(true); 110 mailView->setAllColumnsShowFocus(true);
111 mailView->setSorting(-1); 111 mailView->setSorting(-1);
112 112
113 statusWidget = new StatusWidget( wrapperBox ); 113 statusWidget = new StatusWidget( wrapperBox );
114 statusWidget->hide(); 114 statusWidget->hide();
115 115
116 layout->addWidget( mailView ); 116 layout->addWidget( mailView );
117 layout->setStretchFactor( folderView, 1 ); 117 layout->setStretchFactor( folderView, 1 );
118 layout->setStretchFactor( mailView, 2 ); 118 layout->setStretchFactor( mailView, 2 );
119 119
120 slotAdjustLayout(); 120 slotAdjustLayout();
121 121
122 QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); 122 QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold);
123 QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); 123 QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold);
124 124
125 connect( mailView, SIGNAL( mouseButtonClicked(int, QListViewItem *,const QPoint&,int ) ),this, 125 connect( mailView, SIGNAL( mouseButtonClicked(int, QListViewItem *,const QPoint&,int ) ),this,
126 SLOT( mailLeftClicked( int, QListViewItem *,const QPoint&,int ) ) ); 126 SLOT( mailLeftClicked( int, QListViewItem *,const QPoint&,int ) ) );
127 connect( mailView, SIGNAL( mouseButtonPressed(int, QListViewItem *,const QPoint&,int ) ),this, 127 connect( mailView, SIGNAL( mouseButtonPressed(int, QListViewItem *,const QPoint&,int ) ),this,
128 SLOT( mailHold( int, QListViewItem *,const QPoint&,int ) ) ); 128 SLOT( mailHold( int, QListViewItem *,const QPoint&,int ) ) );
129 connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*))); 129 connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*)));
130 130
131 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); 131 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) );
132} 132}
133 133
134 134
135void MainWindow::slotAdjustLayout() { 135void MainWindow::slotAdjustLayout() {
136 136
137 QWidget *d = QApplication::desktop(); 137 QWidget *d = QApplication::desktop();
138 138
139 if ( d->width() < d->height() ) { 139 if ( d->width() < d->height() ) {
140 layout->setDirection( QBoxLayout::TopToBottom ); 140 layout->setDirection( QBoxLayout::TopToBottom );
141 } else { 141 } else {
142 layout->setDirection( QBoxLayout::LeftToRight ); 142 layout->setDirection( QBoxLayout::LeftToRight );
143 } 143 }
144} 144}
145 145
146void MainWindow::slotAdjustColumns() 146void MainWindow::slotAdjustColumns()
147{ 147{
148 bool hidden = folderView->isHidden(); 148 bool hidden = folderView->isHidden();
149 if ( hidden ) folderView->show(); 149 if ( hidden ) folderView->show();
150 folderView->setColumnWidth( 0, folderView->visibleWidth() ); 150 folderView->setColumnWidth( 0, folderView->visibleWidth() );
151 if ( hidden ) folderView->hide(); 151 if ( hidden ) folderView->hide();
152 152
153 mailView->setColumnWidth( 0, 10 ); 153 mailView->setColumnWidth( 0, 10 );
154 mailView->setColumnWidth( 1, mailView->visibleWidth() - 130 ); 154 mailView->setColumnWidth( 1, mailView->visibleWidth() - 130 );
155 mailView->setColumnWidth( 2, 80 ); 155 mailView->setColumnWidth( 2, 80 );
156 mailView->setColumnWidth( 3, 50 ); 156 mailView->setColumnWidth( 3, 50 );
157 mailView->setColumnWidth( 4, 50 ); 157 mailView->setColumnWidth( 4, 50 );
158} 158}
159 159
160void MainWindow::slotEditSettings() 160void MainWindow::slotEditSettings()
161{ 161{
162} 162}
163 163
164void MainWindow::slotShowFolders( bool show ) 164void MainWindow::slotShowFolders( bool show )
165{ 165{
166 qDebug( "Show Folders" ); 166 qDebug( "Show Folders" );
167 if ( show && folderView->isHidden() ) { 167 if ( show && folderView->isHidden() ) {
168 qDebug( "-> showing" ); 168 qDebug( "-> showing" );
169 folderView->show(); 169 folderView->show();
170 } else if ( !show && !folderView->isHidden() ) { 170 } else if ( !show && !folderView->isHidden() ) {
171 qDebug( "-> hiding" ); 171 qDebug( "-> hiding" );
172 folderView->hide(); 172 folderView->hide();
173 } 173 }
174} 174}
175 175
176void MainWindow::refreshMailView(QList<RecMail>*list) 176void MainWindow::refreshMailView(QList<RecMail>*list)
177{ 177{
178 MailListViewItem*item = 0; 178 MailListViewItem*item = 0;
179 mailView->clear(); 179 mailView->clear();
180 for (unsigned int i = 0; i < list->count();++i) { 180 for (unsigned int i = 0; i < list->count();++i) {
181 item = new MailListViewItem(mailView,item); 181 item = new MailListViewItem(mailView,item);
182 item->storeData(*(list->at(i))); 182 item->storeData(*(list->at(i)));
183 item->showEntry(); 183 item->showEntry();
184 } 184 }
185} 185}
186void MainWindow::mailLeftClicked(int button, QListViewItem *item,const QPoint&,int ) 186void MainWindow::mailLeftClicked(int button, QListViewItem *item,const QPoint&,int )
187{ 187{
188 /* just LEFT button - or tap with stylus on pda */ 188 /* just LEFT button - or tap with stylus on pda */
189 if (button!=1) return; 189 if (button!=1) return;
190 if (!item) return; 190 if (!item) return;
191 displayMail(); 191 displayMail();
192} 192}
193 193
194void MainWindow::displayMail() 194void MainWindow::displayMail()
195{ 195{
196 QListViewItem*item = mailView->currentItem(); 196 QListViewItem*item = mailView->currentItem();
197 if (!item) return; 197 if (!item) return;
198 RecMail mail = ((MailListViewItem*)item)->data(); 198 RecMail mail = ((MailListViewItem*)item)->data();
199 RecBody body = folderView->fetchBody(mail); 199 RecBody body = folderView->fetchBody(mail);
200 ViewMail readMail( this ); 200 ViewMail readMail( this );
201 readMail.setBody( body ); 201 readMail.setBody( body );
202 readMail.setMail( mail ); 202 readMail.setMail( mail );
203 readMail.showMaximized(); 203 readMail.showMaximized();
204 readMail.exec(); 204 readMail.exec();
205 205
206 if ( readMail.deleted ) { 206 if ( readMail.deleted ) {
207 folderView->refreshCurrent(); 207 folderView->refreshCurrent();
208 } else { 208 } else {
209 ( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "") ); 209 ( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "") );
210 } 210 }
211} 211}
212 212
213void MainWindow::slotDeleteMail() 213void MainWindow::slotDeleteMail()
214{ 214{
215 if (!mailView->currentItem()) return; 215 if (!mailView->currentItem()) return;
216 RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data(); 216 RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data();
217 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 ) { 217 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 ) {
218 mail.Wrapper()->deleteMail( mail ); 218 mail.Wrapper()->deleteMail( mail );
219 folderView->refreshCurrent(); 219 folderView->refreshCurrent();
220 } 220 }
221} 221}
222 222
223void MainWindow::mailHold(int button, QListViewItem *item,const QPoint&,int ) 223void MainWindow::mailHold(int button, QListViewItem *item,const QPoint&,int )
224{ 224{
225 /* just the RIGHT button - or hold on pda */ 225 /* just the RIGHT button - or hold on pda */
226 if (button!=2) {return;} 226 if (button!=2) {return;}
227 qDebug("Event right/hold"); 227 qDebug("Event right/hold");
228 if (!item) return; 228 if (!item) return;
229 QPopupMenu *m = new QPopupMenu(0); 229 QPopupMenu *m = new QPopupMenu(0);
230 if (m) { 230 if (m) {
231 m->insertItem(tr("Read this mail"),this,SLOT(displayMail())); 231 m->insertItem(tr("Read this mail"),this,SLOT(displayMail()));
232 m->insertItem(tr("Delete this mail"),this,SLOT(slotDeleteMail())); 232 m->insertItem(tr("Delete this mail"),this,SLOT(slotDeleteMail()));
233 m->setFocus(); 233 m->setFocus();
234 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); 234 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
235 delete m; 235 delete m;
236 } 236 }
237} 237}
238 238
239MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item ) 239MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item )
240 :QListViewItem(parent,item),mail_data() 240 :QListViewItem(parent,item),mail_data()
241{ 241{
242} 242}
243 243
244void MailListViewItem::showEntry() 244void MailListViewItem::showEntry()
245{ 245{
246 if ( mail_data.getFlags().testBit( FLAG_ANSWERED ) == true) { 246 if ( mail_data.getFlags().testBit( FLAG_ANSWERED ) == true) {
247 setPixmap( 0, Resource::loadPixmap( "mail/kmmsgreplied") ); 247 setPixmap( 0, Resource::loadPixmap( "mail/kmmsgreplied") );
248 } else if ( mail_data.getFlags().testBit( FLAG_SEEN ) == true ) { 248 } else if ( mail_data.getFlags().testBit( FLAG_SEEN ) == true ) {
249 /* I think it looks nicer if there are not such a log of icons but only on mails 249 /* I think it looks nicer if there are not such a log of icons but only on mails
250 replied or new - Alwin*/ 250 replied or new - Alwin*/
251 //setPixmap( 0, Resource::loadPixmap( "mail/kmmsgunseen") ); 251 //setPixmap( 0, Resource::loadPixmap( "mail/kmmsgunseen") );
252 } else { 252 } else {
253 setPixmap( 0, Resource::loadPixmap( "mail/kmmsgnew") ); 253 setPixmap( 0, Resource::loadPixmap( "mail/kmmsgnew") );
254 } 254 }
255 double s = mail_data.Msgsize(); 255 double s = mail_data.Msgsize();
256 int w; 256 int w;
257 w=0; 257 w=0;
258 258
259 while (s>1024) { 259 while (s>1024) {
260 s/=1024; 260 s/=1024;
261 ++w; 261 ++w;
262 if (w>=2) break; 262 if (w>=2) break;
263 } 263 }
264 264
265 QString q=""; 265 QString q="";
266 QString fsize=""; 266 QString fsize="";
267 switch(w) { 267 switch(w) {
268 case 1: 268 case 1:
269 q="k"; 269 q="k";
270 break; 270 break;
271 case 2: 271 case 2:
272 q="M"; 272 q="M";
273 break; 273 break;
274 default: 274 default:
275 break; 275 break;
276 } 276 }