gui.ui.tab_verse_ui

File:

EuljiroBible/gui/ui/tab_verse_ui.py

Author:

Benjamin Jaedon Choi - https://github.com/saintbenjamin

Affiliated Church:

The Eulji-ro Presbyterian Church [대한예수교장로회(통합) 을지로교회]

Address:

The Eulji-ro Presbyterian Church, 24-10, Eulji-ro 20-gil, Jung-gu, Seoul 04549, South Korea

Telephone:

+82-2-2266-3070

E-mail:

euljirochurch [at] G.M.A.I.L. (replace [at] with @ and G.M.A.I.L as you understood.)

License:

MIT License with Attribution Requirement (see LICENSE file for details); Copyright (c) 2025 The Eulji-ro Presbyterian Church.

Builds the TabVerse UI layout and handles basic input/output interactions.

class gui.ui.tab_verse_ui.TabVerseUI[source]

Bases: object

UI builder mixin for the verse tab.

This class constructs the widget layout and connects UI events for verse lookup, including version selection checkboxes, book/chapter/verse inputs, navigation buttons, and a read-only display panel for rendered verse output.

The owning tab class (TabVerse) is responsible for providing:

  • selection_manager (TabVerseSelectionManager)

  • logic (TabVerseLogic)

  • handlers such as get_reference(), apply_output_text(), shift_verse(), clear_outputs()

version_scroll

Scroll area containing the version checkbox grid.

Type:

QScrollArea

version_widget

Container widget for the version checkbox grid.

Type:

QWidget

version_layout

Grid layout holding version selection checkboxes.

Type:

QGridLayout

enter_state

Enter-key state machine (0 = ready to display, 1 = ready to export).

Type:

int

use_alias

Whether to display version aliases instead of full version names.

Type:

bool

alias_toggle_btn

Toggle button switching alias/full version summary mode.

Type:

QPushButton

version_summary_label

Label summarizing currently selected Bible versions.

Type:

QLabel

book_label

Label for the book selector.

Type:

QLabel

chapter_label

Label for the chapter selector.

Type:

QLabel

verse_label

Label for the verse input field.

Type:

QLabel

book_combo

Editable dropdown for selecting a book name.

Type:

QComboBox

chapter_input

Editable dropdown for chapter selection.

Type:

QComboBox

verse_input

Verse input field supporting single verses or ranges.

Type:

QLineEdit

search_btn

Button that triggers verse display.

Type:

QPushButton

save_btn

Button that exports the currently formatted verse output.

Type:

QPushButton

clear_display_btn

Button that clears output destination and display.

Type:

QPushButton

prev_verse_btn

Button that navigates to the previous verse.

Type:

QPushButton

next_verse_btn

Button that navigates to the next verse.

Type:

QPushButton

input_layout

Layout containing book/chapter/verse inputs and buttons.

Type:

QHBoxLayout

button_layout

Layout containing action/navigation buttons.

Type:

QHBoxLayout

display_box

Read-only display widget for rendered verse output.

Type:

QTextEdit

loading_indicator

Overlay indicator shown during long operations.

Type:

LoadingIndicator

init_ui(version_list)[source]

Initialize and assemble the full verse tab UI.

This builds:

  • A scrollable grid of version selection checkboxes

  • Alias/full-name toggle and selected-version summary label

  • Book/chapter/verse input row (with editable combos)

  • Action buttons for display/export/clear and verse navigation

  • A read-only display box for rendered output

  • A loading indicator overlay

Parameters:

version_list (List[str]) – List of Bible versions used to create checkboxes.

_on_display_verse()[source]

Display the current verse reference.

This is invoked by the Search button and delegates rendering to the logic layer using the current reference resolver and output applicator.

_on_save_verse()[source]

Export the currently displayed verse output.

This is invoked by the Save button and delegates persistence to the logic layer. A critical dialog is shown if saving fails.