Some memory usage improvements to daemon.
[jenirok] / src / daemon / calllistener.cpp
index 1237b7c..cbeb837 100644 (file)
@@ -65,7 +65,6 @@ void CallListener::begin()
                        SLOT(callTerminate()));
 
     contactManager_ = new ContactManager;
-    connectionManager_ = new ConnectionManager;
 
     eniro_ = new Eniro(Eniro::stringToSite(Settings::instance()->get("site")));
 
@@ -132,7 +131,15 @@ void CallListener::search(Eniro::SearchDetails const& details)
     {
         showResult(tr("Searching..."));
         retries_ = 0;
-        currentSearch_ = details;
+        currentSearch_ = details.query;
+
+        if(connectionManager_)
+        {
+            delete connectionManager_;
+            connectionManager_ = 0;
+        }
+
+        connectionManager_ = new ConnectionManager;
 
         if(!connectionManager_->isConnected())
         {
@@ -153,8 +160,6 @@ void CallListener::requestFinished(QVector <Eniro::Result> const& results,
                                    Eniro::SearchDetails const& details,
                                    bool error)
 {
-    qDebug() << "Found: " << results.size();
-
     // If box is not visible, the call must have been terminated already
     if(!box_->isVisible())
     {
@@ -170,7 +175,7 @@ void CallListener::requestFinished(QVector <Eniro::Result> const& results,
         if(retries_ < NUMBER_OF_RETRIES && retries_ >= 0)
         {
             retries_++;
-            eniro_->search(currentSearch_);
+            eniro_->search(Eniro::SearchDetails(currentSearch_));
             return;
         }
         else
@@ -191,6 +196,7 @@ void CallListener::requestFinished(QVector <Eniro::Result> const& results,
     }
 
     retries_ = -1;
+    currentSearch_ = "";
 
     if(closeConnection_)
     {
@@ -198,7 +204,8 @@ void CallListener::requestFinished(QVector <Eniro::Result> const& results,
         closeConnection_ = false;
     }
 
-    timedMessage_ = message;
+    delete connectionManager_;
+    connectionManager_ = 0;
 
     showResult(message);
 
@@ -231,6 +238,7 @@ void CallListener::showResult(QString const& text)
     {
         box_->hide();
     }
+
     box_->show();
 }
 
@@ -266,11 +274,14 @@ void CallListener::callTerminate()
         box_->hide();
     }
 
-    if(closeConnection_)
+    if(closeConnection_ && connectionManager_)
     {
         connectionManager_->disconnect();
         closeConnection_ = false;
     }
+
+    delete connectionManager_;
+    connectionManager_ = 0;
 }
 
 void CallListener::showDelayedResult(QString const& text, int delay)