Added windows build howto into README
[imgsort.git] / imagebuffer.cpp
1 #include "imagebuffer.h"
2
3
4
5 ImageBuffer::~ImageBuffer() {
6   QHashIterator<QString, IBData *> it(images);
7   while (it.hasNext()) {
8         IBData * to_delete = it.next().value();
9         delete to_delete;
10   }
11 }
12
13 void ImageBuffer::addImage(const QString & fileName) {
14   if (!fileName.isEmpty() && !images.contains(fileName)) {
15     images.insert(fileName, new IBData(fileName));
16   }
17   if (default_scr.scale_w != 0) {
18     prepareRescale(fileName);
19   }
20 }
21
22 void ImageBuffer::addRange(FBIterator && range) {
23   while (range.isValid()) {
24     addImage(*range);
25     range.next_go();
26   }
27 }
28
29 void ImageBuffer::removeImage(const QString & fileName) {
30   if (!fileName.isEmpty() && images.contains(fileName)) {
31     delete images[fileName];
32     images.remove(fileName);
33   }
34 }
35
36 void ImageBuffer::prepareRescale(const QString & fileName, ScaleCropRule scr) {
37   if (scr.scale_w > 0 && !fileName.isEmpty() && images.contains(fileName)) {
38     //qDebug() << "Preparing rescale (" << fileName << ") to : " << scr.toString();
39     images[fileName]->prepareSC(scr);
40   }
41 }
42
43 void ImageBuffer::rescaleToFile(const QString & fileName, ScaleCropRule scr, const QString & targetFile) {
44   if (scr.scale_w > 0 && !fileName.isEmpty() && images.contains(fileName)) {
45     images[fileName]->fileSC(scr, targetFile);
46   }
47 }
48
49 void ImageBuffer::waitForFileRescales() {
50   foreach (IBData * ibd, images) {
51     ibd->waitForFileRescaling();
52   }
53 }
54
55
56 QImage * ImageBuffer::getRescaled(const QString & fileName, ScaleCropRule scr) {
57   //qDebug() << "getRescaled: " << fileName << "; " << scr.toString() << "; " << images.contains(fileName);
58   if (scr.scale_w > 0 && !fileName.isEmpty() && images.contains(fileName)) {
59     return images[fileName]->getSC(scr);
60   }
61   else return NULL;
62 }
63
64 QSize ImageBuffer::getOriginalSize(const QString & fileName) {
65   if (!fileName.isEmpty() && images.contains(fileName)) {
66     return images[fileName]->getOriginalSize();
67   }
68   return QSize(0, 0);
69 }
70
71