summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp143
-rw-r--r--kaddressbook/kabcore.h2
-rw-r--r--korganizer/koprefs.cpp4
-rw-r--r--korganizer/koprefs.h3
-rw-r--r--korganizer/mainwindow.cpp19
-rw-r--r--libkdepim/kpimglobalprefs.cpp7
-rw-r--r--libkdepim/kpimglobalprefs.h3
-rw-r--r--libkdepim/libkdepim.pro6
-rw-r--r--libkdepim/libkdepimE.pro6
-rw-r--r--libkdepim/phoneaccess.cpp153
-rw-r--r--libkdepim/phoneaccess.h42
11 files changed, 368 insertions, 20 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index f8359de..185cf46 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -25,24 +25,28 @@
25Enhanced Version of the file for platform independent KDE tools. 25Enhanced Version of the file for platform independent KDE tools.
26Copyright (c) 2004 Ulf Schenk 26Copyright (c) 2004 Ulf Schenk
27 27
28$Id$ 28$Id$
29*/ 29*/
30 30
31#include "kabcore.h" 31#include "kabcore.h"
32 32
33#include <stdaddressbook.h> 33#include <stdaddressbook.h>
34#include <klocale.h> 34#include <klocale.h>
35#include <kfiledialog.h> 35#include <kfiledialog.h>
36#include <qtimer.h> 36#include <qtimer.h>
37#include <qlabel.h>
38#include <qlineedit.h>
39#include <qcheckbox.h>
40#include <qpushbutton.h>
37#include <qprogressbar.h> 41#include <qprogressbar.h>
38 42
39#ifndef KAB_EMBEDDED 43#ifndef KAB_EMBEDDED
40#include <qclipboard.h> 44#include <qclipboard.h>
41#include <qdir.h> 45#include <qdir.h>
42#include <qfile.h> 46#include <qfile.h>
43#include <qapplicaton.h> 47#include <qapplicaton.h>
44#include <qprogressbar.h> 48#include <qprogressbar.h>
45#include <qlayout.h> 49#include <qlayout.h>
46#include <qregexp.h> 50#include <qregexp.h>
47#include <qvbox.h> 51#include <qvbox.h>
48#include <kabc/addresseelist.h> 52#include <kabc/addresseelist.h>
@@ -144,24 +148,68 @@ $Id$
144#include <kcmultidialog.h> 148#include <kcmultidialog.h>
145 149
146#ifdef _WIN32_ 150#ifdef _WIN32_
147 151
148#include "kaimportoldialog.h" 152#include "kaimportoldialog.h"
149#else 153#else
150#include <unistd.h> 154#include <unistd.h>
151#endif 155#endif
152// sync includes 156// sync includes
153#include <libkdepim/ksyncprofile.h> 157#include <libkdepim/ksyncprofile.h>
154#include <libkdepim/ksyncprefsdialog.h> 158#include <libkdepim/ksyncprefsdialog.h>
155 159
160class KAex2phonePrefs : public QDialog
161{
162 public:
163 KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
164 QDialog( parent, name, true )
165 {
166 setCaption( i18n("Export to phone options") );
167 QVBoxLayout* lay = new QVBoxLayout( this );
168 lay->setSpacing( 3 );
169 lay->setMargin( 3 );
170 QLabel *lab;
171 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
172 lab->setAlignment (AlignHCenter );
173 QHBox* temphb;
174 temphb = new QHBox( this );
175 new QLabel( i18n("I/O device: "), temphb );
176 mPhoneDevice = new QLineEdit( temphb);
177 lay->addWidget( temphb );
178 temphb = new QHBox( this );
179 new QLabel( i18n("Connection: "), temphb );
180 mPhoneConnection = new QLineEdit( temphb);
181 lay->addWidget( temphb );
182 temphb = new QHBox( this );
183 new QLabel( i18n("Model(opt.): "), temphb );
184 mPhoneModel = new QLineEdit( temphb);
185 lay->addWidget( temphb );
186 mWriteToSim= new QCheckBox( i18n("Write Contacts to SIM card\n(if not, write to phone memory)"), this );
187 lay->addWidget( mWriteToSim );
188 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ncontact data on phone!"), this ) );
189 lab->setAlignment (AlignHCenter );
190 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
191 lay->addWidget( ok );
192 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
193 lay->addWidget( cancel );
194 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
195 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
196 resize( 220, 240 );
197
198 }
199
200public:
201 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
202 QCheckBox* mWriteToSim;
203};
156 204
157bool pasteWithNewUid = true; 205bool pasteWithNewUid = true;
158 206
159#ifdef KAB_EMBEDDED 207#ifdef KAB_EMBEDDED
160KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) 208KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name )
161 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 209 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
162 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ 210 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/
163 mReadWrite( readWrite ), mModified( false ), mMainWindow(client) 211 mReadWrite( readWrite ), mModified( false ), mMainWindow(client)
164#else //KAB_EMBEDDED 212#else //KAB_EMBEDDED
165KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) 213KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name )
166 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 214 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
167 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), 215 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ),
@@ -501,24 +549,25 @@ void KABCore::setContactSelected( const QString &uid )
501 549
502 mActionCopy->setEnabled( selected ); 550 mActionCopy->setEnabled( selected );
503 mActionDelete->setEnabled( selected ); 551 mActionDelete->setEnabled( selected );
504 mActionEditAddressee->setEnabled( selected ); 552 mActionEditAddressee->setEnabled( selected );
505 mActionMail->setEnabled( selected ); 553 mActionMail->setEnabled( selected );
506 mActionMailVCard->setEnabled( selected ); 554 mActionMailVCard->setEnabled( selected );
507 //if (mActionBeam) 555 //if (mActionBeam)
508 //mActionBeam->setEnabled( selected ); 556 //mActionBeam->setEnabled( selected );
509 557
510 if (mActionBeamVCard) 558 if (mActionBeamVCard)
511 mActionBeamVCard->setEnabled( selected ); 559 mActionBeamVCard->setEnabled( selected );
512 560
561 mActionExport2phone->setEnabled( selected );
513 mActionWhoAmI->setEnabled( selected ); 562 mActionWhoAmI->setEnabled( selected );
514 mActionCategories->setEnabled( selected ); 563 mActionCategories->setEnabled( selected );
515} 564}
516 565
517void KABCore::sendMail() 566void KABCore::sendMail()
518{ 567{
519 sendMail( mViewManager->selectedEmails().join( ", " ) ); 568 sendMail( mViewManager->selectedEmails().join( ", " ) );
520} 569}
521 570
522void KABCore::sendMail( const QString& emaillist ) 571void KABCore::sendMail( const QString& emaillist )
523{ 572{
524 // the parameter has the form "name1 <abc@aol.com>,name2 <abc@aol.com>;... " 573 // the parameter has the form "name1 <abc@aol.com>,name2 <abc@aol.com>;... "
@@ -600,24 +649,113 @@ void KABCore::beamMySelf()
600 { 649 {
601 QStringList uids; 650 QStringList uids;
602 uids << a.uid(); 651 uids << a.uid();
603 652
604 beamVCard(uids); 653 beamVCard(uids);
605 } else { 654 } else {
606 KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) ); 655 KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) );
607 656
608 657
609 } 658 }
610} 659}
611 660
661void KABCore::export2phone()
662{
663
664 KAex2phonePrefs ex2phone;
665 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
666 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
667 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
668
669 if ( !ex2phone.exec() ) {
670 return;
671 }
672 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
673 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
674 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
675
676#if 0
677 PhoneFormat::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
678 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
679 KPimGlobalPrefs::instance()->mEx2PhoneModel );
680
681
682
683
684
685 QString fileName = "/tmp/kapibeamfile.vcf";
686
687
688 //QDir().mkdir( dirName, true );
689
690
691 KABC::VCardConverter converter;
692 QString description;
693 QString datastream;
694 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) {
695 KABC::Addressee a = mAddressBook->findByUid( *it );
696
697 if ( a.isEmpty() )
698 continue;
699
700 if (description.isEmpty())
701 description = a.formattedName();
702
703 QString vcard;
704 converter.addresseeToVCard( a, vcard );
705 int start = 0;
706 int next;
707 while ( (next = vcard.find("TYPE=", start) )>= 0 ) {
708 int semi = vcard.find(";", next);
709 int dopp = vcard.find(":", next);
710 int sep;
711 if ( semi < dopp && semi >= 0 )
712 sep = semi ;
713 else
714 sep = dopp;
715 datastream +=vcard.mid( start, next - start);
716 datastream +=vcard.mid( next+5,sep -next -5 ).upper();
717 start = sep;
718 }
719 datastream += vcard.mid( start,vcard.length() );
720 }
721#ifndef DESKTOP_VERSION
722 QFile outFile(fileName);
723 if ( outFile.open(IO_WriteOnly) ) {
724 datastream.replace ( QRegExp("VERSION:3.0") , "VERSION:2.1" );
725 QTextStream t( &outFile ); // use a text stream
726 t.setEncoding( QTextStream::UnicodeUTF8 );
727 t <<datastream;
728 outFile.close();
729 Ir *ir = new Ir( this );
730 connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) );
731 ir->send( fileName, description, "text/x-vCard" );
732 } else {
733 qDebug("Error open temp beam file ");
734 return;
735 }
736#endif
737
738
739
740
741 setCaption( i18n("Writing to phone..."));
742 if ( PhoneFormat::writeToPhone( cal ) )
743 setCaption( i18n("Export to phone successful!"));
744 else
745 setCaption( i18n("Error exporting to phone!"));
746#endif
747
748
749}
612void KABCore::beamVCard() 750void KABCore::beamVCard()
613{ 751{
614 QStringList uids = mViewManager->selectedUids(); 752 QStringList uids = mViewManager->selectedUids();
615 if ( !uids.isEmpty() ) 753 if ( !uids.isEmpty() )
616 beamVCard( uids ); 754 beamVCard( uids );
617} 755}
618 756
619 757
620void KABCore::beamVCard(const QStringList& uids) 758void KABCore::beamVCard(const QStringList& uids)
621{ 759{
622/*US 760/*US
623 QString beamFilename; 761 QString beamFilename;
@@ -1595,24 +1733,28 @@ void KABCore::initActions()
1595 1733
1596 1734
1597 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this, 1735 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this,
1598 SLOT( save() ), actionCollection(), "file_sync" ); 1736 SLOT( save() ), actionCollection(), "file_sync" );
1599 1737
1600 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this, 1738 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this,
1601 SLOT( newContact() ), actionCollection(), "file_new_contact" ); 1739 SLOT( newContact() ), actionCollection(), "file_new_contact" );
1602 1740
1603 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0, 1741 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0,
1604 this, SLOT( mailVCard() ), 1742 this, SLOT( mailVCard() ),
1605 actionCollection(), "file_mail_vcard"); 1743 actionCollection(), "file_mail_vcard");
1606 1744
1745 mActionExport2phone = new KAction( i18n( "Selected to phone" ), "ex2phone", 0, this,
1746 SLOT( export2phone() ), actionCollection(),
1747 "kaddressbook_ex2phone" );
1748
1607 mActionBeamVCard = 0; 1749 mActionBeamVCard = 0;
1608 mActionBeam = 0; 1750 mActionBeam = 0;
1609 1751
1610#ifndef DESKTOP_VERSION 1752#ifndef DESKTOP_VERSION
1611 if ( Ir::supported() ) { 1753 if ( Ir::supported() ) {
1612 mActionBeamVCard = new KAction( i18n( "Beam selected v&Card(s)" ), "beam", 0, this, 1754 mActionBeamVCard = new KAction( i18n( "Beam selected v&Card(s)" ), "beam", 0, this,
1613 SLOT( beamVCard() ), actionCollection(), 1755 SLOT( beamVCard() ), actionCollection(),
1614 "kaddressbook_beam_vcard" ); 1756 "kaddressbook_beam_vcard" );
1615 1757
1616 mActionBeam = new KAction( i18n( "&Beam personal vCard" ), "beam", 0, this, 1758 mActionBeam = new KAction( i18n( "&Beam personal vCard" ), "beam", 0, this,
1617 SLOT( beamMySelf() ), actionCollection(), 1759 SLOT( beamMySelf() ), actionCollection(),
1618 "kaddressbook_beam_myself" ); 1760 "kaddressbook_beam_myself" );
@@ -1895,24 +2037,25 @@ void KABCore::addActionsManually()
1895 mIncSearchWidget = new IncSearchWidget( tb ); 2037 mIncSearchWidget = new IncSearchWidget( tb );
1896 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 2038 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1897 SLOT( incrementalSearch( const QString& ) ) ); 2039 SLOT( incrementalSearch( const QString& ) ) );
1898 2040
1899 mJumpButtonBar = new JumpButtonBar( this, this ); 2041 mJumpButtonBar = new JumpButtonBar( this, this );
1900 2042
1901//US topLayout->addWidget( mJumpButtonBar ); 2043//US topLayout->addWidget( mJumpButtonBar );
1902 this->layout()->add( mJumpButtonBar ); 2044 this->layout()->add( mJumpButtonBar );
1903*/ 2045*/
1904 2046
1905#endif //KAB_EMBEDDED 2047#endif //KAB_EMBEDDED
1906 2048
2049 mActionExport2phone->plug( ExportMenu );
1907 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) ); 2050 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) );
1908 syncManager->fillSyncMenu(); 2051 syncManager->fillSyncMenu();
1909 2052
1910} 2053}
1911void KABCore::showLicence() 2054void KABCore::showLicence()
1912{ 2055{
1913 KApplication::showLicence(); 2056 KApplication::showLicence();
1914} 2057}
1915void KABCore::removeVoice() 2058void KABCore::removeVoice()
1916{ 2059{
1917 if ( KMessageBox::questionYesNo( this, i18n("After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as \"other\".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?") ) == KMessageBox::No ) 2060 if ( KMessageBox::questionYesNo( this, i18n("After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as \"other\".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?") ) == KMessageBox::No )
1918 return; 2061 return;
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index 941458d..e6f286b 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -165,24 +165,25 @@ class KABCore : public QWidget, public KSyncInterface
165 void sendMail( const QString& email ); 165 void sendMail( const QString& email );
166 166
167 167
168 void mailVCard(); 168 void mailVCard();
169 void mailVCard(const QStringList& uids); 169 void mailVCard(const QStringList& uids);
170 170
171 /** 171 /**
172 Beams the "WhoAmI contact. 172 Beams the "WhoAmI contact.
173 */ 173 */
174 void beamMySelf(); 174 void beamMySelf();
175 175
176 void beamVCard(); 176 void beamVCard();
177 void export2phone();
177 void beamVCard(const QStringList& uids); 178 void beamVCard(const QStringList& uids);
178 void beamDone( Ir *ir ); 179 void beamDone( Ir *ir );
179 180
180 181
181 /** 182 /**
182 Starts the preferred web browser with the given URL as argument. 183 Starts the preferred web browser with the given URL as argument.
183 */ 184 */
184 void browse( const QString& url ); 185 void browse( const QString& url );
185 186
186 /** 187 /**
187 Select all contacts in the view. 188 Select all contacts in the view.
188 */ 189 */
@@ -388,24 +389,25 @@ class KABCore : public QWidget, public KSyncInterface
388#endif //KAB_EMBEDDED 389#endif //KAB_EMBEDDED
389 // QDict<AddresseeEditorDialog> mEditorDict; 390 // QDict<AddresseeEditorDialog> mEditorDict;
390 AddresseeEditorDialog *mEditorDialog; 391 AddresseeEditorDialog *mEditorDialog;
391 bool mReadWrite; 392 bool mReadWrite;
392 bool mModified; 393 bool mModified;
393 bool mIsPart; 394 bool mIsPart;
394 bool mMultipleViewsAtOnce; 395 bool mMultipleViewsAtOnce;
395 396
396 397
397 //US file menu 398 //US file menu
398 KAction *mActionMail; 399 KAction *mActionMail;
399 KAction *mActionBeam; 400 KAction *mActionBeam;
401 KAction *mActionExport2phone;
400 KAction* mActionPrint; 402 KAction* mActionPrint;
401 KAction* mActionNewContact; 403 KAction* mActionNewContact;
402 KAction *mActionSave; 404 KAction *mActionSave;
403 KAction *mActionEditAddressee; 405 KAction *mActionEditAddressee;
404 KAction *mActionMailVCard; 406 KAction *mActionMailVCard;
405 KAction *mActionBeamVCard; 407 KAction *mActionBeamVCard;
406 408
407 KAction *mActionQuit; 409 KAction *mActionQuit;
408 410
409 //US edit menu 411 //US edit menu
410 KAction *mActionCopy; 412 KAction *mActionCopy;
411 KAction *mActionCut; 413 KAction *mActionCut;
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 716a125..84e3d00 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -70,28 +70,24 @@ KOPrefs::KOPrefs() :
70 70
71 mTimeBarFont = QFont("helvetica",10);//,QFont::Bold); 71 mTimeBarFont = QFont("helvetica",10);//,QFont::Bold);
72 mDefaultViewFont = QFont("helvetica",10); 72 mDefaultViewFont = QFont("helvetica",10);
73 mDefaultMonthViewFont = QFont("helvetica",8); 73 mDefaultMonthViewFont = QFont("helvetica",8);
74 mMarcusBainsFont= QFont("helvetica",10); 74 mMarcusBainsFont= QFont("helvetica",10);
75 mDateNavigatorFont= QFont("helvetica",10, QFont::Bold); 75 mDateNavigatorFont= QFont("helvetica",10, QFont::Bold);
76 mEditBoxFont = QFont("helvetica",12); 76 mEditBoxFont = QFont("helvetica",12);
77 mJornalViewFont = QFont("helvetica",12); 77 mJornalViewFont = QFont("helvetica",12);
78 78
79 KPrefs::setCurrentGroup("General"); 79 KPrefs::setCurrentGroup("General");
80 80
81 81
82 addItemString("Ex2PhoneDevice",&mEx2PhoneDevice,"/dev/ircomm");
83 addItemString("Ex2PhoneConnection",&mEx2PhoneConnection,"irda");
84 addItemString("Ex2PhoneModel",&mEx2PhoneModel,"6310i");
85
86 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); 82 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false);
87 83
88 addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true); 84 addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true);
89 addItemBool("ShowIconNewEvent",&mShowIconNewEvent,true); 85 addItemBool("ShowIconNewEvent",&mShowIconNewEvent,true);
90 addItemBool("ShowIconSearch",&mShowIconSearch,true); 86 addItemBool("ShowIconSearch",&mShowIconSearch,true);
91 addItemBool("ShowIconList",&mShowIconList,true); 87 addItemBool("ShowIconList",&mShowIconList,true);
92 addItemBool("ShowIconDay1",&mShowIconDay1,true); 88 addItemBool("ShowIconDay1",&mShowIconDay1,true);
93 addItemBool("ShowIconDay5",&mShowIconDay5,true); 89 addItemBool("ShowIconDay5",&mShowIconDay5,true);
94 addItemBool("ShowIconDay7",&mShowIconDay7,true); 90 addItemBool("ShowIconDay7",&mShowIconDay7,true);
95 addItemBool("ShowIconMonth",&mShowIconMonth,true); 91 addItemBool("ShowIconMonth",&mShowIconMonth,true);
96 addItemBool("ShowIconTodoview",&mShowIconTodoview,true); 92 addItemBool("ShowIconTodoview",&mShowIconTodoview,true);
97 addItemBool("ShowIconBackFast",&mShowIconBackFast,true); 93 addItemBool("ShowIconBackFast",&mShowIconBackFast,true);
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index a1ba8b3..d9ac851 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -201,27 +201,24 @@ class KOPrefs : public KPimPrefs
201 bool mShowSyncEvents; 201 bool mShowSyncEvents;
202 bool mShowTodoInAgenda; 202 bool mShowTodoInAgenda;
203 bool mWriteBackExistingOnly; 203 bool mWriteBackExistingOnly;
204 204
205 QString mRemoteIP; 205 QString mRemoteIP;
206 QString mRemoteUser; 206 QString mRemoteUser;
207 QString mRemotePassWd; 207 QString mRemotePassWd;
208 QString mRemoteFile; 208 QString mRemoteFile;
209 QString mLocalTempFile; 209 QString mLocalTempFile;
210 QString mPhoneDevice; 210 QString mPhoneDevice;
211 QString mPhoneConnection; 211 QString mPhoneConnection;
212 QString mPhoneModel; 212 QString mPhoneModel;
213 QString mEx2PhoneDevice;
214 QString mEx2PhoneConnection;
215 QString mEx2PhoneModel;
216 213
217 int mLastSyncTime; 214 int mLastSyncTime;
218 int mSyncAlgoPrefs; 215 int mSyncAlgoPrefs;
219 int mRingSyncAlgoPrefs; 216 int mRingSyncAlgoPrefs;
220 QStringList mSyncProfileNames; 217 QStringList mSyncProfileNames;
221 QStringList mExternSyncProfiles; 218 QStringList mExternSyncProfiles;
222 QString mLocalMachineName; 219 QString mLocalMachineName;
223 void setCategoryColor(QString cat,const QColor & color); 220 void setCategoryColor(QString cat,const QColor & color);
224 QColor *categoryColor(QString cat); 221 QColor *categoryColor(QString cat);
225 222
226 QString mArchiveFile; 223 QString mArchiveFile;
227 QString mHtmlExportFile; 224 QString mHtmlExportFile;
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index bd14fbf..2f286e0 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1166,38 +1166,39 @@ void MainWindow::slotSyncMenu( int action )
1166 1166
1167 } 1167 }
1168 } 1168 }
1169 delete temp; 1169 delete temp;
1170 mBlockSaveFlag = false; 1170 mBlockSaveFlag = false;
1171} 1171}
1172void MainWindow::exportToPhone( int mode ) 1172void MainWindow::exportToPhone( int mode )
1173{ 1173{
1174 1174
1175 //ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 1175 //ex2phone->insertItem(i18n("Complete calendar..."), 1 );
1176 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 1176 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
1177 KOex2phonePrefs ex2phone; 1177 KOex2phonePrefs ex2phone;
1178 ex2phone.mPhoneConnection->setText( KOPrefs::instance()->mEx2PhoneConnection ); 1178
1179 ex2phone.mPhoneDevice->setText( KOPrefs::instance()->mEx2PhoneDevice ); 1179 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
1180 ex2phone.mPhoneModel->setText( KOPrefs::instance()->mEx2PhoneModel ); 1180 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
1181 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
1181 if ( mode == 1 ) 1182 if ( mode == 1 )
1182 ex2phone.setCaption(i18n("Export complete calendar")); 1183 ex2phone.setCaption(i18n("Export complete calendar"));
1183 if ( mode == 2 ) 1184 if ( mode == 2 )
1184 ex2phone.setCaption(i18n("Export filtered calendar")); 1185 ex2phone.setCaption(i18n("Export filtered calendar"));
1185 1186
1186 if ( !ex2phone.exec() ) { 1187 if ( !ex2phone.exec() ) {
1187 return; 1188 return;
1188 } 1189 }
1189 KOPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); 1190 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
1190 KOPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); 1191 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
1191 KOPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); 1192 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
1192 1193
1193 int inFuture = 0; 1194 int inFuture = 0;
1194 if ( ex2phone.mWriteBackFuture->isChecked() ) 1195 if ( ex2phone.mWriteBackFuture->isChecked() )
1195 inFuture = ex2phone.mWriteBackFutureWeeks->value(); 1196 inFuture = ex2phone.mWriteBackFutureWeeks->value();
1196 QPtrList<Incidence> delSel; 1197 QPtrList<Incidence> delSel;
1197 if ( mode == 1 ) 1198 if ( mode == 1 )
1198 delSel = mCalendar->rawIncidences(); 1199 delSel = mCalendar->rawIncidences();
1199 if ( mode == 2 ) 1200 if ( mode == 2 )
1200 delSel = mCalendar->incidences(); 1201 delSel = mCalendar->incidences();
1201 CalendarLocal* cal = new CalendarLocal(); 1202 CalendarLocal* cal = new CalendarLocal();
1202 cal->setLocalTime(); 1203 cal->setLocalTime();
1203 Incidence *incidence = delSel.first(); 1204 Incidence *incidence = delSel.first();
@@ -1223,27 +1224,27 @@ void MainWindow::exportToPhone( int mode )
1223 } 1224 }
1224 if ( dt < cur || dt > end ) { 1225 if ( dt < cur || dt > end ) {
1225 add = false; 1226 add = false;
1226 } 1227 }
1227 } 1228 }
1228 if ( add ) { 1229 if ( add ) {
1229 Incidence *in = incidence->clone(); 1230 Incidence *in = incidence->clone();
1230 cal->addIncidence( in ); 1231 cal->addIncidence( in );
1231 } 1232 }
1232 } 1233 }
1233 incidence = delSel.next(); 1234 incidence = delSel.next();
1234 } 1235 }
1235 PhoneFormat::writeConfig( KOPrefs::instance()->mEx2PhoneDevice, 1236 PhoneFormat::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
1236 KOPrefs::instance()->mEx2PhoneConnection, 1237 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
1237 KOPrefs::instance()->mEx2PhoneModel ); 1238 KPimGlobalPrefs::instance()->mEx2PhoneModel );
1238 1239
1239 setCaption( i18n("Writing to phone...")); 1240 setCaption( i18n("Writing to phone..."));
1240 if ( PhoneFormat::writeToPhone( cal ) ) 1241 if ( PhoneFormat::writeToPhone( cal ) )
1241 setCaption( i18n("Export to phone successful!")); 1242 setCaption( i18n("Export to phone successful!"));
1242 else 1243 else
1243 setCaption( i18n("Error exporting to phone!")); 1244 setCaption( i18n("Error exporting to phone!"));
1244 delete cal; 1245 delete cal;
1245} 1246}
1246 1247
1247 1248
1248void MainWindow::setDefaultPreferences() 1249void MainWindow::setDefaultPreferences()
1249{ 1250{
diff --git a/libkdepim/kpimglobalprefs.cpp b/libkdepim/kpimglobalprefs.cpp
index b2b7663..b71e18d 100644
--- a/libkdepim/kpimglobalprefs.cpp
+++ b/libkdepim/kpimglobalprefs.cpp
@@ -90,24 +90,31 @@ KPimGlobalPrefs::KPimGlobalPrefs( const QString &name )
90 addItemString( "SMSChannelParameters", &mSMSOtherMessageParameters, "" ); 90 addItemString( "SMSChannelParameters", &mSMSOtherMessageParameters, "" );
91 91
92 addItemInt( "PagerChannelType", &mPagerClient, NONE_PAC ); 92 addItemInt( "PagerChannelType", &mPagerClient, NONE_PAC );
93 addItemString( "PagerChannel", &mPagerOtherChannel, "" ); 93 addItemString( "PagerChannel", &mPagerOtherChannel, "" );
94 addItemString( "PagerChannelMessage", &mPagerOtherMessage, "" ); 94 addItemString( "PagerChannelMessage", &mPagerOtherMessage, "" );
95 addItemString( "PagerChannelParameters", &mPagerOtherMessageParameters, "" ); 95 addItemString( "PagerChannelParameters", &mPagerOtherMessageParameters, "" );
96 96
97 addItemInt( "SIPChannelType", &mSipClient, NONE_SIC ); 97 addItemInt( "SIPChannelType", &mSipClient, NONE_SIC );
98 addItemString( "SIPChannel", &mSipOtherChannel, "" ); 98 addItemString( "SIPChannel", &mSipOtherChannel, "" );
99 addItemString( "SIPChannelMessage", &mSipOtherMessage, "" ); 99 addItemString( "SIPChannelMessage", &mSipOtherMessage, "" );
100 addItemString( "SIPChannelParameters", &mSipOtherMessageParameters, "" ); 100 addItemString( "SIPChannelParameters", &mSipOtherMessageParameters, "" );
101 101
102
103 KPrefs::setCurrentGroup( "PhoneAccess" );
104 addItemString("Ex2PhoneDevice",&mEx2PhoneDevice,"/dev/ircomm");
105 addItemString("Ex2PhoneConnection",&mEx2PhoneConnection,"irda");
106 addItemString("Ex2PhoneModel",&mEx2PhoneModel,"6310i");
107
108
102} 109}
103 110
104void KPimGlobalPrefs::setGlobalConfig() 111void KPimGlobalPrefs::setGlobalConfig()
105{ 112{
106 113
107 KGlobal::locale()->setHore24Format( !mPreferredTime ); 114 KGlobal::locale()->setHore24Format( !mPreferredTime );
108 KGlobal::locale()->setWeekStartMonday( !mWeekStartsOnSunday ); 115 KGlobal::locale()->setWeekStartMonday( !mWeekStartsOnSunday );
109 KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)mPreferredDate ); 116 KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)mPreferredDate );
110 KGlobal::locale()->setLanguage( mPreferredLanguage ); 117 KGlobal::locale()->setLanguage( mPreferredLanguage );
111 QString dummy = mUserDateFormatLong; 118 QString dummy = mUserDateFormatLong;
112 KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") )); 119 KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") ));
113 dummy = mUserDateFormatShort; 120 dummy = mUserDateFormatShort;
diff --git a/libkdepim/kpimglobalprefs.h b/libkdepim/kpimglobalprefs.h
index 84ba689..f6b6628 100644
--- a/libkdepim/kpimglobalprefs.h
+++ b/libkdepim/kpimglobalprefs.h
@@ -120,16 +120,19 @@ class KPimGlobalPrefs : public KPrefs
120 QString mSMSOtherMessageParameters; 120 QString mSMSOtherMessageParameters;
121 121
122 int mPagerClient; 122 int mPagerClient;
123 QString mPagerOtherChannel; 123 QString mPagerOtherChannel;
124 QString mPagerOtherMessage; 124 QString mPagerOtherMessage;
125 QString mPagerOtherMessageParameters; 125 QString mPagerOtherMessageParameters;
126 126
127 int mSipClient; 127 int mSipClient;
128 QString mSipOtherChannel; 128 QString mSipOtherChannel;
129 QString mSipOtherMessage; 129 QString mSipOtherMessage;
130 QString mSipOtherMessageParameters; 130 QString mSipOtherMessageParameters;
131 131
132 QString mEx2PhoneDevice;
133 QString mEx2PhoneConnection;
134 QString mEx2PhoneModel;
132 135
133}; 136};
134 137
135#endif 138#endif
diff --git a/libkdepim/libkdepim.pro b/libkdepim/libkdepim.pro
index eac19ea..84af7ad 100644
--- a/libkdepim/libkdepim.pro
+++ b/libkdepim/libkdepim.pro
@@ -26,34 +26,36 @@ HEADERS = \
26 externalapphandler.h \ 26 externalapphandler.h \
27 kdateedit.h \ 27 kdateedit.h \
28 kdatepicker.h \ 28 kdatepicker.h \
29 kinputdialog.h \ 29 kinputdialog.h \
30 kpimprefs.h \ 30 kpimprefs.h \
31 kpimglobalprefs.h \ 31 kpimglobalprefs.h \
32 kprefsdialog.h \ 32 kprefsdialog.h \
33 kprefswidget.h \ 33 kprefswidget.h \
34 ksyncmanager.h \ 34 ksyncmanager.h \
35 ksyncprofile.h \ 35 ksyncprofile.h \
36 ksyncprefsdialog.h \ 36 ksyncprefsdialog.h \
37 kcmconfigs/kcmkdepimconfig.h \ 37 kcmconfigs/kcmkdepimconfig.h \
38 kcmconfigs/kdepimconfigwidget.h 38 kcmconfigs/kdepimconfigwidget.h \
39 phoneaccess.h
39 40
40SOURCES = \ 41SOURCES = \
41 categoryeditdialog.cpp \ 42 categoryeditdialog.cpp \
42 categoryeditdialog_base.cpp \ 43 categoryeditdialog_base.cpp \
43 categoryselectdialog.cpp \ 44 categoryselectdialog.cpp \
44 categoryselectdialog_base.cpp \ 45 categoryselectdialog_base.cpp \
45 externalapphandler.cpp \ 46 externalapphandler.cpp \
46 kdateedit.cpp \ 47 kdateedit.cpp \
47 kdatepicker.cpp \ 48 kdatepicker.cpp \
48 kinputdialog.cpp \ 49 kinputdialog.cpp \
49 kpimprefs.cpp \ 50 kpimprefs.cpp \
50 kpimglobalprefs.cpp \ 51 kpimglobalprefs.cpp \
51 kprefsdialog.cpp \ 52 kprefsdialog.cpp \
52 kprefswidget.cpp \ 53 kprefswidget.cpp \
53 ksyncmanager.cpp \ 54 ksyncmanager.cpp \
54 ksyncprofile.cpp \ 55 ksyncprofile.cpp \
55 ksyncprefsdialog.cpp \ 56 ksyncprefsdialog.cpp \
56 kcmconfigs/kcmkdepimconfig.cpp \ 57 kcmconfigs/kcmkdepimconfig.cpp \
57 kcmconfigs/kdepimconfigwidget.cpp 58 kcmconfigs/kdepimconfigwidget.cpp \
59 phoneaccess.cpp
58 60
59 61
diff --git a/libkdepim/libkdepimE.pro b/libkdepim/libkdepimE.pro
index 156e247..f3db68e 100644
--- a/libkdepim/libkdepimE.pro
+++ b/libkdepim/libkdepimE.pro
@@ -20,36 +20,38 @@ HEADERS = \
20 externalapphandler.h \ 20 externalapphandler.h \
21 kdateedit.h \ 21 kdateedit.h \
22 kdatepicker.h \ 22 kdatepicker.h \
23 kinputdialog.h \ 23 kinputdialog.h \
24 kpimprefs.h \ 24 kpimprefs.h \
25 kpimglobalprefs.h \ 25 kpimglobalprefs.h \
26 kprefsdialog.h \ 26 kprefsdialog.h \
27 kprefswidget.h \ 27 kprefswidget.h \
28 ksyncmanager.h \ 28 ksyncmanager.h \
29 ksyncprofile.h \ 29 ksyncprofile.h \
30 ksyncprefsdialog.h \ 30 ksyncprefsdialog.h \
31 kcmconfigs/kcmkdepimconfig.h \ 31 kcmconfigs/kcmkdepimconfig.h \
32 kcmconfigs/kdepimconfigwidget.h 32 kcmconfigs/kdepimconfigwidget.h \
33 phoneaccess.h
33 34
34 35
35 36
36SOURCES = \ 37SOURCES = \
37 categoryeditdialog.cpp \ 38 categoryeditdialog.cpp \
38 categoryeditdialog_base.cpp \ 39 categoryeditdialog_base.cpp \
39 categoryselectdialog.cpp \ 40 categoryselectdialog.cpp \
40 categoryselectdialog_base.cpp \ 41 categoryselectdialog_base.cpp \
41 externalapphandler.cpp \ 42 externalapphandler.cpp \
42 kdateedit.cpp \ 43 kdateedit.cpp \
43 kinputdialog.cpp \ 44 kinputdialog.cpp \
44 kdatepicker.cpp \ 45 kdatepicker.cpp \
45 kpimprefs.cpp \ 46 kpimprefs.cpp \
46 kpimglobalprefs.cpp \ 47 kpimglobalprefs.cpp \
47 kprefsdialog.cpp \ 48 kprefsdialog.cpp \
48 kprefswidget.cpp \ 49 kprefswidget.cpp \
49 ksyncmanager.cpp \ 50 ksyncmanager.cpp \
50 ksyncprofile.cpp \ 51 ksyncprofile.cpp \
51 ksyncprefsdialog.cpp \ 52 ksyncprefsdialog.cpp \
52 kcmconfigs/kcmkdepimconfig.cpp \ 53 kcmconfigs/kcmkdepimconfig.cpp \
53 kcmconfigs/kdepimconfigwidget.cpp 54 kcmconfigs/kdepimconfigwidget.cpp \
55 phoneaccess.cpp
54 56
55 57
diff --git a/libkdepim/phoneaccess.cpp b/libkdepim/phoneaccess.cpp
new file mode 100644
index 0000000..c0bd6cc
--- a/dev/null
+++ b/libkdepim/phoneaccess.cpp
@@ -0,0 +1,153 @@
1/*
2 This file is part of libkdepim.
3
4 Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org>
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version.
10
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details.
15
16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.
20*/
21
22
23#include <qstring.h>
24#include <qapplication.h>
25#include <qptrlist.h>
26#include <qregexp.h>
27#include <qfile.h>
28#include <qtextstream.h>
29#include <qtextcodec.h>
30#include <qdir.h>
31#include <kmessagebox.h>
32#include <stdlib.h>
33#include "phoneaccess.h"
34
35void PhoneAccess::writeConfig( QString device, QString connection, QString model )
36{
37#ifdef _WIN32_
38 QString fileName = qApp->applicationDirPath () +"\\gammurc";
39#else
40 QString fileName = QDir::homeDirPath() +"/.gammurc";
41#endif
42 //qDebug("save %d ", load );
43 QString content;
44 bool write = false;
45 bool addPort = true, addConnection = true, addModel = true;
46 QFile file( fileName );
47 if ( QFile::exists( fileName) ) {
48 if (!file.open( IO_ReadOnly ) ) {
49 qDebug("Error: cannot open %s ", fileName.latin1() );
50 return;
51 }
52 QString line;
53 while ( file.readLine( line, 1024 ) > 0 ) {
54 //qDebug("*%s* ", line.latin1() );
55 if ( line.left(7 ) == "[gammu]" ) {
56 ;
57 } else
58 if ( line.left(4 ) == "port" ) {
59 if ( line == "port = " + device+"\n" ) {
60 content += line ;
61 addPort = false;
62 //qDebug("port found" );
63 }
64
65 } else if ( line.left(5 ) == "model" ) {
66 if ( line == "model = " + model +"\n") {
67 content += line ;
68 addModel = false;
69 //qDebug("model found" );
70 }
71
72 } else if ( line.left( 10 ) == "connection" ) {
73 if ( line == "connection = " + connection +"\n") {
74 addConnection = false;
75 content += line ;
76 //qDebug("con found" );
77 }
78
79 } else {
80 content += line ;
81 }
82 }
83 file.close();
84 } else {
85 if ( ! connection.isEmpty() ) {
86 addConnection = true;
87 }
88 if ( ! device.isEmpty() ) {
89 addPort = true;
90
91 }
92 if ( ! model.isEmpty() ) {
93 addModel = true;
94 }
95 }
96
97 if ( addConnection ) {
98 if ( ! write )
99 content += "[gammu]\n";
100 write = true;
101 content += "connection = ";
102 content += connection;
103 content += "\n";
104 }
105 if ( addPort ) {
106 if ( ! write )
107 content += "[gammu]\n";
108 write = true;
109 content += "port = ";
110 content += device;
111 content += "\n";
112
113 }
114 if ( addModel ) {
115 if ( ! write )
116 content += "[gammu]\n";
117 write = true;
118 content += "model = ";
119 content += model;
120 content += "\n";
121 }
122 if ( write ) {
123 if (!file.open( IO_WriteOnly ) ) {
124 qDebug("Error: cannot write file %s ", fileName.latin1() );
125 return;
126 }
127 qDebug("Writing file %s ", fileName.latin1() );
128 QTextStream ts( &file );
129 ts << content ;
130 file.close();
131 }
132
133}
134
135
136bool PhoneAccess::writeToPhone( QString fileName)
137{
138
139#ifdef DESKTOP_VERSION
140 QString command ="./kammu --restore " + fileName ;
141#else
142 QString command ="kammu --restore " + fileName ;
143#endif
144 int ret;
145 while ( (ret = system ( command.latin1())) != 0 ) {
146 qDebug("Error S::command returned %d. asking users", ret);
147 int retval = KMessageBox::warningContinueCancel(0,
148 i18n("Error accessing device!\nPlease turn on connection\nand retry!"),i18n("KO/Pi phone access"),i18n("Retry"),i18n("Cancel"));
149 if ( retval != KMessageBox::Continue )
150 return false;
151 }
152 return true;
153}
diff --git a/libkdepim/phoneaccess.h b/libkdepim/phoneaccess.h
new file mode 100644
index 0000000..b7c4732
--- a/dev/null
+++ b/libkdepim/phoneaccess.h
@@ -0,0 +1,42 @@
1/*
2 This file is part of libkcal.
3
4 Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version.
10
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details.
15
16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.
20*/
21#ifndef PHONEACCESS_H
22#define PHONEACCESS_H
23
24#include <qstring.h>
25
26
27
28/**
29 This class implements the calendar format used by Phone.
30*/
31
32class PhoneAccess : public QObject {
33 public:
34
35 static void writeConfig( QString device,QString connection, QString model );
36 static bool writeToPhone( QString fileName );
37
38};
39
40
41
42#endif