void TilesetEditorWindow::dragEnterEvent(QDragEnterEvent *e) { Tileset *tileset = mEditor->currentTileset(); if (!tileset || !tileset->isCollection()) return; // only collection tilesets can accept drops const QList<QUrl> urls = e->mimeData()->urls(); if (!urls.isEmpty() && !urls.at(0).toLocalFile().isEmpty()) e->acceptProposedAction(); }
void TilesetDock::updateActions() { bool external = false; bool isCollection = false; bool hasSelection = false; TilesetView *view = nullptr; const int index = mTabBar->currentIndex(); if (index > -1) { view = tilesetViewAt(index); if (view) { Tileset *tileset = mTilesets.at(index).data(); if (!view->model()) // Lazily set up the model setupTilesetModel(view, tileset); mViewStack->setCurrentIndex(index); external = tileset->isExternal(); isCollection = tileset->isCollection(); hasSelection = view->selectionModel()->hasSelection(); } } const bool tilesetIsDisplayed = view != nullptr; const bool mapIsDisplayed = mMapDocument != nullptr; mNewTileset->setEnabled(mapIsDisplayed); mImportTileset->setEnabled(tilesetIsDisplayed && external); mExportTileset->setEnabled(tilesetIsDisplayed && !external); mPropertiesTileset->setEnabled(tilesetIsDisplayed); mDeleteTileset->setEnabled(tilesetIsDisplayed); mEditTerrain->setEnabled(tilesetIsDisplayed && !external); mAddTiles->setEnabled(tilesetIsDisplayed && isCollection && !external); mRemoveTiles->setEnabled(tilesetIsDisplayed && isCollection && hasSelection && !external); }