00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "smsdialog.h"
00023
00024 #include <kabc/phonenumber.h>
00025 #include <klocale.h>
00026 #include <kmessagebox.h>
00027 #include <ktextedit.h>
00028
00029 #include <QtGui/QLabel>
00030 #include <QtGui/QPushButton>
00031 #include <QtGui/QVBoxLayout>
00032
00033 static const unsigned int s_messageSize = 160;
00034
00035 SmsDialog::SmsDialog( const KABC::PhoneNumber &number )
00036 : mNumber( number.number() )
00037 {
00038 initUI();
00039 }
00040
00041 SmsDialog::~SmsDialog()
00042 {
00043 }
00044
00045 QString SmsDialog::message() const
00046 {
00047 return mText;
00048 }
00049
00050 void SmsDialog::initUI()
00051 {
00052 setCaption( i18n( "SMS text" ) );
00053 setButtons( Ok | Cancel );
00054 setDefaultButton( Ok );
00055 showButtonSeparator( true );
00056
00057 QWidget *page = new QWidget( this );
00058 setMainWidget( page );
00059 page->setFixedWidth( 300 );
00060
00061 QVBoxLayout *topLayout = new QVBoxLayout( page );
00062 topLayout->setSpacing( spacingHint() );
00063 topLayout->setMargin( 0 );
00064
00065
00066 QLabel *label = new QLabel( i18n( "Please insert SMS text for an SMS to the following number: %1", mNumber ), page );
00067 topLayout->addWidget( label );
00068 label->setWordWrap( true );
00069
00070 mSmsTextEdit = new KTextEdit( page );
00071 mSmsTextEdit->setAcceptRichText( false );
00072 label->setBuddy( mSmsTextEdit );
00073 topLayout->addWidget( mSmsTextEdit );
00074
00075 connect( mSmsTextEdit, SIGNAL( textChanged() ), SLOT( updateCounter() ) );
00076
00077 mLengthLabel = new QLabel( QLatin1String("-") , page );
00078 topLayout->addWidget( mLengthLabel );
00079
00080 mSmsTextEdit->setFocus();
00081 updateCounter();
00082 }
00083
00084 void SmsDialog::updateCounter()
00085 {
00086 mText = mSmsTextEdit->toPlainText();
00087
00088 int size = mText.size();
00089 int numberSms = ( size - ( size % s_messageSize ) ) / s_messageSize + 1;
00090 int numberChars = s_messageSize * numberSms;
00091
00092 mLengthLabel->setText( i18n( "%1/%2 (%3 SMS)", size, numberChars, numberSms ) );
00093 }