comparison main/MainWindow.cpp @ 1558:28d80ef79473

Report on failures that happen while configuring a transform
author Chris Cannam
date Thu, 19 Jan 2017 10:50:04 +0000
parents 44e09e1996a3
children 3b8bd7e520c5
comparison
equal deleted inserted replaced
1557:5a15539f4399 1558:28d80ef79473
3879 if (!pane) { 3879 if (!pane) {
3880 cerr << "WARNING: MainWindow::addLayer: no current pane" << endl; 3880 cerr << "WARNING: MainWindow::addLayer: no current pane" << endl;
3881 return; 3881 return;
3882 } 3882 }
3883 3883
3884 Transform transform = TransformFactory::getInstance()-> 3884 Transform transform;
3885 getDefaultTransformFor(transformId); 3885 try {
3886 transform = TransformFactory::getInstance()->
3887 getDefaultTransformFor(transformId);
3888 } catch (std::exception &e) { // e.g. Piper server failure
3889 QMessageBox::critical
3890 (this, tr("Failed to query transform attributes"),
3891 tr("<b>Failed to query transform attributes</b><p>Plugin or server error: %1</p>")
3892 .arg(e.what()));
3893 return;
3894 }
3886 3895
3887 std::vector<Model *> candidateInputModels = 3896 std::vector<Model *> candidateInputModels =
3888 m_document->getTransformInputModels(); 3897 m_document->getTransformInputModels();
3889 3898
3890 Model *defaultInputModel = 0; 3899 Model *defaultInputModel = 0;
3949 3958
3950 if (!input.getModel()) return; 3959 if (!input.getModel()) return;
3951 3960
3952 // SVDEBUG << "MainWindow::addLayer: Input model is " << input.getModel() << " \"" << input.getModel()->objectName() << "\"" << endl << "transform:" << endl << transform.toXmlString() << endl; 3961 // SVDEBUG << "MainWindow::addLayer: Input model is " << input.getModel() << " \"" << input.getModel()->objectName() << "\"" << endl << "transform:" << endl << transform.toXmlString() << endl;
3953 3962
3954 Layer *newLayer = m_document->createDerivedLayer(transform, input); 3963 try {
3955 3964 Layer *newLayer = m_document->createDerivedLayer(transform, input);
3956 if (newLayer) { 3965 if (newLayer) {
3957 m_document->addLayerToView(pane, newLayer); 3966 m_document->addLayerToView(pane, newLayer);
3958 m_document->setChannel(newLayer, input.getChannel()); 3967 m_document->setChannel(newLayer, input.getChannel());
3959 m_recentTransforms.add(transformId); 3968 m_recentTransforms.add(transformId);
3960 m_paneStack->setCurrentLayer(pane, newLayer); 3969 m_paneStack->setCurrentLayer(pane, newLayer);
3961 } 3970 }
3962 3971 } catch (std::exception &e) { // e.g. Piper server failure
3972 QMessageBox::critical
3973 (this, tr("Transform failed"),
3974 tr("<b>Failed to run transform</b><p>Plugin or server error: %1</p>")
3975 .arg(e.what()));
3976 return;
3977 }
3978
3963 updateMenuStates(); 3979 updateMenuStates();
3964 } 3980 }
3965 3981
3966 void 3982 void
3967 MainWindow::renameCurrentLayer() 3983 MainWindow::renameCurrentLayer()