diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2022-09-18 20:19:47 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2022-09-18 20:39:48 +0900 |
commit | a80a494efee7979c28ab1090734270e5c0515352 (patch) | |
tree | 1cdaee39e3e5a2b32c171f8389b29b15c519c607 /src/UiGuiIndentServer.cpp | |
parent | 14f7e49438caa24af81a0d7d7864ce71d96791e4 (diff) | |
download | universal-indent-gui-tqt-a80a494efee7979c28ab1090734270e5c0515352.tar.gz universal-indent-gui-tqt-a80a494efee7979c28ab1090734270e5c0515352.zip |
Added main window menubar GUI. The logic of each action has not been implemented yet.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'src/UiGuiIndentServer.cpp')
-rw-r--r-- | src/UiGuiIndentServer.cpp | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/src/UiGuiIndentServer.cpp b/src/UiGuiIndentServer.cpp deleted file mode 100644 index 91c5ec7..0000000 --- a/src/UiGuiIndentServer.cpp +++ /dev/null @@ -1,175 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2006-2012 by Thomas Schweitzer * - * thomas-schweitzer(at)arcor.de * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2.0 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program in the file LICENSE.GPL; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#include "UiGuiIndentServer.h" - -#include <tqtcpserver.h> -#include <tqtcpsocket.h> -#include <tntqmessagebox.h> -#include <tqtdebug.h> - -//! \defgroup grp_Server All concerning the server component. - -/*! - \class UiGuiIndentServer - \ingroup grp_Server - \brief UiGuiIndentServer is in such an early state, that even the communication - protocol isn't completely planned. So this class lacks documentation until - I really know where all this will lead to. - - The plan however is to have a server that receives commands for selecting an - indenter and perhaps load some by the user predefined indenter config file. Then - the client can send a text to it and will receive it formatted. - The idea behind that is to make UiGUIs use as plugin or whatever more flexible. - So the plugin is developed for Eclipse for example and it takes the client role, - making it possible to use UiGUI from within Eclipse. Choosing a network protocol - makes everything platform and programming language independent, so it doesn't - matter for which application the plugin/client is developed. -*/ - -UiGuiIndentServer::UiGuiIndentServer(void) : - TQObject() -{ - _tcpServer = NULL; - _currentClientConnection = NULL; - _readyForHandleRequest = false; -} - -UiGuiIndentServer::~UiGuiIndentServer(void) -{ -} - -void UiGuiIndentServer::startServer() -{ - if (_tcpServer == NULL) - { - _tcpServer = new TQTcpServer(this); - } - - if (!_tcpServer->isListening()) - { - if (!_tcpServer->listen(TQHostAddress::Any, tquint16(84484))) - { - TQMessageBox::critical(NULL, tr("UiGUI Server"), - tr("Unable to start the server: %1.").arg(_tcpServer->errorString())); - return; - } - } - - connect(_tcpServer, SIGNAL(newConnection()), this, SLOT(handleNewConnection())); - _readyForHandleRequest = true; - _blockSize = 0; -} - -void UiGuiIndentServer::stopServer() -{ - if (_tcpServer != NULL) - { - _tcpServer->close(); - delete _tcpServer; - _tcpServer = NULL; - } - _currentClientConnection = NULL; - _readyForHandleRequest = false; -} - -void UiGuiIndentServer::handleNewConnection() -{ - TQTcpSocket *clientConnection = _tcpServer->nextPendingConnection(); - connect(clientConnection, SIGNAL(disconnected()), clientConnection, SLOT(deleteLater())); - - connect(clientConnection, SIGNAL(readyRead()), this, SLOT(handleReceivedData())); -} - -void UiGuiIndentServer::handleReceivedData() -{ - if (!_readyForHandleRequest) - { - return; - } - - _currentClientConnection = qobject_cast<TQTcpSocket*>(sender()); - TQString receivedData = ""; - - if (_currentClientConnection != NULL) - { - TQDataStream in(_currentClientConnection); - in.setVersion(TQDataStream::TQt_4_0); - - if (_blockSize == 0) - { - if (_currentClientConnection->bytesAvailable() < (int)sizeof(tquint32)) - { - return; - } - - in >> _blockSize; - } - - if (_currentClientConnection->bytesAvailable() < _blockSize) - { - return; - } - - TQString receivedMessage; - in >> receivedMessage; - - _blockSize = 0; - - tqDebug() << "receivedMessage: " << receivedMessage; - - if (receivedMessage == "ts") - { - sendMessage("Toll"); - } - else - { - sendMessage("irgendwas"); - } - } -} - -void UiGuiIndentServer::sendMessage(const TQString &message) -{ - _readyForHandleRequest = false; - - _dataToSend = ""; - TQDataStream out(&_dataToSend, TQIODevice::WriteOnly); - out.setVersion(TQDataStream::TQt_4_0); - out << (tquint32)0; - out << message; - out.device()->seek(0); - out << (tquint32)(_dataToSend.size() - sizeof(tquint32)); - - connect(_currentClientConnection, SIGNAL(bytesWritten(qint64)), this, - SLOT(checkIfReadyForHandleRequest())); - _currentClientConnection->write(_dataToSend); -} - -void UiGuiIndentServer::checkIfReadyForHandleRequest() -{ - if (_currentClientConnection->bytesToWrite() == 0) - { - TQString dataToSendStr = _dataToSend.right(_dataToSend.size() - sizeof(tquint32)); - tqDebug() << "checkIfReadyForHandleRequest _dataToSend was: " << dataToSendStr; - disconnect(_currentClientConnection, SIGNAL(bytesWritten(qint64)), this, - SLOT(checkIfReadyForHandleRequest())); - _readyForHandleRequest = true; - } -} |