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.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp
index 9a37510..d3b9c34 100644
--- a/noncore/net/mail/mainwindow.cpp
+++ b/noncore/net/mail/mainwindow.cpp
@@ -2,28 +2,30 @@
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 "viewmail.h" 15#include "viewmail.h"
15#include "mailtypes.h" 16#include "mailtypes.h"
16#include "mailistviewitem.h" 17#include "mailistviewitem.h"
17 18
19
18MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) 20MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
19 : QMainWindow( parent, name, flags ) 21 : QMainWindow( parent, name, flags )
20{ 22{
21 setCaption( tr( "Mail" ) ); 23 setCaption( tr( "Mail" ) );
22 setToolBarsMovable( false ); 24 setToolBarsMovable( false );
23 25
24 toolBar = new QToolBar( this ); 26 toolBar = new QToolBar( this );
25 menuBar = new QMenuBar( toolBar ); 27 menuBar = new QMenuBar( toolBar );
26 mailMenu = new QPopupMenu( menuBar ); 28 mailMenu = new QPopupMenu( menuBar );
27 menuBar->insertItem( tr( "Mail" ), mailMenu ); 29 menuBar->insertItem( tr( "Mail" ), mailMenu );
28 settingsMenu = new QPopupMenu( menuBar ); 30 settingsMenu = new QPopupMenu( menuBar );
29 menuBar->insertItem( tr( "Settings" ), settingsMenu ); 31 menuBar->insertItem( tr( "Settings" ), settingsMenu );
@@ -36,82 +38,92 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
36 toolBar->setStretchableWidget( spacer ); 38 toolBar->setStretchableWidget( spacer );
37 39
38 composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL, 40 composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL,
39 0, 0, this ); 41 0, 0, this );
40 composeMail->addTo( toolBar ); 42 composeMail->addTo( toolBar );
41 composeMail->addTo( mailMenu ); 43 composeMail->addTo( mailMenu );
42 44
43 sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED, 45 sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED,
44 0, 0, this ); 46 0, 0, this );
45 sendQueued->addTo( toolBar ); 47 sendQueued->addTo( toolBar );
46 sendQueued->addTo( mailMenu ); 48 sendQueued->addTo( mailMenu );
47 49
50 /*
48 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC, 51 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC,
49 0, 0, this ); 52 0, 0, this );
50 syncFolders->addTo( toolBar ); 53 syncFolders->addTo( toolBar );
51 syncFolders->addTo( mailMenu ); 54 syncFolders->addTo( mailMenu );
55 */
52 56
53 showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS, 57 showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS,
54 0, 0, this, 0, true ); 58 0, 0, this, 0, true );
55 showFolders->addTo( toolBar ); 59 showFolders->addTo( toolBar );
56 showFolders->addTo( mailMenu ); 60 showFolders->addTo( mailMenu );
57 showFolders->setOn( true ); 61 showFolders->setOn( true );
58 connect(showFolders, SIGNAL( toggled( bool ) ), 62 connect(showFolders, SIGNAL( toggled( bool ) ),
59 SLOT( slotShowFolders( bool ) ) ); 63 SLOT( slotShowFolders( bool ) ) );
60 64
61 searchMails = new QAction( tr( "Search mails" ), ICON_SEARCHMAILS, 65 /*
66 searchMails = new QAction( tr( "Search mails" ), ICON_SEARCHMAILS,
62 0, 0, this ); 67 0, 0, this );
63 searchMails->addTo( toolBar ); 68 searchMails->addTo( toolBar );
64 searchMails->addTo( mailMenu ); 69 searchMails->addTo( mailMenu );
70 */
65 71
66 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);
67 deleteMails->addTo( toolBar ); 73 deleteMails->addTo( toolBar );
68 deleteMails->addTo( mailMenu ); 74 deleteMails->addTo( mailMenu );
69 connect( deleteMails, SIGNAL( activated() ), 75 connect( deleteMails, SIGNAL( activated() ),
70 SLOT( slotDeleteMail() ) ); 76 SLOT( slotDeleteMail() ) );
71 77
72 editSettings = new QAction( tr( "Edit settings" ), ICON_EDITSETTINGS, 78 editSettings = new QAction( tr( "Edit settings" ), ICON_EDITSETTINGS,
73 0, 0, this ); 79 0, 0, this );
74 editSettings->addTo( settingsMenu ); 80 editSettings->addTo( settingsMenu );
81 connect( editSettings, SIGNAL( activated() ),
82 SLOT( slotEditSettings() ) );
75 83
76 editAccounts = new QAction( tr( "Configure accounts" ), ICON_EDITACCOUNTS, 84 editAccounts = new QAction( tr( "Configure accounts" ), ICON_EDITACCOUNTS,
77 0, 0, this ); 85 0, 0, this );
78 editAccounts->addTo( settingsMenu ); 86 editAccounts->addTo( settingsMenu );
79 87
80 QWidget *view = new QWidget( this ); 88 QWidget *view = new QWidget( this );
81 setCentralWidget( view ); 89 setCentralWidget( view );
82 90
83 layout = new QBoxLayout ( view, QBoxLayout::LeftToRight ); 91 layout = new QBoxLayout ( view, QBoxLayout::LeftToRight );
84 92
85 folderView = new AccountView( view ); 93 folderView = new AccountView( view );
86 folderView->header()->hide(); 94 folderView->header()->hide();
87 folderView->setRootIsDecorated( true ); 95 folderView->setRootIsDecorated( true );
88 folderView->addColumn( tr( "Mailbox" ) ); 96 folderView->addColumn( tr( "Mailbox" ) );
89 //folderView->hide(); 97 //folderView->hide();
90 98
91 layout->addWidget( folderView ); 99 layout->addWidget( folderView );
92 100
93 mailView = new QListView( view ); 101 mailView = new QListView( view );
94 mailView->addColumn( tr( "" ) ); 102 mailView->addColumn( tr( "" ) );
95 mailView->addColumn( tr( "Subject" ),QListView::Manual ); 103 mailView->addColumn( tr( "Subject" ),QListView::Manual );
96 mailView->addColumn( tr( "Sender" ),QListView::Manual ); 104 mailView->addColumn( tr( "Sender" ),QListView::Manual );
97 mailView->addColumn( tr( "Size" ),QListView::Manual); 105 mailView->addColumn( tr( "Size" ),QListView::Manual);
98 mailView->addColumn( tr( "Date" )); 106 mailView->addColumn( tr( "Date" ));
99 mailView->setAllColumnsShowFocus(true); 107 mailView->setAllColumnsShowFocus(true);
100 mailView->setSorting(-1); 108 mailView->setSorting(-1);
101 109
110 statusWidget = new StatusWidget( view );
111
102 layout->addWidget( mailView ); 112 layout->addWidget( mailView );
113 layout->addWidget( statusWidget );
103 layout->setStretchFactor( folderView, 1 ); 114 layout->setStretchFactor( folderView, 1 );
104 layout->setStretchFactor( mailView, 2 ); 115 layout->setStretchFactor( mailView, 2 );
105 116
117
106 slotAdjustLayout(); 118 slotAdjustLayout();
107 119
108 connect( mailView, SIGNAL( clicked( QListViewItem * ) ),this, 120 connect( mailView, SIGNAL( clicked( QListViewItem * ) ),this,
109 SLOT( displayMail( QListViewItem * ) ) ); 121 SLOT( displayMail( QListViewItem * ) ) );
110 122
111 connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*))); 123 connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*)));
112 124
113 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); 125 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) );
114 126
115} 127}
116 128
117 129
@@ -132,24 +144,30 @@ void MainWindow::slotAdjustColumns()
132 bool hidden = folderView->isHidden(); 144 bool hidden = folderView->isHidden();
133 if ( hidden ) folderView->show(); 145 if ( hidden ) folderView->show();
134 folderView->setColumnWidth( 0, folderView->visibleWidth() ); 146 folderView->setColumnWidth( 0, folderView->visibleWidth() );
135 if ( hidden ) folderView->hide(); 147 if ( hidden ) folderView->hide();
136 148
137 mailView->setColumnWidth( 0, 10 ); 149 mailView->setColumnWidth( 0, 10 );
138 mailView->setColumnWidth( 1, mailView->visibleWidth() - 130 ); 150 mailView->setColumnWidth( 1, mailView->visibleWidth() - 130 );
139 mailView->setColumnWidth( 2, 80 ); 151 mailView->setColumnWidth( 2, 80 );
140 mailView->setColumnWidth( 3, 50 ); 152 mailView->setColumnWidth( 3, 50 );
141 mailView->setColumnWidth( 4, 50 ); 153 mailView->setColumnWidth( 4, 50 );
142} 154}
143 155
156void MainWindow::slotEditSettings() {
157 SettingsDialog settingsDialog( this, 0, true );
158 settingsDialog.showMaximized();
159 settingsDialog.exec();
160}
161
144void MainWindow::slotShowFolders( bool show ) 162void MainWindow::slotShowFolders( bool show )
145{ 163{
146 qDebug( "Show Folders" ); 164 qDebug( "Show Folders" );
147 if ( show && folderView->isHidden() ) { 165 if ( show && folderView->isHidden() ) {
148 qDebug( "-> showing" ); 166 qDebug( "-> showing" );
149 folderView->show(); 167 folderView->show();
150 } else if ( !show && !folderView->isHidden() ) { 168 } else if ( !show && !folderView->isHidden() ) {
151 qDebug( "-> hiding" ); 169 qDebug( "-> hiding" );
152 folderView->hide(); 170 folderView->hide();
153 } 171 }
154} 172}
155 173
@@ -170,25 +188,25 @@ void MainWindow::displayMail(QListViewItem*item)
170 RecMail mail = ((MailListViewItem*)item)->data(); 188 RecMail mail = ((MailListViewItem*)item)->data();
171 RecBody body = folderView->fetchBody(mail); 189 RecBody body = folderView->fetchBody(mail);
172 190
173 ViewMail readMail( this ); 191 ViewMail readMail( this );
174 readMail.setBody( body ); 192 readMail.setBody( body );
175 readMail.setMail( mail ); 193 readMail.setMail( mail );
176 readMail.showMaximized(); 194 readMail.showMaximized();
177 readMail.exec(); 195 readMail.exec();
178 196
179 if ( readMail.deleted ) { 197 if ( readMail.deleted ) {
180 folderView->refreshCurrent(); 198 folderView->refreshCurrent();
181 } else { 199 } else {
182 ( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "mail/kmmsgunseen") ); 200 ( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "") );
183 } 201 }
184} 202}
185 203
186void MainWindow::slotDeleteMail() 204void MainWindow::slotDeleteMail()
187{ 205{
188 if (!mailView->currentItem()) return; 206 if (!mailView->currentItem()) return;
189 RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data(); 207 RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data();
190 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 ) { 208 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 ) {
191 mail.Wrapper()->deleteMail( mail ); 209 mail.Wrapper()->deleteMail( mail );
192 folderView->refreshCurrent(); 210 folderView->refreshCurrent();
193 } 211 }
194} 212}