https://bugs.documentfoundation.org/show_bug.cgi?id=164080
Michael Weghorn <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #2 from Michael Weghorn <[email protected]> --- (In reply to Rafael Lima from comment #1) > @Michael, what is your opinion about this issue? > > I tried changing this code to make it use the size of each entry instead, > but I'm having lots of side effects. > > For kf5/kf6 a solution would be to use native QTreeView. Indeed, I also see the 2 options you mention: 1) adjusting the vcl Widget (you mentioned SvImpLBox), which would currently apply for everything except gtk3/gtk4 2) for Qt-based VCL plugins: using a native QTreeView, which at least I would consider the mid- to long-term goal anyway > I noticed that in the code we have a prototype for implementing QTreeView in > QtInstanceTreeView.cxx (for qt5/qt6). > > Are you planning to work on this? I plan to continue implementing more use of native Qt widgets (Qt welding, see tdf#130857), and actually started implementing a bit more of the QtInstanceTreeView methods, initially focusing on relatively simple dialogs using tree views like Calc's "Sheet" -> "Show Sheet" dialogs or the "Past Special" dialog. The idea is to eventually use native Qt widgets for most of the UI, similar to what happens with gtk3/gtk4 already. > How hard would it be to implement this? Maybe I could give it a try, but I > would need some mentoring. Help is appreciated of course, and I'm happy to provide more information - please just ask. The approach I'm using so far is basically looking at one dialog at a time and implement the corresponding weld API in the vcl/qt5/QtInstance* classes that that dialog uses/needs, starting with simpler dialogs and then slowly moving to more complex ones (that require more of the implementation being done). So what I'm doing usually looks approximately like this: 1) choose a dialog to tackle next 2) add that dialog to the list of supported dialogs in `QtInstanceBuilder::IsUIFileSupported` locally 3) run LO with the qt6 VCL plugin and environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set (to enable use of native Qt widgets) 4) open the dialog This will usually already trigger asserts in methods that are used, but not implemented yet. If so: Implement what's needed (and sometime I implement more of the methods in the corresponding classes, while at it anyway). Once the dialog opens: Check whether the dialog works as expected and address any issues. Potentially check the dialog implementation to see whether there's anything else that might need attention. A `git log --grep=tdf#130857` shows sample commits that might give an impression. `QtInstanceBuilder::IsUIFileSupported` lists the dialogs already supporting native Qt widgets, and a git blame will show the commits adding them, with each commit message also mentioning how to trigger the corresponding dialog. (AFAICT, the dialogs should be fully functional, but in order to look really appealing, more details like handling of margins, alignment, text attributes,... still might need to be implemented). I cannot really estimate how much effort the "Find" sidebar would be. Other than the dialogs I've been looking at so far, it might require implementing support for ~everything that the main window uses first, as the sidebar is part of that one, so would - at least with the approach I'm taking so far - probably be something looked at quite a bit in the future still, once more of the weld API has been implemented in Qt. (Maybe there is a way to also use a native QTreeView in a window also containing vcl widgets, but that's not what I have been looking into so far.) Sahil mentioned he's planning to also work on an implementation of the weld API for Windows, using the Windows API (controls). Does that help? What do you think? Version: 25.2.0.0.alpha1+ (X86_64) / LibreOffice Community Build ID: ff3d9ab6ecda2a1b8a3e7d39865cf0dbde916df6 CPU threads: 32; OS: Linux 6.11; UI render: default; VCL: qt6 (cairo+wayland) Locale: en-GB (en_GB.UTF-8); UI: en-US Calc: CL threaded -- You are receiving this mail because: You are the assignee for the bug.
