summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp105
-rw-r--r--korganizer/mainwindow.h38
2 files changed, 101 insertions, 42 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 2e6b5c8..460bbdc 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,74 +1,76 @@
1#include <stdlib.h> 1#include <stdlib.h>
2 2
3#include <qaction.h> 3#include <qaction.h>
4#include <qpopupmenu.h> 4#include <qpopupmenu.h>
5#include <qpainter.h> 5#include <qpainter.h>
6#include <qwhatsthis.h> 6#include <qwhatsthis.h>
7#include <qpushbutton.h>
7#include <qmessagebox.h> 8#include <qmessagebox.h>
8#include <qlineedit.h> 9#include <qlineedit.h>
9#include <qtextcodec.h> 10#include <qtextcodec.h>
10#include <qfile.h> 11#include <qfile.h>
11#include <qdir.h> 12#include <qdir.h>
12#include <qapp.h> 13#include <qapp.h>
13#include <qfileinfo.h> 14#include <qfileinfo.h>
14#include <qlabel.h> 15#include <qlabel.h>
15#include <qmap.h> 16#include <qmap.h>
16#include <qwmatrix.h> 17#include <qwmatrix.h>
17#include <qtextbrowser.h> 18#include <qtextbrowser.h>
18#include <qtextstream.h> 19#include <qtextstream.h>
19#ifndef DESKTOP_VERSION 20#ifndef DESKTOP_VERSION
20#include <qpe/global.h> 21#include <qpe/global.h>
21#include <qpe/qpemenubar.h> 22#include <qpe/qpemenubar.h>
22#include <qpe/qpetoolbar.h> 23#include <qpe/qpetoolbar.h>
23#include <qpe/resource.h> 24#include <qpe/resource.h>
24#include <qpe/qpeapplication.h> 25#include <qpe/qpeapplication.h>
25#include <qtopia/alarmserver.h> 26#include <qtopia/alarmserver.h>
26#include <qtopia/qcopenvelope_qws.h> 27#include <qtopia/qcopenvelope_qws.h>
28#include <unistd.h> // for sleep
27#else 29#else
28#include <qmenubar.h> 30#include <qmenubar.h>
29#include <qtoolbar.h> 31#include <qtoolbar.h>
30#include <qapplication.h> 32#include <qapplication.h>
31//#include <resource.h> 33//#include <resource.h>
32 34
33#endif 35#endif
34#include <libkcal/calendarlocal.h> 36#include <libkcal/calendarlocal.h>
35#include <libkcal/todo.h> 37#include <libkcal/todo.h>
36#include <libkdepim/ksyncprofile.h> 38#include <libkdepim/ksyncprofile.h>
37#include <libkcal/kincidenceformatter.h> 39#include <libkcal/kincidenceformatter.h>
38#include <libkdepim/kpimglobalprefs.h> 40#include <libkdepim/kpimglobalprefs.h>
39 41
40#include "calendarview.h" 42#include "calendarview.h"
41#include "koviewmanager.h" 43#include "koviewmanager.h"
42#include "datenavigator.h" 44#include "datenavigator.h"
43#include "koagendaview.h" 45#include "koagendaview.h"
44#include "koagenda.h" 46#include "koagenda.h"
45#include "kodialogmanager.h" 47#include "kodialogmanager.h"
46#include "kdialogbase.h" 48#include "kdialogbase.h"
47#include "kapplication.h" 49#include "kapplication.h"
48#include "kofilterview.h" 50#include "kofilterview.h"
49#include "kstandarddirs.h" 51#include "kstandarddirs.h"
50#include "koprefs.h" 52#include "koprefs.h"
51#include "kfiledialog.h" 53#include "kfiledialog.h"
52#include "koglobals.h" 54#include "koglobals.h"
53#include "kglobal.h" 55#include "kglobal.h"
54#include "klocale.h" 56#include "klocale.h"
55#include "kconfig.h" 57#include "kconfig.h"
56#include "simplealarmclient.h" 58#include "simplealarmclient.h"
57#include "externalapphandler.h" 59#include "externalapphandler.h"
58 60
59using namespace KCal; 61using namespace KCal;
60#ifndef _WIN32_ 62#ifndef _WIN32_
61#include <unistd.h> 63#include <unistd.h>
62#else 64#else
63#include "koimportoldialog.h" 65#include "koimportoldialog.h"
64#endif 66#endif
65#include "mainwindow.h" 67#include "mainwindow.h"
66 68
67int globalFlagBlockStartup; 69int globalFlagBlockStartup;
68MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 70MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
69 QMainWindow( parent, name ) 71 QMainWindow( parent, name )
70{ 72{
71 73
72#ifdef DESKTOP_VERSION 74#ifdef DESKTOP_VERSION
73 setFont( QFont("Arial"), 14 ); 75 setFont( QFont("Arial"), 14 );
74#endif 76#endif
@@ -1101,102 +1103,97 @@ void MainWindow::setDefaultPreferences()
1101 1103
1102QString MainWindow::resourcePath() 1104QString MainWindow::resourcePath()
1103{ 1105{
1104 return KGlobal::iconLoader()->iconPath(); 1106 return KGlobal::iconLoader()->iconPath();
1105} 1107}
1106 1108
1107void MainWindow::displayText( QString text ,QString cap ) 1109void MainWindow::displayText( QString text ,QString cap )
1108{ 1110{
1109 QDialog dia( this, "name", true ); ; 1111 QDialog dia( this, "name", true ); ;
1110 dia.setCaption( cap ); 1112 dia.setCaption( cap );
1111 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1113 QVBoxLayout* lay = new QVBoxLayout( &dia );
1112 lay->setSpacing( 3 ); 1114 lay->setSpacing( 3 );
1113 lay->setMargin( 3 ); 1115 lay->setMargin( 3 );
1114 QTextBrowser tb ( &dia ); 1116 QTextBrowser tb ( &dia );
1115 lay->addWidget( &tb ); 1117 lay->addWidget( &tb );
1116 tb.setText( text ); 1118 tb.setText( text );
1117#ifdef DESKTOP_VERSION 1119#ifdef DESKTOP_VERSION
1118 dia.resize( 640, 480); 1120 dia.resize( 640, 480);
1119#else 1121#else
1120 dia.showMaximized(); 1122 dia.showMaximized();
1121#endif 1123#endif
1122 dia.exec(); 1124 dia.exec();
1123} 1125}
1124void MainWindow::displayFile( QString fn, QString cap ) 1126void MainWindow::displayFile( QString fn, QString cap )
1125{ 1127{
1126 QString fileName = resourcePath() + fn; 1128 QString fileName = resourcePath() + fn;
1127 QString text; 1129 QString text;
1128 QFile file( fileName ); 1130 QFile file( fileName );
1129 if (!file.open( IO_ReadOnly ) ) { 1131 if (!file.open( IO_ReadOnly ) ) {
1130 return ; 1132 return ;
1131 1133
1132 } 1134 }
1133 QTextStream ts( &file ); 1135 QTextStream ts( &file );
1134 text = ts.read(); 1136 text = ts.read();
1135 file.close(); 1137 file.close();
1136 displayText( text, cap); 1138 displayText( text, cap);
1137} 1139}
1138void MainWindow::features() 1140void MainWindow::features()
1139{ 1141{
1140 1142
1141 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); 1143 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") );
1142} 1144}
1143 1145
1144void MainWindow::usertrans() 1146void MainWindow::usertrans()
1145{ 1147{
1146 1148
1147 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); 1149 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") );
1148} 1150}
1149#if 0 1151
1150#include <libkcal/vcalformat.h>
1151#include <libkcal/event.h>
1152#include <libkcal/todo.h>
1153#include <libkcal/incidence.h>
1154#endif
1155void MainWindow::synchowto() 1152void MainWindow::synchowto()
1156{ 1153{
1157#if 0 1154#if 0
1158 QPtrList<Incidence> er = mCalendar->rawIncidences(); 1155 QPtrList<Incidence> er = mCalendar->rawIncidences();
1159 Incidence* inR = er.first(); 1156 Incidence* inR = er.first();
1160 VCalFormat vf; 1157 VCalFormat vf;
1161 QString strout; 1158 QString strout;
1162 while ( inR ) { 1159 while ( inR ) {
1163 if ( inR->type() == "Todo" ) 1160 if ( inR->type() == "Todo" )
1164 strout = vf.todoToString( (Todo *) inR ); 1161 strout = vf.todoToString( (Todo *) inR );
1165 if ( inR->type() == "Event" ) 1162 if ( inR->type() == "Event" )
1166 strout = vf.eventToString( (Event *) inR ); 1163 strout = vf.eventToString( (Event *) inR );
1167 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() ); 1164 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() );
1168 inR = er.next(); 1165 inR = er.next();
1169 } 1166 }
1170#endif 1167#endif
1171 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") ); 1168 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") );
1172} 1169}
1173void MainWindow::faq() 1170void MainWindow::faq()
1174{ 1171{
1175 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") ); 1172 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") );
1176 1173
1177} 1174}
1178void MainWindow::whatsNew() 1175void MainWindow::whatsNew()
1179{ 1176{
1180 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") ); 1177 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") );
1181 1178
1182} 1179}
1183void MainWindow::licence() 1180void MainWindow::licence()
1184{ 1181{
1185 KApplication::showLicence(); 1182 KApplication::showLicence();
1186 1183
1187} 1184}
1188void MainWindow::about() 1185void MainWindow::about()
1189{ 1186{
1190 QString version; 1187 QString version;
1191#include <../version> 1188#include <../version>
1192 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1189 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1193 i18n("KOrganizer/Platform-independent\n") + 1190 i18n("KOrganizer/Platform-independent\n") +
1194 "(KO/Pi) " + version + " - " + 1191 "(KO/Pi) " + version + " - " +
1195 1192
1196#ifdef DESKTOP_VERSION 1193#ifdef DESKTOP_VERSION
1197 i18n("Desktop Edition\n") + 1194 i18n("Desktop Edition\n") +
1198#else 1195#else
1199 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + 1196 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") +
1200#endif 1197#endif
1201 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") ); 1198 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") );
1202} 1199}
@@ -1383,97 +1380,96 @@ void MainWindow::importBday()
1383} 1380}
1384void MainWindow::importQtopia() 1381void MainWindow::importQtopia()
1385{ 1382{
1386#ifndef DESKTOP_VERSION 1383#ifndef DESKTOP_VERSION
1387 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1384 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1388 i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"), 1385 i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"),
1389 i18n("Import!"), i18n("Cancel"), 0, 1386 i18n("Import!"), i18n("Cancel"), 0,
1390 0, 1 ); 1387 0, 1 );
1391 if ( result == 0 ) { 1388 if ( result == 0 ) {
1392 QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); 1389 QString datebook = Global::applicationFileName( "datebook", "datebook.xml");
1393 QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); 1390 QString todolist = Global::applicationFileName( "todolist", "todolist.xml");
1394 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; 1391 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml";
1395 mView->importQtopia( categories, datebook, todolist ); 1392 mView->importQtopia( categories, datebook, todolist );
1396 } 1393 }
1397#else 1394#else
1398 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1395 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1399 i18n("Not supported \non desktop!\n"), 1396 i18n("Not supported \non desktop!\n"),
1400 i18n("Ok"), i18n("Cancel"), 0, 1397 i18n("Ok"), i18n("Cancel"), 0,
1401 0, 1 ); 1398 0, 1 );
1402 1399
1403#endif 1400#endif
1404} 1401}
1405 1402
1406void MainWindow::saveOnClose() 1403void MainWindow::saveOnClose()
1407{ 1404{
1408 KOPrefs *p = KOPrefs::instance(); 1405 KOPrefs *p = KOPrefs::instance();
1409 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); 1406 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );
1410 p->mToolBarUp = iconToolBar->x() > width()/2 || 1407 p->mToolBarUp = iconToolBar->x() > width()/2 ||
1411 iconToolBar->y() > height()/2; 1408 iconToolBar->y() > height()/2;
1412 mView->writeSettings(); 1409 mView->writeSettings();
1413 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) 1410 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName()))
1414 save(); 1411 save();
1415} 1412}
1416void MainWindow::slotModifiedChanged( bool changed ) 1413void MainWindow::slotModifiedChanged( bool changed )
1417{ 1414{
1418 if ( mBlockAtStartup ) 1415 if ( mBlockAtStartup )
1419 return; 1416 return;
1420 int msec; 1417 int msec;
1421 // we store the changes after 1 minute, 1418 // we store the changes after 1 minute,
1422 // and for safety reasons after 10 minutes again 1419 // and for safety reasons after 10 minutes again
1423 if ( !mBlockSaveFlag ) 1420 if ( !mBlockSaveFlag )
1424 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; 1421 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000;
1425 else 1422 else
1426 msec = 1000 * 600; 1423 msec = 1000 * 600;
1427 mSaveTimer.start( msec, true ); // 1 minute 1424 mSaveTimer.start( msec, true ); // 1 minute
1428 qDebug("KO: Saving File in %d secs!", msec/1000); 1425 qDebug("KO: Saving File in %d secs!", msec/1000);
1429 mCalendarModifiedFlag = true; 1426 mCalendarModifiedFlag = true;
1430} 1427}
1431#include <qfileinfo.h>
1432void MainWindow::save() 1428void MainWindow::save()
1433{ 1429{
1434 if ( mBlockSaveFlag ) 1430 if ( mBlockSaveFlag )
1435 return; 1431 return;
1436 bool store = mBlockSaveFlag; 1432 bool store = mBlockSaveFlag;
1437 mBlockSaveFlag = true; 1433 mBlockSaveFlag = true;
1438 if ( mView->checkFileVersion( defaultFileName()) ) { 1434 if ( mView->checkFileVersion( defaultFileName()) ) {
1439 1435
1440 QTime neededSaveTime = QDateTime::currentDateTime().time(); 1436 QTime neededSaveTime = QDateTime::currentDateTime().time();
1441 setCaption(i18n("KO/Pi:Saving Data to File ..." )); 1437 setCaption(i18n("KO/Pi:Saving Data to File ..." ));
1442 qDebug("KO: Start saving data to file!"); 1438 qDebug("KO: Start saving data to file!");
1443 mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); 1439 mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
1444 mView->saveCalendar( defaultFileName() ); 1440 mView->saveCalendar( defaultFileName() );
1445 1441
1446 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 1442 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
1447 mView->watchSavedFile(); 1443 mView->watchSavedFile();
1448 qDebug("KO: Needed %d ms for saving.",msNeeded ); 1444 qDebug("KO: Needed %d ms for saving.",msNeeded );
1449 QString savemes; 1445 QString savemes;
1450 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); 1446 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 );
1451 setCaption(savemes); 1447 setCaption(savemes);
1452 } else 1448 } else
1453 setCaption(i18n("Saving cancelled!")); 1449 setCaption(i18n("Saving cancelled!"));
1454 mCalendarModifiedFlag = false; 1450 mCalendarModifiedFlag = false;
1455 mBlockSaveFlag = store; 1451 mBlockSaveFlag = store;
1456} 1452}
1457 1453
1458void MainWindow::keyReleaseEvent ( QKeyEvent * e) 1454void MainWindow::keyReleaseEvent ( QKeyEvent * e)
1459{ 1455{
1460 if ( !e->isAutoRepeat() ) { 1456 if ( !e->isAutoRepeat() ) {
1461 mFlagKeyPressed = false; 1457 mFlagKeyPressed = false;
1462 } 1458 }
1463} 1459}
1464void MainWindow::keyPressEvent ( QKeyEvent * e ) 1460void MainWindow::keyPressEvent ( QKeyEvent * e )
1465{ 1461{
1466 qApp->processEvents(); 1462 qApp->processEvents();
1467 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 1463 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
1468 e->ignore(); 1464 e->ignore();
1469 // qDebug(" ignore %d",e->isAutoRepeat() ); 1465 // qDebug(" ignore %d",e->isAutoRepeat() );
1470 return; 1466 return;
1471 } 1467 }
1472 if (! e->isAutoRepeat() ) 1468 if (! e->isAutoRepeat() )
1473 mFlagKeyPressed = true; 1469 mFlagKeyPressed = true;
1474 KOPrefs *p = KOPrefs::instance(); 1470 KOPrefs *p = KOPrefs::instance();
1475 bool showSelectedDates = false; 1471 bool showSelectedDates = false;
1476 int size; 1472 int size;
1477 int pro = 0; 1473 int pro = 0;
1478 //qDebug("MainWindow::keyPressEvent "); 1474 //qDebug("MainWindow::keyPressEvent ");
1479 switch ( e->key() ) { 1475 switch ( e->key() ) {
@@ -1821,97 +1817,96 @@ void MainWindow::importFile( QString fn, bool quick )
1821 setCaption(i18n("Error importing file")); 1817 setCaption(i18n("Error importing file"));
1822 } 1818 }
1823 } 1819 }
1824} 1820}
1825 1821
1826void MainWindow::importIcal() 1822void MainWindow::importIcal()
1827{ 1823{
1828 1824
1829 QString fn =KOPrefs::instance()->mLastImportFile; 1825 QString fn =KOPrefs::instance()->mLastImportFile;
1830 1826
1831 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); 1827 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this );
1832 if ( fn == "" ) 1828 if ( fn == "" )
1833 return; 1829 return;
1834 importFile( fn, true ); 1830 importFile( fn, true );
1835 1831
1836} 1832}
1837 1833
1838void MainWindow::exportVCalendar() 1834void MainWindow::exportVCalendar()
1839{ 1835{
1840 QString fn = KOPrefs::instance()->mLastVcalFile; 1836 QString fn = KOPrefs::instance()->mLastVcalFile;
1841 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); 1837 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this );
1842 if ( fn == "" ) 1838 if ( fn == "" )
1843 return; 1839 return;
1844 QFileInfo info; 1840 QFileInfo info;
1845 info.setFile( fn ); 1841 info.setFile( fn );
1846 QString mes; 1842 QString mes;
1847 bool createbup = true; 1843 bool createbup = true;
1848 if ( info. exists() ) { 1844 if ( info. exists() ) {
1849 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 1845 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
1850 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1846 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1851 i18n("Overwrite!"), i18n("Cancel"), 0, 1847 i18n("Overwrite!"), i18n("Cancel"), 0,
1852 0, 1 ); 1848 0, 1 );
1853 if ( result != 0 ) { 1849 if ( result != 0 ) {
1854 createbup = false; 1850 createbup = false;
1855 } 1851 }
1856 } 1852 }
1857 if ( createbup ) { 1853 if ( createbup ) {
1858 if ( mView->exportVCalendar( fn ) ) { 1854 if ( mView->exportVCalendar( fn ) ) {
1859 KOPrefs::instance()->mLastVcalFile = fn; 1855 KOPrefs::instance()->mLastVcalFile = fn;
1860 if ( fn.length() > 20 ) 1856 if ( fn.length() > 20 )
1861 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; 1857 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ;
1862 else 1858 else
1863 mes = i18n("KO/Pi:Exported to %1").arg(fn ); 1859 mes = i18n("KO/Pi:Exported to %1").arg(fn );
1864 setCaption(mes); 1860 setCaption(mes);
1865 } 1861 }
1866 } 1862 }
1867 1863
1868} 1864}
1869#include <qpushbutton.h>
1870QString MainWindow::getPassword( ) 1865QString MainWindow::getPassword( )
1871{ 1866{
1872 QString retfile = ""; 1867 QString retfile = "";
1873 QDialog dia ( this, "input-dialog", true ); 1868 QDialog dia ( this, "input-dialog", true );
1874 QLineEdit lab ( &dia ); 1869 QLineEdit lab ( &dia );
1875 lab.setEchoMode( QLineEdit::Password ); 1870 lab.setEchoMode( QLineEdit::Password );
1876 QVBoxLayout lay( &dia ); 1871 QVBoxLayout lay( &dia );
1877 lay.setMargin(7); 1872 lay.setMargin(7);
1878 lay.setSpacing(7); 1873 lay.setSpacing(7);
1879 lay.addWidget( &lab); 1874 lay.addWidget( &lab);
1880 dia.setFixedSize( 230,50 ); 1875 dia.setFixedSize( 230,50 );
1881 dia.setCaption( i18n("Enter password") ); 1876 dia.setCaption( i18n("Enter password") );
1882 QPushButton pb ( "OK", &dia); 1877 QPushButton pb ( "OK", &dia);
1883 lay.addWidget( &pb ); 1878 lay.addWidget( &pb );
1884 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 1879 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
1885 dia.show(); 1880 dia.show();
1886 int res = dia.exec(); 1881 int res = dia.exec();
1887 if ( res ) 1882 if ( res )
1888 retfile = lab.text(); 1883 retfile = lab.text();
1889 dia.hide(); 1884 dia.hide();
1890 qApp->processEvents(); 1885 qApp->processEvents();
1891 return retfile; 1886 return retfile;
1892 1887
1893} 1888}
1894 1889
1895void MainWindow::enableQuick() 1890void MainWindow::enableQuick()
1896{ 1891{
1897 QString retfile = ""; 1892 QString retfile = "";
1898 QDialog dia ( this, "input-dialog", true ); 1893 QDialog dia ( this, "input-dialog", true );
1899 QLineEdit lab ( &dia ); 1894 QLineEdit lab ( &dia );
1900 QVBoxLayout lay( &dia ); 1895 QVBoxLayout lay( &dia );
1901 lab.setText( KOPrefs::instance()->mPassiveSyncPort ); 1896 lab.setText( KOPrefs::instance()->mPassiveSyncPort );
1902 lay.setMargin(7); 1897 lay.setMargin(7);
1903 lay.setSpacing(7); 1898 lay.setSpacing(7);
1904 QLabel label ( i18n("Port number (Default: 9197)"), &dia ); 1899 QLabel label ( i18n("Port number (Default: 9197)"), &dia );
1905 lay.addWidget( &label); 1900 lay.addWidget( &label);
1906 lay.addWidget( &lab); 1901 lay.addWidget( &lab);
1907 dia.setFixedSize( 230,80 ); 1902 dia.setFixedSize( 230,80 );
1908 dia.setCaption( i18n("Enter port for Easy-Pi-Sync") ); 1903 dia.setCaption( i18n("Enter port for Easy-Pi-Sync") );
1909 QPushButton pb ( "OK", &dia); 1904 QPushButton pb ( "OK", &dia);
1910 lay.addWidget( &pb ); 1905 lay.addWidget( &pb );
1911 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 1906 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
1912 dia.show(); 1907 dia.show();
1913 int res = dia.exec(); 1908 int res = dia.exec();
1914 if ( res ) 1909 if ( res )
1915 retfile = lab.text(); 1910 retfile = lab.text();
1916 else 1911 else
1917 return; 1912 return;
@@ -1956,99 +1951,132 @@ void MainWindow::sendFile(QSocket* socket)
1956 save(); 1951 save();
1957 QString fileName = defaultFileName(); 1952 QString fileName = defaultFileName();
1958 QFile file( fileName ); 1953 QFile file( fileName );
1959 if (!file.open( IO_ReadOnly ) ) { 1954 if (!file.open( IO_ReadOnly ) ) {
1960 setCaption( i18n("Error open file") ); 1955 setCaption( i18n("Error open file") );
1961 delete mSyncActionDialog; 1956 delete mSyncActionDialog;
1962 mSyncActionDialog = 0; 1957 mSyncActionDialog = 0;
1963 qDebug("error open cal file "); 1958 qDebug("error open cal file ");
1964 return ; 1959 return ;
1965 1960
1966 } 1961 }
1967 setCaption( i18n("Sending file...") ); 1962 setCaption( i18n("Sending file...") );
1968 QTextStream ts( &file ); 1963 QTextStream ts( &file );
1969 ts.setCodec( QTextCodec::codecForName("utf8") ); 1964 ts.setCodec( QTextCodec::codecForName("utf8") );
1970 QTextStream os( socket ); 1965 QTextStream os( socket );
1971 os.setCodec( QTextCodec::codecForName("utf8") ); 1966 os.setCodec( QTextCodec::codecForName("utf8") );
1972 //os.setEncoding( QTextStream::UnicodeUTF8 ); 1967 //os.setEncoding( QTextStream::UnicodeUTF8 );
1973 while ( ! ts.atEnd() ) { 1968 while ( ! ts.atEnd() ) {
1974 os << ts.readLine() << "\n"; 1969 os << ts.readLine() << "\n";
1975 } 1970 }
1976 //os << ts.read(); 1971 //os << ts.read();
1977 socket->close(); 1972 socket->close();
1978 file.close(); 1973 file.close();
1979 setCaption( i18n("File sent. Waiting to get back synced file") ); 1974 setCaption( i18n("File sent. Waiting to get back synced file") );
1980 qDebug("file sent "); 1975 qDebug("file sent ");
1981} 1976}
1982void MainWindow::getFile(QSocket* socket) 1977void MainWindow::getFile(QSocket* socket)
1983{ 1978{
1984 setCaption( i18n("Receiving synced file...") ); 1979 setCaption( i18n("Receiving synced file...") );
1985 1980
1986 QString fileName = defaultFileName(); 1981 QString fileName = defaultFileName();
1987 QFile file( fileName ); 1982 QFile file( fileName );
1988 if (!file.open( IO_WriteOnly ) ) { 1983 if (!file.open( IO_WriteOnly ) ) {
1989 setCaption( i18n("Error open file") ); 1984 setCaption( i18n("Error open file") );
1990 delete mSyncActionDialog; 1985 delete mSyncActionDialog;
1991 mSyncActionDialog = 0; 1986 mSyncActionDialog = 0;
1992 qDebug("error open cal file "); 1987 qDebug("error open cal file ");
1993 return ; 1988 return ;
1994 1989
1995 } 1990 }
1996 1991
1997 mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); 1992 mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
1998 QTextStream ts( &file ); 1993 QTextStream ts( &file );
1999 ts.setCodec( QTextCodec::codecForName("utf8") ); 1994 ts.setCodec( QTextCodec::codecForName("utf8") );
2000 bool first = true; 1995 bool first = true;
2001 while ( socket->canReadLine () || first ) { 1996 while ( socket->canReadLine () || first ) {
2002 first = false; 1997 first = false;
2003 while ( socket->canReadLine () ) { 1998 while ( socket->canReadLine () ) {
1999 qDebug("avail %d ", socket->bytesAvailable () );
2004 ts << socket->readLine (); 2000 ts << socket->readLine ();
2005 } 2001 }
2002 QTime ti;
2003 ti.start();
2004 while ( ti.elapsed () < 5000 && !socket->canReadLine () ) {
2005 qDebug("waiting1a %d %d ",ti.elapsed (), socket->bytesAvailable () );
2006 //qApp->processEvents();
2007 qDebug("waiting1b %d ",ti.elapsed () );
2008 if ( !socket->canReadLine () ) {
2009 qDebug("waiting1c %d ",ti.elapsed () );
2010 usleep( 100000);
2011 }
2012 //socket->waitForMore ( 100 );
2013 }
2014 ts << socket->readLine ();
2015#if 0
2016#ifdef DESKTOP_VERSION
2006 socket->waitForMore ( 5000 ); 2017 socket->waitForMore ( 5000 );
2018#else
2019 // socket->waitForMore ( 5000 );
2020 // seems to be broken in qt2
2021 bool stop = false;
2022 QTime ti;
2023 ti.start();
2024 while ( ti.elapsed < 5000 && !stop ) {
2025 qApp->processEvents();
2026 if ( socket->canReadLine () )
2027 stop = true ;
2028 else {
2029 usleep( 100000 );
2030
2031 }
2032 }
2033#endif
2034#endif
2007 } 2035 }
2008 setCaption( i18n("File received - reloading calendar...") ); 2036 setCaption( i18n("File received - reloading calendar...") );
2009 file.close(); 2037 file.close();
2010 socket->close(); 2038 socket->close();
2011 mView->watchSavedFile(); 2039 mView->watchSavedFile();
2012 mView->openCalendar( defaultFileName() ); 2040 mView->openCalendar( defaultFileName() );
2013 setCaption( i18n("Easy-Pi-Sync successful!") ); 2041 setCaption( i18n("Easy-Pi-Sync successful!") );
2014 delete mSyncActionDialog; 2042 delete mSyncActionDialog;
2015 mSyncActionDialog = 0; 2043 mSyncActionDialog = 0;
2016 2044
2017 2045
2018} 2046}
2019void MainWindow::endConnect() 2047void MainWindow::endConnect()
2020{ 2048{
2021 setCaption( i18n("No file received - syncing successful") ); 2049 setCaption( i18n("No file received - syncing successful") );
2022 delete mSyncActionDialog; 2050 delete mSyncActionDialog;
2023 mSyncActionDialog = 0; 2051 mSyncActionDialog = 0;
2024} 2052}
2025void MainWindow::performQuick() 2053void MainWindow::performQuick()
2026{ 2054{
2027 setCaption( i18n("Please input connection settings") ); 2055 setCaption( i18n("Please input connection settings") );
2028 QString retfile = ""; 2056 QString retfile = "";
2029 QDialog dia ( this, "input-dialog", true ); 2057 QDialog dia ( this, "input-dialog", true );
2030 QLineEdit lab ( &dia ); 2058 QLineEdit lab ( &dia );
2031 QVBoxLayout lay( &dia ); 2059 QVBoxLayout lay( &dia );
2032 QLabel label ( i18n("IP address\n(Example: 192.168.0.40)"), &dia ); 2060 QLabel label ( i18n("IP address\n(Example: 192.168.0.40)"), &dia );
2033 lay.addWidget( &label); 2061 lay.addWidget( &label);
2034 lab.setText( KOPrefs::instance()->mActiveSyncIP ); 2062 lab.setText( KOPrefs::instance()->mActiveSyncIP );
2035 lay.setMargin(7); 2063 lay.setMargin(7);
2036 lay.setSpacing(7); 2064 lay.setSpacing(7);
2037 lay.addWidget( &lab); 2065 lay.addWidget( &lab);
2038 QLabel label2 ( i18n("Port number (Default: 9197)"), &dia ); 2066 QLabel label2 ( i18n("Port number (Default: 9197)"), &dia );
2039 lay.addWidget( &label2); 2067 lay.addWidget( &label2);
2040 QLineEdit lab2 ( &dia ); 2068 QLineEdit lab2 ( &dia );
2041 lab2.setText( KOPrefs::instance()->mActiveSyncPort ); 2069 lab2.setText( KOPrefs::instance()->mActiveSyncPort );
2042 lay.addWidget( &lab2); 2070 lay.addWidget( &lab2);
2043 dia.setFixedSize( 230,200 ); 2071 dia.setFixedSize( 230,200 );
2044 dia.setCaption( i18n("Enter port for Easy-Pi-Sync ") ); 2072 dia.setCaption( i18n("Enter port for Easy-Pi-Sync ") );
2045 QPushButton pb ( "OK", &dia); 2073 QPushButton pb ( "OK", &dia);
2046 lay.addWidget( &pb ); 2074 lay.addWidget( &pb );
2047 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 2075 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
2048 dia.show(); 2076 dia.show();
2049 int res = dia.exec(); 2077 int res = dia.exec();
2050 if ( !res ) { 2078 if ( !res ) {
2051 setCaption( i18n("Syncing cancelled!") ); 2079 setCaption( i18n("Syncing cancelled!") );
2052 return; 2080 return;
2053 } 2081 }
2054 dia.hide(); 2082 dia.hide();
@@ -2064,98 +2092,106 @@ void MainWindow::performQuickQuick()
2064 2092
2065 bool ok; 2093 bool ok;
2066 Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok); 2094 Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok);
2067 if ( ! ok ) { 2095 if ( ! ok ) {
2068 setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); 2096 setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
2069 return; 2097 return;
2070 } 2098 }
2071 if ( !mCommandSocket ) { 2099 if ( !mCommandSocket ) {
2072 mCommandSocket = new QSocket( this ); 2100 mCommandSocket = new QSocket( this );
2073 // delete mCommandSocket; 2101 // delete mCommandSocket;
2074 //mCommandSocket = new QSocket( this ); 2102 //mCommandSocket = new QSocket( this );
2075 connect( mCommandSocket, SIGNAL(readyRead()), this, SLOT(readFileFromSocket()) ); 2103 connect( mCommandSocket, SIGNAL(readyRead()), this, SLOT(readFileFromSocket()) );
2076 } 2104 }
2077 QString host = KOPrefs::instance()->mActiveSyncIP; 2105 QString host = KOPrefs::instance()->mActiveSyncIP;
2078 mCommandSocket->connectToHost( host, port ); 2106 mCommandSocket->connectToHost( host, port );
2079 QTextStream os( mCommandSocket ); 2107 QTextStream os( mCommandSocket );
2080 os.setEncoding( QTextStream::UnicodeUTF8 ); 2108 os.setEncoding( QTextStream::UnicodeUTF8 );
2081 os << "GET\r\n"; 2109 os << "GET\r\n";
2082 setCaption( i18n("Sending request for remote file ...") ); 2110 setCaption( i18n("Sending request for remote file ...") );
2083 2111
2084} 2112}
2085void MainWindow::readFileFromSocket() 2113void MainWindow::readFileFromSocket()
2086{ 2114{
2087 setCaption( i18n("Receiving remote file ...") ); 2115 setCaption( i18n("Receiving remote file ...") );
2088 qDebug("MainWindow::readFileFromSocket() "); 2116 qDebug("MainWindow::readFileFromSocket() ");
2089QString fileName; 2117QString fileName;
2090#ifdef _WIN32_ 2118#ifdef _WIN32_
2091 fileName = defaultFileName() +"sync"; 2119 fileName = defaultFileName() +"sync";
2092#else 2120#else
2093 fileName = "/tmp/kopitempfile.ics"; 2121 fileName = "/tmp/kopitempfile.ics";
2094#endif 2122#endif
2095 QFile file( fileName ); 2123 QFile file( fileName );
2096 if (!file.open( IO_WriteOnly ) ) { 2124 if (!file.open( IO_WriteOnly ) ) {
2097 setCaption( i18n("Error: Cannot open temp file for write.") ); 2125 setCaption( i18n("Error: Cannot open temp file for write.") );
2098 qDebug("Error open calender file for writing: %s",fileName.latin1() ); 2126 qDebug("Error open calender file for writing: %s",fileName.latin1() );
2099 return ; 2127 return ;
2100 } 2128 }
2101 2129
2102 //QTextStream os2( mCommandSocket ); 2130 //QTextStream os2( mCommandSocket );
2103 //os2.setEncoding( QTextStream::UnicodeUTF8 ); 2131 //os2.setEncoding( QTextStream::UnicodeUTF8 );
2104 2132
2105 QTextStream ts( &file ); 2133 QTextStream ts( &file );
2106 ts.setCodec( QTextCodec::codecForName("utf8") ); 2134 ts.setCodec( QTextCodec::codecForName("utf8") );
2107 bool first = true; 2135 bool first = true;
2108 while ( mCommandSocket->canReadLine () || first) { 2136 while ( mCommandSocket->canReadLine () || first) {
2109 first = false; 2137 first = false;
2110 while ( mCommandSocket->canReadLine () ) { 2138 while ( mCommandSocket->canReadLine () ) {
2111 ts << mCommandSocket->readLine (); 2139 ts << mCommandSocket->readLine ();
2140 }
2141 QTime ti;
2142 ti.start();
2143 while ( ti.elapsed () < 5000 && !mCommandSocket->canReadLine () ) {
2144 qApp->processEvents();
2145 qDebug("waiting2 %d ",ti.elapsed () );
2146 if ( !mCommandSocket->canReadLine () )
2147 mCommandSocket->waitForMore ( 100 );
2112 } 2148 }
2113 mCommandSocket->waitForMore ( 5000 ); 2149 //mCommandSocket->waitForMore ( 5000 );
2114 } 2150 }
2115 file.close(); 2151 file.close();
2116 mCommandSocket->close(); 2152 mCommandSocket->close();
2117 //delete mCommandSocket; 2153 //delete mCommandSocket;
2118 setCaption( i18n("Remote file saved to temp file.") ); 2154 setCaption( i18n("Remote file saved to temp file.") );
2119 //mCommandSocket = 0; 2155 //mCommandSocket = 0;
2120 mCurrentSyncProfile = 2 ; // last file 2156 mCurrentSyncProfile = 2 ; // last file
2121 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); 2157 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] );
2122 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 2158 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
2123 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 2159 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
2124 KSyncProfile* temp = new KSyncProfile (); 2160 KSyncProfile* temp = new KSyncProfile ();
2125 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 2161 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
2126 temp->readConfig(&config); 2162 temp->readConfig(&config);
2127 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 2163 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
2128 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); 2164 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs();
2129 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 2165 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
2130 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 2166 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
2131 KOPrefs::instance()->mWriteBackInFuture = 0; 2167 KOPrefs::instance()->mWriteBackInFuture = 0;
2132 if ( temp->getWriteBackFuture() ) 2168 if ( temp->getWriteBackFuture() )
2133 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 2169 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
2134 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); 2170 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
2135 2171
2136 setCaption( i18n("Remote file saved to temp file.") ); 2172 setCaption( i18n("Remote file saved to temp file.") );
2137 if ( ! syncWithFile( fileName , true ) ) { 2173 if ( ! syncWithFile( fileName , true ) ) {
2138 setCaption( i18n("Syncing failed.") ); 2174 setCaption( i18n("Syncing failed.") );
2139 qDebug("Syncing failed "); 2175 qDebug("Syncing failed ");
2140 return; 2176 return;
2141 } 2177 }
2142 2178
2143 if ( !mCommandSocketFinish ) { 2179 if ( !mCommandSocketFinish ) {
2144 mCommandSocketFinish = new QSocket( this ); 2180 mCommandSocketFinish = new QSocket( this );
2145 } 2181 }
2146 mCommandSocketFinish->connectToHost( KOPrefs::instance()->mActiveSyncIP, KOPrefs::instance()->mActiveSyncPort.toUInt() ); 2182 mCommandSocketFinish->connectToHost( KOPrefs::instance()->mActiveSyncIP, KOPrefs::instance()->mActiveSyncPort.toUInt() );
2147 2183
2148 QString host = KOPrefs::instance()->mActiveSyncIP; 2184 QString host = KOPrefs::instance()->mActiveSyncIP;
2149 QFile file2( fileName ); 2185 QFile file2( fileName );
2150 if (!file2.open( IO_ReadOnly ) ) { 2186 if (!file2.open( IO_ReadOnly ) ) {
2151 setCaption( i18n("Error: Cannot open temp file for read.") ); 2187 setCaption( i18n("Error: Cannot open temp file for read.") );
2152 qDebug("error open cal file "); 2188 qDebug("error open cal file ");
2153 return ; 2189 return ;
2154 2190
2155 } 2191 }
2156 setCaption( i18n("Sending back synced file...") ); 2192 setCaption( i18n("Sending back synced file...") );
2157 QTextStream ts2( &file2 ); 2193 QTextStream ts2( &file2 );
2158 ts2.setCodec( QTextCodec::codecForName("utf8") ); 2194 ts2.setCodec( QTextCodec::codecForName("utf8") );
2159 QTextStream os2( mCommandSocketFinish ); 2195 QTextStream os2( mCommandSocketFinish );
2160 os2.setCodec( QTextCodec::codecForName("utf8") ); 2196 os2.setCodec( QTextCodec::codecForName("utf8") );
2161 //os.setEncoding( QTextStream::UnicodeUTF8 ); 2197 //os.setEncoding( QTextStream::UnicodeUTF8 );
@@ -2407,48 +2443,99 @@ void MainWindow::syncSSH()
2407 } else { 2443 } else {
2408 setCaption ( i18n( "Syncronization sucessfully completed" ) ); 2444 setCaption ( i18n( "Syncronization sucessfully completed" ) );
2409 } 2445 }
2410 } 2446 }
2411 } 2447 }
2412 return; 2448 return;
2413#if 0 2449#if 0
2414 system ("scp zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics /home/polo/Applications/korganizer/z_sync.ics"); 2450 system ("scp zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics /home/polo/Applications/korganizer/z_sync.ics");
2415 while ( timer.elapsed() < 5000 ) 2451 while ( timer.elapsed() < 5000 )
2416 qApp->processEvents(); 2452 qApp->processEvents();
2417 2453
2418 qDebug("MainWindow::merging) "); 2454 qDebug("MainWindow::merging) ");
2419 mView->syncCalendar( "/home/polo/Applications/korganizer/z_sync.ics", 0 ); 2455 mView->syncCalendar( "/home/polo/Applications/korganizer/z_sync.ics", 0 );
2420 while ( mBlockSaveFlag ) 2456 while ( mBlockSaveFlag )
2421 qApp->processEvents(); 2457 qApp->processEvents();
2422 save(); 2458 save();
2423 system ("scp /home/polo/Applications/korganizer/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics"); 2459 system ("scp /home/polo/Applications/korganizer/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics");
2424#endif 2460#endif
2425 2461
2426} 2462}
2427 2463
2428 2464
2429void MainWindow::syncSharp() 2465void MainWindow::syncSharp()
2430{ 2466{
2431 if ( mCalendarModifiedFlag ) 2467 if ( mCalendarModifiedFlag )
2432 save(); 2468 save();
2433 mView->syncSharp(); 2469 mView->syncSharp();
2434 slotModifiedChanged( true ); 2470 slotModifiedChanged( true );
2435 2471
2436} 2472}
2437void MainWindow::syncPhone() 2473void MainWindow::syncPhone()
2438{ 2474{
2439 if ( mCalendarModifiedFlag ) 2475 if ( mCalendarModifiedFlag )
2440 save(); 2476 save();
2441 mView->syncPhone(); 2477 mView->syncPhone();
2442 slotModifiedChanged( true ); 2478 slotModifiedChanged( true );
2443 2479
2444} 2480}
2445 2481
2446void MainWindow::printSel( ) 2482void MainWindow::printSel( )
2447{ 2483{
2448 mView->viewManager()->agendaView()->agenda()->printSelection(); 2484 mView->viewManager()->agendaView()->agenda()->printSelection();
2449} 2485}
2450 2486
2451void MainWindow::printCal() 2487void MainWindow::printCal()
2452{ 2488{
2453 mView->print();//mCp->showDialog(); 2489 mView->print();//mCp->showDialog();
2454} 2490}
2491
2492
2493
2494KServerSocket:: KServerSocket ( Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ){;};
2495
2496void KServerSocket::newConnection ( int socket )
2497{
2498 qDebug("KServerSocket:New connection %d ", socket);
2499 QSocket* s = new QSocket( this );
2500 connect( s, SIGNAL(readyRead()), this, SLOT(readClient()) );
2501 connect( s, SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
2502 s->setSocket( socket );
2503}
2504
2505void KServerSocket::discardClient()
2506{
2507 qDebug(" KServerSocket::discardClient()");
2508 QSocket* socket = (QSocket*)sender();
2509 delete socket;
2510 //emit endConnect();
2511}
2512void KServerSocket::readClient()
2513{
2514 qDebug("KServerSocket readClient()");
2515 QSocket* socket = (QSocket*)sender();
2516 if ( socket->canReadLine() ) {
2517 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), socket->readLine() );
2518 qDebug("KServerSocket socket->canReadLine()");
2519 if ( tokens[0] == "GET" ) {
2520 emit sendFile( socket );
2521 }
2522 if ( tokens[0] == "PUT" ) {
2523 emit getFile( socket );
2524 }
2525 if ( tokens[0] == "STOP" ) {
2526 emit endConnect();
2527 }
2528 }
2529}
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 5985d56..7b4fd27 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -1,116 +1,88 @@
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 <qregexp.h> 7#include <qregexp.h>
8 8
9#include <libkcal/incidence.h> 9#include <libkcal/incidence.h>
10#include "simplealarmclient.h" 10#include "simplealarmclient.h"
11 11
12class QAction; 12class QAction;
13class CalendarView; 13class CalendarView;
14class KSyncProfile; 14class KSyncProfile;
15#ifdef DESKTOP_VERSION 15#ifdef DESKTOP_VERSION
16 16
17#define QPEToolBar QToolBar 17#define QPEToolBar QToolBar
18#define QPEMenuBar QMenuBar 18#define QPEMenuBar QMenuBar
19#endif 19#endif
20class QPEToolBar; 20class QPEToolBar;
21#include <qserversocket.h> 21#include <qserversocket.h>
22#include <qsocket.h> 22#include <qsocket.h>
23#include <qnetworkprotocol.h> 23#include <qnetworkprotocol.h>
24 24
25class KServerSocket : public QServerSocket 25class KServerSocket : public QServerSocket
26{ 26{
27 Q_OBJECT 27 Q_OBJECT
28 28
29public: 29public:
30 KServerSocket ( Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 ) : 30 KServerSocket ( Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 );
31 QServerSocket( port, backlog, parent, name ){;}; 31
32 void newConnection ( int socket ) 32 void newConnection ( int socket ) ;
33 {
34 qDebug("KServerSocket:New connection %d ", socket);
35 QSocket* s = new QSocket( this );
36 connect( s, SIGNAL(readyRead()), this, SLOT(readClient()) );
37 connect( s, SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
38 s->setSocket( socket );
39 }
40 33
41signals: 34signals:
42 void sendFile(QSocket*); 35 void sendFile(QSocket*);
43 void getFile(QSocket*); 36 void getFile(QSocket*);
44 void endConnect(); 37 void endConnect();
45private slots: 38private slots:
46 void discardClient() 39 void discardClient();
47 { 40 void readClient();
48 QSocket* socket = (QSocket*)sender();
49 delete socket;
50 //emit endConnect();
51 }
52 void readClient()
53 {
54 qDebug("readClient() ");
55 QSocket* socket = (QSocket*)sender();
56 if ( socket->canReadLine() ) {
57 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), socket->readLine() );
58 if ( tokens[0] == "GET" ) {
59 emit sendFile( socket );
60 }
61 if ( tokens[0] == "PUT" ) {
62 emit getFile( socket );
63 }
64 if ( tokens[0] == "STOP" ) {
65 emit endConnect();
66 }
67 }
68 }
69}; 41};
70 42
71 43
72namespace KCal { 44namespace KCal {
73class CalendarLocal; 45class CalendarLocal;
74} 46}
75 47
76using namespace KCal; 48using namespace KCal;
77 49
78class MainWindow : public QMainWindow 50class MainWindow : public QMainWindow
79{ 51{
80 Q_OBJECT 52 Q_OBJECT
81 public: 53 public:
82 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); 54 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = "");
83 ~MainWindow(); 55 ~MainWindow();
84 public slots: 56 public slots:
85 virtual void showMaximized (); 57 virtual void showMaximized ();
86 void configureAgenda( int ); 58 void configureAgenda( int );
87 void recieve( const QCString& msg, const QByteArray& data ); 59 void recieve( const QCString& msg, const QByteArray& data );
88 static QString defaultFileName(); 60 static QString defaultFileName();
89 static QString resourcePath(); 61 static QString resourcePath();
90 protected slots: 62 protected slots:
91 void setCaptionToDates(); 63 void setCaptionToDates();
92 int ringSync(); 64 int ringSync();
93 void multiSync( bool askforPrefs = false ); 65 void multiSync( bool askforPrefs = false );
94 void about(); 66 void about();
95 void licence(); 67 void licence();
96 void faq(); 68 void faq();
97 void usertrans(); 69 void usertrans();
98 void features(); 70 void features();
99 void synchowto(); 71 void synchowto();
100 void whatsNew(); 72 void whatsNew();
101 void keyBindings(); 73 void keyBindings();
102 void aboutAutoSaving();; 74 void aboutAutoSaving();;
103 void aboutKnownBugs(); 75 void aboutKnownBugs();
104 76
105 void processIncidenceSelection( Incidence * ); 77 void processIncidenceSelection( Incidence * );
106 78
107 void importQtopia(); 79 void importQtopia();
108 void importBday(); 80 void importBday();
109 void importOL(); 81 void importOL();
110 void importIcal(); 82 void importIcal();
111 void importFile( QString, bool ); 83 void importFile( QString, bool );
112 void quickImportIcal(); 84 void quickImportIcal();
113 85
114 void slotModifiedChanged( bool ); 86 void slotModifiedChanged( bool );
115 87
116 void save(); 88 void save();