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 // --------------------------------------------------------------------------------------------------------------------- |