compact contact list
This commit is contained in:
parent
c9358db883
commit
5204cba58d
5 changed files with 37 additions and 22 deletions
|
@ -91,10 +91,11 @@ class Contact:
|
||||||
if not os.path.isfile(avatar_path): # load default image
|
if not os.path.isfile(avatar_path): # load default image
|
||||||
avatar_path = 'avatar.png'
|
avatar_path = 'avatar.png'
|
||||||
os.chdir(curr_directory() + '/images/')
|
os.chdir(curr_directory() + '/images/')
|
||||||
pixmap = QtGui.QPixmap(QtCore.QSize(64, 64))
|
width = self._widget.avatar_label.width()
|
||||||
|
pixmap = QtGui.QPixmap(QtCore.QSize(width, width))
|
||||||
pixmap.load(avatar_path)
|
pixmap.load(avatar_path)
|
||||||
self._widget.avatar_label.setScaledContents(False)
|
self._widget.avatar_label.setScaledContents(False)
|
||||||
self._widget.avatar_label.setPixmap(pixmap.scaled(64, 64, QtCore.Qt.KeepAspectRatio))
|
self._widget.avatar_label.setPixmap(pixmap.scaled(width, width, QtCore.Qt.KeepAspectRatio))
|
||||||
self._widget.avatar_label.repaint()
|
self._widget.avatar_label.repaint()
|
||||||
|
|
||||||
def reset_avatar(self):
|
def reset_avatar(self):
|
||||||
|
|
|
@ -167,26 +167,28 @@ class ContactItem(QtGui.QWidget):
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
QtGui.QWidget.__init__(self, parent)
|
QtGui.QWidget.__init__(self, parent)
|
||||||
self.setBaseSize(QtCore.QSize(250, 70))
|
mode = settings.Settings.get_instance()['compact_mode']
|
||||||
|
self.setBaseSize(QtCore.QSize(250, 40 if mode else 70))
|
||||||
self.avatar_label = QtGui.QLabel(self)
|
self.avatar_label = QtGui.QLabel(self)
|
||||||
self.avatar_label.setGeometry(QtCore.QRect(3, 3, 64, 64))
|
size = 32 if mode else 64
|
||||||
|
self.avatar_label.setGeometry(QtCore.QRect(3, 4, size, size))
|
||||||
self.avatar_label.setScaledContents(True)
|
self.avatar_label.setScaledContents(True)
|
||||||
self.name = DataLabel(self)
|
self.name = DataLabel(self)
|
||||||
self.name.setGeometry(QtCore.QRect(75, 10, 150, 25))
|
self.name.setGeometry(QtCore.QRect(50 if mode else 75, 3 if mode else 10, 150, 15 if mode else 25))
|
||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setFamily("Times New Roman")
|
font.setFamily("Times New Roman")
|
||||||
font.setPointSize(12)
|
font.setPointSize(10 if mode else 12)
|
||||||
font.setBold(True)
|
font.setBold(True)
|
||||||
self.name.setFont(font)
|
self.name.setFont(font)
|
||||||
self.status_message = DataLabel(self)
|
self.status_message = DataLabel(self)
|
||||||
self.status_message.setGeometry(QtCore.QRect(75, 30, 170, 20))
|
self.status_message.setGeometry(QtCore.QRect(50 if mode else 75, 20 if mode else 30, 170, 15 if mode else 20))
|
||||||
font.setPointSize(10)
|
font.setPointSize(10)
|
||||||
font.setBold(False)
|
font.setBold(False)
|
||||||
self.status_message.setFont(font)
|
self.status_message.setFont(font)
|
||||||
self.connection_status = StatusCircle(self)
|
self.connection_status = StatusCircle(self)
|
||||||
self.connection_status.setGeometry(QtCore.QRect(230, 5, 32, 32))
|
self.connection_status.setGeometry(QtCore.QRect(230, -2 if mode else 5, 32, 32))
|
||||||
self.messages = UnreadMessagesCount(self)
|
self.messages = UnreadMessagesCount(self)
|
||||||
self.messages.setGeometry(QtCore.QRect(52, 50, 30, 20))
|
self.messages.setGeometry(QtCore.QRect(20 if mode else 52, 20 if mode else 50, 30, 20))
|
||||||
|
|
||||||
|
|
||||||
class StatusCircle(QtGui.QWidget):
|
class StatusCircle(QtGui.QWidget):
|
||||||
|
|
27
src/menu.py
27
src/menu.py
|
@ -592,9 +592,13 @@ class InterfaceSettings(CenteredWidget):
|
||||||
self.messages_font_size.setCurrentIndex(settings['message_font_size'] - 10)
|
self.messages_font_size.setCurrentIndex(settings['message_font_size'] - 10)
|
||||||
|
|
||||||
self.unread = QtGui.QPushButton(self)
|
self.unread = QtGui.QPushButton(self)
|
||||||
self.unread.setGeometry(QtCore.QRect(30, 380, 340, 40))
|
self.unread.setGeometry(QtCore.QRect(30, 380, 340, 30))
|
||||||
self.unread.clicked.connect(self.select_color)
|
self.unread.clicked.connect(self.select_color)
|
||||||
|
|
||||||
|
self.compact_mode = QtGui.QCheckBox(self)
|
||||||
|
self.compact_mode.setGeometry(QtCore.QRect(30, 425, 370, 20))
|
||||||
|
self.compact_mode.setChecked(settings['compact_mode'])
|
||||||
|
|
||||||
self.retranslateUi()
|
self.retranslateUi()
|
||||||
QtCore.QMetaObject.connectSlotsByName(self)
|
QtCore.QMetaObject.connectSlotsByName(self)
|
||||||
|
|
||||||
|
@ -607,6 +611,7 @@ class InterfaceSettings(CenteredWidget):
|
||||||
self.mirror_mode.setText(QtGui.QApplication.translate("interfaceForm", "Mirror mode", None, QtGui.QApplication.UnicodeUTF8))
|
self.mirror_mode.setText(QtGui.QApplication.translate("interfaceForm", "Mirror mode", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.messages_font_size_label.setText(QtGui.QApplication.translate("interfaceForm", "Messages font size:", None, QtGui.QApplication.UnicodeUTF8))
|
self.messages_font_size_label.setText(QtGui.QApplication.translate("interfaceForm", "Messages font size:", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.unread.setText(QtGui.QApplication.translate("interfaceForm", "Select unread messages notification color", None, QtGui.QApplication.UnicodeUTF8))
|
self.unread.setText(QtGui.QApplication.translate("interfaceForm", "Select unread messages notification color", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
|
self.compact_mode.setText(QtGui.QApplication.translate("interfaceForm", "Compact contact list", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
|
|
||||||
def select_color(self):
|
def select_color(self):
|
||||||
col = QtGui.QColorDialog.getColor()
|
col = QtGui.QColorDialog.getColor()
|
||||||
|
@ -621,15 +626,13 @@ class InterfaceSettings(CenteredWidget):
|
||||||
settings = Settings.get_instance()
|
settings = Settings.get_instance()
|
||||||
settings['theme'] = str(self.themeSelect.currentText())
|
settings['theme'] = str(self.themeSelect.currentText())
|
||||||
settings['smileys'] = self.smileys.isChecked()
|
settings['smileys'] = self.smileys.isChecked()
|
||||||
|
restart = False
|
||||||
if settings['mirror_mode'] != self.mirror_mode.isChecked():
|
if settings['mirror_mode'] != self.mirror_mode.isChecked():
|
||||||
settings['mirror_mode'] = self.mirror_mode.isChecked()
|
settings['mirror_mode'] = self.mirror_mode.isChecked()
|
||||||
msgBox = QtGui.QMessageBox()
|
restart = True
|
||||||
text = QtGui.QApplication.translate("interfaceForm", 'Restart app to apply settings', None,
|
if settings['compact_mode'] != self.compact_mode.isChecked():
|
||||||
QtGui.QApplication.UnicodeUTF8)
|
settings['compact_mode'] = self.compact_mode.isChecked()
|
||||||
msgBox.setWindowTitle(QtGui.QApplication.translate("interfaceForm", 'Restart required', None,
|
restart = True
|
||||||
QtGui.QApplication.UnicodeUTF8))
|
|
||||||
msgBox.setText(text)
|
|
||||||
msgBox.exec_()
|
|
||||||
settings['smiley_pack'] = self.smiley_pack.currentText()
|
settings['smiley_pack'] = self.smiley_pack.currentText()
|
||||||
smileys.SmileyLoader.get_instance().load_pack()
|
smileys.SmileyLoader.get_instance().load_pack()
|
||||||
language = self.lang_choose.currentText()
|
language = self.lang_choose.currentText()
|
||||||
|
@ -644,6 +647,14 @@ class InterfaceSettings(CenteredWidget):
|
||||||
settings['message_font_size'] = self.messages_font_size.currentIndex() + 10
|
settings['message_font_size'] = self.messages_font_size.currentIndex() + 10
|
||||||
Profile.get_instance().update()
|
Profile.get_instance().update()
|
||||||
settings.save()
|
settings.save()
|
||||||
|
if restart:
|
||||||
|
msgBox = QtGui.QMessageBox()
|
||||||
|
text = QtGui.QApplication.translate("interfaceForm", 'Restart app to apply settings', None,
|
||||||
|
QtGui.QApplication.UnicodeUTF8)
|
||||||
|
msgBox.setWindowTitle(QtGui.QApplication.translate("interfaceForm", 'Restart required', None,
|
||||||
|
QtGui.QApplication.UnicodeUTF8))
|
||||||
|
msgBox.setText(text)
|
||||||
|
msgBox.exec_()
|
||||||
|
|
||||||
|
|
||||||
class AudioSettings(CenteredWidget):
|
class AudioSettings(CenteredWidget):
|
||||||
|
|
|
@ -62,7 +62,6 @@ class Profile(contact.Contact, Singleton):
|
||||||
self._friends.append(friend)
|
self._friends.append(friend)
|
||||||
self.filtration(self._show_online)
|
self.filtration(self._show_online)
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------------------------------------------
|
||||||
# Edit current user's data
|
# Edit current user's data
|
||||||
# -----------------------------------------------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -116,15 +115,16 @@ class Profile(contact.Contact, Singleton):
|
||||||
:param filter_str: show contacts which name contains this substring
|
:param filter_str: show contacts which name contains this substring
|
||||||
"""
|
"""
|
||||||
filter_str = filter_str.lower()
|
filter_str = filter_str.lower()
|
||||||
|
settings = Settings.get_instance()
|
||||||
for index, friend in enumerate(self._friends):
|
for index, friend in enumerate(self._friends):
|
||||||
friend.visibility = (friend.status is not None or not show_online) and (filter_str in friend.name.lower())
|
friend.visibility = (friend.status is not None or not show_online) and (filter_str in friend.name.lower())
|
||||||
friend.visibility = friend.visibility or friend.messages or friend.actions
|
friend.visibility = friend.visibility or friend.messages or friend.actions
|
||||||
if friend.visibility:
|
if friend.visibility:
|
||||||
self._screen.friends_list.item(index).setSizeHint(QtCore.QSize(250, 70))
|
self._screen.friends_list.item(index).setSizeHint(QtCore.QSize(250,
|
||||||
|
40 if settings['compact_mode'] else 70))
|
||||||
else:
|
else:
|
||||||
self._screen.friends_list.item(index).setSizeHint(QtCore.QSize(250, 0))
|
self._screen.friends_list.item(index).setSizeHint(QtCore.QSize(250, 0))
|
||||||
self._show_online, self._filter_string = show_online, filter_str
|
self._show_online, self._filter_string = show_online, filter_str
|
||||||
settings = Settings.get_instance()
|
|
||||||
settings['show_online_friends'] = self._show_online
|
settings['show_online_friends'] = self._show_online
|
||||||
settings.save()
|
settings.save()
|
||||||
|
|
||||||
|
@ -507,7 +507,7 @@ class Profile(contact.Contact, Singleton):
|
||||||
"""
|
"""
|
||||||
item = ContactItem()
|
item = ContactItem()
|
||||||
elem = QtGui.QListWidgetItem(self._screen.friends_list)
|
elem = QtGui.QListWidgetItem(self._screen.friends_list)
|
||||||
elem.setSizeHint(QtCore.QSize(250, 70))
|
elem.setSizeHint(QtCore.QSize(250, item.height()))
|
||||||
self._screen.friends_list.addItem(elem)
|
self._screen.friends_list.addItem(elem)
|
||||||
self._screen.friends_list.setItemWidget(elem, item)
|
self._screen.friends_list.setItemWidget(elem, item)
|
||||||
return item
|
return item
|
||||||
|
|
|
@ -123,7 +123,8 @@ class Settings(dict, Singleton):
|
||||||
'y': 400,
|
'y': 400,
|
||||||
'message_font_size': 14,
|
'message_font_size': 14,
|
||||||
'unread_color': 'red',
|
'unread_color': 'red',
|
||||||
'save_unsent_only': False
|
'save_unsent_only': False,
|
||||||
|
'compact_mode': False
|
||||||
}
|
}
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|
Loading…
Reference in a new issue