Skip to content

Repository files navigation

gdbviewer — Qt5 GUI для libgdbparse

GUI-модуль поверх libgdbparse. Принимает файл .gdb через drag-and-drop, показывает его содержимое (точки / маршруты / треки) и экспортирует документ Word (.docx) в несколько этапов.

Лежит внутри lib_gdbparse/gui/, использует парсер из родительской папки.


Что делает

  1. Запуск → открывается окно с зоной перетаскивания.
  2. Drag-and-drop файла .gdb (или клик по зоне → диалог выбора). Файл разбирается через gdbparse::parse_gdb().
  3. Просмотр разобранных данных в трёх вкладках:
    • Путевые точки — имя, долгота, широта, высота;
    • Маршруты — точки каждого маршрута;
    • Треки — точки каждого трека.
  4. «Создать документ Word…» → мастер из 3 этапов. На каждом этапе выпадающим списком (можно выбрать подсказку или ввести своё) задаётся название главы 1-го уровня (стиль Heading 1).
  5. После «Готово» выбирается путь, и собирается .docx:
    • три главы 1-го уровня с выбранными названиями;
    • в первой главе — таблицы путей из файла. На каждый маршрут и трек своя таблица, плюс таблица путевых точек. В каждой таблице 3 колонки: Имя точки · Долгота · Широта.

Этапы 2 и 3 — мок: главы добавляются как заголовки без содержимого. Расширить логику (своё содержимое на каждом этапе) можно в DocxWizard и DocxWriter.


Сборка

Нужно: Qt5 (Core + Gui + Widgets) ≥ 5.12 или Qt6, компилятор C++17, zlib. Папка lib_gdbparse должна оставаться внутри дерева исходников gpsbabel 1.9.0.

qmake

cd lib_gdbparse/gui
qmake && make
./gdbviewer

CMake (из корня gpsbabel)

cmake -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 зовёт его только из основного потока.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages