]> Some of my projects - localmylist.git/commitdiff
Initial Qt6 port
authorAPTX <redacted>
Sun, 18 Jan 2026 14:25:33 +0000 (23:25 +0900)
committerAPTX <redacted>
Sat, 7 Mar 2026 03:43:55 +0000 (12:43 +0900)
Most things should work, except for scripting. The new QJSEngine
is severly limited compared to what existed in QtScript.

runscript scripts will not work. A fix may happen in the future.

52 files changed:
CMakeLists.txt
anioni/CMakeLists.txt
anioni/qtservice/CMakeLists.txt
anioni/qtservice/qtservice.cpp
anioni/qtservice/qtservice.h
import-mylist/CMakeLists.txt
import-mylist/main.cpp
import-titles/CMakeLists.txt
import-titles/main.cpp
localmylist-management/CMakeLists.txt
localmylist-management/aniaddsyntaxhighlighter.cpp
localmylist-management/aniaddsyntaxhighlighter.h
localmylist-management/dynamicmodelfiltermodel.cpp
localmylist-management/dynamicmodelfiltermodel.h
localmylist-management/dynamicmodelitemdelegate.cpp
localmylist-management/filterlineedit.cpp
localmylist-management/main.cpp
localmylist-management/mainwindow.cpp
localmylist-management/mylistfiltermodel.cpp
localmylist-management/qtsingleapplication/CMakeLists.txt
localmylist-management/qtsingleapplication/qtlocalpeer.cpp
localmylist-management/share/localmylist-management.desktop
localmylist-management/tabs/dynamicmodeltab.cpp
localmylist-management/tabs/mylisttab.cpp
localmylist-management/tabs/pendingrequesttab.cpp
localmylist-management/tabwidget.cpp
localmylist/CMakeLists.txt
localmylist/database.cpp
localmylist/directoryscantask.cpp
localmylist/directorywatcher.cpp
localmylist/dynamicmodel/data.cpp
localmylist/dynamicmodel/data.h
localmylist/dynamicmodel/datatype.cpp
localmylist/dynamicmodel/model.cpp
localmylist/dynamicmodel/queryparser.cpp
localmylist/mylist.h
localmylist/mylistexportparsetask.cpp
localmylist/mylistmodel.cpp
localmylist/raiimylist.h
localmylist/renamehandler.cpp
localmylist/reportengine.cpp
localmylist/reportengine.h
localmylist/requesthandler.cpp
localmylist/scriptable.cpp
localmylist/scriptable.h
localmylist/scriptablesql.cpp
localmylist/scriptablesql.h
localmylist/settings.h
play-next/CMakeLists.txt
play-next/main.cpp
runscript/CMakeLists.txt
runscript/main.cpp

index 22e47ee645b332daacc5644d3cb4964e4017f1c4..f12f33bedd8f9e7332b3d8e3fcae8ab90311a9c6 100644 (file)
@@ -3,8 +3,6 @@ include(FeatureSummary)
 
 project(LocalMyList)
 
-set(QT_MIN_VERSION "5.3.0")
-
 option(WITH_ANIONI "Build anioni daemon" ON)
 add_feature_info(Anioni WITH_ANIONI "friendly LocalMyList daemon")
 
@@ -22,6 +20,11 @@ add_feature_info(AniDBUdpClient WITH_ANIDBUDPCLIENT "required for adding and/or
 
 set(TOOL_PREFIX "lml-" CACHE STRING "Prefix for most tool executable names")
 
+set(QT_PACKAGE "Qt6")
+set(QtScript_COMPONENT "")
+
+set(QT_MIN_VERSION "6.10.0")
+add_compile_definitions("QT_DISABLE_DEPRECATED_UP_TO=QT_VERSION_CHECK(6, 1, 0)")
 
 add_subdirectory(localmylist)
 
index 46a44699f9ccb75328ab58cfc38cad87fb1fc3ea..ae210f450c7168c0048ec2bda4af5df2979d157f 100644 (file)
@@ -2,7 +2,7 @@ project(anioni)
 
 add_subdirectory("qtservice")
 
-find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+find_package(${QT_PACKAGE} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
     Core
 )
 
@@ -11,7 +11,7 @@ if (WITH_ANIDBUDPCLIENT)
 endif()
 
 set(anioni_LIBS
-    Qt5::Core
+    ${QT_PACKAGE}::Core
     LocalMyList::LocalMyList
     AniDBUdpClient::AniDBUdpClient
     qtservice
index d36d17014ae1158f543a629b9f23daa8e058891e..8087dc84ed5278e670cfce2fc184fdeb31711197 100644 (file)
@@ -3,18 +3,18 @@ set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
 project(qtservice)
 
 if(WIN32)
-    find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+       find_package(${QT_PACKAGE} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
         Core
     )
 else()
-    find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+    find_package(${QT_PACKAGE} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
         Core
         Network
     )
 endif()
 
 set(qtservice_LIBS
-    Qt5::Core
+    ${QT_PACKAGE}::Core
 )
 
 set(qtservice_SOURCES
@@ -41,7 +41,7 @@ else()
     )
     set(qtservice_LIBS
         ${qtservice_LIBS}
-        Qt5::Network
+        ${QT_PACKAGE}::Network
     )
     set(qtservice_HEADERS
         ${qtservice_HEADERS}
index 3d24b1a741a678dc36133607d686ce1d5c6dba70..006cf39d308c8b9923b9506b9010956fa575cfcc 100644 (file)
@@ -644,7 +644,7 @@ QtServiceBase::QtServiceBase(int argc, char **argv, const QString &name)
     d_ptr = new QtServiceBasePrivate(nm);
     d_ptr->q_ptr = this;
 
-    d_ptr->serviceFlags = 0;
+    d_ptr->serviceFlags = ServiceFlag::Default;
     d_ptr->sysd = 0;
     for (int i = 0; i < argc; ++i)
         d_ptr->args.append(QString::fromLocal8Bit(argv[i]));
index 01b00b4d4d864eef46e118fadd31b4aaab84472f..2b191bbb19c19f0d8def0b48d95092335aff3483 100644 (file)
@@ -58,7 +58,6 @@
 #  define QT_QTSERVICE_EXPORT
 #endif
 
-class QStringList;
 class QtServiceControllerPrivate;
 
 class QT_QTSERVICE_EXPORT QtServiceController
index 484f8241e3a920d091ea2fe52765d3c457840f48..416a3ea16aad4d8884deb6233f02a146d55c6098 100644 (file)
@@ -1,11 +1,11 @@
 project(import-mylist)
 
-find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+find_package(${QT_PACKAGE} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
     Core
 )
 
 set(import-mylist_LIBS
-    Qt5::Core
+    ${QT_PACKAGE}::Core
     LocalMyList::LocalMyList
 )
 
index 4af64c795857501c874befd53ebd93b82bae5b2e..d0167613fe56f592df93ac52ffdf599d7cc8ee57 100644 (file)
@@ -24,7 +24,8 @@ int main(int argc, char *argv[])
                return 1;
        }
 
-       AbstractTask *t = LocalMyList::instance()->importMyList(a.arguments()[1]);
+       AbstractTask *t =
+               LocalMyList::instance()->importMyList(QFileInfo{a.arguments()[1]});
        QObject::connect(t, SIGNAL(finished()), &a, SLOT(quit()));
 
        return a.exec();
index b0e6ebc108ee18ed22d1a20a1f0a0390e6dfad94..6f2dab13b78a9f3018a287eee5f21e4672ef06c9 100644 (file)
@@ -1,11 +1,11 @@
 project(import-titles)
 
-find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+find_package(${QT_PACKAGE} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
     Core
 )
 
 set(import-titles_LIBS
-    Qt5::Core
+    ${QT_PACKAGE}::Core
     LocalMyList::LocalMyList
 )
 
index 99f856dafac4a2b8a608bc1afa70dc264db11782..875f2ba246250f49b799e1f1964e9bf29688067d 100644 (file)
@@ -30,7 +30,7 @@ int main(int argc, char *argv[])
        if (a.arguments().count() == 1)
                t = LocalMyList::instance()->importTitlesFromUrl(QUrl::fromUserInput(LocalMyList::instance()->settings()->get("anidbTitleUrl").toString()));
        else
-               t = LocalMyList::instance()->importTitles(a.arguments()[1]);
+               t = LocalMyList::instance()->importTitles(QFileInfo{a.arguments()[1]});
        QObject::connect(t, SIGNAL(finished()), &a, SLOT(quit()));
 
        return a.exec();
index 03d9412c2110beb75efcfb68e863698cc25ee644..34e4f76472760b9cafeb7ee7ed7bba15840867cc 100644 (file)
@@ -5,16 +5,16 @@ set(LocalMyList-management_VERSION "0.4.0")
 
 add_subdirectory("qtsingleapplication")
 
-find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+find_package(${QT_PACKAGE} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
     Core
     Gui
     Widgets
 )
 
 set(LocalMyList-management_LIBS
-    Qt5::Core
-    Qt5::Gui
-    Qt5::Widgets
+    ${QT_PACKAGE}::Core
+    ${QT_PACKAGE}::Gui
+    ${QT_PACKAGE}::Widgets
     LocalMyList::LocalMyList
     qtsingleapplication
 )
index ff0b535ee6e4738b9e32ac04c21eadbcf640be0c..72f060c60fb6c3c40fb3e4491c55d196849c7585 100644 (file)
@@ -29,22 +29,22 @@ AniAddSyntaxHighlighter::AniAddSyntaxHighlighter(QObject *parent) :
        number.setForeground(                   QColor(0xB0, 0x80, 0x00));
        string.setForeground(                   QColor(0xBF, 0x03, 0x03));
        operatorFormat.setForeground(   Qt::black);
-       comment.setForeground(                  Qt::gray);
+       comment.setForeground(Qt::gray);
 
        comment.setFontItalic(true);
        outputVariable.setFontWeight(QFont::Black);
 
-       rule.pattern = QRegExp("0|[1-9][0-9]*");
+       rule.pattern = QRegularExpression("0|[1-9][0-9]*");
        rule.format = number;
        highlightingRules << rule;
 
        const QString name("[a-zA-Z][a-zA-Z0-9]*");
 
-       rule.pattern = QRegExp(name);
+       rule.pattern = QRegularExpression(name);
        rule.format = variable;
        highlightingRules << rule;
 
-       rule.pattern = QRegExp("\\$\\s*" + name + "|" + name + "(?=\\s*\\([^)]*\\)\\s*:=)");
+       rule.pattern = QRegularExpression("\\$\\s*" + name + "|" + name + "(?=\\s*\\([^)]*\\)\\s*:=)");
        rule.format = function;
        highlightingRules << rule;
 
@@ -54,61 +54,70 @@ AniAddSyntaxHighlighter::AniAddSyntaxHighlighter(QObject *parent) :
                LocalMyList::setupRenameEnv(r, env);
                const QStringList variables = env.keys();
 
-               rule.pattern = QRegExp("\\b(?:" + variables.join(QChar('|')) + ")\\b");
+               rule.pattern = QRegularExpression("\\b(?:" + variables.join(QChar('|')) + ")\\b");
                rule.format = builtinVariable;
                highlightingRules.append(rule);
        }
        {
                QString outputVariables = "FileName|PathName|RenameAsVideoFile";
-               rule.pattern = QRegExp("\\b(?:" + outputVariables + ")\\b");
+               rule.pattern = QRegularExpression("\\b(?:" + outputVariables + ")\\b");
                rule.format = outputVariable;
                highlightingRules << rule;
        }
        {
                const QStringList functions = RenameParser::RenameEngine::registeredFunctions();
 
-               rule.pattern = QRegExp("\\$\\s*(?:" + functions.join(QChar('|')) + ")\\b");
+               rule.pattern = QRegularExpression("\\$\\s*(?:" + functions.join(QChar('|')) + ")\\b");
                rule.format = builtinFunction;
                highlightingRules << rule;
        }
 
-       rule.pattern = QRegExp(":?=|[:|?\\[\\]]");
+       rule.pattern = QRegularExpression(":?=|[:|?\\[\\]]");
        rule.format = operatorFormat;
        highlightingRules << rule;
 
-       rule.pattern = QRegExp("\"[^\"]*\"|'[^']*'");
+       rule.pattern = QRegularExpression("\"[^\"]*\"|'[^']*'");
        rule.format = string;
        highlightingRules << rule;
 
-       rule.pattern = QRegExp("^//.*$");
+       rule.pattern = QRegularExpression("^//.*$");
        rule.format = comment;
        highlightingRules << rule;
 
-       commentStartExpression = QRegExp("/\\*");
-       commentEndExpression = QRegExp("\\*/");
+       commentStartExpression = QRegularExpression("/\\*");
+       commentEndExpression = QRegularExpression("\\*/");
 }
 
 void AniAddSyntaxHighlighter::highlightBlock(const QString &text)
 {
-       for (const HighlightingRule &rule : highlightingRules)
+       for (const HighlightingRule &rule : std::as_const(highlightingRules))
        {
-               QRegExp expression(rule.pattern);
-               int index = expression.indexIn(text);
-               while (index >= 0) {
-                       int length = expression.matchedLength();
+               QRegularExpression expression(rule.pattern);
+               auto match = expression.match(text);
+               int index = match.capturedStart();
+               while (match.hasMatch())
+               {
+                       int length = match.capturedLength();
                        setFormat(index, length, rule.format);
-                       index = expression.indexIn(text, index + length);
+                       match = expression.match(text, index + length);
+                       index = match.capturedStart();
                }
        }
        setCurrentBlockState(0);
 
+       QRegularExpressionMatch match;
+
        int startIndex = 0;
        if (previousBlockState() != 1)
-               startIndex = commentStartExpression.indexIn(text);
+       {
+               match = commentStartExpression.match(text);
+               startIndex = match.capturedStart();
+       }
 
        while (startIndex >= 0)
        {
-               int endIndex = commentEndExpression.indexIn(text, startIndex);
+               match = commentEndExpression.match(text, startIndex);
+               int endIndex = match.capturedEnd();
                int commentLength;
                if (endIndex == -1)
                {
@@ -117,10 +126,10 @@ void AniAddSyntaxHighlighter::highlightBlock(const QString &text)
                }
                else
                {
-                       commentLength = endIndex - startIndex
-                                                       + commentEndExpression.matchedLength();
+                       commentLength = endIndex - startIndex + match.capturedLength();
                }
                setFormat(startIndex, commentLength, comment);
-               startIndex = commentStartExpression.indexIn(text, startIndex + commentLength);
+               match = commentStartExpression.match(text, startIndex + commentLength);
+               startIndex = match.capturedStart();
        }
 }
index 7929e635b7da58ad8db578024c508fb3fa005222..35be4fe323dca4e3bfbfa9e8352062da1d6951dd 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef ANIADDSYNTAXHIGHLIGHTER_H
 #define ANIADDSYNTAXHIGHLIGHTER_H
 
+#include <QRegularExpression>
 #include <QSyntaxHighlighter>
 
 class AniAddSyntaxHighlighter : public QSyntaxHighlighter
@@ -15,13 +16,13 @@ protected:
 private:
        struct HighlightingRule
        {
-               QRegExp pattern;
+               QRegularExpression pattern;
                QTextCharFormat format;
        };
        QVector<HighlightingRule> highlightingRules;
 
-       QRegExp commentStartExpression;
-       QRegExp commentEndExpression;
+       QRegularExpression commentStartExpression;
+       QRegularExpression commentEndExpression;
 
        QTextCharFormat builtinVariable;
        QTextCharFormat builtinFunction;
index 54c198b35ec791f329c7400a60852c988dae6f49..0647701a470630e669942bfa98bb9eb56a94919b 100644 (file)
@@ -12,7 +12,8 @@ DynamicModelFilterModel::DynamicModelFilterModel(QObject *parent) :
 {\r
        setFilterCaseSensitivity(Qt::CaseInsensitive);\r
 \r
-       connect(LocalMyList::instance()->database(), SIGNAL(configChanged()), this, SLOT(configChanged()));\r
+       connect(LocalMyList::instance()->database(), SIGNAL(configChanged()), this,\r
+                       SLOT(configChanged()));\r
 }\r
 \r
 LocalMyList::DynamicModel::Model *DynamicModelFilterModel::dynamicModel() const\r
@@ -35,7 +36,8 @@ bool DynamicModelFilterModel::filterAcceptsRow(int source_row, const QModelIndex
 \r
        if (!source_parent.isValid())\r
        {\r
-               return dynamicModel()->node(idx)->data()->matchesFilter(filterRegExp());\r
+               return dynamicModel()->node(idx)->data()->matchesFilter(\r
+                       filterRegularExpression());\r
        }\r
 \r
        return true;\r
index ceb23e054df70d6044d22214ce599c51484c091a..07c77952ca55664ecd4d54372c20e8f3596742d1 100644 (file)
@@ -22,7 +22,7 @@ public slots:
        LocalMyList::DynamicModel::Node *node(const QModelIndex &idx) const;\r
 \r
 protected:\r
-       bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;\r
+  bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;\r
 };\r
 \r
 #endif // DYNAMICMODELFILTERMODEL_H\r
index 646d7d0abe19a4e792eed869e05f01e9f5035dff..e474b7ac14fd5c3d7357d46d25319d59e7c54edd 100644 (file)
@@ -53,7 +53,8 @@ void DynamicModelItemDelegate::setModelData(QWidget *editor, QAbstractItemModel
 bool DynamicModelItemDelegate::isVoteField(const QModelIndex &index) const\r
 {\r
        using namespace LocalMyList;\r
-       const DynamicModelFilterModel *model = qobject_cast<const DynamicModelFilterModel *>(index.model());\r
+       const DynamicModelFilterModel *model =\r
+               qobject_cast<const DynamicModelFilterModel *>(index.model());\r
        const DynamicModel::Node *node = model->node(index);\r
 \r
        if (!node->data())\r
index 044565063bc0abf2572592dd78327fb081acd7af..622cf6446b15af68dc967b2c14eb992b9ffc4b80 100644 (file)
@@ -11,11 +11,11 @@ void FilterLineEdit::keyPressEvent(QKeyEvent *e)
 {
        switch (e->key())
        {
-               case Qt::Key_Up:
-                       emit keyUpPressed();
+       case Qt::Key_Up:
+               emit keyUpPressed();
                break;
-               case Qt::Key_Down:
-                       emit keyDownPressed();
+       case Qt::Key_Down:
+               emit keyDownPressed();
                break;
        }
        QLineEdit::keyPressEvent(e);
index 15b7eeed82a16f806c207a6223055cf570baf440..ce95907fe37b37127b321d97fcae3a3c22493b46 100644 (file)
@@ -20,7 +20,7 @@ int main(int argc, char *argv[])
        w.show();
 
        if (a.arguments().count() >= 2)
-               LocalMyList::instance()->addFile(a.arguments()[1]);
+               LocalMyList::instance()->addFile(QFileInfo{a.arguments()[1]});
 
        return a.exec();
 }
index cba3ffd05512a96343e05078f51ca9c7c1112662..a02f21e4a34fbb4623c8fe706dc73cd612a163a1 100644 (file)
@@ -214,7 +214,7 @@ void MainWindow::on_actionImportMyList_triggered()
        QString file = QFileDialog::getOpenFileName(this, tr("Import MyList"));
        if (file.isEmpty())
                return;
-       MyList::instance()->importMyList(file);
+       MyList::instance()->importMyList(QFileInfo{file});
 }
 
 void MainWindow::on_actionImportTitles_triggered()
@@ -222,7 +222,7 @@ void MainWindow::on_actionImportTitles_triggered()
        QString file = QFileDialog::getOpenFileName(this, tr("Import Titles"));
        if (file.isEmpty())
                return;
-       MyList::instance()->importTitles(file);
+       MyList::instance()->importTitles(QFileInfo{file});
 }
 
 void MainWindow::on_actionImportTitlesFromWeb_triggered()
index 7c8d3a9d124d456d0faba2597f2ca66b16687a3d..2d06b137ca82c579fb01b87016e04ce03fafa271 100644 (file)
@@ -45,12 +45,13 @@ void MyListFilterModel::setHideEmptyAnime(bool hide)
 
        m_hideEmptyAnime = hide;
 
+       beginFilterChange();
        if (LocalMyList::instance()->settings()->get("myListHideEmptyAnime", hide) != hide)
        {
                LocalMyList::instance()->settings()->set("myListHideEmptyAnime", hide);
                LocalMyList::instance()->settings()->commit();
        }
-       invalidateFilter();
+       endFilterChange();
        emit hideEmptyAnimeChanged(hide);
 }
 
