summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/mainwindow.cpp4
-rw-r--r--noncore/net/mail/viewmail.cpp7
2 files changed, 6 insertions, 5 deletions
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp
index 560715c..8ef7ddd 100644
--- a/noncore/net/mail/mainwindow.cpp
+++ b/noncore/net/mail/mainwindow.cpp
@@ -21,147 +21,147 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
21 21
22 toolBar = new QToolBar( this ); 22 toolBar = new QToolBar( this );
23 menuBar = new QMenuBar( toolBar ); 23 menuBar = new QMenuBar( toolBar );
24 mailMenu = new QPopupMenu( menuBar ); 24 mailMenu = new QPopupMenu( menuBar );
25 menuBar->insertItem( tr( "Mail" ), mailMenu ); 25 menuBar->insertItem( tr( "Mail" ), mailMenu );
26 settingsMenu = new QPopupMenu( menuBar ); 26 settingsMenu = new QPopupMenu( menuBar );
27 menuBar->insertItem( tr( "Settings" ), settingsMenu ); 27 menuBar->insertItem( tr( "Settings" ), settingsMenu );
28 28
29 addToolBar( toolBar ); 29 addToolBar( toolBar );
30 toolBar->setHorizontalStretchable( true ); 30 toolBar->setHorizontalStretchable( true );
31 31
32 QLabel *spacer = new QLabel( toolBar ); 32 QLabel *spacer = new QLabel( toolBar );
33 spacer->setBackgroundMode( QWidget::PaletteButton ); 33 spacer->setBackgroundMode( QWidget::PaletteButton );
34 toolBar->setStretchableWidget( spacer ); 34 toolBar->setStretchableWidget( spacer );
35 35
36 composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL, 36 composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL,
37 0, 0, this ); 37 0, 0, this );
38 composeMail->addTo( toolBar ); 38 composeMail->addTo( toolBar );
39 composeMail->addTo( mailMenu ); 39 composeMail->addTo( mailMenu );
40 40
41 sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED, 41 sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED,
42 0, 0, this ); 42 0, 0, this );
43 sendQueued->addTo( toolBar ); 43 sendQueued->addTo( toolBar );
44 sendQueued->addTo( mailMenu ); 44 sendQueued->addTo( mailMenu );
45 45
46 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC, 46 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC,
47 0, 0, this ); 47 0, 0, this );
48 syncFolders->addTo( toolBar ); 48 syncFolders->addTo( toolBar );
49 syncFolders->addTo( mailMenu ); 49 syncFolders->addTo( mailMenu );
50 50
51 showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS, 51 showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS,
52 0, 0, this, 0, true ); 52 0, 0, this, 0, true );
53 showFolders->addTo( toolBar ); 53 showFolders->addTo( toolBar );
54 showFolders->addTo( mailMenu ); 54 showFolders->addTo( mailMenu );
55 connect(showFolders, SIGNAL( toggled( bool ) ), 55 connect(showFolders, SIGNAL( toggled( bool ) ),
56 SLOT( slotShowFolders( bool ) ) ); 56 SLOT( slotShowFolders( bool ) ) );
57 57
58 searchMails = new QAction( tr( "Search mails" ), ICON_SEARCHMAILS, 58 searchMails = new QAction( tr( "Search mails" ), ICON_SEARCHMAILS,
59 0, 0, this ); 59 0, 0, this );
60 searchMails->addTo( toolBar ); 60 searchMails->addTo( toolBar );
61 searchMails->addTo( mailMenu ); 61 searchMails->addTo( mailMenu );
62 62
63 63
64 editSettings = new QAction( tr( "Edit settings" ), ICON_EDITSETTINGS, 64 editSettings = new QAction( tr( "Edit settings" ), ICON_EDITSETTINGS,
65 0, 0, this ); 65 0, 0, this );
66 editSettings->addTo( settingsMenu ); 66 editSettings->addTo( settingsMenu );
67 67
68 editAccounts = new QAction( tr( "Configure accounts" ), ICON_EDITACCOUNTS, 68 editAccounts = new QAction( tr( "Configure accounts" ), ICON_EDITACCOUNTS,
69 0, 0, this ); 69 0, 0, this );
70 editAccounts->addTo( settingsMenu ); 70 editAccounts->addTo( settingsMenu );
71 71
72 QWidget *view = new QWidget( this ); 72 QWidget *view = new QWidget( this );
73 setCentralWidget( view ); 73 setCentralWidget( view );
74 74
75 layout = new QBoxLayout ( view, QBoxLayout::LeftToRight ); 75 layout = new QBoxLayout ( view, QBoxLayout::LeftToRight );
76 76
77 folderView = new AccountView( view ); 77 folderView = new AccountView( view );
78 folderView->header()->hide(); 78 folderView->header()->hide();
79 folderView->addColumn( tr( "Mailbox" ) ); 79 folderView->addColumn( tr( "Mailbox" ) );
80 folderView->hide(); 80 folderView->hide();
81 81
82 layout->addWidget( folderView ); 82 layout->addWidget( folderView );
83 83
84 mailView = new QListView( view ); 84 mailView = new QListView( view );
85 mailView->addColumn( tr( "Status" ) ); 85 mailView->addColumn( tr( "" ) );
86 mailView->addColumn( tr( "Subject" ),QListView::Manual ); 86 mailView->addColumn( tr( "Subject" ),QListView::Manual );
87 mailView->addColumn( tr( "Sender" ),QListView::Manual ); 87 mailView->addColumn( tr( "Sender" ),QListView::Manual );
88 mailView->addColumn( tr( "Date" )); 88 mailView->addColumn( tr( "Date" ));
89 mailView->setAllColumnsShowFocus(true); 89 mailView->setAllColumnsShowFocus(true);
90 mailView->setSorting(-1); 90 mailView->setSorting(-1);
91 91
92 layout->addWidget( mailView ); 92 layout->addWidget( mailView );
93 layout->setStretchFactor( folderView, 1 ); 93 layout->setStretchFactor( folderView, 1 );
94 layout->setStretchFactor( mailView, 2 ); 94 layout->setStretchFactor( mailView, 2 );
95 95
96 slotAdjustLayout(); 96 slotAdjustLayout();
97 97
98 connect( mailView, SIGNAL( clicked( QListViewItem * ) ),this, 98 connect( mailView, SIGNAL( clicked( QListViewItem * ) ),this,
99 SLOT( displayMail( QListViewItem * ) ) ); 99 SLOT( displayMail( QListViewItem * ) ) );
100 100
101 connect(folderView,SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*))); 101 connect(folderView,SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*)));
102 102
103 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); 103 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) );
104} 104}
105 105
106 106
107void MainWindow::slotAdjustLayout() { 107void MainWindow::slotAdjustLayout() {
108 108
109 QWidget *d = QApplication::desktop(); 109 QWidget *d = QApplication::desktop();
110 110
111 if ( d->width() < d->height() ) { 111 if ( d->width() < d->height() ) {
112 layout->setDirection( QBoxLayout::TopToBottom ); 112 layout->setDirection( QBoxLayout::TopToBottom );
113 } else { 113 } else {
114 layout->setDirection( QBoxLayout::LeftToRight ); 114 layout->setDirection( QBoxLayout::LeftToRight );
115 } 115 }
116 delete d; 116 delete d;
117} 117}
118 118
119void MainWindow::slotAdjustColumns() 119void MainWindow::slotAdjustColumns()
120{ 120{
121 bool hidden = folderView->isHidden(); 121 bool hidden = folderView->isHidden();
122 if ( hidden ) folderView->show(); 122 if ( hidden ) folderView->show();
123 folderView->setColumnWidth( 0, folderView->visibleWidth() ); 123 folderView->setColumnWidth( 0, folderView->visibleWidth() );
124 if ( hidden ) folderView->hide(); 124 if ( hidden ) folderView->hide();
125 125
126 mailView->setColumnWidth( 0, 10 ); 126 mailView->setColumnWidth( 0, 10 );
127 mailView->setColumnWidth( 1, mailView->visibleWidth() - 130 ); 127 mailView->setColumnWidth( 1, mailView->visibleWidth() - 130 );
128 mailView->setColumnWidth( 2, 80 ); 128 mailView->setColumnWidth( 2, 80 );
129 mailView->setColumnWidth( 3, 50 ); 129 mailView->setColumnWidth( 3, 50 );
130} 130}
131 131
132void MainWindow::slotShowFolders( bool show ) 132void MainWindow::slotShowFolders( bool show )
133{ 133{
134 qDebug( "Show Folders" ); 134 qDebug( "Show Folders" );
135 if ( show && folderView->isHidden() ) { 135 if ( show && folderView->isHidden() ) {
136 qDebug( "-> showing" ); 136 qDebug( "-> showing" );
137 folderView->show(); 137 folderView->show();
138 } else if ( !show && !folderView->isHidden() ) { 138 } else if ( !show && !folderView->isHidden() ) {
139 qDebug( "-> hiding" ); 139 qDebug( "-> hiding" );
140 folderView->hide(); 140 folderView->hide();
141 } 141 }
142} 142}
143 143
144void MainWindow::refreshMailView(QList<RecMail>*list) 144void MainWindow::refreshMailView(QList<RecMail>*list)
145{ 145{
146 MailListViewItem*item = 0; 146 MailListViewItem*item = 0;
147 mailView->clear(); 147 mailView->clear();
148 for (unsigned int i = 0; i < list->count();++i) { 148 for (unsigned int i = 0; i < list->count();++i) {
149 item = new MailListViewItem(mailView,item); 149 item = new MailListViewItem(mailView,item);
150 item->storeData(*(list->at(i))); 150 item->storeData(*(list->at(i)));
151 item->showEntry(); 151 item->showEntry();
152 } 152 }
153} 153}
154void MainWindow::displayMail(QListViewItem*item) 154void MainWindow::displayMail(QListViewItem*item)
155{ 155{
156 if (!item) return; 156 if (!item) return;
157 RecMail mail = ((MailListViewItem*)item)->data(); 157 RecMail mail = ((MailListViewItem*)item)->data();
158 RecBody body = folderView->fetchBody(mail); 158 RecBody body = folderView->fetchBody(mail);
159 159
160 ViewMail readMail( this ); 160 ViewMail readMail( this );
161 readMail.setBody( body ); 161 readMail.setBody( body );
162 readMail.setMail( mail ); 162 readMail.setMail( mail );
163 readMail.showMaximized(); 163 readMail.showMaximized();
164 readMail.exec(); 164 readMail.exec();
165 ( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "opiemail/kmmsgunseen") ); 165 ( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "opiemail/kmmsgunseen") );
166} 166}
167 167
diff --git a/noncore/net/mail/viewmail.cpp b/noncore/net/mail/viewmail.cpp
index a73dac5..42707e3 100644
--- a/noncore/net/mail/viewmail.cpp
+++ b/noncore/net/mail/viewmail.cpp
@@ -51,152 +51,153 @@ case 2:
51 q="M"; 51 q="M";
52 break; 52 break;
53default: 53default:
54 break; 54 break;
55} 55}
56 56
57{ 57{
58 /* I did not found a method to make a CONTENT reset on a QTextStream 58 /* I did not found a method to make a CONTENT reset on a QTextStream
59 so I use this construct that the stream will re-constructed in each 59 so I use this construct that the stream will re-constructed in each
60 loop. To let it work, the textstream is packed into a own area of 60 loop. To let it work, the textstream is packed into a own area of
61 code is it will be destructed after finishing its small job. 61 code is it will be destructed after finishing its small job.
62 */ 62 */
63 QTextOStream o(&desc); 63 QTextOStream o(&desc);
64 if (w>0) o.precision(2); else o.precision(0); 64 if (w>0) o.precision(2); else o.precision(0);
65 o.setf(QTextStream::fixed); 65 o.setf(QTextStream::fixed);
66 o << s << " " << q << "Byte"; 66 o << s << " " << q << "Byte";
67} 67}
68 68
69curItem=new AttachItem(attachments,curItem,type,"Mailbody",desc,-1); 69curItem=new AttachItem(attachments,curItem,type,"Mailbody",desc,-1);
70QString filename = ""; 70QString filename = "";
71for (unsigned int i = 0; i < body.Parts().count();++i) { 71for (unsigned int i = 0; i < body.Parts().count();++i) {
72 type = body.Parts()[i].Type()+"/"+body.Parts()[i].Subtype(); 72 type = body.Parts()[i].Type()+"/"+body.Parts()[i].Subtype();
73 part_plist_t::ConstIterator it = body.Parts()[i].Parameters().begin(); 73 part_plist_t::ConstIterator it = body.Parts()[i].Parameters().begin();
74 for (;it!=body.Parts()[i].Parameters().end();++it) { 74 for (;it!=body.Parts()[i].Parameters().end();++it) {
75 if (it.key().lower()=="name") { 75 if (it.key().lower()=="name") {
76 filename=it.data(); 76 filename=it.data();
77 } 77 }
78 } 78 }
79 s = body.Parts()[i].Size(); 79 s = body.Parts()[i].Size();
80 w = 0; 80 w = 0;
81 while (s>1024) { 81 while (s>1024) {
82 s/=1024; 82 s/=1024;
83 ++w; 83 ++w;
84 if (w>=2) break; 84 if (w>=2) break;
85 } 85 }
86 switch(w) { 86 switch(w) {
87 case 1: 87 case 1:
88 q="k"; 88 q="k";
89 break; 89 break;
90 case 2: 90 case 2:
91 q="M"; 91 q="M";
92 break; 92 break;
93 default: 93 default:
94 q=""; 94 q="";
95 break; 95 break;
96 } 96 }
97 QTextOStream o(&desc); 97 QTextOStream o(&desc);
98 if (w>0) o.precision(2); else o.precision(0); 98 if (w>0) o.precision(2); else o.precision(0);
99 o.setf(QTextStream::fixed); 99 o.setf(QTextStream::fixed);
100 o << s << " " << q << "Byte"; 100 o << s << " " << q << "Byte";
101 curItem=new AttachItem(attachments,curItem,type,filename,desc,i); 101 curItem=new AttachItem(attachments,curItem,type,filename,desc,i);
102} 102}
103} 103}
104 104
105void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int c ) { 105void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int c ) {
106 if (!item ) 106 if (!item )
107 return; 107 return;
108 108
109 QPopupMenu *menu = new QPopupMenu(); 109 QPopupMenu *menu = new QPopupMenu();
110 int ret=0; 110 int ret=0;
111 111
112 if ( item->text( 0 ).left( 4 ) == "text" ) { 112 if ( item->text( 0 ).left( 4 ) == "text" ) {
113 menu->insertItem( tr( "Show Text" ), 1 ); 113 menu->insertItem( tr( "Show Text" ), 1 );
114 } 114 }
115 menu->insertItem( tr( "Save Attachemt" ), 0 ); 115 menu->insertItem( tr( "Save Attachment" ), 0 );
116 menu->insertSeparator(1); 116 menu->insertSeparator(1);
117 117
118 ret = menu->exec( point, 0 ); 118 ret = menu->exec( point, 0 );
119 119
120 switch(ret) { 120 switch(ret) {
121 case 0: 121 case 0:
122 { MimeTypes types; 122 { MimeTypes types;
123 types.insert( "all", "*" ); 123 types.insert( "all", "*" );
124 QString str = OFileDialog::getSaveFileName( 1, 124 QString str = OFileDialog::getSaveFileName( 1,
125 "/", item->text( 1 ) , types, 0 ); 125 "/", item->text( 1 ) , types, 0 );
126 126
127 if( !str.isEmpty() ) { 127 if( !str.isEmpty() ) {
128 qDebug( " first we will need a MIME wrapper" ); 128 qDebug( "first we will need a MIME wrapper" );
129 } 129 }
130 } 130 }
131 break ; 131 break ;
132 132
133 case 1: 133 case 1:
134 qDebug( QString( "Test selected" ).arg( ( ( AttachItem* )item )->Partnumber() ) );
135 if ( ( ( AttachItem* )item )->Partnumber() == -1 ) { 134 if ( ( ( AttachItem* )item )->Partnumber() == -1 ) {
136 setText(); 135 setText();
137 } else { 136 } else {
137 if ( m_recMail.Wrapper() != 0l ) { // make sure that there is a wrapper , even after delete or simular actions
138 browser->setText( m_recMail.Wrapper()->fetchPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] ) ); 138 browser->setText( m_recMail.Wrapper()->fetchPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] ) );
139 }
139 } 140 }
140 break; 141 break;
141 } 142 }
142 delete menu; 143 delete menu;
143} 144}
144 145
145 146
146void ViewMail::setMail( RecMail mail ) { 147void ViewMail::setMail( RecMail mail ) {
147 148
148m_recMail = mail; 149m_recMail = mail;
149 150
150m_mail[0] = mail.getFrom(); 151m_mail[0] = mail.getFrom();
151m_mail[1] = mail.getSubject(); 152m_mail[1] = mail.getSubject();
152m_mail[3] = mail.getDate(); 153m_mail[3] = mail.getDate();
153m_mail[4] = mail.Msgid(); 154m_mail[4] = mail.Msgid();
154 155
155m_mail2[0] = mail.To(); 156m_mail2[0] = mail.To();
156m_mail2[1] = mail.CC(); 157m_mail2[1] = mail.CC();
157m_mail2[2] = mail.Bcc(); 158m_mail2[2] = mail.Bcc();
158 159
159setText(); 160setText();
160} 161}
161 162
162 163
163 164
164ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl) 165ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl)
165 : ViewMailBase(parent, name, fl), _inLoop(false) 166 : ViewMailBase(parent, name, fl), _inLoop(false)
166{ 167{
167 m_gotBody = false; 168 m_gotBody = false;
168 169
169 connect(reply, SIGNAL(activated()), SLOT(slotReply())); 170 connect(reply, SIGNAL(activated()), SLOT(slotReply()));
170 connect(forward, SIGNAL(activated()), SLOT(slotForward())); 171 connect(forward, SIGNAL(activated()), SLOT(slotForward()));
171 172
172 attachments->setEnabled(m_gotBody); 173 attachments->setEnabled(m_gotBody);
173 connect( attachments, SIGNAL( clicked ( QListViewItem *, const QPoint & , int ) ), SLOT( slotItemClicked( QListViewItem *, const QPoint & , int ) ) ); 174 connect( attachments, SIGNAL( clicked ( QListViewItem *, const QPoint & , int ) ), SLOT( slotItemClicked( QListViewItem *, const QPoint & , int ) ) );
174 175
175} 176}
176 177
177void ViewMail::setText() 178void ViewMail::setText()
178{ 179{
179 180
180 QString toString; 181 QString toString;
181 QString ccString; 182 QString ccString;
182 QString bccString; 183 QString bccString;
183 184
184 for ( QStringList::Iterator it = ( m_mail2[0] ).begin(); it != ( m_mail2[0] ).end(); ++it ) { 185 for ( QStringList::Iterator it = ( m_mail2[0] ).begin(); it != ( m_mail2[0] ).end(); ++it ) {
185 toString += (*it); 186 toString += (*it);
186 } 187 }
187 for ( QStringList::Iterator it = ( m_mail2[1] ).begin(); it != ( m_mail2[1] ).end(); ++it ) { 188 for ( QStringList::Iterator it = ( m_mail2[1] ).begin(); it != ( m_mail2[1] ).end(); ++it ) {
188 ccString += (*it); 189 ccString += (*it);
189 } 190 }
190 for ( QStringList::Iterator it = ( m_mail2[2] ).begin(); it != ( m_mail2[2] ).end(); ++it ) { 191 for ( QStringList::Iterator it = ( m_mail2[2] ).begin(); it != ( m_mail2[2] ).end(); ++it ) {
191 bccString += (*it); 192 bccString += (*it);
192 } 193 }
193 194
194 setCaption( caption().arg( m_mail[0] ) ); 195 setCaption( caption().arg( m_mail[0] ) );
195 196
196 m_mailHtml = "<html><body>" 197 m_mailHtml = "<html><body>"
197 "<table width=\"100%\" border=\"0\"><tr bgcolor=\"#FFDD76\"><td>" 198 "<table width=\"100%\" border=\"0\"><tr bgcolor=\"#FFDD76\"><td>"
198 "<div align=left><b>" + deHtml( m_mail[1] ) + "</b></div>" 199 "<div align=left><b>" + deHtml( m_mail[1] ) + "</b></div>"
199 "</td></tr><tr bgcolor=\"#EEEEE6\"><td>" 200 "</td></tr><tr bgcolor=\"#EEEEE6\"><td>"
200 "<b>" + tr( "From" ) + ": </b><font color=#6C86C0>" + deHtml( m_mail[0] ) + "</font><br>" 201 "<b>" + tr( "From" ) + ": </b><font color=#6C86C0>" + deHtml( m_mail[0] ) + "</font><br>"
201 "<b>" + tr( "To" ) + ": </b><font color=#6C86C0>" + deHtml( toString ) + "</font><br><b>" + 202 "<b>" + tr( "To" ) + ": </b><font color=#6C86C0>" + deHtml( toString ) + "</font><br><b>" +
202 tr( "Cc" ) + ": </b>" + deHtml( ccString ) + "<br>" 203 tr( "Cc" ) + ": </b>" + deHtml( ccString ) + "<br>"