summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-10-05 07:22:35 (UTC)
committer zautrix <zautrix>2004-10-05 07:22:35 (UTC)
commitfc2c103f45a6d4e4105259436266538c645f2c87 (patch) (unidiff)
tree7cab481e080b7db555129a17735152051882a31c
parent0dd4cb1ff2bbd47788a5220363758226e5639edf (diff)
downloadkdepimpi-fc2c103f45a6d4e4105259436266538c645f2c87.zip
kdepimpi-fc2c103f45a6d4e4105259436266538c645f2c87.tar.gz
kdepimpi-fc2c103f45a6d4e4105259436266538c645f2c87.tar.bz2
sync fixes
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp113
-rw-r--r--korganizer/mainwindow.h10
2 files changed, 48 insertions, 75 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index b7176a1..5aa75f5 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1190,192 +1190,200 @@ void MainWindow::about()
1190#ifdef DESKTOP_VERSION 1190#ifdef DESKTOP_VERSION
1191 i18n("Desktop Edition\n") + 1191 i18n("Desktop Edition\n") +
1192#else 1192#else
1193 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + 1193 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") +
1194#endif 1194#endif
1195 i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") ); 1195 i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") );
1196} 1196}
1197void MainWindow::keyBindings() 1197void MainWindow::keyBindings()
1198{ 1198{
1199 QString cap = i18n("Key bindings KOrganizer/Pi"); 1199 QString cap = i18n("Key bindings KOrganizer/Pi");
1200 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1200 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1201 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1201 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1202 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1202 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1203 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1203 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1204 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ 1204 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+
1205 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1205 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1206 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1206 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1207 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ 1207 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+
1208 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1208 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1209 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1209 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1210 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1210 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1211 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1211 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1212 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1212 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1213 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ 1213 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+
1214 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1214 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1215 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1215 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1216 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1216 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1217 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1217 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1218 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1218 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1219 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1219 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1220 i18n("<p><h3>In agenda view:</h3></p>\n") + 1220 i18n("<p><h3>In agenda view:</h3></p>\n") +
1221 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1221 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1222 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1222 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1223 i18n("<p><h3>In todo view:</h3></p>\n") + 1223 i18n("<p><h3>In todo view:</h3></p>\n") +
1224 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1224 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1225 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1225 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1226 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1226 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1227 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1227 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1228 i18n("<p><h3>In list view:</h3></p>\n") + 1228 i18n("<p><h3>In list view:</h3></p>\n") +
1229 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1229 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1230 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1230 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1231 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1231 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1232 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1232 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1233 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1233 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1234 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1234 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1235 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1235 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1236 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1236 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1237 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1237 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1238 i18n("<p><b>E</b>: Edit item</p>\n") + 1238 i18n("<p><b>E</b>: Edit item</p>\n") +
1239 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1239 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1240 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1240 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1241 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1241 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1242 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1242 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1243 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1243 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1244 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1244 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1245 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1245 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1246 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1246 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1247 i18n("<p><b>White</b>: Item readonly</p>\n"); 1247 i18n("<p><b>White</b>: Item readonly</p>\n");
1248 displayText( text, cap); 1248 displayText( text, cap);
1249 1249
1250} 1250}
1251void MainWindow::aboutAutoSaving() 1251void MainWindow::aboutAutoSaving()
1252{ 1252{
1253 QMessageBox* msg; 1253 QMessageBox* msg;
1254 msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"), 1254 msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"),
1255 i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"), QMessageBox::NoIcon, 1255 i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"), QMessageBox::NoIcon,
1256 QMessageBox::Ok, 1256 QMessageBox::Ok,
1257 QMessageBox::NoButton, 1257 QMessageBox::NoButton,
1258 QMessageBox::NoButton); 1258 QMessageBox::NoButton);
1259 msg->exec(); 1259 msg->exec();
1260 delete msg; 1260 delete msg;
1261 1261
1262 1262
1263} 1263}
1264void MainWindow::aboutKnownBugs() 1264void MainWindow::aboutKnownBugs()
1265{ 1265{
1266 QMessageBox* msg; 1266 QMessageBox* msg;
1267 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1267 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1268 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ 1268 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+
1269 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1269 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1270 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + 1270 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") +
1271 i18n("\nor report them in the bugtracker on\n") + 1271 i18n("\nor report them in the bugtracker on\n") +
1272 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1272 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1273 QMessageBox::NoIcon, 1273 QMessageBox::NoIcon,
1274 QMessageBox::Ok, 1274 QMessageBox::Ok,
1275 QMessageBox::NoButton, 1275 QMessageBox::NoButton,
1276 QMessageBox::NoButton); 1276 QMessageBox::NoButton);
1277 msg->exec(); 1277 msg->exec();
1278 delete msg; 1278 delete msg;
1279 1279
1280} 1280}
1281 1281
1282QString MainWindow::defaultFileName() 1282QString MainWindow::defaultFileName()
1283{ 1283{
1284 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1284 return locateLocal( "data", "korganizer/mycalendar.ics" );
1285} 1285}
1286QString MainWindow::syncFileName()
1287{
1288#ifdef _WIN32_
1289 return locateLocal( "tmp", "synccalendar.ics" );
1290#else
1291 return QString( "/tmp/kopitempfile.ics" );
1292#endif
1293}
1286 1294
1287void MainWindow::processIncidenceSelection( Incidence *incidence ) 1295void MainWindow::processIncidenceSelection( Incidence *incidence )
1288{ 1296{
1289 if ( !incidence ) { 1297 if ( !incidence ) {
1290 enableIncidenceActions( false ); 1298 enableIncidenceActions( false );
1291 1299
1292 mNewSubTodoAction->setEnabled( false ); 1300 mNewSubTodoAction->setEnabled( false );
1293 setCaptionToDates(); 1301 setCaptionToDates();
1294 return; 1302 return;
1295 1303
1296 } 1304 }
1297 1305
1298 //KGlobal::locale()->formatDateTime(nextA, true); 1306 //KGlobal::locale()->formatDateTime(nextA, true);
1299 QString startString = ""; 1307 QString startString = "";
1300 if ( incidence->type() != "Todo" ) { 1308 if ( incidence->type() != "Todo" ) {
1301 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1309 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1302 if ( incidence->doesFloat() ) { 1310 if ( incidence->doesFloat() ) {
1303 startString += ": "+incidence->dtStartDateStr( true ); 1311 startString += ": "+incidence->dtStartDateStr( true );
1304 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1312 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1305 1313
1306 } else { 1314 } else {
1307 startString = ": "+incidence->dtStartStr(true); 1315 startString = ": "+incidence->dtStartStr(true);
1308 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1316 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1309 1317
1310 } 1318 }
1311 1319
1312 } else { 1320 } else {
1313 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1321 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1314 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1322 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1315 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1323 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1316 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1324 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1317 } 1325 }
1318 1326
1319 } 1327 }
1320 else 1328 else
1321 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1329 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1322 if ( !incidence->location().isEmpty() ) 1330 if ( !incidence->location().isEmpty() )
1323 startString += " (" +incidence->location()+")"; 1331 startString += " (" +incidence->location()+")";
1324 setCaption( incidence->summary()+startString); 1332 setCaption( incidence->summary()+startString);
1325 1333
1326 enableIncidenceActions( true ); 1334 enableIncidenceActions( true );
1327 1335
1328 if ( incidence->type() == "Event" ) { 1336 if ( incidence->type() == "Event" ) {
1329 mShowAction->setText( i18n("Show Event...") ); 1337 mShowAction->setText( i18n("Show Event...") );
1330 mEditAction->setText( i18n("Edit Event...") ); 1338 mEditAction->setText( i18n("Edit Event...") );
1331 mDeleteAction->setText( i18n("Delete Event...") ); 1339 mDeleteAction->setText( i18n("Delete Event...") );
1332 1340
1333 mNewSubTodoAction->setEnabled( false ); 1341 mNewSubTodoAction->setEnabled( false );
1334 } else if ( incidence->type() == "Todo" ) { 1342 } else if ( incidence->type() == "Todo" ) {
1335 mShowAction->setText( i18n("Show Todo...") ); 1343 mShowAction->setText( i18n("Show Todo...") );
1336 mEditAction->setText( i18n("Edit Todo...") ); 1344 mEditAction->setText( i18n("Edit Todo...") );
1337 mDeleteAction->setText( i18n("Delete Todo...") ); 1345 mDeleteAction->setText( i18n("Delete Todo...") );
1338 1346
1339 mNewSubTodoAction->setEnabled( true ); 1347 mNewSubTodoAction->setEnabled( true );
1340 } else { 1348 } else {
1341 mShowAction->setText( i18n("Show...") ); 1349 mShowAction->setText( i18n("Show...") );
1342 mShowAction->setText( i18n("Edit...") ); 1350 mShowAction->setText( i18n("Edit...") );
1343 mShowAction->setText( i18n("Delete...") ); 1351 mShowAction->setText( i18n("Delete...") );
1344 1352
1345 mNewSubTodoAction->setEnabled( false ); 1353 mNewSubTodoAction->setEnabled( false );
1346 } 1354 }
1347} 1355}
1348 1356
1349void MainWindow::enableIncidenceActions( bool enabled ) 1357void MainWindow::enableIncidenceActions( bool enabled )
1350{ 1358{
1351 mShowAction->setEnabled( enabled ); 1359 mShowAction->setEnabled( enabled );
1352 mEditAction->setEnabled( enabled ); 1360 mEditAction->setEnabled( enabled );
1353 mDeleteAction->setEnabled( enabled ); 1361 mDeleteAction->setEnabled( enabled );
1354} 1362}
1355 1363
1356void MainWindow::importOL() 1364void MainWindow::importOL()
1357{ 1365{
1358#ifdef _WIN32_ 1366#ifdef _WIN32_
1359 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1367 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1360 id->exec(); 1368 id->exec();
1361 delete id; 1369 delete id;
1362 mView->updateView(); 1370 mView->updateView();
1363#endif 1371#endif
1364} 1372}
1365void MainWindow::importBday() 1373void MainWindow::importBday()
1366{ 1374{
1367 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1375 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1368 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1376 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1369 i18n("Import!"), i18n("Cancel"), 0, 1377 i18n("Import!"), i18n("Cancel"), 0,
1370 0, 1 ); 1378 0, 1 );
1371 if ( result == 0 ) { 1379 if ( result == 0 ) {
1372 mView->importBday(); 1380 mView->importBday();
1373 1381
1374 } 1382 }
1375 1383
1376 1384
1377} 1385}
1378void MainWindow::importQtopia() 1386void MainWindow::importQtopia()
1379{ 1387{
1380#ifndef DESKTOP_VERSION 1388#ifndef DESKTOP_VERSION
1381 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1389 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
@@ -1831,316 +1839,282 @@ void MainWindow::importIcal()
1831void MainWindow::exportVCalendar() 1839void MainWindow::exportVCalendar()
1832{ 1840{
1833 QString fn = KOPrefs::instance()->mLastVcalFile; 1841 QString fn = KOPrefs::instance()->mLastVcalFile;
1834 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); 1842 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this );
1835 if ( fn == "" ) 1843 if ( fn == "" )
1836 return; 1844 return;
1837 QFileInfo info; 1845 QFileInfo info;
1838 info.setFile( fn ); 1846 info.setFile( fn );
1839 QString mes; 1847 QString mes;
1840 bool createbup = true; 1848 bool createbup = true;
1841 if ( info. exists() ) { 1849 if ( info. exists() ) {
1842 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 1850 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
1843 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1851 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1844 i18n("Overwrite!"), i18n("Cancel"), 0, 1852 i18n("Overwrite!"), i18n("Cancel"), 0,
1845 0, 1 ); 1853 0, 1 );
1846 if ( result != 0 ) { 1854 if ( result != 0 ) {
1847 createbup = false; 1855 createbup = false;
1848 } 1856 }
1849 } 1857 }
1850 if ( createbup ) { 1858 if ( createbup ) {
1851 if ( mView->exportVCalendar( fn ) ) { 1859 if ( mView->exportVCalendar( fn ) ) {
1852 KOPrefs::instance()->mLastVcalFile = fn; 1860 KOPrefs::instance()->mLastVcalFile = fn;
1853 if ( fn.length() > 20 ) 1861 if ( fn.length() > 20 )
1854 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; 1862 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ;
1855 else 1863 else
1856 mes = i18n("KO/Pi:Exported to %1").arg(fn ); 1864 mes = i18n("KO/Pi:Exported to %1").arg(fn );
1857 setCaption(mes); 1865 setCaption(mes);
1858 } 1866 }
1859 } 1867 }
1860 1868
1861} 1869}
1862QString MainWindow::getPassword( ) 1870QString MainWindow::getPassword( )
1863{ 1871{
1864 QString retfile = ""; 1872 QString retfile = "";
1865 QDialog dia ( this, "input-dialog", true ); 1873 QDialog dia ( this, "input-dialog", true );
1866 QLineEdit lab ( &dia ); 1874 QLineEdit lab ( &dia );
1867 lab.setEchoMode( QLineEdit::Password ); 1875 lab.setEchoMode( QLineEdit::Password );
1868 QVBoxLayout lay( &dia ); 1876 QVBoxLayout lay( &dia );
1869 lay.setMargin(7); 1877 lay.setMargin(7);
1870 lay.setSpacing(7); 1878 lay.setSpacing(7);
1871 lay.addWidget( &lab); 1879 lay.addWidget( &lab);
1872 dia.setFixedSize( 230,50 ); 1880 dia.setFixedSize( 230,50 );
1873 dia.setCaption( i18n("Enter password") ); 1881 dia.setCaption( i18n("Enter password") );
1874 QPushButton pb ( "OK", &dia); 1882 QPushButton pb ( "OK", &dia);
1875 lay.addWidget( &pb ); 1883 lay.addWidget( &pb );
1876 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 1884 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
1877 dia.show(); 1885 dia.show();
1878 int res = dia.exec(); 1886 int res = dia.exec();
1879 if ( res ) 1887 if ( res )
1880 retfile = lab.text(); 1888 retfile = lab.text();
1881 dia.hide(); 1889 dia.hide();
1882 qApp->processEvents(); 1890 qApp->processEvents();
1883 return retfile; 1891 return retfile;
1884 1892
1885} 1893}
1886 1894
1887void MainWindow::enableQuick() 1895void MainWindow::enableQuick()
1888{ 1896{
1889 QString passWordPiSync = "bhdrvmk"; 1897 QString passWordPiSync = "bhdrvmk";
1890 QString retfile = ""; 1898 QString retfile = "";
1891 QDialog dia ( this, "input-dialog", true ); 1899 QDialog dia ( this, "input-dialog", true );
1892 QLineEdit lab ( &dia ); 1900 QLineEdit lab ( &dia );
1893 QVBoxLayout lay( &dia ); 1901 QVBoxLayout lay( &dia );
1894 lab.setText( KOPrefs::instance()->mPassiveSyncPort ); 1902 lab.setText( KOPrefs::instance()->mPassiveSyncPort );
1895 lay.setMargin(7); 1903 lay.setMargin(7);
1896 lay.setSpacing(7); 1904 lay.setSpacing(7);
1897 QLabel label ( i18n("Port number (Default: 9197)"), &dia ); 1905 QLabel label ( i18n("Port number (Default: 9197)"), &dia );
1898 lay.addWidget( &label); 1906 lay.addWidget( &label);
1899 lay.addWidget( &lab); 1907 lay.addWidget( &lab);
1900 1908
1901 QLineEdit lepw ( &dia ); 1909 QLineEdit lepw ( &dia );
1902 lepw.setText( "abc" ); 1910 lepw.setText( "abc" );
1903 QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia ); 1911 QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia );
1904 lay.addWidget( &label2); 1912 lay.addWidget( &label2);
1905 lay.addWidget( &lepw); 1913 lay.addWidget( &lepw);
1906 dia.setFixedSize( 230,80 ); 1914 dia.setFixedSize( 230,80 );
1907 dia.setCaption( i18n("Enter port for Pi-Sync") ); 1915 dia.setCaption( i18n("Enter port for Pi-Sync") );
1908 QPushButton pb ( "OK", &dia); 1916 QPushButton pb ( "OK", &dia);
1909 lay.addWidget( &pb ); 1917 lay.addWidget( &pb );
1910 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 1918 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
1911 dia.show(); 1919 dia.show();
1912 int res = dia.exec(); 1920 int res = dia.exec();
1913 if ( res ) 1921 if ( res )
1914 retfile = lab.text(); 1922 retfile = lab.text();
1915 else 1923 else
1916 return; 1924 return;
1917 dia.hide(); 1925 dia.hide();
1918 passWordPiSync = lepw.text(); 1926 passWordPiSync = lepw.text();
1919 qApp->processEvents(); 1927 qApp->processEvents();
1920 KOPrefs::instance()->mPassiveSyncPort = retfile; 1928 KOPrefs::instance()->mPassiveSyncPort = retfile;
1921 bool ok; 1929 bool ok;
1922 Q_UINT16 port = retfile.toUInt(&ok); 1930 Q_UINT16 port = retfile.toUInt(&ok);
1923 if ( ! ok ) { 1931 if ( ! ok ) {
1924 KMessageBox::information( this, i18n("No valid port")); 1932 KMessageBox::information( this, i18n("No valid port"));
1925 return; 1933 return;
1926 } 1934 }
1927 qDebug("port %d ", port); 1935 //qDebug("port %d ", port);
1928 mServerSocket = new KServerSocket ( passWordPiSync, port ,1 ); 1936 mServerSocket = new KServerSocket ( passWordPiSync, port ,1 );
1929 mServerSocket->setFileName( defaultFileName() ); 1937 mServerSocket->setFileName( defaultFileName() );
1930 qDebug("connected "); 1938 //qDebug("connected ");
1931 if ( !mServerSocket->ok() ) { 1939 if ( !mServerSocket->ok() ) {
1932 qWarning("Failed to bind to port %d", port); 1940 qWarning("Failed to bind to port %d", port);
1933 delete mServerSocket; 1941 delete mServerSocket;
1934 mServerSocket = 0; 1942 mServerSocket = 0;
1935 return; 1943 return;
1936 } 1944 }
1937 connect( mServerSocket, SIGNAL ( saveFile() ), this, SLOT ( save() ) ); 1945 connect( mServerSocket, SIGNAL ( saveFile() ), this, SLOT ( save() ) );
1938 connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SLOT ( getFile( bool ) ) ); 1946 connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SLOT ( getFile( bool ) ) );
1939 // connect( mServerSocket, SIGNAL ( sendFile(QSocket*) ), this, SLOT ( sendFile(QSocket*) ) );
1940 //connect( mServerSocket, SIGNAL ( getFile(QSocket*) ), this, SLOT ( getFile(QSocket*) ) );
1941} 1947}
1942 1948
1943void MainWindow::getFile( bool success ) 1949void MainWindow::getFile( bool success )
1944{ 1950{
1945 if ( ! success ) { 1951 if ( ! success ) {
1946 setCaption( i18n("Error receiving file. Nothing changed!") ); 1952 setCaption( i18n("Error receiving file. Nothing changed!") );
1947 return; 1953 return;
1948 } 1954 }
1949 // pending adjust time for watchSavedFile() 1955 // pending adjust time for watchSavedFile()
1950 //mView->watchSavedFile(); 1956 //mView->watchSavedFile();
1951 mView->openCalendar( defaultFileName() ); 1957 mView->openCalendar( defaultFileName() );
1952 setCaption( i18n("Pi-Sync successful!") ); 1958 setCaption( i18n("Pi-Sync successful!") );
1953 1959
1954} 1960}
1955 1961
1956 1962
1957void MainWindow::syncPi() 1963void MainWindow::syncPi()
1958{ 1964{
1959 qApp->processEvents(); 1965 qApp->processEvents();
1960 performQuickQuick(); 1966 performQuickQuick();
1961} 1967}
1962 1968
1963void MainWindow::performQuickQuick() 1969void MainWindow::performQuickQuick()
1964{ 1970{
1965 // setCaption( i18n("") );
1966
1967 bool ok; 1971 bool ok;
1968 Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok); 1972 Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok);
1969 if ( ! ok ) { 1973 if ( ! ok ) {
1970 setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); 1974 setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
1971 return; 1975 return;
1972 } 1976 }
1973 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this ); 1977 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this );
1974 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, bool )), this, SLOT(deleteCommandSocket(KCommandSocket*,bool)) ); 1978 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1975 setCaption( i18n("Sending request for remote file ...") ); 1979 setCaption( i18n("Sending request for remote file ...") );
1976 QString fileName; 1980 commandSocket->readFile( syncFileName() );
1977#ifdef _WIN32_
1978 fileName = defaultFileName() +"sync";
1979#else
1980 fileName = "/tmp/kopitempfile.ics";
1981#endif
1982 commandSocket->readFile( fileName );
1983} 1981}
1984void MainWindow::deleteCommandSocket(KCommandSocket*s, bool success) 1982void MainWindow::deleteCommandSocket(KCommandSocket*s, int state)
1985{ 1983{
1986 if ( ! success ) { 1984 qDebug("MainWindow::deleteCommandSocket %d", state);
1987 setCaption( i18n("ERROR:Receiving remote file failed.") ); 1985
1986 //enum { success, errorW, errorR, quiet };
1987 if ( state == KCommandSocket::errorR ) {
1988 setCaption( i18n("ERROR: Receiving remote file failed.") );
1988 delete s; 1989 delete s;
1989 // pending : send stop 1990 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, KOPrefs::instance()->mActiveSyncPort.toUInt(), KOPrefs::instance()->mActiveSyncIP, this );
1991 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
1992 commandSocket->sendStop();
1990 return; 1993 return;
1991 1994
1992 } 1995 } else if ( state == KCommandSocket::errorW ) {
1993 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket()));
1994 qDebug("MainWindow::deleteCommandSocket ");
1995 delete s;
1996}
1997void MainWindow::deleteCommandSocketFinish(KCommandSocket* s, bool success )
1998{
1999 if ( ! success ) {
2000 setCaption( i18n("ERROR:Writing back file failed.") ); 1996 setCaption( i18n("ERROR:Writing back file failed.") );
2001 } else { 1997
2002 qDebug("Syncing succesful! "); 1998 } else if ( state == KCommandSocket::successR ) {
1999 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket()));
2000
2001 } else if ( state == KCommandSocket::successW ) {
2003 setCaption( i18n("Pi-Sync succesful!") ); 2002 setCaption( i18n("Pi-Sync succesful!") );
2004 } 2003 }
2005 qDebug("MainWindow::deleteCommandSocketFinish "); 2004
2006 delete s; 2005 delete s;
2007} 2006}
2007
2008void MainWindow::readFileFromSocket() 2008void MainWindow::readFileFromSocket()
2009{ 2009{
2010 // mTimerCommandSocket->stop(); 2010 QString fileName = syncFileName();
2011 setCaption( i18n("Receiving remote file ...") );
2012 qDebug("MainWindow::readFileFromSocket() ");
2013 QString fileName;
2014#ifdef _WIN32_
2015 fileName = defaultFileName() +"sync";
2016#else
2017 fileName = "/tmp/kopitempfile.ics";
2018#endif
2019
2020 setCaption( i18n("Remote file saved to temp file.") );
2021 //mCommandSocket = 0;
2022 mCurrentSyncProfile = 2 ; // last file
2023 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] );
2024 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
2025 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
2026 KSyncProfile* temp = new KSyncProfile ();
2027 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
2028 temp->readConfig(&config);
2029 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
2030 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs();
2031 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
2032 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
2033 KOPrefs::instance()->mWriteBackInFuture = 0;
2034 if ( temp->getWriteBackFuture() )
2035 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
2036 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
2037 delete temp;
2038 setCaption( i18n("Remote file saved to temp file.") ); 2011 setCaption( i18n("Remote file saved to temp file.") );
2039 if ( ! syncWithFile( fileName , true ) ) { 2012 if ( ! syncWithFile( fileName , true ) ) {
2040 setCaption( i18n("Syncing failed.") ); 2013 setCaption( i18n("Syncing failed.") );
2041 qDebug("Syncing failed "); 2014 qDebug("Syncing failed ");
2042 return; 2015 return;
2043 } 2016 }
2044
2045 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, KOPrefs::instance()->mActiveSyncPort.toUInt(), KOPrefs::instance()->mActiveSyncIP, this ); 2017 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, KOPrefs::instance()->mActiveSyncPort.toUInt(), KOPrefs::instance()->mActiveSyncIP, this );
2046 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, bool )), this, SLOT(deleteCommandSocketFinish(KCommandSocket*,bool)) ); 2018 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
2047 if ( KOPrefs::instance()->mWriteBackFile ) 2019 if ( KOPrefs::instance()->mWriteBackFile )
2048 commandSocket->writeFile( fileName ); 2020 commandSocket->writeFile( fileName );
2049 else 2021 else {
2050 commandSocket->sendStop(); 2022 commandSocket->sendStop();
2023 setCaption( i18n("Pi-Sync succesful!") );
2024 }
2051} 2025}
2052 2026
2053void MainWindow::syncLocalFile() 2027void MainWindow::syncLocalFile()
2054{ 2028{
2055 2029
2056 QString fn =KOPrefs::instance()->mLastSyncedLocalFile; 2030 QString fn =KOPrefs::instance()->mLastSyncedLocalFile;
2057 2031
2058 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 2032 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this );
2059 if ( fn == "" ) 2033 if ( fn == "" )
2060 return; 2034 return;
2061 //mView->setSyncDevice("local-file" ); 2035 //mView->setSyncDevice("local-file" );
2062 if ( syncWithFile( fn, false ) ) { 2036 if ( syncWithFile( fn, false ) ) {
2063 // Event* e = mView->getLastSyncEvent(); 2037 // Event* e = mView->getLastSyncEvent();
2064// e->setReadOnly( false ); 2038// e->setReadOnly( false );
2065// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); 2039// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile);
2066// e->setReadOnly( true ); 2040// e->setReadOnly( true );
2067 } 2041 }
2068 2042
2069} 2043}
2070 2044
2071bool MainWindow::syncWithFile( QString fn , bool quick ) 2045bool MainWindow::syncWithFile( QString fn , bool quick )
2072{ 2046{
2073 bool ret = false; 2047 bool ret = false;
2074 QFileInfo info; 2048 QFileInfo info;
2075 info.setFile( fn ); 2049 info.setFile( fn );
2076 QString mess; 2050 QString mess;
2077 bool loadbup = true; 2051 bool loadbup = true;
2078 if ( !info. exists() ) { 2052 if ( !info. exists() ) {
2079 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); 2053 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) );
2080 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2054 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2081 mess ); 2055 mess );
2082 return ret; 2056 return ret;
2083 } 2057 }
2084 int result = 0; 2058 int result = 0;
2085 if ( !quick ) { 2059 if ( !quick ) {
2086 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 2060 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
2087 result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2061 result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2088 mess, 2062 mess,
2089 i18n("Sync"), i18n("Cancel"), 0, 2063 i18n("Sync"), i18n("Cancel"), 0,
2090 0, 1 ); 2064 0, 1 );
2091 if ( result ) 2065 if ( result )
2092 return false; 2066 return false;
2093 } 2067 }
2094 if ( KOPrefs::instance()->mAskForPreferences ) 2068 if ( KOPrefs::instance()->mAskForPreferences )
2095 mView->edit_sync_options(); 2069 mView->edit_sync_options();
2096 if ( result == 0 ) { 2070 if ( result == 0 ) {
2097 //qDebug("Now sycing ... "); 2071 //qDebug("Now sycing ... ");
2098 if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) ) 2072 if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) )
2099 setCaption( i18n("Synchronization successful") ); 2073 setCaption( i18n("Synchronization successful") );
2100 else 2074 else
2101 setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); 2075 setCaption( i18n("Sync cancelled or failed. Nothing synced.") );
2102 if ( ! quick ) 2076 if ( ! quick )
2103 KOPrefs::instance()->mLastSyncedLocalFile = fn; 2077 KOPrefs::instance()->mLastSyncedLocalFile = fn;
2104 slotModifiedChanged( true ); 2078 slotModifiedChanged( true );
2105 } 2079 }
2106 return ret; 2080 return ret;
2107} 2081}
2108void MainWindow::quickSyncLocalFile() 2082void MainWindow::quickSyncLocalFile()
2109{ 2083{
2110 //mView->setSyncDevice("local-file" ); 2084 //mView->setSyncDevice("local-file" );
2111 //qDebug("quickSyncLocalFile() "); 2085 //qDebug("quickSyncLocalFile() ");
2112 if ( syncWithFile( KOPrefs::instance()->mLastSyncedLocalFile, false ) ) { 2086 if ( syncWithFile( KOPrefs::instance()->mLastSyncedLocalFile, false ) ) {
2113 // Event* e = mView->getLastSyncEvent(); 2087 // Event* e = mView->getLastSyncEvent();
2114// e->setReadOnly( false ); 2088// e->setReadOnly( false );
2115// e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); 2089// e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile);
2116// e->setReadOnly( true ); 2090// e->setReadOnly( true );
2117 2091
2118 } 2092 }
2119} 2093}
2120 2094
2121void MainWindow::confSync() 2095void MainWindow::confSync()
2122{ 2096{
2123 mView->confSync(); 2097 mView->confSync();
2124 fillSyncMenu(); 2098 fillSyncMenu();
2125} 2099}
2126void MainWindow::syncRemote( KSyncProfile* prof, bool ask) 2100void MainWindow::syncRemote( KSyncProfile* prof, bool ask)
2127{ 2101{
2128 QString question; 2102 QString question;
2129 if ( ask ) { 2103 if ( ask ) {
2130 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; 2104 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n";
2131 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 2105 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
2132 question, 2106 question,
2133 i18n("Yes"), i18n("No"), 2107 i18n("Yes"), i18n("No"),
2134 0, 0 ) != 0 ) 2108 0, 0 ) != 0 )
2135 return; 2109 return;
2136 } 2110 }
2137 QString command = prof->getPreSyncCommand(); 2111 QString command = prof->getPreSyncCommand();
2138 int fi; 2112 int fi;
2139 if ( (fi = command.find("$PWD$")) > 0 ) { 2113 if ( (fi = command.find("$PWD$")) > 0 ) {
2140 QString pwd = getPassword(); 2114 QString pwd = getPassword();
2141 command = command.left( fi )+ pwd + command.mid( fi+5 ); 2115 command = command.left( fi )+ pwd + command.mid( fi+5 );
2142 2116
2143 } 2117 }
2144 int maxlen = 30; 2118 int maxlen = 30;
2145 if ( QApplication::desktop()->width() > 320 ) 2119 if ( QApplication::desktop()->width() > 320 )
2146 maxlen += 25; 2120 maxlen += 25;
@@ -2410,231 +2384,230 @@ void KServerSocket::send_file()
2410 lay->setSpacing(7); 2384 lay->setSpacing(7);
2411 mSyncActionDialog->setFixedSize( 230, 120); 2385 mSyncActionDialog->setFixedSize( 230, 120);
2412 mSyncActionDialog->show(); 2386 mSyncActionDialog->show();
2413 qDebug("KSS::saving ... "); 2387 qDebug("KSS::saving ... ");
2414 emit saveFile(); 2388 emit saveFile();
2415 qApp->processEvents(); 2389 qApp->processEvents();
2416 QString fileName = mFileName; 2390 QString fileName = mFileName;
2417 QFile file( fileName ); 2391 QFile file( fileName );
2418 if (!file.open( IO_ReadOnly ) ) { 2392 if (!file.open( IO_ReadOnly ) ) {
2419 delete mSyncActionDialog; 2393 delete mSyncActionDialog;
2420 mSyncActionDialog = 0; 2394 mSyncActionDialog = 0;
2421 qDebug("KSS::error open file "); 2395 qDebug("KSS::error open file ");
2422 mSocket->close(); 2396 mSocket->close();
2423 if ( mSocket->state() == QSocket::Idle ) 2397 if ( mSocket->state() == QSocket::Idle )
2424 QTimer::singleShot( 10, this , SLOT ( discardClient())); 2398 QTimer::singleShot( 10, this , SLOT ( discardClient()));
2425 return ; 2399 return ;
2426 2400
2427 } 2401 }
2428 mSyncActionDialog->setCaption( i18n("Sending file...") ); 2402 mSyncActionDialog->setCaption( i18n("Sending file...") );
2429 QTextStream ts( &file ); 2403 QTextStream ts( &file );
2430 ts.setCodec( QTextCodec::codecForName("utf8") ); 2404 ts.setCodec( QTextCodec::codecForName("utf8") );
2431 QTextStream os( mSocket ); 2405 QTextStream os( mSocket );
2432 os.setCodec( QTextCodec::codecForName("utf8") ); 2406 os.setCodec( QTextCodec::codecForName("utf8") );
2433 //os.setEncoding( QTextStream::UnicodeUTF8 ); 2407 //os.setEncoding( QTextStream::UnicodeUTF8 );
2434 while ( ! ts.atEnd() ) { 2408 while ( ! ts.atEnd() ) {
2435 os << ts.readLine() << "\n"; 2409 os << ts.readLine() << "\n";
2436 } 2410 }
2437 //os << ts.read(); 2411 //os << ts.read();
2438 file.close(); 2412 file.close();
2439 mSyncActionDialog->setCaption( i18n("Waiting for synced file...") ); 2413 mSyncActionDialog->setCaption( i18n("Waiting for synced file...") );
2440 mSocket->close(); 2414 mSocket->close();
2441 if ( mSocket->state() == QSocket::Idle ) 2415 if ( mSocket->state() == QSocket::Idle )
2442 QTimer::singleShot( 10, this , SLOT ( discardClient())); 2416 QTimer::singleShot( 10, this , SLOT ( discardClient()));
2443} 2417}
2444void KServerSocket::get_file() 2418void KServerSocket::get_file()
2445{ 2419{
2446 mSyncActionDialog->setCaption( i18n("Receiving synced file...") ); 2420 mSyncActionDialog->setCaption( i18n("Receiving synced file...") );
2447 2421
2448 piTime.start(); 2422 piTime.start();
2449 piFileString = ""; 2423 piFileString = "";
2450 QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) )); 2424 QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) ));
2451} 2425}
2452 2426
2453 2427
2454void KServerSocket::readBackFileFromSocket() 2428void KServerSocket::readBackFileFromSocket()
2455{ 2429{
2456 //qDebug("readBackFileFromSocket() %d ", piTime.elapsed ()); 2430 //qDebug("readBackFileFromSocket() %d ", piTime.elapsed ());
2457 while ( mSocket->canReadLine () ) { 2431 while ( mSocket->canReadLine () ) {
2458 piTime.restart(); 2432 piTime.restart();
2459 QString line = mSocket->readLine (); 2433 QString line = mSocket->readLine ();
2460 piFileString += line; 2434 piFileString += line;
2461 //qDebug("readline: %s ", line.latin1()); 2435 //qDebug("readline: %s ", line.latin1());
2462 mSyncActionDialog->setCaption( i18n("Received %1 bytes").arg( piFileString.length() ) ); 2436 mSyncActionDialog->setCaption( i18n("Received %1 bytes").arg( piFileString.length() ) );
2463 2437
2464 } 2438 }
2465 if ( piTime.elapsed () < 3000 ) { 2439 if ( piTime.elapsed () < 3000 ) {
2466 // wait for more 2440 // wait for more
2467 //qDebug("waitformore "); 2441 //qDebug("waitformore ");
2468 QTimer::singleShot( 100, this , SLOT (readBackFileFromSocket( ) )); 2442 QTimer::singleShot( 100, this , SLOT (readBackFileFromSocket( ) ));
2469 return; 2443 return;
2470 } 2444 }
2471 QString fileName = mFileName; 2445 QString fileName = mFileName;
2472 QFile file ( fileName ); 2446 QFile file ( fileName );
2473 if (!file.open( IO_WriteOnly ) ) { 2447 if (!file.open( IO_WriteOnly ) ) {
2474 delete mSyncActionDialog; 2448 delete mSyncActionDialog;
2475 mSyncActionDialog = 0; 2449 mSyncActionDialog = 0;
2476 qDebug("error open cal file "); 2450 qDebug("error open cal file ");
2477 piFileString = ""; 2451 piFileString = "";
2478 emit file_received( false ); 2452 emit file_received( false );
2479 return ; 2453 return ;
2480 2454
2481 } 2455 }
2482 2456
2483 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); 2457 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
2484 QTextStream ts ( &file ); 2458 QTextStream ts ( &file );
2485 ts.setCodec( QTextCodec::codecForName("utf8") ); 2459 ts.setCodec( QTextCodec::codecForName("utf8") );
2486 mSyncActionDialog->setCaption( i18n("Writing file to disk...") ); 2460 mSyncActionDialog->setCaption( i18n("Writing file to disk...") );
2487 ts << piFileString; 2461 ts << piFileString;
2488 mSocket->close(); 2462 mSocket->close();
2489 if ( mSocket->state() == QSocket::Idle ) 2463 if ( mSocket->state() == QSocket::Idle )
2490 QTimer::singleShot( 10, this , SLOT ( discardClient())); 2464 QTimer::singleShot( 10, this , SLOT ( discardClient()));
2491 file.close(); 2465 file.close();
2492 delete mSyncActionDialog; 2466 delete mSyncActionDialog;
2493 mSyncActionDialog = 0; 2467 mSyncActionDialog = 0;
2494 piFileString = ""; 2468 piFileString = "";
2495 emit file_received( true ); 2469 emit file_received( true );
2496 2470
2497} 2471}
2498 2472
2499KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent, const char * name ): QObject( parent, name ) 2473KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent, const char * name ): QObject( parent, name )
2500{ 2474{
2501 mPassWord = password; 2475 mPassWord = password;
2502 mSocket = 0; 2476 mSocket = 0;
2503 mPort = port; 2477 mPort = port;
2504 mHost = host; 2478 mHost = host;
2505 2479
2506 mRetVal = false; 2480 mRetVal = quiet;
2507 mTimerSocket = new QTimer ( this ); 2481 mTimerSocket = new QTimer ( this );
2508 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( deleteSocket() ) ); 2482 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( deleteSocket() ) );
2509} 2483}
2510void KCommandSocket::readFile( QString fn ) 2484void KCommandSocket::readFile( QString fn )
2511{ 2485{
2512 if ( !mSocket ) { 2486 if ( !mSocket ) {
2513 mSocket = new QSocket( this ); 2487 mSocket = new QSocket( this );
2514 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) ); 2488 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) );
2515 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 2489 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
2516 } 2490 }
2517 mFileString = ""; 2491 mFileString = "";
2518 mFileName = fn; 2492 mFileName = fn;
2519 mFirst = true; 2493 mFirst = true;
2520 mSocket->connectToHost( mHost, mPort ); 2494 mSocket->connectToHost( mHost, mPort );
2521 QTextStream os( mSocket ); 2495 QTextStream os( mSocket );
2522 os.setEncoding( QTextStream::UnicodeUTF8 ); 2496 os.setEncoding( QTextStream::UnicodeUTF8 );
2523 os << "GET " << mPassWord << "\r\n"; 2497 os << "GET " << mPassWord << "\r\n";
2524 mTimerSocket->start( 10000 ); 2498 mTimerSocket->start( 10000 );
2525} 2499}
2526 2500
2527void KCommandSocket::writeFile( QString fileName ) 2501void KCommandSocket::writeFile( QString fileName )
2528{ 2502{
2529 if ( !mSocket ) { 2503 if ( !mSocket ) {
2530 mSocket = new QSocket( this ); 2504 mSocket = new QSocket( this );
2531 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 2505 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
2532 connect( mSocket, SIGNAL(connected ()), this, SLOT(writeFileToSocket()) ); 2506 connect( mSocket, SIGNAL(connected ()), this, SLOT(writeFileToSocket()) );
2533 } 2507 }
2534 mFileName = fileName ; 2508 mFileName = fileName ;
2535 mSocket->connectToHost( mHost, mPort ); 2509 mSocket->connectToHost( mHost, mPort );
2536} 2510}
2537void KCommandSocket::writeFileToSocket() 2511void KCommandSocket::writeFileToSocket()
2538{ 2512{
2539 QFile file2( mFileName ); 2513 QFile file2( mFileName );
2540 if (!file2.open( IO_ReadOnly ) ) { 2514 if (!file2.open( IO_ReadOnly ) ) {
2541 mRetVal= false; 2515 mRetVal= errorW;
2542 mSocket->close(); 2516 mSocket->close();
2543 if ( mSocket->state() == QSocket::Idle ) 2517 if ( mSocket->state() == QSocket::Idle )
2544 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 2518 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
2545 return ; 2519 return ;
2546 } 2520 }
2547 QTextStream ts2( &file2 ); 2521 QTextStream ts2( &file2 );
2548 ts2.setCodec( QTextCodec::codecForName("utf8") ); 2522 ts2.setCodec( QTextCodec::codecForName("utf8") );
2549 QTextStream os2( mSocket ); 2523 QTextStream os2( mSocket );
2550 os2.setCodec( QTextCodec::codecForName("utf8") ); 2524 os2.setCodec( QTextCodec::codecForName("utf8") );
2551 os2 << "PUT " << mPassWord << "\r\n";; 2525 os2 << "PUT " << mPassWord << "\r\n";;
2552 while ( ! ts2.atEnd() ) { 2526 while ( ! ts2.atEnd() ) {
2553 os2 << ts2.readLine() << "\n"; 2527 os2 << ts2.readLine() << "\n";
2554 } 2528 }
2555 mRetVal= true; 2529 mRetVal= successW;
2556 file2.close(); 2530 file2.close();
2557 mSocket->close(); 2531 mSocket->close();
2558 if ( mSocket->state() == QSocket::Idle ) 2532 if ( mSocket->state() == QSocket::Idle )
2559 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 2533 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
2560} 2534}
2561void KCommandSocket::sendStop() 2535void KCommandSocket::sendStop()
2562{ 2536{
2563 if ( !mSocket ) { 2537 if ( !mSocket ) {
2564 mSocket = new QSocket( this ); 2538 mSocket = new QSocket( this );
2565 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 2539 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
2566 } 2540 }
2567 mSocket->connectToHost( mHost, mPort ); 2541 mSocket->connectToHost( mHost, mPort );
2568 QTextStream os2( mSocket ); 2542 QTextStream os2( mSocket );
2569 os2.setCodec( QTextCodec::codecForName("utf8") ); 2543 os2.setCodec( QTextCodec::codecForName("utf8") );
2570 os2 << "STOP\r\n"; 2544 os2 << "STOP\r\n";
2571 mRetVal= true;
2572 mSocket->close(); 2545 mSocket->close();
2573 if ( mSocket->state() == QSocket::Idle ) 2546 if ( mSocket->state() == QSocket::Idle )
2574 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 2547 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
2575} 2548}
2576 2549
2577void KCommandSocket::startReadFileFromSocket() 2550void KCommandSocket::startReadFileFromSocket()
2578{ 2551{
2579 if ( ! mFirst ) 2552 if ( ! mFirst )
2580 return; 2553 return;
2581 mFirst = false; 2554 mFirst = false;
2582 mTimerSocket->stop(); 2555 mTimerSocket->stop();
2583 mFileString = ""; 2556 mFileString = "";
2584 mTime.start(); 2557 mTime.start();
2585 QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) )); 2558 QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) ));
2586 2559
2587} 2560}
2588void KCommandSocket::readFileFromSocket() 2561void KCommandSocket::readFileFromSocket()
2589{ 2562{
2590 //qDebug("readBackFileFromSocket() %d ", mTime.elapsed ()); 2563 //qDebug("readBackFileFromSocket() %d ", mTime.elapsed ());
2591 while ( mSocket->canReadLine () ) { 2564 while ( mSocket->canReadLine () ) {
2592 mTime.restart(); 2565 mTime.restart();
2593 QString line = mSocket->readLine (); 2566 QString line = mSocket->readLine ();
2594 mFileString += line; 2567 mFileString += line;
2595 //qDebug("readline: %s ", line.latin1()); 2568 //qDebug("readline: %s ", line.latin1());
2596 } 2569 }
2597 if ( mTime.elapsed () < 3000 ) { 2570 if ( mTime.elapsed () < 3000 ) {
2598 // wait for more 2571 // wait for more
2599 //qDebug("waitformore "); 2572 //qDebug("waitformore ");
2600 QTimer::singleShot( 100, this , SLOT (readFileFromSocket( ) )); 2573 QTimer::singleShot( 100, this , SLOT (readFileFromSocket( ) ));
2601 return; 2574 return;
2602 } 2575 }
2603 QString fileName = mFileName; 2576 QString fileName = mFileName;
2604 QFile file ( fileName ); 2577 QFile file ( fileName );
2605 if (!file.open( IO_WriteOnly ) ) { 2578 if (!file.open( IO_WriteOnly ) ) {
2606 mFileString = ""; 2579 mFileString = "";
2607 mRetVal = false; 2580 mRetVal = errorR;
2608 qDebug("Error open temp calender file for writing: %s",fileName.latin1() ); 2581 qDebug("Error open temp calender file for writing: %s",fileName.latin1() );
2609 deleteSocket(); 2582 deleteSocket();
2610 return ; 2583 return ;
2611 2584
2612 } 2585 }
2613 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); 2586 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
2614 QTextStream ts ( &file ); 2587 QTextStream ts ( &file );
2615 ts.setCodec( QTextCodec::codecForName("utf8") ); 2588 ts.setCodec( QTextCodec::codecForName("utf8") );
2616 ts << mFileString; 2589 ts << mFileString;
2617 file.close(); 2590 file.close();
2618 mFileString = ""; 2591 mFileString = "";
2619 mRetVal = true; 2592 mRetVal = successR;
2620 mSocket->close(); 2593 mSocket->close();
2621 // if state is not idle, deleteSocket(); is called via 2594 // if state is not idle, deleteSocket(); is called via
2622 // connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 2595 // connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
2623 if ( mSocket->state() == QSocket::Idle ) 2596 if ( mSocket->state() == QSocket::Idle )
2624 deleteSocket(); 2597 deleteSocket();
2625} 2598}
2626 2599
2627void KCommandSocket::deleteSocket() 2600void KCommandSocket::deleteSocket()
2628{ 2601{
2629 if ( mTimerSocket->isActive () ) { 2602 if ( mTimerSocket->isActive () ) {
2630 mTimerSocket->stop(); 2603 mTimerSocket->stop();
2631 KMessageBox::information( 0, i18n("ERROR:\nConnection to remote host timed out!\nDid you forgot to enable\nsyncing on remote host? ")); 2604 KMessageBox::information( 0, i18n("ERROR:\nConnection to remote host timed out!\nDid you forgot to enable\nsyncing on remote host? "));
2632 mRetVal = false; 2605 mRetVal = errorR;
2633 } 2606 }
2634 //qDebug("KCommandSocket::deleteSocket() %d", mRetVal ); 2607 //qDebug("KCommandSocket::deleteSocket() %d", mRetVal );
2635 if ( mSocket) 2608 if ( mSocket)
2636 delete mSocket; 2609 delete mSocket;
2637 mSocket = 0; 2610 mSocket = 0;
2638 emit commandFinished( this, mRetVal ); 2611 emit commandFinished( this, mRetVal );
2639} 2612}
2640 2613
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 90b3a88..4da371e 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -1,210 +1,210 @@
1#ifndef KORGE_MAINWINDOW_H 1#ifndef KORGE_MAINWINDOW_H
2#define KORGE_MAINWINDOW_H 2#define KORGE_MAINWINDOW_H
3 3
4#include <qmainwindow.h> 4#include <qmainwindow.h>
5#include <qtimer.h> 5#include <qtimer.h>
6#include <qdict.h> 6#include <qdict.h>
7#include <qfile.h> 7#include <qfile.h>
8#include <qsocket.h> 8#include <qsocket.h>
9#include <qtextstream.h> 9#include <qtextstream.h>
10#include <qregexp.h> 10#include <qregexp.h>
11 11
12#include <libkcal/incidence.h> 12#include <libkcal/incidence.h>
13#include "simplealarmclient.h" 13#include "simplealarmclient.h"
14 14
15class QAction; 15class QAction;
16class CalendarView; 16class CalendarView;
17class KSyncProfile; 17class KSyncProfile;
18#ifdef DESKTOP_VERSION 18#ifdef DESKTOP_VERSION
19 19
20#define QPEToolBar QToolBar 20#define QPEToolBar QToolBar
21#define QPEMenuBar QMenuBar 21#define QPEMenuBar QMenuBar
22#endif 22#endif
23class QPEToolBar; 23class QPEToolBar;
24#include <qserversocket.h> 24#include <qserversocket.h>
25#include <qsocket.h> 25#include <qsocket.h>
26#include <qnetworkprotocol.h> 26#include <qnetworkprotocol.h>
27 27
28class KServerSocket : public QServerSocket 28class KServerSocket : public QServerSocket
29{ 29{
30 Q_OBJECT 30 Q_OBJECT
31 31
32public: 32public:
33 KServerSocket ( QString password, Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 ); 33 KServerSocket ( QString password, Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 );
34 34
35 void newConnection ( int socket ) ; 35 void newConnection ( int socket ) ;
36 void setFileName( QString fn ) {mFileName = fn;}; 36 void setFileName( QString fn ) {mFileName = fn;};
37 37
38signals: 38signals:
39 //void sendFile(QSocket*); 39 //void sendFile(QSocket*);
40 //void getFile(QSocket*); 40 //void getFile(QSocket*);
41 void file_received( bool ); 41 void file_received( bool );
42 //void file_sent(); 42 //void file_sent();
43 void saveFile(); 43 void saveFile();
44 void endConnect(); 44 void endConnect();
45private slots: 45private slots:
46 void discardClient(); 46 void discardClient();
47 void readClient(); 47 void readClient();
48 void readBackFileFromSocket(); 48 void readBackFileFromSocket();
49 private : 49 private :
50 void send_file(); 50 void send_file();
51 void get_file(); 51 void get_file();
52 void end_connect(); 52 void end_connect();
53 QDialog* mSyncActionDialog; 53 QDialog* mSyncActionDialog;
54 QSocket* mSocket; 54 QSocket* mSocket;
55 QString mPassWord; 55 QString mPassWord;
56 QString mFileName; 56 QString mFileName;
57 QTime piTime; 57 QTime piTime;
58 QString piFileString; 58 QString piFileString;
59}; 59};
60 60
61class KCommandSocket : public QObject 61class KCommandSocket : public QObject
62{ 62{
63 Q_OBJECT 63 Q_OBJECT
64
65public: 64public:
65 enum state { successR, errorR, successW, errorW, quiet };
66 KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, const char * name=0 ); 66 KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, const char * name=0 );
67 void readFile( QString ); 67 void readFile( QString );
68 void writeFile( QString ); 68 void writeFile( QString );
69 void sendStop(); 69 void sendStop();
70 70
71 71
72signals: 72signals:
73 void commandFinished( KCommandSocket*, bool ); 73 void commandFinished( KCommandSocket*, int );
74private slots: 74private slots:
75 void startReadFileFromSocket(); 75 void startReadFileFromSocket();
76 void readFileFromSocket(); 76 void readFileFromSocket();
77 void deleteSocket(); 77 void deleteSocket();
78 void writeFileToSocket(); 78 void writeFileToSocket();
79 private : 79 private :
80 QSocket* mSocket; 80 QSocket* mSocket;
81 QString mPassWord; 81 QString mPassWord;
82 Q_UINT16 mPort; 82 Q_UINT16 mPort;
83 QString mHost; 83 QString mHost;
84 QString mFileName; 84 QString mFileName;
85 QTimer* mTimerSocket; 85 QTimer* mTimerSocket;
86 bool mRetVal; 86 int mRetVal;
87 QTime mTime; 87 QTime mTime;
88 QString mFileString; 88 QString mFileString;
89 bool mFirst; 89 bool mFirst;
90}; 90};
91 91
92namespace KCal { 92namespace KCal {
93class CalendarLocal; 93class CalendarLocal;
94} 94}
95 95
96using namespace KCal; 96using namespace KCal;
97 97
98class MainWindow : public QMainWindow 98class MainWindow : public QMainWindow
99{ 99{
100 Q_OBJECT 100 Q_OBJECT
101 public: 101 public:
102 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); 102 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = "");
103 ~MainWindow(); 103 ~MainWindow();
104 public slots: 104 public slots:
105 virtual void showMaximized (); 105 virtual void showMaximized ();
106 void configureAgenda( int ); 106 void configureAgenda( int );
107 void recieve( const QCString& msg, const QByteArray& data ); 107 void recieve( const QCString& msg, const QByteArray& data );
108 static QString defaultFileName(); 108 static QString defaultFileName();
109 static QString syncFileName();
109 static QString resourcePath(); 110 static QString resourcePath();
110 protected slots: 111 protected slots:
111 void setCaptionToDates(); 112 void setCaptionToDates();
112 int ringSync(); 113 int ringSync();
113 void multiSync( bool askforPrefs = false ); 114 void multiSync( bool askforPrefs = false );
114 void about(); 115 void about();
115 void licence(); 116 void licence();
116 void faq(); 117 void faq();
117 void usertrans(); 118 void usertrans();
118 void features(); 119 void features();
119 void synchowto(); 120 void synchowto();
120 void whatsNew(); 121 void whatsNew();
121 void keyBindings(); 122 void keyBindings();
122 void aboutAutoSaving();; 123 void aboutAutoSaving();;
123 void aboutKnownBugs(); 124 void aboutKnownBugs();
124 125
125 void processIncidenceSelection( Incidence * ); 126 void processIncidenceSelection( Incidence * );
126 127
127 void importQtopia(); 128 void importQtopia();
128 void importBday(); 129 void importBday();
129 void importOL(); 130 void importOL();
130 void importIcal(); 131 void importIcal();
131 void importFile( QString, bool ); 132 void importFile( QString, bool );
132 void quickImportIcal(); 133 void quickImportIcal();
133 134
134 void slotModifiedChanged( bool ); 135 void slotModifiedChanged( bool );
135 136
136 void save(); 137 void save();
137 void configureToolBar( int ); 138 void configureToolBar( int );
138 void printSel(); 139 void printSel();
139 void printCal(); 140 void printCal();
140 void saveCalendar(); 141 void saveCalendar();
141 void loadCalendar(); 142 void loadCalendar();
142 void exportVCalendar(); 143 void exportVCalendar();
143 void fillFilterMenu(); 144 void fillFilterMenu();
144 void selectFilter( int ); 145 void selectFilter( int );
145 146
146 void slotSyncMenu( int ); 147 void slotSyncMenu( int );
147 void syncSSH(); 148 void syncSSH();
148 void confSync(); 149 void confSync();
149 void syncSharp(); 150 void syncSharp();
150 void syncPhone(); 151 void syncPhone();
151 void syncPi(); 152 void syncPi();
152 void syncLocalFile(); 153 void syncLocalFile();
153 bool syncWithFile( QString, bool ); 154 bool syncWithFile( QString, bool );
154 void quickSyncLocalFile(); 155 void quickSyncLocalFile();
155 156
156 157
157 protected: 158 protected:
158 void displayText( QString, QString); 159 void displayText( QString, QString);
159 void displayFile( QString, QString); 160 void displayFile( QString, QString);
160 161
161 void enableIncidenceActions( bool ); 162 void enableIncidenceActions( bool );
162 163
163 private slots: 164 private slots:
164 QSocket* piSocket; 165 QSocket* piSocket;
165 QString piFileString; 166 QString piFileString;
166 QTime piTime; 167 QTime piTime;
167 void deleteCommandSocket(KCommandSocket* s, bool success); 168 void deleteCommandSocket(KCommandSocket* s, int state );
168 void deleteCommandSocketFinish(KCommandSocket* s, bool success);
169 void fillSyncMenu(); 169 void fillSyncMenu();
170 void getFile( bool ); 170 void getFile( bool );
171 void readFileFromSocket(); 171 void readFileFromSocket();
172 private: 172 private:
173 //QTimer* mTimerCommandSocket; 173 //QTimer* mTimerCommandSocket;
174 QString mPassWordPiSync; 174 QString mPassWordPiSync;
175 KServerSocket * mServerSocket; 175 KServerSocket * mServerSocket;
176 bool mClosed; 176 bool mClosed;
177 void saveOnClose(); 177 void saveOnClose();
178 int mCurrentSyncProfile; 178 int mCurrentSyncProfile;
179 void enableQuick(); 179 void enableQuick();
180 void performQuickQuick(); 180 void performQuickQuick();
181 void syncRemote( KSyncProfile* , bool ask = true); 181 void syncRemote( KSyncProfile* , bool ask = true);
182 bool mFlagKeyPressed; 182 bool mFlagKeyPressed;
183 bool mBlockAtStartup; 183 bool mBlockAtStartup;
184 QPEToolBar *iconToolBar; 184 QPEToolBar *iconToolBar;
185 void initActions(); 185 void initActions();
186 void setDefaultPreferences(); 186 void setDefaultPreferences();
187 void keyPressEvent ( QKeyEvent * ) ; 187 void keyPressEvent ( QKeyEvent * ) ;
188 void keyReleaseEvent ( QKeyEvent * ) ; 188 void keyReleaseEvent ( QKeyEvent * ) ;
189 QPopupMenu *configureToolBarMenu; 189 QPopupMenu *configureToolBarMenu;
190 QPopupMenu *selectFilterMenu; 190 QPopupMenu *selectFilterMenu;
191 QPopupMenu *configureAgendaMenu, *syncMenu; 191 QPopupMenu *configureAgendaMenu, *syncMenu;
192 CalendarLocal *mCalendar; 192 CalendarLocal *mCalendar;
193 CalendarView *mView; 193 CalendarView *mView;
194 QString getPassword(); 194 QString getPassword();
195 QAction *mNewSubTodoAction; 195 QAction *mNewSubTodoAction;
196 196
197 QAction *mShowAction; 197 QAction *mShowAction;
198 QAction *mEditAction; 198 QAction *mEditAction;
199 QAction *mDeleteAction; 199 QAction *mDeleteAction;
200 void closeEvent( QCloseEvent* ce ); 200 void closeEvent( QCloseEvent* ce );
201 SimpleAlarmClient mAlarmClient; 201 SimpleAlarmClient mAlarmClient;
202 QTimer mSaveTimer; 202 QTimer mSaveTimer;
203 bool mBlockSaveFlag; 203 bool mBlockSaveFlag;
204 bool mCalendarModifiedFlag; 204 bool mCalendarModifiedFlag;
205 QPixmap loadPixmap( QString ); 205 QPixmap loadPixmap( QString );
206 QDialog * mSyncActionDialog; 206 QDialog * mSyncActionDialog;
207}; 207};
208 208
209 209
210#endif 210#endif