1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

refactor(group): use displayedNameChanged signal

This commit is contained in:
sudden6 2018-03-04 19:44:59 +01:00
parent 3f00e85486
commit 0d74134dc1
No known key found for this signature in database
GPG Key ID: 279509B499E032B9
10 changed files with 25 additions and 23 deletions

View File

@ -35,6 +35,9 @@ public:
virtual void setEventFlag(bool flag) = 0; virtual void setEventFlag(bool flag) = 0;
virtual bool getEventFlag() const = 0; virtual bool getEventFlag() const = 0;
signals:
void displayedNameChanged(const QString& newName);
}; };
#endif // CONTACT_H #endif // CONTACT_H

View File

@ -52,7 +52,6 @@ public:
Status getStatus() const; Status getStatus() const;
signals: signals:
void displayedNameChanged(const QString& newName);
void nameChanged(uint32_t friendId, const QString& name); void nameChanged(uint32_t friendId, const QString& name);
void aliasChanged(uint32_t friendId, QString alias); void aliasChanged(uint32_t friendId, QString alias);
void statusChanged(uint32_t friendId, Status status); void statusChanged(uint32_t friendId, Status status);

View File

@ -24,9 +24,7 @@
#include "src/persistence/settings.h" #include "src/persistence/settings.h"
#include "src/widget/form/groupchatform.h" #include "src/widget/form/groupchatform.h"
#include "src/widget/groupwidget.h" #include "src/widget/groupwidget.h"
#include "src/widget/gui.h"
#include <QDebug> #include <QDebug>
#include <QTimer>
static const int MAX_GROUP_TITLE_LENGTH = 128; static const int MAX_GROUP_TITLE_LENGTH = 128;
@ -64,17 +62,21 @@ void Group::updatePeer(int peerId, QString name)
void Group::setName(const QString& newTitle) void Group::setName(const QString& newTitle)
{ {
if (!newTitle.isEmpty() && title != newTitle) { const QString shortTitle = newTitle.left(MAX_GROUP_TITLE_LENGTH);
title = newTitle.left(MAX_GROUP_TITLE_LENGTH); if (!shortTitle.isEmpty() && title != shortTitle) {
title = shortTitle;
emit displayedNameChanged(title);
emit titleChangedByUser(groupId, title); emit titleChangedByUser(groupId, title);
emit titleChanged(groupId, selfName, title); emit titleChanged(groupId, selfName, title);
} }
} }
void Group::onTitleChanged(const QString& author, const QString& newTitle) void Group::setTitle(const QString& author, const QString& newTitle)
{ {
if (!newTitle.isEmpty() && title != newTitle) { const QString shortTitle = newTitle.left(MAX_GROUP_TITLE_LENGTH);
title = newTitle.left(MAX_GROUP_TITLE_LENGTH); if (!shortTitle.isEmpty() && title != shortTitle) {
title = shortTitle;
emit displayedNameChanged(title);
emit titleChanged(groupId, author, title); emit titleChanged(groupId, author, title);
} }
} }

View File

@ -27,8 +27,6 @@
#define RETRY_PEER_INFO_INTERVAL 500 #define RETRY_PEER_INFO_INTERVAL 500
class Friend;
class GroupChatForm;
class ToxPk; class ToxPk;
class Group : public Contact class Group : public Contact
@ -52,7 +50,7 @@ public:
void updatePeer(int peerId, QString newName); void updatePeer(int peerId, QString newName);
void setName(const QString& newTitle) override; void setName(const QString& newTitle) override;
void onTitleChanged(const QString& author, const QString& newTitle); void setTitle(const QString& author, const QString& newTitle);
QString getName() const; QString getName() const;
QString getDisplayedName() const override; QString getDisplayedName() const override;

View File

@ -118,7 +118,8 @@ QString secondsToDHMS(quint32 duration)
ChatForm::ChatForm(Friend* chatFriend, History* history) ChatForm::ChatForm(Friend* chatFriend, History* history)
: f(chatFriend) : GenericChatForm(chatFriend)
, f(chatFriend)
, history{history} , history{history}
, isTyping{false} , isTyping{false}
, lastCallIsVideo{false} , lastCallIsVideo{false}
@ -194,8 +195,6 @@ ChatForm::ChatForm(Friend* chatFriend, History* history)
}); });
// reflect name changes in the header // reflect name changes in the header
// TODO(sudden6): check if this creates a cycle when the alias is changed
connect(f, &Friend::displayedNameChanged, this, &ChatForm::setName);
connect(headWidget, &ChatFormHeader::nameChanged, this, [=](const QString& newName) { connect(headWidget, &ChatFormHeader::nameChanged, this, [=](const QString& newName) {
f->setAlias(newName); f->setAlias(newName);
}); });

View File

