OSDN Git Service

Please ignore this commit.
[greensite/jasmine.git] / ui / jasmine_mainwindow.cxx
index 4f39955..fbd95dd 100644 (file)
@@ -53,8 +53,10 @@ mainWindow::mainWindow(){
     connect(this->sendTextEditor,SIGNAL(invalidLink(const QString &)),SLOT(invalidLink(const QString &)));
     connect(this->sendTextEditor,SIGNAL(sendTriggered()),this->sendButton,SLOT(click()));
 
-    connect(this->mainServer,SIGNAL(pending(threadedTcpSocket &)),
-            SLOT(tcpserver_pending(threadedTcpSocket &)));
+    connect(this->mainServer,SIGNAL(pending(const AddressAndPort &)),
+            SLOT(tcpserver_pending(const AddressAndPort &)));
+    connect(this->mainServer,SIGNAL(socket_accepted(const threadedTcpSocket &)),
+            SLOT(tcpserver_accepted(const threadedTcpSocket &)));
 }
 mainWindow::~mainWindow(){}
 void mainWindow::closeEvent(QCloseEvent *event){
@@ -77,19 +79,10 @@ void mainWindow::on_sendButton_clicked(){
     for(int index=0;index<addressList.size();index++){
         threadedTcpSocket *client=new threadedTcpSocket(
                 addressList[index],this->setting.name(),default_buffer_size,this);
-        connect(client,SIGNAL(error(const QAbstractSocket::SocketError &)),SLOT(tcpclient_error(const QAbstractSocket::SocketError &)));
         connect(client,SIGNAL(sentData()),SLOT(sentData()));
         (*client)<<this->sendTextEditor->html();
     }
 }
-void mainWindow::tcpclient_error(const QAbstractSocket::SocketError &error){
-    Q_UNUSED(error);
-    threadedTcpSocket *client=qobject_cast<threadedTcpSocket *>(this->sender());
-#ifdef DEBUG
-    qDebug()<<"Error:"<<client->errorString();
-#endif
-    client->exit(1);
-}
 
 void mainWindow::on_sendFileAction_triggered(){
     //TODO:Send files
@@ -287,25 +280,16 @@ void mainWindow::selectedLink(const QUrl &link){
 settings mainWindow::app_setting() const{return this->setting;}
 
 //Main server
-bool mainWindow::tcpserver_pending(threadedTcpSocket &socket){
+bool mainWindow::tcpserver_pending(const AddressAndPort &addr){
 #ifdef DEBUG
-    qDebug()<<"Pending:"<<socket.peerAddr().first.toString()<<" Port:"<<socket.peerAddr().second;
+    qDebug()<<"Pending:"<<addr.first.toString()<<" Port:"<<addr.second;
 #endif
-    if(this->memberList->isInMember(socket.peerAddr(),true)<0) return false;
+    return this->memberList->isInMember(addr,true)>=0;
+}
+void mainWindow::tcpserver_accepted(const threadedTcpSocket &socket){
     connect(&socket,
             SIGNAL(msg_received(const QString &)),
             SLOT(tcpserver_msg_received(const QString &)));
-    connect(&socket,SIGNAL(error(const QAbstractSocket::SocketError &)),
-            SLOT(tcpserver_error(const QAbstractSocket::SocketError &)));
-    return true;
-}
-void mainWindow::tcpserver_error(const QAbstractSocket::SocketError &error){
-    Q_UNUSED(error);
-    threadedTcpSocket *sender=qobject_cast<threadedTcpSocket *>(this->sender());
-#ifdef DEBUG
-    qDebug()<<"Receive aborted:"<<sender->errorString();
-#endif
-    sender->exit(1);
 }
 
 void mainWindow::tcpserver_msg_received(const QString &msg){