X9Developers / XSN

XSN - Stakenet, the first cryptocurrency with Trustless Proof of Stake
https://stakenet.io
MIT License
93 stars 49 forks source link

Adding #include <QButtonGroup> #116

Closed hermesesus closed 6 years ago

hermesesus commented 6 years ago

XSN Qt wallet fails to build on 64bit Gentoo on Raspberry Pi 3 B+:

qt/sendcoinsdialog.cpp: In constructor ‘SendCoinsDialog::SendCoinsDialog(const PlatformStyle*, QWidget*)’:
qt/sendcoinsdialog.cpp:107:37: error: invalid use of incomplete type ‘class QButtonGroup’
     groupFee = new QButtonGroup(this);
                                     ^
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
qt/sendcoinsdialog.cpp:109:13: error: invalid use of incomplete type ‘class QButtonGroup’
     groupFee->addButton(ui->radioSmartFee, 0);
             ^~
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
qt/sendcoinsdialog.cpp:109:15: error: invalid use of incomplete type ‘class QButtonGroup’
     groupFee->addButton(ui->radioSmartFee, 0);
               ^~~~~~~~~
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
qt/sendcoinsdialog.cpp:110:13: error: invalid use of incomplete type ‘class QButtonGroup’
     groupFee->addButton(ui->radioCustomFee, 1);
             ^~
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
qt/sendcoinsdialog.cpp:110:15: error: invalid use of incomplete type ‘class QButtonGroup’
     groupFee->addButton(ui->radioCustomFee, 1);
               ^~~~~~~~~
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
qt/sendcoinsdialog.cpp:129:13: error: invalid use of incomplete type ‘class QButtonGroup’
     groupFee->setId(ui->radioSmartFee, 0);
             ^~
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
qt/sendcoinsdialog.cpp:129:15: error: invalid use of incomplete type ‘class QButtonGroup’
     groupFee->setId(ui->radioSmartFee, 0);
               ^~~~~
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
qt/sendcoinsdialog.cpp:130:13: error: invalid use of incomplete type ‘class QButtonGroup’
     groupFee->setId(ui->radioCustomFee, 1);
             ^~
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
qt/sendcoinsdialog.cpp:130:15: error: invalid use of incomplete type ‘class QButtonGroup’
     groupFee->setId(ui->radioCustomFee, 1);
               ^~~~~
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
qt/sendcoinsdialog.cpp:131:13: error: invalid use of incomplete type ‘class QButtonGroup’
     groupFee->button((int)std::max(0, std::min(1, settings.value("nFeeRadio").toInt())))->setChecked(true);
             ^~
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
qt/sendcoinsdialog.cpp:131:15: error: invalid use of incomplete type ‘class QButtonGroup’
     groupFee->button((int)std::max(0, std::min(1, settings.value("nFeeRadio").toInt())))->setChecked(true);
               ^~~~~~
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
qt/sendcoinsdialog.cpp: In member function ‘void SendCoinsDialog::setModel(WalletModel*)’:
qt/sendcoinsdialog.cpp:182:93: error: no matching function for call to ‘SendCoinsDialog::connect(QButtonGroup*&, const char*, SendCoinsDialog*, const char*)’
         connect(groupFee, SIGNAL(buttonClicked(int)), this, SLOT(updateFeeSectionControls()));
                                                                                             ^
In file included from /usr/include/qt5/QtCore/qiodevice.h:45:0,
                 from /usr/include/qt5/QtCore/qdatastream.h:44,
                 from /usr/include/qt5/QtGui/qregion.h:49,
                 from /usr/include/qt5/QtGui/qevent.h:45,
                 from /usr/include/qt5/QtGui/QList:1,
                 from ./qt/paymentrequestplus.h:19,
                 from ./qt/walletmodel.h:13,
                 from ./qt/sendcoinsdialog.h:8,
                 from qt/sendcoinsdialog.cpp:5:
/usr/include/qt5/QtCore/qobject.h:208:36: note: candidate: static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)
     static QMetaObject::Connection connect(const QObject *sender, const char *signal,
                                    ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:208:36: note:   no known conversion for argument 1 from ‘QButtonGroup*’ to ‘const QObject*’
/usr/include/qt5/QtCore/qobject.h:211:36: note: candidate: static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)
     static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
                                    ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:211:36: note:   no known conversion for argument 1 from ‘QButtonGroup*’ to ‘const QObject*’
