From e34ed72ff7845ea39ab54062bed58f7e0c6faadd Mon Sep 17 00:00:00 2001 From: csoler Date: Thu, 18 Feb 2021 22:33:19 +0100 Subject: [PATCH] another try to fix that damn bug --- .../src/gui/Circles/CreateCircleDialog.cpp | 26 ++++++++++++++++--- .../src/gui/Circles/CreateCircleDialog.h | 5 +++- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/retroshare-gui/src/gui/Circles/CreateCircleDialog.cpp b/retroshare-gui/src/gui/Circles/CreateCircleDialog.cpp index 5abcd43ae..b86d5c6f8 100644 --- a/retroshare-gui/src/gui/Circles/CreateCircleDialog.cpp +++ b/retroshare-gui/src/gui/Circles/CreateCircleDialog.cpp @@ -123,22 +123,40 @@ CreateCircleDialog::CreateCircleDialog() CreateCircleDialog::~CreateCircleDialog() { } -void CreateCircleDialog::closeEvent(QCloseEvent *e) + +bool CreateCircleDialog::tryClose() { if(mIdentitiesLoading || mCircleLoading) { std::cerr << "Close() called. Identities or circle currently loading => not actually closing." << std::endl; mCloseRequested = true; - e->ignore(); - return; + return false; } else { std::cerr << "Close() called. Identities not currently loading => closing." << std::endl; - QDialog::closeEvent(e); + return true; } } +void CreateCircleDialog::accept() +{ + if(tryClose()) + QDialog::accept(); +} +void CreateCircleDialog::reject() +{ + if(tryClose()) + QDialog::reject(); +} + +void CreateCircleDialog::keyPressEvent(QKeyEvent *e) +{ + if(e->key() != Qt::Key_Escape) + QDialog::keyPressEvent(e); +} + + void CreateCircleDialog::editExistingId(const RsGxsGroupId &circleId, const bool &clearList /*= true*/,bool readonly) { /* load this circle */ diff --git a/retroshare-gui/src/gui/Circles/CreateCircleDialog.h b/retroshare-gui/src/gui/Circles/CreateCircleDialog.h index 33fd3537b..fbbaacb2c 100644 --- a/retroshare-gui/src/gui/Circles/CreateCircleDialog.h +++ b/retroshare-gui/src/gui/Circles/CreateCircleDialog.h @@ -62,8 +62,11 @@ private slots: void MembershipListCustomPopupMenu( QPoint point); protected: - virtual void closeEvent(QCloseEvent *) override; + virtual void keyPressEvent(QKeyEvent *e) override; + virtual void accept() override; + virtual void reject() override; + bool tryClose(); private: void updateCircleGUI();