@ -129,7 +129,7 @@ QPushButton* createButton(const QString& name, T* self, Fun onClickSlot)
} }
GenericChatForm::GenericChatForm(QWidget* parent) GenericChatForm::GenericChatForm(const Contact* contact, QWidget* parent)
: QWidget(parent, Qt::Window) : QWidget(parent, Qt::Window)
, audioInputFlag(false) , audioInputFlag(false)
, audioOutputFlag(false) , audioOutputFlag(false)
@ -242,6 +242,9 @@ GenericChatForm::GenericChatForm(QWidget* parent)
retranslateUi(); retranslateUi();
Translator::registerHandler(std::bind(&GenericChatForm::retranslateUi, this), this); Translator::registerHandler(std::bind(&GenericChatForm::retranslateUi, this), this);
// update header on name/title change
connect(contact, &Contact::displayedNameChanged, this, &GenericChatForm::setName);
netcam = nullptr; netcam = nullptr;
} }

View File

@ -35,6 +35,7 @@
class ChatFormHeader; class ChatFormHeader;
class ChatLog; class ChatLog;
class ChatTextEdit; class ChatTextEdit;
class Contact;
class ContentLayout; class ContentLayout;
class CroppingLabel; class CroppingLabel;
class FlyoutOverlayWidget; class FlyoutOverlayWidget;
@ -57,7 +58,7 @@ class GenericChatForm : public QWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit GenericChatForm(QWidget* parent = nullptr); explicit GenericChatForm(const Contact* contact, QWidget* parent = nullptr);
~GenericChatForm() override; ~GenericChatForm() override;
void setName(const QString& newName); void setName(const QString& newName);

View File

@ -73,7 +73,8 @@ QString editName(const QString& name)
*/ */
GroupChatForm::GroupChatForm(Group* chatGroup) GroupChatForm::GroupChatForm(Group* chatGroup)
: group(chatGroup) : GenericChatForm (chatGroup)
, group(chatGroup)
, inCall(false) , inCall(false)
{ {
nusersLabel = new QLabel(); nusersLabel = new QLabel();
@ -114,9 +115,7 @@ GroupChatForm::GroupChatForm(Group* chatGroup)
connect(headWidget, &ChatFormHeader::callTriggered, this, &GroupChatForm::onCallClicked); connect(headWidget, &ChatFormHeader::callTriggered, this, &GroupChatForm::onCallClicked);
connect(headWidget, &ChatFormHeader::micMuteToggle, this, &GroupChatForm::onMicMuteToggle); connect(headWidget, &ChatFormHeader::micMuteToggle, this, &GroupChatForm::onMicMuteToggle);
connect(headWidget, &ChatFormHeader::volMuteToggle, this, &GroupChatForm::onVolMuteToggle); connect(headWidget, &ChatFormHeader::volMuteToggle, this, &GroupChatForm::onVolMuteToggle);
connect(headWidget, &ChatFormHeader::nameChanged, this, [=](const QString& newName) { connect(headWidget, &ChatFormHeader::nameChanged, chatGroup, &Group::setName);
chatGroup->setName(newName);
});
connect(group, &Group::userListChanged, this, &GroupChatForm::onUserListChanged); connect(group, &Group::userListChanged, this, &GroupChatForm::onUserListChanged);
connect(group, &Group::titleChanged, this, &GroupChatForm::onTitleChanged); connect(group, &Group::titleChanged, this, &GroupChatForm::onTitleChanged);
connect(&Settings::getInstance(), &Settings::blackListChanged, this, &GroupChatForm::updateUserNames); connect(&Settings::getInstance(), &Settings::blackListChanged, this, &GroupChatForm::updateUserNames);
@ -182,7 +181,6 @@ void GroupChatForm::onUserListChanged()
void GroupChatForm::onTitleChanged(uint32_t groupId, const QString& author, const QString& title) void GroupChatForm::onTitleChanged(uint32_t groupId, const QString& author, const QString& title)
{ {
Q_UNUSED(groupId); Q_UNUSED(groupId);
setName(title);
if (author.isEmpty()) { if (author.isEmpty()) {
return; return;
} }

View File

@ -385,7 +385,6 @@ void FriendListWidget::searchChatrooms(const QString& searchString, bool hideOnl
void FriendListWidget::renameGroupWidget(GroupWidget* groupWidget, const QString& newName) void FriendListWidget::renameGroupWidget(GroupWidget* groupWidget, const QString& newName)
{ {
groupLayout.removeSortedWidget(groupWidget); groupLayout.removeSortedWidget(groupWidget);
groupWidget->setName(newName);
groupLayout.addSortedWidget(groupWidget); groupLayout.addSortedWidget(groupWidget);
} }

View File

@ -1823,7 +1823,7 @@ void Widget::onGroupTitleChanged(int groupnumber, const QString& author, const Q
GUI::setWindowTitle(title); GUI::setWindowTitle(title);
} }
g->onTitleChanged(author, title); g->setTitle(author, title);
FilterCriteria filter = getFilterCriteria(); FilterCriteria filter = getFilterCriteria();
widget->searchName(ui->searchContactText->text(), filterGroups(filter)); widget->searchName(ui->searchContactText->text(), filterGroups(filter));
} }