-rw-r--r-- | kaddressbook/kabcore.cpp | 143 | ||||
-rw-r--r-- | kaddressbook/kabcore.h | 2 | ||||
-rw-r--r-- | korganizer/koprefs.cpp | 4 | ||||
-rw-r--r-- | korganizer/koprefs.h | 3 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 25 | ||||
-rw-r--r-- | libkdepim/kpimglobalprefs.cpp | 7 | ||||
-rw-r--r-- | libkdepim/kpimglobalprefs.h | 3 | ||||
-rw-r--r-- | libkdepim/libkdepim.pro | 6 | ||||
-rw-r--r-- | libkdepim/libkdepimE.pro | 6 | ||||
-rw-r--r-- | libkdepim/phoneaccess.cpp | 153 | ||||
-rw-r--r-- | libkdepim/phoneaccess.h | 42 |
11 files changed, 371 insertions, 23 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index f8359de..185cf46 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -21,32 +21,36 @@ | |||
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | /* | 24 | /* |
25 | Enhanced Version of the file for platform independent KDE tools. | 25 | Enhanced Version of the file for platform independent KDE tools. |
26 | Copyright (c) 2004 Ulf Schenk | 26 | Copyright (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> |
49 | #include <kabc/errorhandler.h> | 53 | #include <kabc/errorhandler.h> |
50 | #include <kabc/resource.h> | 54 | #include <kabc/resource.h> |
51 | #include <kabc/vcardconverter.h> | 55 | #include <kabc/vcardconverter.h> |
52 | #include <kapplication.h> | 56 | #include <kapplication.h> |
@@ -140,32 +144,76 @@ $Id$ | |||
140 | #include "incsearchwidget.h" | 144 | #include "incsearchwidget.h" |
141 | #include "jumpbuttonbar.h" | 145 | #include "jumpbuttonbar.h" |
142 | #include "extensionmanager.h" | 146 | #include "extensionmanager.h" |
143 | #include "addresseeconfig.h" | 147 | #include "addresseeconfig.h" |
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 | ||
160 | class 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 | |||
200 | public: | ||
201 | QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; | ||
202 | QCheckBox* mWriteToSim; | ||
203 | }; | ||
156 | 204 | ||
157 | bool pasteWithNewUid = true; | 205 | bool pasteWithNewUid = true; |
158 | 206 | ||
159 | #ifdef KAB_EMBEDDED | 207 | #ifdef KAB_EMBEDDED |
160 | KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) | 208 | KABCore::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 |
165 | KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) | 213 | KABCore::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 ), |
168 | mReadWrite( readWrite ), mModified( false ) | 216 | mReadWrite( readWrite ), mModified( false ) |
169 | #endif //KAB_EMBEDDED | 217 | #endif //KAB_EMBEDDED |
170 | { | 218 | { |
171 | // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); | 219 | // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); |
@@ -497,32 +545,33 @@ void KABCore::setContactSelected( const QString &uid ) | |||
497 | if ( mReadWrite ) { | 545 | if ( mReadWrite ) { |
498 | mActionCut->setEnabled( selected ); | 546 | mActionCut->setEnabled( selected ); |
499 | mActionPaste->setEnabled( selected ); | 547 | mActionPaste->setEnabled( selected ); |
500 | } | 548 | } |
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 | ||
517 | void KABCore::sendMail() | 566 | void KABCore::sendMail() |
518 | { | 567 | { |
519 | sendMail( mViewManager->selectedEmails().join( ", " ) ); | 568 | sendMail( mViewManager->selectedEmails().join( ", " ) ); |
520 | } | 569 | } |
521 | 570 | ||
522 | void KABCore::sendMail( const QString& emaillist ) | 571 | void 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>;... " |
525 | if (emaillist.contains(",") > 0) | 574 | if (emaillist.contains(",") > 0) |
526 | ExternalAppHandler::instance()->mailToMultipleContacts( emaillist, QString::null ); | 575 | ExternalAppHandler::instance()->mailToMultipleContacts( emaillist, QString::null ); |
527 | else | 576 | else |
528 | ExternalAppHandler::instance()->mailToOneContact( emaillist ); | 577 | ExternalAppHandler::instance()->mailToOneContact( emaillist ); |
@@ -596,32 +645,121 @@ void KABCore::mailVCard( const QStringList& uids ) | |||
596 | void KABCore::beamMySelf() | 645 | void KABCore::beamMySelf() |
597 | { | 646 | { |
598 | KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI(); | 647 | KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI(); |
599 | if (!a.isEmpty()) | 648 | if (!a.isEmpty()) |
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 | ||
661 | void 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 | } | ||
612 | void KABCore::beamVCard() | 750 | void 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 | ||
620 | void KABCore::beamVCard(const QStringList& uids) | 758 | void KABCore::beamVCard(const QStringList& uids) |
621 | { | 759 | { |
622 | /*US | 760 | /*US |
623 | QString beamFilename; | 761 | QString beamFilename; |
624 | Opie::OPimContact c; | 762 | Opie::OPimContact c; |
625 | if ( actionPersonal->isOn() ) { | 763 | if ( actionPersonal->isOn() ) { |
626 | beamFilename = addressbookPersonalVCardName(); | 764 | beamFilename = addressbookPersonalVCardName(); |
627 | if ( !QFile::exists( beamFilename ) ) | 765 | if ( !QFile::exists( beamFilename ) ) |
@@ -1591,32 +1729,36 @@ void KABCore::initActions() | |||
1591 | } else { | 1729 | } else { |
1592 | mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() ); | 1730 | mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() ); |
1593 | mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() ); | 1731 | mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() ); |
1594 | } | 1732 | } |
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" ); |
1619 | } | 1761 | } |
1620 | #endif | 1762 | #endif |
1621 | 1763 | ||
1622 | mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0, | 1764 | mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0, |
@@ -1891,32 +2033,33 @@ void KABCore::addActionsManually() | |||
1891 | // The real linkage to the toolbar happens later. | 2033 | // The real linkage to the toolbar happens later. |
1892 | //US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE); | 2034 | //US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE); |
1893 | //US tb->insertItem( mIncSearchWidget ); | 2035 | //US tb->insertItem( mIncSearchWidget ); |
1894 | /*US | 2036 | /*US |
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 | } |
1911 | void KABCore::showLicence() | 2054 | void KABCore::showLicence() |
1912 | { | 2055 | { |
1913 | KApplication::showLicence(); | 2056 | KApplication::showLicence(); |
1914 | } | 2057 | } |
1915 | void KABCore::removeVoice() | 2058 | void 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; |
1919 | KABC::Addressee::List list = mViewManager->selectedAddressees(); | 2062 | KABC::Addressee::List list = mViewManager->selectedAddressees(); |
1920 | KABC::Addressee::List::Iterator it; | 2063 | KABC::Addressee::List::Iterator it; |
1921 | for ( it = list.begin(); it != list.end(); ++it ) { | 2064 | for ( it = list.begin(); it != list.end(); ++it ) { |
1922 | PhoneNumber::List phoneNumbers = (*it).phoneNumbers(); | 2065 | PhoneNumber::List phoneNumbers = (*it).phoneNumbers(); |
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h index 941458d..e6f286b 100644 --- a/kaddressbook/kabcore.h +++ b/kaddressbook/kabcore.h | |||
@@ -161,32 +161,33 @@ class KABCore : public QWidget, public KSyncInterface | |||
161 | /** | 161 | /** |
162 | Opens the preferred mail composer with the given contacts as | 162 | Opens the preferred mail composer with the given contacts as |
163 | arguments. | 163 | arguments. |
164 | */ | 164 | */ |
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 | */ |
189 | void selectAllContacts(); | 190 | void selectAllContacts(); |
190 | 191 | ||
191 | /** | 192 | /** |
192 | Deletes all selected contacts from the address book. | 193 | Deletes all selected contacts from the address book. |
@@ -384,32 +385,33 @@ class KABCore : public QWidget, public KSyncInterface | |||
384 | KCMultiDialog *mConfigureDialog; | 385 | KCMultiDialog *mConfigureDialog; |
385 | 386 | ||
386 | #ifndef KAB_EMBEDDED | 387 | #ifndef KAB_EMBEDDED |
387 | LDAPSearchDialog *mLdapSearchDialog; | 388 | LDAPSearchDialog *mLdapSearchDialog; |
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; |
412 | KAction *mActionPaste; | 414 | KAction *mActionPaste; |
413 | KAction *mActionSelectAll; | 415 | KAction *mActionSelectAll; |
414 | KAction *mActionUndo; | 416 | KAction *mActionUndo; |
415 | KAction *mActionRedo; | 417 | KAction *mActionRedo; |
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index 716a125..84e3d00 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp | |||
@@ -66,36 +66,32 @@ KOPrefs::KOPrefs() : | |||
66 | QColor defaultAgendaBgColor = QColor(239,241,169);//128,128,128); | 66 | QColor defaultAgendaBgColor = QColor(239,241,169);//128,128,128); |
67 | QColor defaultWorkingHoursColor = QColor(170,223,150);//160,160,160); | 67 | QColor defaultWorkingHoursColor = QColor(170,223,150);//160,160,160); |
68 | QColor defaultTodoDueTodayColor = QColor(255,220,100); | 68 | QColor defaultTodoDueTodayColor = QColor(255,220,100); |
69 | QColor defaultTodoOverdueColor = QColor(255,153,125); | 69 | QColor defaultTodoOverdueColor = QColor(255,153,125); |
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); |
98 | addItemBool("ShowIconBack",&mShowIconBack,true); | 94 | addItemBool("ShowIconBack",&mShowIconBack,true); |
99 | addItemBool("ShowIconToday",&mShowIconToday,true); | 95 | addItemBool("ShowIconToday",&mShowIconToday,true); |
100 | addItemBool("ShowIconForward",&mShowIconForward,true); | 96 | addItemBool("ShowIconForward",&mShowIconForward,true); |
101 | addItemBool("ShowIconForwardFast",&mShowIconForwardFast,true); | 97 | addItemBool("ShowIconForwardFast",&mShowIconForwardFast,true); |
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index a1ba8b3..d9ac851 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h | |||
@@ -197,35 +197,32 @@ class KOPrefs : public KPimPrefs | |||
197 | bool mWriteBackFile; | 197 | bool mWriteBackFile; |
198 | int mWriteBackInFuture; | 198 | int mWriteBackInFuture; |
199 | bool mAskForPreferences; | 199 | bool mAskForPreferences; |
200 | bool mShowSyncSummary; | 200 | bool mShowSyncSummary; |
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; |
228 | bool mHtmlWithSave; | 225 | bool mHtmlWithSave; |
229 | 226 | ||
230 | QStringList mSelectedPlugins; | 227 | QStringList mSelectedPlugins; |
231 | 228 | ||
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index bd14fbf..2f286e0 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -90,33 +90,33 @@ class KOex2phonePrefs : public QDialog | |||
90 | temphb = new QHBox( this ); | 90 | temphb = new QHBox( this ); |
91 | new QLabel( i18n("Connection: "), temphb ); | 91 | new QLabel( i18n("Connection: "), temphb ); |
92 | mPhoneConnection = new QLineEdit( temphb); | 92 | mPhoneConnection = new QLineEdit( temphb); |
93 | lay->addWidget( temphb ); | 93 | lay->addWidget( temphb ); |
94 | temphb = new QHBox( this ); | 94 | temphb = new QHBox( this ); |
95 | new QLabel( i18n("Model(opt.): "), temphb ); | 95 | new QLabel( i18n("Model(opt.): "), temphb ); |
96 | mPhoneModel = new QLineEdit( temphb); | 96 | mPhoneModel = new QLineEdit( temphb); |
97 | lay->addWidget( temphb ); | 97 | lay->addWidget( temphb ); |
98 | mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); | 98 | mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); |
99 | mWriteBackFuture->setChecked( true ); | 99 | mWriteBackFuture->setChecked( true ); |
100 | lay->addWidget( mWriteBackFuture ); | 100 | lay->addWidget( mWriteBackFuture ); |
101 | temphb = new QHBox( this ); | 101 | temphb = new QHBox( this ); |
102 | new QLabel( i18n("Max. weeks in future: ") , temphb ); | 102 | new QLabel( i18n("Max. weeks in future: ") , temphb ); |
103 | mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); | 103 | mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); |
104 | mWriteBackFutureWeeks->setValue( 8 ); | 104 | mWriteBackFutureWeeks->setValue( 8 ); |
105 | lay->addWidget( temphb ); | 105 | lay->addWidget( temphb ); |
106 | lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\n todo/calendar data on phone!"), this ) ); | 106 | lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); |
107 | lab->setAlignment (AlignHCenter ); | 107 | lab->setAlignment (AlignHCenter ); |
108 | QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); | 108 | QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); |
109 | lay->addWidget( ok ); | 109 | lay->addWidget( ok ); |
110 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); | 110 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); |
111 | lay->addWidget( cancel ); | 111 | lay->addWidget( cancel ); |
112 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | 112 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); |
113 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | 113 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); |
114 | resize( 220, 240 ); | 114 | resize( 220, 240 ); |
115 | 115 | ||
116 | } | 116 | } |
117 | 117 | ||
118 | public: | 118 | public: |
119 | QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; | 119 | QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; |
120 | QCheckBox* mWriteBackFuture; | 120 | QCheckBox* mWriteBackFuture; |
121 | QSpinBox* mWriteBackFutureWeeks; | 121 | QSpinBox* mWriteBackFutureWeeks; |
122 | }; | 122 | }; |
@@ -1158,50 +1158,51 @@ void MainWindow::slotSyncMenu( int action ) | |||
1158 | syncPhone(); | 1158 | syncPhone(); |
1159 | } else if ( temp->getIsPiSync() ) { | 1159 | } else if ( temp->getIsPiSync() ) { |
1160 | mPassWordPiSync = temp->getRemotePw(); | 1160 | mPassWordPiSync = temp->getRemotePw(); |
1161 | KOPrefs::instance()->mActiveSyncPort = temp->getRemotePort(); | 1161 | KOPrefs::instance()->mActiveSyncPort = temp->getRemotePort(); |
1162 | KOPrefs::instance()->mActiveSyncIP = temp->getRemoteIP(); | 1162 | KOPrefs::instance()->mActiveSyncIP = temp->getRemoteIP(); |
1163 | syncPi(); | 1163 | syncPi(); |
1164 | } else | 1164 | } else |
1165 | syncRemote( temp ); | 1165 | syncRemote( temp ); |
1166 | 1166 | ||
1167 | } | 1167 | } |
1168 | } | 1168 | } |
1169 | delete temp; | 1169 | delete temp; |
1170 | mBlockSaveFlag = false; | 1170 | mBlockSaveFlag = false; |
1171 | } | 1171 | } |
1172 | void MainWindow::exportToPhone( int mode ) | 1172 | void 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(); |
1204 | QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); | 1205 | QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); |
1205 | QDateTime end = cur.addDays( ( inFuture +1 ) *7 ); | 1206 | QDateTime end = cur.addDays( ( inFuture +1 ) *7 ); |
1206 | while ( incidence ) { | 1207 | while ( incidence ) { |
1207 | if ( incidence->type() != "Journal" ) { | 1208 | if ( incidence->type() != "Journal" ) { |
@@ -1219,35 +1220,35 @@ void MainWindow::exportToPhone( int mode ) | |||
1219 | bool ok; | 1220 | bool ok; |
1220 | dt = incidence->getNextOccurence( cur, &ok ); | 1221 | dt = incidence->getNextOccurence( cur, &ok ); |
1221 | if ( !ok ) | 1222 | if ( !ok ) |
1222 | dt = cur.addSecs( -62 ); | 1223 | dt = cur.addSecs( -62 ); |
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 | ||
1248 | void MainWindow::setDefaultPreferences() | 1249 | void MainWindow::setDefaultPreferences() |
1249 | { | 1250 | { |
1250 | KOPrefs *p = KOPrefs::instance(); | 1251 | KOPrefs *p = KOPrefs::instance(); |
1251 | 1252 | ||
1252 | p->mCompactDialogs = true; | 1253 | p->mCompactDialogs = true; |
1253 | p->mConfirm = true; | 1254 | p->mConfirm = true; |
diff --git a/libkdepim/kpimglobalprefs.cpp b/libkdepim/kpimglobalprefs.cpp index b2b7663..b71e18d 100644 --- a/libkdepim/kpimglobalprefs.cpp +++ b/libkdepim/kpimglobalprefs.cpp | |||
@@ -86,32 +86,39 @@ KPimGlobalPrefs::KPimGlobalPrefs( const QString &name ) | |||
86 | 86 | ||
87 | addItemInt( "SMSChannelType", &mSMSClient, NONE_SMC ); | 87 | addItemInt( "SMSChannelType", &mSMSClient, NONE_SMC ); |
88 | addItemString( "SMSChannel", &mSMSOtherChannel, "" ); | 88 | addItemString( "SMSChannel", &mSMSOtherChannel, "" ); |
89 | addItemString( "SMSChannelMessage", &mSMSOtherMessage, "" ); | 89 | addItemString( "SMSChannelMessage", &mSMSOtherMessage, "" ); |
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 | ||
104 | void KPimGlobalPrefs::setGlobalConfig() | 111 | void 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; |
114 | KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") )); | 121 | KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") )); |
115 | KGlobal::locale()->setDaylightSaving( mUseDaylightsaving, | 122 | KGlobal::locale()->setDaylightSaving( mUseDaylightsaving, |
116 | mDaylightsavingStart, | 123 | mDaylightsavingStart, |
117 | mDaylightsavingEnd ); | 124 | mDaylightsavingEnd ); |
diff --git a/libkdepim/kpimglobalprefs.h b/libkdepim/kpimglobalprefs.h index 84ba689..f6b6628 100644 --- a/libkdepim/kpimglobalprefs.h +++ b/libkdepim/kpimglobalprefs.h | |||
@@ -116,20 +116,23 @@ class KPimGlobalPrefs : public KPrefs | |||
116 | 116 | ||
117 | int mSMSClient; | 117 | int mSMSClient; |
118 | QString mSMSOtherChannel; | 118 | QString mSMSOtherChannel; |
119 | QString mSMSOtherMessage; | 119 | QString mSMSOtherMessage; |
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 | |||
@@ -22,38 +22,40 @@ HEADERS = \ | |||
22 | categoryeditdialog.h \ | 22 | categoryeditdialog.h \ |
23 | categoryeditdialog_base.h \ | 23 | categoryeditdialog_base.h \ |
24 | categoryselectdialog.h \ | 24 | categoryselectdialog.h \ |
25 | categoryselectdialog_base.h \ | 25 | categoryselectdialog_base.h \ |
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 | ||
40 | SOURCES = \ | 41 | SOURCES = \ |
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 | |||
@@ -16,40 +16,42 @@ HEADERS = \ | |||
16 | categoryeditdialog.h \ | 16 | categoryeditdialog.h \ |
17 | categoryeditdialog_base.h \ | 17 | categoryeditdialog_base.h \ |
18 | categoryselectdialog.h \ | 18 | categoryselectdialog.h \ |
19 | categoryselectdialog_base.h \ | 19 | categoryselectdialog_base.h \ |
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 | ||
36 | SOURCES = \ | 37 | SOURCES = \ |
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 | |||
35 | void 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 | |||
136 | bool 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 | |||
32 | class 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 | ||