-rw-r--r-- | kmicromail/mainwindow.cpp | 232 |
1 files changed, 232 insertions, 0 deletions
diff --git a/kmicromail/mainwindow.cpp b/kmicromail/mainwindow.cpp new file mode 100644 index 0000000..78377ea --- a/dev/null +++ b/kmicromail/mainwindow.cpp | |||
@@ -0,0 +1,232 @@ | |||
1 | #include <qlabel.h> | ||
2 | #include <qvbox.h> | ||
3 | #include <qheader.h> | ||
4 | #include <qtimer.h> | ||
5 | #include <qlayout.h> | ||
6 | #include <kdialog.h> | ||
7 | #include <kiconloader.h> | ||
8 | |||
9 | #ifndef DESKTOP_VERSION | ||
10 | #include <qpe/qpeapplication.h> | ||
11 | #endif | ||
12 | #include "defines.h" | ||
13 | #include "mainwindow.h" | ||
14 | #include <KDGanttMinimizeSplitter.h> | ||
15 | |||
16 | |||
17 | #include <kabc/stdaddressbook.h> | ||
18 | |||
19 | MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) | ||
20 | : QMainWindow( parent, name, flags ) | ||
21 | { | ||
22 | setCaption( tr( "KMicroMail" ) ); | ||
23 | setToolBarsMovable( false ); | ||
24 | KABC::StdAddressBook::self(); | ||
25 | toolBar = new QToolBar( this ); | ||
26 | menuBar = new QMenuBar( toolBar ); | ||
27 | mailMenu = new QPopupMenu( menuBar ); | ||
28 | menuBar->insertItem( tr( "Mail" ), mailMenu ); | ||
29 | settingsMenu = new QPopupMenu( menuBar ); | ||
30 | menuBar->insertItem( tr( "Settings" ), settingsMenu ); | ||
31 | |||
32 | addToolBar( toolBar ); | ||
33 | toolBar->setHorizontalStretchable( true ); | ||
34 | |||
35 | QLabel *spacer = new QLabel( toolBar ); | ||
36 | spacer->setBackgroundMode( QWidget::PaletteButton ); | ||
37 | toolBar->setStretchableWidget( spacer ); | ||
38 | |||
39 | composeMail = new QAction( tr( "Compose new mail" ), SmallIcon("composemail"), | ||
40 | 0, 0, this ); | ||
41 | composeMail->addTo( toolBar ); | ||
42 | composeMail->addTo( mailMenu ); | ||
43 | |||
44 | sendQueued = new QAction( tr( "Send queued mails" ), SmallIcon("sendqueued") , | ||
45 | 0, 0, this ); | ||
46 | sendQueued->addTo( toolBar ); | ||
47 | sendQueued->addTo( mailMenu ); | ||
48 | |||
49 | /* | ||
50 | syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC, | ||
51 | 0, 0, this ); | ||
52 | syncFolders->addTo( toolBar ); | ||
53 | syncFolders->addTo( mailMenu ); | ||
54 | */ | ||
55 | |||
56 | showFolders = new QAction( tr( "Show/Hide folders" ), SmallIcon("showfolders") , | ||
57 | 0, 0, this, 0, true ); | ||
58 | showFolders->addTo( toolBar ); | ||
59 | showFolders->addTo( mailMenu ); | ||
60 | showFolders->setOn( true ); | ||
61 | connect(showFolders, SIGNAL( toggled(bool) ), | ||
62 | SLOT( slotShowFolders(bool) ) ); | ||
63 | |||
64 | /* | ||
65 | searchMails = new QAction( tr( "Search mails" ), SmallIcon("find") ), | ||
66 | 0, 0, this ); | ||
67 | searchMails->addTo( toolBar ); | ||
68 | searchMails->addTo( mailMenu ); | ||
69 | */ | ||
70 | |||
71 | deleteMails = new QAction(tr("Delete Mail"), SmallIcon("trash"), 0, 0, this); | ||
72 | deleteMails->addTo( toolBar ); | ||
73 | deleteMails->addTo( mailMenu ); | ||
74 | connect( deleteMails, SIGNAL( activated() ), | ||
75 | SLOT( slotDeleteMail() ) ); | ||
76 | |||
77 | editSettings = new QAction( tr( "Edit settings" ), SmallIcon("SettingsIcon") , | ||
78 | 0, 0, this ); | ||
79 | editSettings->addTo( settingsMenu ); | ||
80 | connect( editSettings, SIGNAL( activated() ), | ||
81 | SLOT( slotEditSettings() ) ); | ||
82 | editAccounts = new QAction( tr( "Configure accounts" ), SmallIcon("editaccounts") , | ||
83 | 0, 0, this ); | ||
84 | editAccounts->addTo( settingsMenu ); | ||
85 | |||
86 | //setCentralWidget( view ); | ||
87 | |||
88 | QVBox* wrapperBox = new QVBox( this ); | ||
89 | setCentralWidget( wrapperBox ); | ||
90 | |||
91 | // QWidget *view = new QWidget( wrapperBox ); | ||
92 | KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, wrapperBox); | ||
93 | split->setMinimizeDirection( KDGanttMinimizeSplitter::Left); | ||
94 | //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight ); | ||
95 | |||
96 | folderView = new AccountView( split ); | ||
97 | folderView->header()->hide(); | ||
98 | folderView->setRootIsDecorated( true ); | ||
99 | folderView->addColumn( tr( "Mailbox" ) ); | ||
100 | |||
101 | //layout->addWidget( folderView ); | ||
102 | |||
103 | mailView = new QListView( split ); | ||
104 | mailView->addColumn( tr( "" ) ); | ||
105 | mailView->addColumn( tr( "Subject" ),QListView::Manual ); | ||
106 | mailView->addColumn( tr( "Sender" ),QListView::Manual ); | ||
107 | mailView->addColumn( tr( "Size" ),QListView::Manual); | ||
108 | mailView->addColumn( tr( "Date" )); | ||
109 | mailView->setAllColumnsShowFocus(true); | ||
110 | //mailView->setSorting(-1); | ||
111 | |||
112 | statusWidget = new StatusWidget( wrapperBox ); | ||
113 | statusWidget->hide(); | ||
114 | |||
115 | //layout->addWidget( mailView ); | ||
116 | //layout->setStretchFactor( folderView, 1 ); | ||
117 | //layout->setStretchFactor( mailView, 2 ); | ||
118 | |||
119 | slotAdjustLayout(); | ||
120 | #ifndef DESKTOP_VERSION | ||
121 | QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); | ||
122 | QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); | ||
123 | #endif | ||
124 | connect( mailView, SIGNAL( doubleClicked (QListViewItem* )),this, | ||
125 | SLOT( mailLeftClicked(QListViewItem*) ) ); | ||
126 | connect( mailView, SIGNAL( returnPressed (QListViewItem* )),this, | ||
127 | SLOT( mailLeftClicked(QListViewItem*) ) ); | ||
128 | connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, | ||
129 | SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) ); | ||
130 | connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)), | ||
131 | this,SLOT(refreshMailView(const QValueList<RecMailP>&))); | ||
132 | connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) ); | ||
133 | connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) ); | ||
134 | // connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) ); | ||
135 | connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) ); | ||
136 | mailView->setMultiSelection ( true ); | ||
137 | //mailView->setSelectionMode( QListView::Extended ); | ||
138 | QValueList<int> list; | ||
139 | int fw = 100; | ||
140 | if ( QApplication::desktop()->width() > 320 ) | ||
141 | fw = 50; | ||
142 | list.append( fw ); | ||
143 | list.append( 100 ); | ||
144 | split->setSizes( list ); | ||
145 | QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); | ||
146 | mailView->setShowSortIndicator ( true ); | ||
147 | } | ||
148 | |||
149 | MainWindow::~MainWindow() | ||
150 | { | ||
151 | } | ||
152 | |||
153 | void MainWindow::appMessage(const QCString &, const QByteArray &) | ||
154 | { | ||
155 | qDebug("appMessage implemented by subclass"); | ||
156 | } | ||
157 | |||
158 | void MainWindow::slotAdjustLayout() { | ||
159 | |||
160 | /* | ||
161 | QWidget *d = QApplication::desktop(); | ||
162 | |||
163 | if ( d->width() < d->height() ) { | ||
164 | layout->setDirection( QBoxLayout::TopToBottom ); | ||
165 | } else { | ||
166 | layout->setDirection( QBoxLayout::LeftToRight ); | ||
167 | } | ||
168 | */ | ||
169 | } | ||
170 | |||
171 | void MainWindow::slotAdjustColumns() | ||
172 | { | ||
173 | bool hidden = folderView->isHidden(); | ||
174 | if ( hidden ) folderView->show(); | ||
175 | folderView->setColumnWidth( 0, folderView->visibleWidth() ); | ||
176 | if ( hidden ) folderView->hide(); | ||
177 | |||
178 | mailView->setColumnWidth( 0, 10 ); | ||
179 | mailView->setColumnWidth( 1, mailView->visibleWidth() - 130 ); | ||
180 | mailView->setColumnWidth( 2, 80 ); | ||
181 | mailView->setColumnWidth( 3, 50 ); | ||
182 | mailView->setColumnWidth( 4, 50 ); | ||
183 | } | ||
184 | |||
185 | void MainWindow::slotEditSettings() | ||
186 | { | ||
187 | } | ||
188 | |||
189 | void MainWindow::slotShowFolders( bool ) | ||
190 | { | ||
191 | qDebug("not implemented: "); | ||
192 | } | ||
193 | |||
194 | void MainWindow::refreshMailView(const QValueList<RecMailP>&) | ||
195 | { | ||
196 | qDebug("not implemented: "); | ||
197 | } | ||
198 | |||
199 | void MainWindow::mailLeftClicked(QListViewItem * ) | ||
200 | { | ||
201 | qDebug("not implemented: "); | ||
202 | } | ||
203 | |||
204 | void MainWindow::displayMail() | ||
205 | { | ||
206 | qDebug("not implemented: "); | ||
207 | } | ||
208 | |||
209 | void MainWindow::slotDeleteMail() | ||
210 | { | ||
211 | qDebug("not implemented: "); | ||
212 | } | ||
213 | |||
214 | void MainWindow::mailHold(int, QListViewItem *,const QPoint&,int ) | ||
215 | { | ||
216 | qDebug("not implemented: "); | ||
217 | } | ||
218 | |||
219 | void MainWindow::slotSendQueued() | ||
220 | { | ||
221 | qDebug("not implemented: "); | ||
222 | } | ||
223 | |||
224 | void MainWindow::slotEditAccounts() | ||
225 | { | ||
226 | qDebug("not implemented: "); | ||
227 | } | ||
228 | |||
229 | void MainWindow::slotComposeMail() | ||
230 | { | ||
231 | qDebug("not implemented: "); | ||
232 | } | ||