@@ -61,12 +62,13 @@ void MyListFilterModel::setHideWatchedEpisodes(bool hideWatchedEpisodes)
 
        m_hideWatchedEpisodes = hideWatchedEpisodes;
 
+       beginFilterChange();
        if (LocalMyList::instance()->settings()->get("myListHideWatchedEpisodes", hideWatchedEpisodes) != hideWatchedEpisodes)
        {
                LocalMyList::instance()->settings()->set("myListHideWatchedEpisodes", hideWatchedEpisodes);
                LocalMyList::instance()->settings()->commit();
        }
-       invalidateFilter();
+       endFilterChange();
 
        emit hideWatchedEpisodesChanged(hideWatchedEpisodes);
 }
@@ -100,7 +102,8 @@ bool MyListFilterModel::filterAcceptsRow(int source_row, const QModelIndex &sour
                        }
                }
 
-               return sourceModel()->data(idx).toString().contains(filterRegExp());
+               return sourceModel()->data(idx).toString().contains(
+                       filterRegularExpression());
        }
        else if (m_hideWatchedEpisodes)
        {
index 30a3d4608d66e9f38057d6edbf97bc37eaeefbdc..6a3d1776debd48d29cb0e0ee44022ae62fb64826 100644 (file)
@@ -1,16 +1,16 @@
 set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
 project(qtsingleapplication)
 
-find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+find_package(${QT_PACKAGE} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
     Core
     Widgets
     Network
 )
 
 set(qtsingleapplication_LIBS
-    Qt5::Core
-    Qt5::Widgets
-    Qt5::Network
+    ${QT_PACKAGE}::Core
+    ${QT_PACKAGE}::Widgets
+    ${QT_PACKAGE}::Network
 )
 
 set(qtsingleapplication_SOURCES
index 3580e2b7336318cef1bf8ecd9141ed57252676d2..c81f2c68e8bef30e120393dfbbfb833dfbc66c21 100644 (file)
 **
 ****************************************************************************/
 
-
 #include "qtlocalpeer.h"
 #include <QCoreApplication>
-#include <QTime>
 #include <QDataStream>
+#include <QRegularExpression>
+#include <QTime>
 
 #if defined(Q_OS_WIN)
 #include <QLibrary>
@@ -75,11 +75,12 @@ QtLocalPeer::QtLocalPeer(QObject* parent, const QString &appId)
 #endif
                prefix = id.section(QLatin1Char('/'), -1);
        }
-       prefix.remove(QRegExp("[^a-zA-Z]"));
+       static QRegularExpression rx("[^a-zA-Z]");
+       prefix.remove(rx);
        prefix.truncate(6);
 
        QByteArray idc = id.toUtf8();
-       quint16 idNum = qChecksum(idc.constData(), idc.size());
+       quint16 idNum = qChecksum(idc);
        socketName = QLatin1String("qtsingleapp-") + prefix
                                 + QLatin1Char('-') + QString::number(idNum, 16);
 
index 94729c3d86b7110a6aa7ba111b43b7cbc5fe799f..f927273189c29e137a5162381009bdf401c834f9 100644 (file)
@@ -1,9 +1,14 @@
 [Desktop Entry]
+Version=1.5
 Type=Application
 Name=LocalMyList Management
+GenericName=Media Database
 Comment=Manage your LocalMyList
 Icon=localmylist-management
 Exec=localmylist-management
+TryExec=localmylist-management
 Categories=AudioVideo;Video;Database;Qt
 Terminal=false
-
+Keywords=Database;Video;
+StartupWMClass=localmylist-management
+SingleMainWindow=true
index d9260e4a055b8e461e326c02999e4a50496feec1..c7629e47c77d5ea9affef7dc1a0278999f5481bc 100644 (file)
@@ -182,7 +182,7 @@ void DynamicModelTab::on_myListView_openFileRequested(const QModelIndex &index)
                return;
        }
 
-       QDesktopServices::openUrl(QUrl("file:///" + data.path, QUrl::TolerantMode));
+       QDesktopServices::openUrl(QUrl::fromLocalFile(data.path));
        mainWindow()->showMessage(tr("Openieng file: %1").arg(data.path));
 
 }
@@ -285,8 +285,8 @@ void DynamicModelTab::on_filterInput_textChanged(const QString &filter)
                        dynamicModelFilterModel->setFilterWildcard(filter);
                break;
                case 2:
-                       dynamicModelFilterModel->setFilterRegExp(filter);
-               break;
+                       dynamicModelFilterModel->setFilterRegularExpression(filter);
+                       break;
                case 0:
                default:
                        dynamicModelFilterModel->setFilterFixedString(filter);
index 8eacf11b0fdd88161d22a278530a124591301254..fb29b025836977e50cb7c3337fe8b23fff208cc1 100644 (file)
@@ -233,8 +233,8 @@ void MyListTab::on_filterInput_textChanged(const QString &filter)
                        myListFilterModel->setFilterWildcard(filter);
                break;
                case 2:
-                       myListFilterModel->setFilterRegExp(filter);
-               break;
+                       myListFilterModel->setFilterRegularExpression(filter);
+                       break;
                case 0:
                default:
                        myListFilterModel->setFilterFixedString(filter);
