Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Generated by auto-changelog.
Unreleased¶
v13.12.2 - 2026-10-14¶
Commits¶
- [FIX] FXLowerCaseValidator lowercases capitals instead of dropping them
463fb66
v13.12.1 - 2026-10-08¶
Commits¶
- [FIX] apply_tip replaces the accessible name it set, not only the first one
5225b13
v13.12.0 - 2026-10-08¶
Commits¶
- [BUILD] Icon libraries ship as one zip each, not three submodules
17061e1
v13.11.0 - 2026-10-08¶
Commits¶
- [FEAT] The output log shows only the levels it is asked for, with Show all
a7cb956 - [FIX] Show all is a declared slot, so a dropped log pane is freed at once
18f4d30
v13.10.3 - 2026-10-08¶
Commits¶
- [FIX] The busy line moves by elapsed time at the screen's rate, so it glides
cb34b2d
v13.10.2 - 2026-10-08¶
Commits¶
- [FIX] A column floor's handlers are declared slots, so no dead floor breaks a live one
753bf7b
v13.10.1 - 2026-10-07¶
Commits¶
- [FIX] Sheet image paths are quoted, so a $ in the temp folder keeps the theme
63ac3a1
v13.10.0 - 2026-10-07¶
Commits¶
- [FEAT] A dock area can fix its panes, and asks no room for an empty centre
dc140ea
v13.9.0 - 2026-10-07¶
Commits¶
- [FEAT] The transport groups round a filled Play, the frame field beside the rate
13954ce
v13.8.1 - 2026-10-06¶
Commits¶
- [FIX] Sheet images are PNGs, so check boxes and radio buttons show in Cinema 4D
357a3dc
v13.8.0 - 2026-10-06¶
Commits¶
- [FEAT] The dcc icon library becomes "brands", and every logo gets a grey one-colour mark
1533e46
v13.7.0 - 2026-10-06¶
Commits¶
- [FEAT] A timeline says where its track draws its frames, and zooms from code
a9f31bd
v13.6.1 - 2026-10-05¶
Commits¶
- [FIX] FXSeating seats a tray panel in the screen corner nearest its icon, one gap off both edges
1e23768
v13.6.0 - 2026-10-04¶
Commits¶
- [PERF] The log pane lays out once per flush and once per theme switch
49675dc - [PERF] The timeline builds its ticks once per window, not per paint
93965f2 - [PERF] Parse the theme with libyaml and defer imports few callers need
7b52594 - [FIX] A whole-star rating rounds a half up
db5a527 - [FIX] FXRangeSlider.set_values signals only the handle that moved
4de4f0b - [FIX] An empty extension set accepts every file, as Browse already did
a0d08a6 - [FIX] set_message refits a shown banner and restacks the ones below
1ebe2c7 - [FIX] A null QIcon on a collapsible leaves no gap before its title
4b8ea56 - [REFACTOR] One severity icon helper; the banner's tint rules come from SEVERITIES
f3648ef - [FIX] Paint the splitter mark, menu badges and combo card again
dbeff01 - [REFACTOR] Banner slides end in one handler; dialog setup inlined; boilerplate prose dropped
6435ae6 - [REFACTOR] Drop narrating comments; the validated edit's key check reads as one test
67ae9f8 - [REFACTOR] Fold one-caller wrappers in the core; drop tests of names and privates
9bc7bd8 - [DOC] Widget docstrings state the contract in a line
9224c8e - [FIX] Fill a partial icon library's defaults; write sheet icons whole
013109e - [REFACTOR] Trim history and empty summaries from fxstyle docstrings
33b9d84 - [REFACTOR] Delete widget tests that test Qt, mirror a literal or repeat another
3750cf8 - [FIX] Keep the FXApplication switch test out of the user's settings
88309ab - [REFACTOR] Merge widget test near-copies, quicken waits, cut history from test prose
d3147fc - [FIX] Every child test process keeps its theme out of the user's settings
02df124
v13.5.0 - 2026-10-03¶
Commits¶
- [FEAT] A narrow timeline drops its jumps, then its frame field
c1db996
v13.4.0 - 2026-10-03¶
Commits¶
- [FEAT] The command palette lists what you ran lately first, as VS Code does
4ed06b7
v13.3.0 - 2026-10-02¶
Commits¶
- [FEAT] A timeline can serve a player: hide its range and rate, borrow its clock
25da07d
v13.2.0 - 2026-10-02¶
Commits¶
- [FEAT] One-colour DCC marks, and a palette row can show any library's icon
55db0f3
v13.1.0 - 2026-10-02¶
Commits¶
- [FEAT] A palette command can list choices to pick from, in place
384119d
v13.0.8 - 2026-10-02¶
Commits¶
- [FIX] A combo popup row is at most 24 px under every base style; Windows 11 asked 34
5f6755f
v13.0.7 - 2026-10-02¶
Commits¶
- [FEAT] A menu item can wear a pill at its right, set by fxstyle.set_menu_badge
fe78e65
v13.0.6 - 2026-10-02¶
Commits¶
- [FIX] A row's edge is the pane's border colour, and a header divides its sections
b248985
v13.0.5 - 2026-10-02¶
Commits¶
- [FIX] A banner sits under the topmost pane title bar in the corner, whatever panes are below
0460203
v13.0.4 - 2026-10-02¶
Commits¶
- [FIX] A tab widget is one pane card around its tabs and page, as a dock pane is
34c7012
v13.0.3 - 2026-10-02¶
Commits¶
- [FIX] A tab's close button stands as far in from the pill's right edge as its text from the left
5f67eb0 - [FEAT] A palette command shows its icon left of its label, every label in line
7759ec1 - [FIX] Every palette tip sits with the same margins, plain or rich, one line or wrapped
8754e0d - [FIX] Only a close button's metric asks for its parent, so views keep their sheet properties
85888e3
v13.0.2 - 2026-10-02¶
Commits¶
- [FIX] A branch chevron keeps its 16 px box at any tree indentation, thumbnail views included
129a1ef - [FIX] One 4 px gap between widgets: layouts default to PANE_GAP
ce685e9 - [FIX] FXFilteredTree spaces one pane gap under any style, a host's included
53b099c - [FIX] A list row's text stays put when hovered or selected, on Qt 6.6+
73c743b - [FIX] A delegate row's card is its only fill: no square under its corners
aaac6de - [FIX] An item view keeps its bottom corners round on the windows platform
4658b5d - [FIX] A combo popup's rows take no list text step when hovered
86a9a6a - [FIX] The one-gap tests run without QtAds; only the dock area's needs it
8a3dfc3 - Revert "[FIX] An item view keeps its bottom corners round on the windows platform"
064c1aa
v13.0.1 - 2026-10-02¶
Commits¶
- [FIX] The first tab pill stands as far off the strip's start as off its top
0544cc4 - [FIX] A hovered row reads 1.2:1 off its view and off its own card at every depth
02e5d04 - [FIX] A tree or table header sits flush with the view's frame
bf90058 - [FIX] A tree whose header hides or shows after its first show takes the matching inset
f94b6bc - [FIX] A hovered tinted row reads off its own tint at every depth in every theme
edf4e7d - [FIX] A docked pane's content stands one tab gap off the pane's edges, from one PANE_GAP
aa3a123 - [FIX] A branch chevron keeps its 16 px box under a platform style that indents wider, in rows of any height
a263125 - [FIX] A scroll bar's thumb sits centred between a view's rows and its frame
e32c192 - [FIX] A list and a headerless tree keep exactly their 4 px top inset, rows' text still
e43ec71 - [FIX] A docked pane floors to its content's own minimum size, not only its hint
b119048
v13.0.0 - 2026-10-02¶
Commits¶
- [DOC] Plan the audit fixes for 13.0.0
e0864d7 - [CHORE] Every push runs the tests, and a release tag only reaches PyPI when they pass
686dfc0 - [CHORE] The tests run on a push to any branch, so a branch is proven before it merges
708b150 - [FIX] The log pane lets go of logging when its widget dies and no longer moves the reader's cursor or scroll
49e8b3d - [FIX] FXSingleton builds a new instance when Qt has deleted the old one
c76071f - [FIX] The window-corner tests run on Linux, faking WinDLL where ctypes has none
4f66440 - [FIX] FXApplication.instance() is Qt's own, and a deleted application is never handed back
34ebf3a - [FIX] The code highlighter colours the characters it lexed, once per change, and carries an opened string to the lines below
b3ddfa9 - [FIX] FXProgressCard shows a description set after it was built, and takes its looks from the theme sheet
fb65bf7 - [FIX] FXElidedLabel.text() returns the whole text and sizeHint asks for its width; elided_text() reads what is painted
79f1e0f - [FIX] FXLoadingOverlay covers its parent as it resizes, and a hidden FXLoadingSpinner stops ticking until shown
1e2ceaa - [FIX] FXNotificationBanner deletes itself once dismissed, stacks on a hidden parent, and takes its looks from the theme sheet
428e9d6 - [REFACTOR] One token resolver and one colour cache: get_theme_colors is the resolved sheet map, load_stylesheet changes nothing, overlay_color_file merges a few keys and re-applies
f473da7 - [FIX] A breadcrumb segment click is recorded in history, and double-clicks reach the editor through an event filter
474428f - [FIX] Icons read the colour cache once, recolour through one path (opaque pixmaps too), and list names from a library's own root and pattern
4d4c3ec - [FIX] The fuzzy proxy filters and sorts rows holding numbers or no data, and reads match colours from the cache
9909d00 - [FIX] FXWidget sets no stylesheet and keeps layout() callable (main_layout); unused fxutils helpers deleted; theming core tests
7bebb6b - [FIX] Item delegates paint from the pull model: cached thumbnails, a parented picker, a full focus ring, and one layout for size and paint.
3f7988d - [FIX] FXFilePathWidget checks paths on the thread pool without blocking the UI, and a multi-file drop keeps every file
4b5db4f - [DOC] The plan adds the theme palette and pull-model icons
ea6be2a - [FIX] FXAccordion signals report a section's current index after a removal
a6a5aae - [DOC] The plan treats too-complicated code as a defect, with a complexity audit before release
11a92a3 - [FIX] FXRangeSlider rounds pixels to the nearest value, splits stacked handles toward the drag, and paints thumbs in theme colours
35950b9 - [FIX] FXTimelineSlider zoom-out always grows the window, frame 0 is a valid start, and the range spinboxes go through set_range
0e29394 - [FIX] FXProgressCard's bar keeps its flat fill over the base progress bar rule
0079b8a - [FIX] FXFloatingDialog opens centred on the cursor, closes like a QDialog, keeps an opaque body under Houdini and a default icon that follows the theme
02d5109 - [FIX] FXValidatedLineEdit reuses one set of animations and keeps the caller's margins and stylesheet; icon and password edits style through QSS
ce5601e - [FIX] FXSystemTray's menu follows the theme, opens at a whole pixel, and Quit leaves a DCC host running
2dff04b - [FEAT] Themed roots wear a QPalette built from the theme, and icons read the theme when drawn: no registry, no flush on a switch
1db9222 - [FIX] FXSplashScreen opens with its own default image, crops any shape at whole pixels, and follows theme switches
59c2838 - [FIX] FXSearchBar's focus ring lights through a focused property, and setFocus(reason) reaches the field through its focus proxy
fe6ec0d - [FIX] FXRatingWidget redraws its stars on a theme switch, and FXToggleSwitch paints its thumb in the theme's thumb colour
815ef87 - [FIX] FXTagInput scrolls sideways to chips past the edge, emits a copy of its tags, and draws chips in on-accent theme colours
bc901bc - [FIX] Tooltips close on a click outside, delete themselves when done, and item tooltips are built on hover by one handler per view.
c3cb642 - [FIX] FXCapitalizedLetterValidator accepts a lowercase start as intermediate, so its fixup capitalises it on Enter
9b8d490 - [FIX] FXStatusBar paints its accent line from one state, and the message timeout clears the tint once
2473802 - [FIX] Only monochrome icon libraries recolour: dcc logos and any recolor=False library keep their pixels, and a failing icon draw answers a blank pixmap instead of killing the process
c77ef3f - [FIX] FXDropZone enables Clear without a tree, judges paths with one function, and shows drag and feedback states through a dropState property
c976b47 - [REFACTOR] The fuzzy search list and tree share one base, the tree filters recursively, and tree items are found in the model rather than a text map.
53a0260 - [FIX] FXCollapsibleWidget's header toggles on a left click only, through an event filter, and marks its expanded state for QSS
76101ed - [REFACTOR] FXPrimaryButton and FXIconButton leave FXThemeAware and redraw their icons on theme_changed
6e35f5e - [REFACTOR] FXMainWindow shows its name only in the menu bar corner, keeps Qt's own central widget and finds its menus on whichever menu bar it has
eb173e7 - [FIX] The collapsible icon test starts from the dark theme, so suite order cannot make the switch a no-op
01981df - [DOC] FXApplication says which fxgui widgets theme themselves inside a DCC host
fc08d5c - [REFACTOR] One path per job in the core: one theme-change path, one sheet builder, one colour walk, one defaults resolver; unused helpers and the singleton machinery deleted
7c0f25c - [DOC] The plan moves ls-pipeline's generic fixes into fxgui
0354811 - [FIX] Owned widget sources and tests are ASCII only, and the new tests import only what they use
8ac9478 - [MERGE] T1 theming core: one colour cache, one resolver, theme palette, pull-model icons
8d14573 - [REFACTOR] The thumbnail delegate draws every cell's share of the row from one rounded outline, and size and paint read the same thumbnail and badge checks.
bb33808 - [DOC] The plan pins the QtAds import rules for Houdini
0fbedac - [DOC] The plan fixes the order-dependent tests
38be056 - [REFACTOR] One severity table names, iconises and logs a severity for the status bar, the banner and the progress card
2736045 - [DOC] The icon engine says why its clone list must exist, and the test pins that it owns each clone and drops the dead ones
1f68f49 - [MERGE] T1: the clone keep-alive says why it must exist
eac3520 - [REFACTOR] FXNotificationBanner stacks by its parent's own children, not a class registry of its own
5539a92 - [FEAT] Log pane ANSI colours resolve to the theme's feedback and text colours, readable on the pane, and recolour on a theme switch
0799bf7 - [DOC] The plan proves the icon clone list at shutdown
6826aae - [REFACTOR] FXMainWindow asks its window handle for its screen on every Qt, and sets or cycles the theme one way
f63486b - [REFACTOR] FXSystemTray opens its menu at the cursor and lets Qt keep it on screen, instead of guessing the taskbar side
23ef6fc - [REFACTOR] A tooltip is placed by one routine and anchored by one attach and detach, and the manager handles a tooltip event in one path.
6789957 - [FIX] FXSplashScreen fades in to fully opaque with Qt's own animation, and says nothing made up by default
973b209 - [REFACTOR] FXCollapsibleWidget measures its open height in one place and lets Qt's AsNeeded policy decide the scrollbars
a41829f - [REFACTOR] FXApplication keeps no theme hook of its own, so a second application in one process is themed too
6d199ed - [REFACTOR] FXFloatingDialog's Close button only rejects; Qt closes and deletes the dialog from there
0afddab - [REFACTOR] Mouse positions come from event.position(), which qtpy provides on every binding, instead of three private helpers and two fallbacks
5b4cd44 - [REFACTOR] FXRangeSlider draws its two value labels in one loop, and the slider and toggle import Qt types at module level
fc177f3 - [MERGE] T3 item views: cached thumbnails, one row outline, tooltips that close, shared fuzzy base
527be12 - [DOC] Inventory of ls-pipeline code that moves into fxgui
81e7010 - [MERGE] T2 window chrome: no banner band or wrapper, menus looked up, painted status line, one severity table
de8dbb3 - [DOC] The plan adds the shape-only base sheet and the signal-drop proof
6d56f3a - [REFACTOR] FXDropZone's tree reads the zone's own rules and hands drops to it; one drop-state setter replaces a flag and three style methods
57a1f65 - [REFACTOR] The log pane attaches to quiet loggers through one method, queues through append_log alone, and drops its logger bookkeeping
aab23b6 - [REFACTOR] FXBreadcrumb's edit mode has one public open and close instead of wrapper pairs, and FXCodeBlock keeps its language only on the highlighter
eb3b0fc - [REFACTOR] FXAvatar's cropped photo is invalidated by its cache key alone
e7ac2d4 - [FIX] Owned widget modules pass ruff F, B and BLE: the highlighter catches only Pygments' ClassNotFound
fa11d66 - [MERGE] T4 widgets: theme log colours, live-log search, one-lex highlighter, widgets off the mixin
6efd975 - [DOC] The plan keeps one public name per job in 13.0.0
33b293d - [REFACTOR] Icons name their inks by theme token, per mode, and take them when drawn; FXIconLabel draws one, and no widget re-bakes an icon on theme_changed
47c05b1 - [REFACTOR] The base sheet carries shape and state: roots take the theme palette and a root font, so setFont, item backgrounds and labels on cards show; a root inside a host adds the rules Qt gives no other way in
4064d03 - [REFACTOR] FXThemeAware, the widget form of apply_theme, the collapsible aliases and the Qt 4 setRegExp branches are gone; apply_theme takes a theme name
c98b151 - [FIX] A theme_changed connection to a widget's method is proven to die with the widget, and the splitter mark drops its own, since Qt repaints the handles on a switch
0f55dbf - [FIX] The suite passes in any order: every test starts on the dark theme with the pointer away and no window left open, and no test leaves a mouse button down or compares wrapper ids
a1b5cce - [FIX] Python quits cleanly with cloned icons still held, proven in a subprocess that heap-corrupts without the clone list
192a6f0 - [FIX] A focused FXValidatedLineEdit is proven to draw its rejection flash over the focus ring for the whole hold; a render taken during a fade sees the blend
9862530 - [DOC] The plan sorts every inventory item into move, replace or keep
e9f3db6 - [FIX] A framed window keeps an unmarked page on the surface now that no base rule fills every widget
38fb826 - [DOC] The plan writes the move-over from a fixed ls-pipeline snapshot
a0c88d2 - [DOC] The theming, styling and icon pages and CLAUDE.md describe the pull model: QSS with registered tokens, colors() at paint, palette and root font for defaults, icons by token name, theme_changed for side effects only
cb25325 - [FEAT] fxstyle.mix and fxstyle.step_toward are public, so a consumer derives colours with the steps fxgui uses
ca9dee6 - [FEAT] A font role names its weight and hinting, and fxstyle.font(role=...) builds any role's QFont
83f970c - [FIX] A shown FXTooltip hides when its anchor or the anchor's window closes, and dropping a tooltip that last holds its anchor no longer crashes
c225394 - [FEAT] mark_as_title(widget, rank="section" or "card") sizes and weights a heading from the theme, in an app and inside a host
275d427 - [FIX] A test proves an overlay of one theme and the fonts block resolves exactly like a whole copied colour file
02b2d70 - [FIX] A test proves the themed app palette carries the accent behind selected text after every switch, graphics text items included
c511021 - [FEAT] FXThumbnailDelegate owns its rows: apply_transparent_selection skips the native row panel and focus rect, focus_ring and paint_selection choose a row or cell ring, and apply_minimum_thumbnail_width takes a floor
1285126 - [FEAT] fxstyle.set_widget_style(widget, qss) gives one widget a sheet whose @tokens follow every theme switch, with no follower object
433ef73 - [FEAT] FXSortedTreeWidgetItem sorts by its column's SORT_ROLE key first and natural text after, outside a tree too
9beae93 - [FEAT] fxstyle.mark_as_thin_scroll(area) draws a scroll area on its card: no fill, a 6 px quiet bar with no arrows
8c76e35 - [FEAT] fxutils shows menus with popup_menu, adds wrapper-proof submenus with add_submenu, filters a tree to any depth with filter_tree, fits columns to collapsed rows, and snapshots a tree's state across a rebuild with TreeState
e5c27f3 - [FEAT] _compat.later runs a deferred call owned by a QObject on Houdini's PySide 6.5, and rehome/focus_step walk the focus chain without killing wrappers
b2c6bb5 - [FIX] get_icon and get_pixmap hand each caller its own copy, so a binding that deletes or changes one leaves the cache whole
d4d8e66 - [FEAT] fxicons.rounded_pixmap(image, side, ratio) crops an image to an outlined rounded square, sharp at the given pixel ratio
60510db - [FEAT] fxwidgets exports FXPygmentsHighlighter, and a test proves a class rule gives an editor the mono face inside a host
40e0c5f - [FEAT] fxstyle.depth_shade(base, depth) tints a tree row toward border_light by its depth, holding the text at 4.5:1
f688eb7 - [FEAT] FXKeyboardTree, FXSplitButton and FXFilteredTree answer the keyboard: the Menu key and Shift+F10 open a row menu, Enter runs a primary act or clicks, Alt+Down opens a split dropdown, and typing goes to the filter bar
cb5d66d - [FEAT] The dcc library carries After Effects, Cinema 4D, DaVinci Resolve, Unreal Engine, VLC and xStudio marks
0b58718 - [TEST] A tree header's icon follows a theme switch with no hook of its own
fdac88a - [FEAT] FXFlowLayout wraps widgets onto new lines, and FXTagInput's chips wrap with it instead of scrolling sideways
6c897bd - [DOCS] Move-over group D results: each item's case, fxgui name and ls-pipeline replacement
0adb327 - [FEAT] A cut FXElidedLabel shows its whole text as the tip when the caller set none
5179a04 - [MERGE] Move-over D: owned delegate rows, focus ring per cell, keyboard tree, split button, deep tree filter, tree state
982b544 - [FEAT] An error banner waits to be dismissed by default, message() reads a banner's words, and show(unique=True) skips a repeat
1b42316 - [DOC] Report for move-over group A: each item's case, fxgui name and the ls-pipeline change
eee1a1e - [MERGE] Move-over A: overlay fonts, title ranks, face weights, public colour helpers, depth shade, set_widget_style, rounded pixmaps, thin scrollbars
29ee9de - [FEAT] FXLoadingOverlay can leave its view undimmed and clickable and takes a spinner size; a spinner on a closed tree row idles on its own
073007e - [FEAT] FXStatusItem puts an icon and a word on the status bar that reads on any tint; add_item, tint(), ground() and status tips land after the items, and no project leaves the project blank
7711b7c - [FEAT] FXStatusBar.set_busy runs a busy line along the bar's top band in its own paintEvent, framed or not, and moves no layout
ee30568 - [FIX] FXBreadcrumb paints its strip, edge and ink from the theme at paint time, reading at 4.5:1 and 1.3:1 on a framed window in every theme, with no theme hook; segments_focusable=False and set_edit_placeholder
a997910 - [DOC] The breadcrumb section says how its colours follow the ground and the theme, and how to drop its Tab stops
22b7480 - [FEAT] FXCommandRow is a fixed toolbar whose margins hold through style changes and the window's own toolbar; a corner widget re-places itself when it grows; a framed window flattens icon-only push buttons on its bars
9c37177 - [FIX] Enter in a dialog runs its default button, never the icon button of an FXIconLineEdit or FXPasswordLineEdit
e5f4291 - [FEAT] FXOutputLogWidget takes a batch with append_many, hangs wrapped records under a header pattern with hang_indent, and opens its search with show_search
d5a1976 - [FIX] FXSearchBar is one Tab stop, its field, which line_edit() returns
9fd4fb4 - [FIX] A window inside a host keeps the host's sheet on its parent out: the host rules reset what Houdini 21 and 22's base.qss set and the base sheet leaves open
6b97bdc - [FEAT] Every list, tree and table under fxgui's sheet scrolls by the pixel, in an app and inside a host, through qproperty rules on QAbstractItemView; the per-view calls go
d2955f2 - [FEAT] FXCommandPalette opens a search over a window's FXCommand rows, or over rows to go to, ranked by words in order; Enter runs, Escape or a click outside closes
40dd89b - [FEAT] FXStatusDot is a small clickable circle in a feedback colour, grey for no state, repainted from the theme
436da6c - [FIX] rehome files a wrapper only under a parent wrapper that lasts, so a Tab walk through QtAds tabs no longer frees a widget's wrapper mid-walk
ec56ebc - [FEAT] fxdocking.FXDockArea docks named panes in QtAds as cards on the frame, one gap apart, with saved layouts, kept-open panes, window keys in floats, a declared Tab walk and banner placement, behind the optional docking extra
447d173 - [FEAT] FXCheckableComboBox ticks several rows with a click or Space while its popup stays open, and reads them when closed
8d158ce - [FEAT] FXResizedScrollArea(floor=, cap=) asks for its content's height between the two; fix_wrapped_heights and align_labels close Qt's wrapped-label and form-column gaps
62f2590 - [DOC] The plan lists the lint sweep and the fxdocking hython proofs
f13acb4 - [DOC] The move-b report lists every item's case, commit, new names and ls replacement
d2f6be6 - [FEAT] fxutils.later, fxutils.rehome and fxutils.focus_step are public, re-exported from their one definition in _compat
ee0a71f - [MERGE] Move-over B: status items, busy line, command row, corner re-place, Houdini host reset, pixel scrolling by stylesheet
36180eb - [DOC] The move-b report notes that windows inside a host space tabs, group boxes and sliders slightly differently
20dc581 - [DOC] The move-over C report says what moved, what changed and how ls-pipeline calls it
78b4fba - [FEAT] FXSeating seats a tray panel above its icon, at the pointer or in the corner, inside the screen, and slides it in once
fc17855 - [FEAT] grab_screen_region(window) lets the user drag out a screen region with the window hidden, Escape cancels, and the application never quits on it
f14f91c - [FEAT] The dcc library carries Alembic, Deadline and Kitsu marks
864e0c9 - [FEAT] FXSingleInstance holds one running copy per name; a second start is refused and the first emits woken
d5959e5 - [FEAT] The dcc library carries the two-colour Python mark
9e09ca2 - [REFACTOR] FXEmojiButton is a round FXIconButton of a given size, so an emoji button sits beside the other icon buttons with nothing restyled
403785d - [FIX] A table cell's own background shows inside a host, even under Houdini's sheet: the host reset gives QTableView::item a native border instead of none
58c427e - [FEAT] FXMentionEdit offers people by name after an @ and lists who the text still names; FXThreadLine joins a comment's face to each reply's
0dda6e9 - [FIX] Tools put in the menu bar corner show the menu bar through: the corner's toolbar and its disabled tools keep no fill of their own
b33a67c - [FEAT] FXConfirmDeleteDialog opens Delete only on the exact word, never makes it the default even once shown, and writes its hint in the error ink
2db3c11 - [DOC] Report for move-over group E: each item's case, fxgui name and the ls-pipeline change
68804c9 - [FIX] A list row's own background shows under Houdini's sheet too, and every item view's selection and hover wear the theme there, proved active and inactive
6ea0d46 - [MERGE] move-icons into audit-fixes
89cfeab - [MERGE] move-c into audit-fixes
085f1a0 - [MERGE] move-e into audit-fixes
cdc1761 - [FEAT] fxicons.badged(icon, color) puts a filled dot at an icon's lower right, a ring cleared round it, for work in flight
3304886 - [FEAT] fxutils.set_app_user_model_id(app_id) names the process to the Windows taskbar, a no-op answering False elsewhere
b7f449a - [DOC] The plan has CI test the docking extra
da8ce64 - [FIX] A QFrame HLine or VLine draws one flat pixel in the theme's border, not Qt's two-tone bevel
8e1e0a7 - [REFACTOR] FXCommandPalette's list scrolls by the pixel through the base sheet, with no call of its own
f8e712e - [REFACTOR] fxwidgets imports in one sorted block and lists every public class in one sorted all, which a test holds to
9394fe8 - [DOC] The group E report names the ls-pipeline replacement for badged, set_app_user_model_id and the flat frame line
1457c40 - [FIX] An FXTooltip deleted before its anchor, as at exit, lets the anchor go without a RuntimeError
c7a794f - [FIX] An FXToggleSwitch checked before it shows is drawn on, not mid-slide
cf655a4 - [REFACTOR] One gallery: python -m fxgui.examples shows every public widget, and no widget module carries an example of its own
5acd54e - [CHORE] CI installs the docking extra, so fxdocking is tested on Linux, and a machine without Houdini skips its base.qss sheets by name
60dc48c - [CHORE] ruff check --select F,B,BLE passes over the repo, and CI runs it before the tests
f1b8115 - [REFACTOR] FXCollapsibleWidget is the one accordion section class: the deprecated FXAccordionSection alias is gone
f9983fd - [CHORE] The test extra installs pytest-randomly, so every run, local or CI, shuffles the order
f2de053 - [DOC] The plan adds the H21 floating-pane proof and the Houdini launch rules
c213ea8 - [DOC] The doc pages name every public widget once, as the code has it, with no history
c3a55a2 - [DOC] The plan drops the H21 floating-pane proof: the parenting is the same as H22's
d09f0a8 - [FIX] A theme switch re-sheets only the widgets set_widget_style styled, never walking every widget of the app
f3d273d - [FIX] The floating-pane test checks what show_dock asks of the window, so it holds on Linux, where offscreen Qt leaves a floating QDockWidget inactive
7da7aac - [DOC] The plan has the reviewers check the reapply segfault fix and the slow seed
e24d13d - [DOC] The docs build with zensical and its own theme: zensical.toml replaces mkdocs.yml, api-autonav writes the API pages, mike's zensical fork keeps one version per tag plus latest
0b615da - [FIX] An FXToggleSwitch reads in every bundled theme: thumb on track and edge on surface at 3:1 or better, on and off
de77818 - feat(icons): official Maxon Redshift and Cinema 4D marks
ab2057c - [DOC] The plan deletes FXTooltip: apply_tip is the one tooltip
400f7ae - [DOC] The complexity audit of the merged tree, grouped by file
ce82ab3 - fix(icons): every dcc logo draws centred at the same size
e9e5399 - [DOC] The plan drops Qt 5: Qt 6 only, PySide6 6.5 floor
77d0679 - [REFACTOR] fxconfig keeps its INI file where QSettings puts a user-scope one, and a typed default reads a typed value
e33b87f - fix(icons): dcc logos carry no drop shadow or blur
8030f9d - test(icons): no dcc logo carries a near-transparent shape
ccca887 - [REFACTOR] fxutils holds the Qt helpers, one shadow helper and markdown_to_plain_text; fit_columns counts the view's icon size
67439ed - [FIX] FXToggleSwitch is as tall as a push button and every state reads: hover, focus and disabled wear the button tokens, edge and thumb at 3:1 in every theme
3b6db73 - feat(icons): single-colour dcc marks follow the theme
540371f - [FIX] A theme switch paints the gallery exactly as a fresh build: a window is no second themed root under a themed application, a dock bar refits at its first show, and the gallery's feedback colours are token names
243d078 - [FIX] An apply_tip tooltip shows the theme in force when it shows, not the one it was set in
ee0866b - [FIX] An FXTooltip header icon is drawn in the accent of the moment, not a pixmap baked at show
454fe8d - [FIX] A status bar message tints the bar in the theme's own feedback colours, as its icon already was
7f0c60a - [FIX] An FXMentionEdit holds its lines in a font a sheet or a theme hands it after it was built
dccab5c - [FIX] Every QSlider reads in every theme: an accent span at 3:1 on its groove, a handle edged in @control_edge at the button radius, and disabled in the button tokens
f2a1a92 - [FIX] FXRangeSlider speaks the slider language: a QSlider's groove, accent span and button-radius handles, its states, and value labels in the widget's own font and text ink
d1c5df7 - [FIX] FXLoadingSpinner moves in the accent over a border_light track, opaque in every style, and defaults to a push button's height with a stroke a tenth of its size
2cda4c6 - [FIX] FXTagChip wears a primary button's fill and a border_light edge at the theme radius, so it reads on any surface and its corners stay round at any height
609500e - [FIX] FXSplitButton is exactly a push button's height and hovers as one: state_hover fill and an accent edge round the arrow part too, the button radius, and a muted arrow when disabled
910282f - [FIX] FXThumbnailDelegate cards show in every theme: a Qt.BackgroundRole token name fills a card that follows each switch, the edge is a crisp border_light, and the gallery's rows carry their cards again
f4a1eea - [DOC] The theming page writes down the control language: height, radius, fills and edges per state, the 3:1 parts, accent, inks, sliders, switches and item-view cards
163a973 - [FIX] A status bar message keeps its words through a theme switch and takes the new theme's tint: the tint is a registered rule on a severity property, and a long message no longer widens the window
f947b12 - [FIX] Tips and keycaps show the theme of the moment: their HTML names palette roles that Qt reads when the tooltip shows, and FXKeycap draws a shortcut on a window as a key round at the button radius
d222276 - [FIX] A control wears its focus look only when focus came by keyboard, as a browser's :focus-visible: a clicked control looks as it does at rest once the pointer leaves
9684d2d - [FIX] A menu bar item keeps one rounded box in every state: bare at rest, the hover fill when pointed at or after its menu closes, and the accent only while its menu is open
d0e3384 - [FIX] An FXKeycap reads as a key on any surface: a hover fill and a border edge, round at the button radius
03e2713 - [FIX] FXFloatingDialog speaks the control language: a border at the button radius, a section title through mark_as_title, the theme's own push buttons, and one 12 px left edge for title, body and buttons
58b9463 - [DOC] The plan lists the gallery and focus-visibility order hang
8f58dff - [FIX] A spin box is as tall as a line edit and rounds at the button radius
2f8b686 - [FIX] The switch-equals-fresh test runs in about 4 s: one pair each way, app mode once, one grab per page, and closed windows really deleted so no later switch restyles them
23b68df - [FIX] FXSearchBar is as tall as a line edit and hovers as one: the accent edge on hover, the button radius, and the hover fill behind its clear button
b3c2c5d - [FIX] FXTagInput's field is the theme's own line edit, at a line edit's height, padding and focus edge
6c2a665 - [FIX] FXFilePathWidget is as tall as a line edit: its browse button is a push button's height, square, not a fixed 32 px
fc39478 - [REFACTOR] fxconstants names each package path once, fxdcc leaves the package API, and the severity levels live in _severity
9672c50 - [REFACTOR] fxicons draws every icon and pixmap through one engine and one cache; disabled icons wear text_disabled
7b40091 - [FIX] FXBreadcrumb is a push button's height: its buttons, strip and path editor take control_height instead of 28 px in a 32 px row, and its segments round at the button radius
24fa72f - [FIX] FXTimelineSlider's row is a line edit's height: no 30 px floor, and its transport buttons are squares a push button's height
66ba964 - [DOC] The plan points the order hang at deferred deletes that never run
8c7bdc0 - [FIX] A spin box is a line edit's height at the button radius again: 23b68dfa reverted 2f8b686e's style hunk
9817662 - [BUILD] fxgui runs on Qt 6 only: import fxgui names the Qt 5 binding it refuses, and CI also runs on Houdini 21's PySide6 6.5.3
5ea404e - [FIX] Corners come from two tokens: @button_radius (4 px) for every control and menu, and the new @card_radius (8 px) for floating cards; no rule names a 2, 4 or 8 px radius
a6c7c7c - [FIX] A plain QToolButton keeps its 31 px: its padding gives back the 2 px its reserved focus edge took
d2ccb58 - [FIX] FXJoinedGroup's outline is a push button's height, not 30 px beside 28 px buttons
75162fa - [FIX] FXCommandPalette wears a popup's frame and opens at position="top", "center" or "bottom" of its window, and every floating card shares one shadow
8f0eee2 - [FIX] On PySide6 6.5 to 6.7 an icon asked at a pixel ratio comes back at it, and repolish takes an item view
be1f352 - [FIX] One height scale: text controls are control_height, on/off marks the new 18 px INDICATOR_SIZE centred in that row, so a switch beside a button shares its centre line
0ecb39b - [DOC] The plan lists the flaky busy-line test
5170215 - [DOC] The plan takes the card shadow from the theme
cb4e7ca - [DOC] The plan shows one keycap per key
8013dd5 - [DOC] The plan sets one icon ink beside titles
f5cd081 - [DOC] The plan adds the chrome pass: chevrons, scrollbars, group boxes, flat rows
3cbdde9 - [DOC] The plan adds a straight tab underline to the chrome pass
fa9f322 - [DOC] The plan has no item state move its text
b4387a6 - [DOC] The plan gives combo-box popups the menus' popup look
347e34e - [DOC] The plan sweeps for unstyled widgets with a standing test
3ebd3fb - [DOC] The plan scopes test runs: covering tests while working, the full suite once
dbd846b - [DOC] The fix-b report: what group (b) changed, the shims it left and the callers that must move
782af0a - [MERGE] Fix group (b): icons, utils, config, Qt 6 only
0b26a39 - [FIX] add_shadow parents its effect, so a caller that drops the returned effect keeps its shadow
a8844a2 - [FEAT] The dcc library's DaVinci Resolve logo is the glossy three-petal mark, in the shared frame
7cfb1b1 - [FIX] A slider is a 4 px pill with a round handle: surface fill and accent edge, a thicker edge on hover, an accent fill while pressed, a text ring under keyboard focus
7bc535f - [DOC] The fix groups' shared brief
9c030d5 - [MERGE] audit-fixes: the modern slider
5b5c6b6 - [FIX] The gallery starts its spinners once they sit in a layout, so no spinner flashes as its own window; a test records every window shown while the gallery builds
ffded17 - [FIX] FXBreadcrumb: a home click says home once, path() and home_path() are methods, a segment paint reads cached strip colours
5d3c765 - [FIX] FXCollapsibleWidget and FXAccordion: one accessor style, one expanded state, a new cap applies to an open section
b8a0037 - [REFACTOR] FXFlowLayout keeps its gap in QLayout's spacing, FXResizedScrollArea loses its dead resized signal, FXStatusDot reads colors() and the theme's feedback keys
3d799ac - [FIX] FXTagInput: a removed tag leaves no chip behind, a bulk set says tags_changed once
576ecb4 - [REFACTOR] FXIconLineEdit and FXPasswordLineEdit are line edits whose icon is a QLineEdit action
2059fac - [REFACTOR] The regex validators hand their pattern to the base constructor
a9d1814 - [REFACTOR] FXSearchBar is a line edit with a search action and Qt's clear button
f556e6e - [FIX] A tree draws the accordion's chevrons in the icon token, and no branch lines
b58d5bf - [FIX] FXCheckableComboBox repaints an open popup and says checked_changed once per real change; grab_screen_region grabs the window's own screen; exec() for exec_()
3495680 - [FIX] FXFilePathWidget refuses an unknown mode, so a folder picker cannot act as a file picker
bb31aad - [REFACTOR] FXRatingWidget reads rating() and sets set_rating(), redraws its stars only when the hovered star changes, and drops its dead event overrides
103fcb2 - [REFACTOR] FXCodeBlock: its rule adds only the mono face and padding, and it fits its lines in the stylesheet font
0648295 - [REFACTOR] FXRangeSlider reads low()/high() and sets set_low()/set_high()/set_values(), and its height follows its font
21e41bf - [DOC] Fix group f's report
2c3ce33 - [FIX] A scroll bar is a thin rounded thumb with no track or arrows, wider on hover
78ed815 - [REFACTOR] FXIconButton is rounded by a registered rule per size, not its own sheet; FXJoinedGroup reads its children from its layout and re-places them at once
7bb4400 - [FIX] FXDropZone: one owned flash timer, a right-click menu freed on close, one drop path
3fb6a9f - [FIX] FXCommandPalette rows take a theme switch while open: a delegate reads the ink when drawn, and each row carries its command
f881894 - [FIX] Combo, spin box, header, menu, tab-scroll and menu-button arrows are one chevron in the icon token
e9d13db - [FIX] A group box's title sits above a whole card with the card radius
a33ea6e - [FIX] FXMentionEdit sizes its lines from its frame and margin, again when a sheet changes them; FXThreadLine reads colors()
7227985 - [FIX] Item views draw no alternating row stripes, even when a caller asks for them
eee6b42 - [REFACTOR] FXEmojiPicker takes its glyph size from its registered rule only and keeps on screen through FXSeating.clamp, the one screen clamp
0d8537d - [FIX] FXOutputLogWidget: Shift+Enter finds the previous match, and typing counts matches once the keys stop
d035969 - [DOC] The fix groups never kill processes by name
7ea6076 - [FIX] FXAvatar rings a photo in the theme's border_light, picks its initials ink with readable_ink, and holds its size in one place
10ea295 - [REFACTOR] FXFilteredTree's fold buttons wear apply_tip; FXSplitButton reads Qt 6's keyCombination
9c4064e - [FIX] FXElidedLabel re-cuts in a new font, keeps a wrapped text whole without a maximum height, reads mode()/set_mode(), and loses the mode warning
65027fb - [FIX] A tab is bare text over a straight bar, one look for QTabBar and QtAds tabs; focus draws the bar in text
c1c70db - [REFACTOR] FXToggleSwitch drops focus overrides that only repeat Qt's repaint
155f537 - [REFACTOR] FXMainWindow keeps one name per job: no toolbar, no placeholder actions, no bar or theme wrappers; About reads the status bar as it is
41f9a5b - [REFACTOR] FXFloatingDialog drops parent_package and its Houdini look, so fxdcc goes; its shadow is add_shadow
fb20644 - [REFACTOR] fxwidgets exports widgets only: theme plumbing, FXTooltip and FXColorLabelDelegate go; the gallery reads fxconstants paths and one severity list, picks a folder in folder mode, and drops the splash's hard-coded shape
ac6763f - [REFACTOR] apply_tip is the one tooltip: FXTooltip, FXTooltipManager, FXTooltipPosition and set_tooltip are gone
6add6d5 - [FIX] A tip shows in the theme in force on Qt 6.5 and covers actions and view items; keycaps draw one cap per key
7cd9d93 - [DOC] The widgets catalogue lists what fxwidgets exports now
471929d - [FEAT] A newline in a tip's body breaks the line
dee908b - [FIX] FXSplashScreen: pixmap() is Qt's own, a bad image is refused, progress and messages always work, a click hides it
23e85a4 - [FIX] No state moves an item's text: combo popups, menus, lists and trees keep one text position at rest, hovered and selected
a6224da - [FIX] Item views: row ends follow the dragged header, rows size to their own font, one role table, one fuzzy score, one fuzzy widget
de93d86 - [FIX] FXNotificationBanner: set_timeout replaces a running timer, the top and the side margins are apart, one way to add buttons
5cb97cf - [FIX] FXFloatingDialog casts the one floating-card shadow, as the banner and the progress card do
280a84b - [REFACTOR] FXSystemTray is a QSystemTrayIcon: Qt's own context menu, setIcon and show, and quit() for its Quit
d8f14ae - [DOC] The fix-c report: what group © changed in the item views, and the ls call sites that move
0934d91 - [DOC] Group d's report: one tooltip, keycaps per key, and the callers other groups change
404dc2c - [FIX] FXProgressCard's task icon wears the icon token beside its section title; one way to set progress
fbfb5e7 - [FIX] A spinner on a closed branch does not animate: its timer runs only while the spinner shows
8329012 - [DOC] Group a's list gains the palette-before-sheet order and unused slider tokens
3d32132 - [FIX] Building FXFuzzySearchTree flashes no window, and it reads the search bar through text() and setText()
b1713ac - [FIX] FXSingleInstance.claim raises when it cannot listen, instead of answering as if another copy ran; FXWidget goes
f61c8bc - [FIX] FXTimelineSlider: the tipped keys work, and playback follows a clock at any rate, 23.976 included
ff5f226 - [MERGE] fix-f into integrate
2bf1ef8 - [REFACTOR] fxdocking sweeps once per burst of tree signals and imports later, rehome and focus_step from fxutils
957d88c - [FIX] The theme-switch comparison holds the gallery's spinners still, so a running spinner's angle is not a difference
68f2841 - [MERGE] fix-c into integrate
28e1668 - [REFACTOR] create_action takes only the arguments callers pass, and get_formatted_time goes
23f9ce8 - [DOC] The fix-g2 report: every small-widget and gallery finding, the gallery flash and the calls other groups own
815b34b - [FIX] Menus, combo lists and the palette share one popup look: surface, the popup border, inset rows drawn as menu items, flyout corners on every themed popup
aaf20cd - [REFACTOR] FXStatusBar.ground reads the fill the sheet gave the bar, instead of restating the sheet's rules
d0d219f - [REFACTOR] The gallery and FXFilteredTree call the line-edit inputs as QLineEdits, and the gallery drops FXFuzzySearchList and the delegate star
71a3ab4 - [MERGE] fix-g2 into integrate
9819e49 - [REFACTOR] fxwidgets drops FXWidget with group e, and lists the severities in module order
b6dfbc2 - [DOC] The FXMainWindow subclass example builds no toolbar to decline
c43d91c - [DOC] Fix group g1's report
027a73f - [MERGE] fix-g1 into integrate
5393dc7 - [FIX] Every standard widget and every part Qt builds wears a theme fill: MDI area, calendar header and arrows, date-edit popup arrow, completer popups; a sweep test opens them all in every theme
42f6bcf - [FIX] The tray and fxdcc tests read the tray's own icon and the worktree's package folder
2284971 - [DOC] The fix-e report: what group (e) changed, what it left, and the ls-pipeline calls that move
0487d0e - [FIX] A slider's empty groove is the control edge token, 3:1 on the surface in every theme
7549815 - [DOC] The fix-g2 report gains the callers moved to groups c, e and f
5fb3a3b - [REFACTOR] The gallery builds one plain FXLoadingSpinner and a framed window without the toolbar option, for group e's API
b6f93c7 - [MERGE] fix-e into audit-fixes
17e4ad9 - [FIX] No chrome widget flashes a window while it is built: a parentless spinner's start() does not show it, the card's description and the splash's bar are parented first
29724c9 - [DOC] The fix-e report lists the flash fix and the init edits g2 owns
e15e85e - [MERGE] fix-g2 into audit-fixes
ffe4a2a - [MERGE] fix-d into audit-fixes
e3067a4 - [FIX] A g1 widget shows no window while it is built, and a dropped one is freed at once
6d02f84 - [DOC] g1 report: the flash, the parent cycle, the gallery fixed by g2
05c5723 - [FIX] The gallery's timeline markers name theme tokens, so they follow a theme switch
057981f - [FIX] The suite knows the chrome: a scroll thumb is a pill, sheet icons are the only files a theme writes, the thin-scroll fill is probed clear of rows
76d232f - [DOC] g1 report: the drop zone flash proof and the timeline crash as an open item
5b3f33f - [FIX] The slider tests build their default slider once, so lint passes
980a8c6 - [MERGE] fix-g1 follow-ups into audit-fixes
7369bb0 - [MERGE] fix-e follow-ups into audit-fixes
3d28746 - [MERGE] fix-g2 follow-ups into audit-fixes
9fc3b43 - [DOC] The chrome pass's report
4984341 - [FIX] The host hover test sets its window clear of the host, so the pointer reaches the list on any window height
7e5cdf0 - [MERGE] chrome into audit-fixes
c5fb012 - [DOC] Group a's list gains the 6.5.3 host-sheet teardown errors
4efd30a - [FIX] A row has no padding in any state and its view carries the inset, so no Qt version moves its text on hover or selection
d3123f8 - [FIX] A dock tab is a tab bar tab's height, with its bar and text on the same rows
4db4000 - [DOC] The plan takes tab option B and the VS Code language into 13.0.0
17541ea - [FIX] A tab is muted text and the current one an edged pill, one look for QTabBar and QtAds tabs; dock tabs keep their whole title and their own fill
c3689b2 - [DOC] Group a's list gains the theme text contrast floor
978f483 - [DOC] The VS Code-style UI language spec for 13.0.0
55ce1ec - [DOC] The language spec keeps the accent on inactive selections
57854c7 - [DOC] The briefs never name the reference editor in code
7566595 - [FIX] A tab is its text plus one padding in every state, never elided: QTabBar and QtAds tabs alike
d2e040d - [DOC] Group h's list gains the gallery render leak
d59b1ce - [FIX] A hovered delegate row is state_hover with its own ink, and FXItemDelegate goes: hover no longer changes an icon
b126294 - [FIX] No widget hovers in the accent: breadcrumb, switch, rating, banner actions, emoji cells; a hovered control no longer looks focused
59d4379 - [FIX] The status bar's busy line is one flat accent run, and a hovered pane button keeps its icon ink
1d1cf7a - [FIX] The command palette and the emoji picker are popups at the card radius on @surface
12cf1b8 - [FIX] Widget text uses two weights, the body's and 600, metadata 1 px and badges 2 px under the body, no hand-set sizes
1900ead - [FIX] Widgets that lay themselves out keep to the spacing ramp: 2, 4, 6, 8, 12, 16, 24
534a4e6 - [FIX] A hovered emoji cell keeps a clear edge under the base hover rule, and the gallery shows a plain progress bar
1623408 - [FIX] The splash panel's margin is 40 px, on the ramp, not 24, which crowded its text
13a4746 - [FIX] A collapsible header is a section header: hover fills it, the open one is a 600 title, no fill that reads as a hover
c89b815 - [FIX] The widget language scan runs where QtAds is not installed
5ee0b10 - [STYLE] Lint: an unused import and a regex flag alias in the new tests
9d82ef6 - [DOC] The lang-widgets report: what speaks the control language now, and what is left for lang-sheet and the lead
1f2eb56 - [DOC] Group h's list gains two timing-flaky tests
7336867 - [FIX] A hovered button's icon keeps its ink, and a current menu row's icon takes the primary on-accent ink
ec6ae22 - [MERGE] The new UI language in widget code
491f867 - [FEAT] The base sheet speaks one control language: hover is a neutral fill, the accent marks focus, selection and the current item
76a2a46 - [REFACTOR] fxstyle has one name per job: colors() is the one colour getter, one token map derives text inks, pressed fill and on-accent inks, and a root takes its sheet before its palette
c010f1e - [FIX] FXProgressCard takes the base sheet's flat progress pill instead of its own bar rules
c9a5b15 - [FEAT] A floating card's shadow is the theme's @shadow and @shadow_blur, read each time it draws, so it follows a switch
68593c4 - [DOC] The lang-widgets report: the progress card and a trial merge with lang-sheet
f578e59 - [FIX] A dock pane's first tab starts as far in as a tab bar's, and FXProxyStyle draws no focus rectangle
c5fd28b - [MERGE] lang-widgets: the progress card uses the flat bar
c6a6d36 - [FEAT] A completer's list is a popup card with menu-style rows
481c513 - [FIX] A tooltip keeps the small radius: the compositor rounds no tooltip window
d2a0ee6 - [MERGE] audit-fixes into lang-sheet
06d3d55 - [DOC] The theming page states the one control language, the derived inks, the shadow tokens and the one colour getter
e5b71be - [FIX] The suite knows the language: split buttons hover by fill, a progress bar is a pill, no key leaks into the next test, and signal tests disconnect on PySide6 6.5
1c9e727 - [FIX] Every bundled theme's text inks read at 4.5:1 on their surfaces and its pressed fill stands off its hover fill, pinned per theme
9c0cb0f - [DOC] The lang-sheet report
3cf0c4a - [MERGE] The new UI language in the stylesheet and theme, and group a
b4c0cd1 - [FEAT] A hovered tab shows the pill's fill without its edge and keeps its muted text, in QTabBar and QtAds alike; the hover fill stands 1.2:1 off the surface in every theme
74d9d3d - [MERGE] lang-sheet: tab hover shows the pill
ecab429 - [FIX] Muted text stays a visible step below text in every theme: text steps on, or muted steps back, until they stand 1.5:1 apart
a1ad998 - [FIX] A list, tree or table in a themed host window draws no focus rect, so PySide6 6.5 keeps a current cell's BackgroundRole
8243263 - [DOC] The theming page and the lang-sheet report state the muted step and the host focus-rect fix
ef3e69a - [FIX] A tab pill has one 4 px gap above, below and beside it, in QTabBar and QtAds alike
5c77044 - [FIX] A crowded tab bar's scroll buttons cover the tab under them, an 8 px strip-coloured gap before each arrow
fd320a6 - [FIX] On PySide6 6.5 a theme asking a completer's list for its parent no longer frees the list, so typing an @ in FXMentionEdit no longer crashes
f74d3d2 - [FIX] The suite passes in any order and under load: hovers use the real pointer on a window clear of the others, no test leaves a button pressed, and waits follow events
b39bea5 - [DOC] The fix-h report: suite order and timing, folded tests, the 6.5.3 completer crash
6c1140c - [PERF] An FXSplashScreen shows in about 10 ms instead of 1 s on Qt 6.6 and later
a508ba0 - [DOC] The splash comments name Qt 6.7, the first version with the Show wait
d0fdf23 - [PERF] A theme switch on the gallery takes 290 ms instead of 320: the application-wide focus filter leaves at once on every event it does not watch
4e48463 - [DOC] The timing report: splash, theme switch and icon numbers against 12.12, and the Houdini 21 and 22 proofs
e0ac110 - [DOC] The review-fixes brief: every finding of both reviews, split by file
6e3b875 - [FIX] FXThreadLine paints after a reply's face is deleted
2942382 - [FIX] A dropped main window, breadcrumb, emoji picker or search tree is freed; Help > Documentation follows set_documentation
b700d85 - [REFACTOR] One colour resolver, one Qt version, one cap; a bad colour file raises at the call
c68455c - [FIX] A new FXIconButton size no longer re-sheets every root
0436e72 - [FIX] FXThumbnailDelegate paints a colour decoration, writes descriptions in text_muted, and reports a pick on the row it was made for
e7524b7 - [FIX] The drop-target shadow and the loading scrim follow the theme
5c51e5f - [PERF] FXCodeBlock reads its document once per change, not once per line: 8000 lines highlight in 0.7 s instead of 3.1
16449a6 - [FIX] A frame range typed into the timeline applies on Enter, not at every digit
f2210be - [FIX] FXLoadingOverlay covers its parent and spins however it is shown, setVisible included
f0b07c2 - [FIX] FXRangeSlider holds low and high inside its range from the constructor and through set_minimum and set_maximum
35e9661 - [FIX] FXDropZone lists a file gone from disk with no size, and its list drops the alternating rows
4793006 - [FIX] FXCommandPalette ignores a go-to load that lands after a newer opening
cf0e17c - [FIX] Status messages, tips and the confirm-delete word show markup as typed; FXConfirmDeleteDialog wears the theme on its own
37456c8 - [FIX] grab_screen_region crops the dragged region on a high-DPI screen
8c4273b - [FIX] FXSplashScreen's default mark wears the theme's icon ink, light themes included, and follows a switch
13c6d86 - [REFACTOR] FXSplashScreen inks its mark at paint itself, leaving fxicons' library table as it was
4839425 - [FIX] FXProgressCard and FXRatingWidget hold their first value in range; keypad Enter clicks FXSplitButton
80787a7 - [FIX] A dropped FXNotificationBanner with action buttons is freed
ae8255b - [REFACTOR] FXFilteredTree is the one search over a tree: FXFuzzySearchTree goes, fxcore.FXSortFilterProxyModel keeps fuzzy matching for a model
a17505f - [FIX] Popups, tooltips and dock chrome share the menu's card, rows and pills
67c0152 - [DOC] The icon, styling and theming pages name the 13.0.0 API
2881ef6 - [DOC] Group r2's report: every widget finding of the review, done
e3c9289 - [FIX] The splash shows in 24 ms on Qt 6.5, not 400: card titles are bold
3b261d7 - [FIX] The gallery builds in about 260 ms on the desktop, not 850: one family per font role
06160f0 - [FIX] The radius and compat-layout tests know the icon button circle and QT_VERSION
c207d6b - [DOC] Group r1's report: every item, the ls-pipeline call sites that change
5d199a3 - [FIX] The loading spinner's colour goes through fxstyle.qcolor; the docs no longer name FXFuzzySearchTree
b7ccd01 - [DOC] Review fixes group r3: reviewer B's remaining findings
e2cf93a - [FIX] A hovered toolbar button draws its icon in the normal ink; only a menu's current row takes the on-accent ink
c3976c8 - [REFACTOR] fxstyle.font(role=...) is the one way to read a role's font; control_height and focus_visible are public
ba06544 - [FIX] Every docstring example that states its output is tested; depth_shade's example reads colors().surface
43af7b1 - [DOC] The how-to pages state the Active ink as the code draws it, and every Python block runs on its own
c0c7225 - [FIX] import fxgui refuses a PySide6 older than 6.5 and names the one it found
dad9d54 - [FIX] A release publishes to PyPI only after its GitHub release was created
4927eaf - [FIX] Installing docking can no longer swap the PySide6 binding: no docking extra, the docs name QtAds beside your own PySide6
d21264f - [FIX] readable_ink takes a QColor again; its cache keys on colour names
a74c84b - [DOC] A Moving from 12.x page lists every removed or renamed name and what to write in 13.0.0
01335ec - [FIX] The docstring example test runs without QtAds, skipping fxdocking
7b41885 - [FIX] The cache test reads readable_ink's cache where it now lives
7d0f284 - [DOC] Group r3 report
de319d9 - [FIX] List icons and branch chevrons are drawn in an item's 16 px icon box, as a tree's icons are
db8c8a1 - [FIX] The current tab is a state_pressed pill with no edge, apart from a hovered tab's state_hover pill
0dcc934 - [DOC] Group r3 report: item-view icon size and the edgeless current tab
006877c - [FIX] A completer's list inside a host window draws its icons in the 16 px box too
98a2523 - [FIX] An embedded window's floating panes answer its keys and its banners sit on its dock area
6d00d75 - [FIX] One breadcrumb switch, tab_stops, takes its back and forward buttons off the Tab chain too
7e4af7b - [FIX] A test window opens with the pointer off screen, so no widget stays marked under the mouse
1618f76 - [FIX] The floating pane raise test no longer crashes on Linux: its patches go before the window is freed
0acb9f7 - [FIX] The completer hover test reads the row's fill past its text, not inside a wider glyph
d536b97 - [FIX] Pixel tests read text in its exact ink on Linux: the suite draws text unantialiased
b873dc6 - [DOC] Switch-over gaps: causes, fixes and the ls workarounds that can go
333767c - [FIX] add_submenu can put the submenu before an existing item
7702b1f - [FIX] FXFilteredTree takes a row of action buttons under its tree
74050be - [FIX] A test pins that a themed app keeps the suite's unantialiased text across theme switches
7106f36 - [DOC] Switch-over gaps: items 8-12 and the crash follow-up
9fb9cbd - [FIX] A dock area's first split and reset layout use the size its window grows to on show
f494b5f - [FIX] A shown banner refused as a repeat hides at once, so it no longer stacks
09f6175 - [FIX] A dock area re-split after a grow keeps its look unless a layout was restored
a850fbe
v12.12.0 - 2026-09-30¶
Commits¶
- [FIX] A framed status bar draws no accent line, so it joins the frame.
72d4617 - [FEAT] Item views scroll by the pixel, a wheel notch still about three rows
1c35c5b - [FIX] A tinted status bar writes its labels in an ink that reads on the tint
9df0552 - [FEAT] fxstyle.readable_ink returns an ink that reads on a background, and the status bar uses it
379821e - [FEAT] Any main window can show its name in the menu bar corner, with widgets of its own beside it
1393557 - [FIX] The corner title drops four lines no test needs: the resize fits the corner, a hidden banner stays hidden
0a099a1
v12.11.2 - 2026-09-30¶
Commits¶
- [FIX] A framed window's hidden banner keeps the current theme's colours after a theme switch.
c4062de - [FIX] The banner test holds a framed window's corner name to the menu bar's own face.
2dda560 - [FIX] The focus-row test puts its original delegate back before it ends.
2176a74
v12.11.1 - 2026-09-30¶
Commits¶
- [FIX] A theme switch survives a menu bar or splitter handle whose PySide wrapper was dropped.
c349c36 - [FIX] A log widget whose Clear button is hidden leaves no dead band under its output.
7fef720 - [FIX] A marked splitter wrapped in another marked splitter keeps its mark, and so does the outer one.
0efb934 - [FIX] A menu bar set later is framed and keeps fitting the title corner Qt moves onto it.
e965084 - [FIX] The menu bar re-read keeps the corner it has; only the unobservable corner re-read goes.
ed3251c - [FIX] A pressed menu bar item keeps the selected item's margin and corners; only its colours differ.
0bdf08a - [FIX] The pressed menu item test also holds the title where the selected state draws it.
df0cff4 - [FIX] The dropped-handle test names its unused host.
6812887 - [FIX] A framed window frames a menu bar set with setMenuBar at once, not at the next theme switch.
b6873c2 - [FIX] setMenuBar holds the new bar at once and frames it only in a framed window; the re-read only re-reads.
9ad8ceb
v12.11.0 - 2026-09-30¶
Commits¶
- [FEAT] Add the frame and well colour roles, computed for every theme
fa6a847 - [FEAT] Add a framed FXMainWindow, a flat button role and a splitter mark
e38b67e - [DOC] Show the framed window, flat buttons and the splitter mark
890fc24 - [FIX] Paint the splitter mark, frame a late status bar, add pane_border
e549488 - [FIX] Make the splitter mark and wells read, frame a black pane, inset the corner
79b2329 - [FIX] Test that a pane at either end keeps a readable border and mark, and that the corner fills the menu bar
0a1ba59
v12.10.2 - 2026-09-30¶
Commits¶
- [FIX] FXJoinedGroup takes the push button's corner radius instead of a pill
f102bbe - [FIX] Menu check boxes sit in the icon column, and a checked icon action frames its icon
7bceab6
v12.10.1 - 2026-09-30¶
Commits¶
- [FIX] A tip names its control for a screen reader, so an icon-only button is no longer read as nothing
42f01d1
v12.10.0 - 2026-09-29¶
Commits¶
- [FEAT] Add FXAvatar, FXEmojiPicker, FXEmojiButton and FXPrimaryButton
392978d - [FEAT] Add FXIconButton and FXJoinedGroup
ba56b2d - [FIX] Comment widgets survive deleted editors and children, hidden children, the screen bottom and denser screens
d3c205e - [FIX] Two tests pass with a real font as they do without one
2427551 - [FIX] A primary button shows its hover and press, each in the text its fill was tuned for
1cfdbb8 - [FIX] A primary button's icon takes the ink of the fill it sits on
d097fa4
v12.9.0 - 2026-09-29¶
Commits¶
- [FIX] A hovered tool button sits on the secondary accent, so its icon stays readable
358b81a
v12.8.1 - 2026-09-28¶
v12.8.0 - 2026-09-28¶
Commits¶
- [FEAT] A picker can list a choice it will not let you pick
7318098
v12.7.0 - 2026-09-21¶
Commits¶
- [FEAT] A painted version picker on the thumbnail delegate
1420930 - [FEAT] The picker column reports the width its pill needs
09e612a - [FEAT] A click on a picker pill opens its versions
fc1f9cf - [FIX] Measure the picker pill against one font, not two
82b726e - [DOC] The delegate claims two more roles than it says it does
e7881e2 - [FEAT] Line the picker column's plain values up with its pills
5a9dd75
v12.6.3 - 2026-09-02¶
Commits¶
- [FIX] Draw no focus ring on a selected row
01a8239
v12.6.2 - 2026-09-02¶
Commits¶
- [FIX] A selected row covers its own border
c89e4a2
v12.6.1 - 2026-09-02¶
Commits¶
- [FIX] Paint the row check box flat, in the delegate's own palette
600b713
v12.6.0 - 2026-09-02¶
Commits¶
- [FEAT] Paint and size a tickable row's check box in FXThumbnailDelegate
0751d47
v12.5.0 - 2026-08-24¶
Commits¶
- [FIX] Let a dismissed banner finish leaving the window
38dce0c - [FEAT] Let a notification carry the actions it asks for
38c38d5
v12.4.0 - 2026-08-22¶
Commits¶
- [FIX] Stop the log widget's throttle from dropping records
b3d48ae - [FIX] Let the breadcrumb's segments answer a hover, and close its editor
3d6adbe - [FEAT] Let a window decline the toolbar, keep its icon, and fit its contents
1946520 - [FIX] Let the elided label yield its width, and take an elide mode
6aaa1e3 - [FIX] Give a collapsed section its height back, and report its frames
f6c4e47 - [FEAT] Ask Windows 11 for a flyout's rounded corners and shadow
0b793b7 - [FEAT] Let get_icon take a fallback, and publish the delegate's role ceiling
b617cb6 - [DOC] Write up the icon fallback and the delegate's role ceiling
41c6761 - [FIX] Start a collapse from the height on screen, not from the cap
aa69c0b - [FIX] Bound one flush of the log queue, and let a consumer bound the pane
61a110a - [FIX] Ask for the screen behind this file's own Qt version guard
a2c4591 - [FIX] Say so when word wrap overrules the elided label's mode
794cdb1 - [DOC] Say that the breadcrumb's strip is always filled, not filled on hover
7890f93 - [DOC] Teach the toolbar flag rather than hiding the toolbar
8160f66
v12.3.0 - 2026-08-22¶
Commits¶
- [FEAT] Let an application name the theme it falls back to
8615bd7 - [FIX] Drop the log widget's stretch with its Clear button
9b46ed9
v12.2.0 - 2026-08-20¶
Commits¶
- [FEAT] Let the color file name typefaces by role
e45efcf
v12.1.0 - 2026-08-19¶
Commits¶
- [FEAT] Give every focusable widget a visible keyboard focus ring
c03c73e - [FIX] Replace Qt's focus rectangle with an indicator per widget shape
5ad6cf0
v12.0.1 - 2026-08-19¶
Commits¶
- [FIX] FXThumbnailDelegate: a lone status pill left the dot's slot empty
515c837
v12.0.0 - 2026-08-19¶
Commits¶
- [FEAT] fxwidgets: native rich tooltips as the everyday path
7259f9a - [MISC] fxwidgets: migrate fxgui's own tooltips to the native helper
f98ca60 - [FIX] FXThumbnailDelegate: column 0 could shrink under its own content
f563a77 - [FIX] FXThumbnailDelegate: drop the hover tooltip and its HTML conversion
ef36357 - [FIX] FXThumbnailDelegate: centre the status dot against the pill
24d5892 - [FEAT] fxwidgets: native tooltips are the default, the manager is opt-in
a92d3a2 - [DOC] Widgets guide: the tooltip default and the 12.0.0 migration note
da81e88
v11.9.1 - 2026-08-19¶
Commits¶
- [FIX] FXThumbnailDelegate: status pill and dot painted on the thumbnail
5a98727 - [FIX] FXThumbnailDelegate: sizeHint left the title a pixel short
94d8432
v11.9.0 - 2026-07-30¶
Commits¶
- [FIX] QToolButton MenuButtonPopup styled as a split push button, sized menu arrows
679c1d9 - [FIX] Audit fixes: binding compat, theming defects, DCC embedding, keyboard accessibility
d04f10b - [DOC] Design spec: theming rework to pull model (cascading sheet + paint-time reads)
0c05115 - [DOC] Implementation plan: theming pull-model core (spec phases 0-1)
4bbb61d - [TEST] Spike: Qt cascade mechanics for pull-model theming
baaf4be - [FEAT] fxstyle: unified token map/resolution pass
d6ef32a - [FEAT] fxstyle: unified token map/resolution pass
de6ace6 - [TEST] fxstyle: cover partial-theme merge and computed on-accent fallback
a9b00c3 - [TEST] fxstyle: cover partial-theme merge and computed on-accent fallback
7ce4683 - [FEAT] fxstyle: theme sheet builder and widget-style fragment registry
c14377f - [FEAT] fxstyle: themed-root registry with weak references
115ac44 - [FEAT] fxstyle: apply_theme(name) with old-signature compat shim
6c52117 - [FEAT] fxstyle: colors() namespace and module-level theme_changed
4b9a2b3 - [FEAT] fxutils: repolish() helper for dynamic-property styling
8568b6d - [FEAT] fxstyle: load_stylesheet rewired over the unified token pass
f1c7d47 - [FEAT] FXApplication: register as themed root instead of per-app signal
33729ff - [FEAT] FXMainWindow: themed root registration, live multi-window switching
fac0759 - [TEST] End-to-end cascade restyle proof for pull-model theming
4da9efc - [FIX] Theming: final-review cleanup โ new-form docs, stale comment, annotation, test hygiene
f6ff839 - [FIX] FXApplication: keep _on_theme_changed as a subclass override point
2e6b835 - [DOC] Theming guide: document the pull-model API
88419fe - [FIX] Restore PyQt5/PyQt6 support: fxgui could not be imported at all
cd7c37d - [FIX] FXTooltip: build the arrow polygon with QPointF, not QPoint
63781c6
v11.8.0 - 2026-07-03¶
Commits¶
- [FEAT] timeline track zoom; managed rich tooltips; no double tooltips
07b58b5 - [FEAT] FXTimelineSlider: marker layers, regions, in/out controls, demo
acb4344 - [DOC] showcase gains a Timeline tab
99edacd - [FEAT] timeline track: crossing ticks, hover indicator, keyframe nav
efab0c2 - [FEAT] timeline: tag playhead, bracket loop edges, theme-safe colors
4df2675 - [MISC] timeline track: 1px baseline for all marks
8eda2f2 - [FEAT] timeline: Nuke-style stacked layout (controls_position="below")
da774df - [MISC] timeline: uniform 28px buttons in stacked row, clearer I/O icons
e256dda - [FEAT] timeline: symmetric stacked row, view spinboxes, edge padding
4bafac9 - [FEAT] timeline: loop toggle, balanced centering of the stacked row
d0eea40 - [MISC] timeline: paint hot-path cleanups (simplify pass)
03a48c2 - [MISC] timeline: balance pads driven by LayoutRequest, not timers
648ad51 - [BUILD] Testing suite
c9fea9e
v11.7.1 - 2026-06-19¶
Merged¶
- [FIX] Render SVG icons via QSvgRenderer so they show in Cinema 4D
#10
Commits¶
- [CHORE] Ignore local Rez dev-build files (package.py, rezbuild.py)
3508b3d
v11.7.0 - 2026-04-08¶
Commits¶
- [FIX] Too;tips
0502d0a
v11.6.0 - 2026-04-08¶
Commits¶
- [FIX] FXThumbnailDelegate: account for status indicator width when truncating text in non-thumbnail items
77f11d4 - [FEAT] FXThumbnailDelegate: thumbnail preview in tooltips, starred/pinned indicator (bottom-left on thumbnails, icon corner badge otherwise), child count badge on parent items
92ca6b9
v11.5.2 - 2026-02-09¶
Commits¶
- [FIX] Pyblish workflow running on branch without tag on manual trigger
c4713c7
v11.5.1 - 2026-02-09¶
Commits¶
- [FIX] All icons are reactive to selection state if using FThumbnailDelegate
a39ae59
v11.5.0 - 2026-01-16¶
Merged¶
- v11.5.0: Added
FXDropZonewidget#9
Commits¶
- [FEAT] Added surface_sunken background in thumbnails
7c7d471 - [FEAT] Added a tree for the FXDropZone widget
63e920d
v11.4.2 - 2026-01-16¶
Merged¶
- v11.4.2: Fixed thumbnail sizing
#8
Commits¶
- [FIX[ Fixed thumnail sizing
4da33b5
v11.4.1 - 2026-01-16¶
Merged¶
- v11.4.1: Icons have a new state when hovered, changed the way they're detected
#7
Commits¶
- [BUILD] Removed Slack notification feedback from CI workflow
d09a9cc - [FIX] Icons have a new state for hover and selection
d32ddad
v11.4.0 - 2026-01-15¶
Merged¶
- v11.4.0: Icons are now reacting to the hover/selection color
#6
Commits¶
- [FEAT] Icons reacting to state
dca335a - [FIX] Fixed the hover/selection color on the QTreeView branch
53a70ea
v11.3.0 - 2026-01-14¶
Merged¶
- v11.3.0: Added icon support for
FXThumbnailDelegate#5
Commits¶
- [FEAT] Added icons support in the status label of the FXThumbnailDelegate
d7495d5 - [FEAT] Added icon support for items using the FXThumbnailDelegate
aa278a4
v11.2.0 - 2026-01-13¶
Merged¶
- v11.2.0: Replaced tooltips by FXTooltip in FXMainWindow
#4
Commits¶
- [BUILD] Trimmed the icon fork submodules
f6e8ccd - [FEAT] Modified tootip so it can replace
setTooltipe7f360d - [CHORE] Consolidated theme lightness discovery within fxstyle
5f585d4 - [FEAT] Replaced default tooltips for FXMainWindow
727baa1
v11.1.3 - 2026-01-12¶
Merged¶
- v11.1.3: Notification banners are now fitting their content vertically
#3
Commits¶
- [FEAT] Notifications expanding with their content vertically
6389ea1 - [MISC] Tested line break in notification
ecba0d8
v11.1.2 - 2026-01-12¶
Commits¶
- [FIX] Included files in distribution
d5b2997
v11.1.1 - 2026-01-12¶
Commits¶
- [BUILD] Added manual trigger of doc workflow
9bff734 - [FIX] Mike versionning for documentation
0d3e70b - [FIX] Mike versionning for documentation
7ee388e - [FIX] Fixed workflow redirection
452c72c - [FIX] Included files in distribution
d163547
v11.1.0 - 2026-01-12¶
Merged¶
- v11.1.0: Overall bug fixes & improvements
#2
Commits¶
- [DOC] Trying zensical workflow
bd86a5e - [DOC] Trying zensical workflow
61192ef - [DOC] Updating zensical workflow
aae8e1b - [DOC] Automatic screenshots of the widgets
01f1a15 - [DOC] Updated documentation with screenshots
2725568 - [DOC] U[dated documentation with screenshots
b24f2e5 - [FEAT] Added custom background support to FXThumbnailDelegate
980c1d1 - [FEAT] Simplified theme-awareness API
5b507f1 - [FEAT] Added theme aware background in delegates examples
334c4fb - [FEAT] Added a new code block widget
85d3b01 - [FEAT] Added a new API system for theming
8cbd171 - [FEAT] Added more themes
e3cae7e - [FIX] TOML invalid values
c81e1ac - [FIX] Fixed fallback thumbnail image path
0f210eb
v11.0.0 - 2026-01-05¶
Merged¶
- v11.0.0: Major widget expansion and theme system overhaul
#1
Commits¶
- [MISC[ Overall improvment of the codebase and huge refactor
751e16e - [FIX[ Fixed tag retrieval in workflow
c3f1f51 - [FIX] Fixed command for documentation deployment
11ea699 - [FIX] Fixed command for documentation deployment
52d928d - [FIX] Fixed requirements.txt for documentation generation
89b092e - [BUILD] Removed useless print statement from IncrementVersion script
c1cf052 - [BUILD] Removed useless print statement from IncrementVersion script
f9d14a6 - [FEAT] Splashcreen with rounded corners
6d26886 - [MISC] Overall codebase improvment refactor
a670527 - [STYLE] Black formatter
fddac5e - [DOC] Added black requirements, modified theme, added missing typings
621ae64 - [FEAT] Added a background behing the tabs for consistency when dragging the focused tab
d417033 - [CHORE] Update icon submodules to latest upstream versions
992badb - [FEATURE] Add dockable output log example, thumbnail delegate, and various UI polish
babca6a - [FEATURE] Huge refactor of fxwidgets, allow for custom theme support, live-reloading of icons
e8ca3ce - [CHORE] Optimized
e6322fe - [DOC] Updated documentation with the latest changes
83bb151 - [DOC] Updated how-to section
8e0054b - [CHORE] Regenerate changelog after removing erroneous v9.0.1 tag
4bae283 - [DOC] Migrated from MkDocs to Zensical
20fdeaa - [FEAT] Added VS Code task for serving documentation
d285308 - [FEAT] Add 14 new pre-styled widgets with developer mode examples
898b796 - [FIX] Fixed all new widgets
6ae38be - [STYLE] Black formatter
453ed50 - [MISC] Now using YAML instead of JSONC for the styling
397938a - [FIX] Added QThread for heavy validations in file_path_widget
6457744 - [FEAT] Added FXTooltip widget
9cb3e11 - [FEAT] Matched shadows between tooltips and notifications
b3cc135 - [FIX] Overall fix of the new widgets
28a92cb - [MISC] Added GitHub files
70f4e1b - [DOC] Updated documentation
8506e1c - [DOC] Updated documentation
9cae456 - [DOC] Updated documentation and associated requirements
0edb318 - [FIX] Fixed typo in spinners causing errors in painter
3de2d3d - [PR] Resolved comment
d4b1861
v6.5.1 - 2025-04-22¶
Commits¶
v6.5.0 - 2025-01-06¶
Commits¶
v6.4.0 - 2024-12-15¶
Commits¶
- Added
FXIconLineEdit,fxcoreandFXSortFilterProxyModel4e70506
v6.3.5 - 2024-12-14¶
Commits¶
- Fixed scripts to increment tag version
e3473ac
v6.3.4 - 2024-12-14¶
Commits¶
- Modified scripts
0fe7121
v6.3.3 - 2024-12-14¶
Commits¶
- Modified docstrings, added
tasksandscriptsfor deployment760e209
v6.3.2 - 2024-12-11¶
Commits¶
- Modified icons for branches
81652ca
v6.3.1 - 2024-12-11¶
Commits¶
- Fixed tabs in the UI file
ef29aae
v6.3.0 - 2024-12-11¶
Commits¶
- Added simple icons library, QSS adjustments,
fxiconsautomatic icon disabled colors10c8ef8 - Added simple icons library, QSS adjustments,
fxiconsautomatic icon disabled colorsa539cfd
v6.2.7 - 2024-12-05¶
Commits¶
- Fixed imports
f2c6b7a
v6.2.6 - 2024-12-05¶
Commits¶
- Removed wrong imports
453cfea
v6.2.5 - 2024-12-05¶
v6.2.4 - 2024-12-05¶
Commits¶
- Removed mnemonic indications in
FXMainWindow4536d1a
v6.2.3 - 2024-12-05¶
Commits¶
- Updated arrow icons
546e7d4
v6.2.2 - 2024-12-05¶
Commits¶
- Modified
style.qss, removed Illustrator files from distribution packagea31a0a2
v6.2.1 - 2024-12-05¶
Commits¶
- Fixed buttons not moving with
QTabBard1b8b72
v6.2.0 - 2024-12-05¶
Commits¶
- Hardcoded requirements version, deleted old stylesheet icons for SVGs, updated
style.qss82c09ef
v6.1.0 - 2024-12-05¶
Commits¶
- Moved and renamed
convert_icon_to_pixmaptofxiconsbff0bc4
v6.0.3 - 2024-12-05¶
Commits¶
- Updated docstrings and examples in
fxicons, updated documentation56e1c89
v6.0.2 - 2024-12-04¶
Commits¶
- Fixed examples, modified colours in
style.jsonc112b5ac
v6.0.1 - 2024-12-04¶
Commits¶
- Cleaned
fxconstants, updated documentationb607c10
v6.0.0 - 2024-12-04¶
Commits¶
- Added more icon libraries, refactored
fxiconsa88a7e7
v5.0.1 - 2024-12-04¶
Commits¶
- Removed useless submodule
1b3f2e8
v5.0.0 - 2024-12-03¶
Commits¶
- Added icons submodules, improved
fxicons, replaceQtAwesomewhere possible2111bdf - Added icons submodules, improved
fxicons, replaceQtAwesomewhere possiblec3f9553
v4.6.0 - 2024-12-01¶
Commits¶
- Documentation
e411c2f - Using
QCollatorforFXSortedTreeWidgetItemfe99304 - Changed all icons to use
mdiand notmdi6c432a6b
v4.5.1 - 2024-11-15¶
Commits¶
- Fixed imports for PySide6 compatibility layer
7298c25
v4.5.0 - 2024-11-14¶
Commits¶
- Getting ready for PySide6 migration
0bcc995
v4.4.2 - 2024-11-14¶
Commits¶
v4.4.1 - 2024-11-11¶
Commits¶
- Fixed
examples5a9d64f
v4.4.0 - 2024-11-11¶
Commits¶
- Module docstring and documentation
04ff46d - Documentation
3669bb8 - Removed deprecation for
fxicons, added DCC icons and registered them withfxiconslibrary5bdf43d
v4.3.0 - 2024-11-11¶
Commits¶
- CHANGEGLOG
c35fe86 - Added
fxconstantsmodule, refactoredexamples, addedFXColorLabelDelegateclass, added DCC icons, modified QSS stylesheet8439fc8
v4.2.0 - 2024-11-07¶
Commits¶
- Fixing semantic package version
e25f313 - Fixed docstrings
fc4c392 - Updated documentation copyright to reflect Open Source status
aa9ae1e - Updated version in Houdini package JSON
85da2a1 - Refactored Houdini package
0bbc405 - Added a
DEBUGlevel to status bar messages, fixed truncated tab bars4b1e695
v4.1.0 - 2024-10-31¶
v4.0.4 - 2024-10-31¶
Commits¶
- Deprecated
fxiconsmodulea566b4f
v4.0.3 - 2024-10-31¶
Commits¶
v4.0.2 - 2024-10-30¶
Commits¶
- Changed default color, added arguments for
showMessage63869b8
v4.0.1 - 2024-10-30¶
Commits¶
- Removed useless icon files
23d3eed
v4.0.0 - 2024-10-30¶
Commits¶
v3.2.4 - 2024-10-24¶
Commits¶
v3.2.3 - 2024-10-24¶
v3.2.2 - 2024-10-24¶
Commits¶
- Updated changelog
226323b - Fixed
FUNDING.ymllocatione7fd9cf - Fixed
FUNDING.yml599c172 - Modified requirements for PySide
afcee23
v3.2.1 - 2024-09-05¶
Commits¶
v3.2.0 - 2024-09-04¶
Commits¶
v3.1.1 - 2024-09-04¶
Commits¶
v3.1.0 - 2024-09-04¶
Commits¶
- Added auto-changelog
5e4d9d9 - Adding maintenance tags, unreleased changelog
1c639af - Added
FXPasswordLineEdit, fixed methods when subclassing FXWidgets3678324
v3.0.2 - 2024-08-20¶
Commits¶
- Added auto-changelog
16c28f5
v3.0.0 - 2024-08-20¶
Commits¶
- Initial commit
0f0c9f2 - [INIT] Initial commit
4a2d7fa - [UPDATE] Requirements
6ad76c3 - [UPDATE] Pip preparation
bd7842f - [UPDATE] Imports
9b0897a - [UPDATE] Pip setup
fe2f2c2 - [UPDATE] setup.py
b677df8 - [UPDATE] setup.py
0fb5bbe - [UPDATE] Get DCC windows
6b8680b - [UPDATE] Setup and shadows
1483963 - [UPDATE] Overall and docstrings
9b7acfd - [UPDATE] Create LICENSE
377c59b - [UPDATE] Package with license
3b58222 - Module organization
5282c49 - Extension
14ac830 - [UPDATE] Typings, optimization and example
adfd9f3 - [UPDATE] Get parent DCC methods
dd5f6f8 - [UPDATE] Module refractor
9660af4 - [UPDATE] Comments
2977a37 - [UPDATE] Removed focus state on QPushButton
48be3fd - [UPDATE] Typings
dcd890f - ๐งช test(example): Commit message test
612f21e - ๐ style(splashscreen): Reformat and length
8ce2a6c - Requirements
93a7b03 - ๐ fix(package): Init for PIPy
63bbc34 - ๐ fix(package): Wrong imports
f5f35df - ๐ fix(package): Missing files PIPy
a71976f - ๐ perf(package): Removed cache
35da390 - ๐ง build(Package): Version
40d833f - ๐ fix(dcc): Python3 long
f3d5015 - ๐ง build(package): Version up
3d36210 - โจ feat(window, example, package): Preparing for DCC
c9eb054 - ๐ฆ refactor(dcc, example, window, package): Overall performance
6ba8784 - ๐ง build(setup): Version up
97447a2 - ๐ fix(splashscreen): Image handling
c7121c1 - ๐ docs(images):
e9b5423 - ๐ docs(package):
f7ba32e - ๐ docs:
f262e01 - ๐ docs(package): Docstrings and doc
83db948 - ๐ docs(package):
015f645 - ๐ fix(package): Wrong favicon
21bf196 - โจ feat(splashscreen): Icon
c0e36c4 - ๐ fix(example): Imports
bb43f51 - ๐ docs(package):
55f272b - ๐ง build(package):
5202d08 - โจ feat(package): Outsourced theme
226f330 - โจ feat(package): Theme handler
3a104e3 - โจ feat(package): Added icons
aef2dd8 - โจ feat(package): Added icons
e54bbb2 - ๐ docs(package):
6633122 - โจ feat(Package): Overall
beef357 - ๐ง build(package): PyPI
9c25513 - ๐ docs(package): Adding to doc
a98f5d8 - ๐ฆ refactor(package):
f684543 - โจ feat(floating_dialog): Floating Dialog
bcef834 - Switched for QtPy
ac12685 - Refactored the package name
daf372a - New icons
6ebd43f - New icons
ad090bc - New icons
9cb0892 - Further implementation of multiple themes
4f10859 - Overall update
3dc06cf - Refactored naming
64b1350 - New style
6de33fb - Overall update
783783c - Overall update
823a1c1 - Create python-publish.yml
5208c31 - Refactored the classes, updated documentation
2a20797 - Test with CI/CD
dc12e06 - New package release
91dc0ac - Added new icons
50b8aa6 - Updated documentation
e9ba4bf - Updated documentation, new icons
2602509 - Updated documentation
e92c88a - Updated documentation
32083b7 - New favicon
1742841 - Updated documentation
9578ffe - Fixed an issue with the setCentralWidget method
d0a62a2 - Docstrings and documentation
7d05e71 - Updated documentation
886391f - Black refactor
fe93dd3 - Fix widgets
1a29deb - Package update
2f2d950 - Fixed typo on documentation
4bc465b - Updated documenation
5c0ab9a - Added the FXWidget class
5cb814e - Added the FXSystemTray class
e891bc0 - Singleton for FXApplication
6e7df4e - Fixed the update applications not working without restarting the app
e18423a - Fixed color customization
3f27e5b - Fixed some QSS elements
9258381 - Overall update, package requirements
1af5e3f - Styling issues
6658f30 - Bump version
9c90854 - Removed hardcoded
QT_APIenv var1987973 - CI/CD for PyPI
1c3e8a8