@@ -40,6 +40,7 @@ static SessionOption<int> tilesetType { "tileset.type" };
4040static SessionOption<bool > embedInMap { " tileset.embedInMap" };
4141static SessionOption<bool > useTransparentColor { " tileset.useTransparentColor" };
4242static SessionOption<QColor> transparentColor { " tileset.transparentColor" , Qt::magenta };
43+ static SessionOption<bool > generateGrid { " tileset.generateGrid" , true };
4344static SessionOption<QSize> tileSize { " tileset.tileSize" , QSize (32 , 32 ) };
4445static SessionOption<int > tilesetSpacing { " tileset.spacing" };
4546static SessionOption<int > tilesetMargin { " tileset.margin" };
@@ -77,6 +78,7 @@ NewTilesetDialog::NewTilesetDialog(QWidget *parent) :
7778 mUi ->embedded ->setChecked (session::embedInMap);
7879 mUi ->useTransparentColor ->setChecked (session::useTransparentColor);
7980 mUi ->colorButton ->setColor (session::transparentColor);
81+ mUi ->generateGrid ->setChecked (session::generateGrid);
8082 mUi ->tileWidth ->setValue (tileSize.width ());
8183 mUi ->tileHeight ->setValue (tileSize.height ());
8284 mUi ->spacing ->setValue (session::tilesetSpacing);
@@ -97,6 +99,7 @@ NewTilesetDialog::NewTilesetDialog(QWidget *parent) :
9799 connect (mUi ->buttonBox , &QDialogButtonBox::rejected, this , &NewTilesetDialog::reject);
98100
99101 mUi ->imageGroupBox ->setVisible (session::tilesetType < 2 );
102+ mUi ->generateGrid ->setVisible (session::tilesetType == 1 );
100103 updateOkButton ();
101104}
102105
@@ -202,6 +205,7 @@ void NewTilesetDialog::tryAccept()
202205 const int tileHeight = mUi ->tileHeight ->value ();
203206 const int spacing = mUi ->spacing ->value ();
204207 const int margin = mUi ->margin ->value ();
208+ const bool generateGrid = mUi ->generateGrid ->isChecked ();
205209
206210 tileset = Tileset::create (name,
207211 tileWidth, tileHeight,
@@ -219,7 +223,11 @@ void NewTilesetDialog::tryAccept()
219223 return ;
220224 }
221225
222- if (tileset->tileCount () == 0 ) {
226+ if (tileset->isAtlas () && generateGrid) {
227+ tileset->initializeTilesetTiles (true );
228+ }
229+
230+ if (tileset->tileCount () == 0 && (!tileset->isAtlas () || generateGrid)) {
223231 QMessageBox::critical (this , tr (" Error" ),
224232 tr (" No tiles found in the tileset image "
225233 " when using the given tile size, "
@@ -287,6 +295,7 @@ void NewTilesetDialog::nameEdited(const QString &name)
287295void NewTilesetDialog::tilesetTypeChanged (int index)
288296{
289297 mUi ->imageGroupBox ->setVisible (index < 2 );
298+ mUi ->generateGrid ->setVisible (index == 1 );
290299 updateOkButton ();
291300}
292301
0 commit comments