Add better unloading for ImageSource.

This commit is contained in:
John Preston 2018-10-23 17:04:42 +04:00
parent 8e7117fa22
commit f0e18ac619
2 changed files with 20 additions and 6 deletions

View file

@ -22,15 +22,19 @@ ImageSource::ImageSource(QImage &&data, const QByteArray &format)
}
void ImageSource::load(
Data::FileOrigin origin,
bool loadFirst,
bool prior) {
Data::FileOrigin origin,
bool loadFirst,
bool prior) {
if (_data.isNull() && !_bytes.isEmpty()) {
_data = App::readImage(_bytes, &_format, false);
}
}
void ImageSource::loadEvenCancelled(
Data::FileOrigin origin,
bool loadFirst,
bool prior) {
Data::FileOrigin origin,
bool loadFirst,
bool prior) {
load(origin, loadFirst, prior);
}
QImage ImageSource::takeLoaded() {
@ -38,6 +42,15 @@ QImage ImageSource::takeLoaded() {
}
void ImageSource::unload() {
if (_bytes.isEmpty() && !_data.isNull()) {
if (_format.isEmpty()) {
_format = "PNG";
}
QBuffer buffer(&_bytes);
_data.save(&buffer, _format);
}
_data = QImage();
}
void ImageSource::automaticLoad(

View file

@ -55,6 +55,7 @@ public:
private:
QImage _data;
QByteArray _format;
QByteArray _bytes;
};