MediaArea / MediaInfo

Convenient unified display of the most relevant technical and tag data for video and audio files.
https://MediaArea.net/MediaInfo
BSD 2-Clause "Simplified" License
1.4k stars 160 forks source link

Qt GUI: Fixes and improvements 2 #955

Closed cjee21 closed 1 week ago

cjee21 commented 1 week ago

Qt GUI: Revert 'Make Text view editable'

Qt GUI: Add legacy stream display option

Screenshot 2024-11-14 204655

Qt GUI: Enable WithThread so that progress bar actually works

Progress bar

Qt GUI: Add FFmpeg plugin support

Screenshot 2024-11-15 133957

Qt GUI: Add Graph view

Light Dark
Screenshot 2024-11-15 155806 Screenshot 2024-11-15 155853

Qt GUI: Add Graph export

cjee21 commented 1 week ago

Current state of Qt GUI after this PR:

Better compared to VCL GUI:

Lacking compared to VCL GUI:

JeromeMartinez commented 1 week ago

It is great! I am still reluctant for the full migration on Windows, especially for the HTML part (need to find something for that), but if you keep improving Qt I guess that I will at least drop the Wx version and put Qt version on all Linux platforms and also for the free version on macOS at some point...

Easy integration with modern Windows context menu

How is it possible? Qt stuff? Not possible to use the same with the VCL version?

No temporary file generated in %TEMP% for HTML and Graph view

Same, not something doable with VCL too?

cjee21 commented 1 week ago

Please remove the build/* files

Ooops, accidentally included. I thought I had checked files that were included.

cjee21 commented 1 week ago

Windows, especially for the HTML part (need to find something for that)

It is possible to manually integrate with Edge WebView2. Done by others as mentioned online but so far did not see sample code.

Easy integration with modern Windows context menu

How is it possible? Qt stuff? Not possible to use the same with the VCL version?

Because VCL one has lots of codes from legacy context menu and also settings are saved to file. Qt one is a clean slate and saves settings to registry by default. So for VCL, more work to integrate with / clean up old implementation and make sure no issues with older Windows versions etc and also need write extra code to read/write registry.

No temporary file generated in %TEMP% for HTML and Graph view

Same, not something doable with VCL too?

Can't find a way previously. Qt can easily feed the generated HTML doc as string to the webview. Regarding the VCL, there are some new APIs for the webview but I think they are not available on C++Builder 11 as I did not remember seeing them before and only saw them now in 12.

By the way, should I implement the legacystreamdisplay option for the VCL version too?

PS working with Qt's IDE and form designer is nice. Feels like I can get things done faster. The compilation time that is way faster is good for iterating and feels less frustrating too.

JeromeMartinez commented 1 week ago

By the way, should I implement the legacystreamdisplay option for the VCL version too?

Yes. At some point the call to options will be though MediaInfoLib for avoiding duplicated code, but it is a good thing to have everything in sync before doing this work.