| 278 // Ensure that the current grid - and only the current grid - is selected. |
278 // Ensure that the current grid - and only the current grid - is selected. |
| 279 int grid = m_config.grid(); |
279 int grid = m_config.grid(); |
| 280 ui.actionGridCoarse->setChecked (grid == Grid::Coarse); |
280 ui.actionGridCoarse->setChecked (grid == Grid::Coarse); |
| 281 ui.actionGridMedium->setChecked (grid == Grid::Medium); |
281 ui.actionGridMedium->setChecked (grid == Grid::Medium); |
| 282 ui.actionGridFine->setChecked (grid == Grid::Fine); |
282 ui.actionGridFine->setChecked (grid == Grid::Fine); |
| 283 |
283 emit gridChanged(); |
| 284 // Recompile all Bézier curves, the changing grid affects their precision. |
|
| 285 for (LDObjectIterator<LDBezierCurve> it (m_currentDocument); it.isValid(); ++it) |
|
| 286 renderer()->compileObject (it); |
|
| 287 } |
284 } |
| 288 |
285 |
| 289 // --------------------------------------------------------------------------------------------------------------------- |
286 // --------------------------------------------------------------------------------------------------------------------- |
| 290 // |
287 // |
| 291 void MainWindow::updateTitle() |
288 void MainWindow::updateTitle() |
| 435 } |
432 } |
| 436 |
433 |
| 437 // The select() method calls may have selected additional items (i.e. invertnexts) |
434 // The select() method calls may have selected additional items (i.e. invertnexts) |
| 438 // Update it all now. |
435 // Update it all now. |
| 439 updateSelection(); |
436 updateSelection(); |
| 440 |
|
| 441 // Update the GL renderer |
|
| 442 for (LDObject* obj : priorSelection + selectedObjects()) |
|
| 443 renderer()->compileObject (obj); |
|
| 444 |
|
| 445 renderer()->update(); |
437 renderer()->update(); |
| 446 } |
438 } |
| 447 |
439 |
| 448 // --------------------------------------------------------------------------------------------------------------------- |
440 // --------------------------------------------------------------------------------------------------------------------- |
| 449 // |
441 // |
| 503 // --------------------------------------------------------------------------------------------------------------------- |
494 // --------------------------------------------------------------------------------------------------------------------- |
| 504 // |
495 // |
| 505 void MainWindow::doFullRefresh() |
496 void MainWindow::doFullRefresh() |
| 506 { |
497 { |
| 507 buildObjectList(); |
498 buildObjectList(); |
| 508 renderer()->hardRefresh(); |
499 renderer()->update(); |
| 509 } |
500 } |
| 510 |
501 |
| 511 // --------------------------------------------------------------------------------------------------------------------- |
502 // --------------------------------------------------------------------------------------------------------------------- |
| 512 // |
503 // |
| 513 // Builds the object list and tells the GL renderer to do a soft update. |
504 // Builds the object list and tells the GL renderer to do a soft update. |
| 1145 { |
1136 { |
| 1146 if (document->isFrozen()) |
1137 if (document->isFrozen()) |
| 1147 { |
1138 { |
| 1148 document->setFrozen(false); |
1139 document->setFrozen(false); |
| 1149 print ("Opened %1", document->name()); |
1140 print ("Opened %1", document->name()); |
| 1150 |
1141 getRendererForDocument(document); |
| 1151 // Cache files are not compiled by the GL renderer. Now that this file is open for editing, it needs to be compiled. |
|
| 1152 getRendererForDocument(document)->compiler()->compileModel(document); |
|
| 1153 updateDocumentList(); |
1142 updateDocumentList(); |
| 1154 } |
1143 } |
| 1155 } |
1144 } |
| 1156 |
1145 |
| 1157 // --------------------------------------------------------------------------------------------------------------------- |
1146 // --------------------------------------------------------------------------------------------------------------------- |