# HG changeset patch # User sheepluva # Date 1386012315 -3600 # Node ID c2c9dd2544b81260f765ff1d5d7116335b393d11 # Parent 18bb6d1fc9d9ce0ce6d43c6939ccd129ba3d2607 make lazy loading of map preview a little bit less of a hack diff -r 18bb6d1fc9d9 -r c2c9dd2544b8 QTfrontend/ui/widget/mapContainer.cpp --- a/QTfrontend/ui/widget/mapContainer.cpp Mon Dec 02 23:20:07 2013 +0400 +++ b/QTfrontend/ui/widget/mapContainer.cpp Mon Dec 02 20:25:15 2013 +0100 @@ -55,7 +55,9 @@ mapgen(MAPGEN_REGULAR), m_previewSize(256, 128) { - m_previewDirty = true; + // don't show preview anything until first show event + m_previewEnabled = false; + hhSmall.load(":/res/hh_small.png"); hhLimit = 18; templateFilter = 0; @@ -609,24 +611,20 @@ updatePreview(); } -void HWMapContainer::paintEvent(QPaintEvent * event) +void HWMapContainer::showEvent(QShowEvent * event) { - if (m_previewDirty) + if (!m_previewEnabled) { + m_previewEnabled = true; updatePreview(); - QWidget::paintEvent(event); + } + QWidget::showEvent(event); } void HWMapContainer::updatePreview() { - // don't update preview if e.g. widget not being displayed - if (this->visibleRegion().isEmpty()) - { - // but remember to update it later - m_previewDirty = true; + // abort if the widget isn't supposed to show anything yet + if (!m_previewEnabled) return; - } - - m_previewDirty = false; if (pMap) { diff -r 18bb6d1fc9d9 -r c2c9dd2544b8 QTfrontend/ui/widget/mapContainer.h --- a/QTfrontend/ui/widget/mapContainer.h Mon Dec 02 23:20:07 2013 +0400 +++ b/QTfrontend/ui/widget/mapContainer.h Mon Dec 02 20:25:15 2013 +0100 @@ -111,7 +111,7 @@ protected: virtual void resizeEvent ( QResizeEvent * event ); - virtual void paintEvent ( QPaintEvent * event ); + virtual void showEvent ( QShowEvent * event ); private: QVBoxLayout mainLayout; @@ -150,7 +150,7 @@ QPushButton * btnSeed; bool m_master; QList m_childWidgets; - bool m_previewDirty; + bool m_previewEnabled; void intSetSeed(const QString & seed); void intSetMap(const QString & map);