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

refactor(widget): remove Widget singleton in ContentDialog

This commit is contained in:
jenli669 2019-06-28 22:17:27 +02:00
parent e7e6bff318
commit 6d0ae67c9d
No known key found for this signature in database
GPG Key ID: 8267F9F7C2BF7E5E
3 changed files with 13 additions and 10 deletions

View File

@ -37,10 +37,10 @@
#include "src/model/status.h" #include "src/model/status.h"
#include "src/persistence/settings.h" #include "src/persistence/settings.h"
#include "src/widget/contentlayout.h" #include "src/widget/contentlayout.h"
#include "src/widget/friendwidget.h"
#include "src/widget/groupwidget.h"
#include "src/widget/form/chatform.h" #include "src/widget/form/chatform.h"
#include "src/widget/friendlistlayout.h" #include "src/widget/friendlistlayout.h"
#include "src/widget/friendwidget.h"
#include "src/widget/groupwidget.h"
#include "src/widget/style.h" #include "src/widget/style.h"
#include "src/widget/tool/adjustingscrollarea.h" #include "src/widget/tool/adjustingscrollarea.h"
#include "src/widget/translator.h" #include "src/widget/translator.h"
@ -141,7 +141,7 @@ ContentDialog::~ContentDialog()
Translator::unregister(this); Translator::unregister(this);
} }
void ContentDialog::closeEvent(QCloseEvent *event) void ContentDialog::closeEvent(QCloseEvent* event)
{ {
emit willClose(); emit willClose();
event->accept(); event->accept();
@ -499,7 +499,7 @@ void ContentDialog::dropEvent(QDropEvent* event)
return; return;
} }
Widget::getInstance()->addFriendDialog(contact, this); emit addFriendDialog(contact, this);
ensureSplitterVisible(); ensureSplitterVisible();
} else if (group) { } else if (group) {
assert(event->mimeData()->hasFormat("groupId")); assert(event->mimeData()->hasFormat("groupId"));
@ -509,7 +509,7 @@ void ContentDialog::dropEvent(QDropEvent* event)
return; return;
} }
Widget::getInstance()->addGroupDialog(contact, this); emit addGroupDialog(contact, this);
ensureSplitterVisible(); ensureSplitterVisible();
} }
} }

View File

@ -20,12 +20,12 @@
#ifndef CONTENTDIALOG_H #ifndef CONTENTDIALOG_H
#define CONTENTDIALOG_H #define CONTENTDIALOG_H
#include "src/model/dialogs/idialogs.h"
#include "src/widget/genericchatitemlayout.h"
#include "src/widget/tool/activatedialog.h"
#include "src/model/status.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/idialogs.h"
#include "src/model/status.h"
#include "src/widget/genericchatitemlayout.h"
#include "src/widget/tool/activatedialog.h"
#include <memory> #include <memory>
@ -79,6 +79,8 @@ public:
signals: signals:
void friendDialogShown(const Friend* f); void friendDialogShown(const Friend* f);
void groupDialogShown(Group* g); void groupDialogShown(Group* g);
void addFriendDialog(Friend* frnd, ContentDialog* contentDialog);
void addGroupDialog(Group* group, ContentDialog* contentDialog);
void activated(); void activated();
void willClose(); void willClose();
@ -116,7 +118,6 @@ private:
void focusCommon(const ContactId& id, QHash<const ContactId&, GenericChatroomWidget*> list); void focusCommon(const ContactId& id, QHash<const ContactId&, GenericChatroomWidget*> list);
private: private:
QList<QLayout*> layouts; QList<QLayout*> layouts;
QSplitter* splitter; QSplitter* splitter;
FriendListLayout* friendLayout; FriendListLayout* friendLayout;

View File

@ -1820,6 +1820,8 @@ ContentDialog* Widget::createContentDialog() const
connect(core, &Core::usernameSet, contentDialog, &ContentDialog::setUsername); connect(core, &Core::usernameSet, contentDialog, &ContentDialog::setUsername);
connect(&settings, &Settings::groupchatPositionChanged, contentDialog, connect(&settings, &Settings::groupchatPositionChanged, contentDialog,
&ContentDialog::reorderLayouts); &ContentDialog::reorderLayouts);
connect(contentDialog, &ContentDialog::addFriendDialog, this, &Widget::addFriendDialog);
connect(contentDialog, &ContentDialog::addGroupDialog, this, &Widget::addGroupDialog);
#ifdef Q_OS_MAC #ifdef Q_OS_MAC
Nexus& n = Nexus::getInstance(); Nexus& n = Nexus::getInstance();