summaryrefslogtreecommitdiffabout
path: root/libkdepim
Unidiff
Diffstat (limited to 'libkdepim') (more/less context) (show whitespace changes)
-rw-r--r--libkdepim/categoryeditdialog.h4
-rw-r--r--libkdepim/categoryselectdialog.cpp1
-rw-r--r--libkdepim/ksyncmanager.cpp9
-rw-r--r--libkdepim/ksyncmanager.h2
4 files changed, 8 insertions, 8 deletions
diff --git a/libkdepim/categoryeditdialog.h b/libkdepim/categoryeditdialog.h
index 3e8ab45..9bb3201 100644
--- a/libkdepim/categoryeditdialog.h
+++ b/libkdepim/categoryeditdialog.h
@@ -1,86 +1,86 @@
1/* 1/*
2 This file is part of libkdepim. 2 This file is part of libkdepim.
3 Copyright (c) 2000, 2001, 2002 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000, 2001, 2002 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
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#ifndef KPIM_CATEGORYEDITDIALOG_H 23#ifndef KPIM_CATEGORYEDITDIALOG_H
24#define KPIM_CATEGORYEDITDIALOG_H 24#define KPIM_CATEGORYEDITDIALOG_H
25 25
26#include <categoryeditdialog_base.h> 26#include <categoryeditdialog_base.h>
27#include <qlistview.h> 27#include <qlistview.h>
28 28
29class KPimPrefs; 29class KPimPrefs;
30 30
31namespace KPIM { 31namespace KPIM {
32 32
33 class CategorySelectItem :public QObject, public QCheckListItem 33 class CategorySelectItem :public QObject, public QCheckListItem
34{ 34{
35 35
36 Q_OBJECT 36 Q_OBJECT
37 public: 37 public:
38 38
39 CategorySelectItem(QListView * parent, const QString & text, Type tt) : 39 CategorySelectItem(QListView * parent, const QString & text, Type tt) : QObject( parent ),
40 QCheckListItem (parent, text, tt ) , QObject( parent ) 40 QCheckListItem (parent, text, tt )
41 {;} 41 {;}
42 42
43 signals: 43 signals:
44 void stateChanged( QListViewItem*); 44 void stateChanged( QListViewItem*);
45 45
46 protected: 46 protected:
47 47
48 virtual void stateChange(bool b) 48 virtual void stateChange(bool b)
49 { 49 {
50 QCheckListItem::stateChange(b); 50 QCheckListItem::stateChange(b);
51 emit stateChanged( this ); 51 emit stateChanged( this );
52 } 52 }
53}; 53};
54 54
55 55
56class CategoryEditDialog : public CategoryEditDialog_base 56class CategoryEditDialog : public CategoryEditDialog_base
57{ 57{
58 Q_OBJECT 58 Q_OBJECT
59 public: 59 public:
60 CategoryEditDialog( KPimPrefs *prefs, QWidget* parent = 0, 60 CategoryEditDialog( KPimPrefs *prefs, QWidget* parent = 0,
61 const char* name = 0, 61 const char* name = 0,
62 bool modal = FALSE, WFlags fl = 0 ); 62 bool modal = FALSE, WFlags fl = 0 );
63 ~CategoryEditDialog(); 63 ~CategoryEditDialog();
64 64
65 public slots: 65 public slots:
66 void add(); 66 void add();
67 void remove(); 67 void remove();
68 void modify(); 68 void modify();
69 void accept(); 69 void accept();
70 70
71 void slotOk(); 71 void slotOk();
72 void slotApply(); 72 void slotApply();
73 73
74 signals: 74 signals:
75 void categoryConfigChanged(); 75 void categoryConfigChanged();
76 76
77 private slots: 77 private slots:
78 void editItem(QListViewItem *item); 78 void editItem(QListViewItem *item);
79 void slotTextChanged(const QString &text); 79 void slotTextChanged(const QString &text);
80 80
81 KPimPrefs *mPrefs; 81 KPimPrefs *mPrefs;
82}; 82};
83 83
84} 84}
85 85
86#endif 86#endif
diff --git a/libkdepim/categoryselectdialog.cpp b/libkdepim/categoryselectdialog.cpp
index a4e0024..2a9b43e 100644
--- a/libkdepim/categoryselectdialog.cpp
+++ b/libkdepim/categoryselectdialog.cpp
@@ -1,236 +1,237 @@
1/* 1/*
2 This file is part of libkdepim. 2 This file is part of libkdepim.
3 Copyright (c) 2000, 2001, 2002 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000, 2001, 2002 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
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#include <qlistview.h> 24#include <qlistview.h>
25#include <qpushbutton.h> 25#include <qpushbutton.h>
26#include <qheader.h> 26#include <qheader.h>
27#include <qapp.h> 27#include <qapp.h>
28#include <qmessagebox.h> 28#include <qmessagebox.h>
29#include <kmessagebox.h> 29#include <kmessagebox.h>
30 30
31 31
32#include "categoryeditdialog.h" 32#include "categoryeditdialog.h"
33#include "categoryselectdialog.h" 33#include "categoryselectdialog.h"
34 34
35#include "kpimprefs.h" 35#include "kpimprefs.h"
36 36
37using namespace KPIM; 37using namespace KPIM;
38 38
39CategorySelectDialog::CategorySelectDialog( KPimPrefs *prefs, QWidget* parent, 39CategorySelectDialog::CategorySelectDialog( KPimPrefs *prefs, QWidget* parent,
40 const char* name, 40 const char* name,
41 bool modal, WFlags fl ) 41 bool modal, WFlags fl )
42 : CategorySelectDialog_base( parent, name, true, fl ), 42 : CategorySelectDialog_base( parent, name, true, fl ),
43 mPrefs( prefs ) 43 mPrefs( prefs )
44{ 44{
45 Q_UNUSED( modal );
45 mColorItem = 0; 46 mColorItem = 0;
46 mColorEnabled = false; 47 mColorEnabled = false;
47 mCategories->header()->hide(); 48 mCategories->header()->hide();
48 49
49 setCategories(); 50 setCategories();
50 51
51 connect(mButtonEdit,SIGNAL(clicked()),this, SLOT(editCategoriesDialog())); 52 connect(mButtonEdit,SIGNAL(clicked()),this, SLOT(editCategoriesDialog()));
52 if ( QApplication::desktop()->width() > 460 ) 53 if ( QApplication::desktop()->width() > 460 )
53 resize( 300, 360 ); 54 resize( 300, 360 );
54 else 55 else
55 showMaximized(); 56 showMaximized();
56 connect( mSetColorCat, SIGNAL( clicked() ), this, SLOT( setColorCat() ) ); 57 connect( mSetColorCat, SIGNAL( clicked() ), this, SLOT( setColorCat() ) );
57 // connect( mCategories, SIGNAL( clicked(QListViewItem *) ), this, SLOT( clicked(QListViewItem *) ) ); 58 // connect( mCategories, SIGNAL( clicked(QListViewItem *) ), this, SLOT( clicked(QListViewItem *) ) );
58#ifndef DESKTOP_VERSION 59#ifndef DESKTOP_VERSION
59 mButtonOk->hide(); 60 mButtonOk->hide();
60 mButtonCancel->hide(); 61 mButtonCancel->hide();
61#endif 62#endif
62} 63}
63void CategorySelectDialog::editCategoriesDialog() 64void CategorySelectDialog::editCategoriesDialog()
64{ 65{
65 KPIM::CategoryEditDialog* ced = new KPIM::CategoryEditDialog(mPrefs,this ); 66 KPIM::CategoryEditDialog* ced = new KPIM::CategoryEditDialog(mPrefs,this );
66 67
67 ced->exec(); 68 ced->exec();
68 delete ced; 69 delete ced;
69 slotApply(); 70 slotApply();
70 QStringList temp = mCategoryList; 71 QStringList temp = mCategoryList;
71 setCategories(); 72 setCategories();
72 setSelected( temp ); 73 setSelected( temp );
73} 74}
74void CategorySelectDialog::setCategories() 75void CategorySelectDialog::setCategories()
75{ 76{
76 mColorItem = 0; 77 mColorItem = 0;
77 mCategories->clear(); 78 mCategories->clear();
78 mCategoryList.clear(); 79 mCategoryList.clear();
79 80
80 QStringList::Iterator it; 81 QStringList::Iterator it;
81 for (it = mPrefs->mCustomCategories.begin(); 82 for (it = mPrefs->mCustomCategories.begin();
82 it != mPrefs->mCustomCategories.end(); ++it ) { 83 it != mPrefs->mCustomCategories.end(); ++it ) {
83 CategorySelectItem * item = new CategorySelectItem(mCategories,*it,QCheckListItem::CheckBox); 84 CategorySelectItem * item = new CategorySelectItem(mCategories,*it,QCheckListItem::CheckBox);
84 QObject::connect( item, SIGNAL( stateChanged(QListViewItem *) ), this, SLOT( clicked(QListViewItem *) ) ); 85 QObject::connect( item, SIGNAL( stateChanged(QListViewItem *) ), this, SLOT( clicked(QListViewItem *) ) );
85 86
86 } 87 }
87} 88}
88 89
89CategorySelectDialog::~CategorySelectDialog() 90CategorySelectDialog::~CategorySelectDialog()
90{ 91{
91} 92}
92 93
93void CategorySelectDialog::setSelected(const QStringList &selList) 94void CategorySelectDialog::setSelected(const QStringList &selList)
94{ 95{
95 clear(); 96 clear();
96 97
97 QStringList::ConstIterator it; 98 QStringList::ConstIterator it;
98 QStringList notFound; 99 QStringList notFound;
99 bool found = false; 100 bool found = false;
100 for (it=selList.begin();it!=selList.end();++it) { 101 for (it=selList.begin();it!=selList.end();++it) {
101 //qDebug(" CategorySelectDialog::setSelected("); 102 //qDebug(" CategorySelectDialog::setSelected(");
102 QCheckListItem *item = (QCheckListItem *)mCategories->firstChild(); 103 QCheckListItem *item = (QCheckListItem *)mCategories->firstChild();
103 while (item) { 104 while (item) {
104 if (item->text() == *it) { 105 if (item->text() == *it) {
105 item->setOn(true); 106 item->setOn(true);
106 if ( ! found ) 107 if ( ! found )
107 setColorItem( item ); 108 setColorItem( item );
108 found = true; 109 found = true;
109 break; 110 break;
110 } 111 }
111 item = (QCheckListItem *)item->nextSibling(); 112 item = (QCheckListItem *)item->nextSibling();
112 } 113 }
113// if ( ! found ) { 114// if ( ! found ) {
114 115
115//emit updateCategoriesGlobal(); 116//emit updateCategoriesGlobal();
116// QMessageBox::information( this, "KO/E: Information!", 117// QMessageBox::information( this, "KO/E: Information!",
117// "Categories found, which were not\n" 118// "Categories found, which were not\n"
118// "in list of categories!\n" 119// "in list of categories!\n"
119// "message", 120// "message",
120// "OK", "", 0, 121// "OK", "", 0,
121// 0, 1 ); 122// 0, 1 );
122// setSelected(selList); 123// setSelected(selList);
123// return; 124// return;
124// } 125// }
125 } 126 }
126} 127}
127 128
128QStringList CategorySelectDialog::selectedCategories() const 129QStringList CategorySelectDialog::selectedCategories() const
129{ 130{
130 return mCategoryList; 131 return mCategoryList;
131} 132}
132void CategorySelectDialog::setColorEnabled() 133void CategorySelectDialog::setColorEnabled()
133{ 134{
134 mColorEnabled = true; 135 mColorEnabled = true;
135 mSetColorCat->show(); 136 mSetColorCat->show();
136} 137}
137void CategorySelectDialog::setColorCat() 138void CategorySelectDialog::setColorCat()
138{ 139{
139 QCheckListItem * newColorItem = (QCheckListItem * )mCategories->currentItem (); 140 QCheckListItem * newColorItem = (QCheckListItem * )mCategories->currentItem ();
140 if ( !newColorItem ) { 141 if ( !newColorItem ) {
141 KMessageBox::error(this,i18n("There is no current item.")); 142 KMessageBox::error(this,i18n("There is no current item."));
142 return; 143 return;
143 } 144 }
144 if ( !newColorItem->isOn() ) 145 if ( !newColorItem->isOn() )
145 newColorItem->setOn( true ); 146 newColorItem->setOn( true );
146 setColorItem( newColorItem ); 147 setColorItem( newColorItem );
147 148
148} 149}
149void CategorySelectDialog::clicked ( QListViewItem * it ) 150void CategorySelectDialog::clicked ( QListViewItem * it )
150{ 151{
151 if ( ! it ) 152 if ( ! it )
152 return; 153 return;
153 QCheckListItem *i = (QCheckListItem *) it; 154 QCheckListItem *i = (QCheckListItem *) it;
154 if ( !i->isOn() && i==mColorItem) { 155 if ( !i->isOn() && i==mColorItem) {
155 setColorItem( 0); 156 setColorItem( 0);
156 QCheckListItem *item = (QCheckListItem *)mCategories->firstChild(); 157 QCheckListItem *item = (QCheckListItem *)mCategories->firstChild();
157 while (item) { 158 while (item) {
158 if (item->isOn()) { 159 if (item->isOn()) {
159 setColorItem( item ); 160 setColorItem( item );
160 break; 161 break;
161 } 162 }
162 item = (QCheckListItem *)item->nextSibling(); 163 item = (QCheckListItem *)item->nextSibling();
163 } 164 }
164 } else if ( i->isOn() && !mColorItem) { 165 } else if ( i->isOn() && !mColorItem) {
165 setColorItem( i); 166 setColorItem( i);
166 } 167 }
167} 168}
168void CategorySelectDialog::setColorItem( QCheckListItem * newColorItem ) 169void CategorySelectDialog::setColorItem( QCheckListItem * newColorItem )
169{ 170{
170 if ( !mColorEnabled ) 171 if ( !mColorEnabled )
171 return; 172 return;
172 if ( mColorItem == newColorItem) 173 if ( mColorItem == newColorItem)
173 return; 174 return;
174 if ( mColorItem ) { 175 if ( mColorItem ) {
175 mColorItem->setPixmap ( 0, QPixmap() ); 176 mColorItem->setPixmap ( 0, QPixmap() );
176 mColorItem = 0; 177 mColorItem = 0;
177 } 178 }
178 if ( newColorItem ) { 179 if ( newColorItem ) {
179 QPixmap pix (newColorItem->height()/2, newColorItem->height()/2 ); 180 QPixmap pix (newColorItem->height()/2, newColorItem->height()/2 );
180 pix.fill(Qt::red ); 181 pix.fill(Qt::red );
181 newColorItem->setPixmap ( 0, pix ); 182 newColorItem->setPixmap ( 0, pix );
182 mColorItem = newColorItem; 183 mColorItem = newColorItem;
183 } 184 }
184} 185}
185void CategorySelectDialog::slotApply() 186void CategorySelectDialog::slotApply()
186{ 187{
187 QStringList categories; 188 QStringList categories;
188 QCheckListItem *item = (QCheckListItem *)mCategories->firstChild(); 189 QCheckListItem *item = (QCheckListItem *)mCategories->firstChild();
189 QString colcat; 190 QString colcat;
190 while (item) { 191 while (item) {
191 if (item->isOn()) { 192 if (item->isOn()) {
192 if ( item == mColorItem) 193 if ( item == mColorItem)
193 colcat = item->text(); 194 colcat = item->text();
194 else 195 else
195 categories.append(item->text()); 196 categories.append(item->text());
196 } 197 }
197 item = (QCheckListItem *)item->nextSibling(); 198 item = (QCheckListItem *)item->nextSibling();
198 } 199 }
199 categories.sort(); 200 categories.sort();
200 if ( ! colcat.isEmpty() ) 201 if ( ! colcat.isEmpty() )
201 categories.prepend( colcat ); 202 categories.prepend( colcat );
202 // QString categoriesStr = categories.join(","); 203 // QString categoriesStr = categories.join(",");
203 204
204 mCategoryList = categories; 205 mCategoryList = categories;
205 206
206} 207}
207void CategorySelectDialog::accept() 208void CategorySelectDialog::accept()
208{ 209{
209 slotOk(); 210 slotOk();
210} 211}
211 212
212void CategorySelectDialog::slotOk() 213void CategorySelectDialog::slotOk()
213{ 214{
214 slotApply(); 215 slotApply();
215 emit categoriesSelected(mCategoryList); 216 emit categoriesSelected(mCategoryList);
216 emit categoriesSelected(mCategoryList.join(",")); 217 emit categoriesSelected(mCategoryList.join(","));
217 QDialog::accept(); 218 QDialog::accept();
218} 219}
219 220
220void CategorySelectDialog::clear() 221void CategorySelectDialog::clear()
221{ 222{
222 QCheckListItem *item = (QCheckListItem *)mCategories->firstChild(); 223 QCheckListItem *item = (QCheckListItem *)mCategories->firstChild();
223 while (item) { 224 while (item) {
224 item->setOn(false); 225 item->setOn(false);
225 item = (QCheckListItem *)item->nextSibling(); 226 item = (QCheckListItem *)item->nextSibling();
226 } 227 }
227} 228}
228 229
229void CategorySelectDialog::updateCategoryConfig() 230void CategorySelectDialog::updateCategoryConfig()
230{ 231{
231 QStringList selected; 232 QStringList selected;
232 QCheckListItem *item = (QCheckListItem *)mCategories->firstChild(); 233 QCheckListItem *item = (QCheckListItem *)mCategories->firstChild();
233 while (item) { 234 while (item) {
234 if (item->isOn()) { 235 if (item->isOn()) {
235 selected.append(item->text()); 236 selected.append(item->text());
236 } 237 }
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index 0109c02..28c48fe 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -564,781 +564,780 @@ void KSyncManager::multiSync( bool askforPrefs )
564 if ( num ) 564 if ( num )
565 emit save(); 565 emit save();
566 if ( num ) 566 if ( num )
567 mParent->topLevelWidget()->setCaption(i18n("%1 profiles synced. Multiple sync complete!").arg(num) ); 567 mParent->topLevelWidget()->setCaption(i18n("%1 profiles synced. Multiple sync complete!").arg(num) );
568 else 568 else
569 mParent->topLevelWidget()->setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 569 mParent->topLevelWidget()->setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
570 return; 570 return;
571} 571}
572 572
573int KSyncManager::ringSync() 573int KSyncManager::ringSync()
574{ 574{
575 emit multiResourceSyncStart( false ); 575 emit multiResourceSyncStart( false );
576 int syncedProfiles = 0; 576 int syncedProfiles = 0;
577 unsigned int i; 577 unsigned int i;
578 QTime timer; 578 QTime timer;
579 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 579 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
580 QStringList syncProfileNames = mSyncProfileNames; 580 QStringList syncProfileNames = mSyncProfileNames;
581 KSyncProfile* temp = new KSyncProfile (); 581 KSyncProfile* temp = new KSyncProfile ();
582 mAskForPreferences = false; 582 mAskForPreferences = false;
583 mCurrentResourceLocal = ""; 583 mCurrentResourceLocal = "";
584 for ( i = 0; i < syncProfileNames.count(); ++i ) { 584 for ( i = 0; i < syncProfileNames.count(); ++i ) {
585 mCurrentSyncProfile = i; 585 mCurrentSyncProfile = i;
586 temp->setName(syncProfileNames[mCurrentSyncProfile]); 586 temp->setName(syncProfileNames[mCurrentSyncProfile]);
587 temp->readConfig(&config); 587 temp->readConfig(&config);
588 588
589 bool includeInRingSync = false; 589 bool includeInRingSync = false;
590 switch(mTargetApp) 590 switch(mTargetApp)
591 { 591 {
592 case (KAPI): 592 case (KAPI):
593 includeInRingSync = temp->getIncludeInRingSyncAB(); 593 includeInRingSync = temp->getIncludeInRingSyncAB();
594 break; 594 break;
595 case (KOPI): 595 case (KOPI):
596 includeInRingSync = temp->getIncludeInRingSync(); 596 includeInRingSync = temp->getIncludeInRingSync();
597 break; 597 break;
598 case (PWMPI): 598 case (PWMPI):
599 includeInRingSync = temp->getIncludeInRingSyncPWM(); 599 includeInRingSync = temp->getIncludeInRingSyncPWM();
600 break; 600 break;
601 default: 601 default:
602 qDebug("KSM::ringSync: invalid apptype selected"); 602 qDebug("KSM::ringSync: invalid apptype selected");
603 break; 603 break;
604 604
605 } 605 }
606 606
607 607
608 if ( includeInRingSync && ( i < 1 || i > 2 )) { 608 if ( includeInRingSync && ( i < 1 || i > 2 )) {
609 mParent->topLevelWidget()->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); 609 mParent->topLevelWidget()->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
610 ++syncedProfiles; 610 ++syncedProfiles;
611 mSyncWithDesktop = false; 611 mSyncWithDesktop = false;
612 // mAskForPreferences = temp->getAskForPreferences(); 612 // mAskForPreferences = temp->getAskForPreferences();
613 mWriteBackFile = temp->getWriteBackFile(); 613 mWriteBackFile = temp->getWriteBackFile();
614 mWriteBackExistingOnly = temp->getWriteBackExisting(); 614 mWriteBackExistingOnly = temp->getWriteBackExisting();
615 mIsKapiFile = temp->getIsKapiFile(); 615 mIsKapiFile = temp->getIsKapiFile();
616 mWriteBackInFuture = 0; 616 mWriteBackInFuture = 0;
617 if ( temp->getWriteBackFuture() ) { 617 if ( temp->getWriteBackFuture() ) {
618 mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 618 mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
619 mWriteBackInPast = temp->getWriteBackPastWeeks( ); 619 mWriteBackInPast = temp->getWriteBackPastWeeks( );
620 } 620 }
621 mFilterInCal = temp->getFilterInCal(); 621 mFilterInCal = temp->getFilterInCal();
622 mFilterOutCal = temp->getFilterOutCal(); 622 mFilterOutCal = temp->getFilterOutCal();
623 mFilterInAB = temp->getFilterInAB(); 623 mFilterInAB = temp->getFilterInAB();
624 mFilterOutAB = temp->getFilterOutAB(); 624 mFilterOutAB = temp->getFilterOutAB();
625 mShowSyncSummary = false; 625 mShowSyncSummary = false;
626 mCurrentSyncDevice = syncProfileNames[i] ; 626 mCurrentSyncDevice = syncProfileNames[i] ;
627 mCurrentSyncName = mLocalMachineName; 627 mCurrentSyncName = mLocalMachineName;
628 if ( i == 0 ) { 628 if ( i == 0 ) {
629 mIsKapiFile = false; 629 mIsKapiFile = false;
630#ifdef DESKTOP_VERSION 630#ifdef DESKTOP_VERSION
631 syncKDE(); 631 syncKDE();
632#else 632#else
633 syncSharp(); 633 syncSharp();
634#endif 634#endif
635 } else { 635 } else {
636 if ( temp->getIsLocalFileSync() ) { 636 if ( temp->getIsLocalFileSync() ) {
637 switch(mTargetApp) 637 switch(mTargetApp)
638 { 638 {
639 case (KAPI): 639 case (KAPI):
640 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) 640 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
641 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); 641 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
642 break; 642 break;
643 case (KOPI): 643 case (KOPI):
644 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 644 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
645 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); 645 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName();
646 break; 646 break;
647 case (PWMPI): 647 case (PWMPI):
648 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) 648 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) )
649 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); 649 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM();
650 break; 650 break;
651 default: 651 default:
652 qDebug("KSM: invalid apptype selected"); 652 qDebug("KSM: invalid apptype selected");
653 break; 653 break;
654 } 654 }
655 } else { 655 } else {
656 if ( temp->getIsPhoneSync() ) { 656 if ( temp->getIsPhoneSync() ) {
657 mPhoneDevice = temp->getPhoneDevice( ) ; 657 mPhoneDevice = temp->getPhoneDevice( ) ;
658 mPhoneConnection = temp->getPhoneConnection( ); 658 mPhoneConnection = temp->getPhoneConnection( );
659 mPhoneModel = temp->getPhoneModel( ); 659 mPhoneModel = temp->getPhoneModel( );
660 syncPhone(); 660 syncPhone();
661 } else if ( temp->getIsPiSync() || temp->getIsPiSyncSpec()) { 661 } else if ( temp->getIsPiSync() || temp->getIsPiSyncSpec()) {
662 mSpecificResources.clear(); 662 mSpecificResources.clear();
663 if ( mTargetApp == KAPI ) { 663 if ( mTargetApp == KAPI ) {
664 mPassWordPiSync = temp->getRemotePwAB(); 664 mPassWordPiSync = temp->getRemotePwAB();
665 mActiveSyncPort = temp->getRemotePortAB(); 665 mActiveSyncPort = temp->getRemotePortAB();
666 mActiveSyncIP = temp->getRemoteIPAB(); 666 mActiveSyncIP = temp->getRemoteIPAB();
667 } else if ( mTargetApp == KOPI ) { 667 } else if ( mTargetApp == KOPI ) {
668 mSpecificResources = QStringList::split( ":", temp->getResSpecKopi(),true ); 668 mSpecificResources = QStringList::split( ":", temp->getResSpecKopi(),true );
669 mPassWordPiSync = temp->getRemotePw(); 669 mPassWordPiSync = temp->getRemotePw();
670 mActiveSyncPort = temp->getRemotePort(); 670 mActiveSyncPort = temp->getRemotePort();
671 mActiveSyncIP = temp->getRemoteIP(); 671 mActiveSyncIP = temp->getRemoteIP();
672 } else { 672 } else {
673 mPassWordPiSync = temp->getRemotePwPWM(); 673 mPassWordPiSync = temp->getRemotePwPWM();
674 mActiveSyncPort = temp->getRemotePortPWM(); 674 mActiveSyncPort = temp->getRemotePortPWM();
675 mActiveSyncIP = temp->getRemoteIPPWM(); 675 mActiveSyncIP = temp->getRemoteIPPWM();
676 } 676 }
677 syncPi(); 677 syncPi();
678 while ( !mPisyncFinished ) { 678 while ( !mPisyncFinished ) {
679 //qDebug("waiting "); 679 //qDebug("waiting ");
680 qApp->processEvents(); 680 qApp->processEvents();
681 } 681 }
682 timer.start(); 682 timer.start();
683 while ( timer.elapsed () < 2000 ) { 683 while ( timer.elapsed () < 2000 ) {
684 qApp->processEvents(); 684 qApp->processEvents();
685 } 685 }
686 } else 686 } else
687 syncRemote( temp, false ); 687 syncRemote( temp, false );
688 688
689 } 689 }
690 } 690 }
691 timer.start(); 691 timer.start();
692 mParent->topLevelWidget()->setCaption(i18n("Multiple sync in progress ... please wait!") ); 692 mParent->topLevelWidget()->setCaption(i18n("Multiple sync in progress ... please wait!") );
693 while ( timer.elapsed () < 2000 ) { 693 while ( timer.elapsed () < 2000 ) {
694 qApp->processEvents(); 694 qApp->processEvents();
695#ifndef _WIN32_ 695#ifndef _WIN32_
696 sleep (1); 696 sleep (1);
697#endif 697#endif
698 } 698 }
699 699
700 } 700 }
701 701
702 } 702 }
703 delete temp; 703 delete temp;
704 return syncedProfiles; 704 return syncedProfiles;
705} 705}
706 706
707void KSyncManager::syncRemote( KSyncProfile* prof, bool ask) 707void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
708{ 708{
709 QString question; 709 QString question;
710 if ( ask ) { 710 if ( ask ) {
711 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; 711 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n";
712 if ( QMessageBox::information( mParent, i18n("Sync"), 712 if ( QMessageBox::information( mParent, i18n("Sync"),
713 question, 713 question,
714 i18n("Yes"), i18n("No"), 714 i18n("Yes"), i18n("No"),
715 0, 0 ) != 0 ) 715 0, 0 ) != 0 )
716 return; 716 return;
717 } 717 }
718 718
719 QString preCommand; 719 QString preCommand;
720 QString localTempFile; 720 QString localTempFile;
721 QString postCommand; 721 QString postCommand;
722 722
723 switch(mTargetApp) 723 switch(mTargetApp)
724 { 724 {
725 case (KAPI): 725 case (KAPI):
726 preCommand = prof->getPreSyncCommandAB(); 726 preCommand = prof->getPreSyncCommandAB();
727 postCommand = prof->getPostSyncCommandAB(); 727 postCommand = prof->getPostSyncCommandAB();
728 localTempFile = prof->getLocalTempFileAB(); 728 localTempFile = prof->getLocalTempFileAB();
729 break; 729 break;
730 case (KOPI): 730 case (KOPI):
731 preCommand = prof->getPreSyncCommand(); 731 preCommand = prof->getPreSyncCommand();
732 postCommand = prof->getPostSyncCommand(); 732 postCommand = prof->getPostSyncCommand();
733 localTempFile = prof->getLocalTempFile(); 733 localTempFile = prof->getLocalTempFile();
734 break; 734 break;
735 case (PWMPI): 735 case (PWMPI):
736 preCommand = prof->getPreSyncCommandPWM(); 736 preCommand = prof->getPreSyncCommandPWM();
737 postCommand = prof->getPostSyncCommandPWM(); 737 postCommand = prof->getPostSyncCommandPWM();
738 localTempFile = prof->getLocalTempFilePWM(); 738 localTempFile = prof->getLocalTempFilePWM();
739 break; 739 break;
740 default: 740 default:
741 qDebug("KSM::syncRemote: invalid apptype selected"); 741 qDebug("KSM::syncRemote: invalid apptype selected");
742 break; 742 break;
743 } 743 }
744 744
745 745
746 int fi; 746 int fi;
747 if ( (fi = preCommand.find("$PWD$")) > 0 ) { 747 if ( (fi = preCommand.find("$PWD$")) > 0 ) {
748 QString pwd = getPassword(); 748 QString pwd = getPassword();
749 preCommand = preCommand.left( fi )+ pwd + preCommand.mid( fi+5 ); 749 preCommand = preCommand.left( fi )+ pwd + preCommand.mid( fi+5 );
750 750
751 } 751 }
752 int maxlen = 30; 752 int maxlen = 30;
753 if ( QApplication::desktop()->width() > 320 ) 753 if ( QApplication::desktop()->width() > 320 )
754 maxlen += 25; 754 maxlen += 25;
755 mParent->topLevelWidget()->setCaption ( i18n( "Copy remote file to local machine..." ) ); 755 mParent->topLevelWidget()->setCaption ( i18n( "Copy remote file to local machine..." ) );
756 int fileSize = 0;
757 int result = system ( preCommand ); 756 int result = system ( preCommand );
758 // 0 : okay 757 // 0 : okay
759 // 256: no such file or dir 758 // 256: no such file or dir
760 // 759 //
761 qDebug("KSM::Sync: Remote copy result(0 = okay): %d ",result ); 760 qDebug("KSM::Sync: Remote copy result(0 = okay): %d ",result );
762 if ( result != 0 ) { 761 if ( result != 0 ) {
763 unsigned int len = maxlen; 762 unsigned int len = maxlen;
764 while ( len < preCommand.length() ) { 763 while ( len < preCommand.length() ) {
765 preCommand.insert( len , "\n" ); 764 preCommand.insert( len , "\n" );
766 len += maxlen +2; 765 len += maxlen +2;
767 } 766 }
768 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (preCommand) ; 767 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (preCommand) ;
769 QMessageBox::information( mParent, i18n("Sync - ERROR"), 768 QMessageBox::information( mParent, i18n("Sync - ERROR"),
770 question, 769 question,
771 i18n("Okay!")) ; 770 i18n("Okay!")) ;
772 mParent->topLevelWidget()->setCaption ("KDE-Pim"); 771 mParent->topLevelWidget()->setCaption ("KDE-Pim");
773 return; 772 return;
774 } 773 }
775 mParent->topLevelWidget()->setCaption ( i18n( "Copying succeed." ) ); 774 mParent->topLevelWidget()->setCaption ( i18n( "Copying succeed." ) );
776 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); 775 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
777 776
778 if ( syncWithFile( localTempFile, true ) ) { 777 if ( syncWithFile( localTempFile, true ) ) {
779 778
780 if ( mWriteBackFile ) { 779 if ( mWriteBackFile ) {
781 int fi; 780 int fi;
782 if ( (fi = postCommand.find("$PWD$")) > 0 ) { 781 if ( (fi = postCommand.find("$PWD$")) > 0 ) {
783 QString pwd = getPassword(); 782 QString pwd = getPassword();
784 postCommand = postCommand.left( fi )+ pwd + postCommand.mid( fi+5 ); 783 postCommand = postCommand.left( fi )+ pwd + postCommand.mid( fi+5 );
785 784
786 } 785 }
787 mParent->topLevelWidget()->setCaption ( i18n( "Writing back file ..." ) ); 786 mParent->topLevelWidget()->setCaption ( i18n( "Writing back file ..." ) );
788 result = system ( postCommand ); 787 result = system ( postCommand );
789 qDebug("KSM::Sync:Writing back file result: %d ", result); 788 qDebug("KSM::Sync:Writing back file result: %d ", result);
790 if ( result != 0 ) { 789 if ( result != 0 ) {
791 mParent->topLevelWidget()->setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); 790 mParent->topLevelWidget()->setCaption ( i18n( "Writing back file result: " )+QString::number( result ) );
792 return; 791 return;
793 } else { 792 } else {
794 mParent->topLevelWidget()->setCaption ( i18n( "Syncronization sucessfully completed" ) ); 793 mParent->topLevelWidget()->setCaption ( i18n( "Syncronization sucessfully completed" ) );
795 } 794 }
796 } 795 }
797 } 796 }
798 return; 797 return;
799} 798}
800bool KSyncManager::edit_pisync_options() 799bool KSyncManager::edit_pisync_options()
801{ 800{
802 QDialog dia( mParent, "dia", true ); 801 QDialog dia( mParent, "dia", true );
803 dia.setCaption( i18n("Pi-Sync options for device: " ) +mCurrentSyncDevice ); 802 dia.setCaption( i18n("Pi-Sync options for device: " ) +mCurrentSyncDevice );
804 QVBoxLayout lay ( &dia ); 803 QVBoxLayout lay ( &dia );
805 lay.setSpacing( 5 ); 804 lay.setSpacing( 5 );
806 lay.setMargin( 3 ); 805 lay.setMargin( 3 );
807 QLabel lab1 ( i18n("Password for remote access:"), &dia); 806 QLabel lab1 ( i18n("Password for remote access:"), &dia);
808 lay.addWidget( &lab1 ); 807 lay.addWidget( &lab1 );
809 QLineEdit le1 (&dia ); 808 QLineEdit le1 (&dia );
810 lay.addWidget( &le1 ); 809 lay.addWidget( &le1 );
811 QLabel lab2 ( i18n("Remote IP address:"), &dia); 810 QLabel lab2 ( i18n("Remote IP address:"), &dia);
812 lay.addWidget( &lab2 ); 811 lay.addWidget( &lab2 );
813 QLineEdit le2 (&dia ); 812 QLineEdit le2 (&dia );
814 lay.addWidget( &le2 ); 813 lay.addWidget( &le2 );
815 QLabel lab3 ( i18n("Remote port number:\n(May be: 1 - 65535)"), &dia); 814 QLabel lab3 ( i18n("Remote port number:\n(May be: 1 - 65535)"), &dia);
816 lay.addWidget( &lab3 ); 815 lay.addWidget( &lab3 );
817 QLineEdit le3 (&dia ); 816 QLineEdit le3 (&dia );
818 lay.addWidget( &le3 ); 817 lay.addWidget( &le3 );
819 QPushButton pb ( "OK", &dia); 818 QPushButton pb ( "OK", &dia);
820 lay.addWidget( &pb ); 819 lay.addWidget( &pb );
821 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 820 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
822 le1.setText( mPassWordPiSync ); 821 le1.setText( mPassWordPiSync );
823 le2.setText( mActiveSyncIP ); 822 le2.setText( mActiveSyncIP );
824 le3.setText( mActiveSyncPort ); 823 le3.setText( mActiveSyncPort );
825 if ( dia.exec() ) { 824 if ( dia.exec() ) {
826 mPassWordPiSync = le1.text(); 825 mPassWordPiSync = le1.text();
827 mActiveSyncPort = le3.text(); 826 mActiveSyncPort = le3.text();
828 mActiveSyncIP = le2.text(); 827 mActiveSyncIP = le2.text();
829 return true; 828 return true;
830 } 829 }
831 return false; 830 return false;
832} 831}
833bool KSyncManager::edit_sync_options() 832bool KSyncManager::edit_sync_options()
834{ 833{
835 834
836 QDialog dia( mParent, "dia", true ); 835 QDialog dia( mParent, "dia", true );
837 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); 836 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice );
838 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); 837 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia);
839 QVBoxLayout lay ( &dia ); 838 QVBoxLayout lay ( &dia );
840 lay.setSpacing( 2 ); 839 lay.setSpacing( 2 );
841 lay.setMargin( 3 ); 840 lay.setMargin( 3 );
842 lay.addWidget(&gr); 841 lay.addWidget(&gr);
843 QRadioButton loc ( i18n("Take local entry on conflict"), &gr ); 842 QRadioButton loc ( i18n("Take local entry on conflict"), &gr );
844 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr ); 843 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr );
845 QRadioButton newest( i18n("Take newest entry on conflict"), &gr ); 844 QRadioButton newest( i18n("Take newest entry on conflict"), &gr );
846 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr ); 845 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr );
847 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr ); 846 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr );
848 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr ); 847 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr );
849 //QRadioButton both( i18n("Take both on conflict"), &gr ); 848 //QRadioButton both( i18n("Take both on conflict"), &gr );
850 QPushButton pb ( "OK", &dia); 849 QPushButton pb ( "OK", &dia);
851 lay.addWidget( &pb ); 850 lay.addWidget( &pb );
852 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 851 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
853 switch ( mSyncAlgoPrefs ) { 852 switch ( mSyncAlgoPrefs ) {
854 case 0: 853 case 0:
855 loc.setChecked( true); 854 loc.setChecked( true);
856 break; 855 break;
857 case 1: 856 case 1:
858 rem.setChecked( true ); 857 rem.setChecked( true );
859 break; 858 break;
860 case 2: 859 case 2:
861 newest.setChecked( true); 860 newest.setChecked( true);
862 break; 861 break;
863 case 3: 862 case 3:
864 ask.setChecked( true); 863 ask.setChecked( true);
865 break; 864 break;
866 case 4: 865 case 4:
867 f_loc.setChecked( true); 866 f_loc.setChecked( true);
868 break; 867 break;
869 case 5: 868 case 5:
870 f_rem.setChecked( true); 869 f_rem.setChecked( true);
871 break; 870 break;
872 case 6: 871 case 6:
873 // both.setChecked( true); 872 // both.setChecked( true);
874 break; 873 break;
875 default: 874 default:
876 break; 875 break;
877 } 876 }
878 if ( dia.exec() ) { 877 if ( dia.exec() ) {
879 mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; 878 mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ;
880 return true; 879 return true;
881 } 880 }
882 return false; 881 return false;
883} 882}
884 883
885QString KSyncManager::getPassword( ) 884QString KSyncManager::getPassword( )
886{ 885{
887 QString retfile = ""; 886 QString retfile = "";
888 QDialog dia ( mParent, "input-dialog", true ); 887 QDialog dia ( mParent, "input-dialog", true );
889 QLineEdit lab ( &dia ); 888 QLineEdit lab ( &dia );
890 lab.setEchoMode( QLineEdit::Password ); 889 lab.setEchoMode( QLineEdit::Password );
891 QVBoxLayout lay( &dia ); 890 QVBoxLayout lay( &dia );
892 lay.setMargin(7); 891 lay.setMargin(7);
893 lay.setSpacing(7); 892 lay.setSpacing(7);
894 lay.addWidget( &lab); 893 lay.addWidget( &lab);
895 dia.setFixedSize( 230,50 ); 894 dia.setFixedSize( 230,50 );
896 dia.setCaption( i18n("Enter password") ); 895 dia.setCaption( i18n("Enter password") );
897 QPushButton pb ( "OK", &dia); 896 QPushButton pb ( "OK", &dia);
898 lay.addWidget( &pb ); 897 lay.addWidget( &pb );
899 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 898 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
900 dia.show(); 899 dia.show();
901 int res = dia.exec(); 900 int res = dia.exec();
902 if ( res ) 901 if ( res )
903 retfile = lab.text(); 902 retfile = lab.text();
904 dia.hide(); 903 dia.hide();
905 qApp->processEvents(); 904 qApp->processEvents();
906 return retfile; 905 return retfile;
907 906
908} 907}
909 908
910 909
911void KSyncManager::confSync() 910void KSyncManager::confSync()
912{ 911{
913 static KSyncPrefsDialog* sp = 0; 912 static KSyncPrefsDialog* sp = 0;
914 if ( ! sp ) { 913 if ( ! sp ) {
915 sp = new KSyncPrefsDialog( mParent, "syncprefs", true ); 914 sp = new KSyncPrefsDialog( mParent, "syncprefs", true );
916 } 915 }
917 sp->usrReadConfig(); 916 sp->usrReadConfig();
918#ifndef DESKTOP_VERSION 917#ifndef DESKTOP_VERSION
919 sp->showMaximized(); 918 sp->showMaximized();
920#else 919#else
921 sp->show(); 920 sp->show();
922#endif 921#endif
923 sp->exec(); 922 sp->exec();
924 QStringList oldSyncProfileNames = mSyncProfileNames; 923 QStringList oldSyncProfileNames = mSyncProfileNames;
925 mSyncProfileNames = sp->getSyncProfileNames(); 924 mSyncProfileNames = sp->getSyncProfileNames();
926 mLocalMachineName = sp->getLocalMachineName (); 925 mLocalMachineName = sp->getLocalMachineName ();
927 int ii; 926 uint ii;
928 for ( ii = 0; ii < oldSyncProfileNames.count(); ++ii ) { 927 for ( ii = 0; ii < oldSyncProfileNames.count(); ++ii ) {
929 if ( ! mSyncProfileNames.contains( oldSyncProfileNames[ii] ) ) 928 if ( ! mSyncProfileNames.contains( oldSyncProfileNames[ii] ) )
930 mImplementation->removeSyncInfo( oldSyncProfileNames[ii] ); 929 mImplementation->removeSyncInfo( oldSyncProfileNames[ii] );
931 } 930 }
932 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 931 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
933} 932}
934void KSyncManager::syncKDE() 933void KSyncManager::syncKDE()
935{ 934{
936 mSyncWithDesktop = true; 935 mSyncWithDesktop = true;
937 emit save(); 936 emit save();
938 switch(mTargetApp) 937 switch(mTargetApp)
939 { 938 {
940 case (KAPI): 939 case (KAPI):
941 { 940 {
942#ifdef DESKTOP_VERSION 941#ifdef DESKTOP_VERSION
943 QString command = "kdeabdump33"; 942 QString command = "kdeabdump33";
944 QString commandfile = "kdeabdump33"; 943 QString commandfile = "kdeabdump33";
945 QString commandpath = qApp->applicationDirPath () + "/"; 944 QString commandpath = qApp->applicationDirPath () + "/";
946#else 945#else
947 QString command = "kdeabdump33"; 946 QString command = "kdeabdump33";
948 QString commandfile = "kdeabdump33"; 947 QString commandfile = "kdeabdump33";
949 QString commandpath = QDir::homeDirPath ()+"/"; 948 QString commandpath = QDir::homeDirPath ()+"/";
950#endif 949#endif
951 if ( ! QFile::exists ( commandpath+commandfile ) ) 950 if ( ! QFile::exists ( commandpath+commandfile ) )
952 command = commandfile; 951 command = commandfile;
953 else 952 else
954 command = commandpath+commandfile; 953 command = commandpath+commandfile;
955 954
956 QString fileName = QDir::homeDirPath ()+"/.kdeaddressbookdump.vcf"; 955 QString fileName = QDir::homeDirPath ()+"/.kdeaddressbookdump.vcf";
957 int result = system ( command.latin1()); 956 int result = system ( command.latin1());
958 qDebug("AB dump 33 command call result: %d ", result); 957 qDebug("AB dump 33 command call result: %d ", result);
959 if ( result != 0 ) { 958 if ( result != 0 ) {
960 qDebug("Calling AB dump version 33 failed. Trying 34... "); 959 qDebug("Calling AB dump version 33 failed. Trying 34... ");
961 commandfile = "kdeabdump34"; 960 commandfile = "kdeabdump34";
962 if ( ! QFile::exists ( commandpath+commandfile ) ) 961 if ( ! QFile::exists ( commandpath+commandfile ) )
963 command = commandfile; 962 command = commandfile;
964 else 963 else
965 command = commandpath+commandfile; 964 command = commandpath+commandfile;
966 result = system ( command.latin1()); 965 result = system ( command.latin1());
967 qDebug("AB dump 34 command call result: %d ", result); 966 qDebug("AB dump 34 command call result: %d ", result);
968 if ( result != 0 ) { 967 if ( result != 0 ) {
969 KMessageBox::error( 0, i18n("Error accessing KDE addressbook data.\nMake sure the file\n%1kdeabdump3x\nexists ( x = 3 or 4 ).\nSupported KDE versions are 3.3 and 3.4.\nUsed version should be auto detected.\n").arg( commandpath )); 968 KMessageBox::error( 0, i18n("Error accessing KDE addressbook data.\nMake sure the file\n%1kdeabdump3x\nexists ( x = 3 or 4 ).\nSupported KDE versions are 3.3 and 3.4.\nUsed version should be auto detected.\n").arg( commandpath ));
970 return; 969 return;
971 } 970 }
972 } 971 }
973 if ( syncWithFile( fileName,true ) ) { 972 if ( syncWithFile( fileName,true ) ) {
974 if ( mWriteBackFile ) { 973 if ( mWriteBackFile ) {
975 command += " --read"; 974 command += " --read";
976 system ( command.latin1()); 975 system ( command.latin1());
977 } 976 }
978 } 977 }
979 978
980 } 979 }
981 break; 980 break;
982 case (KOPI): 981 case (KOPI):
983 { 982 {
984#ifdef DESKTOP_VERSION 983#ifdef DESKTOP_VERSION
985 QString command = "kdecaldump33"; 984 QString command = "kdecaldump33";
986 QString commandfile = "kdecaldump33"; 985 QString commandfile = "kdecaldump33";
987 QString commandpath = qApp->applicationDirPath () + "/"; 986 QString commandpath = qApp->applicationDirPath () + "/";
988#else 987#else
989 QString command = "kdecaldump33"; 988 QString command = "kdecaldump33";
990 QString commandfile = "kdecaldump33"; 989 QString commandfile = "kdecaldump33";
991 QString commandpath = QDir::homeDirPath ()+"/"; 990 QString commandpath = QDir::homeDirPath ()+"/";
992#endif 991#endif
993 if ( ! QFile::exists ( commandpath+commandfile ) ) 992 if ( ! QFile::exists ( commandpath+commandfile ) )
994 command = commandfile; 993 command = commandfile;
995 else 994 else
996 command = commandpath+commandfile; 995 command = commandpath+commandfile;
997 996
998 QString fileName = QDir::homeDirPath ()+"/.kdecalendardump.ics"; 997 QString fileName = QDir::homeDirPath ()+"/.kdecalendardump.ics";
999 int result = system ( command.latin1()); 998 int result = system ( command.latin1());
1000 qDebug("Cal dump 33 command call result result: %d ", result); 999 qDebug("Cal dump 33 command call result result: %d ", result);
1001 if ( result != 0 ) { 1000 if ( result != 0 ) {
1002 qDebug("Calling CAL dump version 33 failed. Trying 34... "); 1001 qDebug("Calling CAL dump version 33 failed. Trying 34... ");
1003 commandfile = "kdecaldump34"; 1002 commandfile = "kdecaldump34";
1004 if ( ! QFile::exists ( commandpath+commandfile ) ) 1003 if ( ! QFile::exists ( commandpath+commandfile ) )
1005 command = commandfile; 1004 command = commandfile;
1006 else 1005 else
1007 command = commandpath+commandfile; 1006 command = commandpath+commandfile;
1008 result = system ( command.latin1()); 1007 result = system ( command.latin1());
1009 qDebug("Cal dump 34 command call result result: %d ", result); 1008 qDebug("Cal dump 34 command call result result: %d ", result);
1010 if ( result != 0 ) { 1009 if ( result != 0 ) {
1011 KMessageBox::error( 0, i18n("Error accessing KDE calendar data.\nMake sure the file\n%1kdecaldump3x\nexists ( x = 3 or 4 ).\nSupported KDE versions are 3.3 and 3.4.\nUsed version should be auto detected.\n").arg( commandpath )); 1010 KMessageBox::error( 0, i18n("Error accessing KDE calendar data.\nMake sure the file\n%1kdecaldump3x\nexists ( x = 3 or 4 ).\nSupported KDE versions are 3.3 and 3.4.\nUsed version should be auto detected.\n").arg( commandpath ));
1012 return; 1011 return;
1013 } 1012 }
1014 } 1013 }
1015 if ( syncWithFile( fileName,true ) ) { 1014 if ( syncWithFile( fileName,true ) ) {
1016 if ( mWriteBackFile ) { 1015 if ( mWriteBackFile ) {
1017 command += " --read"; 1016 command += " --read";
1018 system ( command.latin1()); 1017 system ( command.latin1());
1019 } 1018 }
1020 } 1019 }
1021 1020
1022 } 1021 }
1023 break; 1022 break;
1024 case (PWMPI): 1023 case (PWMPI):
1025 1024
1026 break; 1025 break;
1027 default: 1026 default:
1028 qDebug("KSM::slotSyncMenu: invalid apptype selected"); 1027 qDebug("KSM::slotSyncMenu: invalid apptype selected");
1029 break; 1028 break;
1030 1029
1031 } 1030 }
1032} 1031}
1033 1032
1034void KSyncManager::syncSharp() 1033void KSyncManager::syncSharp()
1035{ 1034{
1036 1035
1037 if ( ! syncExternalApplication("sharp") ) 1036 if ( ! syncExternalApplication("sharp") )
1038 qDebug("KSM::ERROR sync sharp "); 1037 qDebug("KSM::ERROR sync sharp ");
1039} 1038}
1040 1039
1041bool KSyncManager::syncExternalApplication(QString resource) 1040bool KSyncManager::syncExternalApplication(QString resource)
1042{ 1041{
1043 1042
1044 emit save(); 1043 emit save();
1045 1044
1046 if ( mAskForPreferences ) 1045 if ( mAskForPreferences )
1047 if ( !edit_sync_options()) { 1046 if ( !edit_sync_options()) {
1048 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); 1047 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
1049 return false; 1048 return false;
1050 } 1049 }
1051 1050
1052 qDebug("KSM::Sync extern %s", resource.latin1()); 1051 qDebug("KSM::Sync extern %s", resource.latin1());
1053 1052
1054 bool syncOK = mImplementation->syncExternal(this, resource); 1053 bool syncOK = mImplementation->syncExternal(this, resource);
1055 1054
1056 return syncOK; 1055 return syncOK;
1057 1056
1058} 1057}
1059 1058
1060void KSyncManager::syncPhone() 1059void KSyncManager::syncPhone()
1061{ 1060{
1062 1061
1063 syncExternalApplication("phone"); 1062 syncExternalApplication("phone");
1064 1063
1065} 1064}
1066 1065
1067void KSyncManager::showProgressBar(int percentage, QString caption, int total) 1066void KSyncManager::showProgressBar(int percentage, QString caption, int total)
1068{ 1067{
1069 if (!bar->isVisible()) 1068 if (!bar->isVisible())
1070 { 1069 {
1071 int w = 300; 1070 int w = 300;
1072 if ( QApplication::desktop()->width() < 320 ) 1071 if ( QApplication::desktop()->width() < 320 )
1073 w = 220; 1072 w = 220;
1074 int h = bar->sizeHint().height() ; 1073 int h = bar->sizeHint().height() ;
1075 int dw = QApplication::desktop()->width(); 1074 int dw = QApplication::desktop()->width();
1076 int dh = QApplication::desktop()->height(); 1075 int dh = QApplication::desktop()->height();
1077 bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1076 bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1078 bar->setCaption (caption); 1077 bar->setCaption (caption);
1079 bar->setTotalSteps ( total ) ; 1078 bar->setTotalSteps ( total ) ;
1080 bar->show(); 1079 bar->show();
1081 } 1080 }
1082 bar->raise(); 1081 bar->raise();
1083 bar->setProgress( percentage ); 1082 bar->setProgress( percentage );
1084 qApp->processEvents(); 1083 qApp->processEvents();
1085} 1084}
1086 1085
1087void KSyncManager::hideProgressBar() 1086void KSyncManager::hideProgressBar()
1088{ 1087{
1089 bar->hide(); 1088 bar->hide();
1090 qApp->processEvents(); 1089 qApp->processEvents();
1091} 1090}
1092 1091
1093bool KSyncManager::isProgressBarCanceled() 1092bool KSyncManager::isProgressBarCanceled()
1094{ 1093{
1095 return !bar->isVisible(); 1094 return !bar->isVisible();
1096} 1095}
1097 1096
1098QString KSyncManager::syncFileName() 1097QString KSyncManager::syncFileName()
1099{ 1098{
1100 1099
1101 QString fn = "tempfile"; 1100 QString fn = "tempfile";
1102 switch(mTargetApp) 1101 switch(mTargetApp)
1103 { 1102 {
1104 case (KAPI): 1103 case (KAPI):
1105 fn = "tempsyncab.vcf"; 1104 fn = "tempsyncab.vcf";
1106 break; 1105 break;
1107 case (KOPI): 1106 case (KOPI):
1108 fn = "tempsynccal.ics"; 1107 fn = "tempsynccal.ics";
1109 break; 1108 break;
1110 case (PWMPI): 1109 case (PWMPI):
1111 fn = "tempsyncpw.pwm"; 1110 fn = "tempsyncpw.pwm";
1112 break; 1111 break;
1113 default: 1112 default:
1114 break; 1113 break;
1115 } 1114 }
1116#ifdef DESKTOP_VERSION 1115#ifdef DESKTOP_VERSION
1117 return locateLocal( "tmp", fn ); 1116 return locateLocal( "tmp", fn );
1118#else 1117#else
1119 return (QString( "/tmp/" )+ fn ); 1118 return (QString( "/tmp/" )+ fn );
1120#endif 1119#endif
1121} 1120}
1122 1121
1123void KSyncManager::syncPi() 1122void KSyncManager::syncPi()
1124{ 1123{
1125 mIsKapiFile = true; 1124 mIsKapiFile = true;
1126 mPisyncFinished = false; 1125 mPisyncFinished = false;
1127 qApp->processEvents(); 1126 qApp->processEvents();
1128 if ( mAskForPreferences ) 1127 if ( mAskForPreferences )
1129 if ( !edit_pisync_options()) { 1128 if ( !edit_pisync_options()) {
1130 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); 1129 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
1131 mPisyncFinished = true; 1130 mPisyncFinished = true;
1132 return; 1131 return;
1133 } 1132 }
1134 bool ok; 1133 bool ok;
1135 Q_UINT16 port = mActiveSyncPort.toUInt(&ok); 1134 Q_UINT16 port = mActiveSyncPort.toUInt(&ok);
1136 if ( ! ok ) { 1135 if ( ! ok ) {
1137 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); 1136 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
1138 mPisyncFinished = true; 1137 mPisyncFinished = true;
1139 return; 1138 return;
1140 } 1139 }
1141 mCurrentResourceLocal = ""; 1140 mCurrentResourceLocal = "";
1142 mCurrentResourceRemote = ""; 1141 mCurrentResourceRemote = "";
1143 if ( mSpecificResources.count() ) { 1142 if ( mSpecificResources.count() ) {
1144 int lastSyncRes = mSpecificResources.count()/2; 1143 uint lastSyncRes = mSpecificResources.count()/2;
1145 int ccc = mSpecificResources.count()-1; 1144 int ccc = mSpecificResources.count()-1;
1146 while ( lastSyncRes > 0 && ccc > 0 && mSpecificResources[ ccc ].isEmpty() ) { 1145 while ( lastSyncRes > 0 && ccc > 0 && mSpecificResources[ ccc ].isEmpty() ) {
1147 --ccc; 1146 --ccc;
1148 --lastSyncRes; 1147 --lastSyncRes;
1149 //qDebug ( "KSM: sync pi %d",ccc ); 1148 //qDebug ( "KSM: sync pi %d",ccc );
1150 } 1149 }
1151 int startLocal = 0; 1150 uint startLocal = 0;
1152 int startRemote = mSpecificResources.count()/2; 1151 uint startRemote = mSpecificResources.count()/2;
1153 emit multiResourceSyncStart( true ); 1152 emit multiResourceSyncStart( true );
1154 while ( startLocal < mSpecificResources.count()/2 ) { 1153 while ( startLocal < mSpecificResources.count()/2 ) {
1155 if ( startLocal+1 >= lastSyncRes ) 1154 if ( startLocal+1 >= lastSyncRes )
1156 emit multiResourceSyncStart( false ); 1155 emit multiResourceSyncStart( false );
1157 mPisyncFinished = false; 1156 mPisyncFinished = false;
1158 mCurrentResourceLocal = mSpecificResources[ startLocal ]; 1157 mCurrentResourceLocal = mSpecificResources[ startLocal ];
1159 mCurrentResourceRemote = mSpecificResources[ startRemote ]; 1158 mCurrentResourceRemote = mSpecificResources[ startRemote ];
1160 //qDebug ( "KSM: AAASyncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() ); 1159 //qDebug ( "KSM: AAASyncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() );
1161 if ( !mCurrentResourceRemote.isEmpty() ) { 1160 if ( !mCurrentResourceRemote.isEmpty() ) {
1162 qDebug ( "KSM: Syncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() ); 1161 qDebug ( "KSM: Syncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() );
1163 1162
1164 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote, mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); 1163 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote, mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() );
1165 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1164 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1166 commandSocket->readFile( syncFileName() ); 1165 commandSocket->readFile( syncFileName() );
1167 mParent->topLevelWidget()->setCaption( i18n("Syncing %1 <-> %2").arg( mCurrentResourceLocal ).arg( mCurrentResourceRemote ) ); 1166 mParent->topLevelWidget()->setCaption( i18n("Syncing %1 <-> %2").arg( mCurrentResourceLocal ).arg( mCurrentResourceRemote ) );
1168 while ( !mPisyncFinished ) { 1167 while ( !mPisyncFinished ) {
1169 //qDebug("waiting "); 1168 //qDebug("waiting ");
1170 qApp->processEvents(); 1169 qApp->processEvents();
1171 } 1170 }
1172 if ( startLocal+1 < mSpecificResources.count()/2 ) { 1171 if ( startLocal+1 < mSpecificResources.count()/2 ) {
1173 mParent->topLevelWidget()->setCaption( i18n("Waiting 2 secs before syncing next resource...") ); 1172 mParent->topLevelWidget()->setCaption( i18n("Waiting 2 secs before syncing next resource...") );
1174 QTime timer; 1173 QTime timer;
1175 timer.start(); 1174 timer.start();
1176 while ( timer.elapsed () < 2000 ) { 1175 while ( timer.elapsed () < 2000 ) {
1177 qApp->processEvents(); 1176 qApp->processEvents();
1178 } 1177 }
1179 } 1178 }
1180 } 1179 }
1181 ++startRemote; 1180 ++startRemote;
1182 ++startLocal; 1181 ++startLocal;
1183 mAskForPreferences = false; 1182 mAskForPreferences = false;
1184 } 1183 }
1185 mPisyncFinished = true; 1184 mPisyncFinished = true;
1186 } else { 1185 } else {
1187 KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); 1186 KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() );
1188 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1187 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1189 commandSocket->readFile( syncFileName() ); 1188 commandSocket->readFile( syncFileName() );
1190 } 1189 }
1191} 1190}
1192 1191
1193void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) 1192void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state)
1194{ 1193{
1195 //enum { success, errorW, errorR, quiet }; 1194 //enum { success, errorW, errorR, quiet };
1196 1195
1197 1196
1198 1197
1199 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW || 1198 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW ||
1200 state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN||state == KCommandSocket::errorED ) { 1199 state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN||state == KCommandSocket::errorED ) {
1201 if ( state == KCommandSocket::errorPW ) 1200 if ( state == KCommandSocket::errorPW )
1202 mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") ); 1201 mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") );
1203 else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) 1202 else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO )
1204 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); 1203 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") );
1205 else if ( state == KCommandSocket::errorCA ) 1204 else if ( state == KCommandSocket::errorCA )
1206 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") ); 1205 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") );
1207 else if ( state == KCommandSocket::errorFI ) 1206 else if ( state == KCommandSocket::errorFI )
1208 mParent->topLevelWidget()->setCaption( i18n("File error on remote.") ); 1207 mParent->topLevelWidget()->setCaption( i18n("File error on remote.") );
1209 else if ( state == KCommandSocket::errorED ) 1208 else if ( state == KCommandSocket::errorED )
1210 mParent->topLevelWidget()->setCaption( i18n("Please close error dialog on remote.") ); 1209 mParent->topLevelWidget()->setCaption( i18n("Please close error dialog on remote.") );
1211 else if ( state == KCommandSocket::errorUN ) 1210 else if ( state == KCommandSocket::errorUN )
1212 mParent->topLevelWidget()->setCaption( i18n("Unknown error on remote.") ); 1211 mParent->topLevelWidget()->setCaption( i18n("Unknown error on remote.") );
1213 delete s; 1212 delete s;
1214 if ( state == KCommandSocket::errorR ) { 1213 if ( state == KCommandSocket::errorR ) {
1215 KCommandSocket* commandSocket = new KCommandSocket( "",mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget()); 1214 KCommandSocket* commandSocket = new KCommandSocket( "",mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget());
1216 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 1215 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
1217 commandSocket->sendStop(); 1216 commandSocket->sendStop();
1218 } 1217 }
1219 mPisyncFinished = true; 1218 mPisyncFinished = true;
1220 return; 1219 return;
1221 1220
1222 } else if ( state == KCommandSocket::errorW ) { 1221 } else if ( state == KCommandSocket::errorW ) {
1223 mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") ); 1222 mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") );
1224 mPisyncFinished = true; 1223 mPisyncFinished = true;
1225 1224
1226 } else if ( state == KCommandSocket::successR ) { 1225 } else if ( state == KCommandSocket::successR ) {
1227 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); 1226 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket()));
1228 1227
1229 } else if ( state == KCommandSocket::successW ) { 1228 } else if ( state == KCommandSocket::successW ) {
1230 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync successful!") ); 1229 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync successful!") );
1231 mPisyncFinished = true; 1230 mPisyncFinished = true;
1232 } else if ( state == KCommandSocket::quiet ){ 1231 } else if ( state == KCommandSocket::quiet ){
1233 qDebug("KSS: quiet "); 1232 qDebug("KSS: quiet ");
1234 mPisyncFinished = true; 1233 mPisyncFinished = true;
1235 } else { 1234 } else {
1236 qDebug("KSS: Error: unknown state: %d ", state); 1235 qDebug("KSS: Error: unknown state: %d ", state);
1237 mPisyncFinished = true; 1236 mPisyncFinished = true;
1238 } 1237 }
1239 1238
1240 delete s; 1239 delete s;
1241} 1240}
1242 1241
1243void KSyncManager::readFileFromSocket() 1242void KSyncManager::readFileFromSocket()
1244{ 1243{
1245 QString fileName = syncFileName(); 1244 QString fileName = syncFileName();
1246 bool syncOK = true; 1245 bool syncOK = true;
1247 mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") ); 1246 mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") );
1248 if ( ! syncWithFile( fileName , true ) ) { 1247 if ( ! syncWithFile( fileName , true ) ) {
1249 mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") ); 1248 mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") );
1250 syncOK = false; 1249 syncOK = false;
1251 } 1250 }
1252 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote,mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget() ); 1251 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote,mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget() );
1253 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 1252 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
1254 if ( mWriteBackFile && syncOK ) { 1253 if ( mWriteBackFile && syncOK ) {
1255 mParent->topLevelWidget()->setCaption( i18n("Sending back file ...") ); 1254 mParent->topLevelWidget()->setCaption( i18n("Sending back file ...") );
1256 commandSocket->writeFile( fileName ); 1255 commandSocket->writeFile( fileName );
1257 } 1256 }
1258 else { 1257 else {
1259 commandSocket->sendStop(); 1258 commandSocket->sendStop();
1260 if ( syncOK ) 1259 if ( syncOK )
1261 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); 1260 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") );
1262 mPisyncFinished = true; 1261 mPisyncFinished = true;
1263 } 1262 }
1264} 1263}
1265 1264
1266KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) 1265KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name )
1267{ 1266{
1268 mPendingConnect = 0; 1267 mPendingConnect = 0;
1269 mPassWord = pw; 1268 mPassWord = pw;
1270 mSocket = 0; 1269 mSocket = 0;
1271 mSyncActionDialog = 0; 1270 mSyncActionDialog = 0;
1272 blockRC = false; 1271 blockRC = false;
1273 mErrorMessage = 0; 1272 mErrorMessage = 0;
1274} 1273}
1275void KServerSocket::waitForSocketFinish() 1274void KServerSocket::waitForSocketFinish()
1276{ 1275{
1277 if ( mSocket ) { 1276 if ( mSocket ) {
1278 //qDebug("KSS:: waiting for finish operation"); 1277 //qDebug("KSS:: waiting for finish operation");
1279 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish())); 1278 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish()));
1280 return; 1279 return;
1281 } 1280 }
1282 mSocket = new QSocket( this ); 1281 mSocket = new QSocket( this );
1283 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) ); 1282 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) );
1284 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); 1283 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
1285 mSocket->setSocket( mPendingConnect ); 1284 mSocket->setSocket( mPendingConnect );
1286 mPendingConnect = 0; 1285 mPendingConnect = 0;
1287} 1286}
1288void KServerSocket::newConnection ( int socket ) 1287void KServerSocket::newConnection ( int socket )
1289{ 1288{
1290 // qDebug("KServerSocket:New connection %d ", socket); 1289 // qDebug("KServerSocket:New connection %d ", socket);
1291 if ( mPendingConnect ) { 1290 if ( mPendingConnect ) {
1292 qDebug("KSS::Error : new Connection"); 1291 qDebug("KSS::Error : new Connection");
1293 return; 1292 return;
1294 } 1293 }
1295 if ( mSocket ) { 1294 if ( mSocket ) {
1296 mPendingConnect = socket; 1295 mPendingConnect = socket;
1297 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish())); 1296 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish()));
1298 return; 1297 return;
1299 qDebug("KSS::newConnection Socket deleted! "); 1298 qDebug("KSS::newConnection Socket deleted! ");
1300 delete mSocket; 1299 delete mSocket;
1301 mSocket = 0; 1300 mSocket = 0;
1302 } 1301 }
1303 mPendingConnect = 0; 1302 mPendingConnect = 0;
1304 mSocket = new QSocket( this ); 1303 mSocket = new QSocket( this );
1305 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) ); 1304 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) );
1306 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); 1305 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
1307 mSocket->setSocket( socket ); 1306 mSocket->setSocket( socket );
1308} 1307}
1309 1308
1310void KServerSocket::discardClient() 1309void KServerSocket::discardClient()
1311{ 1310{
1312 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1311 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1313} 1312}
1314void KServerSocket::deleteSocket() 1313void KServerSocket::deleteSocket()
1315{ 1314{
1316 qDebug("KSS::deleteSocket"); 1315 qDebug("KSS::deleteSocket");
1317 if ( mSocket ) { 1316 if ( mSocket ) {
1318 delete mSocket; 1317 delete mSocket;
1319 mSocket = 0; 1318 mSocket = 0;
1320 } 1319 }
1321 if ( mErrorMessage ) 1320 if ( mErrorMessage )
1322 QTimer::singleShot( 10, this , SLOT ( displayErrorMessage())); 1321 QTimer::singleShot( 10, this , SLOT ( displayErrorMessage()));
1323} 1322}
1324void KServerSocket::readClient() 1323void KServerSocket::readClient()
1325{ 1324{
1326 if ( blockRC ) 1325 if ( blockRC )
1327 return; 1326 return;
1328 if ( mSocket == 0 ) { 1327 if ( mSocket == 0 ) {
1329 qDebug("ERROR::KSS::readClient(): mSocket == 0 "); 1328 qDebug("ERROR::KSS::readClient(): mSocket == 0 ");
1330 return; 1329 return;
1331 } 1330 }
1332 if ( mErrorMessage ) { 1331 if ( mErrorMessage ) {
1333 mErrorMessage = 999; 1332 mErrorMessage = 999;
1334 error_connect("ERROR_ED\r\n\r\n"); 1333 error_connect("ERROR_ED\r\n\r\n");
1335 return; 1334 return;
1336 } 1335 }
1337 mResource = ""; 1336 mResource = "";
1338 mErrorMessage = 0; 1337 mErrorMessage = 0;
1339 //qDebug("KServerSocket::readClient()"); 1338 //qDebug("KServerSocket::readClient()");
1340 if ( mSocket->canReadLine() ) { 1339 if ( mSocket->canReadLine() ) {
1341 QString line = mSocket->readLine(); 1340 QString line = mSocket->readLine();
1342 //qDebug("KServerSocket readline: %s ", line.latin1()); 1341 //qDebug("KServerSocket readline: %s ", line.latin1());
1343 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line ); 1342 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line );
1344 if ( tokens[0] == "GET" ) { 1343 if ( tokens[0] == "GET" ) {
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h
index 604adb8..04cdade 100644
--- a/libkdepim/ksyncmanager.h
+++ b/libkdepim/ksyncmanager.h
@@ -46,204 +46,204 @@ class KServerSocket : public QServerSocket
46 Q_OBJECT 46 Q_OBJECT
47 47
48 public: 48 public:
49 KServerSocket ( QString password, Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 ); 49 KServerSocket ( QString password, Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 );
50 50
51 void newConnection ( int socket ) ; 51 void newConnection ( int socket ) ;
52 void setFileName( QString fn ) {mFileName = fn;}; 52 void setFileName( QString fn ) {mFileName = fn;};
53 signals: 53 signals:
54 void file_received( bool ); 54 void file_received( bool );
55 void request_file(); 55 void request_file();
56 void file_received( bool, const QString &); 56 void file_received( bool, const QString &);
57 void request_file(const QString &); 57 void request_file(const QString &);
58 void saveFile(); 58 void saveFile();
59 void endConnect(); 59 void endConnect();
60 private slots: 60 private slots:
61 void waitForSocketFinish(); 61 void waitForSocketFinish();
62 void discardClient(); 62 void discardClient();
63 void deleteSocket(); 63 void deleteSocket();
64 void readClient(); 64 void readClient();
65 void displayErrorMessage(); 65 void displayErrorMessage();
66 void readBackFileFromSocket(); 66 void readBackFileFromSocket();
67 private : 67 private :
68 int mPendingConnect; 68 int mPendingConnect;
69 QString mResource; 69 QString mResource;
70 int mErrorMessage; 70 int mErrorMessage;
71 bool blockRC; 71 bool blockRC;
72 void send_file(); 72 void send_file();
73 void get_file(); 73 void get_file();
74 void end_connect(); 74 void end_connect();
75 void error_connect( QString ); 75 void error_connect( QString );
76 QDialog* mSyncActionDialog; 76 QDialog* mSyncActionDialog;
77 QSocket* mSocket; 77 QSocket* mSocket;
78 QString mPassWord; 78 QString mPassWord;
79 QString mFileName; 79 QString mFileName;
80 QTime piTime; 80 QTime piTime;
81 QString piFileString; 81 QString piFileString;
82}; 82};
83 83
84class KCommandSocket : public QObject 84class KCommandSocket : public QObject
85{ 85{
86 Q_OBJECT 86 Q_OBJECT
87 public: 87 public:
88 enum state { successR, errorR, successW, errorW, errorTO, errorPW, errorCA, errorFI, errorUN, errorED,quiet }; 88 enum state { successR, errorR, successW, errorW, errorTO, errorPW, errorCA, errorFI, errorUN, errorED,quiet };
89 KCommandSocket (QString remoteResource, QString password, Q_UINT16 port, QString host, QObject * parent=0, QWidget* cap = 0, const char * name=0 ); 89 KCommandSocket (QString remoteResource, QString password, Q_UINT16 port, QString host, QObject * parent=0, QWidget* cap = 0, const char * name=0 );
90 void readFile( QString ); 90 void readFile( QString );
91 void writeFile( QString ); 91 void writeFile( QString );
92 void sendStop(); 92 void sendStop();
93 93
94 private slots : 94 private slots :
95 void sendFileRequest(); 95 void sendFileRequest();
96 void updateConnectDialog(); 96 void updateConnectDialog();
97 97
98 signals: 98 signals:
99 void commandFinished( KCommandSocket*, int ); 99 void commandFinished( KCommandSocket*, int );
100 private slots: 100 private slots:
101 void startReadFileFromSocket(); 101 void startReadFileFromSocket();
102 void readFileFromSocket(); 102 void readFileFromSocket();
103 void deleteSocket(); 103 void deleteSocket();
104 void writeFileToSocket(); 104 void writeFileToSocket();
105 private : 105 private :
106 QString mRemoteResource; 106 QString mRemoteResource;
107 int mConnectCount; 107 int mConnectCount;
108 int mConnectMax; 108 int mConnectMax;
109 KProgressDialog mConnectProgress; 109 KProgressDialog mConnectProgress;
110 QWidget* tlw; 110 QWidget* tlw;
111 QSocket* mSocket; 111 QSocket* mSocket;
112 QString mPassWord; 112 QString mPassWord;
113 Q_UINT16 mPort; 113 Q_UINT16 mPort;
114 QString mHost; 114 QString mHost;
115 QString mFileName; 115 QString mFileName;
116 QTimer* mTimerSocket; 116 QTimer* mTimerSocket;
117 int mRetVal; 117 int mRetVal;
118 QTime mTime; 118 QTime mTime;
119 QString mFileString; 119 QString mFileString;
120 bool mFirst; 120 bool mFirst;
121 bool mFirstLine; 121 bool mFirstLine;
122}; 122};
123 123
124 124
125class KSyncManager : public QObject 125class KSyncManager : public QObject
126{ 126{
127 Q_OBJECT 127 Q_OBJECT
128 128
129 public: 129 public:
130 enum TargetApp { 130 enum TargetApp {
131 KOPI = 0, 131 KOPI = 0,
132 KAPI = 1, 132 KAPI = 1,
133 PWMPI = 2 }; 133 PWMPI = 2 };
134 134
135 KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu); 135 KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu);
136 ~KSyncManager() ; 136 ~KSyncManager() ;
137 137
138 void multiSync( bool askforPrefs ); 138 void multiSync( bool askforPrefs );
139 bool blockSave() { return mBlockSaveFlag; } 139 bool blockSave() { return mBlockSaveFlag; }
140 void setBlockSave(bool sa) { mBlockSaveFlag = sa; } 140 void setBlockSave(bool sa) { mBlockSaveFlag = sa; }
141 void setDefaultFileName( QString s) ; 141 void setDefaultFileName( QString s) ;
142 QString defaultFileName() { return mDefFileName ;} 142 QString defaultFileName() { return mDefFileName ;}
143 QString syncFileName(); 143 QString syncFileName();
144 void enableQuick( bool ask = true); 144 void enableQuick( bool ask = true);
145 145
146 bool syncWithDesktop () { return mSyncWithDesktop;} 146 bool syncWithDesktop () { return mSyncWithDesktop;}
147 QString getCurrentSyncDevice() { return mCurrentSyncDevice; } 147 QString getCurrentSyncDevice() { return mCurrentSyncDevice; }
148 QString getCurrentSyncName() { return mCurrentSyncName; } 148 QString getCurrentSyncName() { return mCurrentSyncName; }
149 149
150 void showProgressBar(int percentage, QString caption = QString::null, int total=100); 150 void showProgressBar(int percentage, QString caption = QString::null, int total=100);
151 void hideProgressBar(); 151 void hideProgressBar();
152 bool isProgressBarCanceled(); 152 bool isProgressBarCanceled();
153 153
154 // sync stuff 154 // sync stuff
155 QString mLocalMachineName; 155 QString mLocalMachineName;
156 QStringList mExternSyncProfiles; 156 QStringList mExternSyncProfiles;
157 QStringList mSyncProfileNames; 157 QStringList mSyncProfileNames;
158 bool mAskForPreferences; 158 bool mAskForPreferences;
159 bool mShowSyncSummary; 159 bool mShowSyncSummary;
160 bool mIsKapiFile; 160 bool mIsKapiFile;
161 bool mWriteBackExistingOnly; 161 bool mWriteBackExistingOnly;
162 int mSyncAlgoPrefs; 162 int mSyncAlgoPrefs;
163 bool mWriteBackFile; 163 bool mWriteBackFile;
164 int mWriteBackInFuture; 164 int mWriteBackInFuture;
165 int mWriteBackInPast; 165 int mWriteBackInPast;
166 QString mPhoneDevice; 166 QString mPhoneDevice;
167 QString mPhoneConnection; 167 QString mPhoneConnection;
168 QString mPhoneModel; 168 QString mPhoneModel;
169 QString mPassWordPiSync; 169 QString mPassWordPiSync;
170 QString mActiveSyncPort; 170 QString mActiveSyncPort;
171 QString mActiveSyncIP ; 171 QString mActiveSyncIP ;
172 QString mFilterInCal; 172 QString mFilterInCal;
173 QString mFilterOutCal; 173 QString mFilterOutCal;
174 QString mFilterInAB; 174 QString mFilterInAB;
175 QString mFilterOutAB; 175 QString mFilterOutAB;
176 static QDateTime mRequestedSyncEvent; 176 static QDateTime mRequestedSyncEvent;
177 177
178 signals: 178 signals:
179 void save(); 179 void save();
180 void request_file(); 180 void request_file();
181 void getFile( bool ); 181 void getFile( bool );
182 void getFile( bool, const QString &); 182 void getFile( bool, const QString &);
183 void request_file(const QString &); 183 void request_file(const QString &);
184 void multiResourceSyncStart( bool ); 184 void multiResourceSyncStart( bool );
185 185
186 public slots: 186 public slots:
187 void slotSyncMenu( int ); 187 void slotSyncMenu( int );
188 void slotClearMenu( int action ); 188 void slotClearMenu( int action );
189 void deleteCommandSocket(KCommandSocket*s, int state); 189 void deleteCommandSocket(KCommandSocket*s, int state);
190 void readFileFromSocket(); 190 void readFileFromSocket();
191 void fillSyncMenu(); 191 void fillSyncMenu();
192 192
193 private: 193 private:
194 void syncPi(); 194 void syncPi();
195 KServerSocket * mServerSocket; 195 KServerSocket * mServerSocket;
196 KPimPrefs* mPrefs; 196 KPimPrefs* mPrefs;
197 QString mDefFileName; 197 QString mDefFileName;
198 QString mCurrentSyncDevice; 198 QString mCurrentSyncDevice;
199 QString mCurrentSyncName; 199 QString mCurrentSyncName;
200 void quickSyncLocalFile(); 200 void quickSyncLocalFile();
201 bool syncWithFile( QString fn , bool quick ); 201 bool syncWithFile( QString fn , bool quick );
202 void syncLocalFile(); 202 void syncLocalFile();
203 void syncPhone(); 203 void syncPhone();
204 void syncSharp(); 204 void syncSharp();
205 void syncKDE(); 205 void syncKDE();
206 bool syncExternalApplication(QString); 206 bool syncExternalApplication(QString);
207 int mCurrentSyncProfile ; 207 int mCurrentSyncProfile ;
208 void syncRemote( KSyncProfile* prof, bool ask = true); 208 void syncRemote( KSyncProfile* prof, bool ask = true);
209 bool edit_sync_options(); 209 bool edit_sync_options();
210 bool edit_pisync_options(); 210 bool edit_pisync_options();
211 int ringSync(); 211 int ringSync();
212 QString getPassword( ); 212 QString getPassword( );
213 bool mPisyncFinished; 213 bool mPisyncFinished;
214 QStringList mSpecificResources; 214 QStringList mSpecificResources;
215 QString mCurrentResourceLocal; 215 QString mCurrentResourceLocal;
216 QString mCurrentResourceRemote; 216 QString mCurrentResourceRemote;
217 bool mBlockSaveFlag; 217 bool mBlockSaveFlag;
218 QWidget* mParent; 218 QWidget* mParent;
219 KSyncInterface* mImplementation; 219 KSyncInterface* mImplementation;
220 TargetApp mTargetApp; 220 TargetApp mTargetApp;
221 QPopupMenu* mSyncMenu; 221 QPopupMenu* mSyncMenu;
222 QProgressBar* bar; 222 QProgressBar* bar;
223 bool mSyncWithDesktop; 223 bool mSyncWithDesktop;
224 224
225private slots: 225private slots:
226 void displayErrorPort(); 226 void displayErrorPort();
227 void confSync(); 227 void confSync();
228 228
229 229
230}; 230};
231 231
232 232
233class KSyncInterface 233class KSyncInterface
234{ 234{
235 public : 235 public :
236 virtual void removeSyncInfo( QString syncProfile) = 0; 236 virtual void removeSyncInfo( QString syncProfile) = 0;
237 virtual bool sync(KSyncManager* manager, QString filename, int mode, QString resource) = 0; 237 virtual bool sync(KSyncManager* manager, QString filename, int mode, QString resource) = 0;
238 virtual bool syncExternal(KSyncManager* manager, QString resource) 238 virtual bool syncExternal(KSyncManager* /*manager*/, QString /*resource*/)
239 { 239 {
240 // empty implementation, because some syncable applications do not 240 // empty implementation, because some syncable applications do not
241 // have an external(sharpdtm) syncmode, like pwmanager. 241 // have an external(sharpdtm) syncmode, like pwmanager.
242 return false; 242 return false;
243 } 243 }
244 244
245 245
246}; 246};
247 247
248 248
249#endif 249#endif