summaryrefslogtreecommitdiff
authoralwin <alwin>2004-07-19 13:25:12 (UTC)
committer alwin <alwin>2004-07-19 13:25:12 (UTC)
commit1397c4f0801d4bf1581c26e466453ba65f1b4261 (patch) (unidiff)
treedd57fbf32ca9371d77ae0a90aa564f8b07779a3f
parentf35e69d020bdce078e2fc11f3a5298118a33f346 (diff)
downloadopie-1397c4f0801d4bf1581c26e466453ba65f1b4261.zip
opie-1397c4f0801d4bf1581c26e466453ba65f1b4261.tar.gz
opie-1397c4f0801d4bf1581c26e466453ba65f1b4261.tar.bz2
block SIGPIPE global 'cause we can not satisfy it inside libetpan
itself.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/opiemail.cpp30
-rw-r--r--noncore/net/mail/opiemail.h3
2 files changed, 25 insertions, 8 deletions
diff --git a/noncore/net/mail/opiemail.cpp b/noncore/net/mail/opiemail.cpp
index 5399c3c..2f87e44 100644
--- a/noncore/net/mail/opiemail.cpp
+++ b/noncore/net/mail/opiemail.cpp
@@ -15,27 +15,41 @@
15#include <opie2/odebug.h> 15#include <opie2/odebug.h>
16#include <qpe/resource.h> 16#include <qpe/resource.h>
17#include <qpe/qpeapplication.h> 17#include <qpe/qpeapplication.h>
18 18
19/* QT */ 19/* QT */
20 20
21/* UNIX */
22#include <signal.h>
23
21using namespace Opie::Core; 24using namespace Opie::Core;
22 25
23OpieMail::OpieMail( QWidget *parent, const char *name, WFlags flags ) 26OpieMail::OpieMail( QWidget *parent, const char *name, WFlags flags )
24 : MainWindow( parent, name, WStyle_ContextHelp ) 27 : MainWindow( parent, name, WStyle_ContextHelp )
25{ 28{
29 setup_signalblocking();
26 settings = new Settings(); 30 settings = new Settings();
27 31
28 folderView->populate( settings->getAccounts() ); 32 folderView->populate( settings->getAccounts() );
29} 33}
30 34
31OpieMail::~OpieMail() 35OpieMail::~OpieMail()
32{ 36{
33 if (settings) delete settings; 37 if (settings) delete settings;
34} 38}
35 39
40void OpieMail::setup_signalblocking()
41{
42 /* for networking we must block SIGPIPE and Co. */
43 struct sigaction blocking_action,temp_action;
44 blocking_action.sa_handler = SIG_IGN;
45 sigemptyset(&(blocking_action.sa_mask));
46 blocking_action.sa_flags = 0;
47 sigaction(SIGPIPE,&blocking_action,&temp_action);
48}
49
36void OpieMail::appMessage(const QCString &msg, const QByteArray &data) 50void OpieMail::appMessage(const QCString &msg, const QByteArray &data)
37{ 51{
38 // copied from old mail2 52 // copied from old mail2
39 if (msg == "writeMail(QString,QString)") 53 if (msg == "writeMail(QString,QString)")
40 { 54 {
41 QDataStream stream(data,IO_ReadOnly); 55 QDataStream stream(data,IO_ReadOnly);
@@ -67,19 +81,19 @@ void OpieMail::slotwriteMail(const QString&name,const QString&email)
67 compose.slotAdjustColumns(); 81 compose.slotAdjustColumns();
68 QPEApplication::execDialog( &compose ); 82 QPEApplication::execDialog( &compose );
69} 83}
70 84
71void OpieMail::slotComposeMail() 85void OpieMail::slotComposeMail()
72{ 86{
73 odebug << "Compose Mail" << oendl; 87 odebug << "Compose Mail" << oendl;
74 slotwriteMail(0l,0l); 88 slotwriteMail(0l,0l);
75} 89}
76 90
77void OpieMail::slotSendQueued() 91void OpieMail::slotSendQueued()
78{ 92{
79 odebug << "Send Queued" << oendl; 93 odebug << "Send Queued" << oendl;
80 SMTPaccount *smtp = 0; 94 SMTPaccount *smtp = 0;
81 95
82 QList<Account> list = settings->getAccounts(); 96 QList<Account> list = settings->getAccounts();
83 QList<SMTPaccount> smtpList; 97 QList<SMTPaccount> smtpList;
84 smtpList.setAutoDelete(false); 98 smtpList.setAutoDelete(false);
85 Account *it; 99 Account *it;
@@ -120,24 +134,24 @@ void OpieMail::slotSendQueued()
120 delete wrap; 134 delete wrap;
121 } 135 }
122} 136}
123 137
124void OpieMail::slotSearchMails() 138void OpieMail::slotSearchMails()
125{ 139{
126 odebug << "Search Mails" << oendl; 140 odebug << "Search Mails" << oendl;
127} 141}
128 142
129void OpieMail::slotEditSettings() 143void OpieMail::slotEditSettings()
130{ 144{
131 SettingsDialog settingsDialog( this, 0, true, WStyle_ContextHelp ); 145 SettingsDialog settingsDialog( this, 0, true, WStyle_ContextHelp );
132 QPEApplication::execDialog( &settingsDialog ); 146 QPEApplication::execDialog( &settingsDialog );
133} 147}
134 148
135void OpieMail::slotEditAccounts() 149void OpieMail::slotEditAccounts()
136{ 150{
137 odebug << "Edit Accounts" << oendl; 151 odebug << "Edit Accounts" << oendl;
138 EditAccounts eaDialog( settings, this, 0, true, WStyle_ContextHelp ); 152 EditAccounts eaDialog( settings, this, 0, true, WStyle_ContextHelp );
139 eaDialog.slotAdjustColumns(); 153 eaDialog.slotAdjustColumns();
140 QPEApplication::execDialog( &eaDialog ); 154 QPEApplication::execDialog( &eaDialog );
141 if ( settings ) delete settings; 155 if ( settings ) delete settings;
142 settings = new Settings(); 156 settings = new Settings();
143 157
@@ -180,13 +194,13 @@ void OpieMail::slotDeleteMail()
180void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int ) 194void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int )
181{ 195{
182 if (!mailView->currentItem()) return; 196 if (!mailView->currentItem()) return;
183 MAILLIB::ATYPE mailtype = ((MailListViewItem*)mailView->currentItem() )->wrapperType(); 197 MAILLIB::ATYPE mailtype = ((MailListViewItem*)mailView->currentItem() )->wrapperType();
184 /* just the RIGHT button - or hold on pda */ 198 /* just the RIGHT button - or hold on pda */
185 if (button!=2) {return;} 199 if (button!=2) {return;}
186 odebug << "Event right/hold" << oendl; 200 odebug << "Event right/hold" << oendl;
187 if (!item) return; 201 if (!item) return;
188 QPopupMenu *m = new QPopupMenu(0); 202 QPopupMenu *m = new QPopupMenu(0);
189 if (m) 203 if (m)
190 { 204 {
191 if (mailtype==MAILLIB::A_NNTP) { 205 if (mailtype==MAILLIB::A_NNTP) {
192 m->insertItem(tr("Read this posting"),this,SLOT(displayMail())); 206 m->insertItem(tr("Read this posting"),this,SLOT(displayMail()));
@@ -204,21 +218,21 @@ void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int )
204 delete m; 218 delete m;
205 } 219 }
206} 220}
207 221
208void OpieMail::slotShowFolders( bool show ) 222void OpieMail::slotShowFolders( bool show )
209{ 223{
210 odebug << "Show Folders" << oendl; 224 odebug << "Show Folders" << oendl;
211 if ( show && folderView->isHidden() ) 225 if ( show && folderView->isHidden() )
212 { 226 {
213 odebug << "-> showing" << oendl; 227 odebug << "-> showing" << oendl;
214 folderView->show(); 228 folderView->show();
215 } 229 }
216 else if ( !show && !folderView->isHidden() ) 230 else if ( !show && !folderView->isHidden() )
217 { 231 {
218 odebug << "-> hiding" << oendl; 232 odebug << "-> hiding" << oendl;
219 folderView->hide(); 233 folderView->hide();
220 } 234 }
221} 235}
222 236
223void OpieMail::refreshMailView(const QValueList<RecMailP>&list) 237void OpieMail::refreshMailView(const QValueList<RecMailP>&list)
224{ 238{
diff --git a/noncore/net/mail/opiemail.h b/noncore/net/mail/opiemail.h
index b93bd60..3d25b3d 100644
--- a/noncore/net/mail/opiemail.h
+++ b/noncore/net/mail/opiemail.h
@@ -31,12 +31,15 @@ protected slots:
31 virtual void slotShowFolders( bool show ); 31 virtual void slotShowFolders( bool show );
32 virtual void refreshMailView(const QValueList<RecMailP>&); 32 virtual void refreshMailView(const QValueList<RecMailP>&);
33 virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int ); 33 virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int );
34 virtual void slotMoveCopyMail(); 34 virtual void slotMoveCopyMail();
35 virtual void reEditMail(); 35 virtual void reEditMail();
36 36
37protected:
38 void setup_signalblocking();
39
37private: 40private:
38 Settings *settings; 41 Settings *settings;
39 42
40}; 43};
41 44
42#endif 45#endif