37 lines
775 B
C++
37 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
|