diff --git a/MainWindow.cpp b/MainWindow.cpp index 3567725..502a8b8 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -152,19 +152,11 @@ void MainWindow::handleMappingItemSelectionChanged() updateCanvases(); } -void MainWindow::setMappingItemVisibility(uid mappingId, bool visible) -{ - Mapping::ptr mapping = mappingManager->getMappingById(mappingId); - mapping->setVisible(visible); - // Update canvases. - updateCanvases(); -} - void MainWindow::handleMappingItemChanged(QListWidgetItem* item) { // Toggle visibility of mapping depending on checkbox of item. uid mappingId = getItemId(*item); - setMappingItemVisibility(mappingId, item->checkState() == Qt::Checked); + setMappingVisible(mappingId, item->checkState() == Qt::Checked); } void MainWindow::handleMappingIndexesMoved() @@ -1076,11 +1068,23 @@ uid MainWindow::createEllipseColorMapping(uid mappingId, void MainWindow::setMappingVisible(uid mappingId, bool visible) { - QListWidgetItem* item = getItemFromId(*mappingList, mappingId); - Q_ASSERT( item ); - item->setCheckState(visible ? Qt::Checked : Qt::Unchecked ); + // Set mapping visibility + Mapping::ptr mapping = mappingManager->getMappingById(mappingId); - updateCanvases(); + if (mapping.isNull()) + { + qDebug() << "No such mapping id" << endl; + } + else + { + mapping->setVisible(visible); + // Change list item check state + QListWidgetItem* item = getItemFromId(*mappingList, mappingId); + Q_ASSERT( item ); + item->setCheckState(visible ? Qt::Checked : Qt::Unchecked ); + // Update canvases. + updateCanvases(); + } } void MainWindow::setMappingSolo(uid mappingId, bool solo) diff --git a/OscInterface.cpp b/OscInterface.cpp index 441d197..524338d 100644 --- a/OscInterface.cpp +++ b/OscInterface.cpp @@ -181,7 +181,6 @@ void OscInterface::applyOscCommand(MainWindow &main_window, QVariantList & comma int mappingId = command.at(2).toInt(); int visible = command.at(3).toInt(); //std::cout << "Visibility of MappingId " << mappingId << " set to " << visible << std::endl; - main_window.setMappingItemVisibility(mappingId, visible ? true : false); main_window.setMappingVisible(mappingId, visible ? true : false); } else if (path == "/mapmap/output/fullscreen" && typetags == "i") { int enable = command.at(2).toInt();