diff options
Diffstat (limited to 'examples/network/remotecontrol/remotectrlimpl.cpp')
-rw-r--r-- | examples/network/remotecontrol/remotectrlimpl.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/examples/network/remotecontrol/remotectrlimpl.cpp b/examples/network/remotecontrol/remotectrlimpl.cpp new file mode 100644 index 0000000..bac7806 --- /dev/null +++ b/examples/network/remotecontrol/remotectrlimpl.cpp @@ -0,0 +1,50 @@ +#include "remotectrlimpl.h" + +#include <qpushbutton.h> +#include <qlineedit.h> +#include <qsocket.h> +#include <qfiledialog.h> +#include <qcolordialog.h> +#include <qimage.h> + +RemoteCtrlImpl::RemoteCtrlImpl( QSocket *s ) +{ + socket = s; + connect( sImage, SIGNAL(clicked()), SLOT(sendImage()) ); + connect( sText, SIGNAL(clicked()), SLOT(sendText()) ); + connect( sPalette, SIGNAL(clicked()), SLOT(sendPalette()) ); +} + +void RemoteCtrlImpl::sendPacket( const QVariant &v ) +{ + QByteArray ba; + QDataStream varDs( ba, IO_WriteOnly ); + varDs << v; + + QDataStream ds( socket ); + ds << (Q_UINT32) ba.size(); + socket->writeBlock( ba.data(), ba.size() ); +} + +void RemoteCtrlImpl::sendImage() +{ + QString imageName = QFileDialog::getOpenFileName( QString::null, + "Images (*.png *.xpm *.jpg)", this ); + QImage image( imageName ); + if ( !image.isNull() ) { + sendPacket( image ); + } +} + +void RemoteCtrlImpl::sendText() +{ + sendPacket( textToSend->text() ); +} + +void RemoteCtrlImpl::sendPalette() +{ + QColor col = QColorDialog::getColor( white, this ); + if ( col.isValid() ) { + sendPacket( QPalette(col,col) ); + } +} |