Hi.

In the Signals and Slots overview, I read that

Signals and slots can take any number of arguments of any type. They are completely type safe.
Actually trying that out, however, showed that a member function with a typedeffed argument is not recognized:



Qt Code:
  1. class IndexToEnum : public QObject {
  2. Q_OBJECT
  3. ...
  4. typedef QAudio::Mode mode;
  5. signals:
  6. void modeChanged( QAudio::Mode mode );
  7. void modeChangedT( e mode );
To copy to clipboard, switch view to plain text mode 

Qt Code:
  1. IndexToEnum* e = new IndexToEnum;
  2. // works just fine:
  3. connect( e, SIGNAL( modeChanged(QAudio::Mode) ), this, SLOT( modeChanged(QAudio::Mode) ) );
  4. // triggers "No such signal ModeEnum::modeChangedT(IndexToEnum::e)"
  5. connect( e, SIGNAL( modeChangedT(IndexToEnum::e) ), this, SLOT( modeChangedT(IndexToEnum::e) ) );
To copy to clipboard, switch view to plain text mode 

Note: I was actually tweaking the audiodevices demo, where I wanted to insert an index->enum convertor between the modeBox and the AudioTest object.

Is this improper use of the signal/slot mechanism? Are there any other restrictions on the argument types?