| 391 | } |
| 392 | |
| 393 | void CameraTab::Add() { |
| 394 | QStringList camera_models; |
| 395 | #define CAMERA_MODEL_CASE(CameraModel) \ |
| 396 | << QString::fromStdString(CameraModelIdToName(CameraModel::model_id)) |
| 397 | camera_models CAMERA_MODEL_CASES; |
| 398 | #undef CAMERA_MODEL_CASE |
| 399 | |
| 400 | bool ok; |
| 401 | const QString camera_model = QInputDialog::getItem( |
| 402 | this, "", tr("Model:"), camera_models, 0, false, &ok); |
| 403 | if (!ok) { |
| 404 | return; |
| 405 | } |
| 406 | |
| 407 | // Add new camera to feature database. |
| 408 | Camera camera; |
| 409 | const double kDefaultFocalLength = 1.0; |
| 410 | const size_t kDefaultWidth = 1; |
| 411 | const size_t kDefaultHeight = 1; |
| 412 | camera = Camera::CreateFromModelName(kInvalidCameraId, |
| 413 | camera_model.toUtf8().constData(), |
| 414 | kDefaultFocalLength, |
| 415 | kDefaultWidth, |
| 416 | kDefaultHeight); |
| 417 | database_->WriteCamera(camera); |
| 418 | |
| 419 | // Reload all cameras |
| 420 | Reload(database_); |
| 421 | |
| 422 | // Highlight new camera |
| 423 | table_widget_->selectRow(cameras_.size() - 1); |
| 424 | } |
| 425 | |
| 426 | void CameraTab::SetModel() { |
| 427 | QItemSelectionModel* select = table_widget_->selectionModel(); |
nothing calls this directly
no test coverage detected