Beispiel #1
0
void qwDecoratedCanvas::setCurrentImage(const QSharedPointer<CImgContext> &_ptr)
{

   if((_ptr == currentImgPtr)&&(!_ptr.isNull()))
       if((currentImgPtr->getActivePanel(myID)))
          return;

   myGridCanvasPtr->refreshView("Fetching...");

   myBottomPanelPtr->linearTransformDialogPtr->closeMe();

   if(!_ptr.isNull())
       _ptr->SetFocus(myID);

   if(_ptr != currentImgPtr)
      if(!currentImgPtr.isNull())
          currentImgPtr->LostFocus(myID);


   currentImgPtr = _ptr;


   if(_ptr.isNull())
   {
       myGridCanvasPtr->refreshView("Empty view");
       goto __EXIT_POINT;
   }



  // if(myID == panelLeftTop)
   {
        if(Globals::sharedViewFlagsEnabled)
        {
            bool needRefresh = false;

            if(currentImgPtr->getMul(R) != Globals::sharedMul[0]){ currentImgPtr->setMul(R,  Globals::sharedMul[0]); needRefresh = true;}
            if(currentImgPtr->getDiv(R) !=  Globals::sharedDiv[0]){ currentImgPtr->setDiv(R,  Globals::sharedDiv[0]); needRefresh = true;}
            if(currentImgPtr->getBias(R) !=  Globals::sharedBias[0]){ currentImgPtr->setBias(R,  Globals::sharedBias[0]); needRefresh = true;}

            if(currentImgPtr->getMul(G) !=  Globals::sharedMul[1]){ currentImgPtr->setMul(G,  Globals::sharedMul[1]); needRefresh = true;}
            if(currentImgPtr->getDiv(G) !=  Globals::sharedDiv[1]){ currentImgPtr->setDiv(G,  Globals::sharedDiv[1]); needRefresh = true;}
            if(currentImgPtr->getBias(G) !=  Globals::sharedBias[1]){currentImgPtr->setBias(G,  Globals::sharedBias[1]); needRefresh = true;}

            if(currentImgPtr->getMul(B) !=  Globals::sharedMul[2]){ currentImgPtr->setMul(B,  Globals::sharedMul[2]); needRefresh = true;}
            if(currentImgPtr->getDiv(B) !=  Globals::sharedDiv[2]){ currentImgPtr->setDiv(B,  Globals::sharedDiv[2]); needRefresh = true;}
            if(currentImgPtr->getBias(B) !=  Globals::sharedBias[2]){ currentImgPtr->setBias(B,  Globals::sharedBias[2]); needRefresh = true;}

            if(currentImgPtr->getFlags() !=  Globals::sharedViewFlags){ currentImgPtr->setFlags( Globals::sharedViewFlags); needRefresh = true;}
            if(needRefresh){currentImgPtr->applyOnTheFlyFilters(); currentImgPtr->applyPreFilters();}
        };


       if(Globals::sharedZoomEnabled)
       {
          currentImgPtr->setZoomFactor(Globals::sharedZoom);
       }

       if(Globals::sharedPositionEnabled)
       {
          currentImgPtr->setImgOffset(axX,  Globals::sharedPosition[0]);
          currentImgPtr->setImgOffset(axY,  Globals::sharedPosition[1]);
       }

   }

   myBottomPanelPtr->linearTransformDialogPtr->setRParams(currentImgPtr->getMul(R),
                                                          currentImgPtr->getDiv(R),
                                                          currentImgPtr->getBias(R));
   myBottomPanelPtr->linearTransformDialogPtr->setGParams(currentImgPtr->getMul(G),
                                                          currentImgPtr->getDiv(G),
                                                          currentImgPtr->getBias(G));
   myBottomPanelPtr->linearTransformDialogPtr->setBParams(currentImgPtr->getMul(B),
                                                          currentImgPtr->getDiv(B),
                                                          currentImgPtr->getBias(B));


__EXIT_POINT:
   myBottomPanelPtr->myNoteBox.setCurrentImage(currentImgPtr);
   myGridCanvasPtr->setImgContext(currentImgPtr);
   myGridCanvasPtr->refreshView();
   restoreSWButtonsState();
   refreshInfoBar();
}