index 5f60917bd2922a81f1cbb81133b4e31832c66b0b..0de5bb64da82ef0da21e91421832fbe2a492930e 100644 (file)
@@ -81,7 +81,8 @@ void PendingRequestTab::resetFailCount()
 
        {
                LocalMyList::RaiiTransaction t(LocalMyList::instance()->database());
-               for (const LocalMyList::PendingRequest &request : requests)
+               for (const LocalMyList::PendingRequest &request :
+                        std::as_const(requests))
                {
                        LocalMyList::instance()->database()->resetPendingRequest(request);
                }
@@ -95,7 +96,7 @@ QList<LocalMyList::PendingRequest> PendingRequestTab::selectionToPendingRequestL
        QList<LocalMyList::PendingRequest> ret;
        QModelIndexList selection = ui->view->selectionModel()->selectedRows();
 
-       for (const QModelIndex &idx : selection)
+       for (const QModelIndex &idx : std::as_const(selection))
        {
                LocalMyList::PendingRequest pr;
                pr.aid = idx.data().toInt();
index b8ddee36a78e3102731f37aa31be39a728cf17e1..df60c9dddd4657777ca73d310bfb9bc487d9592e 100644 (file)
@@ -35,9 +35,7 @@ void TabWidget::populateMenu(QMenu *menu)
        for (const QString &id : tabMenuOrder)
        {
                QAction *action = new QAction(registeredTabNames.value(id)(), menu);
-               connect(action, &QAction::triggered, [this, id] {
-                       this->addTabRequested(id);
-               });
+               connect(action, &QAction::triggered, [this, id] { this->addTabRequested(id); });
                menu->addAction(action);
        }
        menu->addSeparator();
index 9f62d994ba508867403ced2cc9b7153bd5c11db1..9cc9bcf0c2443b967dc44db8c8195fe341496431 100644 (file)
@@ -4,24 +4,29 @@ project(LocalMyList)
 
 set(LocalMyList_VERSION "0.4.0")
 
-find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+
+
+find_package(${QT_PACKAGE} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
     Core
     Sql
-    Script
+    Qml
 )
 
-find_package(Boost REQUIRED)
+find_package(Boost CONFIG REQUIRED)
 set_package_properties(Boost PROPERTIES
     PURPOSE "Boost intrusive is used in dynamicmodel"
 )
 
+find_package(AucQJSEngineFunction CONFIG REQUIRED)
+
 set(LocalMyList_PUBLIC_LIBS
-    Qt5::Core
-    Qt5::Sql
+    ${QT_PACKAGE}::Core
+    ${QT_PACKAGE}::Sql
+    ${QT_PACKAGE}::Qml
 )
 
 set(LocalMyList_LIBS
-    Qt5::Script
+    AucQJSEngineFunction::AucQJSEngineFunction
     Boost::boost
 )
 
@@ -147,7 +152,7 @@ install(FILES ${LocalMyList_SHARE}
     DESTINATION share/LocalMyList
 )
 
-if(NOT AniDBUdpClient_WITH_RENAMEPARSER)
+if(WITH_ANIDBUDPCLIENT AND NOT AniDBUdpClient_WITH_RENAMEPARSER)
     message(FATAL_ERROR "AniDBUdpClient must be compiled with WITH_RENAMEPARSER")
 endif()
 
@@ -193,6 +198,7 @@ set_property(TARGET LocalMyList PROPERTY CXX_STANDARD 14)
 set_property(TARGET LocalMyList PROPERTY PUBLIC_HEADER ${LocalMyList_PUBLIC_HEADERS})
 set_property(TARGET LocalMyList PROPERTY OUTPUT_NAME "localmylist")
 target_include_directories(LocalMyList INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
+target_include_directories(LocalMyList INTERFACE $<BUILD_INTERFACE:${CMAKE_BUILD_D}/include>)
 target_link_libraries(LocalMyList
     PUBLIC ${LocalMyList_PUBLIC_LIBS}
     PRIVATE ${LocalMyList_LIBS})
index 6a93e8093b57d51afbbbe5d40bdf69e5002aae5c..0f8ce73c1d8697c788003f4adf01a36adb8e3970 100644 (file)
@@ -2,12 +2,13 @@
 
 #include "mylist.h"
 
-#include <QSqlQuery>
-#include <QSqlError>
+#include <QDebug>
+#include <QRegularExpression>
 #include <QSqlDriver>
-#include <QVariant>
+#include <QSqlError>
+#include <QSqlQuery>
 #include <QThread>
-#include <QDebug>
+#include <QVariant>
 
 #include <functional>
 
@@ -19,6 +20,7 @@ struct DatabaseInternal
 
        QSqlDatabase db;
 
+       // TODO rework this as QSqlQuery is going to be non-copyable
        QHash<const char *const, QSqlQuery> preparedQueries;
        int transactionLevel;
 
@@ -2326,7 +2328,8 @@ void Database::handleNotification(const QString &name)
        }
        else if (name == "episode_update")
        {
-               QStringList ids = payload.toString().split(QChar(','), QString::SkipEmptyParts);
+               QStringList ids =
+                       payload.toString().split(QChar(','), Qt::SkipEmptyParts);
                int eid = 0;
                int aid = 0;
                if (ids.count())
@@ -2339,7 +2342,8 @@ void Database::handleNotification(const QString &name)
        }
        else if (name == "file_update")
        {
-               QStringList ids = payload.toString().split(QChar(','), QString::SkipEmptyParts);
+               QStringList ids =
+                       payload.toString().split(QChar(','), Qt::SkipEmptyParts);
                int fid = 0;
                int eid = 0;
                int aid = 0;
@@ -2356,7 +2360,8 @@ void Database::handleNotification(const QString &name)
        }
        else if (name == "file_location_update")
        {
-               QStringList ids = payload.toString().split(QChar(','), QString::SkipEmptyParts);
+               QStringList ids =
+                       payload.toString().split(QChar(','), Qt::SkipEmptyParts);
                int locationId = 0;
                int fid = 0;
 
@@ -2376,7 +2381,8 @@ void Database::handleNotification(const QString &name)
        }
        else if (name == "episode_insert")
        {
-               QStringList ids = payload.toString().split(QChar(','), QString::SkipEmptyParts);
+               QStringList ids =
+                       payload.toString().split(QChar(','), Qt::SkipEmptyParts);
                int eid = 0;
                int aid = 0;
                if (ids.count())
@@ -2389,7 +2395,8 @@ void Database::handleNotification(const QString &name)
        }
        else if (name == "file_insert")
        {
-               QStringList ids = payload.toString().split(QChar(','), QString::SkipEmptyParts);
+               QStringList ids =
+                       payload.toString().split(QChar(','), Qt::SkipEmptyParts);
                int fid = 0;
                int eid = 0;
                int aid = 0;
@@ -2406,7 +2413,8 @@ void Database::handleNotification(const QString &name)
        }
        else if (name == "file_location_insert")
        {
-               QStringList ids = payload.toString().split(QChar(','), QString::SkipEmptyParts);
+               QStringList ids =
+                       payload.toString().split(QChar(','), Qt::SkipEmptyParts);
                int locationId = 0;
                int fid = 0;
 
@@ -2426,7 +2434,8 @@ void Database::handleNotification(const QString &name)
        }
        else if (name == "episode_delete")
        {
-               QStringList ids = payload.toString().split(QChar(','), QString::SkipEmptyParts);
+               QStringList ids =
+                       payload.toString().split(QChar(','), Qt::SkipEmptyParts);
                int eid = 0;
                int aid = 0;
                if (ids.count())
@@ -2439,7 +2448,8 @@ void Database::handleNotification(const QString &name)
        }
        else if (name == "file_delete")
        {
-               QStringList ids = payload.toString().split(QChar(','), QString::SkipEmptyParts);
+               QStringList ids =
+                       payload.toString().split(QChar(','), Qt::SkipEmptyParts);
                int fid = 0;
                int eid = 0;
                int aid = 0;
@@ -2456,7 +2466,8 @@ void Database::handleNotification(const QString &name)
        }
        else if (name == "file_location_delete")
        {
-               QStringList ids = payload.toString().split(QChar(','), QString::SkipEmptyParts);
+               QStringList ids =
+                       payload.toString().split(QChar(','), Qt::SkipEmptyParts);
                int locationId = 0;
                int fid = 0;
 
@@ -2523,7 +2534,7 @@ QString toSearchQuery(const QString &string)
 {
        const static QChar anyChar = QChar('%');
        QString ret = string.trimmed();
-       ret.replace(QRegExp("\\s+"), anyChar);
+       ret.replace(QRegularExpression("\\s+"), anyChar);
        ret = ret.append(anyChar).prepend(anyChar);
        return ret;
 }
index d4e681c3d910022caf01108470c57c04fe401ac5..2559dff991ac482f79dfa7c7bbe966f61bdb857f 100644 (file)
@@ -61,7 +61,9 @@ void DirectoryScanTask::workUnit()
                int startIndex = stack.top().second;
                stack.pop();
 
-               QStringList filters = settings->get("fileFilters").toString().split(QChar(' '), QString::SkipEmptyParts);
+               QStringList filters = settings->get("fileFilters")
+                                                                 .toString()
+                                                                 .split(QChar(' '), Qt::SkipEmptyParts);
 
                QFileInfoList entries = currentDir.entryInfoList(filters, QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Files);
 
index d7a03ca022c0d5c8de0230982c7192e2e263d07b..cc7b31aa8c4c6929383e17777b627750753b2540 100644 (file)
@@ -46,10 +46,13 @@ void DirectoryWatcher::watchedDirectoryChanged(const QString &path)
 {
        QDir dir(path);
 
-       QStringList filters = settings->get("fileFilters").toString().split(QChar(' '), QString::SkipEmptyParts);
+       QStringList filters = settings->get("fileFilters")
+                                                         .toString()
+                                                         .split(QChar(' '), Qt::SkipEmptyParts);
 
        QStringList currentEntries = dir.entryList(filters, QDir::Files);
-       QSet<QString> currentSet = currentEntries.toSet();
+       QSet<QString> currentSet{currentEntries.constBegin(),
+                                                        currentEntries.constEnd()};
        QSet<QString> oldEntries = previousEntries.value(path);
        QSet<QString> newEntries = currentSet - oldEntries;
 
index b86cbb91deebb3300015e3b396fe6082c50d314c..455a860dc7b99823ef7c018598b87f0d5a208f48 100644 (file)
@@ -11,18 +11,17 @@ namespace DynamicModel {
 
 QString stateIdToState(int id)
 {
-       switch (id)
-       {
-               case -1:
-                       return QObject::tr("Mixed");
-               case 0:
-                       return QObject::tr("Unknown");
-               case 1:
-                       return QObject::tr("On HDD");
-               case 2:
-                       return QObject::tr("On Cd");
-               case 3:
-                       return QObject::tr("Deleted");
+       switch (id) {
+       case -1:
+               return QObject::tr("Mixed");
+       case 0:
+               return QObject::tr("Unknown");
+       case 1:
+               return QObject::tr("On HDD");
+       case 2:
+               return QObject::tr("On Cd");
+       case 3:
+               return QObject::tr("Deleted");
        }
        return QString();
 }
@@ -62,7 +61,7 @@ Qt::ItemFlags Data::flags(int column) const
        return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
 }
 
-bool Data::matchesFilter(const QRegExp &filter) const
+bool Data::matchesFilter(const QRegularExpression &filter) const
 {
        return data(0, Qt::DisplayRole).toString().contains(filter);
 }
@@ -264,7 +263,7 @@ bool AnimeData::setData(int column, const QVariant &data, int role)
        return false;
 }
 
-bool AnimeData::matchesFilter(const QRegExp &filter) const
+bool AnimeData::matchesFilter(const QRegularExpression &filter) const
 {
        if (Data::matchesFilter(filter))
                return true;
index 899daf608b7984bdf941f33fc89575f5d910d9b9..1956386419f675abb8631685906abcecd7685426 100644 (file)
@@ -4,6 +4,7 @@
 #include "../localmylist_global.h"
 
 #include <QList>
+#include <QRegularExpression>
 #include <QVariant>
 
 #include "../databaseclasses.h"
@@ -26,7 +27,7 @@ public:
        virtual Qt::ItemFlags flags(int column) const;
        virtual QVariant data(int column, int role) const;
        virtual bool setData(int column, const QVariant &data, int role);
-       virtual bool matchesFilter(const QRegExp &filter) const;
+       virtual bool matchesFilter(const QRegularExpression &filter) const;
 
        virtual bool isVoteColumn(int column) const;
 
@@ -76,7 +77,7 @@ public:
        virtual Qt::ItemFlags flags(int column) const override;
        QVariant data(int column, int role) const override;
        bool setData(int column, const QVariant &data, int role) override;
-       bool matchesFilter(const QRegExp &filter) const override;
+       bool matchesFilter(const QRegularExpression &filter) const override;
 
        bool isVoteColumn(int column) const override;
 
index 3b1563dd4de10ecf4510cc0d6f1fc48504c265f0..1bc2252c893ae0d8f8f2c953ca00401d30ffb8ff 100644 (file)
@@ -129,17 +129,12 @@ NodeCompare DataType::nodeCompareFunction() const
 {
        return [](Node *a, Node *b)
        {
-#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
-               return a->data()->primaryValue() < b->data()->primaryValue();
-#else
-               // No easy way to compare QVariants without all the stuff added in Qt5
-               if (a->data()->primaryValue().canConvert(QVariant::Int))
+               if (a->data()->primaryValue().canConvert<int>())
                {
                        return a->data()->primaryValue().toInt() < b->data()->primaryValue().toInt();
                }
 
                return a->data()->primaryValue().toString() < b->data()->primaryValue().toString();
-#endif
        };
 }
 
index 636bd5e6ed39032f81aa8f3bd13306e740180211..0fe56f3d04c24178301265a760a3916f452c98b6 100644 (file)
@@ -64,7 +64,7 @@ QVariant Model::headerData(int section, Qt::Orientation orientation, int role) c
 Qt::ItemFlags Model::flags(const QModelIndex &index) const
 {
        if (!index.isValid())
-               return 0;
+               return Qt::NoItemFlags;
 
        Node *node = static_cast<Node *>(index.internalPointer());
        if (!node->data())
index 50f008dc59c4cdbc3685fcc947ff7cd42ace1b56..d948c17718fb5f6d22e833ab39b4953075d8f92a 100644 (file)
@@ -136,7 +136,7 @@ bool QueryParser::parse(const QString &rawPath)
        m_errorString = QString{};\r
 \r
        m_queryString = rawPath;\r
-       QStringList parts = m_queryString.split(QChar('/'), QString::SkipEmptyParts);\r
+       QStringList parts = m_queryString.split(QChar('/'), Qt::SkipEmptyParts);\r
        qDebug() << "parse " << parts;\r
 \r
        if (!parts.length())\r
@@ -353,14 +353,18 @@ void QueryParser::bindValue(QSqlQuery &query, Data *data, int currentLevel) cons
        if (!data) return;\r
 \r
        qDebug() << "binding" << data->primaryValue() << "on level" << currentLevel;\r
-       QRegExp rx(QString(":level_%1_value_([0-9]+)").arg(currentLevel));\r
+       QRegularExpression rx(QString(":level_%1_value_([0-9]+)").arg(currentLevel));\r
        const QString sqlQuery = query.lastQuery();\r
        int pos = 0;\r
-       while ((pos = rx.indexIn(sqlQuery, pos)) != -1)\r
+\r
+       for (auto match = rx.match(sqlQuery, pos); match.hasMatch();\r
+                match = rx.match(sqlQuery, pos))\r
        {\r
-               qDebug() << "WWWWW0" << placeHolder(currentLevel, rx.cap(1).toInt());\r
-               query.bindValue(placeHolder(currentLevel, rx.cap(1).toInt()), data->primaryValue());\r
-               pos += rx.matchedLength();\r
+               qDebug() << "WWWWW0"\r
+                                << placeHolder(currentLevel, match.captured(1).toInt());\r
+               query.bindValue(placeHolder(currentLevel, match.captured(1).toInt()),\r
+                                               data->primaryValue());\r
+               pos += match.capturedLength();\r
        }\r
 }\r
 \r
index 9fa1a54b8d3a01173c735ce4241d2999b4fd64ba..1641b4412e05b9aab8a8f2f34a0655c8cc55f601 100644 (file)
@@ -1,10 +1,12 @@
 #ifndef LOCALMYLIST_H
 #define LOCALMYLIST_H
 
-#include "localmylist_global.h"
 #include "database.h"
-#include <QObject>
+#include "localmylist_global.h"
+#include "servicemanager.h"
+#include "settings.h"
 
+#include <QObject>
 #include <QSet>
 #include <QDir>
 #include <QFileInfo>
 
 namespace LocalMyList {
 
-class Settings;
 class AbstractTask;
 class WorkThread;
-class ServiceManager;
 class RequestHandler;
 class RenameHandler;
 class DirectoryWatcher;
index 296e829560d268d415163d200904eae3b89fbf76..c27fcb40fd8671c24f4b60d812615292cd571b7b 100644 (file)
@@ -171,7 +171,8 @@ void MyListExportParseTask::readAnime()
                                a.aid = readElementText().toInt();
                        }
                        else if (name() == "Update") {
-                               a.anidbUpdate = QDateTime::fromTime_t(readElementText().toInt());
+                               a.anidbUpdate = QDateTime::fromSecsSinceEpoch(
+                                       readElementText().toInt(), QTimeZone::UTC);
                        }
                        else if (name() == "Name") {
                                a.titleRomaji = readElementText();
index 16d274e700aea5e78c4f131b2c364d902c0a466c..2b7edeb2f4347e4b39fe7fd00b327c2c11f28e84 100644 (file)
@@ -196,7 +196,7 @@ QVariant MyListModel::headerData(int section, Qt::Orientation orientation, int r
 Qt::ItemFlags MyListModel::flags(const QModelIndex &index) const
 {
        if (!index.isValid())
-               return 0;
+               return Qt::NoItemFlags;
 
        MyListNode *item = static_cast<MyListNode *>(index.internalPointer());
 
index 1e42a61f089b12a5efba8f9f53cd1a41491c1a7f..c1de1eb86a0f78b405a42788b5e7adf12bba664c 100644 (file)
@@ -33,7 +33,7 @@ class LOCALMYLISTSHARED_EXPORT RaiiMyList
 
   private:
        QMutex mutex;
-       QMutexLocker locker;
+       QMutexLocker<QMutex> locker;
        bool ok;
        bool m_connected;
 };
index 295b4912723a7734339002cc9a3f03000eb61587..66029c40372ac2c1956d8fac95e410dbeccdc92b 100644 (file)
@@ -1,12 +1,13 @@
 #include "renamehandler.h"
 
-#include "mylist.h"
 #include "database.h"
-#include "settings.h"
+#include "mylist.h"
 #include "renameutils.h"
-#include <RenameParser/RenameEngine>
+#include "settings.h"
+#include <QRegularExpression>
 #include <QSqlQuery>
 #include <QSqlRecord>
+#include <RenameParser/RenameEngine>
 
 #include <QDebug>
 
@@ -124,7 +125,7 @@ void RenameHandler::handleRename()
                QString newFileName = (useVideoFileEnv ? videoFileEnv : env).value("FileName", "") + "." + r.value("extension").toString();
                QString newFilePath = (useVideoFileEnv ? videoFileEnv : env).value("PathName", "");
 
-               QRegExp rx(settings->get("renameSanitizeRegex", QString("[/\\:*\"?<>|\\r\\n]")));
+               QRegularExpression rx(settings->get("renameSanitizeRegex", QString("[/\\:*\"?<>|\\r\\n]")));
                newFileName = newFileName.replace(rx, "");
 
                if (newFilePath.isEmpty())
index eecfeb2c1869373d6cf6a0c753c4fada400e7023..e2876ca90b32109e0de226ff0b46028fa5f33f4d 100644 (file)
@@ -1,9 +1,9 @@
 #include "reportengine.h"
 
-#include <QScriptEngine>
-#include <QSqlError>
 #include "database.h"
 #include "scriptablesql.h"
+#include <QJSEngine>
+#include <QSqlError>
 
 #include <QDebug>
 
@@ -12,7 +12,7 @@ namespace LocalMyList {
 ReportEngine::ReportEngine(QObject *parent) :
        QObject(parent)
 {
-       m_engine = new QScriptEngine(this);
+       m_engine = new QJSEngine(this);
        registerSqlTypes(m_engine);
 }
 
@@ -23,10 +23,7 @@ QSqlQuery ReportEngine::query() const
        return q;
 }
 
-QScriptEngine *ReportEngine::engine() const
-{
-       return m_engine;
-}
+QJSEngine *ReportEngine::engine() const { return m_engine; }
 
 void ReportEngine::run(const Report &report)
 {
@@ -36,8 +33,8 @@ void ReportEngine::run(const Report &report)
 void ReportEngine::run(const QString &report)
 {
        m_engine->evaluate(report);
-       if (m_engine->hasUncaughtException())
-               qDebug() << m_engine->uncaughtException().toString();
+       if (m_engine->hasError())
+               qDebug() << m_engine->catchError().toString();
 }
 
 } // namespace LocalMyList
index 79f55c3462751cc033fb24cbc98dbed91779f538..639b8ec4b8d3a1cf02c8471a6142a7970fff23b3 100644 (file)
@@ -4,10 +4,9 @@
 #include "localmylist_global.h"
 #include <QObject>
 
+#include <QJSEngine>
 #include <QSqlQuery>
 
-class QScriptEngine;
-
 namespace LocalMyList {
 
 struct Report;
@@ -16,13 +15,13 @@ class LOCALMYLISTSHARED_EXPORT ReportEngine : public QObject
 {
        Q_OBJECT
        Q_PROPERTY(QSqlQuery query READ query)
-       Q_PROPERTY(QScriptEngine *engine READ engine)
+       Q_PROPERTY(QJSEngine *engine READ engine)
 
 public:
        explicit ReportEngine(QObject *parent = 0);
        
        QSqlQuery query() const;
-       QScriptEngine *engine() const;
+       QJSEngine *engine() const;
 signals:
        
 public slots:
@@ -30,7 +29,7 @@ public slots:
        void run(const QString &report);
 
 private:
-       QScriptEngine *m_engine;
+       QJSEngine *m_engine;
 };
 
 } // namespace LocalMyList
index 62f151a85ccf44ab24043b8a52f4960119d1cf8d..dc79c1be03ca7babe329be245a106b1e74a08753 100644 (file)
@@ -631,7 +631,7 @@ void RequestHandler::myListAddReplyComplete(bool success)
                        f.myWatched = QDateTime::currentDateTime();
 
                f.myState = reply->command().state();
-               f.mySource = reply->command().state();
+               f.mySource = reply->command().source();
                f.myStorage = reply->command().storage();
                f.myOther = reply->command().other();
                db->setFile(f);
index c33823cf50d91a94880d7842b98fc2215984b9c7..746e6251a9c76a300db458b28f9e76c2da219a63 100644 (file)
 #include "scriptable.h"
 
-#include "mylist.h"
-#include "database.h"
-#include "settings.h"
+#include <AucQJSEngineFunction/aucqjsenginefunction.h>
 
 namespace LocalMyList {
 
-void registerTypes(QScriptEngine *engine)
-{
-       qScriptRegisterMetaType<MyList*>(engine, Scriptable::toScriptValue<MyList*>, Scriptable::fromScriptValue<MyList*>);
-       qScriptRegisterMetaType<Database*>(engine, Scriptable::toScriptValue<Database*>, Scriptable::fromScriptValue<Database*>);
-       qScriptRegisterMetaType<Settings*>(engine, Scriptable::toScriptValue<Settings*>, Scriptable::fromScriptValue<Settings*>);
-
-       engine->globalObject().setProperty("toSearchQuery", engine->newFunction(Scriptable::toSearchQuery));
-
-       Scriptable::AnimeTitle *AnimeTitlePrototype = new Scriptable::AnimeTitle();
-       engine->setDefaultPrototype(qMetaTypeId<AnimeTitle>(), engine->newQObject(AnimeTitlePrototype));
-       engine->setDefaultPrototype(qMetaTypeId<AnimeTitle*>(), engine->newQObject(AnimeTitlePrototype));
-       qScriptRegisterSequenceMetaType<QList<AnimeTitle> >(engine);
-       qScriptRegisterSequenceMetaType<QList<AnimeTitle*> >(engine);
-       Scriptable::Anime *AnimePrototype = new Scriptable::Anime();
-       engine->setDefaultPrototype(qMetaTypeId<Anime>(), engine->newQObject(AnimePrototype));
-       engine->setDefaultPrototype(qMetaTypeId<Anime*>(), engine->newQObject(AnimePrototype));
-       qScriptRegisterSequenceMetaType<QList<Anime> >(engine);
-       qScriptRegisterSequenceMetaType<QList<Anime*> >(engine);
-       engine->globalObject().setProperty("Anime", engine->newFunction(Scriptable::Anime_ctor));
-       Scriptable::Episode *EpisodePrototype = new Scriptable::Episode();
-       engine->setDefaultPrototype(qMetaTypeId<Episode>(), engine->newQObject(EpisodePrototype));
-       engine->setDefaultPrototype(qMetaTypeId<Episode*>(), engine->newQObject(EpisodePrototype));
-       qScriptRegisterSequenceMetaType<QList<Episode> >(engine);
-       qScriptRegisterSequenceMetaType<QList<Episode*> >(engine);
-       engine->globalObject().setProperty("Episode", engine->newFunction(Scriptable::Episode_ctor));
-       Scriptable::File *FilePrototype = new Scriptable::File();
-       engine->setDefaultPrototype(qMetaTypeId<File>(), engine->newQObject(FilePrototype));
-       engine->setDefaultPrototype(qMetaTypeId<File*>(), engine->newQObject(FilePrototype));
-       qScriptRegisterSequenceMetaType<QList<File> >(engine);
-       qScriptRegisterSequenceMetaType<QList<File*> >(engine);
-       engine->globalObject().setProperty("File", engine->newFunction(Scriptable::File_ctor));
-       Scriptable::FileLocation *FileLocationPrototype = new Scriptable::FileLocation();
-       engine->setDefaultPrototype(qMetaTypeId<FileLocation>(), engine->newQObject(FileLocationPrototype));
-       engine->setDefaultPrototype(qMetaTypeId<FileLocation*>(), engine->newQObject(FileLocationPrototype));
-       qScriptRegisterSequenceMetaType<QList<FileLocation> >(engine);
-       qScriptRegisterSequenceMetaType<QList<FileLocation*> >(engine);
-       engine->globalObject().setProperty("FileLocation", engine->newFunction(Scriptable::FileLocation_ctor));
-       Scriptable::UnknownFile *UnknownFilePrototype = new Scriptable::UnknownFile();
-       engine->setDefaultPrototype(qMetaTypeId<UnknownFile>(), engine->newQObject(UnknownFilePrototype));
-       engine->setDefaultPrototype(qMetaTypeId<UnknownFile*>(), engine->newQObject(UnknownFilePrototype));
-       qScriptRegisterSequenceMetaType<QList<UnknownFile> >(engine);
-       qScriptRegisterSequenceMetaType<QList<UnknownFile*> >(engine);
-       engine->globalObject().setProperty("UnknownFile", engine->newFunction(Scriptable::UnknownFile_ctor));
-       Scriptable::FileEpisodeRel *FileEpisodeRelPrototype = new Scriptable::FileEpisodeRel();
-       engine->setDefaultPrototype(qMetaTypeId<FileEpisodeRel>(), engine->newQObject(FileEpisodeRelPrototype));
-       engine->setDefaultPrototype(qMetaTypeId<FileEpisodeRel*>(), engine->newQObject(FileEpisodeRelPrototype));
-       qScriptRegisterSequenceMetaType<QList<FileEpisodeRel> >(engine);
-       qScriptRegisterSequenceMetaType<QList<FileEpisodeRel*> >(engine);
-       engine->globalObject().setProperty("FileEpisodeRel", engine->newFunction(Scriptable::FileEpisodeRel_ctor));
-       Scriptable::PendingRequest *PendingRequestPrototype = new Scriptable::PendingRequest();
-       engine->setDefaultPrototype(qMetaTypeId<PendingRequest>(), engine->newQObject(PendingRequestPrototype));
-       engine->setDefaultPrototype(qMetaTypeId<PendingRequest*>(), engine->newQObject(PendingRequestPrototype));
-       qScriptRegisterSequenceMetaType<QList<PendingRequest> >(engine);
-       qScriptRegisterSequenceMetaType<QList<PendingRequest*> >(engine);
-       engine->globalObject().setProperty("PendingRequest", engine->newFunction(Scriptable::PendingRequest_ctor));
-       Scriptable::PendingMyListUpdate *PendingMyListUpdatePrototype = new Scriptable::PendingMyListUpdate();
-       engine->setDefaultPrototype(qMetaTypeId<PendingMyListUpdate>(), engine->newQObject(PendingMyListUpdatePrototype));
-       engine->setDefaultPrototype(qMetaTypeId<PendingMyListUpdate*>(), engine->newQObject(PendingMyListUpdatePrototype));
-       qScriptRegisterSequenceMetaType<QList<PendingMyListUpdate> >(engine);
-       qScriptRegisterSequenceMetaType<QList<PendingMyListUpdate*> >(engine);
-       engine->globalObject().setProperty("PendingMyListUpdate", engine->newFunction(Scriptable::PendingMyListUpdate_ctor));
-       Scriptable::HostInfo *HostInfoPrototype = new Scriptable::HostInfo();
-       engine->setDefaultPrototype(qMetaTypeId<HostInfo>(), engine->newQObject(HostInfoPrototype));
-       engine->setDefaultPrototype(qMetaTypeId<HostInfo*>(), engine->newQObject(HostInfoPrototype));
-       qScriptRegisterSequenceMetaType<QList<HostInfo> >(engine);
-       qScriptRegisterSequenceMetaType<QList<HostInfo*> >(engine);
-       engine->globalObject().setProperty("HostInfo", engine->newFunction(Scriptable::HostInfo_ctor));
-       Scriptable::OpenFileData *OpenFileDataPrototype = new Scriptable::OpenFileData();
-       engine->setDefaultPrototype(qMetaTypeId<OpenFileData>(), engine->newQObject(OpenFileDataPrototype));
-       engine->setDefaultPrototype(qMetaTypeId<OpenFileData*>(), engine->newQObject(OpenFileDataPrototype));
-       qScriptRegisterSequenceMetaType<QList<OpenFileData> >(engine);
-       qScriptRegisterSequenceMetaType<QList<OpenFileData*> >(engine);
-       engine->globalObject().setProperty("OpenFileData", engine->newFunction(Scriptable::OpenFileData_ctor));
-       Scriptable::DatabaseConnectionSettings *DatabaseConnectionSettingsPrototype = new Scriptable::DatabaseConnectionSettings();
-       engine->setDefaultPrototype(qMetaTypeId<DatabaseConnectionSettings>(), engine->newQObject(DatabaseConnectionSettingsPrototype));
-       engine->setDefaultPrototype(qMetaTypeId<DatabaseConnectionSettings*>(), engine->newQObject(DatabaseConnectionSettingsPrototype));
-       qScriptRegisterSequenceMetaType<QList<DatabaseConnectionSettings> >(engine);
-       qScriptRegisterSequenceMetaType<QList<DatabaseConnectionSettings*> >(engine);
-       engine->globalObject().setProperty("DatabaseConnectionSettings", engine->newFunction(Scriptable::DatabaseConnectionSettings_ctor));
+void registerTypes(QJSEngine *engine)
+{
+       engine->globalObject().setProperty(
+               "MyList", engine->newQObject(LocalMyList::instance()));
+       engine->globalObject().setProperty(
+               "Database", engine->newQObject(LocalMyList::instance()->database()));
+       engine->globalObject().setProperty(
+               "Settings", engine->newQObject(LocalMyList::instance()->settings()));
+
+       engine->newQMetaObject<Scriptable::AnimeTitle>();
+       engine->newQMetaObject<Scriptable::Anime>();
+       engine->newQMetaObject<Scriptable::Episode>();
+       engine->newQMetaObject<Scriptable::File>();
+       engine->newQMetaObject<Scriptable::FileLocation>();
+       engine->newQMetaObject<Scriptable::UnknownFile>();
+       engine->newQMetaObject<Scriptable::FileEpisodeRel>();
+       engine->newQMetaObject<Scriptable::PendingRequest>();
+       engine->newQMetaObject<Scriptable::PendingMyListUpdate>();
+       engine->newQMetaObject<Scriptable::HostInfo>();
+       engine->newQMetaObject<Scriptable::OpenFileData>();
+       engine->newQMetaObject<Scriptable::DatabaseConnectionSettings>();
 }
 
 namespace Scriptable {
 
-::LocalMyList::AnimeTitle *AnimeTitle::thisObj() const
-{
-       return qscriptvalue_cast< ::LocalMyList::AnimeTitle*>(thisObject());
-}
-
-AnimeTitle::AnimeTitle(QObject *parent) : QObject(parent), QScriptable()
-{
-}
+AnimeTitle::AnimeTitle(QObject *parent) : QObject(parent) {}
 
 QString titleTypeToString(int titleType)
 {
@@ -123,14 +56,7 @@ QString AnimeTitle::toString() const
 
 // --------------------------------------------------------------------------------
 
-::LocalMyList::Anime *Anime::thisObj() const
-{
-       return qscriptvalue_cast< ::LocalMyList::Anime*>(thisObject());
-}
-
-Anime::Anime(QObject *parent) : QObject(parent), QScriptable()
-{
-}
+Anime::Anime(QObject *parent) : QObject(parent) {}
 
 QString Anime::toString() const
 {
@@ -139,14 +65,7 @@ QString Anime::toString() const
 
 // --------------------------------------------------------------------------------
 
-::LocalMyList::Episode *Episode::thisObj() const
-{
-       return qscriptvalue_cast< ::LocalMyList::Episode*>(thisObject());
-}
-
-Episode::Episode(QObject *parent) : QObject(parent), QScriptable()
-{
-}
+Episode::Episode(QObject *parent) : QObject(parent) {}
 
 QString Episode::toString() const
 {
@@ -155,14 +74,7 @@ QString Episode::toString() const
 
 // --------------------------------------------------------------------------------
 
-::LocalMyList::File *File::thisObj() const
-{
-       return qscriptvalue_cast< ::LocalMyList::File*>(thisObject());
-}
-
-File::File(QObject *parent) : QObject(parent), QScriptable()
-{
-}
+File::File(QObject *parent) : QObject(parent) {}
 
 QString File::toString() const
 {
@@ -171,14 +83,7 @@ QString File::toString() const
 
 // --------------------------------------------------------------------------------
 
-::LocalMyList::FileLocation *FileLocation::thisObj() const
-{
-       return qscriptvalue_cast< ::LocalMyList::FileLocation*>(thisObject());
-}
-
-FileLocation::FileLocation(QObject *parent) : QObject(parent), QScriptable()
-{
-}
+FileLocation::FileLocation(QObject *parent) : QObject(parent) {}
 
 QString FileLocation::toString() const
 {
@@ -187,14 +92,7 @@ QString FileLocation::toString() const
 
 // --------------------------------------------------------------------------------
 
-::LocalMyList::UnknownFile *UnknownFile::thisObj() const
-{
-       return qscriptvalue_cast< ::LocalMyList::UnknownFile*>(thisObject());
-}
-
-UnknownFile::UnknownFile(QObject *parent) : QObject(parent), QScriptable()
-{
-}
+UnknownFile::UnknownFile(QObject *parent) : QObject(parent) {}
 
 QString UnknownFile::toString() const
 {
@@ -203,14 +101,7 @@ QString UnknownFile::toString() const
 
 // --------------------------------------------------------------------------------
 
-::LocalMyList::FileEpisodeRel *FileEpisodeRel::thisObj() const
-{
-       return qscriptvalue_cast< ::LocalMyList::FileEpisodeRel*>(thisObject());
-}
-
-FileEpisodeRel::FileEpisodeRel(QObject *parent) : QObject(parent), QScriptable()
-{
-}
+FileEpisodeRel::FileEpisodeRel(QObject *parent) : QObject(parent) {}
 
 QString FileEpisodeRel::toString() const
 {
@@ -219,14 +110,7 @@ QString FileEpisodeRel::toString() const
 
 // --------------------------------------------------------------------------------
 
-::LocalMyList::PendingRequest *PendingRequest::thisObj() const
-{
-       return qscriptvalue_cast< ::LocalMyList::PendingRequest*>(thisObject());
-}
-
-PendingRequest::PendingRequest(QObject *parent) : QObject(parent), QScriptable()
-{
-}
+PendingRequest::PendingRequest(QObject *parent) : QObject(parent) {}
 
 QString PendingRequest::toString() const
 {
@@ -235,14 +119,7 @@ QString PendingRequest::toString() const
 
 // --------------------------------------------------------------------------------
 
-::LocalMyList::PendingMyListUpdate *PendingMyListUpdate::thisObj() const
-{
-       return qscriptvalue_cast< ::LocalMyList::PendingMyListUpdate*>(thisObject());
-}
-
-PendingMyListUpdate::PendingMyListUpdate(QObject *parent) : QObject(parent), QScriptable()
-{
-}
+PendingMyListUpdate::PendingMyListUpdate(QObject *parent) : QObject(parent) {}
 
 QString PendingMyListUpdate::toString() const
 {
@@ -251,14 +128,7 @@ QString PendingMyListUpdate::toString() const
 
 // --------------------------------------------------------------------------------
 
-::LocalMyList::HostInfo *HostInfo::thisObj() const
-{
-       return qscriptvalue_cast< ::LocalMyList::HostInfo*>(thisObject());
-}
-
-HostInfo::HostInfo(QObject *parent) : QObject(parent), QScriptable()
-{
-}
+HostInfo::HostInfo(QObject *parent) : QObject(parent) {}
 
 QString HostInfo::toString() const
 {
@@ -267,14 +137,7 @@ QString HostInfo::toString() const
 
 // --------------------------------------------------------------------------------
 
-::LocalMyList::OpenFileData *OpenFileData::thisObj() const
-{
-       return qscriptvalue_cast< ::LocalMyList::OpenFileData*>(thisObject());
-}
-
-OpenFileData::OpenFileData(QObject *parent) : QObject(parent), QScriptable()
-{
-}
+OpenFileData::OpenFileData(QObject *parent) : QObject(parent) {}
 
 QString OpenFileData::toString() const
 {
@@ -283,12 +146,8 @@ QString OpenFileData::toString() const
 
 // --------------------------------------------------------------------------------
 
-::LocalMyList::DatabaseConnectionSettings *DatabaseConnectionSettings::thisObj() const
-{
-       return qscriptvalue_cast< ::LocalMyList::DatabaseConnectionSettings*>(thisObject());
-}
-
-DatabaseConnectionSettings::DatabaseConnectionSettings(QObject *parent) : QObject(parent), QScriptable()
+DatabaseConnectionSettings::DatabaseConnectionSettings(QObject *parent)
+       : QObject(parent)
 {
 }
 
@@ -301,1896 +160,556 @@ QString DatabaseConnectionSettings::toString() const
 //                                   Generated
 // --------------------------------------------------------------------------------
 
-int AnimeTitle::read_aid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->aid;
-}
+int AnimeTitle::read_aid() const { return aid; }
 
-void AnimeTitle::write_aid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->aid = val;
-}
+void AnimeTitle::write_aid(int val) { aid = val; }
 
-int AnimeTitle::read_type() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return int(o->type);
-}
+int AnimeTitle::read_type() const { return int(type); }
 
 void AnimeTitle::write_type(int val)
 {
-       auto o = thisObj();
-       if (!o) return;
-       o->type = ::LocalMyList::AnimeTitle::TitleType(val);
+       type = ::LocalMyList::AnimeTitle::TitleType(val);
 }
 
-QString AnimeTitle::read_language() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->language;
-}
+QString AnimeTitle::read_language() const { return language; }
 
-void AnimeTitle::write_language(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->language = val;
-}
+void AnimeTitle::write_language(QString val) { language = val; }
 
-QString AnimeTitle::read_title() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->title;
-}
+QString AnimeTitle::read_title() const { return title; }
 
-void AnimeTitle::write_title(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->title = val;
-}
+void AnimeTitle::write_title(QString val) { title = val; }
 
 // --------------------------------------------------------------------------------
 
-int Anime::read_aid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->aid;
-}
+int Anime::read_aid() const { return aid; }
 
-void Anime::write_aid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->aid = val;
-}
+void Anime::write_aid(int val) { aid = val; }
 
-QDateTime Anime::read_entryAdded() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->entryAdded;
-}
+QDateTime Anime::read_entryAdded() const { return entryAdded; }
 
-void Anime::write_entryAdded(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->entryAdded = val;
-}
+void Anime::write_entryAdded(QDateTime val) { entryAdded = val; }
 
-QDateTime Anime::read_anidbUpdate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->anidbUpdate;
-}
+QDateTime Anime::read_anidbUpdate() const { return anidbUpdate; }
 
-void Anime::write_anidbUpdate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->anidbUpdate = val;
-}
+void Anime::write_anidbUpdate(QDateTime val) { anidbUpdate = val; }
 
-QDateTime Anime::read_entryUpdate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->entryUpdate;
-}
+QDateTime Anime::read_entryUpdate() const { return entryUpdate; }
 
-void Anime::write_entryUpdate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->entryUpdate = val;
-}
+void Anime::write_entryUpdate(QDateTime val) { entryUpdate = val; }
 
-QDateTime Anime::read_myUpdate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->myUpdate;
-}
+QDateTime Anime::read_myUpdate() const { return myUpdate; }
 
-void Anime::write_myUpdate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myUpdate = val;
-}
+void Anime::write_myUpdate(QDateTime val) { myUpdate = val; }
 
-QString Anime::read_titleEnglish() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->titleEnglish;
-}
+QString Anime::read_titleEnglish() const { return titleEnglish; }
 
-void Anime::write_titleEnglish(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->titleEnglish = val;
-}
+void Anime::write_titleEnglish(QString val) { titleEnglish = val; }
 
-QString Anime::read_titleRomaji() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->titleRomaji;
-}
+QString Anime::read_titleRomaji() const { return titleRomaji; }
 
-void Anime::write_titleRomaji(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->titleRomaji = val;
-}
+void Anime::write_titleRomaji(QString val) { titleRomaji = val; }
 
-QString Anime::read_titleKanji() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->titleKanji;
-}
+QString Anime::read_titleKanji() const { return titleKanji; }
 
-void Anime::write_titleKanji(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->titleKanji = val;
-}
+void Anime::write_titleKanji(QString val) { titleKanji = val; }
 
-QString Anime::read_description() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->description;
-}
+QString Anime::read_description() const { return description; }
 
-void Anime::write_description(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->description = val;
-}
+void Anime::write_description(QString val) { description = val; }
 
-QString Anime::read_year() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->year;
-}
+QString Anime::read_year() const { return year; }
 
-void Anime::write_year(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->year = val;
-}
+void Anime::write_year(QString val) { year = val; }
 
-QDateTime Anime::read_startDate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->startDate;
-}
+QDateTime Anime::read_startDate() const { return startDate; }
 
-void Anime::write_startDate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->startDate = val;
-}
+void Anime::write_startDate(QDateTime val) { startDate = val; }
 
