messages - minimal working version

This commit is contained in:
ingvar1995 2018-05-04 00:17:48 +03:00
parent ad351030d9
commit c8443b56dd
19 changed files with 174 additions and 148 deletions

View file

@ -5,7 +5,7 @@ import util
import pyaudio
import wave
from user_data import settings
from util.util import curr_directory
from util.util import *
class IncomingCallWidget(widgets.CenteredWidget):

View file

@ -1,6 +1,8 @@
from ui.list_items import *
from ui.messages_widgets import *
# rename methods
class ItemsFactory:
@ -9,6 +11,11 @@ class ItemsFactory:
self._smiley_loader = smiley_loader
self._messages = main_screen.messages
self._friends_list = main_screen.friends_list
self._message_edit = main_screen.messageEdit
def _create_message_browser(self, text, width, message_type, parent=None):
return MessageBrowser(self._settings, self._message_edit, self._smiley_loader, self._plugin_loader,
text, width, message_type, parent)
def friend_item(self):
item = ContactItem(self._settings)
@ -18,8 +25,8 @@ class ItemsFactory:
self._friends_list.setItemWidget(elem, item)
return item
def message_item(self, message, pixmap=None):
item = MessageItem(message, self._messages)
def message_item(self, message, append=True, pixmap=None):
item = MessageItem(self._settings, self._create_message_browser, message, self._messages)
if pixmap is not None:
item.set_avatar(pixmap)
elem = QtWidgets.QListWidgetItem()

View file

@ -2,7 +2,7 @@ from wrapper.toxcore_enums_and_consts import *
from PyQt5 import QtCore, QtGui, QtWidgets
from contacts import profile
from file_transfers.file_transfers import TOX_FILE_TRANSFER_STATE, PAUSED_FILE_TRANSFERS, DO_NOT_SHOW_ACCEPT_BUTTON, ACTIVE_FILE_TRANSFERS, SHOW_PROGRESS_BAR
from util.util import curr_directory, convert_time, curr_time
from util.util import *
from ui.widgets import DataLabel, create_menu
import html as h
import smileys

View file

@ -1,7 +1,7 @@
from PyQt5 import QtCore, QtGui, QtWidgets
from user_data.settings import *
from contacts.profile import Profile
from util.util import curr_directory, copy, get_stickers_directory, join_path
from util.util import *
from ui.widgets import CenteredWidget, DataLabel, LineEdit, RubberBandWindow
import pyaudio
from user_data import toxes

View file

@ -6,9 +6,10 @@ import util.util as util
import ui.menu as menu
import html as h
import re
from messenger.messages import MESSAGE_AUTHOR
class MessageEdit(QtWidgets.QTextBrowser):
class MessageBrowser(QtWidgets.QTextBrowser):
def __init__(self, settings, message_edit, smileys_loader, plugin_loader, text, width, message_type, parent=None):
super().__init__(parent)
@ -122,7 +123,7 @@ class MessageItem(QtWidgets.QWidget):
"""
Message in messages list
"""
def __init__(self, settings, text_message, parent=None):
def __init__(self, settings, message_browser_factory_method, text_message, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.name = widgets.DataLabel(self)
self.name.setGeometry(QtCore.QRect(2, 2, 95, 23))
@ -132,25 +133,26 @@ class MessageItem(QtWidgets.QWidget):
font.setPointSize(11)
font.setBold(True)
self.name.setFont(font)
self.name.setText(text_message.user)
self.name.setText(text_message.author.name)
self.time = QtWidgets.QLabel(self)
self.time.setGeometry(QtCore.QRect(parent.width() - 60, 0, 50, 25))
font.setPointSize(10)
font.setBold(False)
self.time.setFont(font)
self._time = time
if not sent:
self._time = text_message.time
if text_message.author.type == MESSAGE_AUTHOR['NOT_SENT']:
movie = QtGui.QMovie(util.join_path(util.get_images_directory(), 'spinner.gif'))
self.time.setMovie(movie)
movie.start()
self.t = True
else:
self.time.setText(util.convert_time(time))
self.time.setText(util.convert_time(text_message.time))
self.t = False
self.message = MessageEdit(text, parent.width() - 160, message_type, self)
if message_type != TOX_MESSAGE_TYPE['NORMAL']:
self.message = message_browser_factory_method(text_message.text, parent.width() - 160,
text_message.type, self)
if text_message.type != TOX_MESSAGE_TYPE['NORMAL']:
self.name.setStyleSheet("QLabel { color: #5CB3FF; }")
self.message.setAlignment(QtCore.Qt.AlignCenter)
self.time.setStyleSheet("QLabel { color: #5CB3FF; }")

View file

@ -1,6 +1,6 @@
from PyQt5 import QtWidgets, QtGui, QtCore
from util.ui import tr
from util.util import get_images_directory
from util.util import *
import os.path