fuzbal/io.h

38 lines
775 B
C
Raw Normal View History

// 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