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

refactor: Use unique ptr for call confirm widget

This commit is contained in:
Diadlo 2017-10-27 20:26:45 +03:00
parent c588fbd74c
commit 7b893346f0
No known key found for this signature in database
GPG Key ID: 5AF9F2E29107C727
2 changed files with 8 additions and 13 deletions

View File

@ -113,11 +113,6 @@ ChatFormHeader::ChatFormHeader(QWidget* parent)
Translator::registerHandler(std::bind(&ChatFormHeader::retranslateUi, this), this); Translator::registerHandler(std::bind(&ChatFormHeader::retranslateUi, this), this);
} }
ChatFormHeader::~ChatFormHeader()
{
delete callConfirm;
}
void ChatFormHeader::setName(const QString& newName) void ChatFormHeader::setName(const QString& newName)
{ {
nameLabel->setText(newName); nameLabel->setText(newName);
@ -172,18 +167,18 @@ void ChatFormHeader::showOutgoingCall(bool video)
void ChatFormHeader::showCallConfirm(bool video) void ChatFormHeader::showCallConfirm(bool video)
{ {
callConfirm = new CallConfirmWidget(video ? videoButton : callButton); QWidget* btn = video ? videoButton : callButton;
callConfirm = std::unique_ptr<CallConfirmWidget>(new CallConfirmWidget(btn));
callConfirm->show(); callConfirm->show();
CallConfirmWidget* confirmData = callConfirm.data(); connect(callConfirm.get(), &CallConfirmWidget::accepted, this, [this, video]{
connect(confirmData, &CallConfirmWidget::accepted, this, [this, video]{
emit callAccepted(video); emit callAccepted(video);
}); });
connect(confirmData, &CallConfirmWidget::rejected, this, &ChatFormHeader::callRejected); connect(callConfirm.get(), &CallConfirmWidget::rejected, this, &ChatFormHeader::callRejected);
} }
void ChatFormHeader::removeCallConfirm() void ChatFormHeader::removeCallConfirm()
{ {
delete callConfirm; callConfirm.reset(nullptr);
} }
void ChatFormHeader::updateCallButtons(bool online, bool audio, bool video) void ChatFormHeader::updateCallButtons(bool online, bool audio, bool video)

View File

@ -20,9 +20,10 @@
#ifndef CHAT_FORM_HEADER #ifndef CHAT_FORM_HEADER
#define CHAT_FORM_HEADER #define CHAT_FORM_HEADER
#include <QPointer>
#include <QWidget> #include <QWidget>
#include <memory>
class MaskablePixmapWidget; class MaskablePixmapWidget;
class QVBoxLayout; class QVBoxLayout;
class CroppingLabel; class CroppingLabel;
@ -42,7 +43,6 @@ public:
}; };
ChatFormHeader(QWidget* parent = nullptr); ChatFormHeader(QWidget* parent = nullptr);
~ChatFormHeader() override;
void setName(const QString& newName); void setName(const QString& newName);
void setMode(Mode mode); void setMode(Mode mode);
@ -90,7 +90,7 @@ private:
QToolButton* volButton; QToolButton* volButton;
QToolButton* micButton; QToolButton* micButton;
QPointer<CallConfirmWidget> callConfirm; std::unique_ptr<CallConfirmWidget> callConfirm;
}; };
#endif // CHAT_FORM_HEADER #endif // CHAT_FORM_HEADER