-QDateTime Anime::read_endDate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->endDate;
-}
+QDateTime Anime::read_endDate() const { return endDate; }
 
-void Anime::write_endDate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->endDate = val;
-}
+void Anime::write_endDate(QDateTime val) { endDate = val; }
 
-QString Anime::read_type() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->type;
-}
+QString Anime::read_type() const { return type; }
 
-void Anime::write_type(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->type = val;
-}
+void Anime::write_type(QString val) { type = val; }
 
-int Anime::read_totalEpisodeCount() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->totalEpisodeCount;
-}
+int Anime::read_totalEpisodeCount() const { return totalEpisodeCount; }
 
-void Anime::write_totalEpisodeCount(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->totalEpisodeCount = val;
-}
+void Anime::write_totalEpisodeCount(int val) { totalEpisodeCount = val; }
 
-int Anime::read_highestEpno() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->highestEpno;
-}
+int Anime::read_highestEpno() const { return highestEpno; }
 
-void Anime::write_highestEpno(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->highestEpno = val;
-}
+void Anime::write_highestEpno(int val) { highestEpno = val; }
 
-double Anime::read_rating() const
-{
-       auto o = thisObj();
-       if (!o) return double();
-       return o->rating;
-}
+double Anime::read_rating() const { return rating; }
 
