-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,35 +1,86 @@ #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; 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; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); ~MainWindow(); public slots: virtual void showMaximized (); void configureAgenda( int ); @@ -75,49 +126,61 @@ class MainWindow : public QMainWindow void slotSyncMenu( int ); void syncSSH(); void confSync(); void syncSharp(); void syncPhone(); void syncLocalFile(); bool syncWithFile( QString, bool ); void quickSyncLocalFile(); 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 * ) ; void keyReleaseEvent ( QKeyEvent * ) ; QPopupMenu *configureToolBarMenu; QPopupMenu *selectFilterMenu; QPopupMenu *configureAgendaMenu, *syncMenu; CalendarLocal *mCalendar; CalendarView *mView; QString getPassword(); QAction *mNewSubTodoAction; QAction *mShowAction; QAction *mEditAction; QAction *mDeleteAction; void closeEvent( QCloseEvent* ce ); SimpleAlarmClient mAlarmClient; QTimer mSaveTimer; bool mBlockSaveFlag; bool mCalendarModifiedFlag; QPixmap loadPixmap( QString ); + QDialog * mSyncActionDialog; }; + #endif |