Skip to content

Upgrade for latest feather-tk#60

Open
leighsmith wants to merge 19 commits into
OpenTimelineIO:mainfrom
leighsmith:docker_builder
Open

Upgrade for latest feather-tk#60
leighsmith wants to merge 19 commits into
OpenTimelineIO:mainfrom
leighsmith:docker_builder

Conversation

@leighsmith

Copy link
Copy Markdown
  • Added Linux build Docker container to attempt to lock down a build mechanism for Linux and a defined set of dependencies.
  • Revamped code to build with the latest main branch of feather-tk, which has diverged greatly from the feather-tk API expected by the current Toucan.
  • Not everything builds. The principle problem is the disappearance of IWidget::_setSizeHint() while it is used extensively in lib/toucanView (listed below). Further advice is needed for the steps to take to resolve this bit-rot.
% find . -name \* -type f -exec grep -e _setSizeHint {} \; -print
        _setSizeHint(sizeHint);
./toucan/lib/toucanView/ItemLabel.cpp
        _setSizeHint(sizeHint);
./toucan/lib/toucanView/VideoClipItem.cpp
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/LogTool.cpp
        _setSizeHint(_bellows->getSizeHint());
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/JSONTool.cpp
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/MainWindow.cpp
        _setSizeHint(_layout->getSizeHint());
        _setSizeHint(_layout->getSizeHint());
        _setSizeHint(_layout->getSizeHint());
        _setSizeHint(_label->getSizeHint());
./toucan/lib/toucanView/TimeWidgets.cpp
        _setSizeHint(sizeHint);
        _setSizeHint(sizeHint);
./toucan/lib/toucanView/TimeLayout.cpp
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/FileToolBar.cpp
        _setSizeHint(_layout->getSizeHint());
        _setSizeHint(_scrollWidget->getSizeHint());
./toucan/lib/toucanView/ExportTool.cpp
        _setSizeHint(_scrollWidget->getSizeHint());
./toucan/lib/toucanView/TimelineWidget.cpp
        _setSizeHint(_viewport->getSizeHint());
./toucan/lib/toucanView/FileTab.cpp
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/WindowToolBar.cpp
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/TrackItem.cpp
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/ToolBar.cpp
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/InfoBar.cpp
        _setSizeHint(_bellows->isVisible(false) ? _bellows->getSizeHint() : ftk::Size2I());
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/DetailsTool.cpp
        _setSizeHint(sizeHint);
./toucan/lib/toucanView/MarkerItem.cpp
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/GapItem.cpp
        _setSizeHint(_scrollWidget->getSizeHint());
./toucan/lib/toucanView/BackgroundTool.cpp
        _setSizeHint(_layout->getSizeHint());
        _setSizeHint(_scrollWidget->getSizeHint());
./toucan/lib/toucanView/GraphTool.cpp
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/AudioClipItem.cpp
        _setSizeHint(_layout->getSizeHint());
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/CompareTool.cpp
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/PlaybackBar.cpp
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/ViewToolBar.cpp
        _setSizeHint(sizeHint);
./toucan/lib/toucanView/TimelineItem.cpp
        _setSizeHint(ftk::Size2I(0, _size.thumbnailHeight));
./toucan/lib/toucanView/ThumbnailsWidget.cpp
        _setSizeHint(_layout->getSizeHint());
./toucan/lib/toucanView/StackItem.cpp

@linux-foundation-easycla

linux-foundation-easycla Bot commented Jun 29, 2026

Copy link
Copy Markdown

CLA Signed
The committers listed above are authorized under a signed CLA.

@darbyjohnston

Copy link
Copy Markdown
Collaborator

Hi, and thanks for the contribution. The feather-tk library is still in early development and going through a lot of changes, sorry for the churn.

For the size hint I believe the change was moving from a setter function _setSizeHint to a virtual getter function getSizeHint(). So for example InfoBar.cpp has this code:

void InfoBar::sizeHintEvent(const ftk::SizeHintEvent& event)
{
    IWidget::sizeHintEvent(event);
    _setSizeHint(_layout->getSizeHint());
}

Which would be converted into:

Size2I InfoBar::getSizeHint() const
 {
    return _layout->getSizeHint();
}

If that seems like too much work I can take a look, but if you would like to proceed I'm happy to answer any questions.

@leighsmith

Copy link
Copy Markdown
Author

Thanks, that gives me a good example of the intended upgrade path. I'll see what I can accomplish & report progress.

Signed-off-by: Leigh Smith <leigh@leighsmith.com>
Signed-off-by: Leigh Smith <leigh@leighsmith.com>
Signed-off-by: Leigh Smith <leigh@leighsmith.com>
Signed-off-by: Leigh Smith <leigh@leighsmith.com>
Signed-off-by: Leigh Smith <leigh@leighsmith.com>
…atest feather-tk

Signed-off-by: Leigh Smith <leigh@leighsmith.com>
Signed-off-by: Leigh Smith <leigh@leighsmith.com>
…Arg to CmdLineArg

Signed-off-by: Leigh Smith <leigh@leighsmith.com>
…Arg to CmdLineArg

Signed-off-by: Leigh Smith <leigh@leighsmith.com>
…mdLineArg for new feather-tk API

Signed-off-by: Leigh Smith <leigh@leighsmith.com>
…mdLineArg for new feather-tk API

Signed-off-by: Leigh Smith <leigh@leighsmith.com>
Signed-off-by: Leigh Smith <leigh@leighsmith.com>
Signed-off-by: Leigh Smith <leigh@leighsmith.com>
…I function

Signed-off-by: Leigh Smith <leigh@leighsmith.com>
…I function

Signed-off-by: Leigh Smith <leigh@leighsmith.com>
…() instance

Signed-off-by: Leigh Smith <leigh@leighsmith.com>
Signed-off-by: Leigh Smith <leigh@leighsmith.com>
…o ::getSizeHint(). These are all ripe for a refactor to create a ToucanWidget class which removes the redunancy of such instance functions

Signed-off-by: Leigh Smith <leigh@leighsmith.com>
Signed-off-by: Leigh Smith <leigh@leighsmith.com>
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