-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRELEASE-NOTES
More file actions
56 lines (50 loc) · 2.79 KB
/
RELEASE-NOTES
File metadata and controls
56 lines (50 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
-------------
Version 2.0.0
-------------
Complete redesign with a modern, thread-safe API built for Qore 2.3.
C++ binary module (ncurses):
- Session: terminal lifecycle, color management, cursor control, input injection
- Window: drawing (text, ANSI SGR, box, lines, fill), input events with
timeout/polling, wrap modes, sub-windows
- Panel: z-order stacking with show/hide/top/bottom/move
- TestTerminal: PTY-based pseudo-terminal for headless automated tests
- Ansi: parse, wrap, measure, and strip ANSI SGR escape sequences
- Style system: {fg, bg, attrs} hashes with Color and Attr enums
- Thread-safe: module-level recursive lock with lock-releasing input polling
- Interrupt and sandbox compliance (QDOM_TERMINAL_IO, filesystem checks)
NcursesUi toolkit module (22 widget classes):
- Widget base class with parent-child tree, geometry, focus, dirty-flag propagation
- BoxLayout (vertical/horizontal) and SplitLayout (ratio/fixed) layout managers
- EventDispatcher: typed event routing with modal stack and mouse hit-testing
- Application: session management, event loop, tick callbacks, modal stack
- PanelWidget: floating overlays backed by ncurses panels
- ListWidget: selectable scrollable list with keyboard and mouse support
- TextInputWidget: single-line text editing with cursor and history
- ScrollableWidget + LineListContent: viewport with scrollbar rendering
- MenuBarWidget + DropdownMenuWidget: horizontal menus with Alt+key hotkeys
and underlined hotkey indicators
- StatusBarWidget: styled left/right-aligned status segments
- DialogWidget: modal dialogs with configurable buttons (confirm/error/custom)
- FileBrowserWidget: split-pane file browser with directory listing and preview
- ComboBoxWidget, CheckboxWidget, RadioGroupWidget, TableWidget
- FocusManager: Tab/Shift+Tab focus traversal
- TestHarness: TestTerminal + Session wrapper for widget testing
NcursesReplUi helper module:
- InputBuffer: text buffer with cursor tracking and Emacs-style editing
- History: command history with up/down navigation
- LayoutCalc: REPL layout dimension calculation
- ScrollCalc: bottom-anchored scroll position helpers
qrepl — full-screen ncurses REPL:
- Application + BoxLayout root layout (menu bar, output, status bar)
- ScrollableWidget output pane with ANSI color rendering
- Inline input editing with InputBuffer and History
- MenuBarWidget with Alt+key hotkeys (File, Edit, View, Help)
- StatusBarWidget with live status, line count, and timer segments
- Output capture via File::getPipe() and background reader thread
- Modal dialogs: exit confirmation, file browser, animated About with
180-frame spinning Qore coin
Build and test:
- CMake build system
- Doxygen documentation with mainpage overviews, code examples, and
cross-references for all three module layers
- 9 test suites with 290+ automated test cases