forked from blue/squawk
message bubbles, avatar rounding, roster adjusments
This commit is contained in:
parent
9ac0ca10f3
commit
8a2658e4fc
7 changed files with 158 additions and 49 deletions
|
@ -25,12 +25,16 @@
|
|||
#include <QTimer>
|
||||
#include <QFileDialog>
|
||||
#include <QMimeDatabase>
|
||||
#include <unistd.h>
|
||||
#include <QAbstractTextDocumentLayout>
|
||||
#include <QCoreApplication>
|
||||
#include <QTemporaryFile>
|
||||
#include <QDir>
|
||||
#include <QMenu>
|
||||
#include <QBitmap>
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
constexpr QSize avatarSize(50, 50);
|
||||
|
||||
Conversation::Conversation(bool muc, Models::Account* acc, Models::Element* el, const QString pJid, const QString pRes, QWidget* parent):
|
||||
QWidget(parent),
|
||||
|
@ -348,11 +352,25 @@ void Conversation::onClearButton()
|
|||
|
||||
void Conversation::setAvatar(const QString& path)
|
||||
{
|
||||
QPixmap pixmap;
|
||||
if (path.size() == 0) {
|
||||
m_ui->avatar->setPixmap(Shared::icon("user", true).pixmap(QSize(50, 50)));
|
||||
pixmap = Shared::icon("user", true).pixmap(avatarSize);
|
||||
} else {
|
||||
m_ui->avatar->setPixmap(path);
|
||||
pixmap = QPixmap(path).scaled(avatarSize);
|
||||
}
|
||||
|
||||
|
||||
QPixmap result(avatarSize);
|
||||
result.fill(Qt::transparent);
|
||||
QPainter painter(&result);
|
||||
painter.setRenderHint(QPainter::Antialiasing);
|
||||
painter.setRenderHint(QPainter::SmoothPixmapTransform);
|
||||
QPainterPath maskPath;
|
||||
maskPath.addEllipse(0, 0, avatarSize.width(), avatarSize.height());
|
||||
painter.setClipPath(maskPath);
|
||||
painter.drawPixmap(0, 0, pixmap);
|
||||
|
||||
m_ui->avatar->setPixmap(result);
|
||||
}
|
||||
|
||||
void Conversation::onTextEditDocSizeChanged(const QSizeF& size)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue