]> 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 e2876ca90b32109e0de226ff0b46028fa5f33f4d..8498ca13face2ab5153b1351ad534fbca5d9fc5c 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 746e6251a9c76a300db458b28f9e76c2da219a63..edf6d45883fc2aeaffe3d16259104913b850cb45 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 f8e61d2e44895f7de9ad1d60516a140de1185567..cfd626fd63dea7026ff92638d208e9126bb39766 100644 (file)
@@ -716,7 +716,6 @@ public:
        void write_database(QString val);
 };
 
-QJSValue toSearchQuery(QJSEngine *engine);
 } // namespace Scriptable
 
 } // namespace LocalMyList
index 647318951e5e31b49b2f520a2673e2fb939c300c..40734e01dbfb886d9c298fad41179c9b66e489be 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 b718f608733dec41ab05677381675ac2b6b5f191..fe2f3112ceeb32019a7c6fe083b38a148116833e 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);