• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdepim
  • Sitemap
  • Contact Us
 

kmobiletools

newsmsdlg.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002    Copyright (C) 2007
00003    by Marco Gulino <marco@kmobiletools.org>
00004 
00005    This program is free software; you can redistribute it and/or modify
00006    it under the terms of the GNU General Public License as published by
00007    the Free Software Foundation; either version 2 of the License, or
00008    (at your option) any later version.
00009 
00010    This program is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013    GNU General Public License for more details.
00014 
00015    You should have received a copy of the GNU General Public License
00016    along with this program; if not, write to the
00017    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00018    Boston, MA 02110-1301, USA.
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 //     ui.smsText->setText(name);
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     // User clicked "Send"
00165     createSMSItem();
00166     i_action=Send;
00167     done(Accepted);
00168 }
00169 
00170 
00174 void newSMSDlg::slotUser2()
00175 {
00176     // User clicked "Store"
00177     createSMSItem();
00178     i_action=Store;
00179     done(QDialog::Accepted);
00180 }
00181 
00182 void newSMSDlg::createSMSItem()
00183 {
00184 //     kDebug() <<"newSMSDlg; numbers:" << sl_numbers;
00185     p_sms=new KMobileTools::SMS(sl_numbers, ui.smsText->text() );
00186     p_sms->setType( KMobileTools::SMS::Unsent );
00187 }

kmobiletools

Skip menu "kmobiletools"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdepim

Skip menu "kdepim"
  • akonadi
  •   clients
  •   kabc
  •   kcal
  •   kcm
  • akregator
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt
  • kdgantt1
  • kjots
  • kleopatra
  • kmail
  • kmobiletools
  • knode
  • knotes
  • kontact
  • kontactinterfaces
  • korganizer
  •   korgac
  • kpilot
  • ktimetracker
  •   doc
  • libkdepim
  • libkholidays
  • libkleo
  • libkpgp
  • maildir
Generated for kdepim by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal