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.cpp151
1 files changed, 151 insertions, 0 deletions
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp
new file mode 100644
index 0000000..0a433a0
--- a/dev/null
+++ b/noncore/net/mail/mainwindow.cpp
@@ -0,0 +1,151 @@
1#include <qlabel.h>
2#include <qvbox.h>
3#include <qheader.h>
4#include <qtimer.h>
5
6#include <qpe/resource.h>
7
8#include "defines.h"
9#include "readmailgui.h"
10#include "mainwindow.h"
11
12MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
13 : QMainWindow( parent, name, flags )
14{
15 setCaption( tr( "Opie-Mail" ) );
16 setToolBarsMovable( false );
17
18 toolBar = new QToolBar( this );
19 menuBar = new QMenuBar( toolBar );
20 mailMenu = new QPopupMenu( menuBar );
21 menuBar->insertItem( tr( "Mail" ), mailMenu );
22 settingsMenu = new QPopupMenu( menuBar );
23 menuBar->insertItem( tr( "Settings" ), settingsMenu );
24
25 addToolBar( toolBar );
26 toolBar->setHorizontalStretchable( true );
27
28 QLabel *spacer = new QLabel( toolBar );
29 spacer->setBackgroundMode( QWidget::PaletteButton );
30 toolBar->setStretchableWidget( spacer );
31
32 composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL,
33 0, 0, this );
34 composeMail->addTo( toolBar );
35 composeMail->addTo( mailMenu );
36
37 sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED,
38 0, 0, this );
39 sendQueued->addTo( toolBar );
40 sendQueued->addTo( mailMenu );
41
42 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC,
43 0, 0, this );
44 syncFolders->addTo( toolBar );
45 syncFolders->addTo( mailMenu );
46
47 showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS,
48 0, 0, this, 0, true );
49 showFolders->addTo( toolBar );
50 showFolders->addTo( mailMenu );
51 connect(showFolders, SIGNAL( toggled( bool ) ),
52 SLOT( slotShowFolders( bool ) ) );
53
54 searchMails = new QAction( tr( "Search mails" ), ICON_SEARCHMAILS,
55 0, 0, this );
56 searchMails->addTo( toolBar );
57 searchMails->addTo( mailMenu );
58
59
60 editSettings = new QAction( tr( "Edit settings" ), ICON_EDITSETTINGS,
61 0, 0, this );
62 editSettings->addTo( settingsMenu );
63
64 editAccounts = new QAction( tr( "Configure accounts" ), ICON_EDITACCOUNTS,
65 0, 0, this );
66 editAccounts->addTo( settingsMenu );
67
68 QVBox *view = new QVBox( this );
69 setCentralWidget( view );
70
71 folderView = new AccountView( view );
72 folderView->header()->hide();
73 folderView->setMinimumHeight( 90 );
74 folderView->setMaximumHeight( 90 );
75 folderView->addColumn( tr( "Mailbox" ) );
76 folderView->hide();
77
78 mailView = new QListView( view );
79 mailView->setMinimumHeight( 50 );
80 mailView->addColumn( tr( "Subject" ),QListView::Manual );
81 mailView->addColumn( tr( "Sender" ),QListView::Manual );
82 mailView->addColumn( tr( "Date" ));
83 mailView->setAllColumnsShowFocus(true);
84 mailView->setSorting(-1);
85 connect( mailView, SIGNAL( clicked( QListViewItem * ) ),this,
86 SLOT( displayMail( QListViewItem * ) ) );
87
88 connect(folderView,SIGNAL(refreshMailview(Maillist*)),this,SLOT(refreshMailView(Maillist*)));
89
90 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) );
91}
92
93void MainWindow::slotAdjustColumns()
94{
95 bool hidden = folderView->isHidden();
96 if ( hidden ) folderView->show();
97 folderView->setColumnWidth( 0, folderView->visibleWidth() );
98 if ( hidden ) folderView->hide();
99
100 mailView->setColumnWidth( 0, mailView->visibleWidth() - 130 );
101 mailView->setColumnWidth( 1, 80 );
102 mailView->setColumnWidth( 2, 50 );
103}
104
105void MainWindow::slotShowFolders( bool show )
106{
107 qDebug( "Show Folders" );
108 if ( show && folderView->isHidden() ) {
109 qDebug( "-> showing" );
110 folderView->show();
111 } else if ( !show && !folderView->isHidden() ) {
112 qDebug( "-> hiding" );
113 folderView->hide();
114 }
115}
116
117void MainWindow::refreshMailView(Maillist*list)
118{
119 MailListViewItem*item = 0;
120 mailView->clear();
121#if 0
122 QFont f = mailView->getFont();
123 QFont bf = f;
124#endif
125 for (unsigned int i = 0; i < list->count();++i) {
126 item = new MailListViewItem(mailView,item);
127 item->storeData(*(list->at(i)));
128 item->showEntry();
129#if 0
130 if (!list->at(i)->getFlags().testBit(FLAG_SEEN)) {
131 item->setFont(bf);
132 }
133#endif
134 }
135}
136void MainWindow::displayMail(QListViewItem*item)
137{
138 if (!item) return;
139 qDebug("View mail");
140 RecMail mail = ((MailListViewItem*)item)->data();
141 QString body = folderView->fetchBody(mail);
142
143 qDebug(body);
144}
145
146void MailListViewItem::showEntry()
147{
148 setText(0,mail_data.getSubject());
149 setText(1,mail_data.getFrom());
150 setText(2,mail_data.getDate());
151}