-rw-r--r-- | korganizer/mainwindow.h | 65 |
1 files changed, 64 insertions, 1 deletions
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h index 47a7a90..58081f6 100644 --- a/korganizer/mainwindow.h +++ b/korganizer/mainwindow.h @@ -1,12 +1,13 @@ #ifndef KORGE_MAINWINDOW_H #define KORGE_MAINWINDOW_H #include <qmainwindow.h> #include <qtimer.h> #include <qdict.h> +#include <qregexp.h> #include <libkcal/incidence.h> #include "simplealarmclient.h" class QAction; class CalendarView; @@ -14,12 +15,62 @@ class KSyncProfile; #ifdef DESKTOP_VERSION #define QPEToolBar QToolBar #define QPEMenuBar QMenuBar #endif class QPEToolBar; +#include <qserversocket.h> +#include <qsocket.h> +#include <qnetworkprotocol.h> + +class KServerSocket : public QServerSocket +{ + Q_OBJECT + +public: + KServerSocket ( Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 ) : + QServerSocket( port, backlog, parent, name ){;}; + void newConnection ( int socket ) + { + qDebug("KServerSocket:New connection %d ", socket); + QSocket* s = new QSocket( this ); + connect( s, SIGNAL(readyRead()), this, SLOT(readClient()) ); + connect( s, SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); + s->setSocket( socket ); + } + +signals: + void sendFile(QSocket*); + void getFile(QSocket*); + void endConnect(); +private slots: + void discardClient() + { + QSocket* socket = (QSocket*)sender(); + delete socket; + emit endConnect(); + } + void readClient() + { + qDebug("readClient() "); + QSocket* socket = (QSocket*)sender(); + if ( socket->canReadLine() ) { + QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), socket->readLine() ); + if ( tokens[0] == "GET" ) { + emit sendFile( socket ); + } + if ( tokens[0] == "PUT" ) { + emit getFile( socket ); + } + if ( tokens[0] == "STOP" ) { + emit endConnect(); + } + } + } +}; + namespace KCal { class CalendarLocal; } using namespace KCal; @@ -85,18 +136,28 @@ class MainWindow : public QMainWindow protected: void displayText( QString, QString); void displayFile( QString, QString); void enableIncidenceActions( bool ); + private slots: + void fillSyncMenu(); + void sendFile(QSocket* s); + void getFile(QSocket* socket); + void readFileFromSocket(); + void endConnect(); private: + QSocket* mCommandSocket; + KServerSocket * mServerSocket; bool mClosed; void saveOnClose(); int mCurrentSyncProfile; + void enableQuick(); + void performQuick(); + void performQuickQuick(); void syncRemote( KSyncProfile* , bool ask = true); - void fillSyncMenu(); bool mFlagKeyPressed; bool mBlockAtStartup; QPEToolBar *iconToolBar; void initActions(); void setDefaultPreferences(); void keyPressEvent ( QKeyEvent * ) ; @@ -115,9 +176,11 @@ class MainWindow : public QMainWindow void closeEvent( QCloseEvent* ce ); SimpleAlarmClient mAlarmClient; QTimer mSaveTimer; bool mBlockSaveFlag; bool mCalendarModifiedFlag; QPixmap loadPixmap( QString ); + QDialog * mSyncActionDialog; }; + #endif |