Add better unloading for ImageSource.

Этот коммит содержится в:
John Preston 2018-10-23 17:04:42 +04:00
родитель 8e7117fa22
Коммит f0e18ac619
2 изменённых файлов: 20 добавлений и 6 удалений

Просмотреть файл

@ -25,12 +25,16 @@ void ImageSource::load(
Data::FileOrigin origin, Data::FileOrigin origin,
bool loadFirst, bool loadFirst,
bool prior) { bool prior) {
if (_data.isNull() && !_bytes.isEmpty()) {
_data = App::readImage(_bytes, &_format, false);
}
} }
void ImageSource::loadEvenCancelled( void ImageSource::loadEvenCancelled(
Data::FileOrigin origin, Data::FileOrigin origin,
bool loadFirst, bool loadFirst,
bool prior) { bool prior) {
load(origin, loadFirst, prior);
} }
QImage ImageSource::takeLoaded() { QImage ImageSource::takeLoaded() {
@ -38,6 +42,15 @@ QImage ImageSource::takeLoaded() {
} }
void ImageSource::unload() { 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( void ImageSource::automaticLoad(

Просмотреть файл

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