summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/mainwindow.cpp1
1 files changed, 0 insertions, 1 deletions
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp
index a0ce6c1..a57fb0d 100644
--- a/noncore/net/mail/mainwindow.cpp
+++ b/noncore/net/mail/mainwindow.cpp
@@ -1,281 +1,280 @@
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#include "defines.h" 12#include "defines.h"
13#include "mainwindow.h" 13#include "mainwindow.h"
14#include "settingsdialog.h" 14#include "settingsdialog.h"
15#include "viewmail.h" 15#include "viewmail.h"
16#include "mailtypes.h" 16#include "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 setCaption( tr( "Mail" ) ); 23 setCaption( tr( "Mail" ) );
24 setToolBarsMovable( false ); 24 setToolBarsMovable( false );
25 25
26 toolBar = new QToolBar( this ); 26 toolBar = new QToolBar( this );
27 menuBar = new QMenuBar( toolBar ); 27 menuBar = new QMenuBar( toolBar );
28 mailMenu = new QPopupMenu( menuBar ); 28 mailMenu = new QPopupMenu( menuBar );
29 menuBar->insertItem( tr( "Mail" ), mailMenu ); 29 menuBar->insertItem( tr( "Mail" ), mailMenu );
30 settingsMenu = new QPopupMenu( menuBar ); 30 settingsMenu = new QPopupMenu( menuBar );
31 menuBar->insertItem( tr( "Settings" ), settingsMenu ); 31 menuBar->insertItem( tr( "Settings" ), settingsMenu );
32 32
33 addToolBar( toolBar ); 33 addToolBar( toolBar );
34 toolBar->setHorizontalStretchable( true ); 34 toolBar->setHorizontalStretchable( true );
35 35
36 QLabel *spacer = new QLabel( toolBar ); 36 QLabel *spacer = new QLabel( toolBar );
37 spacer->setBackgroundMode( QWidget::PaletteButton ); 37 spacer->setBackgroundMode( QWidget::PaletteButton );
38 toolBar->setStretchableWidget( spacer ); 38 toolBar->setStretchableWidget( spacer );
39 39
40 composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL, 40 composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL,
41 0, 0, this ); 41 0, 0, this );
42 composeMail->addTo( toolBar ); 42 composeMail->addTo( toolBar );
43 composeMail->addTo( mailMenu ); 43 composeMail->addTo( mailMenu );
44 44
45 sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED, 45 sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED,
46 0, 0, this ); 46 0, 0, this );
47 sendQueued->addTo( toolBar ); 47 sendQueued->addTo( toolBar );
48 sendQueued->addTo( mailMenu ); 48 sendQueued->addTo( mailMenu );
49 49
50 /* 50 /*
51 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC, 51 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC,
52 0, 0, this ); 52 0, 0, this );
53 syncFolders->addTo( toolBar ); 53 syncFolders->addTo( toolBar );
54 syncFolders->addTo( mailMenu ); 54 syncFolders->addTo( mailMenu );
55 */ 55 */
56 56
57 showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS, 57 showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS,
58 0, 0, this, 0, true ); 58 0, 0, this, 0, true );
59 showFolders->addTo( toolBar ); 59 showFolders->addTo( toolBar );
60 showFolders->addTo( mailMenu ); 60 showFolders->addTo( mailMenu );
61 showFolders->setOn( true ); 61 showFolders->setOn( true );
62 connect(showFolders, SIGNAL( toggled( bool ) ), 62 connect(showFolders, SIGNAL( toggled( bool ) ),
63 SLOT( slotShowFolders( bool ) ) ); 63 SLOT( slotShowFolders( bool ) ) );
64 64
65 /* 65 /*
66 searchMails = new QAction( tr( "Search mails" ), ICON_SEARCHMAILS, 66 searchMails = new QAction( tr( "Search mails" ), ICON_SEARCHMAILS,
67 0, 0, this ); 67 0, 0, this );
68 searchMails->addTo( toolBar ); 68 searchMails->addTo( toolBar );
69 searchMails->addTo( mailMenu ); 69 searchMails->addTo( mailMenu );
70 */ 70 */
71 71
72 deleteMails = new QAction(tr("Delete Mail"), QIconSet(Resource::loadPixmap("mail/delete")), 0, 0, this); 72 deleteMails = new QAction(tr("Delete Mail"), QIconSet(Resource::loadPixmap("mail/delete")), 0, 0, this);
73 deleteMails->addTo( toolBar ); 73 deleteMails->addTo( toolBar );
74 deleteMails->addTo( mailMenu ); 74 deleteMails->addTo( mailMenu );
75 connect( deleteMails, SIGNAL( activated() ), 75 connect( deleteMails, SIGNAL( activated() ),
76 SLOT( slotDeleteMail() ) ); 76 SLOT( slotDeleteMail() ) );
77 77
78 editSettings = new QAction( tr( "Edit settings" ), ICON_EDITSETTINGS, 78 editSettings = new QAction( tr( "Edit settings" ), ICON_EDITSETTINGS,
79 0, 0, this ); 79 0, 0, this );
80 editSettings->addTo( settingsMenu ); 80 editSettings->addTo( settingsMenu );
81 connect( editSettings, SIGNAL( activated() ), 81 connect( editSettings, SIGNAL( activated() ),
82 SLOT( slotEditSettings() ) ); 82 SLOT( slotEditSettings() ) );
83 83
84 editAccounts = new QAction( tr( "Configure accounts" ), ICON_EDITACCOUNTS, 84 editAccounts = new QAction( tr( "Configure accounts" ), ICON_EDITACCOUNTS,
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 120
121 slotAdjustLayout(); 121 slotAdjustLayout();
122 122
123 connect( mailView, SIGNAL( clicked( QListViewItem * ) ),this, 123 connect( mailView, SIGNAL( clicked( QListViewItem * ) ),this,
124 SLOT( displayMail( QListViewItem * ) ) ); 124 SLOT( displayMail( QListViewItem * ) ) );
125 125
126 connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*))); 126 connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*)));
127 127
128 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); 128 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) );
129 129
130} 130}
131 131
132 132
133void MainWindow::slotAdjustLayout() { 133void MainWindow::slotAdjustLayout() {
134 134
135 QWidget *d = QApplication::desktop(); 135 QWidget *d = QApplication::desktop();
136 136
137 if ( d->width() < d->height() ) { 137 if ( d->width() < d->height() ) {
138 layout->setDirection( QBoxLayout::TopToBottom ); 138 layout->setDirection( QBoxLayout::TopToBottom );
139 } else { 139 } else {
140 layout->setDirection( QBoxLayout::LeftToRight ); 140 layout->setDirection( QBoxLayout::LeftToRight );
141 } 141 }
142 delete d;
143} 142}
144 143
145void MainWindow::slotAdjustColumns() 144void MainWindow::slotAdjustColumns()
146{ 145{
147 bool hidden = folderView->isHidden(); 146 bool hidden = folderView->isHidden();
148 if ( hidden ) folderView->show(); 147 if ( hidden ) folderView->show();
149 folderView->setColumnWidth( 0, folderView->visibleWidth() ); 148 folderView->setColumnWidth( 0, folderView->visibleWidth() );
150 if ( hidden ) folderView->hide(); 149 if ( hidden ) folderView->hide();
151 150
152 mailView->setColumnWidth( 0, 10 ); 151 mailView->setColumnWidth( 0, 10 );
153 mailView->setColumnWidth( 1, mailView->visibleWidth() - 130 ); 152 mailView->setColumnWidth( 1, mailView->visibleWidth() - 130 );
154 mailView->setColumnWidth( 2, 80 ); 153 mailView->setColumnWidth( 2, 80 );
155 mailView->setColumnWidth( 3, 50 ); 154 mailView->setColumnWidth( 3, 50 );
156 mailView->setColumnWidth( 4, 50 ); 155 mailView->setColumnWidth( 4, 50 );
157} 156}
158 157
159void MainWindow::slotEditSettings() { 158void MainWindow::slotEditSettings() {
160 SettingsDialog settingsDialog( this, 0, true ); 159 SettingsDialog settingsDialog( this, 0, true );
161 settingsDialog.showMaximized(); 160 settingsDialog.showMaximized();
162 settingsDialog.exec(); 161 settingsDialog.exec();
163} 162}
164 163
165void MainWindow::slotShowFolders( bool show ) 164void MainWindow::slotShowFolders( bool show )
166{ 165{
167 qDebug( "Show Folders" ); 166 qDebug( "Show Folders" );
168 if ( show && folderView->isHidden() ) { 167 if ( show && folderView->isHidden() ) {
169 qDebug( "-> showing" ); 168 qDebug( "-> showing" );
170 folderView->show(); 169 folderView->show();
171 } else if ( !show && !folderView->isHidden() ) { 170 } else if ( !show && !folderView->isHidden() ) {
172 qDebug( "-> hiding" ); 171 qDebug( "-> hiding" );
173 folderView->hide(); 172 folderView->hide();
174 } 173 }
175} 174}
176 175
177void MainWindow::refreshMailView(QList<RecMail>*list) 176void MainWindow::refreshMailView(QList<RecMail>*list)
178{ 177{
179 MailListViewItem*item = 0; 178 MailListViewItem*item = 0;
180 mailView->clear(); 179 mailView->clear();
181 for (unsigned int i = 0; i < list->count();++i) { 180 for (unsigned int i = 0; i < list->count();++i) {
182 item = new MailListViewItem(mailView,item); 181 item = new MailListViewItem(mailView,item);
183 item->storeData(*(list->at(i))); 182 item->storeData(*(list->at(i)));
184 item->showEntry(); 183 item->showEntry();
185 } 184 }
186} 185}
187void MainWindow::displayMail(QListViewItem*item) 186void MainWindow::displayMail(QListViewItem*item)
188{ 187{
189 188
190 if (!item) return; 189 if (!item) return;
191 RecMail mail = ((MailListViewItem*)item)->data(); 190 RecMail mail = ((MailListViewItem*)item)->data();
192 RecBody body = folderView->fetchBody(mail); 191 RecBody body = folderView->fetchBody(mail);
193 192
194 ViewMail readMail( this ); 193 ViewMail readMail( this );
195 readMail.setBody( body ); 194 readMail.setBody( body );
196 readMail.setMail( mail ); 195 readMail.setMail( mail );
197 readMail.showMaximized(); 196 readMail.showMaximized();
198 readMail.exec(); 197 readMail.exec();
199 198
200 if ( readMail.deleted ) { 199 if ( readMail.deleted ) {
201 folderView->refreshCurrent(); 200 folderView->refreshCurrent();
202 } else { 201 } else {
203 ( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "") ); 202 ( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "") );
204 } 203 }
205} 204}
206 205
207void MainWindow::slotDeleteMail() 206void MainWindow::slotDeleteMail()
208{ 207{
209 if (!mailView->currentItem()) return; 208 if (!mailView->currentItem()) return;
210 RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data(); 209 RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data();
211 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 ) { 210 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 ) {
212 mail.Wrapper()->deleteMail( mail ); 211 mail.Wrapper()->deleteMail( mail );
213 folderView->refreshCurrent(); 212 folderView->refreshCurrent();
214 } 213 }
215} 214}
216 215
217 216
218 217
219MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item ) 218MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item )
220 :QListViewItem(parent,item),mail_data() 219 :QListViewItem(parent,item),mail_data()
221{ 220{
222} 221}
223 222
224void MailListViewItem::showEntry() 223void MailListViewItem::showEntry()
225{ 224{
226 if ( mail_data.getFlags().testBit( FLAG_ANSWERED ) == true) { 225 if ( mail_data.getFlags().testBit( FLAG_ANSWERED ) == true) {
227 setPixmap( 0, Resource::loadPixmap( "mail/kmmsgreplied") ); 226 setPixmap( 0, Resource::loadPixmap( "mail/kmmsgreplied") );
228 } else if ( mail_data.getFlags().testBit( FLAG_SEEN ) == true ) { 227 } else if ( mail_data.getFlags().testBit( FLAG_SEEN ) == true ) {
229 /* I think it looks nicer if there are not such a log of icons but only on mails 228 /* I think it looks nicer if there are not such a log of icons but only on mails
230 replied or new - Alwin*/ 229 replied or new - Alwin*/
231 //setPixmap( 0, Resource::loadPixmap( "mail/kmmsgunseen") ); 230 //setPixmap( 0, Resource::loadPixmap( "mail/kmmsgunseen") );
232 } else { 231 } else {
233 setPixmap( 0, Resource::loadPixmap( "mail/kmmsgnew") ); 232 setPixmap( 0, Resource::loadPixmap( "mail/kmmsgnew") );
234 } 233 }
235 double s = mail_data.Msgsize(); 234 double s = mail_data.Msgsize();
236 int w; 235 int w;
237 w=0; 236 w=0;
238 237
239 while (s>1024) { 238 while (s>1024) {
240 s/=1024; 239 s/=1024;
241 ++w; 240 ++w;
242 if (w>=2) break; 241 if (w>=2) break;
243 } 242 }
244 243
245 QString q=""; 244 QString q="";
246 QString fsize=""; 245 QString fsize="";
247 switch(w) { 246 switch(w) {
248 case 1: 247 case 1:
249 q="k"; 248 q="k";
250 break; 249 break;
251 case 2: 250 case 2:
252 q="M"; 251 q="M";
253 break; 252 break;
254 default: 253 default:
255 break; 254 break;
256 } 255 }
257 256
258 { 257 {
259 QTextOStream o(&fsize); 258 QTextOStream o(&fsize);
260 if (w>0) o.precision(2); else o.precision(0); 259 if (w>0) o.precision(2); else o.precision(0);
261 o.setf(QTextStream::fixed); 260 o.setf(QTextStream::fixed);
262 o << s << " " << q << "Byte"; 261 o << s << " " << q << "Byte";
263 } 262 }
264 263
265 setText(1,mail_data.getSubject()); 264 setText(1,mail_data.getSubject());
266 setText(2,mail_data.getFrom()); 265 setText(2,mail_data.getFrom());
267 setText(3,fsize); 266 setText(3,fsize);
268 setText(4,mail_data.getDate()); 267 setText(4,mail_data.getDate());
269} 268}
270 269
271void MailListViewItem::storeData(const RecMail&data) 270void MailListViewItem::storeData(const RecMail&data)
272{ 271{
273 mail_data = data; 272 mail_data = data;
274} 273}
275 274
276const RecMail& MailListViewItem::data()const 275const RecMail& MailListViewItem::data()const
277{ 276{
278 return mail_data; 277 return mail_data;
279} 278}
280 279
281 280