38 lines
775 B
C
38 lines
775 B
C
|
// SPDX-License-Identifier: Unlicense
|
||
|
|
||
|
#ifndef IO_H
|
||
|
#define IO_H
|
||
|
|
||
|
#include <QFile>
|
||
|
#include <QObject>
|
||
|
#include <QString>
|
||
|
#include <QUrl>
|
||
|
#include <QtDebug>
|
||
|
|
||
|
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
|