summaryrefslogtreecommitdiff
path: root/noncore/net/mail/viewmail.cpp
authoralwin <alwin>2005-03-06 00:09:33 (UTC)
committer alwin <alwin>2005-03-06 00:09:33 (UTC)
commit7e44f77d3749db2f43a1313d835a06684ecc1cd6 (patch) (unidiff)
tree13499da9a407e9b384db0f3abdd381fe3bb9b6f4 /noncore/net/mail/viewmail.cpp
parent0baadaef5a3da4fda08df75394475f577af58828 (diff)
downloadopie-7e44f77d3749db2f43a1313d835a06684ecc1cd6.zip
opie-7e44f77d3749db2f43a1313d835a06684ecc1cd6.tar.gz
opie-7e44f77d3749db2f43a1313d835a06684ecc1cd6.tar.bz2
attached images may views inside the mailview and not as extra dialog
Diffstat (limited to 'noncore/net/mail/viewmail.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/viewmail.cpp46
1 files changed, 41 insertions, 5 deletions
diff --git a/noncore/net/mail/viewmail.cpp b/noncore/net/mail/viewmail.cpp
index d2f1584..a64a168 100644
--- a/noncore/net/mail/viewmail.cpp
+++ b/noncore/net/mail/viewmail.cpp
@@ -250,18 +250,31 @@ void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int
250 250
251 case 2: 251 case 2:
252 { 252 {
253 QString tmpfile = "/tmp/opiemail-image"; 253 QString tmpfile = QString("/tmp/opiemail-image-%1").arg(_icounter++);
254 encodedString*content = m_recMail->Wrapper()->fetchDecodedPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] ); 254 encodedString*content = m_recMail->Wrapper()->fetchDecodedPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] );
255 if (content) { 255 if (content && content->Length()) {
256 QFile output(tmpfile); 256 QFile output(tmpfile);
257 output.open(IO_WriteOnly); 257 output.open(IO_WriteOnly);
258 output.writeBlock(content->Content(),content->Length()); 258 output.writeBlock(content->Content(),content->Length());
259 output.close(); 259 output.close();
260 delete content; 260 delete content;
261 MailImageDlg iview(""); 261 if (!m_PicsInline) {
262 iview.setName(tmpfile); 262 MailImageDlg iview("");
263 QPEApplication::execDialog(&iview); 263 iview.setName(tmpfile);
264 QPEApplication::execDialog(&iview);
265 } else {
266 if (!m_lastdlg) {
267 m_lastdlg=new Opie::MM::OImageScrollView("",browser->parentWidget(),false);
268 m_lastdlg->setAutoScale(true);
269 }
270 //m_lastdlg->setImage("");
271 m_lastdlg->setImage(tmpfile);
272 browser->hide();
273 m_lastdlg->show();
274 }
264 output.remove(); 275 output.remove();
276 } else {
277 QMessageBox::critical(this, tr("Reading attachment"), tr("Could not read content of attachment"));
265 } 278 }
266 } 279 }
267 break; 280 break;
@@ -313,19 +326,38 @@ ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl)
313 connect( forward, SIGNAL(activated()), SLOT(slotForward())); 326 connect( forward, SIGNAL(activated()), SLOT(slotForward()));
314 connect( deleteMail, SIGNAL( activated() ), SLOT( slotDeleteMail() ) ); 327 connect( deleteMail, SIGNAL( activated() ), SLOT( slotDeleteMail() ) );
315 connect( showHtml, SIGNAL( toggled(bool) ), SLOT( slotShowHtml(bool) ) ); 328 connect( showHtml, SIGNAL( toggled(bool) ), SLOT( slotShowHtml(bool) ) );
329 connect( showPicsInline, SIGNAL( toggled(bool) ), SLOT( slotImageInline(bool) ) );
316 330
317 attachments->setEnabled(m_gotBody); 331 attachments->setEnabled(m_gotBody);
318 connect( attachments, SIGNAL( clicked(QListViewItem*,const QPoint&, int) ), SLOT( slotItemClicked(QListViewItem*,const QPoint&, int) ) ); 332 connect( attachments, SIGNAL( clicked(QListViewItem*,const QPoint&, int) ), SLOT( slotItemClicked(QListViewItem*,const QPoint&, int) ) );
333 m_lastdlg = 0;
334 _icounter = 0;
319 335
320 readConfig(); 336 readConfig();
321 attachments->setSorting(-1); 337 attachments->setSorting(-1);
322} 338}
323 339
340void ViewMail::slotImageInline(bool how)
341{
342 Config cfg( "mail" );
343 cfg.writeEntry( "showPicsInline", how);
344 m_PicsInline = how;
345 if (m_lastdlg&&!how) {
346 browser->show();
347 m_lastdlg->hide();
348 m_lastdlg->reparent(0,QPoint(0,0),false);
349 delete m_lastdlg;
350 m_lastdlg = 0;
351 }
352}
353
324void ViewMail::readConfig() 354void ViewMail::readConfig()
325{ 355{
326 Config cfg( "mail" ); 356 Config cfg( "mail" );
327 cfg.setGroup( "Settings" ); 357 cfg.setGroup( "Settings" );
328 m_showHtml = cfg.readBoolEntry( "showHtml", false ); 358 m_showHtml = cfg.readBoolEntry( "showHtml", false );
359 m_PicsInline = cfg.readBoolEntry( "showPicsInline", true );
360 showPicsInline->setOn(m_PicsInline);
329 showHtml->setOn( m_showHtml ); 361 showHtml->setOn( m_showHtml );
330} 362}
331 363
@@ -336,6 +368,10 @@ void ViewMail::setText()
336 QString bccString; 368 QString bccString;
337 QString mailHtml; 369 QString mailHtml;
338 370
371 if (m_lastdlg) {
372 m_lastdlg->hide();
373 }
374 browser->show();
339 for ( QStringList::Iterator it = ( m_mail2[0] ).begin(); it != ( m_mail2[0] ).end(); ++it ) 375 for ( QStringList::Iterator it = ( m_mail2[0] ).begin(); it != ( m_mail2[0] ).end(); ++it )
340 { 376 {
341 toString += (*it); 377 toString += (*it);