title: Slot not receiving Signal in QT application
body: <p>I have a bit of a strange situation wherein I have a worker thread doing it's thing and then emitting a signal to callback the GUI thread to close a dialog box. Can someone please explain why this works:</p>
  
  <p>WorkerThread:</p>
  
  <pre><code>[Header]
  signals:
      void writeComplete(void);
  
  [Source]
  void startWorkerThread()
  {
      // do some stuff in boost::thread
      emit writeComplete();
  }
  </code></pre>
  
  <p>MainWindow subclass:</p>
  
  <pre><code>burnDialog = new QProgressDialog("Writing to disc", "", 0, 0);
  burnDialog -&gt;setCancelButton(0);
  QWidget::connect( discHandler.get(), SIGNAL(writeComplete()), burnDialog, SLOT(close()) );
  QWidget::connect( discHandler.get(), SIGNAL(writeComplete()), this, SLOT(close()) );
  burnDialog-&gt;open();
  discHandler-&gt;startWorkerThread();
  </code></pre>
  
  <p>but this doesn't:</p>
  
  <p>MainWindow subclass:
      [Header]
      public slots:
          void closeWithDialog(void);</p>
  
  <pre><code>[Source]
  burnDialog = new QProgressDialog("Writing to disc", "", 0, 0);
  QWidget::connect( discHandler.get(), SIGNAL(writeComplete()), this, SLOT(closeWithDialog()) );
  burnDialog -&gt;setCancelButton(0);
  burnDialog-&gt;open();
  discHandler-&gt;startWorkerThread();
  
  void closeWithDialog()
  {
      burnDialog-&gt;close();
      close();
  }
  </code></pre>