@@ -116,7 +116,7 @@ void TileDelegate::paint(QPainter *painter,
116116 const TilesetModel *model = static_cast <const TilesetModel*>(index.model ());
117117 const Tileset *tileset = model->tileset ();
118118
119- if (tileset->isAtlas ()) {
119+ if (tileset->isAtlas () && ! mTilesetView -> dynamicWrapping () ) {
120120 return ;
121121 }
122122
@@ -212,18 +212,26 @@ QSize TileDelegate::sizeHint(const QStyleOptionViewItem & /* option */,
212212 const TilesetModel *m = static_cast <const TilesetModel*>(index.model ());
213213 const int extra = mTilesetView ->drawGrid () ? 1 : 0 ;
214214 const qreal scale = mTilesetView ->scale ();
215+ Tileset *tileset = m->tileset ();
216+
217+ if (tileset->isAtlas () && !mTilesetView ->dynamicWrapping ()) {
218+ return QSize (tileset->imageWidth () * scale + extra,
219+ tileset->imageHeight () * scale + extra);
220+ }
215221
216222 if (const Tile *tile = m->tileAt (index)) {
217223 if (mTilesetView ->dynamicWrapping ()) {
218- Tileset *tileset = tile->tileset ();
224+ if (tileset->isAtlas ()) {
225+ return QSize (tile->imageRect ().width () * scale + extra,
226+ tile->imageRect ().height () * scale + extra);
227+ }
219228 return QSize (tileset->tileWidth () * scale + extra,
220229 tileset->tileHeight () * scale + extra);
221230 }
222231
223232 QSize tileSize = tile->size ();
224233
225234 if (tile->image ().isNull ()) {
226- Tileset *tileset = m->tileset ();
227235 if (tileset->isCollection ()) {
228236 tileSize = QSize (32 , 32 );
229237 } else {
@@ -383,10 +391,8 @@ int TilesetView::sizeHintForColumn(int column) const
383391 const TilesetModel *model = tilesetModel ();
384392 if (!model)
385393 return -1 ;
386- if (model->tileset ()->isCollection ())
394+ if (model->tileset ()->isCollection () || model-> tileset ()-> isAtlas () )
387395 return QTableView::sizeHintForColumn (column);
388- if (model->tileset ()->isAtlas ())
389- return model->tileset ()->image ().width () * scale ();
390396
391397 const int gridSpace = mDrawGrid ? 1 : 0 ;
392398 if (dynamicWrapping ())
@@ -402,10 +408,8 @@ int TilesetView::sizeHintForRow(int row) const
402408 const TilesetModel *model = tilesetModel ();
403409 if (!model)
404410 return -1 ;
405- if (model->tileset ()->isCollection ())
411+ if (model->tileset ()->isCollection () || model-> tileset ()-> isAtlas () )
406412 return QTableView::sizeHintForRow (row);
407- if (model->tileset ()->isAtlas ())
408- return model->tileset ()->image ().height () * scale ();
409413
410414 const int gridSpace = mDrawGrid ? 1 : 0 ;
411415 if (dynamicWrapping ())
@@ -802,7 +806,7 @@ void TilesetView::paintEvent(QPaintEvent *event)
802806 QTableView::paintEvent (event);
803807
804808 TilesetModel *model = tilesetModel ();
805- if (!model || !model->tileset ()->isAtlas ())
809+ if (!model || !model->tileset ()->isAtlas () || dynamicWrapping () )
806810 return ;
807811
808812 QPainter painter (viewport ());
@@ -844,7 +848,7 @@ QModelIndex TilesetView::indexAt(const QPoint &pos) const
844848 if (!model ())
845849 return QModelIndex ();
846850
847- if (tilesetModel () && tilesetModel ()->tileset ()->isAtlas ()) {
851+ if (tilesetModel () && tilesetModel ()->tileset ()->isAtlas () && ! dynamicWrapping () ) {
848852 const QPoint tilesetPos = viewToTile (pos);
849853
850854 // Find tile that contains this position
@@ -876,7 +880,7 @@ QRect TilesetView::visualRect(const QModelIndex &index) const
876880 return QRect ();
877881
878882 const TilesetModel *m = tilesetModel ();
879- if (m && m->tileset ()->isAtlas ()) {
883+ if (m && m->tileset ()->isAtlas () && ! dynamicWrapping () ) {
880884 if (Tile *tile = m->tileAt (index)) {
881885 return tileToView (tile->imageRect ());
882886 }
0 commit comments