videocollection/videocollectionview/tsrc/testvideolistselectiondialog/inc/videolistselectiondialogtester.h
changeset 62 0e1e938beb1a
parent 46 adbe7d5ba2f5
child 66 adb51f74b890
--- a/videocollection/videocollectionview/tsrc/testvideolistselectiondialog/inc/videolistselectiondialogtester.h	Thu Sep 02 20:28:16 2010 +0300
+++ b/videocollection/videocollectionview/tsrc/testvideolistselectiondialog/inc/videolistselectiondialogtester.h	Fri Sep 17 08:30:05 2010 +0300
@@ -43,18 +43,18 @@
 public:
     
     VideoListSelectionDialogTesterHelper(VideoListSelectionDialog *testable = 0) 
-    : mTestable(testable) {};
+    : mTestable(testable), mSignalsConnected(false) {};
     
     ~VideoListSelectionDialogTesterHelper() {};
     
     bool connectSignals()
     {
-        if(!mTestable)
+        if(!mTestable || mSignalsConnected)
         {
             return false;
         }
-        // disconnect first to make sure there signals are not connected twice
-        disconnectSignals();
+        mSignalsConnected = true;
+
         if(!connect(this, SIGNAL(markAllSignal(int)), mTestable, SLOT(markAllStateChangedSlot(int))))
         {
             return false;
@@ -91,8 +91,9 @@
     
     void disconnectSignals()
     {
-        if(mTestable)
+        if(mTestable && mSignalsConnected)
         {
+            mSignalsConnected = false;
             disconnect(this, SIGNAL(markAllSignal(int)), mTestable, SLOT(markAllStateChangedSlot(int)));
             disconnect(this, SIGNAL(selectionChangedSignal(const QItemSelection&, const QItemSelection&)), 
                             mTestable, SLOT(selectionChangedSlot(const QItemSelection&, const QItemSelection&)));
@@ -142,6 +143,11 @@
     }
     
     VideoListSelectionDialog *mTestable;
+    
+    /**
+     * flag indicating if signals are connected. 
+     */
+    bool mSignalsConnected;    
 };
 
 #endif