Skip to content

Add generic Gantt enhancements: theming, collapse/expand, resizable c… - #30

Closed
QVDucTuan wants to merge 9 commits into
insideapp-srl:mainfrom
QVDucTuan:custom
Closed

QVDucTuan wants to merge 9 commits into
insideapp-srl:mainfrom
QVDucTuan:custom

Conversation

@QVDucTuan

Copy link
Copy Markdown

…olumns

Extends flutter_gantt with progress fill, tree connector guides, dependency arrows, group capsules, point-in-time markers, selectable-drag interaction, a standalone list-view table, collapsible rows, depth icons, hover/selection row highlighting, and resizable list columns — plus a full set of QV-inspired theme defaults (colors, typography, dimensions, dividers).

What does it do?

Describe the technical changes you did.

Why is it needed?

Describe the issue you are solving.

How to test it?

Provide information about the environment and the path to verify the behavior.

Related issues/PRs

Let us know if this is related to any issue/pull request.

KeloTuan and others added 9 commits August 25, 2026 20:44
…olumns

Extends flutter_gantt with progress fill, tree connector guides, dependency
arrows, group capsules, point-in-time markers, selectable-drag interaction,
a standalone list-view table, collapsible rows, depth icons, hover/selection
row highlighting, and resizable list columns — plus a full set of QV-inspired
theme defaults (colors, typography, dimensions, dividers).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
.claude/ is deleted entirely; doc/timeline-flutter-port/ stays on disk but is
no longer tracked — both are now gitignored.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Add a right-click hook (onActivitySecondaryTap) and GanttActivity.copyWith
  so apps can build their own context menus and patch activities.
- Make list columns ratio-based and resizable, restorable via
  initialColumnWidths/onColumnWidthsChanged; column dividers are now short
  per-row ticks instead of full-height lines.
- Fix a crash when dragging a bar's edge past the rendered date range
  (clamp the drawn width instead of blocking the drag).
- Add GanttController.minEndDate so the chart keeps a +/-30-day default
  view window, auto-extending 5 days past wherever a drag lands outside it.
- Auto-center the chart on today on load and on the selected activity when
  a row or bar is selected.
- Rework the default bar color formula, dividers, and group-capsule styling
  to match QV Agent Hub's reference design.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ckbox styling

- Add a "peek children" affordance: hovering a narrow Subtask bar shows a
  small badge (a sibling overlay layer, not painted inside the bar, so it
  stays clickable however far it sits past the bar's own edge) that opens
  an app-built popup via Gantt.onPeekChildrenTap. Checklist children stop
  rendering inline (and stop overflowing past their group capsule) below
  GanttTheme.childrenPeekWidthThreshold, and are now width-clamped to their
  parent's own bar even above it, so long names ellipsize instead of
  spilling out.
- Fix Subitem dates not following a Subtask resize (only a whole-bar move
  carried children along before) — add
  validStartMoveIgnoringChildren/validEndMoveIgnoringChildren so a resize
  isn't blocked by a child's own date, paired with app-side clamping in
  onActivityChanged.
- Fix a below-header clip gap shared by every scroll-following overlay
  (group capsules, tree guides, dependency arrows, markers) that let
  content scrolled far enough paint over the calendar header.
- Replace the colorIndex-driven hue rotation with GanttActivity.withColor,
  so an app decides each Task family's color itself (e.g. at random) and
  propagates it to every descendant in one call.
- Restyle column headers/month labels larger, row hover/selection tints
  neutral grey, and the demo's checklist checkbox thinner-bordered with a
  white fill.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@rickypid

Copy link
Copy Markdown
Contributor

Thanks @QVDucTuan for your contribution! Unfortunately, this implementation significantly changes the nature of our package: it was designed to be as generic as possible, letting users customize its implementation as much as they can. As a result, we can't accept this proposal.

Fonts, for example, depend on the theme of the app the package is integrated into, so we can't hard-code them into the public package.

Thanks a lot for the time you put into this!

@rickypid rickypid closed this Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants