qWarning() << "Failed opening database connection." << d->db.lastError();
return success;
}
-
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
QObject::connect(d->db.driver(), SIGNAL(notification(QString,QSqlDriver::NotificationSource,QVariant)),
this, SLOT(handleNotification(QString,QSqlDriver::NotificationSource,QVariant)));
+#else
+ QObject::connect(d->db.driver(), SIGNAL(notification(QString)),
+ this, SLOT(handleNotification(QString)));
+#endif
subscribeToNotifications();
emit connected();
return notify("rename_data_changed");
}
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
void Database::handleNotification(const QString &name, QSqlDriver::NotificationSource source, const QVariant &payload)
+#else
+void Database::handleNotification(const QString &name)
+#endif
{
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
Q_UNUSED(source);
- Q_UNUSED(payload);
-
+#endif
qDebug() << "Recieved notification" << name;
if (name == "new_pending_request")
{
{
emit configChanged();
}
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
else if (name == "anime_update")
{
int id = payload.toInt();
if (id)
emit fileLocationInsert(id);
}
+#endif
}
QSqlResultIterator(QSqlQuery &query) : q(query) {}
bool next() { return q.next(); }
QVariant value(int index) const { return q.value(index); }
- QVariant value(const QString &name) const { return q.value(name); }
+ QVariant value(const QString &name) const { return q.record().value(name); }
int indexOf(const QString &name ) const { return q.record().indexOf(name); }
private:
QSqlQuery &q;
void fileLocationInsert(int id);
private slots:
+// moc doesn't expand macros
+// QT_VERSION_CHECK(5, 0, 0) == 0x050000
+#if QT_VERSION >= 0x050000
void handleNotification(const QString &name, QSqlDriver::NotificationSource source, const QVariant &payload);
+#else
+ void handleNotification(const QString &name);
+#endif
private:
void subscribeToNotifications();
#include <QString>
#include <QDateTime>
+#include <QMetaType>
namespace LocalMyList {
model = model_;
query = new SqlAsyncQuery;
- QObject::connect(query, &SqlAsyncQuery::resultReady, [this](){ fetchComplete();});
+ query->setCallback([this](){ fetchComplete();});
if (m_type != RootNode)
return;
return d->lastError();
}
+SqlAsyncCallback SqlAsyncQuery::callback() const
+{
+ return d->m_callback;
+}
+
+void SqlAsyncQuery::setCallback(SqlAsyncCallback callback)
+{
+ d->m_callback = callback;
+}
+
void SqlAsyncQuery::resultRecieved()
{
AsyncQueryTask *t = qobject_cast<AsyncQueryTask *>(sender());
return;
d->resultReady(t->result());
+ if (d->m_callback)
+ d->m_callback();
+
emit resultReady();
}
#include "localmylist_global.h"
#include <QObject>
-#include <QSql>
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+# include <QSql>
+#else
+# include <QtSql>
+#endif
+#include <functional>
#include "sqlresultiteratorinterface.h"
namespace LocalMyList {
+typedef ::std::function<void()> SqlAsyncCallback;
+
namespace Internal {
class SqlAsyncQueryInternal;
}
QString executedQuery() const;
QString lastError() const;
+ SqlAsyncCallback callback() const;
+ void setCallback(SqlAsyncCallback callback);
+
signals:
void resultReady();
#ifndef SQLASYNCQUERYINTERNAL_H
#define SQLASYNCQUERYINTERNAL_H
+#include "sqlasyncquery.h"
#include <QStringList>
#include <QVariant>
-#include <QSql>
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+# include <QSql>
+#else
+# include <QtSql>
+#endif
namespace LocalMyList {
-class SqlAsyncQuery;
-
namespace Internal {
struct BoundValue
bool working;
QString m_lastError;
+
+ SqlAsyncCallback m_callback;
};
} // namespace Internal