kmobiletools
newsmsdlg.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "newsmsdlg.h"
00021 #include <klocale.h>
00022 #include <qlayout.h>
00023 #include <ktextedit.h>
00024 #include <kstatusbar.h>
00025 #include <kpushbutton.h>
00026 #include <k3listview.h>
00027 #include <klineedit.h>
00028 #include <kguiitem.h>
00029 #include <kmessagebox.h>
00030 #include <kdebug.h>
00031 #include <libkmobiletools/kmobiletoolshelper.h>
00032 #include <pickphonenumberdialog.h>
00033 #include <libkmobiletools/encodingshelper.h>
00034 #include <libkmobiletools/engineslist.h>
00035 #include <libkmobiletools/sms.h>
00036 #include <libkmobiletools/engine.h>
00037
00038 newSMSDlg::newSMSDlg(QWidget *parent, const QString &name)
00039 : KDialog(parent)
00040 {
00041 setObjectName(name);
00042 setCaption(i18n("New SMS"));
00043 setButtons(Cancel | User1 | User2);
00044 kDebug() <<"newSMSDlg with name" << name;
00045 p_sms=0;
00046 ui.setupUi(mainWidget());
00047
00048 QVBoxLayout *layoutStatusBar=new QVBoxLayout(ui.statusBarFrame);
00049 layoutStatusBar->setMargin(0);
00050 statusBar=new KStatusBar(ui.statusBarFrame);
00051 layoutStatusBar->addWidget(statusBar);
00052 connect(ui.smsText, SIGNAL(textChanged()), this, SLOT(smsTextChanged()) );
00053 connect(ui.pickNumber, SIGNAL(clicked() ), this, SLOT(pickPhoneNumber() ));
00054 connect(ui.editNumber, SIGNAL(textChanged(const QString &) ), this, SLOT(textNumberChanged( const QString & ) ));
00055 connect(ui.lv_numbers, SIGNAL(clicked(Q3ListViewItem*)), this, SLOT(NumberClicked( Q3ListViewItem* )) );
00056 connect(ui.buttonAdd, SIGNAL(clicked() ), this, SLOT(addClicked() ) );
00057 connect(ui.buttonRemove, SIGNAL(clicked() ), this, SLOT(remClicked() ) );
00058 connect(this, SIGNAL(user1Clicked()), SLOT(slotUser1()));
00059 connect(this, SIGNAL(user2Clicked()), SLOT(slotUser2()));
00060 setButtonGuiItem(User1, KGuiItem(i18nc("Send SMS directly", "Send"), "mail_send", i18n("Send SMS directly") ));
00061 setButtonGuiItem(User2, KGuiItem(i18nc("Save SMS to mobile phone memory", "Save"), "filesave", i18n("Save SMS to mobile phone memory") ));
00062 resize(567,390);
00063 }
00064
00065
00066 newSMSDlg::~newSMSDlg()
00067 {
00068 }
00069
00070
00071 #include "newsmsdlg.moc"
00072
00073
00077 void newSMSDlg::smsTextChanged()
00078 {
00079 int smslength=ui.smsText->toPlainText().length();
00080 QString statusTexT=i18n("SMS Text Length: %1 characters. Total SMS Count: %2. Encoding: %3", smslength,
00081 KMobileTools::SMS::getMultiTextCount(smslength),
00082 KMobileTools::EncodingsHelper::encodingNameString( KMobileTools::EncodingsHelper::hasEncoding(ui.smsText->toPlainText(),
00083 KMobileTools::EnginesList::instance()->find(objectName(), false)->pdu()
00084 ) ) );
00085 statusBar->showMessage(statusTexT);
00086 }
00087
00088
00092 void newSMSDlg::pickPhoneNumber()
00093 {
00094 PickPhoneNumberDialog dialog(this);
00095 if(dialog.exec() != QDialog::Accepted ) return;
00096 if(!dialog.selectedNumbers().count() ) return;
00097 QStringList::iterator it;
00098 QStringList phonenumbers=dialog.selectedNumbers();
00099 for(it=phonenumbers.begin(); it!=phonenumbers.end(); ++it)
00100 addNumber(*it);
00101 }
00102
00103 void newSMSDlg::addNumber( const QString &number)
00104 {
00105 ui.lv_numbers->clear();
00106 ui.buttonAdd->setEnabled(false);
00107 sl_numbers+=number;
00108 QStringList::Iterator it;
00109 for(it=sl_numbers.begin(); it!= sl_numbers.end(); ++it)
00110 new K3ListViewItem(ui.lv_numbers, *it, KMobileTools::KMobiletoolsHelper::translateNumber( *it ) );
00111 }
00112
00113 const QString newSMSDlg::text()
00114 {
00115 return ui.smsText->text();
00116 }
00117
00118
00122 void newSMSDlg::textNumberChanged(const QString &text)
00123 {
00124 if(text.length() ) ui.buttonAdd->setEnabled(true);
00125 else ui.buttonAdd->setEnabled(false);
00126 }
00127
00128
00132 void newSMSDlg::NumberClicked(Q3ListViewItem *item)
00133 {
00134 if(item) ui.buttonRemove->setEnabled(true);
00135 else ui.buttonRemove->setEnabled(false);
00136 }
00137
00138
00142 void newSMSDlg::remClicked()
00143 {
00144 if(! ui.lv_numbers->currentItem() ) return;
00145 sl_numbers.removeAll( ui.lv_numbers->currentItem()->text(0) );
00146 delete ui.lv_numbers->currentItem();
00147 }
00148
00149
00153 void newSMSDlg::addClicked()
00154 {
00155 addNumber(ui.editNumber->text() );
00156 }
00157
00158
00162 void newSMSDlg::slotUser1()
00163 {
00164
00165 createSMSItem();
00166 i_action=Send;
00167 done(Accepted);
00168 }
00169
00170
00174 void newSMSDlg::slotUser2()
00175 {
00176
00177 createSMSItem();
00178 i_action=Store;
00179 done(QDialog::Accepted);
00180 }
00181
00182 void newSMSDlg::createSMSItem()
00183 {
00184
00185 p_sms=new KMobileTools::SMS(sl_numbers, ui.smsText->text() );
00186 p_sms->setType( KMobileTools::SMS::Unsent );
00187 }