ui update - messages #3
This commit is contained in:
parent
374f474b14
commit
7622ecbda7
3 changed files with 33 additions and 15 deletions
|
@ -4,7 +4,7 @@ from PySide import QtGui, QtCore
|
||||||
|
|
||||||
|
|
||||||
class MessageEdit(QtGui.QPlainTextEdit):
|
class MessageEdit(QtGui.QPlainTextEdit):
|
||||||
def __init__(self, text='', parent=None):
|
def __init__(self, text, width, parent=None):
|
||||||
super(MessageEdit, self).__init__(parent)
|
super(MessageEdit, self).__init__(parent)
|
||||||
|
|
||||||
self.setWordWrapMode(QtGui.QTextOption.WrapAtWordBoundaryOrAnywhere)
|
self.setWordWrapMode(QtGui.QTextOption.WrapAtWordBoundaryOrAnywhere)
|
||||||
|
@ -12,22 +12,25 @@ class MessageEdit(QtGui.QPlainTextEdit):
|
||||||
self.document().setTextWidth(parent.width() - 100)
|
self.document().setTextWidth(parent.width() - 100)
|
||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setFamily("Times New Roman")
|
font.setFamily("Times New Roman")
|
||||||
font.setPointSize(10)
|
font.setPixelSize(12)
|
||||||
font.setBold(False)
|
font.setBold(False)
|
||||||
|
|
||||||
self.setFont(font)
|
self.setFont(font)
|
||||||
lines = prev = 0
|
lines = 0
|
||||||
|
fm = QtGui.QFontMetrics(font)
|
||||||
try:
|
try:
|
||||||
for elem in xrange(self.document().blockCount()):
|
for elem in xrange(self.document().blockCount()):
|
||||||
pos = self.document().findBlockByLineNumber(elem).position()
|
block = self.document().findBlockByLineNumber(elem)
|
||||||
lines += (pos - prev) // 55 + 1
|
l = block.length()
|
||||||
prev = pos
|
line_width = fm.width(block.text())
|
||||||
|
print 'Width: ', line_width
|
||||||
|
print 'Parent width', parent.width()
|
||||||
|
lines += line_width // width + 1
|
||||||
except:
|
except:
|
||||||
print 'updateSize failed'
|
print 'updateSize failed'
|
||||||
print 'lines ', lines
|
print 'lines ', lines
|
||||||
self.setFixedHeight(max(lines * 18, 30))
|
if self.document().blockCount() == 1:
|
||||||
self.setMinimumHeight(max(lines * 18, 30))
|
lines += 1
|
||||||
self.setMaximumHeight(max(lines * 18, 30))
|
self.setFixedHeight(max(lines * 15, 30))
|
||||||
self.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse | QtCore.Qt.LinksAccessibleByMouse)
|
self.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse | QtCore.Qt.LinksAccessibleByMouse)
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,7 +52,7 @@ class MessageItem(QtGui.QListWidget):
|
||||||
self.name.setText(user)
|
self.name.setText(user)
|
||||||
|
|
||||||
self.time = QtGui.QLabel(self)
|
self.time = QtGui.QLabel(self)
|
||||||
self.time.setGeometry(QtCore.QRect(450, 0, 50, 50))
|
self.time.setGeometry(QtCore.QRect(450, 0, 50, 25))
|
||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setFamily("Times New Roman")
|
font.setFamily("Times New Roman")
|
||||||
font.setPointSize(10)
|
font.setPointSize(10)
|
||||||
|
@ -58,7 +61,7 @@ class MessageItem(QtGui.QListWidget):
|
||||||
self.time.setObjectName("time")
|
self.time.setObjectName("time")
|
||||||
self.time.setText(time)
|
self.time.setText(time)
|
||||||
|
|
||||||
self.message = MessageEdit(text, self)
|
self.message = MessageEdit(text, parent.width() - 100, self)
|
||||||
self.message.setGeometry(QtCore.QRect(50, 0, parent.width() - 100, self.message.height()))
|
self.message.setGeometry(QtCore.QRect(50, 0, parent.width() - 100, self.message.height()))
|
||||||
self.h = self.message.height()
|
self.h = self.message.height()
|
||||||
self.setFixedHeight(self.getHeight())
|
self.setFixedHeight(self.getHeight())
|
||||||
|
|
|
@ -5,6 +5,19 @@ from profile import *
|
||||||
from list_items import *
|
from list_items import *
|
||||||
|
|
||||||
|
|
||||||
|
class MessageArea(QtGui.QPlainTextEdit):
|
||||||
|
|
||||||
|
def __init__(self, parent, form):
|
||||||
|
super(MessageArea, self).__init__(parent)
|
||||||
|
self.parent = form
|
||||||
|
|
||||||
|
def keyPressEvent(self, event):
|
||||||
|
if event.key() == QtCore.Qt.Key_Return:
|
||||||
|
self.parent.send_message()
|
||||||
|
else:
|
||||||
|
super(self.__class__, self).keyPressEvent(event)
|
||||||
|
|
||||||
|
|
||||||
class MainWindow(QtGui.QMainWindow):
|
class MainWindow(QtGui.QMainWindow):
|
||||||
|
|
||||||
def __init__(self, tox):
|
def __init__(self, tox):
|
||||||
|
@ -77,7 +90,7 @@ class MainWindow(QtGui.QMainWindow):
|
||||||
Form.setObjectName("right_bottom")
|
Form.setObjectName("right_bottom")
|
||||||
Form.resize(500, 150)
|
Form.resize(500, 150)
|
||||||
Form.setMinimumSize(QtCore.QSize(100, 50))
|
Form.setMinimumSize(QtCore.QSize(100, 50))
|
||||||
self.messageEdit = QtGui.QTextEdit(Form)
|
self.messageEdit = MessageArea(Form, self)
|
||||||
self.messageEdit.setGeometry(QtCore.QRect(20, 20, 311, 111))
|
self.messageEdit.setGeometry(QtCore.QRect(20, 20, 311, 111))
|
||||||
self.messageEdit.setObjectName("messageEdit")
|
self.messageEdit.setObjectName("messageEdit")
|
||||||
self.screenshotButton = QtGui.QPushButton(Form)
|
self.screenshotButton = QtGui.QPushButton(Form)
|
||||||
|
@ -96,7 +109,7 @@ class MainWindow(QtGui.QMainWindow):
|
||||||
QtCore.QMetaObject.connectSlotsByName(Form)
|
QtCore.QMetaObject.connectSlotsByName(Form)
|
||||||
|
|
||||||
def setup_left_bottom(self, Form):
|
def setup_left_bottom(self, Form):
|
||||||
Form.setObjectName("left_center")
|
Form.setObjectName("left_bottom")
|
||||||
Form.resize(500, 80)
|
Form.resize(500, 80)
|
||||||
self.online_contacts = QtGui.QCheckBox(Form)
|
self.online_contacts = QtGui.QCheckBox(Form)
|
||||||
self.online_contacts.setGeometry(QtCore.QRect(0, 20, 141, 22))
|
self.online_contacts.setGeometry(QtCore.QRect(0, 20, 141, 22))
|
||||||
|
@ -286,3 +299,5 @@ class MainWindow(QtGui.QMainWindow):
|
||||||
|
|
||||||
def filtering(self):
|
def filtering(self):
|
||||||
self.profile.filtration(self.online_contacts.isChecked(), self.contact_name.text())
|
self.profile.filtration(self.online_contacts.isChecked(), self.contact_name.text())
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -264,7 +264,7 @@ class Profile(Contact):
|
||||||
elem.setSizeHint(QtCore.QSize(500, item.getHeight()))
|
elem.setSizeHint(QtCore.QSize(500, item.getHeight()))
|
||||||
self._messages.addItem(elem)
|
self._messages.addItem(elem)
|
||||||
self._messages.setItemWidget(elem, item)
|
self._messages.setItemWidget(elem, item)
|
||||||
self._messages.scrollToBottom()
|
#self._messages.scrollToBottom()
|
||||||
self._messages.repaint()
|
self._messages.repaint()
|
||||||
else:
|
else:
|
||||||
friend = filter(lambda x: x.number == id, self._friends)[0]
|
friend = filter(lambda x: x.number == id, self._friends)[0]
|
||||||
|
|
Loading…
Reference in a new issue