/usr/include/qt5/QtCore/qobject.h:463:32: note: candidate: QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const
 inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal,
                                ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:463:32: note:   no known conversion for argument 1 from ‘QButtonGroup*’ to ‘const QObject*’
/usr/include/qt5/QtCore/qobject.h:228:43: note: candidate: template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)
     static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
                                           ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:228:43: note:   template argument deduction/substitution failed:
/usr/include/qt5/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
qt/sendcoinsdialog.cpp:182:93:   required from here
/usr/include/qt5/QtCore/qobject.h:228:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
/usr/include/qt5/QtCore/qobject.h:260:13: note: candidate: template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:260:13: note:   template argument deduction/substitution failed:
qt/sendcoinsdialog.cpp:182:93: note:   candidate expects 3 arguments, 4 provided
         connect(groupFee, SIGNAL(buttonClicked(int)), this, SLOT(updateFeeSectionControls()));
                                                                                             ^
In file included from /usr/include/qt5/QtCore/qiodevice.h:45:0,
                 from /usr/include/qt5/QtCore/qdatastream.h:44,
                 from /usr/include/qt5/QtGui/qregion.h:49,
                 from /usr/include/qt5/QtGui/qevent.h:45,
                 from /usr/include/qt5/QtGui/QList:1,
                 from ./qt/paymentrequestplus.h:19,
                 from ./qt/walletmodel.h:13,
                 from ./qt/sendcoinsdialog.h:8,
                 from qt/sendcoinsdialog.cpp:5:
/usr/include/qt5/QtCore/qobject.h:269:13: note: candidate: template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:269:13: note:   template argument deduction/substitution failed:
/usr/include/qt5/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
qt/sendcoinsdialog.cpp:182:93:   required from here
/usr/include/qt5/QtCore/qobject.h:269:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’
/usr/include/qt5/QtCore/qobject.h:300:13: note: candidate: template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:300:13: note:   template argument deduction/substitution failed:
qt/sendcoinsdialog.cpp:182:93: note:   candidate expects 3 arguments, 4 provided
         connect(groupFee, SIGNAL(buttonClicked(int)), this, SLOT(updateFeeSectionControls()));
                                                                                             ^
In file included from /usr/include/qt5/QtCore/qiodevice.h:45:0,
                 from /usr/include/qt5/QtCore/qdatastream.h:44,
                 from /usr/include/qt5/QtGui/qregion.h:49,
                 from /usr/include/qt5/QtGui/qevent.h:45,
                 from /usr/include/qt5/QtGui/QList:1,
                 from ./qt/paymentrequestplus.h:19,
                 from ./qt/walletmodel.h:13,
                 from ./qt/sendcoinsdialog.h:8,
                 from qt/sendcoinsdialog.cpp:5:
/usr/include/qt5/QtCore/qobject.h:308:13: note: candidate: template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:308:13: note:   template argument deduction/substitution failed:
/usr/include/qt5/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
qt/sendcoinsdialog.cpp:182:93:   required from here
/usr/include/qt5/QtCore/qobject.h:308:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
qt/sendcoinsdialog.cpp:183:92: error: no matching function for call to ‘SendCoinsDialog::connect(QButtonGroup*&, const char*, SendCoinsDialog*, const char*)’
         connect(groupFee, SIGNAL(buttonClicked(int)), this, SLOT(coinControlUpdateLabels()));
                                                                                            ^
In file included from /usr/include/qt5/QtCore/qiodevice.h:45:0,
                 from /usr/include/qt5/QtCore/qdatastream.h:44,
                 from /usr/include/qt5/QtGui/qregion.h:49,
                 from /usr/include/qt5/QtGui/qevent.h:45,
                 from /usr/include/qt5/QtGui/QList:1,
                 from ./qt/paymentrequestplus.h:19,
                 from ./qt/walletmodel.h:13,
                 from ./qt/sendcoinsdialog.h:8,
                 from qt/sendcoinsdialog.cpp:5:
/usr/include/qt5/QtCore/qobject.h:208:36: note: candidate: static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)
     static QMetaObject::Connection connect(const QObject *sender, const char *signal,
                                    ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:208:36: note:   no known conversion for argument 1 from ‘QButtonGroup*’ to ‘const QObject*’
/usr/include/qt5/QtCore/qobject.h:211:36: note: candidate: static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)
     static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
                                    ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:211:36: note:   no known conversion for argument 1 from ‘QButtonGroup*’ to ‘const QObject*’
