]> Some of my projects - localmylist.git/commitdiff
Fix SQL in scripts
authorAPTX <redacted>
Mon, 2 Mar 2026 11:42:52 +0000 (20:42 +0900)
committerAPTX <redacted>
Sat, 7 Mar 2026 03:43:55 +0000 (12:43 +0900)
This fixes the Reports tab

localmylist/reportengine.cpp
localmylist/scriptable.cpp
localmylist/scriptable.h
localmylist/scriptablesql.cpp
localmylist/scriptablesql.h

index e2876ca..8498ca1 100644 (file)
@@ -18,8 +18,22 @@ ReportEngine::ReportEngine(QObject *parent) :
 
 QSqlQuery ReportEngine::query() const
 {
-       QSqlQuery q = m_engine->globalObject().property("query").toVariant().value<QSqlQuery>();
-       qDebug() << q.lastError();
+       auto jsValue = m_engine->globalObject().property("query");
+       if (!jsValue.isQObject())
+       {
+               return QSqlQuery{};
+       }
+       auto qobject = jsValue.toQObject();
+       auto tmp = qobject_cast<Scriptable::SqlQuery *>(qobject);
+       if (!tmp)
+       {
+               return QSqlQuery{};
+       }
+       QSqlQuery q = tmp->takeQuery();
+       if (q.lastError().isValid())
+       {
+               qDebug() << q.lastError();
+       }
        return q;
 }
 
@@ -34,7 +48,7 @@ void ReportEngine::run(const QString &report)
 {
        m_engine->evaluate(report);
        if (m_engine->hasError())
-               qDebug() << m_engine->catchError().toString();
+               qDebug() << "Report Error: " << m_engine->catchError().toString();
 }
 
 } // namespace LocalMyList
index 746e625..edf6d45 100644 (file)
@@ -706,11 +706,5 @@ void DatabaseConnectionSettings::write_database(QString val) { database = val; }
 
 // --------------------------------------------------------------------------------
 
-QJSValue toSearchQuery(QJSEngine *engine)
-{
-       // TODO
-       return {};
-}
-
 } // namespace Scriptable
 } // namespace LocalMyList
index f8e61d2..cfd626f 100644 (file)
@@ -716,7 +716,6 @@ public:
        void write_database(QString val);
 };
 
-QJSValue toSearchQuery(QJSEngine *engine);
 } // namespace Scriptable
 
 } // namespace LocalMyList
index 6473189..40734e0 100644 (file)
@@ -20,6 +20,8 @@ namespace Scriptable {
 
 SqlQuery::SqlQuery(QObject *parent) : QObject(parent) {}
 
+QSqlQuery &&SqlQuery::takeQuery() { return std::move(query); }
+
 bool SqlQuery::prepare(const QString &sql)
 {
        QString tmp = sql;
index b718f60..fe2f311 100644 (file)
@@ -17,7 +17,8 @@ namespace Scriptable {
 class LOCALMYLISTSHARED_EXPORT SqlQuery : public QObject {
        Q_OBJECT
 public:
-       SqlQuery(QObject *parent = 0);
+       Q_INVOKABLE SqlQuery(QObject *parent = 0);
+       QSqlQuery &&takeQuery();
 
 public slots:
        bool prepare(const QString &sql);