summaryrefslogtreecommitdiffstats
path: root/kshowmail/showmaildialog.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-07-24 15:57:00 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-07-24 15:57:00 -0500
commitb888c7edb54e483ec0e3c2e2ce0eafd73acdcc65 (patch)
tree7ca76d42f66fb21ea08142de9a8d3bf16e597404 /kshowmail/showmaildialog.cpp
downloadkshowmail-b888c7edb54e483ec0e3c2e2ce0eafd73acdcc65.tar.gz
kshowmail-b888c7edb54e483ec0e3c2e2ce0eafd73acdcc65.zip
Initial import from kshowmail 3.3.1 sources
Diffstat (limited to 'kshowmail/showmaildialog.cpp')
-rw-r--r--kshowmail/showmaildialog.cpp101
1 files changed, 101 insertions, 0 deletions
diff --git a/kshowmail/showmaildialog.cpp b/kshowmail/showmaildialog.cpp
new file mode 100644
index 0000000..1d911db
--- /dev/null
+++ b/kshowmail/showmaildialog.cpp
@@ -0,0 +1,101 @@
+//
+// C++ Implementation: showmaildialog
+//
+// Description:
+//
+//
+// Author: Ulrich Weigelt <ulrich.weigelt@gmx.de, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "showmaildialog.h"
+
+ShowMailDialog::ShowMailDialog( QWidget * parent, QString & caption, bool allowHTML, QString & sender, QString & date, QString & size, QString & subject, QString & body ) :
+ KDialogBase( parent, "showmaildialog", true, caption, KDialogBase::Ok | KDialogBase::Cancel | KDialogBase::User1, KDialogBase::Ok, true, KGuiItem( i18n( "Reply" ), "mail_reply" ) )
+{
+ //create main widget
+ QWidget* mainWidget = new QWidget( this );
+ setMainWidget( mainWidget );
+
+ //this layout seperates meta data area (date, subject, and so on) from the mail body area
+ QVBoxLayout* layMain = new QVBoxLayout( mainWidget, 0, spacingHint() );
+
+ //this layouts arranges the labels and lines for the meta data
+ QHBoxLayout* layMetaDatas = new QHBoxLayout( layMain, spacingHint() );
+ QVBoxLayout* layLabels = new QVBoxLayout( layMetaDatas, spacingHint() );
+ QVBoxLayout* layLines = new QVBoxLayout( layMetaDatas, spacingHint() );
+
+ //create labels for meta data
+ QLabel* lblSender = new QLabel( i18n( "Sender:" ), mainWidget, "lblSender" );
+ layLabels->addWidget( lblSender );
+
+ QLabel* lblDate = new QLabel( i18n( "Date:" ), mainWidget, "lblDate" );
+ layLabels->addWidget( lblDate );
+
+ QLabel* lblSize = new QLabel( i18n( "Size:" ), mainWidget, "lblSize" );
+ layLabels->addWidget( lblSize );
+
+ QLabel* lblSubject = new QLabel( i18n( "Subject:" ), mainWidget, "lblSubject" );
+ layLabels->addWidget( lblSubject );
+
+ //create edit lines to show the meta data
+ KLineEdit* liSender = new KLineEdit( sender, mainWidget, "liSender" );
+ liSender->setReadOnly( true );
+ layLines->addWidget( liSender );
+
+ KLineEdit* liDate = new KLineEdit( date, mainWidget, "liDate" );
+ liDate->setReadOnly( true );
+ layLines->addWidget( liDate );
+
+ KLineEdit* liSize = new KLineEdit( size, mainWidget, "liSize" );
+ liSize->setReadOnly( true );
+ layLines->addWidget( liSize );
+
+ KLineEdit* liSubject = new KLineEdit( subject, mainWidget, "liSubject" );
+ liSubject->setReadOnly( true );
+ layLines->addWidget( liSubject );
+
+ //create text browser for the mail body
+ KTextBrowser* txtBody = new KTextBrowser( mainWidget );
+ txtBody->setReadOnly( true );
+
+ if( !allowHTML ) //set HTML view or not
+ txtBody->setTextFormat( KTextBrowser::PlainText );
+
+ txtBody->setText( body );
+ txtBody->setMinimumSize( WIDTH_VIEW_MAILBODY, HEIGHT_VIEW_MAILBODY );
+
+ layMain->addWidget( txtBody );
+
+ //store body, subject and sender for reply (slotUser1())
+ m_body = body;
+ m_subject = subject;
+ m_sender = sender;
+}
+
+ShowMailDialog::~ShowMailDialog()
+{
+}
+
+void ShowMailDialog::slotUser1( )
+{
+ //make copy of body to manipulate
+ QString body = m_body;
+
+ //add '>' at front of every line
+ body.insert( 0, "> " );
+ body.replace( "\n", "\n> " );
+
+ //set data of the answer mail
+ KURL mail;
+ mail.setProtocol( "mailto" );
+ mail.setPath( m_sender );
+ mail.setQuery( "?subject=" + KURL::encode_string( "Re: " + m_subject ) + "&body=" + KURL::encode_string( body ) );
+
+ //invoke mailer
+ kapp->invokeMailer( mail );
+}
+
+
+#include "showmaildialog.moc"