[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    playground/sysadmin/muon/src
From:       Jonathan Michael Thomas <echidnaman () kubuntu ! org>
Date:       2010-06-30 21:51:28
Message-ID: 20100630220039.A1E3BAC8E2 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1144819 by jmthomas:

Disconnect the "preview changes" signal when the button changes to "go back", and \
vice versa. Fixes a bug where going to and from the preview widget would \
progressively take more and more time.


 M  +6 -4      MainWindow.cpp  


--- trunk/playground/sysadmin/muon/src/MainWindow.cpp #1144818:1144819
@@ -403,27 +403,29 @@
 
 void MainWindow::previewChanges()
 {
-    if (!m_reviewWidget) {
         m_reviewWidget = new ReviewWidget(m_stack);
         connect(this, SIGNAL(backendReady(QApt::Backend*)),
                 m_reviewWidget, SLOT(setBackend(QApt::Backend*)));
         m_reviewWidget->setBackend(m_backend);
         m_stack->addWidget(m_reviewWidget);
-    }
 
     m_stack->setCurrentWidget(m_reviewWidget);
 
     m_previewAction->setIcon(KIcon("go-previous"));
     m_previewAction->setText(i18nc("@action:intoolbar Return from the preview page", \
"Back")); +    disconnect(m_previewAction, SIGNAL(triggered()), this, \
                SLOT(previewChanges()));
     connect(m_previewAction, SIGNAL(triggered()), this, SLOT(returnFromPreview()));
 }
 
 void MainWindow::returnFromPreview()
 {
     m_stack->setCurrentWidget(m_mainWidget);
+    m_reviewWidget->deleteLater();
+    m_reviewWidget = 0;
 
     m_previewAction->setIcon(KIcon("document-preview-archive"));
     m_previewAction->setText(i18nc("@action", "Preview Changes"));
+    disconnect(m_previewAction, SIGNAL(triggered()), this, \
                SLOT(returnFromPreview()));
     connect(m_previewAction, SIGNAL(triggered()), this, SLOT(previewChanges()));
     // We may not have anything to preview; check.
     reloadActions(); 
@@ -470,8 +472,8 @@
     reloadActions();
 
     // No need to keep these around in memory.
-    delete m_downloadWidget;
-    delete m_commitWidget;
+    m_downloadWidget->deleteLater();
+    m_commitWidget->deleteLater();
     m_downloadWidget = 0;
     m_commitWidget = 0;
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic