From 833a9f59d3b7b6317b1a4d36f613a2369770aae3 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Tue, 12 Jun 2012 17:28:58 +0200 Subject: [PATCH] Don't crash when moving the mouse after hitting Cancel in the Share widget --- src/SocialWidget.cpp | 11 ++++++++++- src/SocialWidget.h | 4 ++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/SocialWidget.cpp b/src/SocialWidget.cpp index 65aa651fe..a1b6a978b 100644 --- a/src/SocialWidget.cpp +++ b/src/SocialWidget.cpp @@ -61,7 +61,7 @@ SocialWidget::SocialWidget( QWidget* parent ) m_parent->installEventFilter( this ); connect( ui->buttonBox, SIGNAL( accepted() ), SLOT( accept() ) ); - connect( ui->buttonBox, SIGNAL( rejected() ), SLOT( deleteLater() ) ); + connect( ui->buttonBox, SIGNAL( rejected() ), SLOT( close() ) ); connect( ui->textEdit, SIGNAL( textChanged() ), SLOT( onChanged() ) ); connect( ui->facebookButton, SIGNAL( clicked( bool ) ), SLOT( onChanged() ) ); connect( ui->twitterButton, SIGNAL( clicked( bool ) ), SLOT( onChanged() ) ); @@ -89,6 +89,7 @@ SocialWidget::setOpacity( qreal opacity ) if ( m_opacity == 0.00 && !isHidden() ) { QWidget::hide(); + emit hidden(); } else if ( m_opacity > 0.00 && isHidden() ) { @@ -254,6 +255,14 @@ SocialWidget::accept() } +void +SocialWidget::close() +{ + hide(); + connect( this, SIGNAL( hidden() ), this, SLOT( deleteLater() ) ); +} + + unsigned int SocialWidget::charsAvailable() const { diff --git a/src/SocialWidget.h b/src/SocialWidget.h index 0fddf9a54..ec4230d5b 100644 --- a/src/SocialWidget.h +++ b/src/SocialWidget.h @@ -50,6 +50,9 @@ public: bool shown() const; +signals: + void hidden(); + public slots: void show( int timeoutSecs = 0 ); void hide(); @@ -65,6 +68,7 @@ private slots: void onShortLinkReady( const QUrl& longUrl, const QUrl& shortUrl, const QVariant& callbackObj ); void onGeometryUpdate(); + void close(); private: unsigned int charsAvailable() const;