-void Anime::write_rating(double val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->rating = val;
-}
+void Anime::write_rating(double val) { rating = val; }
 
-int Anime::read_votes() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->votes;
-}
+int Anime::read_votes() const { return votes; }
 
-void Anime::write_votes(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->votes = val;
-}
+void Anime::write_votes(int val) { votes = val; }
 
-double Anime::read_tempRating() const
-{
-       auto o = thisObj();
-       if (!o) return double();
-       return o->tempRating;
-}
+double Anime::read_tempRating() const { return tempRating; }
 
-void Anime::write_tempRating(double val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->tempRating = val;
-}
+void Anime::write_tempRating(double val) { tempRating = val; }
 
-int Anime::read_tempVotes() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->tempVotes;
-}
+int Anime::read_tempVotes() const { return tempVotes; }
 
-void Anime::write_tempVotes(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->tempVotes = val;
-}
+void Anime::write_tempVotes(int val) { tempVotes = val; }
 
-double Anime::read_myVote() const
-{
-       auto o = thisObj();
-       if (!o) return double();
-       return o->myVote;
-}
+double Anime::read_myVote() const { return myVote; }
 
-void Anime::write_myVote(double val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myVote = val;
-}
+void Anime::write_myVote(double val) { myVote = val; }
 
-QDateTime Anime::read_myVoteDate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->myVoteDate;
-}
+QDateTime Anime::read_myVoteDate() const { return myVoteDate; }
 
-void Anime::write_myVoteDate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myVoteDate = val;
-}
+void Anime::write_myVoteDate(QDateTime val) { myVoteDate = val; }
 
-double Anime::read_myTempVote() const
-{
-       auto o = thisObj();
-       if (!o) return double();
-       return o->myTempVote;
-}
+double Anime::read_myTempVote() const { return myTempVote; }
 
-void Anime::write_myTempVote(double val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myTempVote = val;
-}
+void Anime::write_myTempVote(double val) { myTempVote = val; }
 
-QDateTime Anime::read_myTempVoteDate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->myTempVoteDate;
-}
+QDateTime Anime::read_myTempVoteDate() const { return myTempVoteDate; }
 
-void Anime::write_myTempVoteDate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myTempVoteDate = val;
-}
+void Anime::write_myTempVoteDate(QDateTime val) { myTempVoteDate = val; }
 
 // --------------------------------------------------------------------------------
 
-int Episode::read_eid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->eid;
-}
+int Episode::read_eid() const { return eid; }
 
-void Episode::write_eid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->eid = val;
-}
+void Episode::write_eid(int val) { eid = val; }
 
-int Episode::read_aid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->aid;
-}
+int Episode::read_aid() const { return aid; }
 
-void Episode::write_aid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->aid = val;
-}
+void Episode::write_aid(int val) { aid = val; }
 
-QDateTime Episode::read_entryAdded() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->entryAdded;
-}
+QDateTime Episode::read_entryAdded() const { return entryAdded; }
 
-void Episode::write_entryAdded(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->entryAdded = val;
-}
+void Episode::write_entryAdded(QDateTime val) { entryAdded = val; }
 
-QDateTime Episode::read_anidbUpdate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->anidbUpdate;
-}
+QDateTime Episode::read_anidbUpdate() const { return anidbUpdate; }
 
-void Episode::write_anidbUpdate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->anidbUpdate = val;
-}
+void Episode::write_anidbUpdate(QDateTime val) { anidbUpdate = val; }
 
-QDateTime Episode::read_entryUpdate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->entryUpdate;
-}
+QDateTime Episode::read_entryUpdate() const { return entryUpdate; }
 
-void Episode::write_entryUpdate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->entryUpdate = val;
-}
+void Episode::write_entryUpdate(QDateTime val) { entryUpdate = val; }
 
-QDateTime Episode::read_myUpdate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->myUpdate;
-}
+QDateTime Episode::read_myUpdate() const { return myUpdate; }
 
-void Episode::write_myUpdate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myUpdate = val;
-}
+void Episode::write_myUpdate(QDateTime val) { myUpdate = val; }
 
-int Episode::read_epno() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->epno;
-}
+int Episode::read_epno() const { return epno; }
 
-void Episode::write_epno(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->epno = val;
-}
+void Episode::write_epno(int val) { epno = val; }
 
-QString Episode::read_titleEnglish() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->titleEnglish;
-}
+QString Episode::read_titleEnglish() const { return titleEnglish; }
 
-void Episode::write_titleEnglish(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->titleEnglish = val;
-}
+void Episode::write_titleEnglish(QString val) { titleEnglish = val; }
 
-QString Episode::read_titleRomaji() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->titleRomaji;
-}
+QString Episode::read_titleRomaji() const { return titleRomaji; }
 
-void Episode::write_titleRomaji(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->titleRomaji = val;
-}
+void Episode::write_titleRomaji(QString val) { titleRomaji = val; }
 
-QString Episode::read_titleKanji() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->titleKanji;
-}
+QString Episode::read_titleKanji() const { return titleKanji; }
 
-void Episode::write_titleKanji(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->titleKanji = val;
-}
+void Episode::write_titleKanji(QString val) { titleKanji = val; }
 
-int Episode::read_length() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->length;
-}
+int Episode::read_length() const { return length; }
 
-void Episode::write_length(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->length = val;
-}
+void Episode::write_length(int val) { length = val; }
 
-QDateTime Episode::read_airdate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->airdate;
-}
+QDateTime Episode::read_airdate() const { return airdate; }
 
-void Episode::write_airdate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->airdate = val;
-}
+void Episode::write_airdate(QDateTime val) { airdate = val; }
 
-int Episode::read_state() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->state;
-}
+int Episode::read_state() const { return state; }
 
-void Episode::write_state(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->state = val;
-}
+void Episode::write_state(int val) { state = val; }
 
-QString Episode::read_type() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->type;
-}
+QString Episode::read_type() const { return type; }
 
-void Episode::write_type(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->type = val;
-}
+void Episode::write_type(QString val) { type = val; }
 
-bool Episode::read_recap() const
-{
-       auto o = thisObj();
-       if (!o) return bool();
-       return o->recap;
-}
+bool Episode::read_recap() const { return recap; }
 
-void Episode::write_recap(bool val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->recap = val;
-}
+void Episode::write_recap(bool val) { recap = val; }
 
-double Episode::read_rating() const
-{
-       auto o = thisObj();
-       if (!o) return double();
-       return o->rating;
-}
+double Episode::read_rating() const { return rating; }
 
-void Episode::write_rating(double val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->rating = val;
-}
+void Episode::write_rating(double val) { rating = val; }
 
-int Episode::read_votes() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->votes;
-}
+int Episode::read_votes() const { return votes; }
 
-void Episode::write_votes(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->votes = val;
-}
+void Episode::write_votes(int val) { votes = val; }
 
-double Episode::read_myVote() const
-{
-       auto o = thisObj();
-       if (!o) return double();
-       return o->myVote;
-}
+double Episode::read_myVote() const { return myVote; }
 
-void Episode::write_myVote(double val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myVote = val;
-}
+void Episode::write_myVote(double val) { myVote = val; }
 
-QDateTime Episode::read_myVoteDate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->myVoteDate;
-}
+QDateTime Episode::read_myVoteDate() const { return myVoteDate; }
 
-void Episode::write_myVoteDate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myVoteDate = val;
-}
+void Episode::write_myVoteDate(QDateTime val) { myVoteDate = val; }
 
 // --------------------------------------------------------------------------------
 
-int File::read_fid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->fid;
-}
+int File::read_fid() const { return fid; }
 
-void File::write_fid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->fid = val;
-}
+void File::write_fid(int val) { fid = val; }
 
-int File::read_eid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->eid;
-}
+int File::read_eid() const { return eid; }
 
-void File::write_eid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->eid = val;
-}
+void File::write_eid(int val) { eid = val; }
 
-int File::read_aid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->aid;
-}
+int File::read_aid() const { return aid; }
 
-void File::write_aid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->aid = val;
-}
+void File::write_aid(int val) { aid = val; }
 
-int File::read_gid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->gid;
-}
+int File::read_gid() const { return gid; }
 
-void File::write_gid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->gid = val;
-}
+void File::write_gid(int val) { gid = val; }
 
-QDateTime File::read_entryAdded() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->entryAdded;
-}
+QDateTime File::read_entryAdded() const { return entryAdded; }
 
-void File::write_entryAdded(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->entryAdded = val;
-}
+void File::write_entryAdded(QDateTime val) { entryAdded = val; }
 
-QDateTime File::read_anidbUpdate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->anidbUpdate;
-}
+QDateTime File::read_anidbUpdate() const { return anidbUpdate; }
 
-void File::write_anidbUpdate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->anidbUpdate = val;
-}
+void File::write_anidbUpdate(QDateTime val) { anidbUpdate = val; }
 
-QDateTime File::read_entryUpdate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->entryUpdate;
-}
+QDateTime File::read_entryUpdate() const { return entryUpdate; }
 
-void File::write_entryUpdate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->entryUpdate = val;
-}
+void File::write_entryUpdate(QDateTime val) { entryUpdate = val; }
 
-QDateTime File::read_myUpdate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->myUpdate;
-}
+QDateTime File::read_myUpdate() const { return myUpdate; }
 
-void File::write_myUpdate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myUpdate = val;
-}
+void File::write_myUpdate(QDateTime val) { myUpdate = val; }
 
-QByteArray File::read_ed2k() const
-{
-       auto o = thisObj();
-       if (!o) return QByteArray();
-       return o->ed2k;
-}
+QByteArray File::read_ed2k() const { return ed2k; }
 
-void File::write_ed2k(QByteArray val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->ed2k = val;
-}
+void File::write_ed2k(QByteArray val) { ed2k = val; }
 
-qint64 File::read_size() const
-{
-       auto o = thisObj();
-       if (!o) return qint64();
-       return o->size;
-}
+qint64 File::read_size() const { return size; }
 
-void File::write_size(qint64 val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->size = val;
-}
+void File::write_size(qint64 val) { size = val; }
 
-int File::read_length() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->length;
-}
+int File::read_length() const { return length; }
 
-void File::write_length(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->length = val;
-}
+void File::write_length(int val) { length = val; }
 
-QString File::read_extension() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->extension;
-}
+QString File::read_extension() const { return extension; }
 
-void File::write_extension(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->extension = val;
-}
+void File::write_extension(QString val) { extension = val; }
 
-QString File::read_groupName() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->groupName;
-}
+QString File::read_groupName() const { return groupName; }
 
-void File::write_groupName(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->groupName = val;
-}
+void File::write_groupName(QString val) { groupName = val; }
 
-QString File::read_groupNameShort() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->groupNameShort;
-}
+QString File::read_groupNameShort() const { return groupNameShort; }
 
-void File::write_groupNameShort(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->groupNameShort = val;
-}
+void File::write_groupNameShort(QString val) { groupNameShort = val; }
 
-QString File::read_crc() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->crc;
-}
+QString File::read_crc() const { return crc; }
 
-void File::write_crc(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->crc = val;
-}
+void File::write_crc(QString val) { crc = val; }
 
-QDateTime File::read_releaseDate() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->releaseDate;
-}
+QDateTime File::read_releaseDate() const { return releaseDate; }
 
