From: Douglas W. <dwi...@us...> - 2005-02-02 10:08:48
|
Update of /cvsroot/hugin/hugin/src/hugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20259/src/hugin Modified Files: MainFrame.cpp PreferencesDialog.cpp Log Message: Don't add images already added when using time series. Index: PreferencesDialog.cpp =================================================================== RCS file: /cvsroot/hugin/hugin/src/hugin/PreferencesDialog.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- PreferencesDialog.cpp 1 Feb 2005 22:25:16 -0000 1.17 +++ PreferencesDialog.cpp 2 Feb 2005 10:08:39 -0000 1.18 @@ -350,7 +350,6 @@ { sprintf(str1, "Comment:\t%s\n", sResult ); strcat(str2 ,str1); - DEBUG_TRACE("PTVERSION_NAME_COMMENT" << wxString(str2, *wxConvCurrent).mb_str()); } if((pfQFString) (PTVERSION_NAME_LEGALCOPYRIGHT, sResult, sizeof(sResult)/sizeof(sResult[0]) )) @@ -367,7 +366,6 @@ { sprintf(str1, "Optimizer Error:\t%s\n", iResult? "dist sphere" : "dist rect" ); strcat(str2 ,str1); - DEBUG_TRACE("PTVERSION_NAME_LEGALCOPYRIGHT" << wxString(str2, *wxConvCurrent).mb_str()); } } Index: MainFrame.cpp =================================================================== RCS file: /cvsroot/hugin/hugin/src/hugin/MainFrame.cpp,v retrieving revision 1.129 retrieving revision 1.130 diff -u -d -r1.129 -r1.130 --- MainFrame.cpp 1 Feb 2005 13:05:34 -0000 1.129 +++ MainFrame.cpp 2 Feb 2005 10:08:39 -0000 1.130 @@ -620,7 +620,7 @@ dlg.SetFilterIndex(2); else if (img_ext == wxT("all")) dlg.SetFilterIndex(3); - DEBUG_TRACE ( img_ext ) + DEBUG_TRACE ( "Image extention: " << img_ext.mb_str() ) // call the file dialog if (dlg.ShowModal() == wxID_OK) { @@ -652,7 +652,7 @@ SetStatusText( _("Add Image: cancel")); } - DEBUG_TRACE ( wxString::Format(wxT("img_ext: %d"), dlg.GetFilterIndex()) ) + DEBUG_TRACE ( wxString::Format(wxT("img_ext: %d"), dlg.GetFilterIndex()).mb_str() ) // save the image extension switch ( dlg.GetFilterIndex() ) { case 0: config->Write(wxT("lastImageType"), wxT("jpg")); break; @@ -684,6 +684,7 @@ } WX_DECLARE_STRING_HASH_MAP(time_t, StringToPointerHash); +WX_DECLARE_STRING_HASH_MAP(int, StringToFlagHash); struct sortbytime { @@ -710,9 +711,11 @@ // If no images already loaded, offer user a chance to pick one. int images = pano.getNrOfImages(); + DEBUG_TRACE("Number of images: " << images); if (!images) { OnAddImages(event); images = pano.getNrOfImages(); + DEBUG_TRACE("No images: " << images); if (!images) return; } @@ -721,6 +724,7 @@ // Collect potential image-mates. StringToPointerHash filenames; + StringToFlagHash preloaded; while (images) { --images; @@ -729,7 +733,7 @@ const PanoImage& image = pano.getImage(images); std::string filename = image.getFilename(); wxString file(filename.c_str(), *wxConvCurrent); - filenames[file] = 0; + preloaded[file] = 1; // Glob for all files of same type in same directory. wxString name(filename.c_str(), *wxConvCurrent); @@ -738,8 +742,8 @@ while (!file.IsEmpty()) { // Associated with a NULL dummy timestamp for now. - filenames[file] = 0; - file = ::wxFindNextFile(); + filenames[file] = 0; + file = ::wxFindNextFile(); } } @@ -753,11 +757,11 @@ { wxString file = found->first; // Check the time if it's got a camera EXIF timestamp. - time_t stamp = ReadJpegTime(file.mb_str()); - if (stamp) { + time_t stamp = ReadJpegTime(file.mb_str()); + if (stamp) { filenames[file] = stamp; timeMap[(const char *)file.mb_str()] = stamp; - } + } } //TODO: sorting the filenames keys by timestamp would be useful @@ -772,6 +776,8 @@ for (found = filenames.begin(); found != filenames.end(); found++) { wxString recruit = found->first; + if (preloaded[recruit] == 1) + continue; time_t pledge = filenames[recruit]; if (!pledge) continue; @@ -792,7 +798,7 @@ if (abs(pledge - stamp) < maxtimediff) { // Load this file, and remember it. - DEBUG_TRACE("Recruited " << recruit.c_str()); + DEBUG_TRACE("Recruited " << recruit.mb_str()); std::string file = (const char *)recruit.mb_str(); filesv.push_back(file); // Don't recruit it again. |