From ee252d8fe4de15bbcc474d05f2d9858f131f7771 Mon Sep 17 00:00:00 2001 From: Alfredo Braunstein Date: Wed, 5 Nov 2003 08:40:45 +0000 Subject: [PATCH] bring lyxsocket to qt git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8038 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt2/ChangeLog | 6 ++++ src/frontends/qt2/Makefile.am | 1 + src/frontends/qt2/socket_callback.C | 43 +++++++++++++++++++++++++ src/frontends/qt2/socket_callback.h | 50 +++++++++++++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 src/frontends/qt2/socket_callback.C create mode 100644 src/frontends/qt2/socket_callback.h diff --git a/src/frontends/qt2/ChangeLog b/src/frontends/qt2/ChangeLog index 94a01dc9b6..71d7853c7b 100644 --- a/src/frontends/qt2/ChangeLog +++ b/src/frontends/qt2/ChangeLog @@ -1,3 +1,9 @@ +2003-11-05 João Luis M. Assirati + + * socket_callback.[Ch] ({set,remove}_{server,data}socket_callback()): + new files with a class to connect sockets. + + * Makefile.am: add the above 2003-11-04 Alfredo Braunstein diff --git a/src/frontends/qt2/Makefile.am b/src/frontends/qt2/Makefile.am index 09c8d11eab..f765ab638f 100644 --- a/src/frontends/qt2/Makefile.am +++ b/src/frontends/qt2/Makefile.am @@ -72,6 +72,7 @@ libqt2_la_SOURCES = \ lyx_gui.C \ lcolorcache.h lcolorcache.C \ panelstack.h panelstack.C \ + socket_callback.C socket_callback.h \ qcoloritem.h qcoloritem.C \ qfontexample.h qfontexample.C \ qfont_loader.h qfont_loader.C \ diff --git a/src/frontends/qt2/socket_callback.C b/src/frontends/qt2/socket_callback.C new file mode 100644 index 0000000000..ab3f1611fc --- /dev/null +++ b/src/frontends/qt2/socket_callback.C @@ -0,0 +1,43 @@ +/** + * \file io_callback.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author unknown + * \author John Levon + * \author João Luis M. Assirati + * + * Full author contact details are available in file CREDITS. + */ + +#include + + +#include "lyxsocket.h" +#include "socket_callback.h" + + +socket_callback::socket_callback(LyXServerSocket * server) + : server_(server) +{ + sn_.reset(new QSocketNotifier(server->fd(), QSocketNotifier::Read, this)); + connect(sn_.get(), SIGNAL(activated(int)), this, SLOT(server_received())); +} + +socket_callback::socket_callback(LyXDataSocket * data) + : data_(data) +{ + sn_.reset(new QSocketNotifier(data->fd(), QSocketNotifier::Read, this)); + connect(sn_.get(), SIGNAL(activated(int)), this, SLOT(data_received())); +} + + +void socket_callback::server_received() +{ + server_->serverCallback(); +} + +void socket_callback::data_received() +{ + data_->server()->dataCallback(data_); +} diff --git a/src/frontends/qt2/socket_callback.h b/src/frontends/qt2/socket_callback.h new file mode 100644 index 0000000000..3821033db4 --- /dev/null +++ b/src/frontends/qt2/socket_callback.h @@ -0,0 +1,50 @@ +// -*- C++ -*- +/** + * \file io_callback.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author unknown + * \author John Levon + * \author João Luis M. Assirati + * + * Full author contact details are available in file CREDITS. + */ + +#ifndef SOCKET_CALLBACK_H +#define SOCKET_CALLBACK_H + + +#include +#include +#include + +class LyXServerSocket; +class LyXDataSocket; + +/** + * socket_callback - a simple wrapper for asynchronous socket notification + * + * This is used by the lyxsocket to notice the socket is ready to be + * connected/read. + * + * FIXME: this code apparently will not work on Windows. + */ +class socket_callback : public QObject { + Q_OBJECT +public: + /// connect a connection notification from the LyXServerSocket + socket_callback(LyXServerSocket * server); + socket_callback(LyXDataSocket * data); +public slots: + void server_received(); + void data_received(); +private: + /// our notifier + boost::scoped_ptr sn_; + + LyXServerSocket * server_; + LyXDataSocket * data_; +}; + +#endif // SOCKET_CALLBACK_H -- 2.39.2