Browse Source

refactor(model): Rename Contact and ContactId to Chat and ChatId

* Referring to groups generically as contacts is confusing.
* Friends are referred to as contacts in many places either as more
  neutral wording, or to avoid using the keyword friend as a variable
  name. Calling Contact Chat allows contact to be used for Friends.
reviewable/pr6538/r1
Anthony Bilinski 4 years ago
parent
commit
16aeb5f572
No known key found for this signature in database
GPG Key ID: 2AA8E0DA1B31FB3C
  1. 8
      CMakeLists.txt
  2. 2
      cmake/Testing.cmake
  3. 52
      src/core/chatid.cpp
  4. 26
      src/core/chatid.h
  5. 6
      src/core/groupid.cpp
  6. 4
      src/core/groupid.h
  7. 2
      src/core/toxid.cpp
  8. 10
      src/core/toxpk.cpp
  9. 4
      src/core/toxpk.h
  10. 2
      src/friendlist.cpp
  11. 4
      src/model/chat.cpp
  12. 8
      src/model/chat.h
  13. 4
      src/model/chatroom/chatroom.h
  14. 6
      src/model/chatroom/friendchatroom.cpp
  15. 2
      src/model/chatroom/friendchatroom.h
  16. 4
      src/model/chatroom/groupchatroom.cpp
  17. 2
      src/model/chatroom/groupchatroom.h
  18. 6
      src/model/dialogs/idialogs.h
  19. 2
      src/model/friend.cpp
  20. 8
      src/model/friend.h
  21. 2
      src/model/group.cpp
  22. 6
      src/model/group.h
  23. 2
      src/nexus.cpp
  24. 4
      src/widget/categorywidget.cpp
  25. 4
      src/widget/categorywidget.h
  26. 80
      src/widget/contentdialog.cpp
  27. 20
      src/widget/contentdialog.h
  28. 46
      src/widget/contentdialogmanager.cpp
  29. 14
      src/widget/contentdialogmanager.h
  30. 4
      src/widget/form/genericchatform.cpp
  31. 4
      src/widget/form/genericchatform.h
  32. 6
      src/widget/friendlistwidget.cpp
  33. 2
      src/widget/friendlistwidget.h
  34. 2
      src/widget/friendwidget.cpp
  35. 2
      src/widget/friendwidget.h
  36. 3
      src/widget/genericchatroomwidget.h
  37. 2
      src/widget/groupwidget.cpp
  38. 2
      src/widget/groupwidget.h
  39. 90
      src/widget/widget.cpp
  40. 10
      src/widget/widget.h
  41. 22
      test/core/chatid_test.cpp

8
CMakeLists.txt

