~ubuntu-branches/ubuntu/trusty/hugin/trusty-proposed

« back to all changes in this revision

Viewing changes to src/hugin1/hugin/CropPanel.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Metzler
  • Date: 2011-01-06 14:28:24 UTC
  • mfrom: (1.1.9 upstream) (0.1.21 experimental)
  • Revision ID: james.westby@ubuntu.com-20110106142824-zn9lxylg5z44dynn
* Drop Cyril Brulebois from Uploaders. Thank you very much for your work.
* Bump package version. (rc3 was re-released as 2010.4.0).

Show diffs side-by-side

added added

removed removed

Lines of Context:
110
110
 
111
111
    m_autocenter_cb = XRCCTRL(*this,"crop_autocenter_cb", wxCheckBox);
112
112
    DEBUG_ASSERT(m_autocenter_cb);
 
113
    
 
114
    wxString tmpStr = huginApp::Get()->GetXRCPath() + wxT("data/") + 
 
115
                wxT("transparent.png");
 
116
    m_transparentFilename = std::string(tmpStr.mb_str()); 
 
117
    m_transparentImage =
 
118
        ImageCache::getInstance().getImage(m_transparentFilename);
113
119
 
114
120
    DEBUG_TRACE("");
115
121
    return true;
169
175
            Pano2Display(imgNr);
170
176
        }
171
177
    } else {
172
 
        wxString tmpStr = huginApp::Get()->GetXRCPath() + wxT("data/") + 
173
 
                wxT("transparent.png");
174
 
        std::string transparent = std::string(tmpStr.mb_str()); 
175
 
        ImageCache::EntryPtr imgV =
176
 
            ImageCache::getInstance().getImage(transparent);
177
 
        m_Canvas->SetImage(imgV);
178
 
        m_currentImageFile == transparent ;
 
178
        m_Canvas->SetImage(m_transparentImage);
 
179
        m_currentImageFile == m_transparentFilename;
179
180
        UpdateDisplay();
180
181
    }
181
182
}
191
192
    // check if we need to display a new image
192
193
    if (m_currentImageFile != newImgFile) {
193
194
//        wxImage wximg;
194
 
        ImageCache::EntryPtr imgV = ImageCache::getInstance().getImage(newImgFile);
195
 
        m_Canvas->SetImage(imgV);
196
 
        m_currentImageFile == newImgFile;
 
195
        ImageCache::EntryPtr imgV = ImageCache::getInstance().getImageIfAvailable(newImgFile);
 
196
        if (imgV.get())
 
197
        {
 
198
            m_Canvas->SetImage(imgV);
 
199
            // Clear any previous load request, so the ImageCache knows we no
 
200
            // longer need an image loaded.
 
201
            m_imageRequest = ImageCache::RequestPtr();
 
202
        } else {
 
203
            // ImageCache doesn't have the image yet.
 
204
            // Make a request for it to load in the background.
 
205
            m_imageRequest = ImageCache::getInstance().requestAsyncImage(newImgFile);
 
206
            m_imageRequest->ready.connect(
 
207
                boost::bind(&CropPanel::OnAsyncLoad, this, _1, _2, _3));
 
208
            // Clear the old image so it doesn't confuse things while we wait.
 
209
            m_Canvas->SetImage(m_transparentImage);
 
210
            m_currentImageFile == m_transparentFilename;
 
211
        }
 
212
        m_currentImageFile = newImgFile;
197
213
    }
198
214
    
199
215
    int dx = roundi(img.getRadialDistortionCenterShift().x);
205
221
    UpdateDisplay();
206
222
}
207
223
 
 
224
void CropPanel::OnAsyncLoad(ImageCache::EntryPtr entry, std::string filename, bool load_small)
 
225
{
 
226
    // Check if this is still the image we want.
 
227
    if (m_currentImageFile == filename)
 
228
    {
 
229
        m_Canvas->SetImage(entry);
 
230
    }
 
231
    ImageCache::getInstance().softFlush();
 
232
}
 
233
 
208
234
// transfer our state to panorama
209
235
void CropPanel::Display2Pano()
210
236
{