history loading after friend switching. refactoring
This commit is contained in:
parent
98dbe6a493
commit
f1c63bb4e8
15 changed files with 135 additions and 144 deletions
|
@ -1,28 +1,34 @@
|
|||
from ui.list_items import *
|
||||
from ui.messages_widgets import *
|
||||
|
||||
# rename methods
|
||||
|
||||
class FriendItemsFactory:
|
||||
|
||||
class ItemsFactory:
|
||||
|
||||
def __init__(self, settings, plugin_loader, smiley_loader, main_screen):
|
||||
self._settings, self._plugin_loader = settings, plugin_loader
|
||||
self._smiley_loader = smiley_loader
|
||||
self._messages = main_screen.messages
|
||||
def __init__(self, settings, main_screen):
|
||||
self._settings = settings
|
||||
self._friends_list = main_screen.friends_list
|
||||
self._message_edit = main_screen.messageEdit
|
||||
|
||||
def friend_item(self):
|
||||
def create_friend_item(self):
|
||||
item = ContactItem(self._settings)
|
||||
elem = QtWidgets.QListWidgetItem(self._friends_list)
|
||||
elem.setSizeHint(QtCore.QSize(250, item.height()))
|
||||
self._friends_list.addItem(elem)
|
||||
self._friends_list.setItemWidget(elem, item)
|
||||
|
||||
return item
|
||||
|
||||
def message_item(self, message, append=True, pixmap=None):
|
||||
item = MessageItem(self._settings, self._create_message_browser, message, self._messages)
|
||||
|
||||
class MessagesItemsFactory:
|
||||
|
||||
def __init__(self, settings, plugin_loader, smiley_loader, main_screen, history):
|
||||
self._settings, self._plugin_loader = settings, plugin_loader
|
||||
self._smiley_loader, self._history = smiley_loader, history
|
||||
self._messages = main_screen.messages
|
||||
self._message_edit = main_screen.messageEdit
|
||||
|
||||
def create_message_item(self, message, append=True, pixmap=None):
|
||||
item = message.get_widget(self._settings, self._create_message_browser,
|
||||
self._history.delete_message, self._messages)
|
||||
if pixmap is not None:
|
||||
item.set_avatar(pixmap)
|
||||
elem = QtWidgets.QListWidgetItem()
|
||||
|
@ -32,9 +38,10 @@ class ItemsFactory:
|
|||
else:
|
||||
self._messages.insertItem(0, elem)
|
||||
self._messages.setItemWidget(elem, item)
|
||||
|
||||
return item
|
||||
|
||||
def inline_item(self, data, append):
|
||||
def create_inline_item(self, data, append):
|
||||
elem = QtWidgets.QListWidgetItem()
|
||||
item = InlineImageItem(data, self._messages.width(), elem)
|
||||
elem.setSizeHint(QtCore.QSize(self._messages.width(), item.height()))
|
||||
|
@ -43,9 +50,10 @@ class ItemsFactory:
|
|||
else:
|
||||
self._messages.insertItem(0, elem)
|
||||
self._messages.setItemWidget(elem, item)
|
||||
|
||||
return item
|
||||
|
||||
def unsent_file_item(self, file_name, size, name, time, append):
|
||||
def create_unsent_file_item(self, file_name, size, name, time, append):
|
||||
item = UnsentFileItem(file_name,
|
||||
size,
|
||||
name,
|
||||
|
@ -58,9 +66,10 @@ class ItemsFactory:
|
|||
else:
|
||||
self._messages.insertItem(0, elem)
|
||||
self._messages.setItemWidget(elem, item)
|
||||
|
||||
return item
|
||||
|
||||
def file_transfer_item(self, data, append):
|
||||
def create_file_transfer_item(self, data, append):
|
||||
data.append(self._messages.width())
|
||||
item = FileTransferItem(*data)
|
||||
elem = QtWidgets.QListWidgetItem()
|
||||
|
@ -70,8 +79,13 @@ class ItemsFactory:
|
|||
else:
|
||||
self._messages.insertItem(0, elem)
|
||||
self._messages.setItemWidget(elem, item)
|
||||
|
||||
return item
|
||||
|
||||
# -----------------------------------------------------------------------------------------------------------------
|
||||
# Private methods
|
||||
# -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
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)
|
|
@ -4,10 +4,7 @@ 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 utils.util import *
|
||||
from ui.widgets import DataLabel, create_menu
|
||||
import html as h
|
||||
import smileys
|
||||
from user_data import settings
|
||||
import re
|
||||
|
||||
|
||||
class ContactItem(QtWidgets.QWidget):
|
||||
|
|
|
@ -604,11 +604,13 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||
extension = 'txt' if as_text else 'html'
|
||||
file_name, _ = util_ui.save_file_dialog(util_ui.tr('Choose file name'), extension)
|
||||
|
||||
if file_name:
|
||||
if not file_name.endswith('.' + extension):
|
||||
file_name += '.' + extension
|
||||
with open(file_name, 'wt') as fl:
|
||||
fl.write(s)
|
||||
if not file_name:
|
||||
return
|
||||
|
||||
if not file_name.endswith('.' + extension):
|
||||
file_name += '.' + extension
|
||||
with open(file_name, 'wt') as fl:
|
||||
fl.write(s)
|
||||
|
||||
def set_alias(self, num):
|
||||
self._contacts_manager.set_alias(num)
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
from user_data.settings import *
|
||||
from contacts.profile import Profile
|
||||
from utils.util import *
|
||||
from ui.widgets import CenteredWidget, DataLabel, LineEdit, RubberBandWindow
|
||||
import pyaudio
|
||||
|
@ -717,7 +716,6 @@ class InterfaceSettings(CenteredWidget):
|
|||
app.translator.load(curr_directory() + '/translations/' + path)
|
||||
app.installTranslator(app.translator)
|
||||
self._settings['message_font_size'] = self.messages_font_size.currentIndex() + 10
|
||||
Profile.get_instance().update()
|
||||
self._settings.save()
|
||||
if restart:
|
||||
util_ui.message_box(util_ui.tr('Restart app to apply settings'), util_ui.tr('Restart required'))
|
||||
|
|
|
@ -115,7 +115,7 @@ class MessageBrowser(QtWidgets.QTextBrowser):
|
|||
if arr[i].startswith('>'):
|
||||
arr[i] = '<font color="green"><b>' + arr[i][4:] + '</b></font>'
|
||||
text = '<br>'.join(arr)
|
||||
text = self._smileys_loader.add_smileys_to_text(text, self) # smileys
|
||||
text = self._smileys_loader.add_smileys_to_text(text, self)
|
||||
return text
|
||||
|
||||
|
||||
|
@ -123,8 +123,10 @@ class MessageItem(QtWidgets.QWidget):
|
|||
"""
|
||||
Message in messages list
|
||||
"""
|
||||
def __init__(self, settings, message_browser_factory_method, text_message, parent=None):
|
||||
def __init__(self, text_message, settings, message_browser_factory_method, delete_action, parent=None):
|
||||
QtWidgets.QWidget.__init__(self, parent)
|
||||
self._message = text_message
|
||||
self._delete_action = delete_action
|
||||
self.name = widgets.DataLabel(self)
|
||||
self.name.setGeometry(QtCore.QRect(2, 2, 95, 23))
|
||||
self.name.setTextFormat(QtCore.Qt.PlainText)
|
||||
|
@ -169,12 +171,11 @@ class MessageItem(QtWidgets.QWidget):
|
|||
self.listMenu.show()
|
||||
|
||||
def delete(self):
|
||||
pr = profile.Profile.get_instance()
|
||||
pr.delete_message(self._time)
|
||||
self._delete_action(self._message)
|
||||
|
||||
def mark_as_sent(self):
|
||||
if self.t:
|
||||
self.time.setText(convert_time(self._time))
|
||||
self.time.setText(util.convert_time(self._time))
|
||||
self.t = False
|
||||
return True
|
||||
return False
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue