-rw-r--r-- | noncore/net/mail/mainwindow.cpp | 1 |
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 | ||
20 | MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) | 20 | MainWindow::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 | ||
133 | void MainWindow::slotAdjustLayout() { | 133 | void 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 | ||
145 | void MainWindow::slotAdjustColumns() | 144 | void 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 | ||
159 | void MainWindow::slotEditSettings() { | 158 | void 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 | ||
165 | void MainWindow::slotShowFolders( bool show ) | 164 | void 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 | ||
177 | void MainWindow::refreshMailView(QList<RecMail>*list) | 176 | void 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 | } |
187 | void MainWindow::displayMail(QListViewItem*item) | 186 | void 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 | ||
207 | void MainWindow::slotDeleteMail() | 206 | void 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 | ||
219 | MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item ) | 218 | MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item ) |
220 | :QListViewItem(parent,item),mail_data() | 219 | :QListViewItem(parent,item),mail_data() |
221 | { | 220 | { |
222 | } | 221 | } |
223 | 222 | ||
224 | void MailListViewItem::showEntry() | 223 | void 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 | ||
271 | void MailListViewItem::storeData(const RecMail&data) | 270 | void MailListViewItem::storeData(const RecMail&data) |
272 | { | 271 | { |
273 | mail_data = data; | 272 | mail_data = data; |
274 | } | 273 | } |
275 | 274 | ||
276 | const RecMail& MailListViewItem::data()const | 275 | const RecMail& MailListViewItem::data()const |
277 | { | 276 | { |
278 | return mail_data; | 277 | return mail_data; |
279 | } | 278 | } |
280 | 279 | ||
281 | 280 | ||