forked from blue/squawk
some methods to cVard
This commit is contained in:
parent
e7be046e9f
commit
c4d22c9c14
@ -19,19 +19,13 @@
|
||||
#include <QDebug>
|
||||
#include "image.h"
|
||||
|
||||
Image::Image(const QString& path, QWidget* parent):
|
||||
Image::Image(const QString& path, quint16 p_minWidth, QWidget* parent):
|
||||
QLabel(parent),
|
||||
pixmap(path),
|
||||
aspectRatio(0)
|
||||
aspectRatio(0),
|
||||
minWidth(p_minWidth)
|
||||
{
|
||||
|
||||
qreal height = pixmap.height();
|
||||
qreal width = pixmap.width();
|
||||
aspectRatio = width / height;
|
||||
setPixmap(pixmap);
|
||||
setScaledContents(true);
|
||||
setMinimumHeight(50 / aspectRatio);
|
||||
setMinimumWidth(50);
|
||||
}
|
||||
|
||||
Image::~Image()
|
||||
@ -42,7 +36,6 @@ Image::~Image()
|
||||
int Image::heightForWidth(int width) const
|
||||
{
|
||||
int height = width / aspectRatio;
|
||||
//qDebug() << height << width << aspectRatio;
|
||||
return height;
|
||||
}
|
||||
|
||||
@ -50,3 +43,27 @@ bool Image::hasHeightForWidth() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void Image::recalculateAspectRatio()
|
||||
{
|
||||
qreal height = pixmap.height();
|
||||
qreal width = pixmap.width();
|
||||
aspectRatio = width / height;
|
||||
setPixmap(pixmap);
|
||||
setMinimumHeight(minWidth / aspectRatio);
|
||||
setMinimumWidth(minWidth);
|
||||
}
|
||||
|
||||
void Image::setMinWidth(quint16 p_minWidth)
|
||||
{
|
||||
if (minWidth != p_minWidth) {
|
||||
minWidth = p_minWidth;
|
||||
recalculateAspectRatio();
|
||||
}
|
||||
}
|
||||
|
||||
void Image::setPath(const QString& path)
|
||||
{
|
||||
pixmap = QPixmap(path);
|
||||
recalculateAspectRatio();
|
||||
}
|
||||
|
@ -28,34 +28,22 @@
|
||||
class Image : public QLabel
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
Image(const QString& path, QWidget* parent = nullptr);
|
||||
Image(const QString& path, quint16 minWidth = 50, QWidget* parent = nullptr);
|
||||
|
||||
/**
|
||||
* Destructor
|
||||
*/
|
||||
~Image();
|
||||
|
||||
/**
|
||||
* @todo write docs
|
||||
*
|
||||
* @param TODO
|
||||
* @return TODO
|
||||
*/
|
||||
int heightForWidth(int width) const override;
|
||||
|
||||
/**
|
||||
* @todo write docs
|
||||
*
|
||||
* @return TODO
|
||||
*/
|
||||
virtual bool hasHeightForWidth() const;
|
||||
bool hasHeightForWidth() const override;
|
||||
void setPath(const QString& path);
|
||||
void setMinWidth(quint16 minWidth);
|
||||
|
||||
private:
|
||||
QPixmap pixmap;
|
||||
qreal aspectRatio;
|
||||
quint16 minWidth;
|
||||
|
||||
private:
|
||||
void recalculateAspectRatio();
|
||||
};
|
||||
|
||||
#endif // IMAGE_H
|
||||
|
@ -19,13 +19,74 @@
|
||||
#include "vcard.h"
|
||||
#include "ui_vcard.h"
|
||||
|
||||
VCard::VCard(QWidget* parent):
|
||||
VCard::VCard(bool edit, QWidget* parent):
|
||||
QWidget(parent),
|
||||
m_ui(new Ui::VCard())
|
||||
m_ui(new Ui::VCard()),
|
||||
avatar(":/images/logo.svg", 64)
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
if (edit) {
|
||||
|
||||
} else {
|
||||
m_ui->buttonBox->hide();
|
||||
m_ui->firstName->setReadOnly(true);
|
||||
m_ui->middleName->setReadOnly(true);
|
||||
m_ui->lastName->setReadOnly(true);
|
||||
m_ui->nickName->setReadOnly(true);
|
||||
m_ui->birthday->setReadOnly(true);
|
||||
m_ui->organizationName->setReadOnly(true);
|
||||
m_ui->organizationDepartment->setReadOnly(true);
|
||||
m_ui->organizationTitle->setReadOnly(true);
|
||||
m_ui->organizationRole->setReadOnly(true);
|
||||
m_ui->description->setReadOnly(true);
|
||||
m_ui->jabberID->setReadOnly(true);
|
||||
}
|
||||
|
||||
connect(m_ui->buttonBox, &QDialogButtonBox::accepted, this, &VCard::onButtonBoxAccepted);
|
||||
connect(m_ui->buttonBox, &QDialogButtonBox::rejected, m_ui->buttonBox, &QDialogButtonBox::deleteLater);
|
||||
}
|
||||
|
||||
VCard::~VCard()
|
||||
{
|
||||
}
|
||||
|
||||
void VCard::setVCard(const QString& jid, const Shared::VCard& card)
|
||||
{
|
||||
m_ui->jabberID->setText(jid);
|
||||
m_ui->firstName->setText(card.getFirstName());
|
||||
m_ui->middleName->setText(card.getMiddleName());
|
||||
m_ui->lastName->setText(card.getLastName());
|
||||
m_ui->nickName->setText(card.getNickName());
|
||||
m_ui->birthday->setDate(card.getBirthday());
|
||||
//m_ui->organizationName->setText(card.get());
|
||||
//m_ui->organizationDepartment->setText(card.get());
|
||||
//m_ui->organizationTitle->setText(card.get());
|
||||
//m_ui->organizationRole->setText(card.get());
|
||||
m_ui->description->setText(card.getDescription());
|
||||
|
||||
QString path;
|
||||
switch (card.getAvatarType()) {
|
||||
case Shared::Avatar::empty:
|
||||
path = QApplication::palette().window().color().lightnessF() > 0.5 ? ":/images/fallback/dark/big/user.svg" : ":/images/fallback/light/big/user.svg";
|
||||
break;
|
||||
case Shared::Avatar::autocreated:
|
||||
case Shared::Avatar::valid:
|
||||
path = card.getAvatarPath();
|
||||
break;
|
||||
}
|
||||
avatar.setPath(path);
|
||||
}
|
||||
|
||||
void VCard::onButtonBoxAccepted()
|
||||
{
|
||||
Shared::VCard card;
|
||||
card.setFirstName(m_ui->firstName->text());
|
||||
card.setMiddleName(m_ui->middleName->text());
|
||||
card.setLastName(m_ui->lastName->text());
|
||||
card.setNickName(m_ui->nickName->text());
|
||||
card.setBirthday(m_ui->birthday->date());
|
||||
card.setDescription(m_ui->description->toPlainText());
|
||||
|
||||
emit saveVCard(m_ui->jabberID->text(), card);
|
||||
}
|
||||
|
@ -22,6 +22,9 @@
|
||||
#include <QWidget>
|
||||
#include <QScopedPointer>
|
||||
|
||||
#include "../../global.h"
|
||||
#include "../utils/image.h"
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
class VCard;
|
||||
@ -34,11 +37,20 @@ class VCard : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
VCard(QWidget* parent = nullptr);
|
||||
VCard(bool edit = false, QWidget* parent = nullptr);
|
||||
~VCard();
|
||||
|
||||
void setVCard(const QString& jid, const Shared::VCard& card);
|
||||
|
||||
signals:
|
||||
void saveVCard(const QString& jid, const Shared::VCard& card);
|
||||
|
||||
private slots:
|
||||
void onButtonBoxAccepted();
|
||||
|
||||
private:
|
||||
QScopedPointer<Ui::VCard> m_ui;
|
||||
Image avatar;
|
||||
};
|
||||
|
||||
#endif // VCARD_H
|
||||
|
@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>434</width>
|
||||
<width>544</width>
|
||||
<height>534</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -49,7 +49,7 @@
|
||||
<property name="tabBarAutoHide">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="General" native="true">
|
||||
<widget class="QWidget" name="General">
|
||||
<attribute name="title">
|
||||
<string>General</string>
|
||||
</attribute>
|
||||
@ -433,7 +433,7 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="Contact" native="true">
|
||||
<widget class="QWidget" name="Contact">
|
||||
<attribute name="title">
|
||||
<string>Contact</string>
|
||||
</attribute>
|
||||
@ -479,7 +479,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>422</width>
|
||||
<width>532</width>
|
||||
<height>410</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -539,13 +539,36 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="jabberIDLabel">
|
||||
<property name="text">
|
||||
<string>JabberID</string>
|
||||
<string>Jabber ID</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>jabberID</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>300</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="urlLabel">
|
||||
<property name="text">
|
||||
<string>Web site</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
|
Loading…
Reference in New Issue
Block a user