mirror of
https://github.com/ModOrganizer2/modorganizer-plugin_python.git
synced 2026-07-27 14:03:33 -07:00
Remove ModRepositoryBridgeWrapper since it is not needed anymore.
This commit is contained in:
@@ -379,17 +379,13 @@ BOOST_PYTHON_MODULE(mobase)
|
||||
.def("invalidationActive", bpy::pure_virtual(&IProfile::invalidationActive))
|
||||
;
|
||||
|
||||
bpy::class_<ModRepositoryBridgeWrapper, boost::noncopyable>("ModRepositoryBridge")
|
||||
.def(bpy::init<IModRepositoryBridge*>())
|
||||
.def("requestDescription", &ModRepositoryBridgeWrapper::requestDescription)
|
||||
.def("requestFiles", &ModRepositoryBridgeWrapper::requestFiles)
|
||||
.def("requestFileInfo", &ModRepositoryBridgeWrapper::requestFileInfo)
|
||||
.def("requestToggleEndorsement", &ModRepositoryBridgeWrapper::requestToggleEndorsement)
|
||||
.def("onFilesAvailable", &ModRepositoryBridgeWrapper::onFilesAvailable)
|
||||
.def("onFileInfoAvailable", &ModRepositoryBridgeWrapper::onFileInfoAvailable)
|
||||
.def("onDescriptionAvailable", &ModRepositoryBridgeWrapper::onDescriptionAvailable)
|
||||
.def("onEndorsementToggled", &ModRepositoryBridgeWrapper::onEndorsementToggled)
|
||||
.def("onRequestFailed", &ModRepositoryBridgeWrapper::onRequestFailed)
|
||||
bpy::class_<IModRepositoryBridgeWrapper, boost::noncopyable>("ModRepositoryBridge")
|
||||
.def(bpy::init<bpy::optional<QObject*>>())
|
||||
.def("requestDescription", &IModRepositoryBridge::requestDescription)
|
||||
.def("requestFiles", &IModRepositoryBridge::requestFiles)
|
||||
.def("requestFileInfo", &IModRepositoryBridge::requestFileInfo)
|
||||
.def("requestDownloadURL", &IModRepositoryBridge::requestDownloadURL)
|
||||
.def("requestToggleEndorsement", &IModRepositoryBridge::requestToggleEndorsement)
|
||||
|
||||
Q_DELEGATE(IModRepositoryBridge, QObject, "_object")
|
||||
;
|
||||
|
||||
+1
-200
@@ -31,206 +31,6 @@
|
||||
|
||||
extern MOBase::IOrganizer *s_Organizer;
|
||||
|
||||
using MOBase::ModRepositoryFileInfo;
|
||||
|
||||
/**
|
||||
* @brief Wrapper class for the bridge to a mod repository. Awkward: This may be
|
||||
* unnecessary but I didn't manage to figure out how to correctly connect python
|
||||
* code to C++ signals
|
||||
*/
|
||||
class ModRepositoryBridgeWrapper : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
ModRepositoryBridgeWrapper()
|
||||
: m_Wrapped(s_Organizer->createNexusBridge())
|
||||
{
|
||||
}
|
||||
|
||||
ModRepositoryBridgeWrapper(MOBase::IModRepositoryBridge *wrapped)
|
||||
: m_Wrapped(wrapped)
|
||||
{
|
||||
}
|
||||
|
||||
~ModRepositoryBridgeWrapper()
|
||||
{
|
||||
delete m_Wrapped;
|
||||
}
|
||||
|
||||
void requestDescription(QString gameName, int modID, QVariant userData)
|
||||
{ m_Wrapped->requestDescription(gameName, modID, userData); }
|
||||
void requestFiles(QString gameName, int modID, QVariant userData)
|
||||
{ m_Wrapped->requestFiles(gameName, modID, userData); }
|
||||
void requestFileInfo(QString gameName, int modID, int fileID, QVariant userData)
|
||||
{ m_Wrapped->requestFileInfo(gameName, modID, fileID, userData); }
|
||||
void requestToggleEndorsement(QString gameName, int modID, QString modVersion, bool endorse, QVariant userData)
|
||||
{ m_Wrapped->requestToggleEndorsement(gameName, modID, modVersion, endorse, userData); }
|
||||
|
||||
void onFilesAvailable(boost::python::object callback) {
|
||||
m_FilesAvailableHandler = callback;
|
||||
connect(m_Wrapped, SIGNAL(filesAvailable(int,QVariant,const QList<ModRepositoryFileInfo>&)),
|
||||
this, SLOT(filesAvailable(int,QVariant,const QList<ModRepositoryFileInfo>&)),
|
||||
Qt::UniqueConnection);
|
||||
}
|
||||
|
||||
void onDescriptionAvailable(boost::python::object callback) {
|
||||
m_DescriptionAvailableHandler = callback;
|
||||
connect(m_Wrapped, SIGNAL(descriptionAvailable(int,QVariant,QVariant)),
|
||||
this, SLOT(descriptionAvailable(int,QVariant,QVariant)),
|
||||
Qt::UniqueConnection);
|
||||
}
|
||||
|
||||
void onFileInfoAvailable(boost::python::object callback) {
|
||||
m_FileInfoHandler = callback;
|
||||
connect(m_Wrapped, SIGNAL(fileInfoAvailable(int,int,QVariant,QVariant)),
|
||||
this, SLOT(fileInfoAvailable(int,int,QVariant,QVariant)),
|
||||
Qt::UniqueConnection);
|
||||
}
|
||||
|
||||
void onEndorsementToggled(boost::python::object callback) {
|
||||
m_EndorsementToggledHandler = callback;
|
||||
connect(m_Wrapped, SIGNAL(endorsementToggled(int,QVariant,QVariant)),
|
||||
this, SLOT(endorsementToggled(int,QVariant,QVariant)),
|
||||
Qt::UniqueConnection);
|
||||
}
|
||||
|
||||
void onTrackingToggled(boost::python::object callback) {
|
||||
m_TrackingToggledHandler = callback;
|
||||
connect(m_Wrapped, SIGNAL(trackingToggled(int,QVariant,bool)),
|
||||
this, SLOT(trackingToggled(int,QVariant,bool)),
|
||||
Qt::UniqueConnection);
|
||||
|
||||
}
|
||||
|
||||
void onRequestFailed(boost::python::object callback) {
|
||||
m_FailedHandler = callback;
|
||||
connect(m_Wrapped, SIGNAL(requestFailed(int,int,QVariant,QString)),
|
||||
this, SLOT(requestFailed(int,int,QVariant,QString)),
|
||||
Qt::UniqueConnection);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
Q_DISABLE_COPY(ModRepositoryBridgeWrapper)
|
||||
|
||||
private Q_SLOTS:
|
||||
|
||||
void filesAvailable(int modID, QVariant userData, const QList<ModRepositoryFileInfo> &resultData)
|
||||
{
|
||||
if (m_FilesAvailableHandler.is_none()) {
|
||||
qCritical("no handler connected");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
GILock lock;
|
||||
m_FilesAvailableHandler(modID, userData, resultData);
|
||||
} catch (const boost::python::error_already_set&) {
|
||||
throw pyexcept::PythonError();
|
||||
}
|
||||
}
|
||||
|
||||
void descriptionAvailable(int modID, QVariant userData, const QVariant resultData)
|
||||
{
|
||||
try {
|
||||
if (m_DescriptionAvailableHandler.is_none()) {
|
||||
qCritical("no handler connected");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
GILock lock;
|
||||
m_DescriptionAvailableHandler(modID, userData, resultData);
|
||||
} catch (const boost::python::error_already_set&) {
|
||||
throw pyexcept::PythonError();
|
||||
}
|
||||
} catch (const std::exception &e) {
|
||||
qCritical("failed to report event: %s", e.what());
|
||||
} catch (...) {
|
||||
qCritical("failed to report event");
|
||||
}
|
||||
}
|
||||
|
||||
void fileInfoAvailable(int modID, int fileID, QVariant userData, const QVariant resultData) {
|
||||
try {
|
||||
if (m_FileInfoHandler.is_none()) {
|
||||
qCritical("no handler connected");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
GILock lock;
|
||||
m_FileInfoHandler(modID, fileID, userData, resultData);
|
||||
} catch (const boost::python::error_already_set&) {
|
||||
throw pyexcept::PythonError();
|
||||
}
|
||||
} catch (const std::exception &e) {
|
||||
qCritical("failed to report event: %s", e.what());
|
||||
} catch (...) {
|
||||
qCritical("failed to report event");
|
||||
}
|
||||
}
|
||||
|
||||
void endorsementToggled(int modID, QVariant userData, const QVariant resultData)
|
||||
{
|
||||
try {
|
||||
if (m_EndorsementToggledHandler.is_none()) {
|
||||
qCritical("no handler connected");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
GILock lock;
|
||||
m_EndorsementToggledHandler(modID, userData, resultData);
|
||||
} catch (const boost::python::error_already_set&) {
|
||||
throw pyexcept::PythonError();
|
||||
}
|
||||
} catch (const std::exception &e) {
|
||||
qCritical("failed to report event: %s", e.what());
|
||||
} catch (...) {
|
||||
qCritical("failed to report event");
|
||||
}
|
||||
}
|
||||
|
||||
void trackingToggled(int modID, QVariant userData, bool tracked)
|
||||
{
|
||||
try {
|
||||
if (m_TrackingToggledHandler.is_none()) {
|
||||
qCritical("no handler connected");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
GILock lock;
|
||||
m_TrackingToggledHandler(modID, userData, tracked);
|
||||
} catch (const boost::python::error_already_set&) {
|
||||
throw pyexcept::PythonError();
|
||||
}
|
||||
} catch (const std::exception &e) {
|
||||
qCritical("failed to report event: %s", e.what());
|
||||
} catch (...) {
|
||||
qCritical("failed to report event");
|
||||
}
|
||||
}
|
||||
|
||||
void requestFailed(int modID, int fileID, QVariant userData, const QString &errorMessage)
|
||||
{
|
||||
try {
|
||||
GILock lock;
|
||||
m_FailedHandler(modID, fileID, userData, errorMessage);
|
||||
} catch (const boost::python::error_already_set&) {
|
||||
throw pyexcept::PythonError();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
MOBase::IModRepositoryBridge *m_Wrapped;
|
||||
boost::python::object m_FilesAvailableHandler;
|
||||
boost::python::object m_DescriptionAvailableHandler;
|
||||
boost::python::object m_FileInfoHandler;
|
||||
boost::python::object m_EndorsementToggledHandler;
|
||||
boost::python::object m_TrackingToggledHandler;
|
||||
boost::python::object m_FailedHandler;
|
||||
|
||||
};
|
||||
|
||||
struct IProfileWrapper: MOBase::IProfile, boost::python::wrapper<MOBase::IProfile>
|
||||
{
|
||||
virtual QString name() const override { return this->get_override("name")(); }
|
||||
@@ -249,6 +49,7 @@ struct IDownloadManagerWrapper: MOBase::IDownloadManager, boost::python::wrapper
|
||||
|
||||
struct IModRepositoryBridgeWrapper: MOBase::IModRepositoryBridge, boost::python::wrapper<MOBase::IModRepositoryBridge>
|
||||
{
|
||||
using IModRepositoryBridge::IModRepositoryBridge;
|
||||
virtual void requestDescription(QString gameName, int modID, QVariant userData) { this->get_override("requestDescription")(gameName, modID, userData); }
|
||||
virtual void requestFiles(QString gameName, int modID, QVariant userData) { this->get_override("requestFiles")(gameName, modID, userData); }
|
||||
virtual void requestFileInfo(QString gameName, int modID, int fileID, QVariant userData) { this->get_override("requestFileInfo")(gameName, modID, fileID, userData); }
|
||||
|
||||
Reference in New Issue
Block a user