mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
refactor(chatform): move netcam ownership to ChatForm from GenericChatForm
Since now only ChatForm uses the NetCamView.
This commit is contained in:
parent
8d8e75b800
commit
600993b43a
@ -191,8 +191,6 @@ ChatForm::ChatForm(Friend* chatFriend, IChatLog& chatLog, IMessageDispatcher& me
|
|||||||
ChatForm::~ChatForm()
|
ChatForm::~ChatForm()
|
||||||
{
|
{
|
||||||
Translator::unregister(this);
|
Translator::unregister(this);
|
||||||
delete netcam;
|
|
||||||
netcam = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChatForm::setStatusMessage(const QString& newMessage)
|
void ChatForm::setStatusMessage(const QString& newMessage)
|
||||||
@ -480,18 +478,18 @@ void ChatForm::onAvatarChanged(const ToxPk& friendPk, const QPixmap& pic)
|
|||||||
headWidget->setAvatar(pic);
|
headWidget->setAvatar(pic);
|
||||||
}
|
}
|
||||||
|
|
||||||
GenericNetCamView* ChatForm::createNetcam()
|
std::unique_ptr<GenericNetCamView> ChatForm::createNetcam()
|
||||||
{
|
{
|
||||||
qDebug() << "creating netcam";
|
qDebug() << "creating netcam";
|
||||||
uint32_t friendId = f->getId();
|
uint32_t friendId = f->getId();
|
||||||
NetCamView* view = new NetCamView(f->getPublicKey(), this);
|
std::unique_ptr<NetCamView> view = std::unique_ptr<NetCamView>(new NetCamView(f->getPublicKey(), this));
|
||||||
CoreAV* av = Core::getInstance()->getAv();
|
CoreAV* av = Core::getInstance()->getAv();
|
||||||
VideoSource* source = av->getVideoSourceFromCall(friendId);
|
VideoSource* source = av->getVideoSourceFromCall(friendId);
|
||||||
view->show(source, f->getDisplayedName());
|
view->show(source, f->getDisplayedName());
|
||||||
connect(view, &GenericNetCamView::videoCallEnd, this, &ChatForm::onVideoCallTriggered);
|
connect(view.get(), &GenericNetCamView::videoCallEnd, this, &ChatForm::onVideoCallTriggered);
|
||||||
connect(view, &GenericNetCamView::volMuteToggle, this, &ChatForm::onVolMuteToggle);
|
connect(view.get(), &GenericNetCamView::volMuteToggle, this, &ChatForm::onVolMuteToggle);
|
||||||
connect(view, &GenericNetCamView::micMuteToggle, this, &ChatForm::onMicMuteToggle);
|
connect(view.get(), &GenericNetCamView::micMuteToggle, this, &ChatForm::onMicMuteToggle);
|
||||||
connect(view, &GenericNetCamView::videoPreviewToggle, view, &NetCamView::toggleVideoPreview);
|
connect(view.get(), &GenericNetCamView::videoPreviewToggle, view.get(), &NetCamView::toggleVideoPreview);
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -718,10 +716,10 @@ void ChatForm::showNetcam()
|
|||||||
netcam = createNetcam();
|
netcam = createNetcam();
|
||||||
}
|
}
|
||||||
|
|
||||||
connect(netcam, &GenericNetCamView::showMessageClicked, this,
|
connect(netcam.get(), &GenericNetCamView::showMessageClicked, this,
|
||||||
&ChatForm::onShowMessagesClicked);
|
&ChatForm::onShowMessagesClicked);
|
||||||
|
|
||||||
bodySplitter->insertWidget(0, netcam);
|
bodySplitter->insertWidget(0, netcam.get());
|
||||||
bodySplitter->setCollapsible(0, false);
|
bodySplitter->setCollapsible(0, false);
|
||||||
|
|
||||||
QSize minSize = netcam->getSurfaceMinSize();
|
QSize minSize = netcam->getSurfaceMinSize();
|
||||||
@ -744,8 +742,7 @@ void ChatForm::hideNetcam()
|
|||||||
|
|
||||||
netcam->close();
|
netcam->close();
|
||||||
netcam->hide();
|
netcam->hide();
|
||||||
delete netcam;
|
netcam.reset();
|
||||||
netcam = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChatForm::onSplitterMoved(int, int)
|
void ChatForm::onSplitterMoved(int, int)
|
||||||
|
@ -113,7 +113,7 @@ private:
|
|||||||
void hideNetcam();
|
void hideNetcam();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GenericNetCamView* createNetcam();
|
std::unique_ptr<GenericNetCamView> createNetcam();
|
||||||
void insertChatMessage(ChatMessage::Ptr msg) final;
|
void insertChatMessage(ChatMessage::Ptr msg) final;
|
||||||
void dragEnterEvent(QDragEnterEvent* ev) final;
|
void dragEnterEvent(QDragEnterEvent* ev) final;
|
||||||
void dropEvent(QDropEvent* ev) final;
|
void dropEvent(QDropEvent* ev) final;
|
||||||
@ -131,6 +131,7 @@ private:
|
|||||||
QAction* copyStatusAction;
|
QAction* copyStatusAction;
|
||||||
bool isTyping;
|
bool isTyping;
|
||||||
bool lastCallIsVideo;
|
bool lastCallIsVideo;
|
||||||
|
std::unique_ptr<GenericNetCamView> netcam;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CHATFORM_H
|
#endif // CHATFORM_H
|
||||||
|
@ -390,8 +390,6 @@ GenericChatForm::GenericChatForm(const Contact* contact, IChatLog& chatLog,
|
|||||||
auto firstChatLogIdx = (chatLogIdxRange < DEF_NUM_MSG_TO_LOAD) ? chatLog.getFirstIdx() : chatLog.getNextIdx() - DEF_NUM_MSG_TO_LOAD;
|
auto firstChatLogIdx = (chatLogIdxRange < DEF_NUM_MSG_TO_LOAD) ? chatLog.getFirstIdx() : chatLog.getNextIdx() - DEF_NUM_MSG_TO_LOAD;
|
||||||
|
|
||||||
renderMessages(firstChatLogIdx, chatLog.getNextIdx());
|
renderMessages(firstChatLogIdx, chatLog.getNextIdx());
|
||||||
|
|
||||||
netcam = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GenericChatForm::~GenericChatForm()
|
GenericChatForm::~GenericChatForm()
|
||||||
|
@ -186,7 +186,6 @@ protected:
|
|||||||
Sonnet::SpellCheckDecorator* decorator{nullptr};
|
Sonnet::SpellCheckDecorator* decorator{nullptr};
|
||||||
#endif
|
#endif
|
||||||
FlyoutOverlayWidget* fileFlyout;
|
FlyoutOverlayWidget* fileFlyout;
|
||||||
GenericNetCamView* netcam;
|
|
||||||
Widget* parent;
|
Widget* parent;
|
||||||
|
|
||||||
IChatLog& chatLog;
|
IChatLog& chatLog;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user