summaryrefslogtreecommitdiffabout
path: root/kmicromail/mainwindow.cpp
Unidiff
Diffstat (limited to 'kmicromail/mainwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/mainwindow.cpp39
1 files changed, 37 insertions, 2 deletions
diff --git a/kmicromail/mainwindow.cpp b/kmicromail/mainwindow.cpp
index 875ab77..250d114 100644
--- a/kmicromail/mainwindow.cpp
+++ b/kmicromail/mainwindow.cpp
@@ -1,54 +1,55 @@
1 1
2// CHANGED 2004-08-06 Lutz Rogowski 2// CHANGED 2004-08-06 Lutz Rogowski
3#include <qlabel.h> 3#include <qlabel.h>
4#include <qvbox.h> 4#include <qvbox.h>
5#include <qheader.h> 5#include <qheader.h>
6#include <qtimer.h> 6#include <qtimer.h>
7#include <qlayout.h> 7#include <qlayout.h>
8//#include <kdialog.h> 8//#include <kdialog.h>
9#include <kiconloader.h> 9#include <kiconloader.h>
10#include <kapplication.h> 10#include <kapplication.h>
11 11
12#ifdef DESKTOP_VERSION 12#ifdef DESKTOP_VERSION
13#include <qapplication.h> 13#include <qapplication.h>
14#include <qstatusbar.h> 14#include <qstatusbar.h>
15#include <kabc/stdaddressbook.h> 15#include <kabc/stdaddressbook.h>
16extern QStatusBar* globalSstatusBarMainWindow; 16extern QStatusBar* globalSstatusBarMainWindow;
17#else 17#else
18#include <qpe/qpeapplication.h> 18#include <qpe/qpeapplication.h>
19#include <klocale.h> 19#include <klocale.h>
20#endif 20#endif
21#include "defines.h" 21#include "defines.h"
22#include "mainwindow.h" 22#include "mainwindow.h"
23#include "mailistviewitem.h"
23#include <KDGanttMinimizeSplitter.h> 24#include <KDGanttMinimizeSplitter.h>
24 25
25#include "koprefs.h" 26#include "koprefs.h"
26 27
27MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) 28MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
28 : QMainWindow( parent, name ) //, flags ) 29 : QMainWindow( parent, name ) //, flags )
29{ 30{
30#ifdef DESKTOP_VERSION 31#ifdef DESKTOP_VERSION
31 globalSstatusBarMainWindow = statusBar(); 32 globalSstatusBarMainWindow = statusBar();
32#endif 33#endif
33 setCaption( i18n( "KOpieMail/Pi" ) ); 34 setCaption( i18n( "KOpieMail/Pi" ) );
34 setToolBarsMovable( false ); 35 setToolBarsMovable( false );
35 //KABC::StdAddressBook::self(); 36 //KABC::StdAddressBook::self();
36 toolBar = new QToolBar( this ); 37 toolBar = new QToolBar( this );
37 menuBar = new QPEMenuBar( toolBar ); 38 menuBar = new QPEMenuBar( toolBar );
38 mailMenu = new QPopupMenu( menuBar ); 39 mailMenu = new QPopupMenu( menuBar );
39 menuBar->insertItem( i18n( "Mail" ), mailMenu ); 40 menuBar->insertItem( i18n( "Mail" ), mailMenu );
40 settingsMenu = new QPopupMenu( menuBar ); 41 settingsMenu = new QPopupMenu( menuBar );
41 menuBar->insertItem( i18n( "Settings" ), settingsMenu ); 42 menuBar->insertItem( i18n( "Settings" ), settingsMenu );
42 43
43 addToolBar( toolBar ); 44 addToolBar( toolBar );
44 toolBar->setHorizontalStretchable( true ); 45 toolBar->setHorizontalStretchable( true );
45 QAction* getMail = new QAction( i18n( "Get all new mails" ), SmallIcon("enter"), 46 QAction* getMail = new QAction( i18n( "Get all new mails" ), SmallIcon("enter"),
46 0, 0, this ); 47 0, 0, this );
47 connect(getMail, SIGNAL( activated() ), 48 connect(getMail, SIGNAL( activated() ),
48 SLOT( slotGetAllMail() ) ); 49 SLOT( slotGetAllMail() ) );
49 getMail->addTo( mailMenu ); 50 getMail->addTo( mailMenu );
50 51
51 getMail = new QAction( i18n( "Get new messages" ), SmallIcon("add"), 52 getMail = new QAction( i18n( "Get new messages" ), SmallIcon("add"),
52 0, 0, this ); 53 0, 0, this );
53 getMail->addTo( toolBar ); 54 getMail->addTo( toolBar );
54 getMail->addTo( mailMenu ); 55 getMail->addTo( mailMenu );
@@ -87,154 +88,188 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
87 searchMails->addTo( mailMenu ); 88 searchMails->addTo( mailMenu );
88 */ 89 */
89 90
90 deleteMails = new QAction(i18n("Delete Mail"), SmallIcon("trash"), 0, 0, this); 91 deleteMails = new QAction(i18n("Delete Mail"), SmallIcon("trash"), 0, 0, this);
91 deleteMails->addTo( toolBar ); 92 deleteMails->addTo( toolBar );
92 deleteMails->addTo( mailMenu ); 93 deleteMails->addTo( mailMenu );
93 connect( deleteMails, SIGNAL( activated() ), 94 connect( deleteMails, SIGNAL( activated() ),
94 SLOT( slotDeleteAllMail() ) ); 95 SLOT( slotDeleteAllMail() ) );
95 96
96 editSettings = new QAction( i18n( "Edit settings" ), SmallIcon("SettingsIcon") , 97 editSettings = new QAction( i18n( "Edit settings" ), SmallIcon("SettingsIcon") ,
97 0, 0, this ); 98 0, 0, this );
98 editSettings->addTo( settingsMenu ); 99 editSettings->addTo( settingsMenu );
99 connect( editSettings, SIGNAL( activated() ), 100 connect( editSettings, SIGNAL( activated() ),
100 SLOT( slotEditSettings() ) ); 101 SLOT( slotEditSettings() ) );
101 editAccounts = new QAction( i18n( "Configure accounts" ), SmallIcon("editaccounts") , 102 editAccounts = new QAction( i18n( "Configure accounts" ), SmallIcon("editaccounts") ,
102 0, 0, this ); 103 0, 0, this );
103 editAccounts->addTo( settingsMenu ); 104 editAccounts->addTo( settingsMenu );
104 codecMenu = new QPopupMenu( menuBar ); 105 codecMenu = new QPopupMenu( menuBar );
105 codecMenu->insertItem( "Western (iso-8859-1)",0,0); 106 codecMenu->insertItem( "Western (iso-8859-1)",0,0);
106 codecMenu->insertItem( "Cyrillic (iso-8859-5)",1,1); 107 codecMenu->insertItem( "Cyrillic (iso-8859-5)",1,1);
107 codecMenu->insertItem( "Western (iso-8859-15)",2,2); 108 codecMenu->insertItem( "Western (iso-8859-15)",2,2);
108 codecMenu->insertItem( "Chinese (big-5)",3,3); 109 codecMenu->insertItem( "Chinese (big-5)",3,3);
109 codecMenu->insertItem( "Unicode (utf-8)",4,4); 110 codecMenu->insertItem( "Unicode (utf-8)",4,4);
110 codecMenu->insertItem( "Userdefined ("+KOPrefs::instance()->mSendCodec+")",5,5); 111 codecMenu->insertItem( "Userdefined ("+KOPrefs::instance()->mSendCodec+")",5,5);
111 //disabled 112 //disabled
112 //settingsMenu->insertItem( i18n("Codec for new mails"), codecMenu); 113 //settingsMenu->insertItem( i18n("Codec for new mails"), codecMenu);
113 //setCentralWidget( view ); 114 //setCentralWidget( view );
114 115
115 QVBox* wrapperBox = new QVBox( this ); 116 QVBox* wrapperBox = new QVBox( this );
116 setCentralWidget( wrapperBox ); 117 setCentralWidget( wrapperBox );
117 118
118 // QWidget *view = new QWidget( wrapperBox ); 119 // QWidget *view = new QWidget( wrapperBox );
119 KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, wrapperBox); 120 KDGanttMinimizeSplitter* splithor = new KDGanttMinimizeSplitter( Qt::Vertical, wrapperBox);
121 splithor->setMinimizeDirection( KDGanttMinimizeSplitter::Down);
122 KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, splithor);
120 split->setMinimizeDirection( KDGanttMinimizeSplitter::Left); 123 split->setMinimizeDirection( KDGanttMinimizeSplitter::Left);
121 //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight ); 124 //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight );
122 125 QWidget* infoBox = new QWidget( splithor );
126 QGridLayout *griLay = new QGridLayout( infoBox, 2,2);
127 griLay->addWidget( new QLabel ( i18n("Su:"), infoBox ),0,0 );
128 griLay->addWidget( new QLabel ( i18n("Fr:"), infoBox ),1,0 );
129 griLay->addWidget( new QLabel ( i18n("To:"), infoBox ),2,0 );
130 griLay->addWidget( subLE = new QLineEdit( infoBox ),0,1) ;
131 griLay->addWidget( fromLE = new QLineEdit( infoBox ),1,1) ;
132 griLay->addWidget( toLE = new QLineEdit( infoBox ),2,1) ;
133 infoBox->setMaximumHeight( infoBox->sizeHint().height() );
123 folderView = new AccountView( split ); 134 folderView = new AccountView( split );
124 folderView->header()->hide(); 135 folderView->header()->hide();
125 folderView->setRootIsDecorated( false ); 136 folderView->setRootIsDecorated( false );
126 folderView->addColumn( i18n( "Mailbox" ) ); 137 folderView->addColumn( i18n( "Mailbox" ) );
127 138
128 //layout->addWidget( folderView ); 139 //layout->addWidget( folderView );
129 140
130 mailView = new QListView( split ); 141 mailView = new QListView( split );
131 mailView->addColumn( i18n( " " ) ); 142 mailView->addColumn( i18n( " " ) );
132 mailView->addColumn( i18n( "Subject" ),QListView::Manual ); 143 mailView->addColumn( i18n( "Subject" ),QListView::Manual );
133 mailView->addColumn( i18n( "Sender" ),QListView::Manual ); 144 mailView->addColumn( i18n( "Sender" ),QListView::Manual );
134 mailView->addColumn( i18n( "Size" ),QListView::Manual); 145 mailView->addColumn( i18n( "Size" ),QListView::Manual);
135 mailView->addColumn( i18n( "Date" ),QListView::Manual); 146 mailView->addColumn( i18n( "Date" ),QListView::Manual);
136 if ( KOPrefs::instance()->mShowToField ) 147 if ( KOPrefs::instance()->mShowToField )
137 mailView->addColumn( i18n( "To" ),QListView::Manual); 148 mailView->addColumn( i18n( "To" ),QListView::Manual);
138 mailView->setAllColumnsShowFocus(true); 149 mailView->setAllColumnsShowFocus(true);
139 //mailView->setSorting(-1); 150 //mailView->setSorting(-1);
140 mailView->setRootIsDecorated( false ); 151 mailView->setRootIsDecorated( false );
141 statusWidget = new StatusWidget( wrapperBox ); 152 statusWidget = new StatusWidget( wrapperBox );
142 statusWidget->hide(); 153 statusWidget->hide();
143 154
144 //layout->addWidget( mailView ); 155 //layout->addWidget( mailView );
145 //layout->setStretchFactor( folderView, 1 ); 156 //layout->setStretchFactor( folderView, 1 );
146 //layout->setStretchFactor( mailView, 2 ); 157 //layout->setStretchFactor( mailView, 2 );
147 158
148 slotAdjustLayout(); 159 slotAdjustLayout();
149#ifndef DESKTOP_VERSION 160#ifndef DESKTOP_VERSION
150 QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); 161 QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold);
151 QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); 162 QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold);
163 QPEApplication::setStylusOperation( subLE ,QPEApplication::RightOnHold);
164 QPEApplication::setStylusOperation( fromLE ,QPEApplication::RightOnHold);
165 QPEApplication::setStylusOperation( toLE ,QPEApplication::RightOnHold);
152#endif 166#endif
153 connect( mailView, SIGNAL( doubleClicked (QListViewItem* )),this, 167 connect( mailView, SIGNAL( doubleClicked (QListViewItem* )),this,
154 SLOT( mailLeftClicked(QListViewItem*) ) ); 168 SLOT( mailLeftClicked(QListViewItem*) ) );
155 connect( mailView, SIGNAL( returnPressed (QListViewItem* )),this, 169 connect( mailView, SIGNAL( returnPressed (QListViewItem* )),this,
156 SLOT( mailLeftClicked(QListViewItem*) ) ); 170 SLOT( mailLeftClicked(QListViewItem*) ) );
157 connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, 171 connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this,
158 SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) ); 172 SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) );
159 connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)), 173 connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)),
160 this,SLOT(refreshMailView(const QValueList<RecMailP>&))); 174 this,SLOT(refreshMailView(const QValueList<RecMailP>&)));
175
176 connect( mailView, SIGNAL( currentChanged (QListViewItem* )),this,
177 SLOT( setInfoFields(QListViewItem*) ) );
178
161 connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) ); 179 connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) );
162 connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) ); 180 connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) );
163// connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) ); 181// connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) );
164 connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) ); 182 connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) );
165 //mailView->setMultiSelection ( true ); 183 //mailView->setMultiSelection ( true );
166 mailView->setSelectionMode( QListView::Extended ); 184 mailView->setSelectionMode( QListView::Extended );
167 QValueList<int> list; 185 QValueList<int> list;
168 int fw = 100; 186 int fw = 100;
169 if ( QApplication::desktop()->width() > 320 ) 187 if ( QApplication::desktop()->width() > 320 )
170 fw = 50; 188 fw = 50;
171 list.append( fw ); 189 list.append( fw );
172 list.append( 100 ); 190 list.append( 100 );
173 split->setSizes( list ); 191 split->setSizes( list );
174 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); 192 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) );
175 mailView->setShowSortIndicator ( true ); 193 mailView->setShowSortIndicator ( true );
176 QLabel *spacer = new QLabel( toolBar ); 194 QLabel *spacer = new QLabel( toolBar );
177 spacer->setBackgroundMode( QWidget::PaletteButton ); 195 spacer->setBackgroundMode( QWidget::PaletteButton );
178 toolBar->setStretchableWidget( spacer ); 196 toolBar->setStretchableWidget( spacer );
179 197
180 QAction* closeMail = new QAction(i18n("Close"),SmallIcon("exit"), 0, 0, this); 198 QAction* closeMail = new QAction(i18n("Close"),SmallIcon("exit"), 0, 0, this);
181 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) ); 199 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) );
182 if ( QApplication::desktop()->width() > 320 ) 200 if ( QApplication::desktop()->width() > 320 )
183 closeMail->addTo(toolBar); 201 closeMail->addTo(toolBar);
184 closeMail->addTo(mailMenu); 202 closeMail->addTo(mailMenu);
185 203
186 204
187 QPopupMenu* helpMenu = new QPopupMenu( menuBar ); 205 QPopupMenu* helpMenu = new QPopupMenu( menuBar );
188 menuBar->insertItem( i18n( "Help" ), helpMenu ); 206 menuBar->insertItem( i18n( "Help" ), helpMenu );
189 QAction* li = new QAction(i18n("About"), QPixmap(), 0, 0, this); 207 QAction* li = new QAction(i18n("About"), QPixmap(), 0, 0, this);
190 connect( li, SIGNAL( activated() ), SLOT( showAbout()) ); 208 connect( li, SIGNAL( activated() ), SLOT( showAbout()) );
191 li->addTo(helpMenu); 209 li->addTo(helpMenu);
192 li = new QAction(i18n("Licence"),QPixmap(), 0, 0, this); 210 li = new QAction(i18n("Licence"),QPixmap(), 0, 0, this);
193 connect( li, SIGNAL( activated() ), SLOT( showLicence()) ); 211 connect( li, SIGNAL( activated() ), SLOT( showLicence()) );
194 li->addTo(helpMenu); 212 li->addTo(helpMenu);
195 li = new QAction(i18n("LibEtPan Licence"), QPixmap(), 0, 0, this); 213 li = new QAction(i18n("LibEtPan Licence"), QPixmap(), 0, 0, this);
196 connect( li, SIGNAL( activated() ), SLOT( showEtpanLicence()) ); 214 connect( li, SIGNAL( activated() ), SLOT( showEtpanLicence()) );
197 li->addTo(helpMenu); 215 li->addTo(helpMenu);
198 connect( codecMenu, SIGNAL( activated(int) ), this, SLOT( slotSetCodec( int )) ); 216 connect( codecMenu, SIGNAL( activated(int) ), this, SLOT( slotSetCodec( int )) );
199 slotSetCodec( KOPrefs::instance()->mCurrentCodec ); 217 slotSetCodec( KOPrefs::instance()->mCurrentCodec );
200#ifdef DESKTOP_VERSION 218#ifdef DESKTOP_VERSION
201 resize ( 640, 480 ); 219 resize ( 640, 480 );
202#endif 220#endif
203} 221}
204 222
205MainWindow::~MainWindow() 223MainWindow::~MainWindow()
206{ 224{
207} 225}
208 226
227void MainWindow::setInfoFields(QListViewItem* item )
228{
229 if ( item == 0) {
230 subLE->setText("");
231 fromLE->setText("");
232 toLE->setText("");
233 return;
234 }
235 RecMailP mail = ((MailListViewItem*)item)->data();
236 subLE->setText(mail->getSubject());
237 fromLE->setText(mail->getFrom());
238 toLE->setText(mail->To().join(";" ));
239 subLE->setCursorPosition(0);
240 fromLE->setCursorPosition(0);
241 toLE->setCursorPosition(0);
242
243}
209void MainWindow::slotSetCodec( int codec ) 244void MainWindow::slotSetCodec( int codec )
210{ 245{
211 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, false ); 246 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, false );
212 //qDebug("codec %d ", codec); 247 //qDebug("codec %d ", codec);
213 KOPrefs::instance()->mCurrentCodec = codec; 248 KOPrefs::instance()->mCurrentCodec = codec;
214 KOPrefs::instance()->isDirty = true; 249 KOPrefs::instance()->isDirty = true;
215 QString name; 250 QString name;
216 switch ( codec ) { 251 switch ( codec ) {
217 case 0: 252 case 0:
218 name = "iso-8859-1"; 253 name = "iso-8859-1";
219 break; 254 break;
220 case 1: 255 case 1:
221 name = "iso-8859-5"; 256 name = "iso-8859-5";
222 break; 257 break;
223 case 2: 258 case 2:
224 name = "iso-8859-15"; 259 name = "iso-8859-15";
225 break; 260 break;
226 case 3: 261 case 3:
227 name = "big-5"; 262 name = "big-5";
228 break; 263 break;
229 case 4: 264 case 4:
230 name = "utf-8"; 265 name = "utf-8";
231 break; 266 break;
232 case 5: 267 case 5:
233 name = KOPrefs::instance()->mSendCodec.lower(); 268 name = KOPrefs::instance()->mSendCodec.lower();
234 break; 269 break;
235 } 270 }
236 KOPrefs::instance()->mCurrentCodeName = name ; 271 KOPrefs::instance()->mCurrentCodeName = name ;
237 codecMenu->changeItem ( 5, "Userdefined ("+KOPrefs::instance()->mSendCodec+")"); 272 codecMenu->changeItem ( 5, "Userdefined ("+KOPrefs::instance()->mSendCodec+")");
238 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, true ); 273 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, true );
239} 274}
240void MainWindow::showLicence() 275void MainWindow::showLicence()