File: notesplugin.cpp

package info (click to toggle)
kdeplasma-addons 4%3A5.20.5-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 12,588 kB
  • sloc: cpp: 11,342; xml: 402; javascript: 150; sh: 56; makefile: 26
file content (72 lines) | stat: -rw-r--r-- 2,154 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
    Copyright (C) 2014 David Edmundson <davidedmundson@kde.org>
    Copyright (C) 2015 Kai Uwe Broulik <kde@privat.broulik.de>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#include "notesplugin.h"
#include "documenthandler.h"
#include "notemanager.h"
#include "note.h"

// Qt
#include <QQmlEngine>
#include <QFile>

class NotesHelper : public QObject
{
    Q_OBJECT

public:
    explicit NotesHelper(QObject *parent = nullptr) : QObject(parent)
    {

    }

    ~NotesHelper() override = default;

    Q_INVOKABLE QString fileContents(const QString &path) const
    {
        const QUrl &url = QUrl::fromUserInput(path);
        if (!url.isValid()) {
            return QString();
        }

        QFile file(url.toLocalFile());
        if (!file.open(QIODevice::ReadOnly)) {
            return QString();
        }

        return QString::fromUtf8(file.readAll());
    }
};

static QObject *notesHelper_provider(QQmlEngine *, QJSEngine *)
{
    return new NotesHelper();
}

void NotesPlugin::registerTypes (const char *uri)
{
    Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.plasma.private.notes"));
    qmlRegisterType<DocumentHandler>(uri, 0, 1, "DocumentHandler");
    qmlRegisterType<NoteManager>(uri, 0, 1, "NoteManager");
    qmlRegisterUncreatableType<Note>(uri, 0, 1, "Note", QStringLiteral("Create through NoteManager"));
    qmlRegisterSingletonType<NotesHelper>(uri, 0, 1, "NotesHelper", notesHelper_provider);

}

#include "notesplugin.moc"