summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/mainwindow.cpp28
-rw-r--r--noncore/net/mail/mainwindow.h3
-rw-r--r--noncore/net/mail/viewmail.cpp39
-rw-r--r--noncore/net/mail/viewmail.h12
4 files changed, 58 insertions, 24 deletions
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp
index b25db97..f19f93d 100644
--- a/noncore/net/mail/mainwindow.cpp
+++ b/noncore/net/mail/mainwindow.cpp
@@ -62,60 +62,67 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
62 62
63 editSettings = new QAction( tr( "Edit settings" ), ICON_EDITSETTINGS, 63 editSettings = new QAction( tr( "Edit settings" ), ICON_EDITSETTINGS,
64 0, 0, this ); 64 0, 0, this );
65 editSettings->addTo( settingsMenu ); 65 editSettings->addTo( settingsMenu );
66 66
67 editAccounts = new QAction( tr( "Configure accounts" ), ICON_EDITACCOUNTS, 67 editAccounts = new QAction( tr( "Configure accounts" ), ICON_EDITACCOUNTS,
68 0, 0, this ); 68 0, 0, this );
69 editAccounts->addTo( settingsMenu ); 69 editAccounts->addTo( settingsMenu );
70 70
71 QWidget *view = new QWidget( this ); 71 QWidget *view = new QWidget( this );
72 setCentralWidget( view ); 72 setCentralWidget( view );
73 73
74 74 layout = new QBoxLayout ( view, QBoxLayout::LeftToRight );
75 QWidget *d = QApplication::desktop();
76 QBoxLayout *layout;
77
78 if ( d->width() < d->height() ) {
79 layout = new QVBoxLayout( view );
80 } else {
81 layout = new QHBoxLayout( view );
82 }
83 75
84 folderView = new AccountView( view ); 76 folderView = new AccountView( view );
85 folderView->header()->hide(); 77 folderView->header()->hide();
86 folderView->addColumn( tr( "Mailbox" ) ); 78 folderView->addColumn( tr( "Mailbox" ) );
87 folderView->hide(); 79 folderView->hide();
88 80
89 layout->addWidget( folderView ); 81 layout->addWidget( folderView );
90 82
91 mailView = new QListView( view ); 83 mailView = new QListView( view );
92 mailView->addColumn( tr( "Subject" ),QListView::Manual ); 84 mailView->addColumn( tr( "Subject" ),QListView::Manual );
93 mailView->addColumn( tr( "Sender" ),QListView::Manual ); 85 mailView->addColumn( tr( "Sender" ),QListView::Manual );
94 mailView->addColumn( tr( "Date" )); 86 mailView->addColumn( tr( "Date" ));
95 mailView->setAllColumnsShowFocus(true); 87 mailView->setAllColumnsShowFocus(true);
96 mailView->setSorting(-1); 88 mailView->setSorting(-1);
97 89
98 layout->addWidget( mailView ); 90 layout->addWidget( mailView );
99 layout->setStretchFactor( folderView, 1 ); 91 layout->setStretchFactor( folderView, 1 );
100 layout->setStretchFactor( mailView, 2 ); 92 layout->setStretchFactor( mailView, 2 );
101 93
94 slotAdjustLayout();
95
102 connect( mailView, SIGNAL( clicked( QListViewItem * ) ),this, 96 connect( mailView, SIGNAL( clicked( QListViewItem * ) ),this,
103 SLOT( displayMail( QListViewItem * ) ) ); 97 SLOT( displayMail( QListViewItem * ) ) );
104 98
105 connect(folderView,SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*))); 99 connect(folderView,SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*)));
106 100
107 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); 101 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) );
108} 102}
109 103
104
105void MainWindow::slotAdjustLayout() {
106
107 QWidget *d = QApplication::desktop();
108
109 if ( d->width() < d->height() ) {
110 layout->setDirection( QBoxLayout::TopToBottom );
111 } else {
112 layout->setDirection( QBoxLayout::LeftToRight );
113 }
114 delete d;
115}
116
110void MainWindow::slotAdjustColumns() 117void MainWindow::slotAdjustColumns()
111{ 118{
112 bool hidden = folderView->isHidden(); 119 bool hidden = folderView->isHidden();
113 if ( hidden ) folderView->show(); 120 if ( hidden ) folderView->show();
114 folderView->setColumnWidth( 0, folderView->visibleWidth() ); 121 folderView->setColumnWidth( 0, folderView->visibleWidth() );
115 if ( hidden ) folderView->hide(); 122 if ( hidden ) folderView->hide();
116 123
117 mailView->setColumnWidth( 0, mailView->visibleWidth() - 130 ); 124 mailView->setColumnWidth( 0, mailView->visibleWidth() - 130 );
118 mailView->setColumnWidth( 1, 80 ); 125 mailView->setColumnWidth( 1, 80 );
119 mailView->setColumnWidth( 2, 50 ); 126 mailView->setColumnWidth( 2, 50 );
120} 127}
121 128
@@ -140,25 +147,26 @@ void MainWindow::refreshMailView(QList<RecMail>*list)
140 item->storeData(*(list->at(i))); 147 item->storeData(*(list->at(i)));
141 item->showEntry(); 148 item->showEntry();
142 } 149 }
143} 150}
144void MainWindow::displayMail(QListViewItem*item) 151void MainWindow::displayMail(QListViewItem*item)
145{ 152{
146 if (!item) return; 153 if (!item) return;
147 qDebug("View mail"); 154 qDebug("View mail");
148 RecMail mail = ((MailListViewItem*)item)->data(); 155 RecMail mail = ((MailListViewItem*)item)->data();
149 RecBody body = folderView->fetchBody(mail); 156 RecBody body = folderView->fetchBody(mail);
150 157
151 ViewMail readMail( this ); 158 ViewMail readMail( this );
152 readMail.setMailInfo( mail.getFrom(), "", mail.getSubject(), "", "", body.Bodytext() ); 159
160 readMail.setMailInfo( mail.getFrom(), mail.To(), mail.getSubject(), mail.CC(), mail.Bcc(), mail.getDate(), body.Bodytext() );
153 readMail.showMaximized(); 161 readMail.showMaximized();
154 readMail.exec(); 162 readMail.exec();
155} 163}
156 164
157MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * after ) 165MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * after )
158 :QListViewItem(parent,after),mail_data() 166 :QListViewItem(parent,after),mail_data()
159{ 167{
160} 168}
161 169
162void MailListViewItem::showEntry() 170void MailListViewItem::showEntry()
163{ 171{
164 setText(0,mail_data.getSubject()); 172 setText(0,mail_data.getSubject());
diff --git a/noncore/net/mail/mainwindow.h b/noncore/net/mail/mainwindow.h
index 6c87261..6c1cda0 100644
--- a/noncore/net/mail/mainwindow.h
+++ b/noncore/net/mail/mainwindow.h
@@ -17,25 +17,26 @@ class MainWindow : public QMainWindow
17 Q_OBJECT 17 Q_OBJECT
18 18
19public: 19public:
20 MainWindow( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 ); 20 MainWindow( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 );
21 21
22public slots: 22public slots:
23 void slotAdjustColumns(); 23 void slotAdjustColumns();
24 24
25protected slots: 25protected slots:
26 virtual void slotShowFolders( bool show ); 26 virtual void slotShowFolders( bool show );
27 virtual void refreshMailView(QList<RecMail>*); 27 virtual void refreshMailView(QList<RecMail>*);
28 virtual void displayMail(QListViewItem*); 28 virtual void displayMail(QListViewItem*);
29 void slotAdjustLayout();
29 30
30protected: 31protected:
31 QToolBar *toolBar; 32 QToolBar *toolBar;
32 QMenuBar *menuBar; 33 QMenuBar *menuBar;
33 QPopupMenu *mailMenu, *settingsMenu; 34 QPopupMenu *mailMenu, *settingsMenu;
34 QAction *composeMail, *sendQueued, *showFolders, *searchMails, 35 QAction *composeMail, *sendQueued, *showFolders, *searchMails,
35 *editSettings, *editAccounts, *syncFolders; 36 *editSettings, *editAccounts, *syncFolders;
36 AccountView *folderView; 37 AccountView *folderView;
37 QListView *mailView; 38 QListView *mailView;
38 39 QBoxLayout *layout;
39}; 40};
40 41
41#endif 42#endif
diff --git a/noncore/net/mail/viewmail.cpp b/noncore/net/mail/viewmail.cpp
index b648b34..cba9948 100644
--- a/noncore/net/mail/viewmail.cpp
+++ b/noncore/net/mail/viewmail.cpp
@@ -14,74 +14,89 @@ AttachItem::AttachItem(QListView *parent, AttachItemStore &attachItemStore)
14 setText(1, _attachItemStore.fileName()); 14 setText(1, _attachItemStore.fileName());
15 setText(2, _attachItemStore.description()); 15 setText(2, _attachItemStore.description());
16} 16}
17 17
18AttachItem::AttachItem(QListViewItem *parent, AttachItemStore &attachItemStore) 18AttachItem::AttachItem(QListViewItem *parent, AttachItemStore &attachItemStore)
19 : QListViewItem(parent), _attachItemStore(attachItemStore) 19 : QListViewItem(parent), _attachItemStore(attachItemStore)
20{ 20{
21 setText(0, _attachItemStore.mimeType()); 21 setText(0, _attachItemStore.mimeType());
22 setText(1, _attachItemStore.fileName()); 22 setText(1, _attachItemStore.fileName());
23 setText(2, _attachItemStore.description()); 23 setText(2, _attachItemStore.description());
24} 24}
25 25
26void ViewMail::setMailInfo( const QString & from, const QString & to, const QString & subject, const QString & cc, const QString & bcc, const QString & bodytext ) { 26void ViewMail::setMailInfo( const QString & from, const QStringList & to, const QString & subject, const QStringList & cc, const QStringList & bcc, const QString & date, const QString & bodytext ) {
27 27
28m_mail[0] = from; 28m_mail[0] = from;
29m_mail[1] = to; 29m_mail2[0] = to;
30m_mail[2] = subject; 30m_mail[1] = subject;
31m_mail[3] = cc; 31m_mail2[1] = cc;
32m_mail[4] = bcc; 32m_mail2[2] = bcc;
33m_mail[5] = bodytext; 33m_mail[2] = bodytext;
34m_mail[3] = date;
34 35
35setText(); 36setText();
36 37
37} 38}
38 39
39 40
40ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl) 41ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl)
41 : ViewMailBase(parent, name, fl), _inLoop(false) 42 : ViewMailBase(parent, name, fl), _inLoop(false)
42{ 43{
43 _gotBody = false; 44 _gotBody = false;
44 45
45 connect(reply, SIGNAL(activated()), SLOT(slotReply())); 46 connect(reply, SIGNAL(activated()), SLOT(slotReply()));
46 connect(forward, SIGNAL(activated()), SLOT(slotForward())); 47 connect(forward, SIGNAL(activated()), SLOT(slotForward()));
47 48
48 attachments->setEnabled(_gotBody); 49 attachments->setEnabled(_gotBody);
49 50
50 //_handler->iUid("FETCH", QString("%1 (BODY[1])").arg(mail.uid())); 51 //_handler->iUid("FETCH", QString("%1 (BODY[1])").arg(mail.uid()));
51 //connect(_handler, SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPUid(IMAPResponse &))); 52 //connect(_handler, SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPUid(IMAPResponse &)));
52} 53}
53 54
54void ViewMail::setText() 55void ViewMail::setText()
55{ 56{
56 57
58 QString toString;
59 QString ccString;
60 QString bccString;
61
62 for ( QStringList::Iterator it = ( m_mail2[0] ).begin(); it != ( m_mail2[0] ).end(); ++it ) {
63 toString += (*it);
64 }
65 for ( QStringList::Iterator it = ( m_mail2[1] ).begin(); it != ( m_mail2[1] ).end(); ++it ) {
66 ccString += (*it);
67 }
68 for ( QStringList::Iterator it = ( m_mail2[2] ).begin(); it != ( m_mail2[2] ).end(); ++it ) {
69 bccString += (*it);
70 }
71
57 setCaption( caption().arg( m_mail[0] ) ); 72 setCaption( caption().arg( m_mail[0] ) );
58 73
59 _mailHtml = tr( 74 _mailHtml = tr(
60 "<html><body>" 75 "<html><body>"
61 "<div align=center><b>%1</b></div>" 76 "<div align=center><b>%1</b></div>"
62 "<b>From:</b> %2<br>" 77 "<b>From:</b> %2<br>"
63 "<b>To:</b> %3<br>" 78 "<b>To:</b> %3<br>"
64 "%4" 79 "%4"
65 "%5" 80 "%5"
66 "<b>Date:</b> %6<hr>" 81 "<b>Date:</b> %6<hr>"
67 "<font face=fixed>%7</font>") 82 "<font face=fixed>%7</font>")
68 .arg( deHtml( m_mail[2] ) )
69 .arg( deHtml( m_mail[0] ) )
70 .arg( deHtml( m_mail[1] ) ) 83 .arg( deHtml( m_mail[1] ) )
71 .arg( tr("<b>Cc:</b> %1<br>").arg( deHtml( m_mail[3] ) ) ) 84 .arg( deHtml( m_mail[0] ) )
72 .arg( tr("<b>Bcc:</b> %1<br>").arg( deHtml( m_mail[4] ) ) ) 85 .arg( deHtml( toString ) )
73 .arg( tr("(no date)" ) ) 86 .arg( tr("<b>Cc:</b> %1<br>").arg( deHtml( ccString ) ) )
87 .arg( tr("<b>Bcc:</b> %1<br>").arg( deHtml( bccString ) ) )
88 .arg( m_mail[3] )
74 .arg("%1"); 89 .arg("%1");
75 browser->setText( QString(_mailHtml) + deHtml( m_mail[5] ) ); 90 browser->setText( QString(_mailHtml) + deHtml( m_mail[2] ) );
76} 91}
77 92
78 93
79 94
80ViewMail::~ViewMail() 95ViewMail::~ViewMail()
81{ 96{
82 hide(); 97 hide();
83} 98}
84 99
85void ViewMail::hide() 100void ViewMail::hide()
86{ 101{
87 QWidget::hide(); 102 QWidget::hide();
diff --git a/noncore/net/mail/viewmail.h b/noncore/net/mail/viewmail.h
index 9d3c6e4..615939a 100644
--- a/noncore/net/mail/viewmail.h
+++ b/noncore/net/mail/viewmail.h
@@ -1,17 +1,18 @@
1#ifndef VIEWMAIL_H 1#ifndef VIEWMAIL_H
2#define VIEWMAIL_H 2#define VIEWMAIL_H
3 3
4#include <qlistview.h> 4#include <qlistview.h>
5#include <qmap.h> 5#include <qmap.h>
6#include <qstringlist.h>
6 7
7#include "viewmailbase.h" 8#include "viewmailbase.h"
8//#include "imapresponse.h" 9//#include "imapresponse.h"
9//#include "mailtable.h" 10//#include "mailtable.h"
10 11
11class AttachItemStore 12class AttachItemStore
12{ 13{
13public: 14public:
14 void setMimeType(QString mimeType) { _mimeType = mimeType; } 15 void setMimeType(QString mimeType) { _mimeType = mimeType; }
15 QString mimeType() { return _mimeType; } 16 QString mimeType() { return _mimeType; }
16 void setFileName(QString fileName) { _fileName = fileName; } 17 void setFileName(QString fileName) { _fileName = fileName; }
17 QString fileName() { return _fileName; } 18 QString fileName() { return _fileName; }
@@ -40,36 +41,45 @@ private:
40 41
41class ViewMail : public ViewMailBase 42class ViewMail : public ViewMailBase
42{ 43{
43 Q_OBJECT 44 Q_OBJECT
44 45
45public: 46public:
46 ViewMail( QWidget *parent = 0, const char *name = 0, WFlags fl = Qt::WType_Modal); 47 ViewMail( QWidget *parent = 0, const char *name = 0, WFlags fl = Qt::WType_Modal);
47 ~ViewMail(); 48 ~ViewMail();
48 49
49 void hide(); 50 void hide();
50 void exec(); 51 void exec();
51 static QString appName() { return QString::fromLatin1("mail"); } 52 static QString appName() { return QString::fromLatin1("mail"); }
52 void setMailInfo( const QString & from, const QString & to, const QString & subject, const QString & cc, const QString & bcc, const QString & bodytext ); 53 void setMailInfo( const QString & from, const QStringList & to, const QString & subject, const QStringList & cc, const QStringList & bcc,const QString & date, const QString & bodytext );
53 54
54protected: 55protected:
55 //void fillList(IMAPResponseBODYSTRUCTURE &structure); 56 //void fillList(IMAPResponseBODYSTRUCTURE &structure);
56 QString deHtml(const QString &string); 57 QString deHtml(const QString &string);
57 58
58protected slots: 59protected slots:
59 void slotReply(); 60 void slotReply();
60 void slotForward(); 61 void slotForward();
61 void setText(); 62 void setText();
62 63
63 //void slotIMAPUid(IMAPResponse &response); 64 //void slotIMAPUid(IMAPResponse &response);
64 65
65private: 66private:
66 bool _inLoop; 67 bool _inLoop;
67 //IMAPResponseFETCH _mail; 68 //IMAPResponseFETCH _mail;
68 //IMAPHandler *_handler; 69 //IMAPHandler *_handler;
69 QString _mailHtml; 70 QString _mailHtml;
70 bool _gotBody; 71 bool _gotBody;
72
73 // 0 from
74 // 1 subject
75 // 2 bodytext
76 // 3 date
71 QMap <int,QString> m_mail; 77 QMap <int,QString> m_mail;
78 // 0 to
79 // 1 cc
80 // 2 bcc
81 QMap <int,QStringList> m_mail2;
72 82
73}; 83};
74 84
75#endif 85#endif