QTfrontend/ui/widget/mapContainer.cpp
changeset 9739 c2c9dd2544b8
parent 9735 6312152d92ad
child 9744 1ee4842a9c86
equal deleted inserted replaced
9738:18bb6d1fc9d9 9739:c2c9dd2544b8
    53     mainLayout(this),
    53     mainLayout(this),
    54     pMap(0),
    54     pMap(0),
    55     mapgen(MAPGEN_REGULAR),
    55     mapgen(MAPGEN_REGULAR),
    56     m_previewSize(256, 128)
    56     m_previewSize(256, 128)
    57 {
    57 {
    58     m_previewDirty = true;
    58     // don't show preview anything until first show event
       
    59     m_previewEnabled = false;
       
    60 
    59     hhSmall.load(":/res/hh_small.png");
    61     hhSmall.load(":/res/hh_small.png");
    60     hhLimit = 18;
    62     hhLimit = 18;
    61     templateFilter = 0;
    63     templateFilter = 0;
    62     m_master = true;
    64     m_master = true;
    63 
    65 
   607     emit drawnMapChanged(getDrawnMapData());
   609     emit drawnMapChanged(getDrawnMapData());
   608 
   610 
   609     updatePreview();
   611     updatePreview();
   610 }
   612 }
   611 
   613 
   612 void HWMapContainer::paintEvent(QPaintEvent * event)
   614 void HWMapContainer::showEvent(QShowEvent * event)
   613 {
   615 {
   614     if (m_previewDirty)
   616     if (!m_previewEnabled) {
       
   617         m_previewEnabled = true;
   615         updatePreview();
   618         updatePreview();
   616     QWidget::paintEvent(event);
   619     }
       
   620     QWidget::showEvent(event);
   617 }
   621 }
   618 
   622 
   619 void HWMapContainer::updatePreview()
   623 void HWMapContainer::updatePreview()
   620 {
   624 {
   621     // don't update preview if e.g. widget not being displayed
   625     // abort if the widget isn't supposed to show anything yet
   622     if (this->visibleRegion().isEmpty())
   626     if (!m_previewEnabled)
   623     {
       
   624         // but remember to update it later
       
   625         m_previewDirty = true;
       
   626         return;
   627         return;
   627     }
       
   628 
       
   629     m_previewDirty = false;
       
   630 
   628 
   631     if (pMap)
   629     if (pMap)
   632     {
   630     {
   633         disconnect(pMap, 0, this, SLOT(setImage(const QImage)));
   631         disconnect(pMap, 0, this, SLOT(setImage(const QImage)));
   634         disconnect(pMap, 0, this, SLOT(setHHLimit(int)));
   632         disconnect(pMap, 0, this, SLOT(setHHLimit(int)));