Re: [PyQt] sip bug wrapping protected enum in ABC

2011-03-22 Thread Phil Thompson
On Tue, 22 Mar 2011 02:42:37 +, Demetrius Cassidy
dcassid...@gmail.com wrote:
 With a simple class definition like the following, it seems that SIP
tries
 to wrap SIPTransaction::States using a sip generated class, but of
course
 that class is not created for ABCs. I am using the latest SIP snapshot,
SIP
 4.12.2-snapshot-ecb3e795382e, to test this code.
 
 
 class SIPTransaction /Abstract/
 {
 public:
 ~SIPTransaction();
   virtual SIPTransaction * CreateDuplicate() const = 0;
 
 protected:
 
 enum States {
 NotStarted,
 Trying,
 Proceeding,
 Cancelling,
 Completed,
 Terminated_Success,
 Terminated_Timeout,
 Terminated_RetriesExceeded,
 Terminated_TransportError,
 Terminated_Cancelled,
 Terminated_Aborted,
 NumStates
 };
 
  virtual void SetTerminated(States newState);
 };
 
 
 Offending generated code:
 
 static sipEnumMemberDef enummembers_SIPTransaction[] = {
 {sipName_Cancelling, sipSIPTransaction::Cancelling, 241},
 {sipName_Completed, sipSIPTransaction::Completed, 241},
 {sipName_NotStarted, sipSIPTransaction::NotStarted, 241},
 {sipName_NumStates, sipSIPTransaction::NumStates, 241},
 {sipName_Proceeding, sipSIPTransaction::Proceeding, 241},
 {sipName_Terminated_Aborted, sipSIPTransaction::Terminated_Aborted,
241},
 {sipName_Terminated_Cancelled, sipSIPTransaction::Terminated_Cancelled,
 241},
 {sipName_Terminated_RetriesExceeded,
 sipSIPTransaction::Terminated_RetriesExceeded, 241},
 {sipName_Terminated_Success, sipSIPTransaction::Terminated_Success,
241},
 {sipName_Terminated_Timeout, sipSIPTransaction::Terminated_Timeout,
241},
 {sipName_Terminated_TransportError,
 sipSIPTransaction::Terminated_TransportError, 241},
 {sipName_Trying, sipSIPTransaction::Trying, 241},
 };
 
 Of course, commenting out the code under protected stops it from being
 generated, and causing compiler errors.

Fixed, thanks.

Phil
___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt


[PyQt] sip bug wrapping protected enum in ABC

2011-03-21 Thread Demetrius Cassidy
With a simple class definition like the following, it seems that SIP tries
to wrap SIPTransaction::States using a sip generated class, but of course
that class is not created for ABCs. I am using the latest SIP snapshot, SIP
4.12.2-snapshot-ecb3e795382e, to test this code.


class SIPTransaction /Abstract/
{
public:
~SIPTransaction();
  virtual SIPTransaction * CreateDuplicate() const = 0;

protected:

enum States {
NotStarted,
Trying,
Proceeding,
Cancelling,
Completed,
Terminated_Success,
Terminated_Timeout,
Terminated_RetriesExceeded,
Terminated_TransportError,
Terminated_Cancelled,
Terminated_Aborted,
NumStates
};

 virtual void SetTerminated(States newState);
};


Offending generated code:

static sipEnumMemberDef enummembers_SIPTransaction[] = {
{sipName_Cancelling, sipSIPTransaction::Cancelling, 241},
{sipName_Completed, sipSIPTransaction::Completed, 241},
{sipName_NotStarted, sipSIPTransaction::NotStarted, 241},
{sipName_NumStates, sipSIPTransaction::NumStates, 241},
{sipName_Proceeding, sipSIPTransaction::Proceeding, 241},
{sipName_Terminated_Aborted, sipSIPTransaction::Terminated_Aborted, 241},
{sipName_Terminated_Cancelled, sipSIPTransaction::Terminated_Cancelled,
241},
{sipName_Terminated_RetriesExceeded,
sipSIPTransaction::Terminated_RetriesExceeded, 241},
{sipName_Terminated_Success, sipSIPTransaction::Terminated_Success, 241},
{sipName_Terminated_Timeout, sipSIPTransaction::Terminated_Timeout, 241},
{sipName_Terminated_TransportError,
sipSIPTransaction::Terminated_TransportError, 241},
{sipName_Trying, sipSIPTransaction::Trying, 241},
};

Of course, commenting out the code under protected stops it from being
generated, and causing compiler errors.
___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt