Commits:
-
0b7a9a10
by Charlie Jiang
at 2022-09-05T14:01:25+08:00
[ftinspect] Add "Continuous View".
Most new features in the continuous view are included in the commit, except
the mouse left (details pane)/right (go to singular) click behaviour.
* src/ftinspect/panels/continuous.cpp, src/ftinspect/panels/continuous.hpp:
New files, the main continuous tab.
* src/ftinspect/glyphcomponents/glyphcontinuous.cpp,
src/ftinspect/glyphcomponents/glyphcontinuous.hpp:
New files, adding the `GlyphContinuous` as the actual canvas for
continuous rendering.
* src/ftinspect/engine/stringrenderer.cpp,
src/ftinspect/engine/stringrenderer.hpp:
New files, adding `StringRenderer` to layout the strings and produce
glyphs for the canvas to draw.
* src/ftinspect/widgets/charmapcombobox.cpp,
src/ftinspect/widgets/charmapcombobox.hpp:
New files, add the `CharMapComboBox` widget.
* src/ftinspect/engine/charmap.cpp,src/ftinspect/engine/charmap.hpp:
New files, adding `CharMapInfo` class.
* src/ftinspect/engine/engine.cpp, src/ftinspect/engine/engine.hpp:
Add necessary fields and getters for string rendering.
Retrieve charmap when loading fonts.
* src/ftinspect/maingui.cpp, src/ftinspect/maingui.hpp:
Add the continuous view to the main window.
Call `ContinuousTab::highlightGlyph` when switching from singular to
continuous view.
* src/ftinspect/panels/settingpanel.cpp: Uncomment functional code.
* src/ftinspect/CMakeLists.txt, src/ftinspect/meson.build: Updated.
-
fa19c437
by Charlie Jiang
at 2022-09-05T14:01:54+08:00
[ftinspect] Add left/right click behaviour to the continuous view.
Left clicking will open the glyph details pane, and right clicking will
switch to the singular tab.
* src/ftinspect/panels/glyphdetails.cpp,
src/ftinspect/panels/glyphdetails.hpp:
New files, add the `GlyphDetails` class.
* src/ftinspect/glyphcomponents/glyphcontinuous.cpp,
src/ftinspect/glyphcomponents/glyphcontinuous.hpp:
Add `mouseReleaseEvent` event handler which emits the new
`updateGlyphDetails` and `rightClickGlyph` signals.
* src/ftinspect/glyphcomponents/glyphbitmap.cpp,
src/ftinspect/glyphcomponents/glyphbitmap.hpp:
Add `GlyphBitmapWidget` to show the enlarged bitmap.
* src/ftinspect/panels/continuous.cpp, src/ftinspect/panels/continuous.hpp:
Add code to update the details panel, and wire up events.
* src/ftinspect/maingui.cpp, src/ftinspect/maingui.hpp:
Add code to initialize the glyph details panel, and wire up components and
events.
* src/ftinspect/CMakeLists.txt, src/ftinspect/meson.build: Updated.
-
dde9ba31
by Charlie Jiang
at 2022-09-05T14:16:26+08:00
[ftinspect] Add "Comparator View".
* src/ftinspect/panels/comparator.cpp, src/ftinspect/panels/comparator.hpp:
New files, adding the `ComparatorTab`.
* src/ftinspect/panels/settingpanel.cpp,
src/ftinspect/panels/settingpanel.hpp: Add comparator mode.
* src/ftinspect/maingui.cpp, src/ftinspect/maingui.hpp:
Add comparator tab and modify `switchTab` to prevent unwanted window
resizing, and to fix the tab bar position.
Modify `applySettings` to skip applying for comparator tab.
* src/ftinspect/CMakeLists.txt, src/ftinspect/meson.build: Updated.
-
c8f0f483
by Charlie Jiang
at 2022-09-05T14:46:20+08:00
[ftinspect] Add "Font Info" tab.
* src/ftinspect/panels/info.cpp, src/ftinspect/panels/info.hpp:
New files, add the `InfoTab` class.
* src/ftinspect/engine/fontinfo.cpp, src/ftinspect/engine/fontinfo.hpp:
Add `SFNTTableInfo`, `FontBasicInfo`, `FontTypeEntries`, `FontFixedSize`
and `CompositeGlyphInfo`. The `SFNTTableInfo` and `CompositeGlyphInfo`
classes retrieve info without the related FreeType API, but directly
parse the font data.
* src/ftinspect/models/fontinfomodels.cpp,
src/ftinspect/models/fontinfomodels.hpp:
New files. Add models for the tables and the tree view in the info tab to
use.
* src/ftinspect/engine/engine.cpp, src/ftinspect/engine/engine.hpp:
Add `loadDefaults` function for the composite glyphs view to draw its
small icon.
Add `currentFontHasGlyphName`, `currentFontPSInfo`,
`currentFontPSPrivateInfo` and `currentFontSFNTTableInfo` to obtain info.
Add getters.
* src/ftinspect/engine/fontinfonamesmapping.cpp: New file for name mapping.
* src/ftinspect/engine/fontfilemanager.cpp,
src/ftinspect/engine/fontfilemanager.hpp:
Add `currentReloadDueToPeriodicUpdate` so the composite glyph tree isn't
refreshed (which is a very expensive process) for the periodic updating of
symbolic font files.
* src/ftinspect/maingui.cpp, src/ftinspect/maingui.hpp:
Add the font info tab info the main window and wire events.
* src/ftinspect/CMakeLists.txt, src/ftinspect/meson.build: Updated.
20 changed files:
The diff was not included because it is too large.
|