encrypt save support, smileys fix, bug fixes
This commit is contained in:
parent
dd53c6a842
commit
42aa102d1d
@ -177,7 +177,7 @@ class SendFromBuffer(FileTransfer):
|
|||||||
self._creation_time = time()
|
self._creation_time = time()
|
||||||
if size:
|
if size:
|
||||||
data = self._data[position:position + size]
|
data = self._data[position:position + size]
|
||||||
self._tox.file_send_chunk(self._friend_number, self._file_number, position, bytes(data, 'utf-8'))
|
self._tox.file_send_chunk(self._friend_number, self._file_number, position, data)
|
||||||
self._done += size
|
self._done += size
|
||||||
self.signal()
|
self.signal()
|
||||||
else:
|
else:
|
||||||
|
@ -45,7 +45,7 @@ class History(object):
|
|||||||
path = settings.ProfileHelper.get_path() + self._name + '.hstr'
|
path = settings.ProfileHelper.get_path() + self._name + '.hstr'
|
||||||
with open(path, 'rb') as fin:
|
with open(path, 'rb') as fin:
|
||||||
data = fin.read()
|
data = fin.read()
|
||||||
data = encr.pass_encrypt(data)
|
data = encr.pass_encrypt(bytes(data))
|
||||||
with open(path, 'wb') as fout:
|
with open(path, 'wb') as fout:
|
||||||
fout.write(data)
|
fout.write(data)
|
||||||
|
|
||||||
|
@ -430,7 +430,7 @@ class InlineImageItem(QtGui.QScrollArea):
|
|||||||
self.setWidget(self._image_label)
|
self.setWidget(self._image_label)
|
||||||
self._image_label.setScaledContents(False)
|
self._image_label.setScaledContents(False)
|
||||||
self._pixmap = QtGui.QPixmap()
|
self._pixmap = QtGui.QPixmap()
|
||||||
self._pixmap.loadFromData(QtCore.QByteArray(data), "PNG")
|
self._pixmap.loadFromData(QtCore.QByteArray(str(data)), "PNG")
|
||||||
self._max_size = width - 30
|
self._max_size = width - 30
|
||||||
self._resize_needed = not (self._pixmap.width() <= self._max_size)
|
self._resize_needed = not (self._pixmap.width() <= self._max_size)
|
||||||
self._full_size = not self._resize_needed
|
self._full_size = not self._resize_needed
|
||||||
|
@ -144,13 +144,13 @@ class SmileyWindow(QtGui.QWidget):
|
|||||||
elem.setGeometry(QtCore.QRect(i * 20 + 5, 180, 20, 20))
|
elem.setGeometry(QtCore.QRect(i * 20 + 5, 180, 20, 20))
|
||||||
elem.clicked.connect(lambda i=i: self.checked(i))
|
elem.clicked.connect(lambda i=i: self.checked(i))
|
||||||
self.radio.append(elem)
|
self.radio.append(elem)
|
||||||
width = max(self.page_count * 20 + 30, (self.page_size + 5) * 8 / 10)
|
width = max(self.page_count * 20 + 30, (self.page_size + 5) * 8 // 10)
|
||||||
self.setMaximumSize(width, 200)
|
self.setMaximumSize(width, 200)
|
||||||
self.setMinimumSize(width, 200)
|
self.setMinimumSize(width, 200)
|
||||||
self.buttons = []
|
self.buttons = []
|
||||||
for i in range(self.page_size): # pages - radio buttons
|
for i in range(self.page_size): # pages - radio buttons
|
||||||
b = QtGui.QPushButton(self)
|
b = QtGui.QPushButton(self)
|
||||||
b.setGeometry(QtCore.QRect((i / 8) * 20 + 5, (i % 8) * 20, 20, 20))
|
b.setGeometry(QtCore.QRect((i // 8) * 20 + 5, (i % 8) * 20, 20, 20))
|
||||||
b.clicked.connect(lambda i=i: self.clicked(i))
|
b.clicked.connect(lambda i=i: self.clicked(i))
|
||||||
self.buttons.append(b)
|
self.buttons.append(b)
|
||||||
self.checked(0)
|
self.checked(0)
|
||||||
|
@ -715,7 +715,7 @@ class PluginsSettings(CenteredWidget):
|
|||||||
def update_list(self):
|
def update_list(self):
|
||||||
self.comboBox.clear()
|
self.comboBox.clear()
|
||||||
data = self.pl_loader.get_plugins_list()
|
data = self.pl_loader.get_plugins_list()
|
||||||
self.comboBox.addItems(map(lambda x: x[0], data))
|
self.comboBox.addItems(list(map(lambda x: x[0], data)))
|
||||||
self.data = data
|
self.data = data
|
||||||
|
|
||||||
def show_data(self):
|
def show_data(self):
|
||||||
|
@ -84,7 +84,7 @@ class Profile(contact.Contact, Singleton):
|
|||||||
if tmp != value:
|
if tmp != value:
|
||||||
message = QtGui.QApplication.translate("MainWindow", 'User {} is now known as {}', None,
|
message = QtGui.QApplication.translate("MainWindow", 'User {} is now known as {}', None,
|
||||||
QtGui.QApplication.UnicodeUTF8)
|
QtGui.QApplication.UnicodeUTF8)
|
||||||
message = message.format(tmp, value)
|
message = message.format(tmp, str(value, 'utf-8'))
|
||||||
for friend in self._friends:
|
for friend in self._friends:
|
||||||
friend.append_message(InfoMessage(message, time.time()))
|
friend.append_message(InfoMessage(message, time.time()))
|
||||||
if self._active_friend + 1:
|
if self._active_friend + 1:
|
||||||
@ -246,6 +246,7 @@ class Profile(contact.Contact, Singleton):
|
|||||||
friend = self.get_friend_by_number(number)
|
friend = self.get_friend_by_number(number)
|
||||||
tmp = friend.name
|
tmp = friend.name
|
||||||
friend.set_name(name)
|
friend.set_name(name)
|
||||||
|
name = str(name, 'utf-8')
|
||||||
if friend.name == name and tmp != name:
|
if friend.name == name and tmp != name:
|
||||||
message = QtGui.QApplication.translate("MainWindow", 'User {} is now known as {}', None, QtGui.QApplication.UnicodeUTF8)
|
message = QtGui.QApplication.translate("MainWindow", 'User {} is now known as {}', None, QtGui.QApplication.UnicodeUTF8)
|
||||||
message = message.format(tmp, name)
|
message = message.format(tmp, name)
|
||||||
@ -977,6 +978,7 @@ class Profile(contact.Contact, Singleton):
|
|||||||
self.get_friend_by_number(friend_number).load_avatar()
|
self.get_friend_by_number(friend_number).load_avatar()
|
||||||
self.set_active(None)
|
self.set_active(None)
|
||||||
elif type(transfer) is ReceiveToBuffer: # inline image
|
elif type(transfer) is ReceiveToBuffer: # inline image
|
||||||
|
print('inline')
|
||||||
inline = InlineImage(transfer.get_data())
|
inline = InlineImage(transfer.get_data())
|
||||||
i = self.get_friend_by_number(friend_number).update_transfer_data(file_number,
|
i = self.get_friend_by_number(friend_number).update_transfer_data(file_number,
|
||||||
TOX_FILE_TRANSFER_STATE['FINISHED'],
|
TOX_FILE_TRANSFER_STATE['FINISHED'],
|
||||||
@ -1006,6 +1008,7 @@ class Profile(contact.Contact, Singleton):
|
|||||||
if type(transfer) is not SendAvatar:
|
if type(transfer) is not SendAvatar:
|
||||||
if type(transfer) is SendFromBuffer and Settings.get_instance()['allow_inline']: # inline
|
if type(transfer) is SendFromBuffer and Settings.get_instance()['allow_inline']: # inline
|
||||||
inline = InlineImage(transfer.get_data())
|
inline = InlineImage(transfer.get_data())
|
||||||
|
print('inline')
|
||||||
i = self.get_friend_by_number(friend_number).update_transfer_data(file_number,
|
i = self.get_friend_by_number(friend_number).update_transfer_data(file_number,
|
||||||
TOX_FILE_TRANSFER_STATE[
|
TOX_FILE_TRANSFER_STATE[
|
||||||
'FINISHED'],
|
'FINISHED'],
|
||||||
|
@ -144,9 +144,11 @@ class Settings(dict, Singleton):
|
|||||||
text = json.dumps(self)
|
text = json.dumps(self)
|
||||||
inst = LibToxEncryptSave.get_instance()
|
inst = LibToxEncryptSave.get_instance()
|
||||||
if inst.has_password():
|
if inst.has_password():
|
||||||
text = inst.pass_encrypt(text)
|
text = bytes(inst.pass_encrypt(bytes(text, 'utf-8')))
|
||||||
|
else:
|
||||||
|
text = bytes(text, 'utf-8')
|
||||||
with open(self.path, 'wb') as fl:
|
with open(self.path, 'wb') as fl:
|
||||||
fl.write(bytes(text, 'UTF-8'))
|
fl.write(text)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
path = Settings.get_default_path() + 'toxygen.json'
|
path = Settings.get_default_path() + 'toxygen.json'
|
||||||
|
@ -55,7 +55,7 @@ class SmileyLoader(util.Singleton):
|
|||||||
return [x[1] for x in os.walk(d)][0]
|
return [x[1] for x in os.walk(d)][0]
|
||||||
|
|
||||||
def get_smileys(self):
|
def get_smileys(self):
|
||||||
return self._list[:]
|
return list(self._list)[:]
|
||||||
|
|
||||||
def add_smileys_to_text(self, text, edit):
|
def add_smileys_to_text(self, text, edit):
|
||||||
"""
|
"""
|
||||||
|
@ -62,9 +62,9 @@ class LibToxEncryptSave(util.Singleton):
|
|||||||
"""
|
"""
|
||||||
out = create_string_buffer(len(data) + TOX_PASS_ENCRYPTION_EXTRA_LENGTH)
|
out = create_string_buffer(len(data) + TOX_PASS_ENCRYPTION_EXTRA_LENGTH)
|
||||||
tox_err_encryption = c_int()
|
tox_err_encryption = c_int()
|
||||||
self.libtoxencryptsave.tox_pass_encrypt(c_char_p(bytes(data)),
|
self.libtoxencryptsave.tox_pass_encrypt(c_char_p(data),
|
||||||
c_size_t(len(data)),
|
c_size_t(len(data)),
|
||||||
c_char_p(bytes(self._passphrase)),
|
c_char_p(bytes(self._passphrase, 'utf-8')),
|
||||||
c_size_t(len(self._passphrase)),
|
c_size_t(len(self._passphrase)),
|
||||||
out,
|
out,
|
||||||
byref(tox_err_encryption))
|
byref(tox_err_encryption))
|
||||||
@ -89,7 +89,7 @@ class LibToxEncryptSave(util.Singleton):
|
|||||||
tox_err_decryption = c_int()
|
tox_err_decryption = c_int()
|
||||||
self.libtoxencryptsave.tox_pass_decrypt(c_char_p(bytes(data)),
|
self.libtoxencryptsave.tox_pass_decrypt(c_char_p(bytes(data)),
|
||||||
c_size_t(len(data)),
|
c_size_t(len(data)),
|
||||||
c_char_p(bytes(self._passphrase)),
|
c_char_p(bytes(self._passphrase, 'utf-8')),
|
||||||
c_size_t(len(self._passphrase)),
|
c_size_t(len(self._passphrase)),
|
||||||
out,
|
out,
|
||||||
byref(tox_err_decryption))
|
byref(tox_err_decryption))
|
||||||
|
Loading…
Reference in New Issue
Block a user