File indexing completed on 2024-05-12 16:59:36

0001 /*
0002     SPDX-FileCopyrightText: 2014 David Edmundson <davidedmundson@kde.org>
0003     SPDX-FileCopyrightText: 2015 Kai Uwe Broulik <kde@privat.broulik.de>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #include "notesplugin.h"
0009 #include "documenthandler.h"
0010 #include "note.h"
0011 #include "notemanager.h"
0012 
0013 // Qt
0014 #include <QFile>
0015 
0016 class NotesHelper : public QObject
0017 {
0018     Q_OBJECT
0019 
0020 public:
0021     explicit NotesHelper(QObject *parent = nullptr)
0022         : QObject(parent)
0023     {
0024     }
0025 
0026     ~NotesHelper() override = default;
0027 
0028     Q_INVOKABLE QString fileContents(const QString &path) const
0029     {
0030         const QUrl &url = QUrl::fromUserInput(path);
0031         if (!url.isValid()) {
0032             return QString();
0033         }
0034 
0035         QFile file(url.toLocalFile());
0036         if (!file.open(QIODevice::ReadOnly)) {
0037             return QString();
0038         }
0039 
0040         return QString::fromUtf8(file.readAll());
0041     }
0042 };
0043 
0044 static QObject *notesHelper_provider(QQmlEngine *, QJSEngine *)
0045 {
0046     return new NotesHelper();
0047 }
0048 
0049 void NotesPlugin::registerTypes(const char *uri)
0050 {
0051     Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.plasma.private.notes"));
0052     qmlRegisterType<DocumentHandler>(uri, 0, 1, "DocumentHandler");
0053     qmlRegisterType<NoteManager>(uri, 0, 1, "NoteManager");
0054     qmlRegisterUncreatableType<Note>(uri, 0, 1, "Note", QStringLiteral("Create through NoteManager"));
0055     qmlRegisterSingletonType<NotesHelper>(uri, 0, 1, "NotesHelper", notesHelper_provider);
0056 }
0057 
0058 #include "notesplugin.moc"