The model is two classes, base and derived, and both have corresponding interfaces, Ibase and Iderived. When I go to implement the derived class, I am getting ambiguous access errors, I am wondering if the mod compiler is messing me up. Here is the base interface (ICSData):

Qt Code:
  1. __interface ICSData
  2. {
  3. virtual CSBase* state() = 0;
  4.  
  5. virtual bool Load() = 0;
  6. virtual bool Unload() = 0;
  7. virtual bool Connect() = 0;
  8. virtual bool Disconnect() = 0;
  9.  
  10. virtual int GetBatteryLevel() = 0;
  11. virtual bool AcquireImage(long itemId, const QString& filepath) = 0;
  12.  
  13. virtual void onCameraDisconnected(long srcID) = 0;
  14. virtual void onCameraConnected(long srcID) = 0;
  15. virtual void onBatteryLevelChange(int percentage) = 0;
  16. virtual void onImageCaptured(long itemId, QString name, QDateTime captureTime) = 0;
  17. virtual void onProcessReset(long itemId, int maximum) = 0;
  18. virtual void onProcessSetValue(long itemId, int value) = 0;
  19.  
  20. virtual const QString& lastError() const = 0;
  21. virtual void setLastError(const QString& value) = 0;
  22. };
To copy to clipboard, switch view to plain text mode 

And here is the base class:

Qt Code:
  1. class CSData : public QObject, public ICSData
  2. {
  3. Q_OBJECT
  4.  
  5. public:
  6. CSData(QObject *parent);
  7. ~CSData();
  8.  
  9. CSBase* state() { return _state; }
  10. void setState(CSBase* val) { _state = val; }
  11.  
  12. CSBase* csUnloaded();
  13. CSBase* csInitialized();
  14. CSBase* csConnected();
  15. CSBase* csCaptured();
  16.  
  17. virtual void onCameraDisconnected(long srcID);
  18. virtual void onCameraConnected(long srcID);
  19. virtual void onBatteryLevelChange(int percentage);
  20. virtual void onImageCaptured(long itemId, QString name, QDateTime captureTime);
  21. virtual void onProcessReset(long itemId, int maximum);
  22. virtual void onProcessSetValue(long itemId, int value);
  23.  
  24. virtual QMessageBox::StandardButton uiRequest(const QString& prompt, const QString& detail, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton);
  25.  
  26. virtual const QString& lastError() const;
  27. virtual void setLastError(const QString& value);
  28.  
  29. signals:
  30. void cameraDisconnected(long srcID);
  31. void cameraConnected(long srcID);
  32. void batteryLevelChange(int percentage);
  33. void imageCaptured(long itemId, QString name, QDateTime captureTime);
  34. void processReset(long itemId, int maximum);
  35. void processSetValue(long itemId, int value);
  36.  
  37. protected:
  38. QString _lastError;
  39.  
  40. private:
  41. CSBase * _state;
  42.  
  43. CSUnloaded * _csUnloaded;
  44. CSInitialized * _csInitialized;
  45. CSConnected * _csConnected;
  46. CSCaptured * _csCaptured;
  47. };
To copy to clipboard, switch view to plain text mode 

These are the methods causing problems:

onCameraDisconnected
onCameraConnected
onBatteryLevelChange
onImageCaptured
onProcessReset
onProcessSetValue
uiRequest
lastError
setLastError

For the record, I MUST have the interfaces because of circular references elsewhere in the code.

Sam