Skip to content

idian: Refactor Idian widgets - #13765

Merged
RytoEX merged 3 commits into
obsproject:masterfrom
Warchamp7:idian-refactor
Sep 18, 2026
Merged

RytoEX merged 3 commits into
obsproject:masterfrom
Warchamp7:idian-refactor

Conversation

@Warchamp7

Copy link
Copy Markdown
Member

Description

Refactors the Idian widgets based after some slight usage in other PRs.

This has been extracted out from #13433

Motivation and Context

The idian widgets were built when we had a much lower understanding of how Qt expects you to build custom complex widgets and without a direct use-case.

They were also built far too rigid for what every attempted use of them thus far has necessitated. These changes break them into simpler 'pieces' and provide getters for internals that are intended to be accessed.

How Has This Been Tested?

Included in #13433

Types of changes

  • Tweak (non-breaking change to improve existing functionality)
  • Code cleanup (non-breaking change which makes code smaller or more readable)

Checklist:

  • I have read the contributing document.
  • My code has been run through clang-format.
  • My code follows the project's style guidelines
  • My code is not on the master branch.
  • My code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

@Warchamp7 Warchamp7 added the area/ui-ux Anything to do with changes or additions to UI/UX elements. label Aug 7, 2026
Comment thread frontend/widgets/OBSBasic.hpp
Comment thread shared/qt/idian/components/ExpandButton.cpp Outdated
Comment thread shared/qt/idian/include/Idian/Row.hpp
@Warchamp7
Warchamp7 force-pushed the idian-refactor branch 3 times, most recently from 3374529 to 0734aa1 Compare August 12, 2026 20:07
@Warchamp7
Warchamp7 force-pushed the idian-refactor branch 2 times, most recently from 20a6b01 to f73364f Compare September 3, 2026 17:30
@Warchamp7
Warchamp7 requested a review from PatTheMav September 4, 2026 17:31
@github-project-automation github-project-automation Bot moved this to Ready For Review in 33.0 Release Tracker Sep 4, 2026
@github-project-automation github-project-automation Bot moved this from Ready For Review to Requires Changes in 33.0 Release Tracker Sep 4, 2026
@Warchamp7 Warchamp7 moved this from Requires Changes to Ready For Review in 33.0 Release Tracker Sep 4, 2026
Comment thread shared/qt/idian/components/ExpandButton.cpp Outdated
@Warchamp7
Warchamp7 requested a review from PatTheMav September 9, 2026 16:43

@RytoEX RytoEX left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nits. CI failure is unrelated.

Comment thread shared/qt/idian/components/ExpandButton.cpp Outdated
Comment thread shared/qt/idian/include/Idian/Row.hpp Outdated
Comment thread shared/qt/idian/widgets/CollapsibleGroup.cpp Outdated
@github-project-automation github-project-automation Bot moved this from Ready For Review to Requires Changes in 33.0 Release Tracker Sep 10, 2026
Comment thread shared/qt/idian/include/Idian/ListHeader.hpp Outdated
Comment thread shared/qt/idian/widgets/Row.cpp Outdated
@RytoEX
RytoEX requested review from PatTheMav and RytoEX September 11, 2026 18:39
@RytoEX

RytoEX commented Sep 11, 2026

Copy link
Copy Markdown
Member

LGTM. Will approve once commits are squashed.

@Warchamp7 Warchamp7 changed the title frontend: Refactor Idian widgets idian: Refactor Idian widgets Sep 11, 2026
@Warchamp7 Warchamp7 moved this from Requires Changes to Ready For Review in 33.0 Release Tracker Sep 14, 2026
The idian widgets were built when we had a much lower
understanding of how Qt expects you to build custom
complex widgets and without a direct use-case.

They were also built far too rigid for what every attempted
use of them thus far has necessitated. These changes break
them into simpler 'pieces' and provide getters for internals
that are intended to be accessed.
Updates the idian widgets to no longer inherit from the Utils class.

The multi-inheritance approach was from an earlier iteration of the
utils prior to the static methods and served as a convenience factor.
With the addition of the static methods, many of them no longer need
an actual instance of the class.
@RytoEX

RytoEX commented Sep 17, 2026

Copy link
Copy Markdown
Member

LGTM, please squash commits.

@Warchamp7

Copy link
Copy Markdown
Member Author

Commits squashed now.

@Warchamp7 Warchamp7 moved this from Ready For Review to Ready For Merge in 33.0 Release Tracker Sep 18, 2026

@RytoEX RytoEX left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit on last minute changes. Looks good otherwise.

Comment thread shared/qt/idian/include/Idian/Utils.hpp Outdated
@github-project-automation github-project-automation Bot moved this from Ready For Merge to Requires Changes in 33.0 Release Tracker Sep 18, 2026
Uses Qt's QGlobalStatic macro to create a shared Utils singleton for
repolishing widgets. This means that multiple calls to the Utils'
styling class helpers only trigger a single repolish per widget during
a one tick of the Qt event loop.
@Warchamp7 Warchamp7 moved this from Requires Changes to Ready For Merge in 33.0 Release Tracker Sep 18, 2026
@RytoEX
RytoEX merged commit 7376251 into obsproject:master Sep 18, 2026
15 checks passed
@github-project-automation github-project-automation Bot moved this from Ready For Merge to Merged in 33.0 Release Tracker Sep 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ui-ux Anything to do with changes or additions to UI/UX elements.

Projects

Status: Merged

Development

Successfully merging this pull request may close these issues.

3 participants