/usr/include/qt5/QtCore/qobject.h:463:32: note: candidate: QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const
 inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal,
                                ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:463:32: note:   no known conversion for argument 1 from ‘QButtonGroup*’ to ‘const QObject*’
/usr/include/qt5/QtCore/qobject.h:228:43: note: candidate: template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)
     static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
                                           ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:228:43: note:   template argument deduction/substitution failed:
/usr/include/qt5/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
qt/sendcoinsdialog.cpp:183:92:   required from here
/usr/include/qt5/QtCore/qobject.h:228:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
/usr/include/qt5/QtCore/qobject.h:260:13: note: candidate: template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:260:13: note:   template argument deduction/substitution failed:
qt/sendcoinsdialog.cpp:183:92: note:   candidate expects 3 arguments, 4 provided
         connect(groupFee, SIGNAL(buttonClicked(int)), this, SLOT(coinControlUpdateLabels()));
                                                                                            ^
In file included from /usr/include/qt5/QtCore/qiodevice.h:45:0,
                 from /usr/include/qt5/QtCore/qdatastream.h:44,
                 from /usr/include/qt5/QtGui/qregion.h:49,
                 from /usr/include/qt5/QtGui/qevent.h:45,
                 from /usr/include/qt5/QtGui/QList:1,
                 from ./qt/paymentrequestplus.h:19,
                 from ./qt/walletmodel.h:13,
                 from ./qt/sendcoinsdialog.h:8,
                 from qt/sendcoinsdialog.cpp:5:
/usr/include/qt5/QtCore/qobject.h:269:13: note: candidate: template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:269:13: note:   template argument deduction/substitution failed:
/usr/include/qt5/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
qt/sendcoinsdialog.cpp:183:92:   required from here
/usr/include/qt5/QtCore/qobject.h:269:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’
/usr/include/qt5/QtCore/qobject.h:300:13: note: candidate: template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:300:13: note:   template argument deduction/substitution failed:
qt/sendcoinsdialog.cpp:183:92: note:   candidate expects 3 arguments, 4 provided
         connect(groupFee, SIGNAL(buttonClicked(int)), this, SLOT(coinControlUpdateLabels()));
                                                                                            ^
In file included from /usr/include/qt5/QtCore/qiodevice.h:45:0,
                 from /usr/include/qt5/QtCore/qdatastream.h:44,
                 from /usr/include/qt5/QtGui/qregion.h:49,
                 from /usr/include/qt5/QtGui/qevent.h:45,
                 from /usr/include/qt5/QtGui/QList:1,
                 from ./qt/paymentrequestplus.h:19,
                 from ./qt/walletmodel.h:13,
                 from ./qt/sendcoinsdialog.h:8,
                 from qt/sendcoinsdialog.cpp:5:
/usr/include/qt5/QtCore/qobject.h:308:13: note: candidate: template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt5/QtCore/qobject.h:308:13: note:   template argument deduction/substitution failed:
/usr/include/qt5/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
qt/sendcoinsdialog.cpp:183:92:   required from here
/usr/include/qt5/QtCore/qobject.h:308:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
qt/sendcoinsdialog.cpp: In destructor ‘virtual SendCoinsDialog::~SendCoinsDialog()’:
qt/sendcoinsdialog.cpp:221:44: error: invalid use of incomplete type ‘class QButtonGroup’
     settings.setValue("nFeeRadio", groupFee->checkedId());
                                            ^~
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
qt/sendcoinsdialog.cpp:221:46: error: invalid use of incomplete type ‘class QButtonGroup’
     settings.setValue("nFeeRadio", groupFee->checkedId());
                                              ^~~~~~~~~
In file included from qt/sendcoinsdialog.cpp:5:0:
./qt/sendcoinsdialog.h:19:7: note: forward declaration of ‘class QButtonGroup’
 class QButtonGroup;
       ^~~~~~~~~~~~
make[2]: *** [Makefile:8726: qt/libxsnqt_a-sendcoinsdialog.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/demouser/XSN-master/src'
make[1]: *** [Makefile:11308: all-recursive] Error 1
make[1]: Leaving directory '/home/demouser/XSN-master/src'
make: *** [Makefile:750: all-recursive] Error 1

QT 5.11.2-r1

Adding #include <QButtonGroup> fixed the issue.