Developer Docs

Everything you need to build, understand, and extend Lexicon. The codebase is small, focused, and easy to get into β€” a classic Qt Widgets desktop application with a clean data layer.

Technology stack

LayerTechnologyNotes
LanguageC++23CMAKE_CXX_STANDARD 23, extensions off
GUIQt 6 WidgetsClassic desktop widgets, no QML
PersistenceSQLite via Qt SQLSingle-file database with versioned migrations
Markdownmd4qtVendored in 3rdparty/, compiled into the binary
Build systemCMake β‰₯ 3.21Single Lexicon executable target
LicenseMITFree for any use

Repository layout

lexicon/
β”œβ”€β”€ CMakeLists.txt        # single-target CMake build
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.cpp              # entry point: DB init + MainWindow
β”‚   β”œβ”€β”€ MainWindow.{h,cpp}    # main window: filters, table, pagination, preview
β”‚   β”œβ”€β”€ TermEditDialog.{h,cpp}# 5-tab term editor
β”‚   β”œβ”€β”€ MapManagerDialog.{h,cpp}  # map CRUD dialog
β”‚   β”œβ”€β”€ ValueListDialog.{h,cpp}   # read-only tag/flag/alias overviews
β”‚   β”œβ”€β”€ DatabaseManager.{h,cpp}   # all SQL: schema, migrations, queries
β”‚   └── MarkdownConverter.{h,cpp} # Markdown β†’ HTML via md4qt
β”œβ”€β”€ 3rdparty/md4qt/       # vendored Markdown parser
β”œβ”€β”€ resources/            # application icon
β”œβ”€β”€ images/               # screenshots used by README and this site
β”œβ”€β”€ lexicon.desktop       # Linux desktop entry
└── LICENSE               # MIT

How it fits together

  1. main.cpp initializes the database (creating lexicon.db next to the executable and applying migrations), then shows the MainWindow.
  2. MainWindow drives the whole browsing experience β€” filters, search, the paginated term table, and the rendered preview pane.
  3. Dialogs (TermEditDialog, MapManagerDialog, ValueListDialog) handle editing and overviews.
  4. DatabaseManager is the single gateway to SQLite β€” a static API used by all UI classes. No SQL lives outside it.
  5. MarkdownConverter turns term content into HTML for the preview panes using md4qt.

Read the full walkthrough in Architecture.

Jump in