Diffstat (limited to 'noncore/net/mail/mainwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/mainwindow.cpp | 151 |
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 | |||
12 | MainWindow::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 | |||
93 | void 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 | |||
105 | void 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 | |||
117 | void 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 | } | ||
136 | void 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 | |||
146 | void MailListViewItem::showEntry() | ||
147 | { | ||
148 | setText(0,mail_data.getSubject()); | ||
149 | setText(1,mail_data.getFrom()); | ||
150 | setText(2,mail_data.getDate()); | ||
151 | } | ||