@ -242,8 +242,8 @@ set(${PROJECT_NAME}_SOURCES
src/core/toxoptions.h src/core/toxoptions.h
src/core/toxpk.cpp src/core/toxpk.cpp
src/core/toxpk.h src/core/toxpk.h
src/core/contactid.cpp src/core/chatid.cpp
src/core/contactid.h src/core/chatid.h
src/core/toxstring.cpp src/core/toxstring.cpp
src/core/toxstring.h src/core/toxstring.h
src/friendlist.cpp src/friendlist.cpp
@ -266,8 +266,8 @@ set(${PROJECT_NAME}_SOURCES
src/model/chatroom/friendchatroom.h src/model/chatroom/friendchatroom.h
src/model/chatroom/groupchatroom.cpp src/model/chatroom/groupchatroom.cpp
src/model/chatroom/groupchatroom.h src/model/chatroom/groupchatroom.h
src/model/contact.cpp src/model/chat.cpp
src/model/contact.h src/model/chat.h
src/model/dialogs/idialogs.cpp src/model/dialogs/idialogs.cpp
src/model/dialogs/idialogs.h src/model/dialogs/idialogs.h
src/model/dialogs/idialogsmanager.h src/model/dialogs/idialogsmanager.h

2
cmake/Testing.cmake

@ -38,7 +38,7 @@ endfunction()
add_subdirectory(test/mock) add_subdirectory(test/mock)
auto_test(core core "${${PROJECT_NAME}_RESOURCES}") auto_test(core core "${${PROJECT_NAME}_RESOURCES}")
auto_test(core contactid "") auto_test(core chatid "")
auto_test(core toxid "") auto_test(core toxid "")
auto_test(core toxstring "") auto_test(core toxstring "")
auto_test(core fileprogress "") auto_test(core fileprogress "")

52
src/core/contactid.cpp → src/core/chatid.cpp

@ -21,71 +21,71 @@
#include <QString> #include <QString>
#include <cstdint> #include <cstdint>
#include <QHash> #include <QHash>
#include "src/core/contactid.h" #include "src/core/chatid.h"
/** /**
* @brief The default constructor. Creates an empty id. * @brief The default constructor. Creates an empty id.
*/ */
ContactId::ContactId() ChatId::ChatId()
: id() : id()
{ {
} }
ContactId::~ContactId() = default; ChatId::~ChatId() = default;
/** /**
* @brief Constructs a ContactId from bytes. * @brief Constructs a ChatId from bytes.
* @param rawId The bytes to construct the ContactId from. * @param rawId The bytes to construct the ChatId from.
*/ */
ContactId::ContactId(const QByteArray& rawId) ChatId::ChatId(const QByteArray& rawId)
{ {
id = QByteArray(rawId); id = QByteArray(rawId);
} }
/** /**
* @brief Compares the equality of the ContactId. * @brief Compares the equality of the ChatId.
* @param other ContactId to compare. * @param other ChatId to compare.
* @return True if both ContactId are equal, false otherwise. * @return True if both ChatId are equal, false otherwise.
*/ */
bool ContactId::operator==(const ContactId& other) const bool ChatId::operator==(const ChatId& other) const
{ {
return id == other.id; return id == other.id;
} }
/** /**
* @brief Compares the inequality of the ContactId. * @brief Compares the inequality of the ChatId.
* @param other ContactId to compare. * @param other ChatId to compare.
* @return True if both ContactIds are not equal, false otherwise. * @return True if both ChatIds are not equal, false otherwise.
*/ */
bool ContactId::operator!=(const ContactId& other) const bool ChatId::operator!=(const ChatId& other) const
{ {
return id != other.id; return id != other.id;
} }
/** /**
* @brief Compares two ContactIds * @brief Compares two ChatIds
* @param other ContactId to compare. * @param other ChatId to compare.
* @return True if this ContactIds is less than the other ContactId, false otherwise. * @return True if this ChatIds is less than the other ChatId, false otherwise.
*/ */
bool ContactId::operator<(const ContactId& other) const bool ChatId::operator<(const ChatId& other) const
{ {
return id < other.id; return id < other.id;
} }
/** /**
* @brief Converts the ContactId to a uppercase hex string. * @brief Converts the ChatId to a uppercase hex string.
* @return QString containing the hex representation of the id * @return QString containing the hex representation of the id
*/ */
QString ContactId::toString() const QString ChatId::toString() const
{ {
return id.toHex().toUpper(); return id.toHex().toUpper();
} }
/** /**
* @brief Returns a pointer to the raw id data. * @brief Returns a pointer to the raw id data.
* @return Pointer to the raw id data, which is exactly `ContactId::getPkSize()` * @return Pointer to the raw id data, which is exactly `ChatId::getPkSize()`
* bytes long. Returns a nullptr if the ContactId is empty. * bytes long. Returns a nullptr if the ChatId is empty.
*/ */
const uint8_t* ContactId::getData() const const uint8_t* ChatId::getData() const
{ {
if (id.isEmpty()) { if (id.isEmpty()) {
return nullptr; return nullptr;
@ -98,16 +98,16 @@ const uint8_t* ContactId::getData() const
* @brief Get a copy of the id * @brief Get a copy of the id
* @return Copied id bytes * @return Copied id bytes
*/ */
QByteArray ContactId::getByteArray() const QByteArray ChatId::getByteArray() const
{ {
return QByteArray(id); // TODO: Is a copy really necessary? return QByteArray(id); // TODO: Is a copy really necessary?
} }
/** /**
* @brief Checks if the ContactId contains a id. * @brief Checks if the ChatId contains a id.
* @return True if there is a id, False otherwise. * @return True if there is a id, False otherwise.
*/ */
bool ContactId::isEmpty() const bool ChatId::isEmpty() const
{ {
return id.isEmpty(); return id.isEmpty();
} }

26
src/core/contactid.h → src/core/chatid.h

@ -25,17 +25,17 @@
#include <QHash> #include <QHash>
#include <memory> #include <memory>
class ContactId class ChatId
{ {
public: public:
virtual ~ContactId(); virtual ~ChatId();
ContactId(const ContactId&) = default; ChatId(const ChatId&) = default;
ContactId& operator=(const ContactId&) = default; ChatId& operator=(const ChatId&) = default;
ContactId(ContactId&&) = default; ChatId(ChatId&&) = default;
ContactId& operator=(ContactId&&) = default; ChatId& operator=(ChatId&&) = default;
bool operator==(const ContactId& other) const; bool operator==(const ChatId& other) const;
bool operator!=(const ContactId& other) const; bool operator!=(const ChatId& other) const;
bool operator<(const ContactId& other) const; bool operator<(const ChatId& other) const;
QString toString() const; QString toString() const;
QByteArray getByteArray() const; QByteArray getByteArray() const;
const uint8_t* getData() const; const uint8_t* getData() const;
@ -43,14 +43,14 @@ public:
virtual int getSize() const = 0; virtual int getSize() const = 0;
protected: protected:
ContactId(); ChatId();
explicit ContactId(const QByteArray& rawId); explicit ChatId(const QByteArray& rawId);
QByteArray id; QByteArray id;
}; };
inline uint qHash(const ContactId& id) inline uint qHash(const ChatId& id)
{ {
return qHash(id.getByteArray()); return qHash(id.getByteArray());
} }
using ContactIdPtr = std::shared_ptr<const ContactId>; using ChatIdPtr = std::shared_ptr<const ChatId>;

6
src/core/groupid.cpp

@ -33,7 +33,7 @@
* @brief The default constructor. Creates an empty Tox group ID. * @brief The default constructor. Creates an empty Tox group ID.
*/ */
GroupId::GroupId() GroupId::GroupId()
: ContactId() : ChatId()
{ {
} }
@ -43,7 +43,7 @@ GroupId::GroupId()
* GroupId::size, else the GroupId will be empty. * GroupId::size, else the GroupId will be empty.
*/ */
GroupId::GroupId(const QByteArray& rawId) GroupId::GroupId(const QByteArray& rawId)
: ContactId([rawId](){ : ChatId([rawId](){
assert(rawId.length() == size); assert(rawId.length() == size);
return rawId;}()) return rawId;}())
{ {
@ -55,7 +55,7 @@ GroupId::GroupId(const QByteArray& rawId)
* GroupId::size from the specified buffer. * GroupId::size from the specified buffer.
*/ */
GroupId::GroupId(const uint8_t* rawId) GroupId::GroupId(const uint8_t* rawId)
: ContactId(QByteArray(reinterpret_cast<const char*>(rawId), size)) : ChatId(QByteArray(reinterpret_cast<const char*>(rawId), size))
{ {
} }

4
src/core/groupid.h

@ -19,11 +19,11 @@
#pragma once #pragma once
#include "src/core/contactid.h" #include "src/core/chatid.h"
#include <QByteArray> #include <QByteArray>
#include <cstdint> #include <cstdint>
class GroupId : public ContactId class GroupId : public ChatId
{ {
public: public:
static constexpr int size = 32; static constexpr int size = 32;

2
src/core/toxid.cpp

@ -18,7 +18,7 @@
*/ */
#include "contactid.h" #include "chatid.h"
#include "toxid.h" #include "toxid.h"
#include "toxpk.h" #include "toxpk.h"

10
src/core/toxpk.cpp

@ -17,7 +17,7 @@
along with qTox. If not, see <http://www.gnu.org/licenses/>. along with qTox. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "contactid.h" #include "chatid.h"
#include "toxpk.h" #include "toxpk.h"
#include <QByteArray> #include <QByteArray>
@ -34,7 +34,7 @@
* @brief The default constructor. Creates an empty Tox key. * @brief The default constructor. Creates an empty Tox key.
*/ */
ToxPk::ToxPk() ToxPk::ToxPk()
: ContactId() : ChatId()
{ {
} }
@ -44,7 +44,7 @@ ToxPk::ToxPk()
* ToxPk::size, else the ToxPk will be empty. * ToxPk::size, else the ToxPk will be empty.
*/ */
ToxPk::ToxPk(const QByteArray& rawId) ToxPk::ToxPk(const QByteArray& rawId)
: ContactId([&rawId](){ : ChatId([&rawId](){
assert(rawId.length() == size); assert(rawId.length() == size);
return rawId;}()) return rawId;}())
{ {
@ -56,7 +56,7 @@ ToxPk::ToxPk(const QByteArray& rawId)
* ToxPk::size from the specified buffer. * ToxPk::size from the specified buffer.
*/ */
ToxPk::ToxPk(const uint8_t* rawId) ToxPk::ToxPk(const uint8_t* rawId)
: ContactId(QByteArray(reinterpret_cast<const char*>(rawId), size)) : ChatId(QByteArray(reinterpret_cast<const char*>(rawId), size))
{ {
} }
@ -68,7 +68,7 @@ ToxPk::ToxPk(const uint8_t* rawId)
* @param pk Tox Pk string to convert to ToxPk object * @param pk Tox Pk string to convert to ToxPk object
*/ */
ToxPk::ToxPk(const QString& pk) ToxPk::ToxPk(const QString& pk)
: ContactId([&pk](){ : ChatId([&pk](){
if (pk.length() == numHexChars) { if (pk.length() == numHexChars) {
return QByteArray::fromHex(pk.toLatin1()); return QByteArray::fromHex(pk.toLatin1());
} else { } else {

4
src/core/toxpk.h

@ -19,11 +19,11 @@
#pragma once #pragma once
#include "src/core/contactid.h" #include "src/core/chatid.h"
#include <QByteArray> #include <QByteArray>
#include <cstdint> #include <cstdint>
class ToxPk : public ContactId class ToxPk : public ChatId
{ {
public: public:
static constexpr int size = 32; static constexpr int size = 32;

2
src/friendlist.cpp

@ -20,7 +20,7 @@
#include "friendlist.h" #include "friendlist.h"
#include "src/model/friend.h" #include "src/model/friend.h"
#include "src/persistence/settings.h" #include "src/persistence/settings.h"
#include "src/core/contactid.h" #include "src/core/chatid.h"
#include "src/core/toxpk.h" #include "src/core/toxpk.h"
#include <QDebug> #include <QDebug>
#include <QHash> #include <QHash>

4
src/model/contact.cpp → src/model/chat.cpp

@ -18,10 +18,10 @@
*/ */
#include "contact.h" #include "chat.h"
#include <QVariant> #include <QVariant>
Contact::~Contact() Chat::~Chat()
{ {
} }

8
src/model/contact.h → src/model/chat.h

@ -19,20 +19,20 @@
#pragma once #pragma once
#include "src/core/contactid.h" #include "src/core/chatid.h"
#include <QObject> #include <QObject>
#include <QString> #include <QString>
class Contact : public QObject class Chat : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
virtual ~Contact() = 0; virtual ~Chat() = 0;
virtual void setName(const QString& name) = 0; virtual void setName(const QString& name) = 0;
virtual QString getDisplayedName() const = 0; virtual QString getDisplayedName() const = 0;
virtual uint32_t getId() const = 0; virtual uint32_t getId() const = 0;
virtual const ContactId& getPersistentId() const = 0; virtual const ChatId& getPersistentId() const = 0;
virtual void setEventFlag(bool flag) = 0; virtual void setEventFlag(bool flag) = 0;
virtual bool getEventFlag() const = 0; virtual bool getEventFlag() const = 0;

4
src/model/chatroom/chatroom.h

@ -19,7 +19,7 @@
#pragma once #pragma once
#include "src/model/contact.h" #include "src/model/chat.h"
class Chatroom class Chatroom
{ {
@ -31,5 +31,5 @@ public:
Chatroom(Chatroom&&) = default; Chatroom(Chatroom&&) = default;
Chatroom& operator=(Chatroom&&) = default; Chatroom& operator=(Chatroom&&) = default;
virtual Contact* getContact() = 0; virtual Chat* getChat() = 0;
}; };

6
src/model/chatroom/friendchatroom.cpp

@ -55,7 +55,7 @@ Friend* FriendChatroom::getFriend()
return frnd; return frnd;
} }
Contact* FriendChatroom::getContact() Chat* FriendChatroom::getChat()
{ {
return frnd; return frnd;
} }
@ -175,14 +175,14 @@ bool FriendChatroom::canBeRemovedFromWindow() const
{ {
const auto friendPk = frnd->getPublicKey(); const auto friendPk = frnd->getPublicKey();
const auto dialogs = dialogsManager->getFriendDialogs(friendPk); const auto dialogs = dialogsManager->getFriendDialogs(friendPk);
return dialogs && dialogs->hasContact(friendPk); return dialogs && dialogs->hasChat(friendPk);
} }
bool FriendChatroom::friendCanBeRemoved() const bool FriendChatroom::friendCanBeRemoved() const
{ {
const auto friendPk = frnd->getPublicKey(); const auto friendPk = frnd->getPublicKey();
const auto dialogs = dialogsManager->getFriendDialogs(friendPk); const auto dialogs = dialogsManager->getFriendDialogs(friendPk);
return !dialogs || !dialogs->hasContact(friendPk); return !dialogs || !dialogs->hasChat(friendPk);
} }
void FriendChatroom::removeFriendFromDialogs() void FriendChatroom::removeFriendFromDialogs()

2
src/model/chatroom/friendchatroom.h

@ -50,7 +50,7 @@ public:
FriendChatroom(Friend* frnd_, IDialogsManager* dialogsManager_, Core& core_, FriendChatroom(Friend* frnd_, IDialogsManager* dialogsManager_, Core& core_,
Settings& settings_); Settings& settings_);
Contact* getContact() override; Chat* getChat() override;
public slots: public slots:

4
src/model/chatroom/groupchatroom.cpp

@ -35,7 +35,7 @@ GroupChatroom::GroupChatroom(Group* group_, IDialogsManager* dialogsManager_, Co
{ {
} }
Contact* GroupChatroom::getContact() Chat* GroupChatroom::getChat()
{ {
return group; return group;
} }
@ -84,7 +84,7 @@ bool GroupChatroom::canBeRemovedFromWindow() const
{ {
const auto groupId = group->getPersistentId(); const auto groupId = group->getPersistentId();
const auto dialogs = dialogsManager->getGroupDialogs(groupId); const auto dialogs = dialogsManager->getGroupDialogs(groupId);
return dialogs && dialogs->hasContact(groupId); return dialogs && dialogs->hasChat(groupId);
} }
void GroupChatroom::removeGroupFromDialogs() void GroupChatroom::removeGroupFromDialogs()

2
src/model/chatroom/groupchatroom.h

@ -34,7 +34,7 @@ class GroupChatroom : public QObject, public Chatroom
public: public:
GroupChatroom(Group* group_, IDialogsManager* dialogsManager_, Core& core_); GroupChatroom(Group* group_, IDialogsManager* dialogsManager_, Core& core_);
Contact* getContact() override; Chat* getChat() override;
Group* getGroup(); Group* getGroup();

6
src/model/dialogs/idialogs.h

@ -19,7 +19,7 @@
#pragma once #pragma once
class ContactId; class ChatId;
class GroupId; class GroupId;
class ToxPk; class ToxPk;
@ -33,8 +33,8 @@ public:
IDialogs(IDialogs&&) = default; IDialogs(IDialogs&&) = default;
IDialogs& operator=(IDialogs&&) = default; IDialogs& operator=(IDialogs&&) = default;
virtual bool hasContact(const ContactId& contactId) const = 0; virtual bool hasChat(const ChatId& chatId) const = 0;
virtual bool isContactActive(const ContactId& contactId) const = 0; virtual bool isChatActive(const ChatId& chatId) const = 0;
virtual void removeFriend(const ToxPk& friendPk) = 0; virtual void removeFriend(const ToxPk& friendPk) = 0;
virtual void removeGroup(const GroupId& groupId) = 0; virtual void removeGroup(const GroupId& groupId) = 0;

2
src/model/friend.cpp

@ -138,7 +138,7 @@ uint32_t Friend::getId() const
return friendId; return friendId;
} }
const ContactId& Friend::getPersistentId() const const ChatId& Friend::getPersistentId() const
{ {
return friendPk; return friendPk;
} }

8
src/model/friend.h

@ -19,16 +19,16 @@
#pragma once #pragma once
#include "contact.h" #include "chat.h"
#include "src/core/core.h" #include "src/core/core.h"
#include "src/core/extension.h" #include "src/core/extension.h"
#include "src/core/toxpk.h" #include "src/core/toxpk.h"
#include "src/core/contactid.h" #include "src/core/chatid.h"
#include "src/model/status.h" #include "src/model/status.h"
#include <QObject> #include <QObject>
#include <QString> #include <QString>
class Friend : public Contact class Friend : public Chat
{ {
Q_OBJECT Q_OBJECT
public: public:
@ -49,7 +49,7 @@ public:
const ToxPk& getPublicKey() const; const ToxPk& getPublicKey() const;
uint32_t getId() const override; uint32_t getId() const override;
const ContactId& getPersistentId() const override; const ChatId& getPersistentId() const override;
void finishNegotiation(); void finishNegotiation();
void setStatus(Status::Status s); void setStatus(Status::Status s);

2
src/model/group.cpp

@ -19,7 +19,7 @@
#include "group.h" #include "group.h"
#include "friend.h" #include "friend.h"
#include "src/core/contactid.h" #include "src/core/chatid.h"
#include "src/core/groupid.h" #include "src/core/groupid.h"
#include "src/core/toxpk.h" #include "src/core/toxpk.h"
#include "src/friendlist.h" #include "src/friendlist.h"

6
src/model/group.h

@ -19,9 +19,9 @@
#pragma once #pragma once
#include "contact.h" #include "chat.h"
#include "src/core/contactid.h" #include "src/core/chatid.h"
#include "src/core/groupid.h" #include "src/core/groupid.h"
#include "src/core/icoregroupquery.h" #include "src/core/icoregroupquery.h"
#include "src/core/icoreidhandler.h" #include "src/core/icoreidhandler.h"
@ -31,7 +31,7 @@
#include <QObject> #include <QObject>
#include <QStringList> #include <QStringList>
class Group : public Contact class Group : public Chat
{ {
Q_OBJECT Q_OBJECT
public: public:

2
src/nexus.cpp

@ -107,7 +107,7 @@ void Nexus::start()
qRegisterMetaType<ToxPk>("ToxPk"); qRegisterMetaType<ToxPk>("ToxPk");
qRegisterMetaType<ToxId>("ToxId"); qRegisterMetaType<ToxId>("ToxId");
qRegisterMetaType<ToxPk>("GroupId"); qRegisterMetaType<ToxPk>("GroupId");
qRegisterMetaType<ToxPk>("ContactId"); qRegisterMetaType<ToxPk>("ChatId");
qRegisterMetaType<GroupInvite>("GroupInvite"); qRegisterMetaType<GroupInvite>("GroupInvite");
qRegisterMetaType<ReceiptNum>("ReceiptNum"); qRegisterMetaType<ReceiptNum>("ReceiptNum");
qRegisterMetaType<RowId>("RowId"); qRegisterMetaType<RowId>("RowId");

4
src/widget/categorywidget.cpp

@ -165,7 +165,7 @@ void CategoryWidget::search(const QString& searchString, bool updateAll, bool hi
setVisible(inCategory || listLayout->hasChatrooms()); setVisible(inCategory || listLayout->hasChatrooms());
} }
bool CategoryWidget::cycleContacts(bool forward) bool CategoryWidget::cycleChats(bool forward)
{ {
if (listLayout->friendTotalCount() == 0) { if (listLayout->friendTotalCount() == 0) {
return false; return false;
@ -196,7 +196,7 @@ bool CategoryWidget::cycleContacts(bool forward)
return false; return false;
} }
bool CategoryWidget::cycleContacts(FriendWidget* activeChatroomWidget, bool forward) bool CategoryWidget::cycleChats(FriendWidget* activeChatroomWidget, bool forward)
{ {
int index = -1; int index = -1;
QLayout* currentLayout = nullptr; QLayout* currentLayout = nullptr;

4
src/widget/categorywidget.h

@ -45,8 +45,8 @@ public:
void updateStatus(); void updateStatus();
bool hasChatrooms() const; bool hasChatrooms() const;
bool cycleContacts(bool forward); bool cycleChats(bool forward);
bool cycleContacts(FriendWidget* activeChatroomWidget, bool forward); bool cycleChats(FriendWidget* activeChatroomWidget, bool forward);
void search(const QString& searchString, bool updateAll = false, bool hideOnline = false, void search(const QString& searchString, bool updateAll = false, bool hideOnline = false,
bool hideOffline = false); bool hideOffline = false);

80
src/widget/contentdialog.cpp

@ -130,10 +130,10 @@ ContentDialog::ContentDialog(const Core &core, Settings& settings_, QWidget* par
reloadTheme(); reloadTheme();
new QShortcut(Qt::CTRL + Qt::Key_Q, this, SLOT(close())); new QShortcut(Qt::CTRL + Qt::Key_Q, this, SLOT(close()));
new QShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_Tab, this, SLOT(previousContact())); new QShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_Tab, this, SLOT(previousChat()));
new QShortcut(Qt::CTRL + Qt::Key_Tab, this, SLOT(nextContact())); new QShortcut(Qt::CTRL + Qt::Key_Tab, this, SLOT(nextChat()));
new QShortcut(Qt::CTRL + Qt::Key_PageUp, this, SLOT(previousContact())); new QShortcut(Qt::CTRL + Qt::Key_PageUp, this, SLOT(previousChat()));
new QShortcut(Qt::CTRL + Qt::Key_PageDown, this, SLOT(nextContact())); new QShortcut(Qt::CTRL + Qt::Key_PageDown, this, SLOT(nextChat()));
connect(&settings, &Settings::groupchatPositionChanged, this, &ContentDialog::onGroupchatPositionChanged); connect(&settings, &Settings::groupchatPositionChanged, this, &ContentDialog::onGroupchatPositionChanged);
connect(splitter, &QSplitter::splitterMoved, this, &ContentDialog::saveSplitterState); connect(splitter, &QSplitter::splitterMoved, this, &ContentDialog::saveSplitterState);
@ -159,9 +159,9 @@ FriendWidget* ContentDialog::addFriend(std::shared_ptr<FriendChatroom> chatroom,
const auto& friendPk = frnd->getPublicKey(); const auto& friendPk = frnd->getPublicKey();
auto friendWidget = new FriendWidget(chatroom, compact, settings); auto friendWidget = new FriendWidget(chatroom, compact, settings);
emit connectFriendWidget(*friendWidget); emit connectFriendWidget(*friendWidget);
contactWidgets[friendPk] = friendWidget; chatWidgets[friendPk] = friendWidget;
friendLayout->addFriendWidget(friendWidget, frnd->getStatus()); friendLayout->addFriendWidget(friendWidget, frnd->getStatus());
contactChatForms[friendPk] = form; chatForms[friendPk] = form;
// TODO(sudden6): move this connection to the Friend::displayedNameChanged signal // TODO(sudden6): move this connection to the Friend::displayedNameChanged signal
connect(frnd, &Friend::aliasChanged, this, &ContentDialog::updateFriendWidget); connect(frnd, &Friend::aliasChanged, this, &ContentDialog::updateFriendWidget);
@ -180,9 +180,9 @@ GroupWidget* ContentDialog::addGroup(std::shared_ptr<GroupChatroom> chatroom, Ge
const auto& groupId = g->getPersistentId(); const auto& groupId = g->getPersistentId();
const auto compact = settings.getCompactLayout(); const auto compact = settings.getCompactLayout();
auto groupWidget = new GroupWidget(chatroom, compact, settings); auto groupWidget = new GroupWidget(chatroom, compact, settings);
contactWidgets[groupId] = groupWidget; chatWidgets[groupId] = groupWidget;
groupLayout.addSortedWidget(groupWidget); groupLayout.addSortedWidget(groupWidget);
contactChatForms[groupId] = form; chatForms[groupId] = form;
connect(groupWidget, &GroupWidget::chatroomWidgetClicked, this, &ContentDialog::activate); connect(groupWidget, &GroupWidget::chatroomWidgetClicked, this, &ContentDialog::activate);
@ -194,13 +194,13 @@ GroupWidget* ContentDialog::addGroup(std::shared_ptr<GroupChatroom> chatroom, Ge
void ContentDialog::removeFriend(const ToxPk& friendPk) void ContentDialog::removeFriend(const ToxPk& friendPk)
{ {
auto chatroomWidget = qobject_cast<FriendWidget*>(contactWidgets[friendPk]); auto chatroomWidget = qobject_cast<FriendWidget*>(chatWidgets[friendPk]);
disconnect(chatroomWidget->getFriend(), &Friend::aliasChanged, this, disconnect(chatroomWidget->getFriend(), &Friend::aliasChanged, this,
&ContentDialog::updateFriendWidget); &ContentDialog::updateFriendWidget);
// Need to find replacement to show here instead. // Need to find replacement to show here instead.
if (activeChatroomWidget == chatroomWidget) { if (activeChatroomWidget == chatroomWidget) {
cycleContacts(/* forward = */ true, /* inverse = */ false); cycleChats(/* forward = */ true, /* inverse = */ false);
} }
friendLayout->removeFriendWidget(chatroomWidget, Status::Status::Offline); friendLayout->removeFriendWidget(chatroomWidget, Status::Status::Offline);
@ -216,17 +216,17 @@ void ContentDialog::removeFriend(const ToxPk& friendPk)
update(); update();
} }
contactWidgets.remove(friendPk); chatWidgets.remove(friendPk);
contactChatForms.remove(friendPk); chatForms.remove(friendPk);
closeIfEmpty(); closeIfEmpty();
} }
void ContentDialog::removeGroup(const GroupId& groupId) void ContentDialog::removeGroup(const GroupId& groupId)
{ {
auto chatroomWidget = qobject_cast<GroupWidget*>(contactWidgets[groupId]); auto chatroomWidget = qobject_cast<GroupWidget*>(chatWidgets[groupId]);
// Need to find replacement to show here instead. // Need to find replacement to show here instead.
if (activeChatroomWidget == chatroomWidget) { if (activeChatroomWidget == chatroomWidget) {
cycleContacts(true, false); cycleChats(true, false);
} }
groupLayout.removeSortedWidget(chatroomWidget); groupLayout.removeSortedWidget(chatroomWidget);
@ -240,14 +240,14 @@ void ContentDialog::removeGroup(const GroupId& groupId)
update(); update();
} }
contactWidgets.remove(groupId); chatWidgets.remove(groupId);
contactChatForms.remove(groupId); chatForms.remove(groupId);
closeIfEmpty(); closeIfEmpty();
} }
void ContentDialog::closeIfEmpty() void ContentDialog::closeIfEmpty()
{ {
if (contactWidgets.isEmpty()) { if (chatWidgets.isEmpty()) {
close(); close();
} }
} }
@ -298,11 +298,11 @@ int ContentDialog::getCurrentLayout(QLayout*& layout)
} }
/** /**
* @brief Activate next/previous contact. * @brief Activate next/previous chat.
* @param forward If true, activate next contace, previous otherwise. * @param forward If true, activate next contace, previous otherwise.
* @param inverse ??? TODO: Add docs. * @param inverse ??? TODO: Add docs.
*/ */
void ContentDialog::cycleContacts(bool forward, bool inverse) void ContentDialog::cycleChats(bool forward, bool inverse)
{ {
QLayout* currentLayout; QLayout* currentLayout;
int index = getCurrentLayout(currentLayout); int index = getCurrentLayout(currentLayout);
@ -413,17 +413,17 @@ void ContentDialog::reorderLayouts(bool newGroupOnTop)
} }
} }
void ContentDialog::previousContact() void ContentDialog::previousChat()
{ {
cycleContacts(false); cycleChats(false);
} }
/** /**
* @brief Enable next contact. * @brief Enable next chat.
*/ */
void ContentDialog::nextContact() void ContentDialog::nextChat()
{ {
cycleContacts(true); cycleChats(true);
} }
/** /**
@ -486,7 +486,7 @@ void ContentDialog::dragEnterEvent(QDragEnterEvent* event)
ToxPk friendId = contact->getPublicKey(); ToxPk friendId = contact->getPublicKey();
// If friend is already in a dialog then you can't drop friend where it already is. // If friend is already in a dialog then you can't drop friend where it already is.
if (!hasContact(friendId)) { if (!hasChat(friendId)) {
event->acceptProposedAction(); event->acceptProposedAction();
} }
} else if (group) { } else if (group) {
@ -497,7 +497,7 @@ void ContentDialog::dragEnterEvent(QDragEnterEvent* event)
return; return;
} }
if (!hasContact(groupId)) { if (!hasChat(groupId)) {
event->acceptProposedAction(); event->acceptProposedAction();
} }
} }
@ -561,12 +561,12 @@ void ContentDialog::keyPressEvent(QKeyEvent* event)
} }
} }
void ContentDialog::focusContact(const ContactId& contactId) void ContentDialog::focusChat(const ChatId& chatId)
{ {
focusCommon(contactId, contactWidgets); focusCommon(chatId, chatWidgets);
} }
void ContentDialog::focusCommon(const ContactId& id, QHash<const ContactId&, GenericChatroomWidget*> list) void ContentDialog::focusCommon(const ChatId& id, QHash<const ChatId&, GenericChatroomWidget*> list)
{ {
auto it = list.find(id); auto it = list.find(id);
if (it == list.end()) { if (it == list.end()) {
@ -594,8 +594,8 @@ void ContentDialog::activate(GenericChatroomWidget* widget)
} }
activeChatroomWidget = widget; activeChatroomWidget = widget;
const Contact* contact = widget->getContact(); const Chat* chat = widget->getChat();
contactChatForms[contact->getPersistentId()]->show(contentLayout); chatForms[chat->getPersistentId()]->show(contentLayout);
widget->setAsActiveChatroom(); widget->setAsActiveChatroom();
widget->resetEventFlags(); widget->resetEventFlags();
@ -605,21 +605,21 @@ void ContentDialog::activate(GenericChatroomWidget* widget)
void ContentDialog::updateFriendStatus(const ToxPk& friendPk, Status::Status status) void ContentDialog::updateFriendStatus(const ToxPk& friendPk, Status::Status status)
{ {
auto widget = qobject_cast<FriendWidget*>(contactWidgets.value(friendPk)); auto widget = qobject_cast<FriendWidget*>(chatWidgets.value(friendPk));
addFriendWidget(widget, status); addFriendWidget(widget, status);
} }
void ContentDialog::updateContactStatusLight(const ContactId& contactId) void ContentDialog::updateChatStatusLight(const ChatId& chatId)
{ {
auto widget = contactWidgets.value(contactId); auto widget = chatWidgets.value(chatId);
if (widget != nullptr) { if (widget != nullptr) {
widget->updateStatusLight(); widget->updateStatusLight();
} }
} }
bool ContentDialog::isContactActive(const ContactId& contactId) const bool ContentDialog::isChatActive(const ChatId& chatId) const
{ {
auto widget = contactWidgets.value(contactId); auto widget = chatWidgets.value(chatId);
if (widget == nullptr) { if (widget == nullptr) {
return false; return false;
} }
@ -630,7 +630,7 @@ bool ContentDialog::isContactActive(const ContactId& contactId) const
// TODO: Connect to widget directly // TODO: Connect to widget directly
void ContentDialog::setStatusMessage(const ToxPk& friendPk, const QString& message) void ContentDialog::setStatusMessage(const ToxPk& friendPk, const QString& message)
{ {
auto widget = contactWidgets.value(friendPk); auto widget = chatWidgets.value(friendPk);
if (widget != nullptr) { if (widget != nullptr) {
widget->setStatusMsg(message); widget->setStatusMsg(message);
} }
@ -645,7 +645,7 @@ void ContentDialog::updateFriendWidget(const ToxPk& friendPk, QString alias)
{ {
std::ignore = alias; std::ignore = alias;
Friend* f = FriendList::findFriend(friendPk); Friend* f = FriendList::findFriend(friendPk);
FriendWidget* friendWidget = qobject_cast<FriendWidget*>(contactWidgets[friendPk]); FriendWidget* friendWidget = qobject_cast<FriendWidget*>(chatWidgets[friendPk]);
Status::Status status = f->getStatus(); Status::Status status = f->getStatus();
friendLayout->addFriendWidget(friendWidget, status); friendLayout->addFriendWidget(friendWidget, status);
@ -687,9 +687,9 @@ void ContentDialog::saveSplitterState()
settings.setDialogSplitterState(splitter->saveState()); settings.setDialogSplitterState(splitter->saveState());
} }
bool ContentDialog::hasContact(const ContactId& contactId) const bool ContentDialog::hasChat(const ChatId& chatId) const
{ {
return contactWidgets.contains(contactId); return chatWidgets.contains(chatId);
} }
/** /**

20
src/widget/contentdialog.h

@ -62,19 +62,19 @@ public:
void ensureSplitterVisible(); void ensureSplitterVisible();
void updateTitleAndStatusIcon(); void updateTitleAndStatusIcon();
void cycleContacts(bool forward, bool loop = true); void cycleChats(bool forward, bool loop = true);
void onVideoShow(QSize size); void onVideoShow(QSize size);
void onVideoHide(); void onVideoHide();
void addFriendWidget(FriendWidget* widget, Status::Status status); void addFriendWidget(FriendWidget* widget, Status::Status status);
bool isActiveWidget(GenericChatroomWidget* widget); bool isActiveWidget(GenericChatroomWidget* widget);
bool hasContact(const ContactId& contactId) const override; bool hasChat(const ChatId& chatId) const override;
bool isContactActive(const ContactId& contactId) const override; bool isChatActive(const ChatId& chatId) const override;
void focusContact(const ContactId& friendPk); void focusChat(const ChatId& friendPk);
void updateFriendStatus(const ToxPk& friendPk, Status::Status status); void updateFriendStatus(const ToxPk& friendPk, Status::Status status);
void updateContactStatusLight(const ContactId& contactId); void updateChatStatusLight(const ChatId& chatId);
void setStatusMessage(const ToxPk& friendPk, const QString& message); void setStatusMessage(const ToxPk& friendPk, const QString& message);
@ -89,8 +89,8 @@ signals:
public slots: public slots:
void reorderLayouts(bool newGroupOnTop); void reorderLayouts(bool newGroupOnTop);
void previousContact(); void previousChat();
void nextContact(); void nextChat();
void setUsername(const QString& newName); void setUsername(const QString& newName);
void reloadTheme() override; void reloadTheme() override;
@ -119,7 +119,7 @@ private:
void saveSplitterState(); void saveSplitterState();
QLayout* nextLayout(QLayout* layout, bool forward) const; QLayout* nextLayout(QLayout* layout, bool forward) const;
int getCurrentLayout(QLayout*& layout); int getCurrentLayout(QLayout*& layout);
void focusCommon(const ContactId& id, QHash<const ContactId&, GenericChatroomWidget*> list); void focusCommon(const ChatId& id, QHash<const ChatId&, GenericChatroomWidget*> list);
private: private:
QList<QLayout*> layouts; QList<QLayout*> layouts;
@ -132,8 +132,8 @@ private:
QSize videoSurfaceSize; QSize videoSurfaceSize;
int videoCount; int videoCount;
QHash<const ContactId&, GenericChatroomWidget*> contactWidgets; QHash<const ChatId&, GenericChatroomWidget*> chatWidgets;
QHash<const ContactId&, GenericChatForm*> contactChatForms; QHash<const ChatId&, GenericChatForm*> chatForms;
QString username; QString username;
Settings& settings; Settings& settings;

46
src/widget/contentdialogmanager.cpp

@ -29,7 +29,7 @@
#include <tuple> #include <tuple>
namespace { namespace {
void removeDialog(ContentDialog* dialog, QHash<const ContactId&, ContentDialog*>& dialogs) void removeDialog(ContentDialog* dialog, QHash<const ChatId&, ContentDialog*>& dialogs)
{ {
for (auto it = dialogs.begin(); it != dialogs.end();) { for (auto it = dialogs.begin(); it != dialogs.end();) {
if (*it == dialog) { if (*it == dialog) {
@ -48,14 +48,14 @@ ContentDialog* ContentDialogManager::current()
return currentDialog; return currentDialog;
} }
bool ContentDialogManager::contactWidgetExists(const ContactId& contactId) bool ContentDialogManager::chatWidgetExists(const ChatId& chatId)
{ {
const auto dialog = contactDialogs.value(contactId, nullptr); const auto dialog = chatDialogs.value(chatId, nullptr);
if (dialog == nullptr) { if (dialog == nullptr) {
return false; return false;
} }
return dialog->hasContact(contactId); return dialog->hasChat(chatId);
} }
FriendWidget* ContentDialogManager::addFriendToDialog(ContentDialog* dialog, FriendWidget* ContentDialogManager::addFriendToDialog(ContentDialog* dialog,
@ -70,7 +70,7 @@ FriendWidget* ContentDialogManager::addFriendToDialog(ContentDialog* dialog,
lastDialog->removeFriend(friendPk); lastDialog->removeFriend(friendPk);
} }
contactDialogs[friendPk] = dialog; chatDialogs[friendPk] = dialog;
return friendWidget; return friendWidget;
} }
@ -86,15 +86,15 @@ GroupWidget* ContentDialogManager::addGroupToDialog(ContentDialog* dialog,
lastDialog->removeGroup(groupId); lastDialog->removeGroup(groupId);
} }
contactDialogs[groupId] = dialog; chatDialogs[groupId] = dialog;
return groupWidget; return groupWidget;
} }
void ContentDialogManager::focusContact(const ContactId& contactId) void ContentDialogManager::focusChat(const ChatId& chatId)
{ {
auto dialog = focusDialog(contactId, contactDialogs); auto dialog = focusDialog(chatId, chatDialogs);
if (dialog != nullptr) { if (dialog != nullptr) {
dialog->focusContact(contactId); dialog->focusChat(chatId);
} }
} }
@ -104,8 +104,8 @@ void ContentDialogManager::focusContact(const ContactId& contactId)
* @param list List with dialogs * @param list List with dialogs
* @return ContentDialog if found, nullptr otherwise * @return ContentDialog if found, nullptr otherwise
*/ */
ContentDialog* ContentDialogManager::focusDialog(const ContactId& id, ContentDialog* ContentDialogManager::focusDialog(const ChatId& id,
const QHash<const ContactId&, ContentDialog*>& list) const QHash<const ChatId&, ContentDialog*>& list)
{ {
auto iter = list.find(id); auto iter = list.find(id);
if (iter == list.end()) { if (iter == list.end()) {
@ -124,13 +124,13 @@ ContentDialog* ContentDialogManager::focusDialog(const ContactId& id,
void ContentDialogManager::updateFriendStatus(const ToxPk& friendPk) void ContentDialogManager::updateFriendStatus(const ToxPk& friendPk)
{ {
auto dialog = contactDialogs.value(friendPk); auto dialog = chatDialogs.value(friendPk);
if (dialog == nullptr) { if (dialog == nullptr) {
return; return;
} }
dialog->updateContactStatusLight(friendPk); dialog->updateChatStatusLight(friendPk);
if (dialog->isContactActive(friendPk)) { if (dialog->isChatActive(friendPk)) {
dialog->updateTitleAndStatusIcon(); dialog->updateTitleAndStatusIcon();
} }
@ -140,35 +140,35 @@ void ContentDialogManager::updateFriendStatus(const ToxPk& friendPk)
void ContentDialogManager::updateGroupStatus(const GroupId& groupId) void ContentDialogManager::updateGroupStatus(const GroupId& groupId)
{ {
auto dialog = contactDialogs.value(groupId); auto dialog = chatDialogs.value(groupId);
if (dialog == nullptr) { if (dialog == nullptr) {
return; return;
} }
dialog->updateContactStatusLight(groupId); dialog->updateChatStatusLight(groupId);
if (dialog->isContactActive(groupId)) { if (dialog->isChatActive(groupId)) {
dialog->updateTitleAndStatusIcon(); dialog->updateTitleAndStatusIcon();
} }
} }
bool ContentDialogManager::isContactActive(const ContactId& contactId) bool ContentDialogManager::isChatActive(const ChatId& chatId)
{ {
const auto dialog = contactDialogs.value(contactId); const auto dialog = chatDialogs.value(chatId);
if (dialog == nullptr) { if (dialog == nullptr) {
return false; return false;
} }
return dialog->isContactActive(contactId); return dialog->isChatActive(chatId);
} }
ContentDialog* ContentDialogManager::getFriendDialog(const ToxPk& friendPk) const ContentDialog* ContentDialogManager::getFriendDialog(const ToxPk& friendPk) const
{ {
return contactDialogs.value(friendPk); return chatDialogs.value(friendPk);
} }
ContentDialog* ContentDialogManager::getGroupDialog(const GroupId& groupId) const ContentDialog* ContentDialogManager::getGroupDialog(const GroupId& groupId) const
{ {
return contactDialogs.value(groupId); return chatDialogs.value(groupId);
} }
ContentDialogManager* ContentDialogManager::getInstance() ContentDialogManager* ContentDialogManager::getInstance()
@ -200,7 +200,7 @@ void ContentDialogManager::onDialogClose()
currentDialog = nullptr; currentDialog = nullptr;
} }
removeDialog(dialog, contactDialogs); removeDialog(dialog, chatDialogs);
} }
IDialogs* ContentDialogManager::getFriendDialogs(const ToxPk& friendPk) const IDialogs* ContentDialogManager::getFriendDialogs(const ToxPk& friendPk) const

14
src/widget/contentdialogmanager.h

@ -20,7 +20,7 @@
#pragma once #pragma once
#include "contentdialog.h" #include "contentdialog.h"
#include "src/core/contactid.h" #include "src/core/chatid.h"
#include "src/core/groupid.h" #include "src/core/groupid.h"
#include "src/core/toxpk.h" #include "src/core/toxpk.h"
#include "src/model/dialogs/idialogsmanager.h" #include "src/model/dialogs/idialogsmanager.h"
@ -35,11 +35,11 @@ class ContentDialogManager : public QObject, public IDialogsManager
Q_OBJECT Q_OBJECT
public: public:
ContentDialog* current(); ContentDialog* current();
bool contactWidgetExists(const ContactId& groupId); bool chatWidgetExists(const ChatId& groupId);
void focusContact(const ContactId& contactId); void focusChat(const ChatId& chatId);
void updateFriendStatus(const ToxPk& friendPk); void updateFriendStatus(const ToxPk& friendPk);
void updateGroupStatus(const GroupId& friendPk); void updateGroupStatus(const GroupId& friendPk);
bool isContactActive(const ContactId& contactId); bool isChatActive(const ChatId& chatId);
ContentDialog* getFriendDialog(const ToxPk& friendPk) const; ContentDialog* getFriendDialog(const ToxPk& friendPk) const;
ContentDialog* getGroupDialog(const GroupId& friendPk) const; ContentDialog* getGroupDialog(const GroupId& friendPk) const;
@ -60,12 +60,12 @@ private slots:
void onDialogActivate(); void onDialogActivate();
private: private:
ContentDialog* focusDialog(const ContactId& id, ContentDialog* focusDialog(const ChatId& id,
const QHash<const ContactId&, ContentDialog*>& list); const QHash<const ChatId&, ContentDialog*>& list);
ContentDialog* currentDialog = nullptr; ContentDialog* currentDialog = nullptr;
QHash<const ContactId&, ContentDialog*> contactDialogs; QHash<const ChatId&, ContentDialog*> chatDialogs;
static ContentDialogManager* instance; static ContentDialogManager* instance;
}; };

4
src/widget/form/genericchatform.cpp

@ -136,7 +136,7 @@ QPushButton* createButton(const QString& name, T* self, Fun onClickSlot, Setting
} // namespace } // namespace
GenericChatForm::GenericChatForm(const Core& core_, const Contact* contact, IChatLog& chatLog_, GenericChatForm::GenericChatForm(const Core& core_, const Chat* chat, IChatLog& chatLog_,
IMessageDispatcher& messageDispatcher_, DocumentCache& documentCache, IMessageDispatcher& messageDispatcher_, DocumentCache& documentCache,
SmileyPack& smileyPack_, Settings& settings_, QWidget* parent_) SmileyPack& smileyPack_, Settings& settings_, QWidget* parent_)
: QWidget(parent_, Qt::Window) : QWidget(parent_, Qt::Window)
@ -273,7 +273,7 @@ GenericChatForm::GenericChatForm(const Core& core_, const Contact* contact, ICha
Translator::registerHandler(std::bind(&GenericChatForm::retranslateUi, this), this); Translator::registerHandler(std::bind(&GenericChatForm::retranslateUi, this), this);
// update header on name/title change // update header on name/title change
connect(contact, &Contact::displayedNameChanged, this, &GenericChatForm::setName); connect(chat, &Chat::displayedNameChanged, this, &GenericChatForm::setName);
} }

4
src/widget/form/genericchatform.h

@ -36,7 +36,7 @@
class ChatFormHeader; class ChatFormHeader;
class ChatWidget; class ChatWidget;
class ChatTextEdit; class ChatTextEdit;
class Contact; class Chat;
class ContentLayout; class ContentLayout;
class CroppingLabel; class CroppingLabel;
class FlyoutOverlayWidget; class FlyoutOverlayWidget;
@ -71,7 +71,7 @@ class GenericChatForm : public QWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
GenericChatForm(const Core& core_, const Contact* contact, IChatLog& chatLog_, GenericChatForm(const Core& core_, const Chat* chat, IChatLog& chatLog_,
IMessageDispatcher& messageDispatcher_, DocumentCache&, IMessageDispatcher& messageDispatcher_, DocumentCache&,
SmileyPack&, Settings&, QWidget* parent_ = nullptr); SmileyPack&, Settings&, QWidget* parent_ = nullptr);
~GenericChatForm() override; ~GenericChatForm() override;

6
src/widget/friendlistwidget.cpp

@ -442,7 +442,7 @@ void FriendListWidget::onGroupchatPositionChanged(bool top)
itemsChanged(); itemsChanged();
} }
void FriendListWidget::cycleContacts(GenericChatroomWidget* activeChatroomWidget, bool forward) void FriendListWidget::cycleChats(GenericChatroomWidget* activeChatroomWidget, bool forward)
{ {
if (!activeChatroomWidget) { if (!activeChatroomWidget) {
return; return;
@ -461,7 +461,7 @@ void FriendListWidget::cycleContacts(GenericChatroomWidget* activeChatroomWidget
QWidget* widget_ = activityLayout->itemAt(index)->widget(); QWidget* widget_ = activityLayout->itemAt(index)->widget();
CategoryWidget* categoryWidget = qobject_cast<CategoryWidget*>(widget_); CategoryWidget* categoryWidget = qobject_cast<CategoryWidget*>(widget_);
if (categoryWidget == nullptr || categoryWidget->cycleContacts(friendWidget, forward)) { if (categoryWidget == nullptr || categoryWidget->cycleChats(friendWidget, forward)) {
return; return;
} }
@ -481,7 +481,7 @@ void FriendListWidget::cycleContacts(GenericChatroomWidget* activeChatroomWidget
categoryWidget = qobject_cast<CategoryWidget*>(widget); categoryWidget = qobject_cast<CategoryWidget*>(widget);
if (categoryWidget != nullptr) { if (categoryWidget != nullptr) {
if (!categoryWidget->cycleContacts(forward)) { if (!categoryWidget->cycleChats(forward)) {
// Skip empty or finished categories. // Skip empty or finished categories.
index += forward ? 1 : -1; index += forward ? 1 : -1;
continue; continue;

2
src/widget/friendlistwidget.h

@ -60,7 +60,7 @@ public:
void searchChatrooms(const QString& searchString, bool hideOnline = false, void searchChatrooms(const QString& searchString, bool hideOnline = false,
bool hideOffline = false, bool hideGroups = false); bool hideOffline = false, bool hideGroups = false);
void cycleContacts(GenericChatroomWidget* activeChatroomWidget, bool forward); void cycleChats(GenericChatroomWidget* activeChatroomWidget, bool forward);
void updateActivityTime(const QDateTime& date); void updateActivityTime(const QDateTime& date);

2
src/widget/friendwidget.cpp

@ -351,7 +351,7 @@ const Friend* FriendWidget::getFriend() const
return chatroom->getFriend(); return chatroom->getFriend();
} }
const Contact* FriendWidget::getContact() const const Chat* FriendWidget::getChat() const
{ {
return getFriend(); return getFriend();
} }

2
src/widget/friendwidget.h

@ -44,7 +44,7 @@ public:
void resetEventFlags() final; void resetEventFlags() final;
QString getStatusString() const final; QString getStatusString() const final;
const Friend* getFriend() const final; const Friend* getFriend() const final;
const Contact* getContact() const final; const Chat* getChat() const final;
bool isFriend() const final; bool isFriend() const final;
bool isGroup() const final; bool isGroup() const final;

3
src/widget/genericchatroomwidget.h

@ -30,6 +30,7 @@ class Friend;
class Group; class Group;
class Contact; class Contact;
class Settings; class Settings;
class Chat;
class GenericChatroomWidget : public GenericChatItemWidget class GenericChatroomWidget : public GenericChatItemWidget
{ {
@ -43,7 +44,7 @@ public slots:
virtual void updateStatusLight() = 0; virtual void updateStatusLight() = 0;
virtual void resetEventFlags() = 0; virtual void resetEventFlags() = 0;
virtual QString getStatusString() const = 0; virtual QString getStatusString() const = 0;
virtual const Contact* getContact() const = 0; virtual const Chat* getChat() const = 0;
virtual const Friend* getFriend() const virtual const Friend* getFriend() const
{ {
return nullptr; return nullptr;

2
src/widget/groupwidget.cpp

@ -235,7 +235,7 @@ Group* GroupWidget::getGroup() const
return chatroom->getGroup(); return chatroom->getGroup();
} }
const Contact* GroupWidget::getContact() const const Chat* GroupWidget::getChat() const
{ {
return getGroup(); return getGroup();
} }

2
src/widget/groupwidget.h

@ -41,7 +41,7 @@ public:
void resetEventFlags() final; void resetEventFlags() final;
QString getStatusString() const final; QString getStatusString() const final;
Group* getGroup() const final; Group* getGroup() const final;
const Contact* getContact() const final; const Chat* getChat() const final;
void setName(const QString& name); void setName(const QString& name);
void editName(); void editName();

90
src/widget/widget.cpp

@ -262,11 +262,11 @@ void Widget::init()
sharedMessageProcessorParams.reset(new MessageProcessor::SharedParams(core->getMaxMessageSize(), coreExt->getMaxExtendedMessageSize())); sharedMessageProcessorParams.reset(new MessageProcessor::SharedParams(core->getMaxMessageSize(), coreExt->getMaxExtendedMessageSize()));
contactListWidget = new FriendListWidget(*core, this, settings, settings.getGroupchatPosition()); chatListWidget = new FriendListWidget(*core, this, settings, settings.getGroupchatPosition());
connect(contactListWidget, &FriendListWidget::searchCircle, this, &Widget::searchCircle); connect(chatListWidget, &FriendListWidget::searchCircle, this, &Widget::searchCircle);
connect(contactListWidget, &FriendListWidget::connectCircleWidget, this, connect(chatListWidget, &FriendListWidget::connectCircleWidget, this,
&Widget::connectCircleWidget); &Widget::connectCircleWidget);
ui->friendList->setWidget(contactListWidget); ui->friendList->setWidget(chatListWidget);
ui->friendList->setLayoutDirection(Qt::RightToLeft); ui->friendList->setLayoutDirection(Qt::RightToLeft);
ui->friendList->setContextMenuPolicy(Qt::CustomContextMenu); ui->friendList->setContextMenuPolicy(Qt::CustomContextMenu);
@ -331,8 +331,8 @@ void Widget::init()
connect(timer, &QTimer::timeout, this, &Widget::onUserAwayCheck); connect(timer, &QTimer::timeout, this, &Widget::onUserAwayCheck);
connect(timer, &QTimer::timeout, this, &Widget::onEventIconTick); connect(timer, &QTimer::timeout, this, &Widget::onEventIconTick);
connect(timer, &QTimer::timeout, this, &Widget::onTryCreateTrayIcon); connect(timer, &QTimer::timeout, this, &Widget::onTryCreateTrayIcon);
connect(ui->searchContactText, &QLineEdit::textChanged, this, &Widget::searchContacts); connect(ui->searchContactText, &QLineEdit::textChanged, this, &Widget::searchChats);
connect(filterGroup, &QActionGroup::triggered, this, &Widget::searchContacts); connect(filterGroup, &QActionGroup::triggered, this, &Widget::searchChats);
connect(filterDisplayGroup, &QActionGroup::triggered, this, &Widget::changeDisplayMode); connect(filterDisplayGroup, &QActionGroup::triggered, this, &Widget::changeDisplayMode);
connect(ui->friendList, &QWidget::customContextMenuRequested, this, &Widget::friendListContextMenu); connect(ui->friendList, &QWidget::customContextMenuRequested, this, &Widget::friendListContextMenu);
@ -375,10 +375,10 @@ void Widget::init()
// keyboard shortcuts // keyboard shortcuts
auto* const quitShortcut = new QShortcut(Qt::CTRL + Qt::Key_Q, this); auto* const quitShortcut = new QShortcut(Qt::CTRL + Qt::Key_Q, this);
connect(quitShortcut, &QShortcut::activated, qApp, &QApplication::quit); connect(quitShortcut, &QShortcut::activated, qApp, &QApplication::quit);
new QShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_Tab, this, SLOT(previousContact())); new QShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_Tab, this, SLOT(previousChat()));
new QShortcut(Qt::CTRL + Qt::Key_Tab, this, SLOT(nextContact())); new QShortcut(Qt::CTRL + Qt::Key_Tab, this, SLOT(nextChat()));
new QShortcut(Qt::CTRL + Qt::Key_PageUp, this, SLOT(previousContact())); new QShortcut(Qt::CTRL + Qt::Key_PageUp, this, SLOT(previousChat()));
new QShortcut(Qt::CTRL + Qt::Key_PageDown, this, SLOT(nextContact())); new QShortcut(Qt::CTRL + Qt::Key_PageDown, this, SLOT(nextChat()));
new QShortcut(Qt::Key_F11, this, SLOT(toggleFullscreen())); new QShortcut(Qt::Key_F11, this, SLOT(toggleFullscreen()));
#ifdef Q_OS_MAC #ifdef Q_OS_MAC
@ -420,9 +420,9 @@ void Widget::init()
nextConversationAction->setShortcut(QKeySequence::SelectNextPage); nextConversationAction->setShortcut(QKeySequence::SelectNextPage);
connect(nextConversationAction, &QAction::triggered, [this]() { connect(nextConversationAction, &QAction::triggered, [this]() {
if (ContentDialogManager::getInstance()->current() == QApplication::activeWindow()) if (ContentDialogManager::getInstance()->current() == QApplication::activeWindow())
ContentDialogManager::getInstance()->current()->cycleContacts(true); ContentDialogManager::getInstance()->current()->cycleChats(true);
else if (QApplication::activeWindow() == this) else if (QApplication::activeWindow() == this)
cycleContacts(true); cycleChats(true);
}); });
previousConversationAction = new QAction(this); previousConversationAction = new QAction(this);
@ -430,9 +430,9 @@ void Widget::init()
previousConversationAction->setShortcut(QKeySequence::SelectPreviousPage); previousConversationAction->setShortcut(QKeySequence::SelectPreviousPage);
connect(previousConversationAction, &QAction::triggered, [this] { connect(previousConversationAction, &QAction::triggered, [this] {
if (ContentDialogManager::getInstance()->current() == QApplication::activeWindow()) if (ContentDialogManager::getInstance()->current() == QApplication::activeWindow())
ContentDialogManager::getInstance()->current()->cycleContacts(false); ContentDialogManager::getInstance()->current()->cycleChats(false);
else if (QApplication::activeWindow() == this) else if (QApplication::activeWindow() == this)
cycleContacts(false); cycleChats(false);
}); });
windowMenu->menu()->insertSeparator(frontAction); windowMenu->menu()->insertSeparator(frontAction);
@ -491,9 +491,9 @@ void Widget::init()
// settings // settings
connect(&settings, &Settings::showSystemTrayChanged, this, &Widget::onSetShowSystemTray); connect(&settings, &Settings::showSystemTrayChanged, this, &Widget::onSetShowSystemTray);
connect(&settings, &Settings::separateWindowChanged, this, &Widget::onSeparateWindowClicked); connect(&settings, &Settings::separateWindowChanged, this, &Widget::onSeparateWindowClicked);
connect(&settings, &Settings::compactLayoutChanged, contactListWidget, connect(&settings, &Settings::compactLayoutChanged, chatListWidget,
&FriendListWidget::onCompactChanged); &FriendListWidget::onCompactChanged);
connect(&settings, &Settings::groupchatPositionChanged, contactListWidget, connect(&settings, &Settings::groupchatPositionChanged, chatListWidget,
&FriendListWidget::onGroupchatPositionChanged); &FriendListWidget::onGroupchatPositionChanged);
connect(&GUI::getInstance(), &GUI::themeReload, this, &Widget::reloadTheme); connect(&GUI::getInstance(), &GUI::themeReload, this, &Widget::reloadTheme);
@ -1213,7 +1213,7 @@ void Widget::addFriend(uint32_t friendId, const ToxPk& friendPk)
settings.setFriendActivity(friendPk, chatTime); settings.setFriendActivity(friendPk, chatTime);
} }
contactListWidget->addFriendWidget(widget); chatListWidget->addFriendWidget(widget);
auto notifyReceivedCallback = [this, friendPk](const ToxPk& author, const Message& message) { auto notifyReceivedCallback = [this, friendPk](const ToxPk& author, const Message& message) {
@ -1297,9 +1297,9 @@ void Widget::onFriendStatusChanged(const ToxPk& friendPk, Status::Status status)
FriendWidget* widget = friendWidgets[friendPk]; FriendWidget* widget = friendWidgets[friendPk];
if (Status::isOnline(status)) { if (Status::isOnline(status)) {
contactListWidget->moveWidget(widget, Status::Status::Online); chatListWidget->moveWidget(widget, Status::Status::Online);
} else { } else {
contactListWidget->moveWidget(widget, Status::Status::Offline); chatListWidget->moveWidget(widget, Status::Status::Offline);
} }
widget->updateStatusLight(); widget->updateStatusLight();
@ -1341,7 +1341,7 @@ void Widget::onFriendDisplayedNameChanged(const QString& displayed)
GUI::setWindowTitle(displayed); GUI::setWindowTitle(displayed);
} }
contactListWidget->itemsChanged(); chatListWidget->itemsChanged();
} }
void Widget::onFriendUsernameChanged(int friendId, const QString& username) void Widget::onFriendUsernameChanged(int friendId, const QString& username)
@ -1389,8 +1389,8 @@ void Widget::openDialog(GenericChatroomWidget* widget, bool newWindow)
form = groupChatForms[id].data(); form = groupChatForms[id].data();
} }
bool chatFormIsSet; bool chatFormIsSet;
ContentDialogManager::getInstance()->focusContact(id); ContentDialogManager::getInstance()->focusChat(id);
chatFormIsSet = ContentDialogManager::getInstance()->contactWidgetExists(id); chatFormIsSet = ContentDialogManager::getInstance()->chatWidgetExists(id);
if ((chatFormIsSet || form->isVisible()) && !newWindow) { if ((chatFormIsSet || form->isVisible()) && !newWindow) {
@ -1585,7 +1585,7 @@ bool Widget::newFriendMessageAlert(const ToxPk& friendId, const QString& text, b
if (contentDialog != nullptr) { if (contentDialog != nullptr) {
currentWindow = contentDialog->window(); currentWindow = contentDialog->window();
hasActive = ContentDialogManager::getInstance()->isContactActive(friendId); hasActive = ContentDialogManager::getInstance()->isChatActive(friendId);
} else { } else {
if (settings.getSeparateWindow() && settings.getShowWindow()) { if (settings.getSeparateWindow() && settings.getShowWindow()) {
if (settings.getDontGroupWindows()) { if (settings.getDontGroupWindows()) {
@ -1599,7 +1599,7 @@ bool Widget::newFriendMessageAlert(const ToxPk& friendId, const QString& text, b
addFriendDialog(f, contentDialog); addFriendDialog(f, contentDialog);
currentWindow = contentDialog->window(); currentWindow = contentDialog->window();
hasActive = ContentDialogManager::getInstance()->isContactActive(friendId); hasActive = ContentDialogManager::getInstance()->isChatActive(friendId);
} else { } else {
currentWindow = window(); currentWindow = window();
FriendWidget* widget = friendWidgets[friendId]; FriendWidget* widget = friendWidgets[friendId];
@ -1647,7 +1647,7 @@ bool Widget::newGroupMessageAlert(const GroupId& groupId, const ToxPk& authorPk,
if (contentDialog != nullptr) { if (contentDialog != nullptr) {
currentWindow = contentDialog->window(); currentWindow = contentDialog->window();
hasActive = ContentDialogManager::getInstance()->isContactActive(groupId); hasActive = ContentDialogManager::getInstance()->isChatActive(groupId);
} else { } else {
currentWindow = window(); currentWindow = window();
hasActive = widget == activeChatroomWidget; hasActive = widget == activeChatroomWidget;
@ -1759,8 +1759,8 @@ void Widget::updateFriendActivity(const Friend& frnd)
const auto newTime = QDateTime::currentDateTime(); const auto newTime = QDateTime::currentDateTime();
settings.setFriendActivity(pk, newTime); settings.setFriendActivity(pk, newTime);
FriendWidget* widget = friendWidgets[frnd.getPublicKey()]; FriendWidget* widget = friendWidgets[frnd.getPublicKey()];
contactListWidget->moveWidget(widget, frnd.getStatus()); chatListWidget->moveWidget(widget, frnd.getStatus());
contactListWidget->updateActivityTime(oldTime); // update old category widget chatListWidget->updateActivityTime(oldTime); // update old category widget
} }
void Widget::removeFriend(Friend* f, bool fake) void Widget::removeFriend(Friend* f, bool fake)
@ -1788,7 +1788,7 @@ void Widget::removeFriend(Friend* f, bool fake)
friendAlertConnections.remove(friendPk); friendAlertConnections.remove(friendPk);
contactListWidget->removeFriendWidget(widget); chatListWidget->removeFriendWidget(widget);
ContentDialog* lastDialog = ContentDialogManager::getInstance()->getFriendDialog(friendPk); ContentDialog* lastDialog = ContentDialogManager::getInstance()->getFriendDialog(friendPk);
if (lastDialog != nullptr) { if (lastDialog != nullptr) {
@ -2057,7 +2057,7 @@ void Widget::onGroupTitleChanged(uint32_t groupnumber, const QString& author, co
} }
g->setTitle(author, title); g->setTitle(author, title);
contactListWidget->itemsChanged(); chatListWidget->itemsChanged();
} }
void Widget::titleChangedByUser(const QString& title) void Widget::titleChangedByUser(const QString& title)
@ -2101,7 +2101,7 @@ void Widget::removeGroup(Group* g, bool fake)
if (!fake) { if (!fake) {
core->removeGroup(groupnumber); core->removeGroup(groupnumber);
} }
contactListWidget->removeGroupWidget(widget); // deletes widget chatListWidget->removeGroupWidget(widget); // deletes widget
groupWidgets.remove(groupId); groupWidgets.remove(groupId);
auto groupChatFormIt = groupChatForms.find(groupId); auto groupChatFormIt = groupChatForms.find(groupId);
@ -2191,9 +2191,9 @@ Group* Widget::createGroup(uint32_t groupnumber, const GroupId& groupId)
groupChatrooms[groupId] = chatroom; groupChatrooms[groupId] = chatroom;
groupChatForms[groupId] = QSharedPointer<GroupChatForm>(form); groupChatForms[groupId] = QSharedPointer<GroupChatForm>(form);
contactListWidget->addGroupWidget(widget); chatListWidget->addGroupWidget(widget);
widget->updateStatusLight(); widget->updateStatusLight();
contactListWidget->activateWindow(); chatListWidget->activateWindow();
connect(widget, &GroupWidget::chatroomWidgetClicked, this, &Widget::onChatroomWidgetClicked); connect(widget, &GroupWidget::chatroomWidgetClicked, this, &Widget::onChatroomWidgetClicked);
connect(widget, &GroupWidget::newWindowOpened, this, &Widget::openNewDialog); connect(widget, &GroupWidget::newWindowOpened, this, &Widget::openNewDialog);
@ -2426,9 +2426,9 @@ void Widget::onSplitterMoved(int pos, int index)
saveSplitterGeometry(); saveSplitterGeometry();
} }
void Widget::cycleContacts(bool forward) void Widget::cycleChats(bool forward)
{ {
contactListWidget->cycleContacts(activeChatroomWidget, forward); chatListWidget->cycleChats(activeChatroomWidget, forward);
} }
bool Widget::filterGroups(FilterCriteria index) bool Widget::filterGroups(FilterCriteria index)
@ -2491,14 +2491,14 @@ void Widget::reloadTheme()
profilePicture->setStyleSheet(Style::getStylesheet("window/profile.css", settings)); profilePicture->setStyleSheet(Style::getStylesheet("window/profile.css", settings));
} }
void Widget::nextContact() void Widget::nextChat()
{ {
cycleContacts(true); cycleChats(true);
} }
void Widget::previousContact() void Widget::previousChat()
{ {
cycleContacts(false); cycleChats(false);
} }
// Preparing needed to set correct size of icons for GTK tray backend // Preparing needed to set correct size of icons for GTK tray backend
@ -2531,12 +2531,12 @@ inline QIcon Widget::prepareIcon(QString path, int w, int h)
return QIcon(path); return QIcon(path);
} }
void Widget::searchContacts() void Widget::searchChats()
{ {
QString searchString = ui->searchContactText->text(); QString searchString = ui->searchContactText->text();
FilterCriteria filter = getFilterCriteria(); FilterCriteria filter = getFilterCriteria();
contactListWidget->searchChatrooms(searchString, filterOnline(filter), filterOffline(filter), chatListWidget->searchChatrooms(searchString, filterOnline(filter), filterOffline(filter),
filterGroups(filter)); filterGroups(filter));
updateFilterText(); updateFilterText();
@ -2547,12 +2547,12 @@ void Widget::changeDisplayMode()
filterDisplayGroup->setEnabled(false); filterDisplayGroup->setEnabled(false);
if (filterDisplayGroup->checkedAction() == filterDisplayActivity) { if (filterDisplayGroup->checkedAction() == filterDisplayActivity) {
contactListWidget->setMode(FriendListWidget::SortingMode::Activity); chatListWidget->setMode(FriendListWidget::SortingMode::Activity);
} else if (filterDisplayGroup->checkedAction() == filterDisplayName) { } else if (filterDisplayGroup->checkedAction() == filterDisplayName) {
contactListWidget->setMode(FriendListWidget::SortingMode::Name); chatListWidget->setMode(FriendListWidget::SortingMode::Name);
} }
searchContacts(); searchChats();
filterDisplayGroup->setEnabled(true); filterDisplayGroup->setEnabled(true);
updateFilterText(); updateFilterText();
@ -2584,7 +2584,7 @@ Widget::FilterCriteria Widget::getFilterCriteria() const
void Widget::searchCircle(CircleWidget& circleWidget) void Widget::searchCircle(CircleWidget& circleWidget)
{ {
if (contactListWidget->getMode() == FriendListWidget::SortingMode::Name) { if (chatListWidget->getMode() == FriendListWidget::SortingMode::Name) {
FilterCriteria filter = getFilterCriteria(); FilterCriteria filter = getFilterCriteria();
QString text = ui->searchContactText->text(); QString text = ui->searchContactText->text();
circleWidget.search(text, true, filterOnline(filter), filterOffline(filter)); circleWidget.search(text, true, filterOnline(filter), filterOffline(filter));
@ -2605,7 +2605,7 @@ void Widget::friendListContextMenu(const QPoint& pos)
QAction* chosenAction = menu.exec(ui->friendList->mapToGlobal(pos)); QAction* chosenAction = menu.exec(ui->friendList->mapToGlobal(pos));
if (chosenAction == addCircleAction) { if (chosenAction == addCircleAction) {
contactListWidget->addCircleWidget(); chatListWidget->addCircleWidget();
} else if (chosenAction == createGroupAction) { } else if (chosenAction == createGroupAction) {
core->createGroup(); core->createGroup();
} }

10
src/widget/widget.h

@ -192,8 +192,8 @@ public slots:
void onGroupPeerAudioPlaying(int groupnumber, ToxPk peerPk); void onGroupPeerAudioPlaying(int groupnumber, ToxPk peerPk);
void onGroupSendFailed(uint32_t groupnumber); void onGroupSendFailed(uint32_t groupnumber);
void onFriendTypingChanged(uint32_t friendnumber, bool isTyping); void onFriendTypingChanged(uint32_t friendnumber, bool isTyping);
void nextContact(); void nextChat();
void previousContact(); void previousChat();
void onFriendDialogShown(const Friend* f); void onFriendDialogShown(const Friend* f);
void onGroupDialogShown(Group* g); void onGroupDialogShown(Group* g);
void toggleFullscreen(); void toggleFullscreen();
@ -268,8 +268,8 @@ private:
void removeGroup(Group* g, bool fake = false); void removeGroup(Group* g, bool fake = false);
void saveWindowGeometry(); void saveWindowGeometry();
void saveSplitterGeometry(); void saveSplitterGeometry();
void cycleContacts(bool forward); void cycleChats(bool forward);
void searchContacts(); void searchChats();
void changeDisplayMode(); void changeDisplayMode();
void updateFilterText(); void updateFilterText();
FilterCriteria getFilterCriteria() const; FilterCriteria getFilterCriteria() const;
@ -322,7 +322,7 @@ private:
FilesForm* filesForm; FilesForm* filesForm;
static Widget* instance; static Widget* instance;
GenericChatroomWidget* activeChatroomWidget; GenericChatroomWidget* activeChatroomWidget;
FriendListWidget* contactListWidget; FriendListWidget* chatListWidget;
MaskablePixmapWidget* profilePicture; MaskablePixmapWidget* profilePicture;
bool notify(QObject* receiver, QEvent* event); bool notify(QObject* receiver, QEvent* event);
bool autoAwayActive = false; bool autoAwayActive = false;

22
test/core/contactid_test.cpp → test/core/chatid_test.cpp

@ -17,7 +17,7 @@
along with qTox. If not, see <http://www.gnu.org/licenses/>. along with qTox. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "src/core/contactid.h" #include "src/core/chatid.h"
#include "src/core/toxpk.h" #include "src/core/toxpk.h"
#include "src/core/toxid.h" #include "src/core/toxid.h"
#include "src/core/groupid.h" #include "src/core/groupid.h"
@ -38,7 +38,7 @@ const QString echoStr =
QStringLiteral("76518406F6A9F2217E8DC487CC783C25CC16A15EB36FF32E335A235342C48A39"); QStringLiteral("76518406F6A9F2217E8DC487CC783C25CC16A15EB36FF32E335A235342C48A39");
const QByteArray echoPk = QByteArray::fromHex(echoStr.toLatin1()); const QByteArray echoPk = QByteArray::fromHex(echoStr.toLatin1());
class TestContactId : public QObject class TestChatId : public QObject
{ {
Q_OBJECT Q_OBJECT
private slots: private slots:
@ -51,13 +51,13 @@ private slots:
void hashableTest(); void hashableTest();
}; };
void TestContactId::toStringTest() void TestChatId::toStringTest()
{ {
ToxPk pk(testPk); ToxPk pk(testPk);
QVERIFY(testStr == pk.toString()); QVERIFY(testStr == pk.toString());
} }
void TestContactId::equalTest() void TestChatId::equalTest()
{ {
ToxPk pk1(testPk); ToxPk pk1(testPk);
ToxPk pk2(testPk); ToxPk pk2(testPk);
@ -67,7 +67,7 @@ void TestContactId::equalTest()
QVERIFY(!(pk1 != pk2)); QVERIFY(!(pk1 != pk2));
} }
void TestContactId::clearTest() void TestChatId::clearTest()
{ {
ToxPk empty; ToxPk empty;
ToxPk pk(testPk); ToxPk pk(testPk);
@ -75,14 +75,14 @@ void TestContactId::clearTest()
QVERIFY(!pk.isEmpty()); QVERIFY(!pk.isEmpty());
} }
void TestContactId::copyTest() void TestChatId::copyTest()
{ {
ToxPk src(testPk); ToxPk src(testPk);
ToxPk copy = src; ToxPk copy = src;
QVERIFY(copy == src); QVERIFY(copy == src);
} }
void TestContactId::dataTest() void TestChatId::dataTest()
{ {
ToxPk pk(testPk); ToxPk pk(testPk);
QVERIFY(testPk == pk.getByteArray()); QVERIFY(testPk == pk.getByteArray());
@ -91,7 +91,7 @@ void TestContactId::dataTest()
} }
} }
void TestContactId::sizeTest() void TestChatId::sizeTest()
{ {
ToxPk pk; ToxPk pk;
GroupId id; GroupId id;
@ -99,7 +99,7 @@ void TestContactId::sizeTest()
QVERIFY(id.getSize() == GroupId::size); QVERIFY(id.getSize() == GroupId::size);
} }
void TestContactId::hashableTest() void TestChatId::hashableTest()
{ {
ToxPk pk1{testPkArray}; ToxPk pk1{testPkArray};
ToxPk pk2{testPk}; ToxPk pk2{testPk};
@ -108,5 +108,5 @@ void TestContactId::hashableTest()
QVERIFY(qHash(pk1) != qHash(pk3)); QVERIFY(qHash(pk1) != qHash(pk3));
} }
QTEST_GUILESS_MAIN(TestContactId) QTEST_GUILESS_MAIN(TestChatId)
#include "contactid_test.moc" #include "chatid_test.moc"
Loading…
Cancel
Save