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"