GUI-модуль поверх libgdbparse. Принимает файл .gdb через drag-and-drop,
показывает его содержимое (точки / маршруты / треки) и экспортирует документ
Word (.docx) в несколько этапов.
Лежит внутри lib_gdbparse/gui/, использует парсер из родительской папки.
- Запуск → открывается окно с зоной перетаскивания.
- Drag-and-drop файла
.gdb(или клик по зоне → диалог выбора). Файл разбирается черезgdbparse::parse_gdb(). - Просмотр разобранных данных в трёх вкладках:
- Путевые точки — имя, долгота, широта, высота;
- Маршруты — точки каждого маршрута;
- Треки — точки каждого трека.
- «Создать документ Word…» → мастер из 3 этапов. На каждом этапе выпадающим списком (можно выбрать подсказку или ввести своё) задаётся название главы 1-го уровня (стиль Heading 1).
- После «Готово» выбирается путь, и собирается
.docx:- три главы 1-го уровня с выбранными названиями;
- в первой главе — таблицы путей из файла. На каждый маршрут и трек
своя таблица, плюс таблица путевых точек. В каждой таблице 3 колонки:
Имя точки·Долгота·Широта.
Этапы 2 и 3 — мок: главы добавляются как заголовки без содержимого. Расширить логику (своё содержимое на каждом этапе) можно в
DocxWizardиDocxWriter.
Нужно: Qt5 (Core + Gui + Widgets) ≥ 5.12 или Qt6, компилятор C++17, zlib.
Папка lib_gdbparse должна оставаться внутри дерева исходников gpsbabel 1.9.0.
cd lib_gdbparse/gui
qmake && make
./gdbviewercmake -S lib_gdbparse/gui -B build_gui
cmake --build build_gui -j
./build_gui/gdbviewerОткрыть файл сразу не обязательно — можно перетащить его в уже запущенное окно.
Для проверки есть готовые образцы в reference/ (например,
reference/gdb-sample.gdb).
| Файл | Назначение |
|---|---|
main.cpp |
точка входа, общий стиль приложения |
MainWindow.{h,cpp} |
окно: зона drop, вкладки с таблицами, кнопка экспорта |
DropArea.{h,cpp} |
виджет drag-and-drop (принимает один .gdb) |
DocxWizard.{h,cpp} |
мастер из 3 этапов с выпадающими списками |
DocxWriter.{h,cpp} |
сборка .docx (OOXML: главы + таблицы 3×N) |
MiniZip.{h,cpp} |
минимальный ZIP-упаковщик (.docx = zip), zlib deflate |
gdbviewer.pro |
сборка через qmake |
CMakeLists.txt |
сборка через CMake |
.docx собирается без внешних зависимостей: это ZIP из document.xml,
styles.xml и служебных частей OOXML, упакованных MiniZip.
- Парсер кладёт в
waypointsвсе точки, включая скрытые via-точки маршрутов, поэтому в таблице путевых точек их может быть заметно больше, чем «пользовательских». Фильтрацию при необходимости легко добавить вMainWindow::populateTables()иDocxWriter. - У точек треков обычно нет имени — в таблице такие строки получают
подпись
Точка N. parse_gdb()не потокобезопасен (ограничение библиотеки); GUI зовёт его только из основного потока.