-void File::write_releaseDate(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->releaseDate = val;
-}
+void File::write_releaseDate(QDateTime val) { releaseDate = val; }
 
-int File::read_version() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->version;
-}
+int File::read_version() const { return version; }
 
-void File::write_version(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->version = val;
-}
+void File::write_version(int val) { version = val; }
 
-bool File::read_censored() const
-{
-       auto o = thisObj();
-       if (!o) return bool();
-       return o->censored;
-}
+bool File::read_censored() const { return censored; }
 
-void File::write_censored(bool val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->censored = val;
-}
+void File::write_censored(bool val) { censored = val; }
 
-QString File::read_source() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->source;
-}
+QString File::read_source() const { return source; }
 
-void File::write_source(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->source = val;
-}
+void File::write_source(QString val) { source = val; }
 
-QString File::read_quality() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->quality;
-}
+QString File::read_quality() const { return quality; }
 
-void File::write_quality(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->quality = val;
-}
+void File::write_quality(QString val) { quality = val; }
 
-QString File::read_resolution() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->resolution;
-}
+QString File::read_resolution() const { return resolution; }
 
-void File::write_resolution(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->resolution = val;
-}
+void File::write_resolution(QString val) { resolution = val; }
 
-QString File::read_videoCodec() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->videoCodec;
-}
+QString File::read_videoCodec() const { return videoCodec; }
 
-void File::write_videoCodec(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->videoCodec = val;
-}
+void File::write_videoCodec(QString val) { videoCodec = val; }
 
-QString File::read_audioCodec() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->audioCodec;
-}
+QString File::read_audioCodec() const { return audioCodec; }
 
-void File::write_audioCodec(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->audioCodec = val;
-}
+void File::write_audioCodec(QString val) { audioCodec = val; }
 
-QString File::read_audioLanguage() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->audioLanguage;
-}
+QString File::read_audioLanguage() const { return audioLanguage; }
 
-void File::write_audioLanguage(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->audioLanguage = val;
-}
+void File::write_audioLanguage(QString val) { audioLanguage = val; }
 
-QString File::read_subtitleLanguage() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->subtitleLanguage;
-}
+QString File::read_subtitleLanguage() const { return subtitleLanguage; }
 
-void File::write_subtitleLanguage(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->subtitleLanguage = val;
-}
+void File::write_subtitleLanguage(QString val) { subtitleLanguage = val; }
 
-QString File::read_aspectRatio() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->aspectRatio;
-}
+QString File::read_aspectRatio() const { return aspectRatio; }
 
-void File::write_aspectRatio(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->aspectRatio = val;
-}
+void File::write_aspectRatio(QString val) { aspectRatio = val; }
 
-QDateTime File::read_myWatched() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->myWatched;
-}
+QDateTime File::read_myWatched() const { return myWatched; }
 
-void File::write_myWatched(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myWatched = val;
-}
+void File::write_myWatched(QDateTime val) { myWatched = val; }
 
-int File::read_myState() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->myState;
-}
+int File::read_myState() const { return myState; }
 
-void File::write_myState(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myState = val;
-}
+void File::write_myState(int val) { myState = val; }
 
-int File::read_myFileState() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->myFileState;
-}
+int File::read_myFileState() const { return myFileState; }
 
-void File::write_myFileState(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myFileState = val;
-}
+void File::write_myFileState(int val) { myFileState = val; }
 
-QString File::read_myStorage() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->myStorage;
-}
+QString File::read_myStorage() const { return myStorage; }
 
-void File::write_myStorage(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myStorage = val;
-}
+void File::write_myStorage(QString val) { myStorage = val; }
 
-QString File::read_mySource() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->mySource;
-}
+QString File::read_mySource() const { return mySource; }
 
-void File::write_mySource(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->mySource = val;
-}
+void File::write_mySource(QString val) { mySource = val; }
 
-QString File::read_myOther() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->myOther;
-}
+QString File::read_myOther() const { return myOther; }
 
-void File::write_myOther(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myOther = val;
-}
+void File::write_myOther(QString val) { myOther = val; }
 
 // --------------------------------------------------------------------------------
 
-int FileLocation::read_locationId() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->locationId;
-}
+int FileLocation::read_locationId() const { return locationId; }
 
-void FileLocation::write_locationId(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->locationId = val;
-}
+void FileLocation::write_locationId(int val) { locationId = val; }
 
-int FileLocation::read_fid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->fid;
-}
+int FileLocation::read_fid() const { return fid; }
 
-void FileLocation::write_fid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->fid = val;
-}
+void FileLocation::write_fid(int val) { fid = val; }
 
-int FileLocation::read_hostId() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->hostId;
-}
+int FileLocation::read_hostId() const { return hostId; }
 
-void FileLocation::write_hostId(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->hostId = val;
-}
+void FileLocation::write_hostId(int val) { hostId = val; }
 
-QString FileLocation::read_path() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->path;
-}
+QString FileLocation::read_path() const { return path; }
 
-void FileLocation::write_path(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->path = val;
-}
+void FileLocation::write_path(QString val) { path = val; }
 
-QDateTime FileLocation::read_renamed() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->renamed;
-}
+QDateTime FileLocation::read_renamed() const { return renamed; }
 
-void FileLocation::write_renamed(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->renamed = val;
-}
+void FileLocation::write_renamed(QDateTime val) { renamed = val; }
 
-bool FileLocation::read_failedRename() const
-{
-       auto o = thisObj();
-       if (!o) return bool();
-       return o->failedRename;
-}
+bool FileLocation::read_failedRename() const { return failedRename; }
 
-void FileLocation::write_failedRename(bool val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->failedRename = val;
-}
+void FileLocation::write_failedRename(bool val) { failedRename = val; }
 
 // --------------------------------------------------------------------------------
 
-QByteArray UnknownFile::read_ed2k() const
-{
-       auto o = thisObj();
-       if (!o) return QByteArray();
-       return o->ed2k;
-}
+QByteArray UnknownFile::read_ed2k() const { return ed2k; }
 
-void UnknownFile::write_ed2k(QByteArray val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->ed2k = val;
-}
+void UnknownFile::write_ed2k(QByteArray val) { ed2k = val; }
 
-qint64 UnknownFile::read_size() const
-{
-       auto o = thisObj();
-       if (!o) return qint64();
-       return o->size;
-}
+qint64 UnknownFile::read_size() const { return size; }
 
-void UnknownFile::write_size(qint64 val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->size = val;
-}
+void UnknownFile::write_size(qint64 val) { size = val; }
 
-int UnknownFile::read_hostId() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->hostId;
-}
+int UnknownFile::read_hostId() const { return hostId; }
 
-void UnknownFile::write_hostId(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->hostId = val;
-}
+void UnknownFile::write_hostId(int val) { hostId = val; }
 
-QString UnknownFile::read_path() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->path;
-}
+QString UnknownFile::read_path() const { return path; }
 
-void UnknownFile::write_path(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->path = val;
-}
+void UnknownFile::write_path(QString val) { path = val; }
 
 // --------------------------------------------------------------------------------
 
-int FileEpisodeRel::read_fid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->fid;
-}
+int FileEpisodeRel::read_fid() const { return fid; }
 
-void FileEpisodeRel::write_fid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->fid = val;
-}
+void FileEpisodeRel::write_fid(int val) { fid = val; }
 
-int FileEpisodeRel::read_eid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->eid;
-}
+int FileEpisodeRel::read_eid() const { return eid; }
 
-void FileEpisodeRel::write_eid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->eid = val;
-}
+void FileEpisodeRel::write_eid(int val) { eid = val; }
 
-int FileEpisodeRel::read_startPercent() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->startPercent;
-}
+int FileEpisodeRel::read_startPercent() const { return startPercent; }
 
-void FileEpisodeRel::write_startPercent(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->startPercent = val;
-}
+void FileEpisodeRel::write_startPercent(int val) { startPercent = val; }
 
-int FileEpisodeRel::read_endPercent() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->endPercent;
-}
+int FileEpisodeRel::read_endPercent() const { return endPercent; }
 
-void FileEpisodeRel::write_endPercent(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->endPercent = val;
-}
+void FileEpisodeRel::write_endPercent(int val) { endPercent = val; }
 
 // --------------------------------------------------------------------------------
 
-int PendingRequest::read_aid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->aid;
-}
+int PendingRequest::read_aid() const { return aid; }
 
-void PendingRequest::write_aid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->aid = val;
-}
+void PendingRequest::write_aid(int val) { aid = val; }
 
-int PendingRequest::read_eid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->eid;
-}
+int PendingRequest::read_eid() const { return eid; }
 
-void PendingRequest::write_eid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->eid = val;
-}
+void PendingRequest::write_eid(int val) { eid = val; }
 
-int PendingRequest::read_fid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->fid;
-}
+int PendingRequest::read_fid() const { return fid; }
 
-void PendingRequest::write_fid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->fid = val;
-}
+void PendingRequest::write_fid(int val) { fid = val; }
 
-QByteArray PendingRequest::read_ed2k() const
-{
-       auto o = thisObj();
-       if (!o) return QByteArray();
-       return o->ed2k;
-}
+QByteArray PendingRequest::read_ed2k() const { return ed2k; }
 
-void PendingRequest::write_ed2k(QByteArray val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->ed2k = val;
-}
+void PendingRequest::write_ed2k(QByteArray val) { ed2k = val; }
 
-qint64 PendingRequest::read_size() const
-{
-       auto o = thisObj();
-       if (!o) return qint64();
-       return o->size;
-}
+qint64 PendingRequest::read_size() const { return size; }
 
-void PendingRequest::write_size(qint64 val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->size = val;
-}
+void PendingRequest::write_size(qint64 val) { size = val; }
 
 // --------------------------------------------------------------------------------
 
-qint64 PendingMyListUpdate::read_updateId() const
-{
-       auto o = thisObj();
-       if (!o) return qint64();
-       return o->updateId;
-}
+qint64 PendingMyListUpdate::read_updateId() const { return updateId; }
 
-void PendingMyListUpdate::write_updateId(qint64 val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->updateId = val;
-}
+void PendingMyListUpdate::write_updateId(qint64 val) { updateId = val; }
 
-int PendingMyListUpdate::read_fid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->fid;
-}
+int PendingMyListUpdate::read_fid() const { return fid; }
 
-void PendingMyListUpdate::write_fid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->fid = val;
-}
+void PendingMyListUpdate::write_fid(int val) { fid = val; }
 
-bool PendingMyListUpdate::read_setMyWatched() const
-{
-       auto o = thisObj();
-       if (!o) return bool();
-       return o->setMyWatched;
-}
+bool PendingMyListUpdate::read_setMyWatched() const { return setMyWatched; }
 
-void PendingMyListUpdate::write_setMyWatched(bool val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->setMyWatched = val;
-}
+void PendingMyListUpdate::write_setMyWatched(bool val) { setMyWatched = val; }
 
-QDateTime PendingMyListUpdate::read_myWatched() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->myWatched;
-}
+QDateTime PendingMyListUpdate::read_myWatched() const { return myWatched; }
 
-void PendingMyListUpdate::write_myWatched(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myWatched = val;
-}
+void PendingMyListUpdate::write_myWatched(QDateTime val) { myWatched = val; }
 
-bool PendingMyListUpdate::read_setMyState() const
-{
-       auto o = thisObj();
-       if (!o) return bool();
-       return o->setMyState;
-}
+bool PendingMyListUpdate::read_setMyState() const { return setMyState; }
 
-void PendingMyListUpdate::write_setMyState(bool val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->setMyState = val;
-}
+void PendingMyListUpdate::write_setMyState(bool val) { setMyState = val; }
 
-int PendingMyListUpdate::read_myState() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->myState;
-}
+int PendingMyListUpdate::read_myState() const { return myState; }
 
-void PendingMyListUpdate::write_myState(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myState = val;
-}
+void PendingMyListUpdate::write_myState(int val) { myState = val; }
 
-bool PendingMyListUpdate::read_setMyFileState() const
-{
-       auto o = thisObj();
-       if (!o) return bool();
-       return o->setMyFileState;
-}
+bool PendingMyListUpdate::read_setMyFileState() const { return setMyFileState; }
 
 void PendingMyListUpdate::write_setMyFileState(bool val)
 {
-       auto o = thisObj();
-       if (!o) return;
-       o->setMyFileState = val;
+       setMyFileState = val;
 }
 
-int PendingMyListUpdate::read_myFileState() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->myFileState;
-}
+int PendingMyListUpdate::read_myFileState() const { return myFileState; }
 
-void PendingMyListUpdate::write_myFileState(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myFileState = val;
-}
+void PendingMyListUpdate::write_myFileState(int val) { myFileState = val; }
 
-bool PendingMyListUpdate::read_setMyStorage() const
-{
-       auto o = thisObj();
-       if (!o) return bool();
-       return o->setMyStorage;
-}
+bool PendingMyListUpdate::read_setMyStorage() const { return setMyStorage; }
 
-void PendingMyListUpdate::write_setMyStorage(bool val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->setMyStorage = val;
-}
+void PendingMyListUpdate::write_setMyStorage(bool val) { setMyStorage = val; }
 
-QString PendingMyListUpdate::read_myStorage() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->myStorage;
-}
+QString PendingMyListUpdate::read_myStorage() const { return myStorage; }
 
-void PendingMyListUpdate::write_myStorage(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myStorage = val;
-}
+void PendingMyListUpdate::write_myStorage(QString val) { myStorage = val; }
 
-bool PendingMyListUpdate::read_setMySource() const
-{
-       auto o = thisObj();
-       if (!o) return bool();
-       return o->setMySource;
-}
+bool PendingMyListUpdate::read_setMySource() const { return setMySource; }
 
-void PendingMyListUpdate::write_setMySource(bool val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->setMySource = val;
-}
+void PendingMyListUpdate::write_setMySource(bool val) { setMySource = val; }
 
-QString PendingMyListUpdate::read_mySource() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->mySource;
-}
+QString PendingMyListUpdate::read_mySource() const { return mySource; }
 
-void PendingMyListUpdate::write_mySource(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->mySource = val;
-}
+void PendingMyListUpdate::write_mySource(QString val) { mySource = val; }
 
-bool PendingMyListUpdate::read_setMyOther() const
-{
-       auto o = thisObj();
-       if (!o) return bool();
-       return o->setMyOther;
-}
+bool PendingMyListUpdate::read_setMyOther() const { return setMyOther; }
 
-void PendingMyListUpdate::write_setMyOther(bool val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->setMyOther = val;
-}
+void PendingMyListUpdate::write_setMyOther(bool val) { setMyOther = val; }
 
-QString PendingMyListUpdate::read_myOther() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->myOther;
-}
+QString PendingMyListUpdate::read_myOther() const { return myOther; }
 
-void PendingMyListUpdate::write_myOther(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->myOther = val;
-}
+void PendingMyListUpdate::write_myOther(QString val) { myOther = val; }
 
-QDateTime PendingMyListUpdate::read_added() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->added;
-}
+QDateTime PendingMyListUpdate::read_added() const { return added; }
 
-void PendingMyListUpdate::write_added(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->added = val;
-}
+void PendingMyListUpdate::write_added(QDateTime val) { added = val; }
 
-QDateTime PendingMyListUpdate::read_started() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->started;
-}
+QDateTime PendingMyListUpdate::read_started() const { return started; }
 
-void PendingMyListUpdate::write_started(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->started = val;
-}
+void PendingMyListUpdate::write_started(QDateTime val) { started = val; }
 
-QDateTime PendingMyListUpdate::read_finished() const
-{
-       auto o = thisObj();
-       if (!o) return QDateTime();
-       return o->finished;
-}
+QDateTime PendingMyListUpdate::read_finished() const { return finished; }
 
-void PendingMyListUpdate::write_finished(QDateTime val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->finished = val;
-}
+void PendingMyListUpdate::write_finished(QDateTime val) { finished = val; }
 
 // --------------------------------------------------------------------------------
 
-int HostInfo::read_id() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->id;
-}
+int HostInfo::read_id() const { return id; }
 
-void HostInfo::write_id(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->id = val;
-}
+void HostInfo::write_id(int val) { id = val; }
 
-QString HostInfo::read_name() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->name;
-}
+QString HostInfo::read_name() const { return name; }
 
-void HostInfo::write_name(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->name = val;
-}
+void HostInfo::write_name(QString val) { name = val; }
 
