summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp178
-rw-r--r--korganizer/mainwindow.h34
2 files changed, 142 insertions, 70 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 10cb2a2..e4b7869 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -50,50 +50,48 @@
50#include "kofilterview.h" 50#include "kofilterview.h"
51#include "kstandarddirs.h" 51#include "kstandarddirs.h"
52#include "koprefs.h" 52#include "koprefs.h"
53#include "kfiledialog.h" 53#include "kfiledialog.h"
54#include "koglobals.h" 54#include "koglobals.h"
55#include "kglobal.h" 55#include "kglobal.h"
56#include "klocale.h" 56#include "klocale.h"
57#include "kconfig.h" 57#include "kconfig.h"
58#include "simplealarmclient.h" 58#include "simplealarmclient.h"
59#include "externalapphandler.h" 59#include "externalapphandler.h"
60 60
61using namespace KCal; 61using namespace KCal;
62#ifndef _WIN32_ 62#ifndef _WIN32_
63#include <unistd.h> 63#include <unistd.h>
64#else 64#else
65#include "koimportoldialog.h" 65#include "koimportoldialog.h"
66#endif 66#endif
67#include "mainwindow.h" 67#include "mainwindow.h"
68 68
69int globalFlagBlockStartup; 69int globalFlagBlockStartup;
70MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 70MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
71 QMainWindow( parent, name ) 71 QMainWindow( parent, name )
72{ 72{
73 mPassWordPiSync = "abc"; 73 mPassWordPiSync = "abc";
74 mTimerCommandSocket = new QTimer ( this );
75 connect( mTimerCommandSocket, SIGNAL ( timeout () ), this, SLOT ( deleteCommandSocket() ) );
76#ifdef DESKTOP_VERSION 74#ifdef DESKTOP_VERSION
77 setFont( QFont("Arial"), 14 ); 75 setFont( QFont("Arial"), 14 );
78#endif 76#endif
79 mCommandSocket = 0; 77 mCommandSocket = 0;
80 mCommandSocketFinish = 0; 78 mCommandSocketFinish = 0;
81 mSyncActionDialog = 0; 79 mSyncActionDialog = 0;
82 mServerSocket = 0; 80 mServerSocket = 0;
83 mClosed = false; 81 mClosed = false;
84 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 82 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
85 QString confFile = locateLocal("config","korganizerrc"); 83 QString confFile = locateLocal("config","korganizerrc");
86 QFileInfo finf ( confFile ); 84 QFileInfo finf ( confFile );
87 bool showWarning = !finf.exists(); 85 bool showWarning = !finf.exists();
88 setIcon(SmallIcon( "ko24" ) ); 86 setIcon(SmallIcon( "ko24" ) );
89 mBlockAtStartup = true; 87 mBlockAtStartup = true;
90 mFlagKeyPressed = false; 88 mFlagKeyPressed = false;
91 setCaption("KOrganizer/Pi"); 89 setCaption("KOrganizer/Pi");
92 KOPrefs *p = KOPrefs::instance(); 90 KOPrefs *p = KOPrefs::instance();
93 KPimGlobalPrefs::instance()->setGlobalConfig(); 91 KPimGlobalPrefs::instance()->setGlobalConfig();
94 // if ( QApplication::desktop()->height() > 480 ) { 92 // if ( QApplication::desktop()->height() > 480 ) {
95// if ( p->mHourSize == 4 ) 93// if ( p->mHourSize == 4 )
96// p->mHourSize = 6; 94// p->mHourSize = 6;
97// } 95// }
98 if ( p->mHourSize > 18 ) 96 if ( p->mHourSize > 18 )
99 p->mHourSize = 18; 97 p->mHourSize = 18;
@@ -2082,189 +2080,148 @@ void MainWindow::performQuick()
2082 dia.show(); 2080 dia.show();
2083 int res = dia.exec(); 2081 int res = dia.exec();
2084 if ( !res ) { 2082 if ( !res ) {
2085 setCaption( i18n("Syncing cancelled!") ); 2083 setCaption( i18n("Syncing cancelled!") );
2086 return; 2084 return;
2087 } 2085 }
2088 mPassWordPiSync = lepw.text(); 2086 mPassWordPiSync = lepw.text();
2089 dia.hide(); 2087 dia.hide();
2090 KOPrefs::instance()->mActiveSyncPort = lab2.text(); 2088 KOPrefs::instance()->mActiveSyncPort = lab2.text();
2091 KOPrefs::instance()->mActiveSyncIP = lab.text(); 2089 KOPrefs::instance()->mActiveSyncIP = lab.text();
2092 qApp->processEvents(); 2090 qApp->processEvents();
2093 performQuickQuick(); 2091 performQuickQuick();
2094} 2092}
2095 2093
2096void MainWindow::performQuickQuick() 2094void MainWindow::performQuickQuick()
2097{ 2095{
2098 // setCaption( i18n("") ); 2096 // setCaption( i18n("") );
2099 2097
2100 bool ok; 2098 bool ok;
2101 Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok); 2099 Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok);
2102 if ( ! ok ) { 2100 if ( ! ok ) {
2103 setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); 2101 setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
2104 return; 2102 return;
2105 } 2103 }
2106 if ( !mCommandSocket ) { 2104 mCommandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this );
2107 mCommandSocket = new QSocket( this ); 2105 connect( mCommandSocket, SIGNAL(commandFinished( bool )), this, SLOT(deleteCommandSocket(bool)) );
2108 // delete mCommandSocket;
2109 //mCommandSocket = new QSocket( this );
2110 connect( mCommandSocket, SIGNAL(readyRead()), this, SLOT(readFileFromSocket()) );
2111 connect( mCommandSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteCommandSocket()) );
2112 }
2113 QString host = KOPrefs::instance()->mActiveSyncIP;
2114 mCommandSocket->connectToHost( host, port );
2115 QTextStream os( mCommandSocket );
2116 os.setEncoding( QTextStream::UnicodeUTF8 );
2117 os << "GET " << mPassWordPiSync << "\r\n";
2118 setCaption( i18n("Sending request for remote file ...") ); 2106 setCaption( i18n("Sending request for remote file ...") );
2119 mTimerCommandSocket->start( 10000 ); 2107 QString fileName;
2120 2108#ifdef _WIN32_
2109 fileName = defaultFileName() +"sync";
2110#else
2111 fileName = "/tmp/kopitempfile.ics";
2112#endif
2113 mCommandSocket->readFile( fileName );
2121} 2114}
2122void MainWindow::deleteCommandSocket() 2115void MainWindow::deleteCommandSocket( bool success)
2123{ 2116{
2124 if ( !mCommandSocket) 2117 if ( ! success ) {
2118 setCaption( i18n("ERROR:Receiving remote file failed.") );
2119 // pending : send stop
2125 return; 2120 return;
2126 if ( mTimerCommandSocket->isActive () ) { 2121
2127 KMessageBox::information( 0, i18n("ERROR:\nConnection to remote host timed out "));
2128 mTimerCommandSocket->stop();
2129 } 2122 }
2130 //KMessageBox::information( 0, i18n("MainWindow::deleteCommandSocket ")); 2123 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket()));
2131 qDebug("MainWindow::deletemCommandSocket() "); 2124 delete mCommandSocket;
2132 delete mCommandSocket;
2133 mCommandSocket = 0;
2134} 2125}
2135void MainWindow::deleteCommandSocketFinish() 2126void MainWindow::deleteCommandSocketFinish()
2136{ 2127{
2137 if ( ! mCommandSocketFinish) 2128 if ( ! mCommandSocketFinish)
2138 return; 2129 return;
2139 // KMessageBox::information( 0, i18n("MainWindow::deleteCommandSocketFinish() ")); 2130 // KMessageBox::information( 0, i18n("MainWindow::deleteCommandSocketFinish() "));
2140 qDebug("MainWindow::deletemCommandSocketFinish() "); 2131 qDebug("MainWindow::deletemCommandSocketFinish() ");
2141 delete mCommandSocketFinish; 2132 delete mCommandSocketFinish;
2142 mCommandSocketFinish = 0; 2133 mCommandSocketFinish = 0;
2143} 2134}
2144void MainWindow::readFileFromSocket() 2135void MainWindow::readFileFromSocket()
2145{ 2136{
2146 mTimerCommandSocket->stop(); 2137 // mTimerCommandSocket->stop();
2147 setCaption( i18n("Receiving remote file ...") ); 2138 setCaption( i18n("Receiving remote file ...") );
2148 qDebug("MainWindow::readFileFromSocket() "); 2139 qDebug("MainWindow::readFileFromSocket() ");
2149 QString fileName; 2140 QString fileName;
2150#ifdef _WIN32_ 2141#ifdef _WIN32_
2151 fileName = defaultFileName() +"sync"; 2142 fileName = defaultFileName() +"sync";
2152#else 2143#else
2153 fileName = "/tmp/kopitempfile.ics"; 2144 fileName = "/tmp/kopitempfile.ics";
2154#endif 2145#endif
2155 QFile file( fileName ); 2146
2156 if (!file.open( IO_WriteOnly ) ) {
2157 setCaption( i18n("Error: Cannot open temp file for write.") );
2158 qDebug("Error open temp calender file for writing: %s",fileName.latin1() );
2159 return ;
2160 }
2161
2162 //QTextStream os2( mCommandSocket );
2163 //os2.setEncoding( QTextStream::UnicodeUTF8 );
2164
2165 QTextStream ts( &file );
2166 ts.setCodec( QTextCodec::codecForName("utf8") );
2167 bool first = true;
2168 while ( mCommandSocket->canReadLine () || first) {
2169 first = false;
2170 while ( mCommandSocket->canReadLine () ) {
2171 ts << mCommandSocket->readLine ();
2172 }
2173 QTime ti;
2174 ti.start();
2175 while ( ti.elapsed () < 3000 && !mCommandSocket->canReadLine () ) {
2176 qApp->processEvents();
2177 qDebug("waiting2 %d ",ti.elapsed () );
2178 if ( !mCommandSocket->canReadLine () )
2179 mCommandSocket->waitForMore ( 100 );
2180 }
2181 //mCommandSocket->waitForMore ( 5000 );
2182 }
2183 file.close();
2184 mCommandSocket->close();
2185 if ( mCommandSocket->state() == QSocket::Idle )
2186 deleteCommandSocket();
2187 // pending: deleting after signal SIGNAL(delayedCloseFinished())
2188 //delete mCommandSocket;
2189 setCaption( i18n("Remote file saved to temp file.") ); 2147 setCaption( i18n("Remote file saved to temp file.") );
2190 //mCommandSocket = 0; 2148 //mCommandSocket = 0;
2191 mCurrentSyncProfile = 2 ; // last file 2149 mCurrentSyncProfile = 2 ; // last file
2192 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); 2150 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] );
2193 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 2151 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
2194 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 2152 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
2195 KSyncProfile* temp = new KSyncProfile (); 2153 KSyncProfile* temp = new KSyncProfile ();
2196 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 2154 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
2197 temp->readConfig(&config); 2155 temp->readConfig(&config);
2198 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 2156 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
2199 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); 2157 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs();
2200 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 2158 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
2201 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 2159 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
2202 KOPrefs::instance()->mWriteBackInFuture = 0; 2160 KOPrefs::instance()->mWriteBackInFuture = 0;
2203 if ( temp->getWriteBackFuture() ) 2161 if ( temp->getWriteBackFuture() )
2204 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 2162 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
2205 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); 2163 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
2206 delete temp; 2164 delete temp;
2207 setCaption( i18n("Remote file saved to temp file.") ); 2165 setCaption( i18n("Remote file saved to temp file.") );
2208 if ( ! syncWithFile( fileName , true ) ) { 2166 if ( ! syncWithFile( fileName , true ) ) {
2209 setCaption( i18n("Syncing failed.") ); 2167 setCaption( i18n("Syncing failed.") );
2210 qDebug("Syncing failed "); 2168 qDebug("Syncing failed ");
2211 return; 2169 return;
2212 } 2170 }
2213 2171
2214 if ( !mCommandSocketFinish ) { 2172 if ( !mCommandSocketFinish ) {
2215 mCommandSocketFinish = new QSocket( this ); 2173 mCommandSocketFinish = new QSocket( this );
2216 connect( mCommandSocketFinish, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteCommandSocketFinish()) ); 2174 connect( mCommandSocketFinish, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteCommandSocketFinish()) );
2217 } 2175 }
2218 mCommandSocketFinish->connectToHost( KOPrefs::instance()->mActiveSyncIP, KOPrefs::instance()->mActiveSyncPort.toUInt() ); 2176 mCommandSocketFinish->connectToHost( KOPrefs::instance()->mActiveSyncIP, KOPrefs::instance()->mActiveSyncPort.toUInt() );
2219 2177
2220 // pending connect signals connected () and error to new slots
2221 QString host = KOPrefs::instance()->mActiveSyncIP; 2178 QString host = KOPrefs::instance()->mActiveSyncIP;
2222 QFile file2( fileName ); 2179 QFile file2( fileName );
2223 if (!file2.open( IO_ReadOnly ) ) { 2180 if (!file2.open( IO_ReadOnly ) ) {
2224 setCaption( i18n("Error: Cannot open temp file for read.") ); 2181 setCaption( i18n("Error: Cannot open temp file for read.") );
2225 qDebug("error open cal file "); 2182 qDebug("error open cal file ");
2226 return ; 2183 return ;
2227 2184
2228 } 2185 }
2229 QTextStream ts2( &file2 ); 2186 QTextStream ts2( &file2 );
2230 ts2.setCodec( QTextCodec::codecForName("utf8") ); 2187 ts2.setCodec( QTextCodec::codecForName("utf8") );
2231 QTextStream os2( mCommandSocketFinish ); 2188 QTextStream os2( mCommandSocketFinish );
2232 os2.setCodec( QTextCodec::codecForName("utf8") ); 2189 os2.setCodec( QTextCodec::codecForName("utf8") );
2233 //os.setEncoding( QTextStream::UnicodeUTF8 ); 2190 //os.setEncoding( QTextStream::UnicodeUTF8 );
2234 if ( KOPrefs::instance()->mWriteBackFile ) { 2191 if ( KOPrefs::instance()->mWriteBackFile ) {
2235 setCaption( i18n("Sending back synced file...") ); 2192 setCaption( i18n("Sending back synced file...") );
2236 os2 << "PUT " << mPassWordPiSync << "\r\n";; 2193 os2 << "PUT " << mPassWordPiSync << "\r\n";;
2237 while ( ! ts2.atEnd() ) { 2194 while ( ! ts2.atEnd() ) {
2238 os2 << ts2.readLine() << "\n"; 2195 os2 << ts2.readLine() << "\n";
2239 } 2196 }
2240 } else { 2197 } else {
2241 os2 << "STOP\r\n"; 2198 os2 << "STOP\r\n";
2242 } 2199 }
2243 mCommandSocketFinish->close(); 2200 mCommandSocketFinish->close();
2244 if ( mCommandSocketFinish->state() == QSocket::Idle ) 2201 if ( mCommandSocketFinish->state() == QSocket::Idle )
2245 QTimer::singleShot( 10, this , SLOT ( deleteCommandSocketFinish())); 2202 QTimer::singleShot( 10, this , SLOT ( deleteCommandSocketFinish()));
2246 file.close(); 2203 file2.close();
2247 qDebug("Syncing succesful! "); 2204 qDebug("Syncing succesful! ");
2248 setCaption( i18n("Pi-Sync succesful!") ); 2205 setCaption( i18n("Pi-Sync succesful!") );
2249 2206
2250 // KMessageBox::information( 0, i18n(" Pi-Sync succesful! ")); 2207 // KMessageBox::information( 0, i18n(" Pi-Sync succesful! "));
2251 2208
2252} 2209}
2253 2210
2254void MainWindow::syncLocalFile() 2211void MainWindow::syncLocalFile()
2255{ 2212{
2256 2213
2257 QString fn =KOPrefs::instance()->mLastSyncedLocalFile; 2214 QString fn =KOPrefs::instance()->mLastSyncedLocalFile;
2258 2215
2259 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 2216 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this );
2260 if ( fn == "" ) 2217 if ( fn == "" )
2261 return; 2218 return;
2262 //mView->setSyncDevice("local-file" ); 2219 //mView->setSyncDevice("local-file" );
2263 if ( syncWithFile( fn, false ) ) { 2220 if ( syncWithFile( fn, false ) ) {
2264 // Event* e = mView->getLastSyncEvent(); 2221 // Event* e = mView->getLastSyncEvent();
2265// e->setReadOnly( false ); 2222// e->setReadOnly( false );
2266// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); 2223// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile);
2267// e->setReadOnly( true ); 2224// e->setReadOnly( true );
2268 } 2225 }
2269 2226
2270} 2227}
@@ -2570,35 +2527,122 @@ void KServerSocket::readClient()
2570 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), mSocket->readLine() ); 2527 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), mSocket->readLine() );
2571 qDebug("KServerSocket socket->canReadLine()"); 2528 qDebug("KServerSocket socket->canReadLine()");
2572 if ( tokens[0] == "GET" ) { 2529 if ( tokens[0] == "GET" ) {
2573 if ( tokens[1] == mPassWord ) 2530 if ( tokens[1] == mPassWord )
2574 emit sendFile( mSocket ); 2531 emit sendFile( mSocket );
2575 else { 2532 else {
2576 KMessageBox::information( 0, i18n("ERROR:\nGot send file request\nwith invalid password")); 2533 KMessageBox::information( 0, i18n("ERROR:\nGot send file request\nwith invalid password"));
2577 qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); 2534 qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() );
2578 } 2535 }
2579 } 2536 }
2580 if ( tokens[0] == "PUT" ) { 2537 if ( tokens[0] == "PUT" ) {
2581 if ( tokens[1] == mPassWord ) 2538 if ( tokens[1] == mPassWord )
2582 emit getFile( mSocket ); 2539 emit getFile( mSocket );
2583 else { 2540 else {
2584 KMessageBox::information( 0, i18n("ERROR:\nGot receive file request\nwith invalid password")); 2541 KMessageBox::information( 0, i18n("ERROR:\nGot receive file request\nwith invalid password"));
2585 qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); 2542 qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() );
2586 } 2543 }
2587 } 2544 }
2588 if ( tokens[0] == "STOP" ) { 2545 if ( tokens[0] == "STOP" ) {
2589 emit endConnect(); 2546 emit endConnect();
2590 } 2547 }
2591 } 2548 }
2592} 2549}
2593 2550
2551KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent, const char * name ): QObject( parent, name )
2552{
2553 mPassWord = password;
2554 mSocket = 0;
2555 mPort = port;
2556 mHost = host;
2594 2557
2558 mRetVal = false;
2559 mTimerSocket = new QTimer ( this );
2560 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( deleteSocket() ) );
2561}
2562void KCommandSocket::readFile( QString fn )
2563{
2564 if ( !mSocket ) {
2565 mSocket = new QSocket( this );
2566 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) );
2567 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
2568 }
2569 mFileString = "";
2570 mFileName = fn;
2571 mFirst = true;
2572 mSocket->connectToHost( mHost, mPort );
2573 QTextStream os( mSocket );
2574 os.setEncoding( QTextStream::UnicodeUTF8 );
2575 os << "GET " << mPassWord << "\r\n";
2576 mTimerSocket->start( 10000 );
2577}
2595 2578
2579void KCommandSocket::writeFile( QString )
2580{
2596 2581
2582}
2583void KCommandSocket::startReadFileFromSocket()
2584{
2585 if ( ! mFirst )
2586 return;
2587 mFirst = false;
2588 mTimerSocket->stop();
2589 mFileString = "";
2590 mTime.start();
2591 QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) ));
2597 2592
2593}
2594void KCommandSocket::readFileFromSocket()
2595{
2596 qDebug("readBackFileFromSocket() %d ", mTime.elapsed ());
2597 while ( mSocket->canReadLine () ) {
2598 mTime.restart();
2599 QString line = mSocket->readLine ();
2600 mFileString += line;
2601 qDebug("readline: %s ", line.latin1());
2602 }
2603 if ( mTime.elapsed () < 3000 ) {
2604 // wait for more
2605 qDebug("waitformore ");
2606 QTimer::singleShot( 100, this , SLOT (readFileFromSocket( ) ));
2607 return;
2608 }
2609 QString fileName = mFileName;
2610 QFile file ( fileName );
2611 if (!file.open( IO_WriteOnly ) ) {
2612 mFileString = "";
2613 mRetVal = false;
2614 qDebug("Error open temp calender file for writing: %s",fileName.latin1() );
2615 deleteSocket();
2616 return ;
2617
2618 }
2619 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
2620 QTextStream ts ( &file );
2621 ts.setCodec( QTextCodec::codecForName("utf8") );
2622 qDebug("finish ");
2623 ts << mFileString;
2624 file.close();
2625 mFileString = "";
2626 mRetVal = true;
2627 mSocket->close();
2628 // if state is not idle, deleteSocket(); is called via
2629 // connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
2630 if ( mSocket->state() == QSocket::Idle )
2631 deleteSocket();
2632}
2598 2633
2599 2634void KCommandSocket::deleteSocket()
2600 2635{
2601 2636 if ( !mSocket)
2602 2637 return;
2603 2638 if ( mTimerSocket->isActive () ) {
2639 mTimerSocket->stop();
2640 KMessageBox::information( 0, i18n("ERROR:\nConnection to remote host timed out "));
2641 mRetVal = false;
2642 }
2643 qDebug("KCommandSocket::deleteSocket() %d", mRetVal);
2644 delete mSocket;
2645 mSocket = 0;
2646 emit commandFinished( mRetVal );
2647}
2604 2648
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index d217578..11a816c 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -25,48 +25,76 @@ class QPEToolBar;
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 36
37signals: 37signals:
38 void sendFile(QSocket*); 38 void sendFile(QSocket*);
39 void getFile(QSocket*); 39 void getFile(QSocket*);
40 void endConnect(); 40 void endConnect();
41private slots: 41private slots:
42 void discardClient(); 42 void discardClient();
43 void readClient(); 43 void readClient();
44 private : 44 private :
45 QSocket* mSocket; 45 QSocket* mSocket;
46 QString mPassWord; 46 QString mPassWord;
47}; 47};
48 48
49class KCommandSocket : public QObject
50{
51 Q_OBJECT
52
53public:
54 KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, const char * name=0 );
55 void readFile( QString );
56 void writeFile( QString );
57
58
59signals:
60 void commandFinished( bool );
61private slots:
62 void startReadFileFromSocket();
63 void readFileFromSocket();
64 void deleteSocket();
65 private :
66 QSocket* mSocket;
67 QString mPassWord;
68 Q_UINT16 mPort;
69 QString mHost;
70 QString mFileName;
71 QTimer* mTimerSocket;
72 bool mRetVal;
73 QTime mTime;
74 QString mFileString;
75 bool mFirst;
76};
49 77
50namespace KCal { 78namespace KCal {
51class CalendarLocal; 79class CalendarLocal;
52} 80}
53 81
54using namespace KCal; 82using namespace KCal;
55 83
56class MainWindow : public QMainWindow 84class MainWindow : public QMainWindow
57{ 85{
58 Q_OBJECT 86 Q_OBJECT
59 public: 87 public:
60 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); 88 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = "");
61 ~MainWindow(); 89 ~MainWindow();
62 public slots: 90 public slots:
63 virtual void showMaximized (); 91 virtual void showMaximized ();
64 void configureAgenda( int ); 92 void configureAgenda( int );
65 void recieve( const QCString& msg, const QByteArray& data ); 93 void recieve( const QCString& msg, const QByteArray& data );
66 static QString defaultFileName(); 94 static QString defaultFileName();
67 static QString resourcePath(); 95 static QString resourcePath();
68 protected slots: 96 protected slots:
69 void setCaptionToDates(); 97 void setCaptionToDates();
70 int ringSync(); 98 int ringSync();
71 void multiSync( bool askforPrefs = false ); 99 void multiSync( bool askforPrefs = false );
72 void about(); 100 void about();
@@ -100,60 +128,60 @@ class MainWindow : public QMainWindow
100 void exportVCalendar(); 128 void exportVCalendar();
101 void fillFilterMenu(); 129 void fillFilterMenu();
102 void selectFilter( int ); 130 void selectFilter( int );
103 131
104 void slotSyncMenu( int ); 132 void slotSyncMenu( int );
105 void syncSSH(); 133 void syncSSH();
106 void confSync(); 134 void confSync();
107 void syncSharp(); 135 void syncSharp();
108 void syncPhone(); 136 void syncPhone();
109 void syncLocalFile(); 137 void syncLocalFile();
110 bool syncWithFile( QString, bool ); 138 bool syncWithFile( QString, bool );
111 void quickSyncLocalFile(); 139 void quickSyncLocalFile();
112 140
113 141
114 protected: 142 protected:
115 void displayText( QString, QString); 143 void displayText( QString, QString);
116 void displayFile( QString, QString); 144 void displayFile( QString, QString);
117 145
118 void enableIncidenceActions( bool ); 146 void enableIncidenceActions( bool );
119 147
120 private slots: 148 private slots:
121 QSocket* piSocket; 149 QSocket* piSocket;
122 QString piFileString; 150 QString piFileString;
123 QTime piTime; 151 QTime piTime;
124 void deleteCommandSocket(); 152 void deleteCommandSocket(bool);
125 void deleteCommandSocketFinish(); 153 void deleteCommandSocketFinish();
126 void fillSyncMenu(); 154 void fillSyncMenu();
127 void sendFile(QSocket* s); 155 void sendFile(QSocket* s);
128 void getFile(QSocket* socket); 156 void getFile(QSocket* socket);
129 void readFileFromSocket(); 157 void readFileFromSocket();
130 void readBackFileFromSocket(); 158 void readBackFileFromSocket();
131 void endConnect(); 159 void endConnect();
132 private: 160 private:
133 QTimer* mTimerCommandSocket; 161 //QTimer* mTimerCommandSocket;
134 QString mPassWordPiSync; 162 QString mPassWordPiSync;
135 QSocket* mCommandSocket; 163 KCommandSocket* mCommandSocket;
136 QSocket* mCommandSocketFinish; 164 QSocket* mCommandSocketFinish;
137 KServerSocket * mServerSocket; 165 KServerSocket * mServerSocket;
138 bool mClosed; 166 bool mClosed;
139 void saveOnClose(); 167 void saveOnClose();
140 int mCurrentSyncProfile; 168 int mCurrentSyncProfile;
141 void enableQuick(); 169 void enableQuick();
142 void performQuick(); 170 void performQuick();
143 void performQuickQuick(); 171 void performQuickQuick();
144 void syncRemote( KSyncProfile* , bool ask = true); 172 void syncRemote( KSyncProfile* , bool ask = true);
145 bool mFlagKeyPressed; 173 bool mFlagKeyPressed;
146 bool mBlockAtStartup; 174 bool mBlockAtStartup;
147 QPEToolBar *iconToolBar; 175 QPEToolBar *iconToolBar;
148 void initActions(); 176 void initActions();
149 void setDefaultPreferences(); 177 void setDefaultPreferences();
150 void keyPressEvent ( QKeyEvent * ) ; 178 void keyPressEvent ( QKeyEvent * ) ;
151 void keyReleaseEvent ( QKeyEvent * ) ; 179 void keyReleaseEvent ( QKeyEvent * ) ;
152 QPopupMenu *configureToolBarMenu; 180 QPopupMenu *configureToolBarMenu;
153 QPopupMenu *selectFilterMenu; 181 QPopupMenu *selectFilterMenu;
154 QPopupMenu *configureAgendaMenu, *syncMenu; 182 QPopupMenu *configureAgendaMenu, *syncMenu;
155 CalendarLocal *mCalendar; 183 CalendarLocal *mCalendar;
156 CalendarView *mView; 184 CalendarView *mView;
157 QString getPassword(); 185 QString getPassword();
158 QAction *mNewSubTodoAction; 186 QAction *mNewSubTodoAction;
159 187