|Subject:||[GSoC] Report of status on project ftinspect until 2022/07/10|
|Date:||Sun, 10 Jul 2022 17:20:47 +0800|
|User-agent:||Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0|
Hello Werner, 鈴木さん and other folks,
Here’s my report of
my changes on
until today. Changes that were already merged aren’t included.
ci-templatesproject as suggested by Tim. Should be safe to merge.
feature-type option to meson script, so one can switch off the librsvg dependency. Reviewed by Tim and should be safe to merge.
I’m using GitLab Issues to track the project progress, so every issue will corrspond to a group of commits. Since all commit messages are pretty detailed, I’m only writing necessary additional info here. If possible, please review the commits using GitLab comment feature.
All changes here are
moving code out from the oversized
and doing so would be benefical to the later development of the
multi-tab GUI. The GUI appearance and usage barely changes after
changes for this issue.
These commits are already reviewed by Werner:
8cc92c54: Move out font file managing/watching out to a new class. This added a new
FontFileManagerclass to watch on files and notify
MainGUI. This removes the bidirectional dependency relation between
MainGUI, and settings are all explicitly passed from
5771bdf9: (Pure mechnical commit) Rename all private member variables with an underscore suffix. Already discussed in #13.
5f380ae9: Use custom
QAbstractListModelinstead of manually mapping.
96390184: (minor) Directly pass
Engineobject to constructor of
6b4321d0: Re-organize custom widgets, and add necessary documentation.
These commits aren’t reviewed:
03fda0ea: Move settings panel to a separate class. This added a new
SettingPanelclass. Settings are explicitly passed to the engine via
syncSettingsfunction. Also wired signals to notify
MainGUIwhen a reloading or repainting is needed.
QComboBoxx: No longer needed because our custom combo box model (introduced in
5f380ae9) can take care of disabling individual items.
3b05fb4c: Some event connections are missing. However these settings aren’t` implemented anyway.
b38b2921: Fix parent-child relationships in Qt objects tree, so they can be properly cleaned up.
d51b8020: Basically bug fixes for meson, and GCC on C++11.
To sum up:
Engineno longer depends on
QAbstractListModelreplaced the handcrafted
QHash-based value mapping;
This issue isn’t finished yet, and all commits aren’t reviewed:
ece202dc: Improve mouse scrolling: Singular Grid View now support 4 kinds of scrolling operation, and I used a label at the top-left corner as a hint.
23fe7d1c: Support infinite panning, and added “Back to Center” button.
f29dba43: Support drag & drop to open font files: Directly drop the file(s) on the window, and they opens.
customwidgets.[ch]pp: Naming convention.
GlyphIndexSelector, move out related code from
GlyphIndexSelectorwill be reused in other tabs, so make a separate widget. It’s also improved with a input box and a label showing current & limit index.
83b6bbb3: Use new signal/slots syntax: Refactoring.
Above are “GUI improvements”, and below are “New features”:
e51718ed: (Oversized commit, let me know if it needs to be broken down) Move out
MainGUIto a new tabbed pane.
7a22072e: Fix crash on changing glyph index after. Detailed info in the commit message.
8168f4aa: (Pure mechnical commit) Add
overridemodifiers to all overriding functions: Modernize C++.
3e66c56e: Resolve naming confliction for
repaintfunction: Don’t use the function name
Commits that aren’t ready for review/merge:
0148c2f6: (Severely oversized commit Let me know ASAP if needs to be broken down) WIP: Add initial support to “Continuous View”.
To sum up:
ftviewtool (“Continuous View”) with only 1 mode;
I’m current working on refactoring and writing documentation for the current event and data flow - they’re in quite a mess. After that, I will follow #15:
ftview, namely Fancy, Stroked and Waterfall. I noticed there’s another one called “text string”, and I assume it’s unnecessary because there would be another tab dedicated for string render (correct me if I’m wrong).
ftstringwhich is another sub-tab “Text String” in the “Continuous View” tab
ftmultiwhich is another tab “Hinting Comperator”
However, I noticed there’re a lot of unimplemented features:
ftviewtool. Need to further investigate if we should adopt code from the legacy tool.
I would like to know which should I prioritize.
As the project progressed faster than my estimation, we can expect to bring forward the first evaluation period if possible.
|[Prev in Thread]||Current Thread||[Next in Thread]|