#include <sstream>
Image3DDequeUR::Image3DDequeUR() {
- this->m_GlobalPath = "/home/pechan/temporal/";
+ this->m_GlobalPath = "/home/caceres/temporal/";
this->m_CurrentURPos = -1;
}
//virtual
this->CleanURContainerFromIndex(this->m_CurrentURPos + 1);
//Adding image
ImageInfoUR* imageInfo = new ImageInfoUR();
- imageInfo->SetImageName(
- this->GetImageName(this->m_ImgURDeque.size(), true));
+ imageInfo->SetImageName(this->GetImageName(this->m_ImgURDeque.size()));
imageInfo->SetImages(imgUndo, imgRedo);
imageInfo->SetImageMManager(imMManager);
//Adding to deque
//virtual
ImageInfoUR* Image3DDequeUR::Undo() {
ImageInfoUR* imgRet = NULL;
- if ((this->m_ImgURDeque.size() > 0) && (this->m_CurrentURPos != -1)) {
+ int imgURDequeSize = this->m_ImgURDeque.size();
+ if ((this->m_ImgURDeque.size() > 0) && (this->m_CurrentURPos != -1)
+ && (this->m_CurrentURPos < imgURDequeSize)) {
imgRet = this->m_ImgURDeque[m_CurrentURPos];
this->m_CurrentURPos--;
} //fi
//virtual
ImageInfoUR* Image3DDequeUR::Redo() {
ImageInfoUR* imgRet = NULL;
+ this->m_CurrentURPos++;
+ int imgURDequeSize = this->m_ImgURDeque.size();
+ if ((this->m_ImgURDeque.size() > 0) && (this->m_CurrentURPos != -1)
+ && (this->m_CurrentURPos < imgURDequeSize)) {
+ imgRet = this->m_ImgURDeque[m_CurrentURPos];
+ } //fi
+ else {
+ this->m_CurrentURPos--;
+ }
return (imgRet);
}
//virtual
//virtual
void Image3DDequeUR::ManageMemory() {
- for (int i = 0; (unsigned int) i < this->m_ImgURDeque.size(); i++) {
+ int imgURDequeSize = this->m_ImgURDeque.size();
+ for (int i = 0; i < imgURDequeSize; i++) {
if (this->m_ImgURDeque[i]->GetStatus()) {
this->m_ImgURDeque[i]->RemoveImagesFromMemory(this->m_GlobalPath);
} //fi
this->m_ImgURDeque[this->m_CurrentURPos]->LoadImagesToMemory(
this->m_GlobalPath);
}
+ int currentRedoPos = this->m_CurrentURPos + 1;
+ if ((currentRedoPos < imgURDequeSize)
+ && !(this->m_ImgURDeque[currentRedoPos]->GetStatus())) {
+ this->m_ImgURDeque[currentRedoPos]->LoadImagesToMemory(
+ this->m_GlobalPath);
+ }
}
void Image3DDequeUR::SetGlobalPath(const StringType& globalPath) {
return (this->m_GlobalPath);
}
-Image3DDequeUR::StringType Image3DDequeUR::GetImageName(const int & pos,
- const bool& undo) {
+Image3DDequeUR::StringType Image3DDequeUR::GetImageName(const int & pos) {
//Giving a name to an image using the date and time
if (this->m_IDImages.empty()) {
time_t rawtime;