-bool HostInfo::read_isUdpHost() const
-{
-       auto o = thisObj();
-       if (!o) return bool();
-       return o->isUdpHost;
-}
+bool HostInfo::read_isUdpHost() const { return isUdpHost; }
 
-void HostInfo::write_isUdpHost(bool val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->isUdpHost = val;
-}
+void HostInfo::write_isUdpHost(bool val) { isUdpHost = val; }
 
 // --------------------------------------------------------------------------------
 
-int OpenFileData::read_fid() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->fid;
-}
+int OpenFileData::read_fid() const { return fid; }
 
-void OpenFileData::write_fid(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->fid = val;
-}
+void OpenFileData::write_fid(int val) { fid = val; }
 
-QString OpenFileData::read_animeTitle() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->animeTitle;
-}
+QString OpenFileData::read_animeTitle() const { return animeTitle; }
 
-void OpenFileData::write_animeTitle(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->animeTitle = val;
-}
+void OpenFileData::write_animeTitle(QString val) { animeTitle = val; }
 
-QString OpenFileData::read_episodeTitle() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->episodeTitle;
-}
+QString OpenFileData::read_episodeTitle() const { return episodeTitle; }
 
-void OpenFileData::write_episodeTitle(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->episodeTitle = val;
-}
+void OpenFileData::write_episodeTitle(QString val) { episodeTitle = val; }
 
-int OpenFileData::read_epno() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->epno;
-}
+int OpenFileData::read_epno() const { return epno; }
 
-void OpenFileData::write_epno(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->epno = val;
-}
+void OpenFileData::write_epno(int val) { epno = val; }
 
-int OpenFileData::read_hostId() const
-{
-       auto o = thisObj();
-       if (!o) return int();
-       return o->hostId;
-}
+int OpenFileData::read_hostId() const { return hostId; }
 
-void OpenFileData::write_hostId(int val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->hostId = val;
-}
+void OpenFileData::write_hostId(int val) { hostId = val; }
 
-QString OpenFileData::read_localPath() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->localPath;
-}
+QString OpenFileData::read_localPath() const { return localPath; }
 
-void OpenFileData::write_localPath(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->localPath = val;
-}
+void OpenFileData::write_localPath(QString val) { localPath = val; }
 
-QString OpenFileData::read_path() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->path;
-}
+QString OpenFileData::read_path() const { return path; }
 
-void OpenFileData::write_path(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->path = val;
-}
+void OpenFileData::write_path(QString val) { path = val; }
 
 // --------------------------------------------------------------------------------
 
-QString DatabaseConnectionSettings::read_host() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->host;
-}
+QString DatabaseConnectionSettings::read_host() const { return host; }
 
-void DatabaseConnectionSettings::write_host(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->host = val;
-}
+void DatabaseConnectionSettings::write_host(QString val) { host = val; }
 
-quint16 DatabaseConnectionSettings::read_port() const
-{
-       auto o = thisObj();
-       if (!o) return quint16();
-       return o->port;
-}
+quint16 DatabaseConnectionSettings::read_port() const { return port; }
 
-void DatabaseConnectionSettings::write_port(quint16 val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->port = val;
-}
+void DatabaseConnectionSettings::write_port(quint16 val) { port = val; }
 
-QString DatabaseConnectionSettings::read_user() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->user;
-}
+QString DatabaseConnectionSettings::read_user() const { return user; }
 
-void DatabaseConnectionSettings::write_user(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->user = val;
-}
+void DatabaseConnectionSettings::write_user(QString val) { user = val; }
 
-QString DatabaseConnectionSettings::read_pass() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->pass;
-}
+QString DatabaseConnectionSettings::read_pass() const { return pass; }
 
-void DatabaseConnectionSettings::write_pass(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->pass = val;
-}
+void DatabaseConnectionSettings::write_pass(QString val) { pass = val; }
 
-QString DatabaseConnectionSettings::read_database() const
-{
-       auto o = thisObj();
-       if (!o) return QString();
-       return o->database;
-}
+QString DatabaseConnectionSettings::read_database() const { return database; }
 
-void DatabaseConnectionSettings::write_database(QString val)
-{
-       auto o = thisObj();
-       if (!o) return;
-       o->database = val;
-}
+void DatabaseConnectionSettings::write_database(QString val) { database = val; }
 
 // --------------------------------------------------------------------------------
 
-QScriptValue Anime_ctor(QScriptContext *, QScriptEngine *engine)
-{
-       return engine->toScriptValue(::LocalMyList::Anime());
-}
-
-QScriptValue Episode_ctor(QScriptContext *, QScriptEngine *engine)
-{
-       return engine->toScriptValue(::LocalMyList::Episode());
-}
-
-QScriptValue File_ctor(QScriptContext *, QScriptEngine *engine)
-{
-       return engine->toScriptValue(::LocalMyList::File());
-}
-
-QScriptValue FileLocation_ctor(QScriptContext *, QScriptEngine *engine)
-{
-       return engine->toScriptValue(::LocalMyList::FileLocation());
-}
-
-QScriptValue UnknownFile_ctor(QScriptContext *, QScriptEngine *engine)
-{
-       return engine->toScriptValue(::LocalMyList::UnknownFile());
-}
-
-QScriptValue FileEpisodeRel_ctor(QScriptContext *, QScriptEngine *engine)
-{
-       return engine->toScriptValue(::LocalMyList::FileEpisodeRel());
-}
-
-QScriptValue PendingRequest_ctor(QScriptContext *, QScriptEngine *engine)
-{
-       return engine->toScriptValue(::LocalMyList::PendingRequest());
-}
-
-QScriptValue PendingMyListUpdate_ctor(QScriptContext *, QScriptEngine *engine)
-{
-       return engine->toScriptValue(::LocalMyList::PendingMyListUpdate());
-}
-
-QScriptValue HostInfo_ctor(QScriptContext *, QScriptEngine *engine)
-{
-       return engine->toScriptValue(::LocalMyList::HostInfo());
-}
-
-QScriptValue OpenFileData_ctor(QScriptContext *, QScriptEngine *engine)
-{
-       return engine->toScriptValue(::LocalMyList::OpenFileData());
-}
-
-QScriptValue DatabaseConnectionSettings_ctor(QScriptContext *, QScriptEngine *engine)
-{
-       return engine->toScriptValue(::LocalMyList::DatabaseConnectionSettings());
-}
-
-QScriptValue toSearchQuery(QScriptContext *ctx, QScriptEngine *engine)
+QJSValue toSearchQuery(QJSEngine *engine)
 {
-       if (!ctx->argumentCount())
-               return engine->toScriptValue(QString());
-       return engine->toScriptValue(::LocalMyList::toSearchQuery(ctx->argument(0).toString()));
+       // TODO
+       return {};
 }
 
 } // namespace Scriptable
index ee85499966d2858fd54a5af247eca93a44f7f9ca..f8e61d2e44895f7de9ad1d60516a140de1185567 100644 (file)
@@ -3,10 +3,14 @@
 
 #include "localmylist_global.h"
 
-#include <QObject>
-#include <QtScript/QScriptable>
-#include <QtScript/QScriptEngine>
 #include <QDateTime>
