diff --git a/client/view/mainWindow.py b/client/view/mainWindow.py
index ac2cae1..6a4980c 100755
--- a/client/view/mainWindow.py
+++ b/client/view/mainWindow.py
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'mainWindow.ui'
#
-# Created: Sat Apr 4 23:06:45 2015
+# Created: Sun Apr 5 15:23:56 2015
# by: PyQt4 UI code generator 4.11.3
#
# WARNING! All changes made in this file will be lost!
@@ -27,7 +27,7 @@ class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.setEnabled(True)
- Dialog.resize(827, 558)
+ Dialog.resize(813, 558)
Dialog.setMaximumSize(QtCore.QSize(827, 558))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8("../../../../../../Images/Homer-Simpson-homer-simpson-3065329-800-600.jpg")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
diff --git a/client/view/pm.py b/client/view/pm.py
deleted file mode 100644
index bb7fe45..0000000
--- a/client/view/pm.py
+++ /dev/null
@@ -1,72 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'pm.ui'
-#
-# Created: Sat Apr 4 23:20:13 2015
-# by: PyQt4 UI code generator 4.11.3
-#
-# WARNING! All changes made in this file will be lost!
-
-from PyQt4 import QtCore, QtGui
-
-try:
- _fromUtf8 = QtCore.QString.fromUtf8
-except AttributeError:
- def _fromUtf8(s):
- return s
-
-try:
- _encoding = QtGui.QApplication.UnicodeUTF8
- def _translate(context, text, disambig):
- return QtGui.QApplication.translate(context, text, disambig, _encoding)
-except AttributeError:
- def _translate(context, text, disambig):
- return QtGui.QApplication.translate(context, text, disambig)
-
-class Ui_Form(object):
- def setupUi(self, Form):
- Form.setObjectName(_fromUtf8("Form"))
- Form.resize(560, 339)
- self.txtOutput = QtGui.QTextEdit(Form)
- self.txtOutput.setGeometry(QtCore.QRect(20, 40, 531, 231))
- self.txtOutput.setMinimumSize(QtCore.QSize(200, 0))
- font = QtGui.QFont()
- font.setFamily(_fromUtf8("Arial"))
- font.setPointSize(14)
- font.setItalic(False)
- self.txtOutput.setFont(font)
- self.txtOutput.setFocusPolicy(QtCore.Qt.NoFocus)
- self.txtOutput.setAcceptDrops(False)
- self.txtOutput.setFrameShape(QtGui.QFrame.NoFrame)
- self.txtOutput.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
- self.txtOutput.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
- self.txtOutput.setObjectName(_fromUtf8("txtOutput"))
- self.horizontalLayoutWidget = QtGui.QWidget(Form)
- self.horizontalLayoutWidget.setGeometry(QtCore.QRect(20, 290, 431, 31))
- self.horizontalLayoutWidget.setObjectName(_fromUtf8("horizontalLayoutWidget"))
- self.horizontalLayout = QtGui.QHBoxLayout(self.horizontalLayoutWidget)
- self.horizontalLayout.setMargin(0)
- self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
- self.lineEdit = QtGui.QLineEdit(self.horizontalLayoutWidget)
- self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
- self.horizontalLayout.addWidget(self.lineEdit)
- self.pushButton = QtGui.QPushButton(self.horizontalLayoutWidget)
- self.pushButton.setObjectName(_fromUtf8("pushButton"))
- self.horizontalLayout.addWidget(self.pushButton)
- self.pushButton_2 = QtGui.QPushButton(Form)
- self.pushButton_2.setGeometry(QtCore.QRect(460, 290, 91, 27))
- self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
-
- self.retranslateUi(Form)
- QtCore.QMetaObject.connectSlotsByName(Form)
-
- def retranslateUi(self, Form):
- Form.setWindowTitle(_translate("Form", "Form", None))
- self.txtOutput.setHtml(_translate("Form", "\n"
-"
\n"
-"
", None))
- self.pushButton.setText(_translate("Form", "Send message", None))
- self.pushButton_2.setText(_translate("Form", "send", None))
-
diff --git a/client/view/pmWindow.py b/client/view/pmWindow.py
new file mode 100644
index 0000000..862f8df
--- /dev/null
+++ b/client/view/pmWindow.py
@@ -0,0 +1,105 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'pmWindow.ui'
+#
+# Created: Mon Apr 6 17:05:26 2015
+# by: PyQt4 UI code generator 4.11.3
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+try:
+ _fromUtf8 = QtCore.QString.fromUtf8
+except AttributeError:
+ def _fromUtf8(s):
+ return s
+
+try:
+ _encoding = QtGui.QApplication.UnicodeUTF8
+ def _translate(context, text, disambig):
+ return QtGui.QApplication.translate(context, text, disambig, _encoding)
+except AttributeError:
+ def _translate(context, text, disambig):
+ return QtGui.QApplication.translate(context, text, disambig)
+
+class Ui_Dialog2(object):
+ def setupUi(self, Dialog2):
+ Dialog2.setObjectName(_fromUtf8("Dialog2"))
+ Dialog2.resize(605, 373)
+ self.horizontalLayoutWidget_2 = QtGui.QWidget(Dialog2)
+ self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(50, 50, 531, 31))
+ self.horizontalLayoutWidget_2.setObjectName(_fromUtf8("horizontalLayoutWidget_2"))
+ self.horizontalLayout_2 = QtGui.QHBoxLayout(self.horizontalLayoutWidget_2)
+ self.horizontalLayout_2.setMargin(0)
+ self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
+ self.pushButton_3 = QtGui.QPushButton(self.horizontalLayoutWidget_2)
+ self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
+ self.horizontalLayout_2.addWidget(self.pushButton_3)
+ self.pushButton_4 = QtGui.QPushButton(self.horizontalLayoutWidget_2)
+ self.pushButton_4.setObjectName(_fromUtf8("pushButton_4"))
+ self.horizontalLayout_2.addWidget(self.pushButton_4)
+ self.horizontalLayoutWidget = QtGui.QWidget(Dialog2)
+ self.horizontalLayoutWidget.setGeometry(QtCore.QRect(50, 320, 531, 41))
+ self.horizontalLayoutWidget.setObjectName(_fromUtf8("horizontalLayoutWidget"))
+ self.horizontalLayout = QtGui.QHBoxLayout(self.horizontalLayoutWidget)
+ self.horizontalLayout.setMargin(0)
+ self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
+ self.lineEdit = QtGui.QLineEdit(self.horizontalLayoutWidget)
+ self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
+ self.horizontalLayout.addWidget(self.lineEdit)
+ self.pushButton = QtGui.QPushButton(self.horizontalLayoutWidget)
+ self.pushButton.setObjectName(_fromUtf8("pushButton"))
+ self.horizontalLayout.addWidget(self.pushButton)
+ self.pushButton_2 = QtGui.QPushButton(self.horizontalLayoutWidget)
+ self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
+ self.horizontalLayout.addWidget(self.pushButton_2)
+ self.txtOutput = QtGui.QTextEdit(Dialog2)
+ self.txtOutput.setGeometry(QtCore.QRect(50, 80, 531, 231))
+ self.txtOutput.setMinimumSize(QtCore.QSize(200, 0))
+ font = QtGui.QFont()
+ font.setFamily(_fromUtf8("Arial"))
+ font.setPointSize(14)
+ font.setItalic(False)
+ self.txtOutput.setFont(font)
+ self.txtOutput.setFocusPolicy(QtCore.Qt.NoFocus)
+ self.txtOutput.setAcceptDrops(False)
+ self.txtOutput.setFrameShape(QtGui.QFrame.NoFrame)
+ self.txtOutput.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
+ self.txtOutput.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
+ self.txtOutput.setObjectName(_fromUtf8("txtOutput"))
+ self.horizontalLayoutWidget_3 = QtGui.QWidget(Dialog2)
+ self.horizontalLayoutWidget_3.setGeometry(QtCore.QRect(50, 10, 531, 41))
+ self.horizontalLayoutWidget_3.setObjectName(_fromUtf8("horizontalLayoutWidget_3"))
+ self.horizontalLayout_4 = QtGui.QHBoxLayout(self.horizontalLayoutWidget_3)
+ self.horizontalLayout_4.setMargin(0)
+ self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
+ self.label = QtGui.QLabel(self.horizontalLayoutWidget_3)
+ self.label.setObjectName(_fromUtf8("label"))
+ self.horizontalLayout_4.addWidget(self.label)
+ self.label_2 = QtGui.QLabel(self.horizontalLayoutWidget_3)
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ font.setBold(True)
+ font.setWeight(75)
+ self.label_2.setFont(font)
+ self.label_2.setObjectName(_fromUtf8("label_2"))
+ self.horizontalLayout_4.addWidget(self.label_2)
+
+ self.retranslateUi(Dialog2)
+ QtCore.QMetaObject.connectSlotsByName(Dialog2)
+
+ def retranslateUi(self, Dialog2):
+ Dialog2.setWindowTitle(_translate("Dialog2", "Dialog", None))
+ self.pushButton_3.setText(_translate("Dialog2", "Accept", None))
+ self.pushButton_4.setText(_translate("Dialog2", "Refuse", None))
+ self.pushButton.setText(_translate("Dialog2", "Send message", None))
+ self.pushButton_2.setText(_translate("Dialog2", "send file", None))
+ self.txtOutput.setHtml(_translate("Dialog2", "\n"
+"\n"
+"
", None))
+ self.label.setText(_translate("Dialog2", "Private Discussion with :", None))
+ self.label_2.setText(_translate("Dialog2", "TextLabel", None))
+
diff --git a/client/view/pm.ui b/client/view/pmWindow.ui
similarity index 58%
rename from client/view/pm.ui
rename to client/view/pmWindow.ui
index 23d6b15..b5eae95 100644
--- a/client/view/pm.ui
+++ b/client/view/pmWindow.ui
@@ -1,23 +1,78 @@
- Form
-
+ Dialog2
+
0
0
- 560
- 339
+ 605
+ 373
- Form
+ Dialog
+
+
+
+ 50
+ 50
+ 531
+ 31
+
+
+
+ -
+
+
+ Accept
+
+
+
+ -
+
+
+ Refuse
+
+
+
+
+
+
+
+
+ 50
+ 320
+ 531
+ 41
+
+
+
+ -
+
+
+ -
+
+
+ Send message
+
+
+
+ -
+
+
+ send file
+
+
+
+
+
- 20
- 40
+ 50
+ 80
531
231
@@ -58,41 +113,39 @@ p, li { white-space: pre-wrap; }
Qt::TextBrowserInteraction
-
+
- 20
- 290
- 431
- 31
+ 50
+ 10
+ 531
+ 41
-
+
-
-
+
+
+ Private Discussion with :
+
+
-
-
+
+
+
+ 12
+ 75
+ true
+
+
- Send message
+ TextLabel
-
-
-
- 460
- 290
- 91
- 27
-
-
-
- send file
-
-
diff --git a/client/view/start.py b/client/view/start.py
index cc0509f..d99c365 100755
--- a/client/view/start.py
+++ b/client/view/start.py
@@ -4,7 +4,7 @@ from PySide.QtCore import *
from PySide.QtGui import *
import time, threading, datetime, time, random,re
from socket import *
-from pm import Ui_Form
+from pmWindow import Ui_Dialog2
Host = "127.0.0.1"
Port = 2222
@@ -46,26 +46,29 @@ class MyThread(QThread):
self.gui = gui
class privateMessage () :
- def __init__(self,main,s):
+ def __init__(self,main,s, pmPerson):
self.main = main
self.s = s
+ self.pmPerson = pmPerson
self.g = QtGui.QWidget()
- self.ui = Ui_Form()
+ self.ui = Ui_Dialog2()
self.ui.setupUi(self.g)
self.g.show()
old = start()
+ self.message_buffer2 = ""
- self.queueMsg= []
+ self.queueMsg2= []
self.thread = MyThread()
- self.thread.finished.connect(old.UpdateChat)
+ self.thread.finished.connect(self.UpdateChatP)
self.ui.pushButton.clicked.connect(self.send)
self.ui.pushButton_2.clicked.connect(self.selectFile)
+ self.ui.label_2.setText(pmPerson)
def selectFile(self):
- self.ui.lineEdit.setText(''.join(QFileDialog.getOpenFileName()))
+ self.ui.lineEdit.setText('/pmfile '+self.pmPerson+ ' '.join(QFileDialog.getOpenFileName()))
@@ -88,8 +91,24 @@ class privateMessage () :
self.ui.txtOutput.setText(self.message_buffer)
sb = self.ui.txtOutput.verticalScrollBar()
sb.setValue(sb.maximum())
+
+ def UpdateChatP(self) :
+ if self.queueMsg2 :
+ m = self.queueMsg2.pop(0)
+ if m :
+ self.thread.start()
+ self.ShowMessageAsTextPm(m)
+ self.ui.txtOutput.setText(self.message_buffer2)
+ sb = self.ui.txtOutput.verticalScrollBar()
+ sb.setValue(sb.maximum())
-
+ def ShowMessageAsTextPm(self,txt) :
+ if txt.split(" ")[0] == "NEW_MSG" :
+ self.message_buffer2 += '
' + self.getTimeStamp() + ' < '+txt.split(" ")[1] +' > ' + self.htmlToText(' '.join(txt.split(" ")[2:])) + ''
+
+ if txt == "SUCC_MESSAGE_SENDED" :
+ self.message_buffer += '
' + self.getTimeStamp() + ' < '+ self.pseudo +' > ' + self.htmlToText(self.cmd) + ''
+
class start(QtGui.QDialog):
def __init__(self):
@@ -153,11 +172,11 @@ class start(QtGui.QDialog):
if txt.split(" ")[0] == "SUCC_INVITED" :
self.ShowMessageOK("invitation requested")
+ self.admin = privateMessage(self,self.s,self.demande)
if txt.split(" ")[0] == "ASKING_FOR_PM" :
self.ShowMessageOK("private discution from "+ txt.split(" ")[1] )
- #ouvrir fenetre !!!!
- self.admin = privateMessage(self,self.s)
+ self.admin = privateMessage(self,self.s,txt.split(" ")[1])
if txt.split(" ")[0] == "SUCCESSFUL_LOGOUT" :
@@ -182,7 +201,9 @@ class start(QtGui.QDialog):
if txt.split(" ")[0] == "SUCC_VALID_NICKNAME" :
self.ShowMessageOK("Sucessful nickname change !")
-
+ if txt.split(" ")[0] == "ERR_INVALID_NICKNAME" :
+ self.pseudo = "INVALID_NICKNAME"
+
#HAS_LEFT anonymous52
if txt.split(" ")[0] == "NAME_CHANGED" :
self.ShowMessageNameChange(txt.split(" ")[1], txt.split(" ")[2])
@@ -250,9 +271,27 @@ class start(QtGui.QDialog):
self.ui.pushButton_3.clicked.connect(self.deco)
self.ui.pushButton.clicked.connect(self.client)
self.ui.pushButton_6.clicked.connect(self.changeN)
-
self.ui.pushButton_5.clicked.connect(self.away)
+ #self.connect(self.ui.listNames,
+ # QtCore.SIGNAL("itemDoubleClicked(QListWidgetItem *)"),
+ # self.someMethod)
+ self.ui.listNames.itemActivated.connect(self.someMethod)
+
+ def someMethod(self,item):
+
+ nom = item.text()
+ cmdPM = "/askpm "+nom
+ try:
+ self.s.send(cmdPM.encode())
+ self.demande = nom
+
+ except timeout:
+ self.ShowMessageErreur("Erreur : Timeout. Le serveur ne repond pas")
+ self.ui.txtOutput.setText(self.message_buffer)
+ sb = self.ui.txtOutput.verticalScrollBar()
+ sb.setValue(sb.maximum())
+
def away(self):
@@ -400,6 +439,9 @@ class start(QtGui.QDialog):
if self.cmd.split(" ")[0] == "/name":
self.pseudo = self.cmd.split(" ")[1]
+
+ if self.cmd.split(" ")[0]=="/askpm":
+ self.demande = self.cmd.split(" ")[1]
except timeout:
self.ShowMessageErreur("Erreur : Timeout. Le serveur ne repond pas")