| 2479 | } |
| 2480 | |
| 2481 | void SettingsMenu::updateDocumentMenu() { |
| 2482 | bool enabled = |
| 2483 | mSplitter->getCurWidget() && mSplitter->getCurWidget()->isType( UI_TYPE_CODEEDITOR ); |
| 2484 | |
| 2485 | Node* child = mDocMenu->getFirstChild(); |
| 2486 | while ( child && child->getId() != "end_current_document" ) { |
| 2487 | child->setEnabled( enabled ); |
| 2488 | child = child->getNextNode(); |
| 2489 | } |
| 2490 | |
| 2491 | if ( !enabled ) |
| 2492 | return; |
| 2493 | |
| 2494 | const TextDocument& doc = mSplitter->getCurEditor()->getDocument(); |
| 2495 | |
| 2496 | mDocMenu->find( "auto_indent_cur" ) |
| 2497 | ->asType<UIMenuCheckBox>() |
| 2498 | ->setActive( doc.getAutoDetectIndentType() ); |
| 2499 | |
| 2500 | auto* curEncoding = mDocMenu->find( "file_encoding" ) |
| 2501 | ->asType<UIMenuSubMenu>() |
| 2502 | ->getSubMenu() |
| 2503 | ->find( TextFormat::encodingToString( doc.getEncoding() ) ); |
| 2504 | if ( curEncoding ) |
| 2505 | curEncoding->asType<UIMenuRadioButton>()->setActive( true ); |
| 2506 | |
| 2507 | auto* curIndent = mDocMenu->find( "indent_width_cur" ) |
| 2508 | ->asType<UIMenuSubMenu>() |
| 2509 | ->getSubMenu() |
| 2510 | ->find( String::format( "indent_width_%d", doc.getIndentWidth() ) ); |
| 2511 | if ( curIndent ) |
| 2512 | curIndent->asType<UIMenuRadioButton>()->setActive( true ); |
| 2513 | |
| 2514 | mDocMenu->find( "indent_type_cur" ) |
| 2515 | ->asType<UIMenuSubMenu>() |
| 2516 | ->getSubMenu() |
| 2517 | ->find( doc.getIndentType() == TextDocument::IndentType::IndentTabs ? "tabs" : "spaces" ) |
| 2518 | ->asType<UIMenuRadioButton>() |
| 2519 | ->setActive( true ); |
| 2520 | |
| 2521 | mDocMenu->find( "tab_width_cur" ) |
| 2522 | ->asType<UIMenuSubMenu>() |
| 2523 | ->getSubMenu() |
| 2524 | ->find( String::format( "tab_width_%d", mSplitter->getCurEditor()->getTabWidth() ) ) |
| 2525 | ->asType<UIMenuRadioButton>() |
| 2526 | ->setActive( true ); |
| 2527 | |
| 2528 | mDocMenu->find( "trim_whitespaces_cur" ) |
| 2529 | ->asType<UIMenuCheckBox>() |
| 2530 | ->setActive( doc.getTrimTrailingWhitespaces() ); |
| 2531 | |
| 2532 | mDocMenu->find( "force_nl_cur" ) |
| 2533 | ->asType<UIMenuCheckBox>() |
| 2534 | ->setActive( doc.getForceNewLineAtEndOfFile() ); |
| 2535 | |
| 2536 | mDocMenu->find( "write_bom_cur" )->asType<UIMenuCheckBox>()->setActive( doc.isBOM() ); |
| 2537 | |
| 2538 | mDocMenu->find( "line_endings_cur" ) |
no test coverage detected