-rw-r--r-- | libkdepim/ksyncmanager.cpp | 71 |
1 files changed, 69 insertions, 2 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp index b7929ec..5708dfc 100644 --- a/libkdepim/ksyncmanager.cpp +++ b/libkdepim/ksyncmanager.cpp | |||
@@ -51,160 +51,160 @@ | |||
51 | #include <qcheckbox.h> | 51 | #include <qcheckbox.h> |
52 | #include <qapplication.h> | 52 | #include <qapplication.h> |
53 | 53 | ||
54 | #include <klocale.h> | 54 | #include <klocale.h> |
55 | #include <kglobal.h> | 55 | #include <kglobal.h> |
56 | #include <kconfig.h> | 56 | #include <kconfig.h> |
57 | #include <kfiledialog.h> | 57 | #include <kfiledialog.h> |
58 | 58 | ||
59 | QDateTime KSyncManager::mRequestedSyncEvent; | 59 | QDateTime KSyncManager::mRequestedSyncEvent; |
60 | 60 | ||
61 | 61 | ||
62 | KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu) | 62 | KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu) |
63 | : QObject(), mPrefs(prefs ), mParent(parent),mImplementation(implementation), mTargetApp(ta), mSyncMenu(syncmenu) | 63 | : QObject(), mPrefs(prefs ), mParent(parent),mImplementation(implementation), mTargetApp(ta), mSyncMenu(syncmenu) |
64 | { | 64 | { |
65 | mServerSocket = 0; | 65 | mServerSocket = 0; |
66 | bar = new QProgressBar ( 1, 0 ); | 66 | bar = new QProgressBar ( 1, 0 ); |
67 | bar->setCaption (""); | 67 | bar->setCaption (""); |
68 | mWriteBackInPast = 2; | 68 | mWriteBackInPast = 2; |
69 | 69 | ||
70 | 70 | ||
71 | } | 71 | } |
72 | 72 | ||
73 | KSyncManager::~KSyncManager() | 73 | KSyncManager::~KSyncManager() |
74 | { | 74 | { |
75 | delete bar; | 75 | delete bar; |
76 | } | 76 | } |
77 | 77 | ||
78 | void KSyncManager::setDefaultFileName( QString s) | 78 | void KSyncManager::setDefaultFileName( QString s) |
79 | { | 79 | { |
80 | mDefFileName = s ; | 80 | mDefFileName = s ; |
81 | if ( mPrefs->mPassiveSyncAutoStart ) | 81 | if ( mPrefs->mPassiveSyncAutoStart ) |
82 | enableQuick( false ); | 82 | enableQuick( false ); |
83 | } | 83 | } |
84 | 84 | ||
85 | void KSyncManager::fillSyncMenu() | 85 | void KSyncManager::fillSyncMenu() |
86 | { | 86 | { |
87 | if ( mSyncMenu->count() ) | 87 | if ( mSyncMenu->count() ) |
88 | mSyncMenu->clear(); | 88 | mSyncMenu->clear(); |
89 | 89 | ||
90 | mSyncMenu->insertItem( i18n("Configure..."), 0 ); | 90 | mSyncMenu->insertItem( i18n("Configure..."), 0 ); |
91 | mSyncMenu->insertSeparator(); | 91 | mSyncMenu->insertSeparator(); |
92 | QPopupMenu *clearMenu = new QPopupMenu ( mSyncMenu ); | 92 | QPopupMenu *clearMenu = new QPopupMenu ( mSyncMenu ); |
93 | mSyncMenu->insertItem( i18n("Remove sync info"),clearMenu, 5000 ); | 93 | mSyncMenu->insertItem( i18n("Remove sync info"),clearMenu, 5000 ); |
94 | clearMenu->insertItem( i18n("For all profiles"), 1 ); | 94 | clearMenu->insertItem( i18n("For all profiles"), 1 ); |
95 | clearMenu->insertSeparator(); | 95 | clearMenu->insertSeparator(); |
96 | connect ( clearMenu, SIGNAL( activated ( int ) ), this, SLOT (slotClearMenu( int ) ) ); | 96 | connect ( clearMenu, SIGNAL( activated ( int ) ), this, SLOT (slotClearMenu( int ) ) ); |
97 | mSyncMenu->insertSeparator(); | 97 | mSyncMenu->insertSeparator(); |
98 | if ( mServerSocket == 0 ) { | 98 | if ( mServerSocket == 0 ) { |
99 | mSyncMenu->insertItem( i18n("Enable Pi-Sync"), 2 ); | 99 | mSyncMenu->insertItem( i18n("Enable Pi-Sync"), 2 ); |
100 | } else { | 100 | } else { |
101 | mSyncMenu->insertItem( i18n("Disable Pi-Sync"), 3 ); | 101 | mSyncMenu->insertItem( i18n("Disable Pi-Sync"), 3 ); |
102 | } | 102 | } |
103 | mSyncMenu->insertSeparator(); | 103 | mSyncMenu->insertSeparator(); |
104 | mSyncMenu->insertItem( i18n("Multiple sync"), 1 ); | 104 | mSyncMenu->insertItem( i18n("Multiple sync"), 1 ); |
105 | mSyncMenu->insertSeparator(); | 105 | mSyncMenu->insertSeparator(); |
106 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); | 106 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); |
107 | config.setGroup("General"); | 107 | config.setGroup("General"); |
108 | QStringList prof = config.readListEntry("SyncProfileNames"); | 108 | QStringList prof = config.readListEntry("SyncProfileNames"); |
109 | mLocalMachineName = config.readEntry("LocalMachineName","undefined"); | 109 | mLocalMachineName = config.readEntry("LocalMachineName","undefined"); |
110 | if ( prof.count() < 2 ) { | 110 | if ( prof.count() < 2 ) { |
111 | prof.clear(); | 111 | prof.clear(); |
112 | QString externalName; | 112 | QString externalName; |
113 | #ifdef DESKTOP_VERSION | 113 | #ifdef DESKTOP_VERSION |
114 | #ifdef _WIN32_ | 114 | #ifdef _WIN32_ |
115 | externalName = "OutLook(not_implemented)"; | 115 | externalName = "OutLook"; |
116 | #else | 116 | #else |
117 | externalName = "KDE_Desktop"; | 117 | externalName = "KDE_Desktop"; |
118 | #endif | 118 | #endif |
119 | #else | 119 | #else |
120 | externalName = "Sharp_DTM"; | 120 | externalName = "Sharp_DTM"; |
121 | #endif | 121 | #endif |
122 | prof << externalName; | 122 | prof << externalName; |
123 | prof << i18n("Local_file"); | 123 | prof << i18n("Local_file"); |
124 | prof << i18n("Last_file"); | 124 | prof << i18n("Last_file"); |
125 | KSyncProfile* temp = new KSyncProfile (); | 125 | KSyncProfile* temp = new KSyncProfile (); |
126 | temp->setName( prof[0] ); | 126 | temp->setName( prof[0] ); |
127 | temp->writeConfig(&config); | 127 | temp->writeConfig(&config); |
128 | temp->setName( prof[1] ); | 128 | temp->setName( prof[1] ); |
129 | temp->writeConfig(&config); | 129 | temp->writeConfig(&config); |
130 | temp->setName( prof[2] ); | 130 | temp->setName( prof[2] ); |
131 | temp->writeConfig(&config); | 131 | temp->writeConfig(&config); |
132 | config.setGroup("General"); | 132 | config.setGroup("General"); |
133 | config.writeEntry("SyncProfileNames",prof); | 133 | config.writeEntry("SyncProfileNames",prof); |
134 | config.writeEntry("ExternSyncProfiles",externalName); | 134 | config.writeEntry("ExternSyncProfiles",externalName); |
135 | config.sync(); | 135 | config.sync(); |
136 | delete temp; | 136 | delete temp; |
137 | } | 137 | } |
138 | mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); | 138 | mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); |
139 | mSyncProfileNames = prof; | 139 | mSyncProfileNames = prof; |
140 | unsigned int i; | 140 | unsigned int i; |
141 | for ( i = 0; i < prof.count(); ++i ) { | 141 | for ( i = 0; i < prof.count(); ++i ) { |
142 | QString insertText = prof[i]; | 142 | QString insertText = prof[i]; |
143 | if ( i == 0 ) { | 143 | if ( i == 0 ) { |
144 | #ifdef DESKTOP_VERSION | 144 | #ifdef DESKTOP_VERSION |
145 | #ifdef _WIN32_ | 145 | #ifdef _WIN32_ |
146 | insertText = "OutLook(not_implemented)"; | 146 | insertText = "OutLook"; |
147 | #else | 147 | #else |
148 | insertText = "KDE_Desktop"; | 148 | insertText = "KDE_Desktop"; |
149 | #endif | 149 | #endif |
150 | #else | 150 | #else |
151 | insertText = "Sharp_DTM"; | 151 | insertText = "Sharp_DTM"; |
152 | #endif | 152 | #endif |
153 | } | 153 | } |
154 | mSyncMenu->insertItem( insertText, 1000+i ); | 154 | mSyncMenu->insertItem( insertText, 1000+i ); |
155 | clearMenu->insertItem( insertText, 1000+i ); | 155 | clearMenu->insertItem( insertText, 1000+i ); |
156 | if ( i == 2 ) | 156 | if ( i == 2 ) |
157 | mSyncMenu->insertSeparator(); | 157 | mSyncMenu->insertSeparator(); |
158 | } | 158 | } |
159 | QDir app_dir; | 159 | QDir app_dir; |
160 | //US do not display SharpDTM if app is pwmpi, or no sharpfiles available | 160 | //US do not display SharpDTM if app is pwmpi, or no sharpfiles available |
161 | if ( mTargetApp == PWMPI) { | 161 | if ( mTargetApp == PWMPI) { |
162 | mSyncMenu->removeItem( 1000 ); | 162 | mSyncMenu->removeItem( 1000 ); |
163 | clearMenu->removeItem( 1000 ); | 163 | clearMenu->removeItem( 1000 ); |
164 | } | 164 | } |
165 | #ifndef DESKTOP_VERSION | 165 | #ifndef DESKTOP_VERSION |
166 | else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { | 166 | else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { |
167 | mSyncMenu->removeItem( 1000 ); | 167 | mSyncMenu->removeItem( 1000 ); |
168 | clearMenu->removeItem( 1000 ); | 168 | clearMenu->removeItem( 1000 ); |
169 | } | 169 | } |
170 | #endif | 170 | #endif |
171 | mSyncMenu->removeItem( 1002 ); | 171 | mSyncMenu->removeItem( 1002 ); |
172 | clearMenu->removeItem( 1002 ); | 172 | clearMenu->removeItem( 1002 ); |
173 | } | 173 | } |
174 | void KSyncManager::slotClearMenu( int action ) | 174 | void KSyncManager::slotClearMenu( int action ) |
175 | { | 175 | { |
176 | QString syncDevice; | 176 | QString syncDevice; |
177 | if ( action > 999 ) { | 177 | if ( action > 999 ) { |
178 | syncDevice = mSyncProfileNames[action - 1000] ; | 178 | syncDevice = mSyncProfileNames[action - 1000] ; |
179 | } | 179 | } |
180 | 180 | ||
181 | 181 | ||
182 | 182 | ||
183 | int result = 0; | 183 | int result = 0; |
184 | QString sd; | 184 | QString sd; |
185 | if ( syncDevice.isEmpty() ) | 185 | if ( syncDevice.isEmpty() ) |
186 | sd = i18n("Do you want to\nclear all sync info\nof all profiles?"); | 186 | sd = i18n("Do you want to\nclear all sync info\nof all profiles?"); |
187 | else | 187 | else |
188 | sd = i18n("Do you want to\nclear the sync\ninfo of profile\n%1?\n"). arg( syncDevice ); | 188 | sd = i18n("Do you want to\nclear the sync\ninfo of profile\n%1?\n"). arg( syncDevice ); |
189 | 189 | ||
190 | result = QMessageBox::warning( mParent, i18n("Warning!"),sd,i18n("OK"), i18n("Cancel"), 0, | 190 | result = QMessageBox::warning( mParent, i18n("Warning!"),sd,i18n("OK"), i18n("Cancel"), 0, |
191 | 0, 1 ); | 191 | 0, 1 ); |
192 | if ( result ) | 192 | if ( result ) |
193 | return; | 193 | return; |
194 | mImplementation->removeSyncInfo( syncDevice ); | 194 | mImplementation->removeSyncInfo( syncDevice ); |
195 | } | 195 | } |
196 | void KSyncManager::slotSyncMenu( int action ) | 196 | void KSyncManager::slotSyncMenu( int action ) |
197 | { | 197 | { |
198 | qDebug("KSM::syncaction %d ", action); | 198 | qDebug("KSM::syncaction %d ", action); |
199 | mCurrentResourceLocal = ""; | 199 | mCurrentResourceLocal = ""; |
200 | emit multiResourceSyncStart( false ); | 200 | emit multiResourceSyncStart( false ); |
201 | if ( action == 5000 ) | 201 | if ( action == 5000 ) |
202 | return; | 202 | return; |
203 | mSyncWithDesktop = false; | 203 | mSyncWithDesktop = false; |
204 | if ( action == 0 ) { | 204 | if ( action == 0 ) { |
205 | 205 | ||
206 | // seems to be a Qt2 event handling bug | 206 | // seems to be a Qt2 event handling bug |
207 | // syncmenu.clear causes a segfault at first time | 207 | // syncmenu.clear causes a segfault at first time |
208 | // when we call it after the main event loop, it is ok | 208 | // when we call it after the main event loop, it is ok |
209 | // same behaviour when calling OM/Pi via QCOP for the first time | 209 | // same behaviour when calling OM/Pi via QCOP for the first time |
210 | QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); | 210 | QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); |
@@ -873,226 +873,293 @@ bool KSyncManager::edit_sync_options() | |||
873 | f_rem.setChecked( true); | 873 | f_rem.setChecked( true); |
874 | break; | 874 | break; |
875 | case 6: | 875 | case 6: |
876 | // both.setChecked( true); | 876 | // both.setChecked( true); |
877 | break; | 877 | break; |
878 | default: | 878 | default: |
879 | break; | 879 | break; |
880 | } | 880 | } |
881 | if ( dia.exec() ) { | 881 | if ( dia.exec() ) { |
882 | mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; | 882 | mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; |
883 | return true; | 883 | return true; |
884 | } | 884 | } |
885 | return false; | 885 | return false; |
886 | } | 886 | } |
887 | 887 | ||
888 | QString KSyncManager::getPassword( ) | 888 | QString KSyncManager::getPassword( ) |
889 | { | 889 | { |
890 | QString retfile = ""; | 890 | QString retfile = ""; |
891 | QDialog dia ( mParent, "input-dialog", true ); | 891 | QDialog dia ( mParent, "input-dialog", true ); |
892 | QLineEdit lab ( &dia ); | 892 | QLineEdit lab ( &dia ); |
893 | lab.setEchoMode( QLineEdit::Password ); | 893 | lab.setEchoMode( QLineEdit::Password ); |
894 | QVBoxLayout lay( &dia ); | 894 | QVBoxLayout lay( &dia ); |
895 | lay.setMargin(7); | 895 | lay.setMargin(7); |
896 | lay.setSpacing(7); | 896 | lay.setSpacing(7); |
897 | lay.addWidget( &lab); | 897 | lay.addWidget( &lab); |
898 | dia.setFixedSize( 230,50 ); | 898 | dia.setFixedSize( 230,50 ); |
899 | dia.setCaption( i18n("Enter password") ); | 899 | dia.setCaption( i18n("Enter password") ); |
900 | QPushButton pb ( "OK", &dia); | 900 | QPushButton pb ( "OK", &dia); |
901 | lay.addWidget( &pb ); | 901 | lay.addWidget( &pb ); |
902 | connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); | 902 | connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); |
903 | dia.show(); | 903 | dia.show(); |
904 | int res = dia.exec(); | 904 | int res = dia.exec(); |
905 | if ( res ) | 905 | if ( res ) |
906 | retfile = lab.text(); | 906 | retfile = lab.text(); |
907 | dia.hide(); | 907 | dia.hide(); |
908 | qApp->processEvents(); | 908 | qApp->processEvents(); |
909 | return retfile; | 909 | return retfile; |
910 | 910 | ||
911 | } | 911 | } |
912 | 912 | ||
913 | 913 | ||
914 | void KSyncManager::confSync() | 914 | void KSyncManager::confSync() |
915 | { | 915 | { |
916 | static KSyncPrefsDialog* sp = 0; | 916 | static KSyncPrefsDialog* sp = 0; |
917 | if ( ! sp ) { | 917 | if ( ! sp ) { |
918 | sp = new KSyncPrefsDialog( mParent, "syncprefs", true ); | 918 | sp = new KSyncPrefsDialog( mParent, "syncprefs", true ); |
919 | } | 919 | } |
920 | sp->usrReadConfig(); | 920 | sp->usrReadConfig(); |
921 | #ifndef DESKTOP_VERSION | 921 | #ifndef DESKTOP_VERSION |
922 | sp->showMaximized(); | 922 | sp->showMaximized(); |
923 | #else | 923 | #else |
924 | sp->show(); | 924 | sp->show(); |
925 | #endif | 925 | #endif |
926 | sp->exec(); | 926 | sp->exec(); |
927 | QStringList oldSyncProfileNames = mSyncProfileNames; | 927 | QStringList oldSyncProfileNames = mSyncProfileNames; |
928 | mSyncProfileNames = sp->getSyncProfileNames(); | 928 | mSyncProfileNames = sp->getSyncProfileNames(); |
929 | mLocalMachineName = sp->getLocalMachineName (); | 929 | mLocalMachineName = sp->getLocalMachineName (); |
930 | uint ii; | 930 | uint ii; |
931 | for ( ii = 0; ii < oldSyncProfileNames.count(); ++ii ) { | 931 | for ( ii = 0; ii < oldSyncProfileNames.count(); ++ii ) { |
932 | if ( ! mSyncProfileNames.contains( oldSyncProfileNames[ii] ) ) | 932 | if ( ! mSyncProfileNames.contains( oldSyncProfileNames[ii] ) ) |
933 | mImplementation->removeSyncInfo( oldSyncProfileNames[ii] ); | 933 | mImplementation->removeSyncInfo( oldSyncProfileNames[ii] ); |
934 | } | 934 | } |
935 | QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); | 935 | QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); |
936 | } | 936 | } |
937 | void KSyncManager::syncOL() | ||
938 | { | ||
939 | mSyncWithDesktop = true; | ||
940 | emit save(); | ||
941 | switch(mTargetApp) | ||
942 | { | ||
943 | case (KAPI): | ||
944 | { | ||
945 | syncExternalApplication("ol"); | ||
946 | } | ||
947 | break; | ||
948 | case (KOPI): | ||
949 | { | ||
950 | #ifdef DESKTOP_VERSION | ||
951 | QString command = "kdecaldump33"; | ||
952 | QString commandfile = "kdecaldump33"; | ||
953 | QString commandpath = qApp->applicationDirPath () + "/"; | ||
954 | #else | ||
955 | QString command = "kdecaldump33"; | ||
956 | QString commandfile = "kdecaldump33"; | ||
957 | QString commandpath = QDir::homeDirPath ()+"/"; | ||
958 | #endif | ||
959 | if ( ! QFile::exists ( commandpath+commandfile ) ) | ||
960 | command = commandfile; | ||
961 | else | ||
962 | command = commandpath+commandfile; | ||
963 | |||
964 | QString fileName = QDir::homeDirPath ()+"/.kdecalendardump.ics"; | ||
965 | int result = system ( command.latin1()); | ||
966 | qDebug("Cal dump 33 command call result result: %d ", result); | ||
967 | if ( result != 0 ) { | ||
968 | qDebug("Calling CAL dump version 33 failed. Trying 34... "); | ||
969 | commandfile = "kdecaldump34"; | ||
970 | if ( ! QFile::exists ( commandpath+commandfile ) ) | ||
971 | command = commandfile; | ||
972 | else | ||
973 | command = commandpath+commandfile; | ||
974 | result = system ( command.latin1()); | ||
975 | qDebug("Cal dump 34 command call result result: %d ", result); | ||
976 | if ( result != 0 ) { | ||
977 | 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 )); | ||
978 | return; | ||
979 | } | ||
980 | } | ||
981 | if ( syncWithFile( fileName,true ) ) { | ||
982 | if ( mWriteBackFile ) { | ||
983 | command += " --read"; | ||
984 | system ( command.latin1()); | ||
985 | } | ||
986 | } | ||
987 | |||
988 | } | ||
989 | break; | ||
990 | case (PWMPI): | ||
991 | |||
992 | break; | ||
993 | default: | ||
994 | qDebug("KSM::slotSyncMenu: invalid apptype selected"); | ||
995 | break; | ||
996 | |||
997 | } | ||
998 | } | ||
937 | void KSyncManager::syncKDE() | 999 | void KSyncManager::syncKDE() |
938 | { | 1000 | { |
1001 | #ifdef _WIN32_ | ||
1002 | syncOL(); | ||
1003 | #else | ||
1004 | |||
939 | mSyncWithDesktop = true; | 1005 | mSyncWithDesktop = true; |
940 | emit save(); | 1006 | emit save(); |
941 | switch(mTargetApp) | 1007 | switch(mTargetApp) |
942 | { | 1008 | { |
943 | case (KAPI): | 1009 | case (KAPI): |
944 | { | 1010 | { |
945 | #ifdef DESKTOP_VERSION | 1011 | #ifdef DESKTOP_VERSION |
946 | QString command = "kdeabdump33"; | 1012 | QString command = "kdeabdump33"; |
947 | QString commandfile = "kdeabdump33"; | 1013 | QString commandfile = "kdeabdump33"; |
948 | QString commandpath = qApp->applicationDirPath () + "/"; | 1014 | QString commandpath = qApp->applicationDirPath () + "/"; |
949 | #else | 1015 | #else |
950 | QString command = "kdeabdump33"; | 1016 | QString command = "kdeabdump33"; |
951 | QString commandfile = "kdeabdump33"; | 1017 | QString commandfile = "kdeabdump33"; |
952 | QString commandpath = QDir::homeDirPath ()+"/"; | 1018 | QString commandpath = QDir::homeDirPath ()+"/"; |
953 | #endif | 1019 | #endif |
954 | if ( ! QFile::exists ( commandpath+commandfile ) ) | 1020 | if ( ! QFile::exists ( commandpath+commandfile ) ) |
955 | command = commandfile; | 1021 | command = commandfile; |
956 | else | 1022 | else |
957 | command = commandpath+commandfile; | 1023 | command = commandpath+commandfile; |
958 | 1024 | ||
959 | QString fileName = QDir::homeDirPath ()+"/.kdeaddressbookdump.vcf"; | 1025 | QString fileName = QDir::homeDirPath ()+"/.kdeaddressbookdump.vcf"; |
960 | int result = system ( command.latin1()); | 1026 | int result = system ( command.latin1()); |
961 | qDebug("AB dump 33 command call result: %d ", result); | 1027 | qDebug("AB dump 33 command call result: %d ", result); |
962 | if ( result != 0 ) { | 1028 | if ( result != 0 ) { |
963 | qDebug("Calling AB dump version 33 failed. Trying 34... "); | 1029 | qDebug("Calling AB dump version 33 failed. Trying 34... "); |
964 | commandfile = "kdeabdump34"; | 1030 | commandfile = "kdeabdump34"; |
965 | if ( ! QFile::exists ( commandpath+commandfile ) ) | 1031 | if ( ! QFile::exists ( commandpath+commandfile ) ) |
966 | command = commandfile; | 1032 | command = commandfile; |
967 | else | 1033 | else |
968 | command = commandpath+commandfile; | 1034 | command = commandpath+commandfile; |
969 | result = system ( command.latin1()); | 1035 | result = system ( command.latin1()); |
970 | qDebug("AB dump 34 command call result: %d ", result); | 1036 | qDebug("AB dump 34 command call result: %d ", result); |
971 | if ( result != 0 ) { | 1037 | if ( result != 0 ) { |
972 | 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 )); | 1038 | 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 )); |
973 | return; | 1039 | return; |
974 | } | 1040 | } |
975 | } | 1041 | } |
976 | if ( syncWithFile( fileName,true ) ) { | 1042 | if ( syncWithFile( fileName,true ) ) { |
977 | if ( mWriteBackFile ) { | 1043 | if ( mWriteBackFile ) { |
978 | command += " --read"; | 1044 | command += " --read"; |
979 | system ( command.latin1()); | 1045 | system ( command.latin1()); |
980 | } | 1046 | } |
981 | } | 1047 | } |
982 | 1048 | ||
983 | } | 1049 | } |
984 | break; | 1050 | break; |
985 | case (KOPI): | 1051 | case (KOPI): |
986 | { | 1052 | { |
987 | #ifdef DESKTOP_VERSION | 1053 | #ifdef DESKTOP_VERSION |
988 | QString command = "kdecaldump33"; | 1054 | QString command = "kdecaldump33"; |
989 | QString commandfile = "kdecaldump33"; | 1055 | QString commandfile = "kdecaldump33"; |
990 | QString commandpath = qApp->applicationDirPath () + "/"; | 1056 | QString commandpath = qApp->applicationDirPath () + "/"; |
991 | #else | 1057 | #else |
992 | QString command = "kdecaldump33"; | 1058 | QString command = "kdecaldump33"; |
993 | QString commandfile = "kdecaldump33"; | 1059 | QString commandfile = "kdecaldump33"; |
994 | QString commandpath = QDir::homeDirPath ()+"/"; | 1060 | QString commandpath = QDir::homeDirPath ()+"/"; |
995 | #endif | 1061 | #endif |
996 | if ( ! QFile::exists ( commandpath+commandfile ) ) | 1062 | if ( ! QFile::exists ( commandpath+commandfile ) ) |
997 | command = commandfile; | 1063 | command = commandfile; |
998 | else | 1064 | else |
999 | command = commandpath+commandfile; | 1065 | command = commandpath+commandfile; |
1000 | 1066 | ||
1001 | QString fileName = QDir::homeDirPath ()+"/.kdecalendardump.ics"; | 1067 | QString fileName = QDir::homeDirPath ()+"/.kdecalendardump.ics"; |
1002 | int result = system ( command.latin1()); | 1068 | int result = system ( command.latin1()); |
1003 | qDebug("Cal dump 33 command call result result: %d ", result); | 1069 | qDebug("Cal dump 33 command call result result: %d ", result); |
1004 | if ( result != 0 ) { | 1070 | if ( result != 0 ) { |
1005 | qDebug("Calling CAL dump version 33 failed. Trying 34... "); | 1071 | qDebug("Calling CAL dump version 33 failed. Trying 34... "); |
1006 | commandfile = "kdecaldump34"; | 1072 | commandfile = "kdecaldump34"; |
1007 | if ( ! QFile::exists ( commandpath+commandfile ) ) | 1073 | if ( ! QFile::exists ( commandpath+commandfile ) ) |
1008 | command = commandfile; | 1074 | command = commandfile; |
1009 | else | 1075 | else |
1010 | command = commandpath+commandfile; | 1076 | command = commandpath+commandfile; |
1011 | result = system ( command.latin1()); | 1077 | result = system ( command.latin1()); |
1012 | qDebug("Cal dump 34 command call result result: %d ", result); | 1078 | qDebug("Cal dump 34 command call result result: %d ", result); |
1013 | if ( result != 0 ) { | 1079 | if ( result != 0 ) { |
1014 | 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 )); | 1080 | 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 )); |
1015 | return; | 1081 | return; |
1016 | } | 1082 | } |
1017 | } | 1083 | } |
1018 | if ( syncWithFile( fileName,true ) ) { | 1084 | if ( syncWithFile( fileName,true ) ) { |
1019 | if ( mWriteBackFile ) { | 1085 | if ( mWriteBackFile ) { |
1020 | command += " --read"; | 1086 | command += " --read"; |
1021 | system ( command.latin1()); | 1087 | system ( command.latin1()); |
1022 | } | 1088 | } |
1023 | } | 1089 | } |
1024 | 1090 | ||
1025 | } | 1091 | } |
1026 | break; | 1092 | break; |
1027 | case (PWMPI): | 1093 | case (PWMPI): |
1028 | 1094 | ||
1029 | break; | 1095 | break; |
1030 | default: | 1096 | default: |
1031 | qDebug("KSM::slotSyncMenu: invalid apptype selected"); | 1097 | qDebug("KSM::slotSyncMenu: invalid apptype selected"); |
1032 | break; | 1098 | break; |
1033 | 1099 | ||
1034 | } | 1100 | } |
1101 | #endif | ||
1035 | } | 1102 | } |
1036 | 1103 | ||
1037 | void KSyncManager::syncSharp() | 1104 | void KSyncManager::syncSharp() |
1038 | { | 1105 | { |
1039 | 1106 | ||
1040 | if ( ! syncExternalApplication("sharp") ) | 1107 | if ( ! syncExternalApplication("sharp") ) |
1041 | qDebug("KSM::ERROR sync sharp "); | 1108 | qDebug("KSM::ERROR sync sharp "); |
1042 | } | 1109 | } |
1043 | 1110 | ||
1044 | bool KSyncManager::syncExternalApplication(QString resource) | 1111 | bool KSyncManager::syncExternalApplication(QString resource) |
1045 | { | 1112 | { |
1046 | 1113 | ||
1047 | emit save(); | 1114 | emit save(); |
1048 | 1115 | ||
1049 | if ( mAskForPreferences ) | 1116 | if ( mAskForPreferences ) |
1050 | if ( !edit_sync_options()) { | 1117 | if ( !edit_sync_options()) { |
1051 | mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); | 1118 | mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); |
1052 | return false; | 1119 | return false; |
1053 | } | 1120 | } |
1054 | 1121 | ||
1055 | qDebug("KSM::Sync extern %s", resource.latin1()); | 1122 | qDebug("KSM::Sync extern %s", resource.latin1()); |
1056 | 1123 | ||
1057 | bool syncOK = mImplementation->syncExternal(this, resource); | 1124 | bool syncOK = mImplementation->syncExternal(this, resource); |
1058 | 1125 | ||
1059 | return syncOK; | 1126 | return syncOK; |
1060 | 1127 | ||
1061 | } | 1128 | } |
1062 | 1129 | ||
1063 | void KSyncManager::syncPhone() | 1130 | void KSyncManager::syncPhone() |
1064 | { | 1131 | { |
1065 | 1132 | ||
1066 | syncExternalApplication("phone"); | 1133 | syncExternalApplication("phone"); |
1067 | 1134 | ||
1068 | } | 1135 | } |
1069 | 1136 | ||
1070 | void KSyncManager::showProgressBar(int percentage, QString caption, int total) | 1137 | void KSyncManager::showProgressBar(int percentage, QString caption, int total) |
1071 | { | 1138 | { |
1072 | if (!bar->isVisible()) | 1139 | if (!bar->isVisible()) |
1073 | { | 1140 | { |
1074 | int w = 300; | 1141 | int w = 300; |
1075 | if ( QApplication::desktop()->width() < 320 ) | 1142 | if ( QApplication::desktop()->width() < 320 ) |
1076 | w = 220; | 1143 | w = 220; |
1077 | int h = bar->sizeHint().height() ; | 1144 | int h = bar->sizeHint().height() ; |
1078 | int dw = QApplication::desktop()->width(); | 1145 | int dw = QApplication::desktop()->width(); |
1079 | int dh = QApplication::desktop()->height(); | 1146 | int dh = QApplication::desktop()->height(); |
1080 | bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | 1147 | bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); |
1081 | bar->setCaption (caption); | 1148 | bar->setCaption (caption); |
1082 | bar->setTotalSteps ( total ) ; | 1149 | bar->setTotalSteps ( total ) ; |
1083 | bar->show(); | 1150 | bar->show(); |
1084 | } | 1151 | } |
1085 | bar->raise(); | 1152 | bar->raise(); |
1086 | bar->setProgress( percentage ); | 1153 | bar->setProgress( percentage ); |
1087 | qApp->processEvents(); | 1154 | qApp->processEvents(); |
1088 | } | 1155 | } |
1089 | 1156 | ||
1090 | void KSyncManager::hideProgressBar() | 1157 | void KSyncManager::hideProgressBar() |
1091 | { | 1158 | { |
1092 | bar->hide(); | 1159 | bar->hide(); |
1093 | qApp->processEvents(); | 1160 | qApp->processEvents(); |
1094 | } | 1161 | } |
1095 | 1162 | ||
1096 | bool KSyncManager::isProgressBarCanceled() | 1163 | bool KSyncManager::isProgressBarCanceled() |
1097 | { | 1164 | { |
1098 | return !bar->isVisible(); | 1165 | return !bar->isVisible(); |