some remnaming

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20298 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
André Pönitz 2007-09-15 20:31:50 +00:00
parent 93196b1f73
commit 50de85396c
6 changed files with 40 additions and 108 deletions

View File

@ -203,8 +203,8 @@ public:
* add a callback for socket read notification
* @param fd socket descriptor (file/socket/etc)
*/
virtual void registerSocketCallback(
int fd, boost::function<void()> func) = 0;
typedef boost::function<void()> SocketCallback;
virtual void registerSocketCallback( int fd, SocketCallback func) = 0;
/**
* remove a I/O read callback

View File

@ -16,7 +16,6 @@
#include "qt_helpers.h"
#include "GuiImage.h"
#include "SocketCallback.h"
#include "frontends/LyXView.h"
@ -45,6 +44,7 @@
#include <QLibraryInfo>
#include <QPixmapCache>
#include <QSessionManager>
#include <QSocketNotifier>
#include <QTextCodec>
#include <QTimer>
#include <QTranslator>
@ -73,12 +73,30 @@ frontend::Application * createApplication(int & argc, char * argv[])
namespace frontend {
class SocketNotifier : public QSocketNotifier
{
public:
/// connect a connection notification from the LyXServerSocket
SocketNotifier(QObject * parent, int fd, Application::SocketCallback func)
: QSocketNotifier(fd, QSocketNotifier::Read, parent), func_(func)
{}
public:
/// The callback function
Application::SocketCallback func_;
};
////////////////////////////////////////////////////////////////////////
// Mac specific stuff goes here...
class MenuTranslator : public QTranslator
{
public:
MenuTranslator(QObject * parent)
: QTranslator(parent)
{}
QString translate(const char * /*context*/,
const char * sourceText,
const char * /*comment*/ = 0)
@ -105,7 +123,7 @@ GuiApplication * guiApp;
GuiApplication::GuiApplication(int & argc, char ** argv)
: QApplication(argc, argv), Application(argc, argv), menu_trans_(0)
: QApplication(argc, argv), Application(argc, argv)
{
// Qt bug? setQuitOnLastWindowClosed(true); does not work
setQuitOnLastWindowClosed(false);
@ -165,8 +183,7 @@ GuiApplication::GuiApplication(int & argc, char ** argv)
GuiApplication::~GuiApplication()
{
delete menu_trans_;
socket_callbacks_.clear();
socket_notifiers_.clear();
}
@ -321,15 +338,23 @@ void GuiApplication::updateColor(Color_color)
}
void GuiApplication::registerSocketCallback(int fd, boost::function<void()> func)
void GuiApplication::registerSocketCallback(int fd, SocketCallback func)
{
socket_callbacks_[fd] = new SocketCallback(this, fd, func);
SocketNotifier * sn = new SocketNotifier(this, fd, func);
socket_notifiers_[fd] = sn;
connect(sn, SIGNAL(activated(int)), this, SLOT(socketDataReceived(int)));
}
void GuiApplication::socketDataReceived(int fd)
{
socket_notifiers_[fd]->func_();
}
void GuiApplication::unregisterSocketCallback(int fd)
{
socket_callbacks_.erase(fd);
socket_notifiers_.erase(fd);
}
@ -383,8 +408,7 @@ bool GuiApplication::x11EventFilter(XEvent * xev)
void GuiApplication::addMenuTranslator()
{
menu_trans_ = new MenuTranslator();
installTranslator(menu_trans_);
installTranslator(new MenuTranslator(this));
}

View File

@ -29,12 +29,12 @@ class QSessionManager;
namespace lyx {
class BufferView;
class SocketCallback;
namespace frontend {
class GuiWorkArea;
class MenuTranslator;
class SocketNotifier;
/// The Qt main application class
/**
@ -69,8 +69,7 @@ public:
virtual bool getRgbColor(Color_color col, RGBColor & rgbcol);
virtual std::string const hexName(Color_color col);
virtual void updateColor(Color_color col);
virtual void registerSocketCallback(
int fd, boost::function<void()> func);
virtual void registerSocketCallback(int fd, SocketCallback func);
void unregisterSocketCallback(int fd);
//@}
@ -89,6 +88,8 @@ public:
private Q_SLOTS:
///
void execBatchCommands();
///
void socketDataReceived(int fd);
private:
///
@ -104,7 +105,7 @@ private:
///
QTranslator qt_trans_;
///
std::map<int, SocketCallback *> socket_callbacks_;
std::map<int, SocketNotifier *> socket_notifiers_;
#ifdef Q_WS_X11
public:

View File

@ -111,7 +111,6 @@ SOURCEFILES = \
LyXFileDialog.cpp \
PanelStack.cpp \
qt_helpers.cpp \
SocketCallback.cpp \
TocModel.cpp \
TocWidget.cpp \
Validator.cpp
@ -194,7 +193,6 @@ MOCHEADER = \
LyXFileDialog.h \
PanelStack.h \
qlkey.h \
SocketCallback.h \
TocModel.h \
TocWidget.h \
Validator.h

View File

@ -1,36 +0,0 @@
/**
* \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 <config.h>
#include "SocketCallback.h"
namespace lyx {
SocketCallback::SocketCallback(QObject * parent,
int fd, boost::function<void()> func)
: QObject(parent), func_(func)
{
sn_ = new QSocketNotifier(fd, QSocketNotifier::Read, this);
connect(sn_, SIGNAL(activated(int)), this, SLOT(dataReceived()));
}
void SocketCallback::dataReceived()
{
func_();
}
} // namespace lyx
#include "SocketCallback_moc.cpp"

View File

@ -1,55 +0,0 @@
// -*- 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 <QObject>
#include <QSocketNotifier>
#include <boost/function.hpp>
namespace lyx {
/**
* 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 SocketCallback : public QObject
{
Q_OBJECT
public:
/// connect a connection notification from the LyXServerSocket
SocketCallback(QObject * parent, int fd, boost::function<void()> func);
public Q_SLOTS:
void dataReceived();
private:
/// Our notifier
QSocketNotifier * sn_;
/// The callback function
boost::function<void()> func_;
};
} // namespace lyx
#endif // SOCKET_CALLBACK_H