// SPDX-License-Identifier: Unlicense #ifndef IO_H #define IO_H #include #include #include #include #include class IO : public QObject { Q_OBJECT public slots: void write(const QUrl &url, const QString &data) { QFile file{urlToPath(url)}; if (file.open(QIODevice::WriteOnly | QIODevice::Text)) file.write(data.toUtf8()); else qWarning() << "error opening file" << url; } QString read(const QUrl &url) { QFile file{urlToPath(url)}; if (file.open(QIODevice::ReadOnly)) return file.readAll(); qWarning() << "error opening file" << url; return {}; } private: static const QString urlToPath(const QUrl &path) { return path.scheme() == "qrc" ? (":" + path.path()) : path.toLocalFile(); } }; #endif