Skip to content

Refactor filter inputs#4454

Draft
Withalion wants to merge 31 commits intomasterfrom
refactor/filter-inputs
Draft

Refactor filter inputs#4454
Withalion wants to merge 31 commits intomasterfrom
refactor/filter-inputs

Conversation

@Withalion
Copy link
Copy Markdown
Contributor

@Withalion Withalion commented Apr 15, 2026

Postponed for now

TODO:

  • All dropdown inputs need to be refactored
  • Refactored inputs can be further refactored into single element
  • Look at MMBaseInput instead of MMBaseSingleLineInput
  • In UniqueValuesFilterModel::populate() we should pass layer instead of FilterController

tomasMizera and others added 30 commits February 10, 2026 21:29
Implement a filtering system that lets users filter map features
by field values. Supports text, number, and date/datetime range
filters with calendar picker integration.

- FilterController manages filter state, expression generation,
  and layer subset string application
- Filter panel UI with per-layer sections and field-type-aware inputs
- Date filters use MMCalendarDrawer with time picker for datetime
  fields and date-only picker for date fields
- Timezone-aware: converts local time to UTC for GeoPackage comparison
- Seconds/milliseconds normalization for inclusive time ranges
- Individual date clear buttons and range validation
- Filter button on map, settings toggle, feature list integration

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Switch the map filter button from outline to filled icon when
filters are applied, making the active state more visually distinct.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Detect ValueMap/ValueRelation editor widgets and show dropdown filter
instead of text/number input. Options are lazy-loaded via getDropdownOptions()
with search and a 100-item limit for large ValueRelation tables.
Multi-value fields (AllowMulti) use LIKE-based expressions to match
the {k1,k2} storage format. Selected items are always included in
the options list even when beyond the limit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Withalion Withalion changed the base branch from master to dev/filtering April 15, 2026 13:36
@github-actions
Copy link
Copy Markdown

Coverage Report for CI Build 24457518310

Coverage decreased (-0.007%) to 58.457%

Details

  • Coverage decreased (-0.007%) from the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • 1 coverage regression across 1 file.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

1 previously-covered line in 1 file lost coverage.

File Lines Losing Coverage Coverage
mm/app/position/providers/simulatedpositionprovider.cpp 1 91.67%

Coverage Stats

Coverage Status
Relevant Lines: 15064
Covered Lines: 8806
Line Coverage: 58.46%
Coverage Strength: 100.81 hits per line

💛 - Coveralls

@github-actions
Copy link
Copy Markdown

📦 Build Artifacts Ready

OS Status Build Info Workflow run
macOS Build 📬 Mergin Maps 66981 dmg Expires: 14/07/2026 #6698
linux Build 📬 Mergin Maps 67091 x86_64 Expires: 14/07/2026 #6709
win64 Build 📬 Mergin Maps 58931 win64 Expires: 14/07/2026 #5893
Android Build 📬 Mergin Maps 801051 APK [arm64-v8a] Expires: 14/07/2026 #8010
📬 Mergin Maps 801051 APK [arm64-v8a] Google Play Store #8010
Android Build 📬 Mergin Maps 801011 APK [armeabi-v7a] Expires: 14/07/2026 #8010
📬 Mergin Maps 801011 APK [armeabi-v7a] Google Play Store #8010
iOS Build Build failed or not found. #8949

@Withalion Withalion self-assigned this Apr 16, 2026
Base automatically changed from dev/filtering to master April 23, 2026 14:02
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.

3 participants