|
From: | Charlie Jiang |
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 ftinspect
until today. Changes that were already merged aren’t included.
gsoc-2022-chariri
branch)ci-templates
project 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.gsoc-2022-chariri
branchI’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 MainGUI
,
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 FontFileManager
class to watch on files and notify MainGUI
.1f0ead70
:
Decouple Engine
from MainGUI
.
This removes the bidirectional dependency relation between Engine
and MainGUI
,
and settings are all explicitly passed from MainGUI
to Engine
via setters.5771bdf9
:
(Pure mechnical commit) Rename all private member variables
with an underscore suffix. Already discussed in #13.5f380ae9
:
Use custom QAbstractListModel
instead of manually mapping.96390184
:
(minor) Directly pass Engine
object to constructor of MainGUI
.3a53026e
& 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 SettingPanel
class. Settings are explicitly passed to the engine via syncSettings
function. Also wired signals to notify MainGUI
when a reloading or repainting is needed.0976b852
:
Remove 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.63e01f19
& d51b8020
:
Basically bug fixes for meson, and GCC on C++11.To sum up:
Engine
no longer depends on MainGUI
;QAbstractListModel
replaced the handcrafted QHash
-based
value mapping;QComboBoxx
is removed.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.80939bdb
:
Rename custom_widgets.[ch]pp
to customwidgets.[ch]pp
:
Naming convention.b60d597a
:
Add GlyphIndexSelector
,
move out related code from MainGUI
.
The GlyphIndexSelector
will 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 ftgrid
out from MainGUI
to a new tabbed pane.7a22072e
:
Fix crash on changing glyph index after. Detailed info in the
commit message.8168f4aa
:
(Pure mechnical commit) Add override
modifiers to all overriding functions: Modernize C++.3e66c56e
:
Resolve naming confliction for repaint
function: Don’t use the function name repaint
.Commits that aren’t ready for review/merge:
b1746bda
& 0148c2f6
:
(Severely oversized commit Let me know ASAP
if needs to be broken down) WIP: Add initial support to
“Continuous View”.To sum up:
ftview
tool (“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).ftstring
which is another sub-tab “Text String” in the “Continuous
View” tabftmulti
which is another tab “Hinting Comperator”However, I noticed there’re a lot of unimplemented features:
ftview
tool. 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.
Cheers,
Charlie Jiang
[Prev in Thread] | Current Thread | [Next in Thread] |