forked from blue/squawk
started refactoring of the VCard UI
This commit is contained in:
parent
bb304ce774
commit
4af16b75bf
@ -16,13 +16,25 @@
|
||||
|
||||
#include "info.h"
|
||||
|
||||
Shared::Info::Info(const QString& p_jid, bool p_editable):
|
||||
jid(p_jid),
|
||||
editable(p_editable),
|
||||
vcard(),
|
||||
activeKeys(),
|
||||
inactiveKeys()
|
||||
{}
|
||||
|
||||
Shared::Info::Info():
|
||||
jid(),
|
||||
editable(false),
|
||||
vcard(),
|
||||
activeKeys(),
|
||||
inactiveKeys()
|
||||
{}
|
||||
|
||||
Shared::Info::Info(const Shared::Info& other):
|
||||
jid(other.jid),
|
||||
editable(other.editable),
|
||||
vcard(other.vcard),
|
||||
activeKeys(other.activeKeys),
|
||||
inactiveKeys(other.inactiveKeys)
|
||||
|
@ -33,9 +33,12 @@ namespace Shared {
|
||||
class Info {
|
||||
public:
|
||||
Info();
|
||||
Info(const QString& jid, bool editable = false);
|
||||
Info(const Info& other);
|
||||
~Info();
|
||||
|
||||
QString jid;
|
||||
bool editable;
|
||||
VCard vcard;
|
||||
std::list<KeyInfo> activeKeys;
|
||||
std::list<KeyInfo> inactiveKeys;
|
||||
|
@ -24,3 +24,5 @@ target_sources(squawk PRIVATE
|
||||
roster.cpp
|
||||
roster.h
|
||||
)
|
||||
|
||||
add_subdirectory(info)
|
||||
|
10
ui/models/info/CMakeLists.txt
Normal file
10
ui/models/info/CMakeLists.txt
Normal file
@ -0,0 +1,10 @@
|
||||
target_sources(squawk PRIVATE
|
||||
emails.cpp
|
||||
emails.h
|
||||
phones.cpp
|
||||
phones.h
|
||||
)
|
||||
|
||||
if (WITH_OMEMO)
|
||||
add_subdirectory(omemo)
|
||||
endif()
|
@ -16,30 +16,29 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "emailsmodel.h"
|
||||
#include "emails.h"
|
||||
|
||||
#include "shared/icons.h"
|
||||
#include <QCoreApplication>
|
||||
|
||||
UI::VCard::EMailsModel::EMailsModel(bool p_edit, QObject* parent):
|
||||
Models::EMails::EMails(bool p_edit, QObject* parent):
|
||||
QAbstractTableModel(parent),
|
||||
edit(p_edit),
|
||||
deque()
|
||||
{
|
||||
}
|
||||
deque() {}
|
||||
|
||||
int UI::VCard::EMailsModel::columnCount(const QModelIndex& parent) const
|
||||
{
|
||||
return 3;
|
||||
}
|
||||
int Models::EMails::columnCount(const QModelIndex& parent) const {
|
||||
return 3;}
|
||||
|
||||
int UI::VCard::EMailsModel::rowCount(const QModelIndex& parent) const
|
||||
{
|
||||
return deque.size();
|
||||
}
|
||||
int Models::EMails::rowCount(const QModelIndex& parent) const {
|
||||
return deque.size();}
|
||||
|
||||
QVariant UI::VCard::EMailsModel::data(const QModelIndex& index, int role) const
|
||||
{
|
||||
void Models::EMails::revertPreferred(quint32 row) {
|
||||
setData(createIndex(row, 2), !isPreferred(row));}
|
||||
|
||||
QString Models::EMails::getEmail(quint32 row) const {
|
||||
return deque[row].address;}
|
||||
|
||||
QVariant Models::EMails::data(const QModelIndex& index, int role) const {
|
||||
if (index.isValid()) {
|
||||
int col = index.column();
|
||||
switch (col) {
|
||||
@ -82,8 +81,7 @@ QVariant UI::VCard::EMailsModel::data(const QModelIndex& index, int role) const
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
Qt::ItemFlags UI::VCard::EMailsModel::flags(const QModelIndex& index) const
|
||||
{
|
||||
Qt::ItemFlags Models::EMails::flags(const QModelIndex& index) const {
|
||||
Qt::ItemFlags f = QAbstractTableModel::flags(index);
|
||||
if (edit && index.column() != 2) {
|
||||
f = Qt::ItemIsEditable | f;
|
||||
@ -91,8 +89,7 @@ Qt::ItemFlags UI::VCard::EMailsModel::flags(const QModelIndex& index) const
|
||||
return f;
|
||||
}
|
||||
|
||||
bool UI::VCard::EMailsModel::setData(const QModelIndex& index, const QVariant& value, int role)
|
||||
{
|
||||
bool Models::EMails::setData(const QModelIndex& index, const QVariant& value, int role) {
|
||||
if (role == Qt::EditRole && checkIndex(index)) {
|
||||
Shared::VCard::Email& item = deque[index.row()];
|
||||
switch (index.column()) {
|
||||
@ -124,8 +121,7 @@ bool UI::VCard::EMailsModel::setData(const QModelIndex& index, const QVariant& v
|
||||
}
|
||||
|
||||
|
||||
bool UI::VCard::EMailsModel::dropPrefered()
|
||||
{
|
||||
bool Models::EMails::dropPrefered() {
|
||||
bool dropped = false;
|
||||
int i = 0;
|
||||
for (Shared::VCard::Email& email : deque) {
|
||||
@ -140,16 +136,14 @@ bool UI::VCard::EMailsModel::dropPrefered()
|
||||
return dropped;
|
||||
}
|
||||
|
||||
QModelIndex UI::VCard::EMailsModel::addNewEmptyLine()
|
||||
{
|
||||
QModelIndex Models::EMails::addNewEmptyLine() {
|
||||
beginInsertRows(QModelIndex(), deque.size(), deque.size());
|
||||
deque.emplace_back("");
|
||||
endInsertRows();
|
||||
return createIndex(deque.size() - 1, 0, &(deque.back()));
|
||||
}
|
||||
|
||||
bool UI::VCard::EMailsModel::isPreferred(quint32 row) const
|
||||
{
|
||||
bool Models::EMails::isPreferred(quint32 row) const {
|
||||
if (row < deque.size()) {
|
||||
return deque[row].prefered;
|
||||
} else {
|
||||
@ -157,8 +151,7 @@ bool UI::VCard::EMailsModel::isPreferred(quint32 row) const
|
||||
}
|
||||
}
|
||||
|
||||
void UI::VCard::EMailsModel::removeLines(quint32 index, quint32 count)
|
||||
{
|
||||
void Models::EMails::removeLines(quint32 index, quint32 count) {
|
||||
if (index < deque.size()) {
|
||||
quint32 maxCount = deque.size() - index;
|
||||
if (count > maxCount) {
|
||||
@ -175,15 +168,13 @@ void UI::VCard::EMailsModel::removeLines(quint32 index, quint32 count)
|
||||
}
|
||||
}
|
||||
|
||||
void UI::VCard::EMailsModel::getEmails(std::deque<Shared::VCard::Email>& emails) const
|
||||
{
|
||||
void Models::EMails::getEmails(std::deque<Shared::VCard::Email>& emails) const {
|
||||
for (const Shared::VCard::Email& my : deque) {
|
||||
emails.emplace_back(my);
|
||||
}
|
||||
}
|
||||
|
||||
void UI::VCard::EMailsModel::setEmails(const std::deque<Shared::VCard::Email>& emails)
|
||||
{
|
||||
void Models::EMails::setEmails(const std::deque<Shared::VCard::Email>& emails) {
|
||||
if (deque.size() > 0) {
|
||||
removeLines(0, deque.size());
|
||||
}
|
||||
@ -196,13 +187,3 @@ void UI::VCard::EMailsModel::setEmails(const std::deque<Shared::VCard::Email>& e
|
||||
endInsertRows();
|
||||
}
|
||||
}
|
||||
|
||||
void UI::VCard::EMailsModel::revertPreferred(quint32 row)
|
||||
{
|
||||
setData(createIndex(row, 2), !isPreferred(row));
|
||||
}
|
||||
|
||||
QString UI::VCard::EMailsModel::getEmail(quint32 row) const
|
||||
{
|
||||
return deque[row].address;
|
||||
}
|
@ -16,8 +16,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef UI_VCARD_EMAILSMODEL_H
|
||||
#define UI_VCARD_EMAILSMODEL_H
|
||||
#ifndef MODELS_EMAILS_H
|
||||
#define MODELS_EMAILS_H
|
||||
|
||||
#include <QAbstractTableModel>
|
||||
#include <QIcon>
|
||||
@ -26,14 +26,12 @@
|
||||
|
||||
#include "shared/vcard.h"
|
||||
|
||||
namespace UI {
|
||||
namespace VCard {
|
||||
namespace Models {
|
||||
|
||||
class EMailsModel : public QAbstractTableModel
|
||||
{
|
||||
class EMails : public QAbstractTableModel {
|
||||
Q_OBJECT
|
||||
public:
|
||||
EMailsModel(bool edit = false, QObject *parent = nullptr);
|
||||
EMails(bool edit = false, QObject *parent = nullptr);
|
||||
|
||||
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
|
||||
int columnCount(const QModelIndex& parent = QModelIndex()) const override;
|
||||
@ -59,6 +57,6 @@ private:
|
||||
bool dropPrefered();
|
||||
};
|
||||
|
||||
}}
|
||||
}
|
||||
|
||||
#endif // UI_VCARD_EMAILSMODEL_H
|
||||
#endif // MODELS_EMAILS_H
|
4
ui/models/info/omemo/CMakeLists.txt
Normal file
4
ui/models/info/omemo/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
||||
target_sources(squawk PRIVATE
|
||||
keys.cpp
|
||||
keys.h
|
||||
)
|
@ -14,23 +14,20 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "keysmodel.h"
|
||||
#include "keys.h"
|
||||
|
||||
const QHash<int, QByteArray> UI::KeysModel::roles = {
|
||||
const QHash<int, QByteArray> Models::Keys::roles = {
|
||||
{Label, "label"},
|
||||
{FingerPrint, "fingerPrint"},
|
||||
{TrustLevel, "trustLevel"}
|
||||
};
|
||||
|
||||
UI::KeysModel::KeysModel(QObject* parent):
|
||||
Models::Keys::Keys(QObject* parent):
|
||||
QAbstractListModel(parent),
|
||||
keys(),
|
||||
modified()
|
||||
{
|
||||
modified() {}
|
||||
|
||||
}
|
||||
|
||||
UI::KeysModel::~KeysModel() {
|
||||
Models::Keys::~Keys() {
|
||||
for (Shared::KeyInfo* key : keys) {
|
||||
delete key;
|
||||
}
|
||||
@ -40,7 +37,7 @@ UI::KeysModel::~KeysModel() {
|
||||
}
|
||||
}
|
||||
|
||||
std::deque<Shared::KeyInfo> UI::KeysModel::modifiedKeys() const {
|
||||
std::deque<Shared::KeyInfo> Models::Keys::modifiedKeys() const {
|
||||
std::deque<Shared::KeyInfo> response(modified.size());
|
||||
|
||||
int i = 0;
|
||||
@ -52,13 +49,13 @@ std::deque<Shared::KeyInfo> UI::KeysModel::modifiedKeys() const {
|
||||
return response;
|
||||
}
|
||||
|
||||
void UI::KeysModel::addKey(const Shared::KeyInfo& info) {
|
||||
void Models::Keys::addKey(const Shared::KeyInfo& info) {
|
||||
beginInsertRows(QModelIndex(), keys.size(), keys.size());
|
||||
keys.push_back(new Shared::KeyInfo(info));
|
||||
endInsertRows();
|
||||
}
|
||||
|
||||
QVariant UI::KeysModel::data(const QModelIndex& index, int role) const {
|
||||
QVariant Models::Keys::data(const QModelIndex& index, int role) const {
|
||||
int i = index.row();
|
||||
const Shared::KeyInfo* info;
|
||||
bool dirty;
|
||||
@ -94,13 +91,13 @@ QVariant UI::KeysModel::data(const QModelIndex& index, int role) const {
|
||||
return answer;
|
||||
}
|
||||
|
||||
int UI::KeysModel::rowCount(const QModelIndex& parent) const {
|
||||
int Models::Keys::rowCount(const QModelIndex& parent) const {
|
||||
return keys.size();
|
||||
}
|
||||
|
||||
QHash<int, QByteArray> UI::KeysModel::roleNames() const {return roles;}
|
||||
QHash<int, QByteArray> Models::Keys::roleNames() const {return roles;}
|
||||
|
||||
QModelIndex UI::KeysModel::index(int row, int column, const QModelIndex& parent) const {
|
||||
QModelIndex Models::Keys::index(int row, int column, const QModelIndex& parent) const {
|
||||
if (!hasIndex(row, column, parent)) {
|
||||
return QModelIndex();
|
||||
}
|
||||
@ -108,7 +105,7 @@ QModelIndex UI::KeysModel::index(int row, int column, const QModelIndex& parent)
|
||||
return createIndex(row, column, keys[row]);
|
||||
}
|
||||
|
||||
void UI::KeysModel::revertKey(int row) {
|
||||
void Models::Keys::revertKey(int row) {
|
||||
std::map<int, Shared::KeyInfo*>::const_iterator itr = modified.find(row);
|
||||
if (itr != modified.end()) {
|
||||
modified.erase(itr);
|
||||
@ -117,7 +114,7 @@ void UI::KeysModel::revertKey(int row) {
|
||||
}
|
||||
}
|
||||
|
||||
void UI::KeysModel::setTrustLevel(int row, Shared::TrustLevel level) {
|
||||
void Models::Keys::setTrustLevel(int row, Shared::TrustLevel level) {
|
||||
std::map<int, Shared::KeyInfo*>::const_iterator itr = modified.find(row);
|
||||
Shared::KeyInfo* info;
|
||||
if (itr == modified.end()) {
|
||||
@ -134,7 +131,7 @@ void UI::KeysModel::setTrustLevel(int row, Shared::TrustLevel level) {
|
||||
info->trustLevel = level;
|
||||
|
||||
QModelIndex index = createIndex(row, 0, info);
|
||||
dataChanged(index, index, {KeysModel::Dirty});
|
||||
dataChanged(index, index, {Keys::Dirty});
|
||||
}
|
||||
|
||||
|
@ -14,23 +14,23 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef UI_KEYSMODEL_H
|
||||
#define UI_KEYSMODEL_H
|
||||
#ifndef MODELS_KEYS_H
|
||||
#define MODELS_KEYS_H
|
||||
|
||||
#include <QAbstractListModel>
|
||||
|
||||
#include <shared/keyinfo.h>
|
||||
|
||||
namespace UI {
|
||||
namespace Models {
|
||||
|
||||
/**
|
||||
* @todo write docs
|
||||
*/
|
||||
class KeysModel : public QAbstractListModel
|
||||
class Keys : public QAbstractListModel
|
||||
{
|
||||
public:
|
||||
KeysModel(QObject *parent = nullptr);
|
||||
~KeysModel();
|
||||
Keys(QObject *parent = nullptr);
|
||||
~Keys();
|
||||
|
||||
void addKey(const Shared::KeyInfo& info);
|
||||
|
||||
@ -64,4 +64,4 @@ private:
|
||||
|
||||
}
|
||||
|
||||
#endif // UI_KEYSMODEL_H
|
||||
#endif // MODELS_KEYS_H
|
@ -16,30 +16,30 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "phonesmodel.h"
|
||||
#include "phones.h"
|
||||
|
||||
#include "shared/icons.h"
|
||||
#include <QCoreApplication>
|
||||
|
||||
UI::VCard::PhonesModel::PhonesModel(bool p_edit, QObject* parent):
|
||||
Models::Phones::Phones(bool p_edit, QObject* parent):
|
||||
QAbstractTableModel(parent),
|
||||
edit(p_edit),
|
||||
deque()
|
||||
{
|
||||
deque() {}
|
||||
|
||||
int Models::Phones::columnCount(const QModelIndex& parent) const {
|
||||
return 4;}
|
||||
|
||||
int Models::Phones::rowCount(const QModelIndex& parent) const {
|
||||
return deque.size();}
|
||||
|
||||
void Models::Phones::revertPreferred(quint32 row) {
|
||||
setData(createIndex(row, 3), !isPreferred(row));
|
||||
}
|
||||
|
||||
int UI::VCard::PhonesModel::columnCount(const QModelIndex& parent) const
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
QString Models::Phones::getPhone(quint32 row) const {
|
||||
return deque[row].number;}
|
||||
|
||||
int UI::VCard::PhonesModel::rowCount(const QModelIndex& parent) const
|
||||
{
|
||||
return deque.size();
|
||||
}
|
||||
|
||||
QVariant UI::VCard::PhonesModel::data(const QModelIndex& index, int role) const
|
||||
{
|
||||
QVariant Models::Phones::data(const QModelIndex& index, int role) const {
|
||||
if (index.isValid()) {
|
||||
int col = index.column();
|
||||
switch (col) {
|
||||
@ -92,16 +92,14 @@ QVariant UI::VCard::PhonesModel::data(const QModelIndex& index, int role) const
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
QModelIndex UI::VCard::PhonesModel::addNewEmptyLine()
|
||||
{
|
||||
QModelIndex Models::Phones::addNewEmptyLine() {
|
||||
beginInsertRows(QModelIndex(), deque.size(), deque.size());
|
||||
deque.emplace_back("", Shared::VCard::Phone::other);
|
||||
endInsertRows();
|
||||
return createIndex(deque.size() - 1, 0, &(deque.back()));
|
||||
}
|
||||
|
||||
Qt::ItemFlags UI::VCard::PhonesModel::flags(const QModelIndex& index) const
|
||||
{
|
||||
Qt::ItemFlags Models::Phones::flags(const QModelIndex& index) const {
|
||||
Qt::ItemFlags f = QAbstractTableModel::flags(index);
|
||||
if (edit && index.column() != 3) {
|
||||
f = Qt::ItemIsEditable | f;
|
||||
@ -109,8 +107,7 @@ Qt::ItemFlags UI::VCard::PhonesModel::flags(const QModelIndex& index) const
|
||||
return f;
|
||||
}
|
||||
|
||||
bool UI::VCard::PhonesModel::dropPrefered()
|
||||
{
|
||||
bool Models::Phones::dropPrefered() {
|
||||
bool dropped = false;
|
||||
int i = 0;
|
||||
for (Shared::VCard::Phone& phone : deque) {
|
||||
@ -125,15 +122,13 @@ bool UI::VCard::PhonesModel::dropPrefered()
|
||||
return dropped;
|
||||
}
|
||||
|
||||
void UI::VCard::PhonesModel::getPhones(std::deque<Shared::VCard::Phone>& phones) const
|
||||
{
|
||||
void Models::Phones::getPhones(std::deque<Shared::VCard::Phone>& phones) const {
|
||||
for (const Shared::VCard::Phone& my : deque) {
|
||||
phones.emplace_back(my);
|
||||
}
|
||||
}
|
||||
|
||||
bool UI::VCard::PhonesModel::isPreferred(quint32 row) const
|
||||
{
|
||||
bool Models::Phones::isPreferred(quint32 row) const {
|
||||
if (row < deque.size()) {
|
||||
return deque[row].prefered;
|
||||
} else {
|
||||
@ -141,8 +136,7 @@ bool UI::VCard::PhonesModel::isPreferred(quint32 row) const
|
||||
}
|
||||
}
|
||||
|
||||
void UI::VCard::PhonesModel::removeLines(quint32 index, quint32 count)
|
||||
{
|
||||
void Models::Phones::removeLines(quint32 index, quint32 count) {
|
||||
if (index < deque.size()) {
|
||||
quint32 maxCount = deque.size() - index;
|
||||
if (count > maxCount) {
|
||||
@ -159,13 +153,7 @@ void UI::VCard::PhonesModel::removeLines(quint32 index, quint32 count)
|
||||
}
|
||||
}
|
||||
|
||||
void UI::VCard::PhonesModel::revertPreferred(quint32 row)
|
||||
{
|
||||
setData(createIndex(row, 3), !isPreferred(row));
|
||||
}
|
||||
|
||||
bool UI::VCard::PhonesModel::setData(const QModelIndex& index, const QVariant& value, int role)
|
||||
{
|
||||
bool Models::Phones::setData(const QModelIndex& index, const QVariant& value, int role) {
|
||||
if (role == Qt::EditRole && checkIndex(index)) {
|
||||
Shared::VCard::Phone& item = deque[index.row()];
|
||||
switch (index.column()) {
|
||||
@ -204,8 +192,7 @@ bool UI::VCard::PhonesModel::setData(const QModelIndex& index, const QVariant& v
|
||||
return false;
|
||||
}
|
||||
|
||||
void UI::VCard::PhonesModel::setPhones(const std::deque<Shared::VCard::Phone>& phones)
|
||||
{
|
||||
void Models::Phones::setPhones(const std::deque<Shared::VCard::Phone>& phones) {
|
||||
if (deque.size() > 0) {
|
||||
removeLines(0, deque.size());
|
||||
}
|
||||
@ -218,8 +205,3 @@ void UI::VCard::PhonesModel::setPhones(const std::deque<Shared::VCard::Phone>& p
|
||||
endInsertRows();
|
||||
}
|
||||
}
|
||||
|
||||
QString UI::VCard::PhonesModel::getPhone(quint32 row) const
|
||||
{
|
||||
return deque[row].number;
|
||||
}
|
@ -16,25 +16,19 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef UI_VCARD_PHONESMODEL_H
|
||||
#define UI_VCARD_PHONESMODEL_H
|
||||
#ifndef MODELS_PHONES_H
|
||||
#define MODELS_PHONES_H
|
||||
|
||||
#include <QAbstractTableModel>
|
||||
#include <QIcon>
|
||||
|
||||
#include "shared/vcard.h"
|
||||
|
||||
namespace UI {
|
||||
namespace VCard {
|
||||
|
||||
/**
|
||||
* @todo write docs
|
||||
*/
|
||||
class PhonesModel : public QAbstractTableModel
|
||||
{
|
||||
namespace Models {
|
||||
class Phones : public QAbstractTableModel {
|
||||
Q_OBJECT
|
||||
public:
|
||||
PhonesModel(bool edit = false, QObject *parent = nullptr);
|
||||
Phones(bool edit = false, QObject *parent = nullptr);
|
||||
|
||||
QVariant data(const QModelIndex& index, int role) const override;
|
||||
int columnCount(const QModelIndex& parent) const override;
|
||||
@ -60,6 +54,6 @@ private:
|
||||
bool dropPrefered();
|
||||
};
|
||||
|
||||
}}
|
||||
}
|
||||
|
||||
#endif // UI_VCARD_PHONESMODEL_H
|
||||
#endif // MODELS_PHONES_H
|
@ -18,6 +18,7 @@ target_sources(squawk PRIVATE
|
||||
)
|
||||
|
||||
add_subdirectory(vcard)
|
||||
add_subdirectory(info)
|
||||
add_subdirectory(messageline)
|
||||
add_subdirectory(settings)
|
||||
add_subdirectory(accounts)
|
||||
|
27
ui/widgets/info/CMakeLists.txt
Normal file
27
ui/widgets/info/CMakeLists.txt
Normal file
@ -0,0 +1,27 @@
|
||||
set(SOURCE_FILES
|
||||
info.cpp
|
||||
contactgeneral.cpp
|
||||
contactcontacts.cpp
|
||||
)
|
||||
|
||||
set(UI_FILES
|
||||
info.ui
|
||||
contactgeneral.ui
|
||||
contactcontacts.ui
|
||||
)
|
||||
|
||||
set(HEADER_FILES
|
||||
info.h
|
||||
contactgeneral.h
|
||||
contactcontacts.h
|
||||
)
|
||||
|
||||
target_sources(squawk PRIVATE
|
||||
${SOURCE_FILES}
|
||||
${UI_FILES}
|
||||
${HEADER_FILES}
|
||||
)
|
||||
|
||||
if (WITH_OMEMO)
|
||||
add_subdirectory(omemo)
|
||||
endif()
|
31
ui/widgets/info/contactcontacts.cpp
Normal file
31
ui/widgets/info/contactcontacts.cpp
Normal file
@ -0,0 +1,31 @@
|
||||
// Squawk messenger.
|
||||
// Copyright (C) 2019 Yury Gubich <blue@macaw.me>
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "contactcontacts.h"
|
||||
#include "ui_contactcontacts.h"
|
||||
|
||||
UI::ContactContacts::ContactContacts(const QString& jid, QWidget* parent):
|
||||
QWidget(parent),
|
||||
m_ui(new Ui::ContactContacts)
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
m_ui->jabberID->setText(jid);
|
||||
m_ui->jabberID->setReadOnly(true);
|
||||
}
|
||||
|
||||
UI::ContactContacts::~ContactContacts() {
|
||||
}
|
41
ui/widgets/info/contactcontacts.h
Normal file
41
ui/widgets/info/contactcontacts.h
Normal file
@ -0,0 +1,41 @@
|
||||
// Squawk messenger.
|
||||
// Copyright (C) 2019 Yury Gubich <blue@macaw.me>
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef UI_WIDGETS_CONTACTCONTACTS_H
|
||||
#define UI_WIDGETS_CONTACTCONTACTS_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QScopedPointer>
|
||||
|
||||
namespace UI {
|
||||
namespace Ui
|
||||
{
|
||||
class ContactContacts;
|
||||
}
|
||||
|
||||
class ContactContacts : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
ContactContacts(const QString& jid, QWidget* parent = nullptr);
|
||||
~ContactContacts();
|
||||
|
||||
private:
|
||||
QScopedPointer<Ui::ContactContacts> m_ui;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // UI_WIDGETS_CONTACTCONTACTS_H
|
282
ui/widgets/info/contactcontacts.ui
Normal file
282
ui/widgets/info/contactcontacts.ui
Normal file
@ -0,0 +1,282 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>UI::ContactContacts</class>
|
||||
<widget class="QWidget" name="Contacts">
|
||||
<attribute name="title">
|
||||
<string>Contacts</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="contactHeading">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: 600 24pt ;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Contact</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QScrollArea" name="scrollArea">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="contactScrollArea">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>545</width>
|
||||
<height>544</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3" columnstretch="1,3,1">
|
||||
<item row="7" column="1">
|
||||
<widget class="Line" name="phonesLine">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QTableView" name="emailsView">
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="showGrid">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="Line" name="addressesLine">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" rowspan="12">
|
||||
<spacer name="contactLeftSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="Line" name="contactFormLine">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="Line" name="emailsLine">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<spacer name="contactBottomSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QLabel" name="addressesHeading">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: 600 16pt;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Addresses</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QTableView" name="phonesView">
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="showGrid">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="emailsHeading">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: 600 16pt;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>E-Mail addresses</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<layout class="QFormLayout" name="contactForm">
|
||||
<property name="formAlignment">
|
||||
<set>Qt::AlignHCenter|Qt::AlignTop</set>
|
||||
</property>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="jabberID">
|
||||
<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="0" column="0">
|
||||
<widget class="QLabel" name="jabberIDLabel">
|
||||
<property name="text">
|
||||
<string>Jabber ID</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>jabberID</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="url">
|
||||
<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>
|
||||
<property name="buddy">
|
||||
<cstring>url</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="2" rowspan="12">
|
||||
<spacer name="contactRightSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QLabel" name="phenesHeading">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: 600 16pt;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Phone numbers</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QTableView" name="addressesView">
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="showGrid">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
28
ui/widgets/info/contactgeneral.cpp
Normal file
28
ui/widgets/info/contactgeneral.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
// Squawk messenger.
|
||||
// Copyright (C) 2019 Yury Gubich <blue@macaw.me>
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "contactgeneral.h"
|
||||
#include "ui_contactgeneral.h"
|
||||
|
||||
UI::ContactGeneral::ContactGeneral(QWidget* parent):
|
||||
QWidget(parent),
|
||||
m_ui(new Ui::ContactGeneral)
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
}
|
||||
|
||||
UI::ContactGeneral::~ContactGeneral()
|
||||
{}
|
41
ui/widgets/info/contactgeneral.h
Normal file
41
ui/widgets/info/contactgeneral.h
Normal file
@ -0,0 +1,41 @@
|
||||
// Squawk messenger.
|
||||
// Copyright (C) 2019 Yury Gubich <blue@macaw.me>
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef UI_WIDGETS_CONTACTGENERAL_H
|
||||
#define UI_WIDGETS_CONTACTGENERAL_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QScopedPointer>
|
||||
|
||||
namespace UI {
|
||||
namespace Ui
|
||||
{
|
||||
class ContactGeneral;
|
||||
}
|
||||
|
||||
class ContactGeneral : public QWidget{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ContactGeneral(QWidget* parent = nullptr);
|
||||
~ContactGeneral();
|
||||
|
||||
private:
|
||||
QScopedPointer<Ui::ContactGeneral> m_ui;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // UI_WIDGETS_CONTACTGENERAL_H
|
448
ui/widgets/info/contactgeneral.ui
Normal file
448
ui/widgets/info/contactgeneral.ui
Normal file
@ -0,0 +1,448 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>UI::ContactGeneral</class>
|
||||
<widget class="QWidget" name="General">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>340</width>
|
||||
<height>625</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2" columnstretch="1,2,2,1">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="6" column="1" colspan="2">
|
||||
<widget class="QLabel" name="organizationHeading">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: 600 16pt;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Organization</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<layout class="QFormLayout" name="personalForm">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
<property name="formAlignment">
|
||||
<set>Qt::AlignHCenter|Qt::AlignTop</set>
|
||||
</property>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="middleName">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>350</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="firstName">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>350</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="middleNameLabel">
|
||||
<property name="text">
|
||||
<string>Middle name</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>middleName</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="firstNameLabel">
|
||||
<property name="text">
|
||||
<string>First name</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>firstName</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="lastNameLabel">
|
||||
<property name="text">
|
||||
<string>Last name</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>lastName</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="lastName">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>350</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="nickNameLabel">
|
||||
<property name="text">
|
||||
<string>Nick name</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>nickName</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="nickName">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>350</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="birthdayLabel">
|
||||
<property name="text">
|
||||
<string>Birthday</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>birthday</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QDateEdit" name="birthday"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="7" column="1" colspan="2">
|
||||
<layout class="QFormLayout" name="organizationForm">
|
||||
<property name="formAlignment">
|
||||
<set>Qt::AlignHCenter|Qt::AlignTop</set>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="organizationNameLabel">
|
||||
<property name="text">
|
||||
<string>Organization name</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>organizationName</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="organizationName">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>350</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="organizationDepartmentLabel">
|
||||
<property name="text">
|
||||
<string>Unit / Department</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>organizationDepartment</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="organizationDepartment">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>350</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="roleLabel">
|
||||
<property name="text">
|
||||
<string>Role / Profession</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>organizationRole</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="organizationRole">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>350</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="organizationTitleLabel">
|
||||
<property name="text">
|
||||
<string>Job title</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>organizationTitle</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="organizationTitle">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>350</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="8" column="1" colspan="2">
|
||||
<widget class="Line" name="organizationLine">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="2">
|
||||
<layout class="QFormLayout" name="commonForm">
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="fullName"/>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="fullNameLabel">
|
||||
<property name="text">
|
||||
<string>Full name</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>fullName</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="0" rowspan="7">
|
||||
<spacer name="generalLeftHSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="4" column="1" colspan="2">
|
||||
<widget class="Line" name="personalLine">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="4">
|
||||
<widget class="QLabel" name="generalHeading">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: 600 24pt ;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>General</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3" rowspan="7">
|
||||
<spacer name="generalRightHSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="1" colspan="2">
|
||||
<widget class="QLabel" name="personalHeading">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: 600 16pt;</string>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Personal information</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QToolButton" name="avatarButton">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="user">
|
||||
<normaloff>:/images/fallback/dark/big/user.svg</normaloff>:/images/fallback/dark/big/user.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="popupMode">
|
||||
<enum>QToolButton::InstantPopup</enum>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonIconOnly</enum>
|
||||
</property>
|
||||
<property name="arrowType">
|
||||
<enum>Qt::NoArrow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="1" colspan="2">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>fullName</tabstop>
|
||||
<tabstop>firstName</tabstop>
|
||||
<tabstop>middleName</tabstop>
|
||||
<tabstop>lastName</tabstop>
|
||||
<tabstop>nickName</tabstop>
|
||||
<tabstop>birthday</tabstop>
|
||||
<tabstop>avatarButton</tabstop>
|
||||
<tabstop>organizationName</tabstop>
|
||||
<tabstop>organizationDepartment</tabstop>
|
||||
<tabstop>organizationRole</tabstop>
|
||||
<tabstop>organizationTitle</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="../../../resources/resources.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
30
ui/widgets/info/info.cpp
Normal file
30
ui/widgets/info/info.cpp
Normal file
@ -0,0 +1,30 @@
|
||||
// Squawk messenger.
|
||||
// Copyright (C) 2019 Yury Gubich <blue@macaw.me>
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "info.h"
|
||||
#include "ui_info.h"
|
||||
|
||||
UI::Info::Info(const Shared::Info& info, QWidget* parent):
|
||||
QWidget(parent),
|
||||
m_ui(new Ui::Info())
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
|
||||
}
|
||||
|
||||
UI::Info::~Info()
|
||||
{}
|
45
ui/widgets/info/info.h
Normal file
45
ui/widgets/info/info.h
Normal file
@ -0,0 +1,45 @@
|
||||
// Squawk messenger.
|
||||
// Copyright (C) 2019 Yury Gubich <blue@macaw.me>
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef UI_WIDGETS_INFO_H
|
||||
#define UI_WIDGETS_INFO_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QScopedPointer>
|
||||
|
||||
#include <shared/info.h>
|
||||
|
||||
#include "contactgeneral.h"
|
||||
|
||||
namespace UI {
|
||||
namespace Ui
|
||||
{
|
||||
class Info;
|
||||
}
|
||||
|
||||
class Info : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
Info(const Shared::Info& info, QWidget* parent = nullptr);
|
||||
~Info();
|
||||
|
||||
private:
|
||||
QScopedPointer<Ui::Info> m_ui;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // UI_WIDGETS_INFO_H
|
137
ui/widgets/info/info.ui
Normal file
137
ui/widgets/info/info.ui
Normal file
@ -0,0 +1,137 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>UI::Info</class>
|
||||
<widget class="QWidget" name="UI::Info">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="title">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: 16pt </string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">Contact john@dow.org card</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="receivingTimeLabel">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: italic 8pt;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Received 12.07.2007 at 17.35</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::TabFocus</enum>
|
||||
</property>
|
||||
<property name="tabPosition">
|
||||
<enum>QTabWidget::North</enum>
|
||||
</property>
|
||||
<property name="tabShape">
|
||||
<enum>QTabWidget::Rounded</enum>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="elideMode">
|
||||
<enum>Qt::ElideNone</enum>
|
||||
</property>
|
||||
<property name="documentMode">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="tabBarAutoHide">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="Description">
|
||||
<attribute name="title">
|
||||
<string>Description</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="descriptionHeading">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: 600 24pt ;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Description</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QTextEdit" name="description">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextEditable|Qt::TextEditorInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Close|QDialogButtonBox::Save</set>
|
||||
</property>
|
||||
<property name="centerButtons">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
@ -2,8 +2,6 @@ target_sources(squawk PRIVATE
|
||||
omemo.cpp
|
||||
omemo.h
|
||||
omemo.ui
|
||||
keysmodel.cpp
|
||||
keysmodel.h
|
||||
keydelegate.cpp
|
||||
keydelegate.h
|
||||
)
|
@ -18,7 +18,7 @@
|
||||
#include <QPainter>
|
||||
#include <QDebug>
|
||||
|
||||
#include "keysmodel.h"
|
||||
#include "ui/models/info/omemo/keys.h"
|
||||
#include <shared/global.h>
|
||||
|
||||
constexpr uint8_t margin = 10;
|
||||
@ -56,7 +56,7 @@ void UI::KeyDelegate::paint(QPainter* painter, const QStyleOptionViewItem& optio
|
||||
painter->restore();
|
||||
}
|
||||
|
||||
QVariant dirtyV = index.data(UI::KeysModel::Dirty);
|
||||
QVariant dirtyV = index.data(Models::Keys::Dirty);
|
||||
if (dirtyV.isValid() && dirtyV.toBool()) {
|
||||
painter->save();
|
||||
rect.setWidth(margin / 2);
|
||||
@ -66,7 +66,7 @@ void UI::KeyDelegate::paint(QPainter* painter, const QStyleOptionViewItem& optio
|
||||
}
|
||||
|
||||
rect.adjust(margin, margin, -margin, -margin);
|
||||
QVariant labelV = index.data(UI::KeysModel::Label);
|
||||
QVariant labelV = index.data(Models::Keys::Label);
|
||||
if (labelV.isValid()) {
|
||||
QString label = labelV.toString();
|
||||
if (label.size() > 0) {
|
||||
@ -80,7 +80,7 @@ void UI::KeyDelegate::paint(QPainter* painter, const QStyleOptionViewItem& optio
|
||||
}
|
||||
}
|
||||
|
||||
QVariant fingerPrintV = index.data(UI::KeysModel::FingerPrint);
|
||||
QVariant fingerPrintV = index.data(Models::Keys::FingerPrint);
|
||||
if (fingerPrintV.isValid()) {
|
||||
painter->save();
|
||||
painter->setFont(fingerPrintFont);
|
||||
@ -111,7 +111,7 @@ void UI::KeyDelegate::paint(QPainter* painter, const QStyleOptionViewItem& optio
|
||||
}
|
||||
|
||||
|
||||
QVariant lastV = index.data(UI::KeysModel::LastInteraction);
|
||||
QVariant lastV = index.data(Models::Keys::LastInteraction);
|
||||
if (lastV.isValid()) {
|
||||
QDateTime last = lastV.toDateTime();
|
||||
if (last.isValid()) {
|
||||
@ -125,7 +125,7 @@ void UI::KeyDelegate::paint(QPainter* painter, const QStyleOptionViewItem& optio
|
||||
}
|
||||
}
|
||||
|
||||
QVariant levelV = index.data(UI::KeysModel::TrustLevel);
|
||||
QVariant levelV = index.data(Models::Keys::TrustLevel);
|
||||
if (levelV.isValid()) {
|
||||
Shared::TrustLevel level = static_cast<Shared::TrustLevel>(levelV.toUInt());
|
||||
QString levelName = Shared::Global::getName(level);
|
||||
@ -150,7 +150,7 @@ QSize UI::KeyDelegate::sizeHint(const QStyleOptionViewItem& option, const QModel
|
||||
int mw = margin * 2;
|
||||
int width = 0;
|
||||
|
||||
QVariant labelV = index.data(UI::KeysModel::Label);
|
||||
QVariant labelV = index.data(Models::Keys::Label);
|
||||
if (labelV.isValid()) {
|
||||
QString label = labelV.toString();
|
||||
if (label.size() > 0) {
|
||||
@ -159,7 +159,7 @@ QSize UI::KeyDelegate::sizeHint(const QStyleOptionViewItem& option, const QModel
|
||||
}
|
||||
}
|
||||
|
||||
QVariant fingerPrintV = index.data(UI::KeysModel::FingerPrint);
|
||||
QVariant fingerPrintV = index.data(Models::Keys::FingerPrint);
|
||||
if (fingerPrintV.isValid()) {
|
||||
QString hex = fingerPrintV.toByteArray().toHex();
|
||||
uint8_t parts = hex.size() / partSize;
|
||||
@ -177,7 +177,7 @@ QSize UI::KeyDelegate::sizeHint(const QStyleOptionViewItem& option, const QModel
|
||||
width = std::max(width, firstLine * fingerPrintMetrics.horizontalAdvance(hex, partSize) + (firstLine - 1) * spaceWidth);
|
||||
width += 1; //there is a mistake somewhere, this the cheapest way to compensate it
|
||||
}
|
||||
QVariant lastV = index.data(UI::KeysModel::LastInteraction);
|
||||
QVariant lastV = index.data(Models::Keys::LastInteraction);
|
||||
if (lastV.isValid()) {
|
||||
QDateTime last = lastV.toDateTime();
|
||||
if (last.isValid()) {
|
||||
@ -187,7 +187,7 @@ QSize UI::KeyDelegate::sizeHint(const QStyleOptionViewItem& option, const QModel
|
||||
}
|
||||
}
|
||||
|
||||
QVariant levelV = index.data(UI::KeysModel::TrustLevel);
|
||||
QVariant levelV = index.data(Models::Keys::TrustLevel);
|
||||
if (levelV.isValid()) {
|
||||
Shared::TrustLevel level = static_cast<Shared::TrustLevel>(levelV.toUInt());
|
||||
QString levelName = Shared::Global::getName(level);
|
@ -71,13 +71,13 @@ void Omemo::onActiveKeysContextMenu(const QPoint& pos) {
|
||||
contextMenu->clear();
|
||||
QModelIndex index = m_ui->keysView->indexAt(pos);
|
||||
if (index.isValid()) {
|
||||
QVariant dirtyV = index.data(UI::KeysModel::Dirty);
|
||||
QVariant dirtyV = index.data(Models::Keys::Dirty);
|
||||
if (dirtyV.isValid() && dirtyV.toBool()) {
|
||||
QAction* rev = contextMenu->addAction(Shared::icon("clean"), tr("Revert changes"));
|
||||
connect(rev, &QAction::triggered, std::bind(&UI::KeysModel::revertKey, &keysModel, index.row()));
|
||||
connect(rev, &QAction::triggered, std::bind(&Models::Keys::revertKey, &keysModel, index.row()));
|
||||
}
|
||||
|
||||
QVariant levelV = index.data(UI::KeysModel::TrustLevel);
|
||||
QVariant levelV = index.data(Models::Keys::TrustLevel);
|
||||
if (levelV.isValid()) {
|
||||
Shared::TrustLevel level = static_cast<Shared::TrustLevel>(levelV.toUInt());
|
||||
if (level == Shared::TrustLevel::undecided ||
|
||||
@ -86,7 +86,7 @@ void Omemo::onActiveKeysContextMenu(const QPoint& pos) {
|
||||
) {
|
||||
QAction* rev = contextMenu->addAction(Shared::icon("favorite"), tr("Trust"));
|
||||
connect(rev, &QAction::triggered,
|
||||
std::bind(&UI::KeysModel::setTrustLevel, &keysModel,
|
||||
std::bind(&Models::Keys::setTrustLevel, &keysModel,
|
||||
index.row(), Shared::TrustLevel::manuallyTrusted
|
||||
)
|
||||
);
|
||||
@ -99,7 +99,7 @@ void Omemo::onActiveKeysContextMenu(const QPoint& pos) {
|
||||
) {
|
||||
QAction* rev = contextMenu->addAction(Shared::icon("unfavorite"), tr("Distrust"));
|
||||
connect(rev, &QAction::triggered,
|
||||
std::bind(&UI::KeysModel::setTrustLevel, &keysModel,
|
||||
std::bind(&Models::Keys::setTrustLevel, &keysModel,
|
||||
index.row(), Shared::TrustLevel::manuallyDistrusted
|
||||
)
|
||||
);
|
@ -21,7 +21,7 @@
|
||||
#include <QScopedPointer>
|
||||
#include <QMenu>
|
||||
|
||||
#include "keysmodel.h"
|
||||
#include "ui/models/info/omemo/keys.h"
|
||||
#include "keydelegate.h"
|
||||
#include "shared/icons.h"
|
||||
|
||||
@ -46,8 +46,8 @@ private:
|
||||
QScopedPointer<Ui::Omemo> m_ui;
|
||||
UI::KeyDelegate keysDelegate;
|
||||
UI::KeyDelegate unusedKeysDelegate;
|
||||
UI::KeysModel keysModel;
|
||||
UI::KeysModel unusedKeysModel;
|
||||
Models::Keys keysModel;
|
||||
Models::Keys unusedKeysModel;
|
||||
QMenu* contextMenu;
|
||||
};
|
||||
|
@ -20,7 +20,7 @@
|
||||
#define ROOM_H
|
||||
|
||||
#include "conversation.h"
|
||||
#include "../models/room.h"
|
||||
#include "ui/models/room.h"
|
||||
|
||||
/**
|
||||
* @todo write docs
|
||||
|
@ -1,13 +1,5 @@
|
||||
target_sources(squawk PRIVATE
|
||||
emailsmodel.cpp
|
||||
emailsmodel.h
|
||||
phonesmodel.cpp
|
||||
phonesmodel.h
|
||||
vcard.cpp
|
||||
vcard.h
|
||||
vcard.ui
|
||||
)
|
||||
|
||||
if (WITH_OMEMO)
|
||||
add_subdirectory(omemo)
|
||||
endif()
|
||||
|
@ -235,10 +235,10 @@ void VCard::onContextMenu(const QPoint& point) {
|
||||
int row = sm->selectedRows().at(0).row();
|
||||
if (emails.isPreferred(row)) {
|
||||
QAction* rev = contextMenu->addAction(Shared::icon("unfavorite"), tr("Unset this email as preferred"));
|
||||
connect(rev, &QAction::triggered, std::bind(&UI::VCard::EMailsModel::revertPreferred, &emails, row));
|
||||
connect(rev, &QAction::triggered, std::bind(&Models::EMails::revertPreferred, &emails, row));
|
||||
} else {
|
||||
QAction* rev = contextMenu->addAction(Shared::icon("favorite"), tr("Set this email as preferred"));
|
||||
connect(rev, &QAction::triggered, std::bind(&UI::VCard::EMailsModel::revertPreferred, &emails, row));
|
||||
connect(rev, &QAction::triggered, std::bind(&Models::EMails::revertPreferred, &emails, row));
|
||||
}
|
||||
}
|
||||
|
||||
@ -263,10 +263,10 @@ void VCard::onContextMenu(const QPoint& point) {
|
||||
int row = sm->selectedRows().at(0).row();
|
||||
if (phones.isPreferred(row)) {
|
||||
QAction* rev = contextMenu->addAction(Shared::icon("view-media-favorite"), tr("Unset this phone as preferred"));
|
||||
connect(rev, &QAction::triggered, std::bind(&UI::VCard::PhonesModel::revertPreferred, &phones, row));
|
||||
connect(rev, &QAction::triggered, std::bind(&Models::Phones::revertPreferred, &phones, row));
|
||||
} else {
|
||||
QAction* rev = contextMenu->addAction(Shared::icon("favorite"), tr("Set this phone as preferred"));
|
||||
connect(rev, &QAction::triggered, std::bind(&UI::VCard::PhonesModel::revertPreferred, &phones, row));
|
||||
connect(rev, &QAction::triggered, std::bind(&Models::Phones::revertPreferred, &phones, row));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,13 +37,13 @@
|
||||
#include <set>
|
||||
|
||||
#include "shared/vcard.h"
|
||||
#include "emailsmodel.h"
|
||||
#include "phonesmodel.h"
|
||||
#include "ui/models/info/emails.h"
|
||||
#include "ui/models/info/phones.h"
|
||||
#include "ui/utils/progress.h"
|
||||
#include "ui/utils/comboboxdelegate.h"
|
||||
|
||||
#ifdef WITH_OMEMO
|
||||
#include "omemo/omemo.h"
|
||||
#include "ui/widgets/info/omemo/omemo.h"
|
||||
#endif
|
||||
|
||||
namespace Ui
|
||||
@ -92,8 +92,8 @@ private:
|
||||
QLabel* progressLabel;
|
||||
QWidget* overlay;
|
||||
QMenu* contextMenu;
|
||||
UI::VCard::EMailsModel emails;
|
||||
UI::VCard::PhonesModel phones;
|
||||
Models::EMails emails;
|
||||
Models::Phones phones;
|
||||
ComboboxDelegate* roleDelegate;
|
||||
ComboboxDelegate* phoneTypeDelegate;
|
||||
#ifdef WITH_OMEMO
|
||||
|
Loading…
Reference in New Issue
Block a user