+#include <QJSEngine>
+#include <QJSValue>
+#include <QObject>
+
+#include "database.h"
+#include "mylist.h"
+#include "settings.h"
 
 namespace LocalMyList {
 
@@ -23,21 +27,22 @@ struct HostInfo;
 struct OpenFileData;
 struct DatabaseConnectionSettings;
 
-void LOCALMYLISTSHARED_EXPORT registerTypes(QScriptEngine *engine);
+void LOCALMYLISTSHARED_EXPORT registerTypes(QJSEngine *engine);
 
 namespace Scriptable {
 
-template<typename T> QScriptValue toScriptValue(QScriptEngine *engine, const T &t)
-{
+template<typename T>
+QJSValue toScriptValue(QJSEngine *engine, const T &t) {
        return engine->newQObject(t);
 }
 
-template<typename T> void fromScriptValue(const QScriptValue &value, T &t)
-{
+template<typename T>
+void fromScriptValue(const QJSValue &value, T &t) {
        t = qobject_cast<T>(value.toQObject());
 }
 
-struct LOCALMYLISTSHARED_EXPORT AnimeTitle : public QObject, protected QScriptable
+struct LOCALMYLISTSHARED_EXPORT AnimeTitle : public QObject,
+                                                                                        public ::LocalMyList::AnimeTitle
 {
        Q_OBJECT
        Q_PROPERTY(int aid READ read_aid WRITE write_aid)
@@ -45,10 +50,8 @@ struct LOCALMYLISTSHARED_EXPORT AnimeTitle : public QObject, protected QScriptab
        Q_PROPERTY(QString language READ read_language WRITE write_language)
        Q_PROPERTY(QString title READ read_title WRITE write_title)
 
-       ::LocalMyList::AnimeTitle *thisObj() const;
-
 public:
-       AnimeTitle(QObject *parent = 0);
+       Q_INVOKABLE AnimeTitle(QObject *parent = 0);
 
 public slots:
        QString toString() const;
@@ -67,7 +70,8 @@ public:
        void write_title(QString val);
 };
 
-class LOCALMYLISTSHARED_EXPORT Anime : public QObject, protected QScriptable
+class LOCALMYLISTSHARED_EXPORT Anime : public QObject,
+                                                                          public ::LocalMyList::Anime
 {
        Q_OBJECT
        Q_PROPERTY(int aid READ read_aid WRITE write_aid)
@@ -94,9 +98,8 @@ class LOCALMYLISTSHARED_EXPORT Anime : public QObject, protected QScriptable
        Q_PROPERTY(double myTempVote READ read_myTempVote WRITE write_myTempVote)
        Q_PROPERTY(QDateTime myTempVoteDate READ read_myTempVoteDate WRITE write_myTempVoteDate)
 
-       ::LocalMyList::Anime *thisObj() const;
 public:
-       Anime(QObject *parent = 0);
+       Q_INVOKABLE Anime(QObject *parent = 0);
 
 public slots:
        QString toString() const;
@@ -172,7 +175,8 @@ public:
        void write_myTempVoteDate(QDateTime val);
 };
 
-class LOCALMYLISTSHARED_EXPORT Episode : public QObject, protected QScriptable
+class LOCALMYLISTSHARED_EXPORT Episode : public QObject,
+                                                                                public ::LocalMyList::Episode
 {
        Q_OBJECT
        Q_PROPERTY(int eid READ read_eid WRITE write_eid)
@@ -195,9 +199,8 @@ class LOCALMYLISTSHARED_EXPORT Episode : public QObject, protected QScriptable
        Q_PROPERTY(double myVote READ read_myVote WRITE write_myVote)
        Q_PROPERTY(QDateTime myVoteDate READ read_myVoteDate WRITE write_myVoteDate)
 
-       ::LocalMyList::Episode *thisObj() const;
 public:
-       Episode(QObject *parent = 0);
+       Q_INVOKABLE Episode(QObject *parent = 0);
 
 public slots:
        QString toString() const;
@@ -261,7 +264,7 @@ public:
        void write_myVoteDate(QDateTime val);
 };
 
-class LOCALMYLISTSHARED_EXPORT File : public QObject, protected QScriptable
+class LOCALMYLISTSHARED_EXPORT File : public QObject, ::LocalMyList::File
 {
        Q_OBJECT
        Q_PROPERTY(int fid READ read_fid WRITE write_fid)
@@ -297,9 +300,8 @@ class LOCALMYLISTSHARED_EXPORT File : public QObject, protected QScriptable
        Q_PROPERTY(QString mySource READ read_mySource WRITE write_mySource)
        Q_PROPERTY(QString myOther READ read_myOther WRITE write_myOther)
 
-       ::LocalMyList::File *thisObj() const;
 public:
-       File(QObject *parent = 0);
+       Q_INVOKABLE File(QObject *parent = 0);
 
 public slots:
        QString toString() const;
@@ -402,7 +404,8 @@ public:
        void write_myOther(QString val);
 };
 
-class LOCALMYLISTSHARED_EXPORT FileLocation : public QObject, protected QScriptable
+class LOCALMYLISTSHARED_EXPORT FileLocation : public QObject,
+                                                                                         public ::LocalMyList::FileLocation
 {
        Q_OBJECT
        Q_PROPERTY(int locationId READ read_locationId WRITE write_locationId)
@@ -412,9 +415,8 @@ class LOCALMYLISTSHARED_EXPORT FileLocation : public QObject, protected QScripta
        Q_PROPERTY(QDateTime renamed READ read_renamed WRITE write_renamed)
        Q_PROPERTY(bool failedRename READ read_failedRename WRITE write_failedRename)
 
-       ::LocalMyList::FileLocation *thisObj() const;
 public:
-       FileLocation(QObject *parent = 0);
+       Q_INVOKABLE FileLocation(QObject *parent = 0);
 
 public slots:
        QString toString() const;
@@ -439,7 +441,8 @@ public:
        void write_failedRename(bool val);
 };
 
-class LOCALMYLISTSHARED_EXPORT UnknownFile : public QObject, protected QScriptable
+class LOCALMYLISTSHARED_EXPORT UnknownFile : public QObject,
+                                                                                        public ::LocalMyList::UnknownFile
 {
        Q_OBJECT
        Q_PROPERTY(QByteArray ed2k READ read_ed2k WRITE write_ed2k)
@@ -447,9 +450,8 @@ class LOCALMYLISTSHARED_EXPORT UnknownFile : public QObject, protected QScriptab
        Q_PROPERTY(int hostId READ read_hostId WRITE write_hostId)
        Q_PROPERTY(QString path READ read_path WRITE write_path)
 
-       ::LocalMyList::UnknownFile *thisObj() const;
 public:
-       UnknownFile(QObject *parent = 0);
+       Q_INVOKABLE UnknownFile(QObject *parent = 0);
 
 public slots:
        QString toString() const;
@@ -468,7 +470,9 @@ public:
        void write_path(QString val);
 };
 
-class LOCALMYLISTSHARED_EXPORT FileEpisodeRel : public QObject, protected QScriptable
+class LOCALMYLISTSHARED_EXPORT FileEpisodeRel
+       : public QObject,
+         public ::LocalMyList::FileEpisodeRel
 {
        Q_OBJECT
        Q_PROPERTY(int fid READ read_fid WRITE write_fid)
@@ -476,9 +480,8 @@ class LOCALMYLISTSHARED_EXPORT FileEpisodeRel : public QObject, protected QScrip
        Q_PROPERTY(int startPercent READ read_startPercent WRITE write_startPercent)
        Q_PROPERTY(int endPercent READ read_endPercent WRITE write_endPercent)
 
-       ::LocalMyList::FileEpisodeRel *thisObj() const;
 public:
-       FileEpisodeRel(QObject *parent = 0);
+       Q_INVOKABLE FileEpisodeRel(QObject *parent = 0);
 
 public slots:
        QString toString() const;
@@ -497,7 +500,9 @@ public:
        void write_endPercent(int val);
 };
 
-class LOCALMYLISTSHARED_EXPORT PendingRequest : public QObject, protected QScriptable
+class LOCALMYLISTSHARED_EXPORT PendingRequest
+       : public QObject,
+         public ::LocalMyList::PendingRequest
 {
        Q_OBJECT
        Q_PROPERTY(int aid READ read_aid WRITE write_aid)
@@ -506,9 +511,8 @@ class LOCALMYLISTSHARED_EXPORT PendingRequest : public QObject, protected QScrip
        Q_PROPERTY(QByteArray ed2k READ read_ed2k WRITE write_ed2k)
        Q_PROPERTY(qint64 size READ read_size WRITE write_size)
 
-       ::LocalMyList::PendingRequest *thisObj() const;
 public:
-       PendingRequest(QObject *parent = 0);
+       Q_INVOKABLE PendingRequest(QObject *parent = 0);
 
 public slots:
        QString toString() const;
@@ -530,7 +534,9 @@ public:
        void write_size(qint64 val);
 };
 
-class LOCALMYLISTSHARED_EXPORT PendingMyListUpdate : public QObject, protected QScriptable
+class LOCALMYLISTSHARED_EXPORT PendingMyListUpdate
+       : public QObject,
+         public ::LocalMyList::PendingMyListUpdate
 {
        Q_OBJECT
        Q_PROPERTY(qint64 updateId READ read_updateId WRITE write_updateId)
@@ -551,9 +557,8 @@ class LOCALMYLISTSHARED_EXPORT PendingMyListUpdate : public QObject, protected Q
        Q_PROPERTY(QDateTime started READ read_started WRITE write_started)
        Q_PROPERTY(QDateTime finished READ read_finished WRITE write_finished)
 
-       ::LocalMyList::PendingMyListUpdate *thisObj() const;
 public:
-       PendingMyListUpdate(QObject *parent = 0);
+       Q_INVOKABLE PendingMyListUpdate(QObject *parent = 0);
 
 public slots:
        QString toString() const;
@@ -611,16 +616,16 @@ public:
        void write_finished(QDateTime val);
 };
 
-class LOCALMYLISTSHARED_EXPORT HostInfo : public QObject, protected QScriptable
+class LOCALMYLISTSHARED_EXPORT HostInfo : public QObject,
+                                                                                 ::LocalMyList::HostInfo
 {
        Q_OBJECT
        Q_PROPERTY(int id READ read_id WRITE write_id)
        Q_PROPERTY(QString name READ read_name WRITE write_name)
        Q_PROPERTY(bool isUdpHost READ read_isUdpHost WRITE write_isUdpHost)
 
-       ::LocalMyList::HostInfo *thisObj() const;
 public:
-       HostInfo(QObject *parent = 0);
+       Q_INVOKABLE HostInfo(QObject *parent = 0);
 
 public slots:
        QString toString() const;
@@ -636,7 +641,8 @@ public:
        void write_isUdpHost(bool val);
 };
 
-class LOCALMYLISTSHARED_EXPORT OpenFileData : public QObject, protected QScriptable
+class LOCALMYLISTSHARED_EXPORT OpenFileData : public QObject,
+                                                                                         public ::LocalMyList::OpenFileData
 {
        Q_OBJECT
        Q_PROPERTY(int fid READ read_fid WRITE write_fid)
@@ -647,9 +653,8 @@ class LOCALMYLISTSHARED_EXPORT OpenFileData : public QObject, protected QScripta
        Q_PROPERTY(QString localPath READ read_localPath WRITE write_localPath)
        Q_PROPERTY(QString path READ read_path WRITE write_path)
 
-       ::LocalMyList::OpenFileData *thisObj() const;
 public:
-       OpenFileData(QObject *parent = 0);
+       Q_INVOKABLE OpenFileData(QObject *parent = 0);
 
 public slots:
        QString toString() const;
@@ -677,7 +682,9 @@ public:
        void write_path(QString val);
 };
 
-class LOCALMYLISTSHARED_EXPORT DatabaseConnectionSettings : public QObject, protected QScriptable
+class LOCALMYLISTSHARED_EXPORT DatabaseConnectionSettings
+       : public QObject,
+         public ::LocalMyList::DatabaseConnectionSettings
 {
        Q_OBJECT
        Q_PROPERTY(QString host READ read_host WRITE write_host)
@@ -686,9 +693,8 @@ class LOCALMYLISTSHARED_EXPORT DatabaseConnectionSettings : public QObject, prot
        Q_PROPERTY(QString pass READ read_pass WRITE write_pass)
        Q_PROPERTY(QString database READ read_database WRITE write_database)
 
-       ::LocalMyList::DatabaseConnectionSettings *thisObj() const;
 public:
-       DatabaseConnectionSettings(QObject *parent = 0);
+       Q_INVOKABLE DatabaseConnectionSettings(QObject *parent = 0);
 
 public slots:
        QString toString() const;
@@ -710,19 +716,7 @@ public:
        void write_database(QString val);
 };
 
-QScriptValue Anime_ctor(QScriptContext *, QScriptEngine *engine);
-QScriptValue Episode_ctor(QScriptContext *, QScriptEngine *engine);
-QScriptValue File_ctor(QScriptContext *, QScriptEngine *engine);
-QScriptValue FileLocation_ctor(QScriptContext *, QScriptEngine *engine);
-QScriptValue UnknownFile_ctor(QScriptContext *, QScriptEngine *engine);
-QScriptValue FileEpisodeRel_ctor(QScriptContext *, QScriptEngine *engine);
-QScriptValue PendingRequest_ctor(QScriptContext *, QScriptEngine *engine);
-QScriptValue PendingMyListUpdate_ctor(QScriptContext *, QScriptEngine *engine);
-QScriptValue HostInfo_ctor(QScriptContext *, QScriptEngine *engine);
-QScriptValue OpenFileData_ctor(QScriptContext *, QScriptEngine *engine);
-QScriptValue DatabaseConnectionSettings_ctor(QScriptContext *, QScriptEngine *engine);
-
-QScriptValue toSearchQuery(QScriptContext *, QScriptEngine *engine);
+QJSValue toSearchQuery(QJSEngine *engine);
 } // namespace Scriptable
 
 } // namespace LocalMyList
index 231e1027b2ffc77118b19c897150a821f71febfb..647318951e5e31b49b2f520a2673e2fb939c300c 100644 (file)
@@ -1,5 +1,6 @@
 #include "scriptablesql.h"
 
+#include <QRegularExpression>
 #include <QSqlRecord>
 
 #include "mylist.h"
@@ -8,76 +9,42 @@
 
 namespace LocalMyList {
 
-void registerSqlTypes(QScriptEngine *engine)
+void registerSqlTypes(QJSEngine *engine)
 {
-       Scriptable::SqlQuery *SqlQueryPrototype = new Scriptable::SqlQuery();
-       engine->setDefaultPrototype(qMetaTypeId<QSqlQuery>(), engine->newQObject(SqlQueryPrototype));
-       engine->setDefaultPrototype(qMetaTypeId<QSqlQuery*>(), engine->newQObject(SqlQueryPrototype));
-       engine->globalObject().setProperty("SqlQuery", engine->newFunction(Scriptable::SqlQuery_ctor));
+       engine->globalObject().setProperty(
+               "SqlQuery",
+               engine->newQMetaObject(&Scriptable::SqlQuery::staticMetaObject));
 }
 
 namespace Scriptable {
 
-SqlQuery::SqlQuery(QObject *parent) :
-       QObject(parent), QScriptable()
-{
-}
+SqlQuery::SqlQuery(QObject *parent) : QObject(parent) {}
 
 bool SqlQuery::prepare(const QString &sql)
 {
-       auto o = thisObj();
-       if (!o) return false;
        QString tmp = sql;
-       tmp.replace(QRegExp("[\\n\\r]+"), " ");
-       *o = MyList::instance()->database()->prepareOneShot(tmp);
+       static QRegularExpression rx("[\\n\\r]+");
+       tmp.replace(rx, " ");
+       query = MyList::instance()->database()->prepareOneShot(tmp);
        return true;
 }
 
 bool SqlQuery::bindValue(const QString &name, const QVariant &value)
 {
-       auto o = thisObj();
-       if (!o) return false;
-       o->bindValue(name, value);
+       query.bindValue(name, value);
        return true;
 }
 
-bool SqlQuery::exec()
-{
-       auto o = thisObj();
-       if (!o) return false;
-       return MyList::instance()->database()->exec(*o);
-}
+bool SqlQuery::exec() { return MyList::instance()->database()->exec(query); }
 
-bool SqlQuery::next()
-{
-       auto o = thisObj();
-       if (!o) return false;
-       return o->next();
-}
+bool SqlQuery::next() { return query.next(); }
 
 QVariant SqlQuery::column(const QString &column)
 {
-       auto o = thisObj();
-       if (!o) return QVariant();
-       return o->record().value(column);
-}
-
-QVariant SqlQuery::columnNo(int column)
-{
-       auto o = thisObj();
-       if (!o) return QVariant();
-       return o->value(column);
+       return query.record().value(column);
 }
 
-QSqlQuery *SqlQuery::thisObj() const
-{
-       return qscriptvalue_cast<QSqlQuery *>(thisObject());
-}
-
-QScriptValue SqlQuery_ctor(QScriptContext *, QScriptEngine *engine)
-{
-       return engine->toScriptValue(QSqlQuery());
-}
+QVariant SqlQuery::columnNo(int column) { return query.value(column); }
 
 } // namespace Scriptable
 } // namespace LocalMyList
index 1f6f2eab5540c4eb0ebad1dc5a808c1c0ce58c29..b718f608733dec41ab05677381675ac2b6b5f191 100644 (file)
@@ -3,20 +3,18 @@
 
 #include "localmylist_global.h"
 
+#include <QJSEngine>
 #include <QObject>
-#include <QtScript/QScriptable>
-#include <QtScript/QScriptEngine>
 
 #include <QSqlQuery>
 
 namespace LocalMyList {
 
-void LOCALMYLISTSHARED_EXPORT registerSqlTypes(QScriptEngine *engine);
+void LOCALMYLISTSHARED_EXPORT registerSqlTypes(QJSEngine *engine);
 
 namespace Scriptable {
 
-class LOCALMYLISTSHARED_EXPORT SqlQuery : public QObject, protected QScriptable
-{
+class LOCALMYLISTSHARED_EXPORT SqlQuery : public QObject {
        Q_OBJECT
 public:
        SqlQuery(QObject *parent = 0);
@@ -33,15 +31,10 @@ public slots:
        QVariant columnNo(int column);
 
 private:
-       QSqlQuery *thisObj() const;
+       QSqlQuery query;
 };
 
-QScriptValue SqlQuery_ctor(QScriptContext *, QScriptEngine *engine);
-
 } // namespace Scriptable
 } // namespace LocalMyList
 
-Q_DECLARE_METATYPE(QSqlQuery)
-Q_DECLARE_METATYPE(QSqlQuery*)
-
 #endif // SCRIPTABLESQL_H
index 8ae75e94193c5ebbe67d8e89c1db0ae27e886c21..b3388f317f7570b081386d371625b3a2a059fc55 100644 (file)
@@ -52,6 +52,6 @@ private:
 
 } // namespace LocalMyList
 
-Q_DECLARE_METATYPE(LocalMyList::Settings*)
+Q_DECLARE_METATYPE(LocalMyList::Settings *)
 
 #endif // SETTINGS_H
index 983d316b74179d3a232b798f34980c2a6a961891..e1b181f23a3be7840db8aab3af37745f90ab7fe8 100644 (file)
@@ -1,11 +1,11 @@
 project(play-next)
 
-find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+find_package(${QT_PACKAGE} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
     Core
 )
 
 set(play-next_LIBS
-    Qt5::Core
+    ${QT_PACKAGE}::Core
     LocalMyList::LocalMyList
 )
 
index b00a516d36fdab3bdd63d132f1915ad16699e88b..0d823b54ffa272205c547203fed4d04519141a05 100644 (file)
@@ -16,14 +16,14 @@ int main(int argc, char *argv[])
        QTextStream cout(stdout);
        if (a.arguments().count() < 2)
        {
-               cout << "Usage: " << a.arguments()[0] << " TITLE" << endl;
+               cout << "Usage: " << a.arguments()[0] << " TITLE" << Qt::endl;
                return 1;
        }
 
        LocalMyList::instance()->loadLocalSettings();
        if (!LocalMyList::instance()->database()->connect())
        {
-               cout << "Could not connect to database." << endl;
+               cout << "Could not connect to database." << Qt::endl;
                return 1;
        }
 
@@ -36,7 +36,7 @@ int main(int argc, char *argv[])
 
        if (!data.fid)
        {
-               cout << "No file to watch." << endl;
+               cout << "No file to watch." << Qt::endl;
                return 1;
        }
 
@@ -48,7 +48,7 @@ int main(int argc, char *argv[])
        if (player.isEmpty())
        {
                cout << "Player is not set!\n\n";
-               cout << "Set [cli] player in " << settings.fileName() << endl;
+               cout << "Set [cli] player in " << settings.fileName() << Qt::endl;
 
                settings.beginGroup("cli");
                settings.setValue("player", "");
@@ -56,9 +56,9 @@ int main(int argc, char *argv[])
                return 1;
        }
 
-       cout << "ANIME " << data.animeTitle << endl;
-       cout << "EPISODE " << data.epno << " - " << data.episodeTitle << endl;
-       cout << "Starting player..." << endl;
+       cout << "ANIME " << data.animeTitle << Qt::endl;
+       cout << "EPISODE " << data.epno << " - " << data.episodeTitle << Qt::endl;
+       cout << "Starting player..." << Qt::endl;
 
        MyList::instance()->playFile(data);
        return 0;
index b973ea3f8a207e2bc4c5dd98e6a88f6f6e416cab..3ebd7e2078cab5f1d8d7bad1b45325d2f4483554 100644 (file)
@@ -1,15 +1,13 @@
 project(runscript)
 
-set(QT_MIN_VERSION "5.3.0")
-
-find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+find_package(${QT_PACKAGE} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
     Core
-    Script
 )
+find_package(AucQJSEngineFunction CONFIG REQUIRED)
 
 set(runscript_LIBS
-    Qt5::Core
-    Qt5::Script
+    ${QT_PACKAGE}::Core
+    AucQJSEngineFunction::AucQJSEngineFunction
     LocalMyList::LocalMyList
 )
 
index e986ef7a4ad296bcb84214be9a2209f12b090479..458043a7295efb63a78de4603c729a7bcb166e52 100644 (file)
@@ -1,30 +1,36 @@
 #include <QtCore/QCoreApplication>
 
 #include <QFile>
+#include <QJSEngine>
+#include <QJSValue>
+#include <QJSValueList>
+#include <QProcess>
 #include <QStringList>
 #include <QTextStream>
-#include <QProcess>
 
 #include "mylist.h"
 #include "database.h"
 #include "scriptable.h"
 #include "scriptablesql.h"
 
+#include <AucQJSEngineFunction/aucqjsenginefunction.h>
+
 #include <QDebug>
 
 using namespace LocalMyList;
 
-QScriptValue print(QScriptContext *ctx, QScriptEngine *engine)
+QJSValue print(const QJSValueList &args)
 {
        QTextStream cout(stdout);
-       for (int i = 0; i < ctx->argumentCount(); ++i)
+       bool first = true;
+       for (const auto &arg : args)
        {
-               cout << ctx->argument(i).toString();
-               if (i)
+               if (!first)
                        cout << " ";
+               cout << arg.toString();
        }
-       cout << endl;
-       return engine->undefinedValue();
+       cout << Qt::endl;
+       return {};
 }
 
 int main(int argc, char *argv[])
@@ -33,8 +39,9 @@ int main(int argc, char *argv[])
        QTextStream cout(stdout);
        if (a.arguments().count() < 2)
        {
-               cout << "Usage: " << a.arguments()[0] << " FILE [ARGS...]" << endl;
-               cout << "       " << a.arguments()[0] << " -e SCRIPT [-- ARGS...]" << endl;
+               cout << "Usage: " << a.arguments()[0] << " FILE [ARGS...]" << Qt::endl;
+               cout << "       " << a.arguments()[0] << " -e SCRIPT [-- ARGS...]"
+                        << Qt::endl;
                return 1;
        }
 
@@ -71,7 +78,7 @@ int main(int argc, char *argv[])
 
                if (!file.open(QIODevice::ReadOnly))
                {
-                       cout << "Failed to open file for reading." << endl;
+                       cout << "Failed to open file for reading." << Qt::endl;
                        return 1;
                }
                script = file.readAll();
@@ -80,21 +87,22 @@ int main(int argc, char *argv[])
 
        }
 
-       QScriptEngine engine;
+       QJSEngine engine;
        LocalMyList::registerTypes(&engine);
        LocalMyList::registerSqlTypes(&engine);
 
        engine.globalObject().setProperty("mylist", engine.newQObject(MyList::instance()));
        engine.globalObject().setProperty("db", engine.newQObject(MyList::instance()->database()));
-       engine.globalObject().setProperty("args", qScriptValueFromSequence(&engine, args));
-       engine.globalObject().setProperty("print", engine.newFunction(print));
+       engine.globalObject().setProperty("args", engine.toScriptValue(args));
+       AucQJSEngineFunction::registerFunction(engine, "print", print);
 
-       QScriptValue result = engine.evaluate(script);
-       if (engine.hasUncaughtException()) {
-               int lineNo = engine.uncaughtExceptionLineNumber();
+       QJSValue result = engine.evaluate(script);
+       if (result.isError())
+       {
+               int lineNo = result.property("lineNumber").toInt();
                qWarning() << "line" << lineNo << ":" << result.toString();
                return 1;
        }
-       cout << result.toString() << endl;
+       cout << result.toString() << Qt::endl;
        return 0;
 }