Development: Exchange Libreoffice "Main Frame" with a GTK4 one?

Thx!

Currently you can not because I did not commit to upstream anything yet. I am sorting out the code and need the overcome problems (currently on how to dynamically load/update the menumodel for the file menu in the headerbar and so on. But once done I’ll commit to upstream.

For reference, this is the tweet with colors:

2 Likes

This is absolutely gorgeous. Can’t wait to see this running on my computer. Any idea when this should be pushed to upstream? Also I don’t know the institutional rules and relations between you guys, but what are the odds that your suggestion will be accepted? Also have you been able to solve your loading problem? In any case your work is awesome. Congratulations. Take care. JB

The first thing I add to a new installation of LibreOffice is

export SAL_USE_VCLPLUGIN=gen

This addition to the soffice start script disables all that lousy, dysfunctional Gtk bling.

Are there any updates on how to use the development version? I’m really excited and can’t wait to see a good looking UI for LibreOffice

Good looking but dysfunctional. As far as I can see, there are not any updates on how to use the development version.

Sadge that there is no update on this until now, if i could i would really like to contribute. There is no fork or so unfortunately. Or is there?

The initial posting tells it all. He feels somewhat lost while playing around with the code looking for easy solutions. Gtk fails miserably with LibreOffice.

@toxicdragon these look amazing, and I’m truly impressed by the quality and scale of what you’ve achieved.

One concern I have is that there don’t seem to be any file names — i.e., an app that edits files usually includes the name of the file in the header bar.

@Villeroy I don’t see why the GTK UI for LibreOffice should not be updated to a newer version.

Your criticism is generally repetitive, not particularly constructive, written without much effort or depth, and motivated by personal opinion, which is a great thing, but it is not right to try forcing it upon others.

The other UIs are still available to you, and you have no requirement to use the GTK/LibAdwaita UI. Christian/toxicdragon has put a lot of effort to ensure that this does not affect the other UIs for LibreOffice, as noted by other developers in the mailing list linked by him. You can simply recommend common ways to switch to other UIs (you did suggest one, although most people will not know to use the terminal for it), and link to the other UI options so that users can see it for themselves amd choose what they like.

Your earlier message about form controls seems misinformed, since GTK and LibAdwaita have a large library of controls, which include dropdowns, radio buttons, checkboxes, (number) spinners, and more.

Regarding flat design; while it might not be objectively perfect in terms of beauty or functionality, it fits in with the GNOME design, as well current UI design trends. This allows it to be similar to other applications, which lets users understand functionality more easily; imagine how it would be for different apps to use different icons, button placements, colours, etc. — users would be very confused and pained when trying to do their work.

Also, your last one or two comments seem a little unnecessarily hostile. The Libre Office codebase is very old and large, and Christian only started looking into it 4 or 5 months ago. It would be confusing to anyone in this context, yet Christian did a lot of work in 1 or 2 months. That does not seem to be the work of someone who is lost in the codebase. Additionaly, do you speak from experience when you say GTK is unsuitable? The fact that GTK UI already exists would suggest that GTK is actually suitable enough. And that Christian could achieved so much in suh a short time also suggests that GTK is suitable (as well as the fact that Christian is quite skilled).

Edit: the work is from Dec 2021, not 2022, as I first thought, so Christian first read the code 1 year and 4–5 months ago. However, most of the work was still achieved in the first month or two.

One possible solution to the file name problem is to use tabs, similar to Chrome, Firefox and GNOME Web, and then put the file name in the tab title. The solution could also leave some space on the left (and/or right) for dragging the window around, and the buttons currently in the header bar would move to a toolbar below the header bar.

Once again, I really appreciate the work you’ve done!

The problem is that - AFAICS - there’s no public code yet. In case someone would want to take over, there’s nothing to take. Note also, that GTK4 support is WIP, so @caolan (who is implementing the support) could possibly help, if there was something to discuss in code.

True. I was going to suggest sharing that next, although I’m an (extremely) amateur programmer with little understanding of low level languages like C — I just thought it would have been nice to have for others to continue the work, as you suggested. The lead on caolan should be a decent starting point for others, at the very least.

Wow, quite some time now that I posted about my little obsession with bringing LibAdwaita to LO :slight_smile:

So as for my agenda on this: I will continue once I get time to do so :slight_smile: I am currently in the project of building a house for my girlfriend and me and therefore do not have quite the time to code beneath my regular job.

As for all the kind of “hatish” comments of some in this forum: I achieved all you see in the screenshots in Code in about 1-2 weeks. I know how to code in Java and Typescript and know object oriented programming. I haven’t had written a single line of C before tackling this beast of an obsession and got a hold of it while learning how LO works internally (but do not be mistaken, I think I only know about 2-3% of it, haha :laughing:). The hardest part was understanding how libraries are integrated in LO and the setup of the environment and knowing where to start in the code itself. Baby steps. The LO programmers helped me with that (thx to caolan).

Maybe I get the time to rerun my current status of my work in progress and update it to the newest LO und LibAdwaita versions. Let’s see…

What got me frustrated back then was that I could not find a way in accessing the FileMenu layer to attach it to my LibAdwaita one (using header bars). This would have been my actual first commit to the code base as a first use case. Following that would have been layout changes in the headerbar etc cetera (what you see in the pics). I was also playing around with a side bar in the style of office 365 when you click the File Button (transitioning in from the left).

However I was also in touch with LO design team who also really looked forward to my commits.

In my pov it is really hard for designers to just try out new styles because it is so hard to get your environment going and handling the code. This is a really bad situation. So I was thinking of just writing a new application in maybe Python with GTK4 and LibAdwaita integration and construct an outer “design” layer for LO on LibAdwaita. Hosting on gitlab with CI/CD and automatic Linux/Windows Builds (yes, also Windows :slight_smile: ). I think this would be an easier way to get a new design going, because it is way easier to get designers into trying out something bew, being more accessible.

Well, I try to keep in touch more frequently from now on :slight_smile: maybe I have some surprises for you :wink:

Cheers,
Christian

4 Likes

Do whatever you want as long as I have the freedom to turn it off in order to make my dtabase forms work in the same ways on Windows and Linux.

The Python idea might actually be the best solution actually, if you mean to simply create a low-fidelity (non-functional) prototype of the application to test out designs, because there are a lot of design decisions to make before commiting to anything specific.

You could even get in touch with Tobias Bernard, who created the old mockups in the email thread. He also helped with the design of GNOME 40 (which includes LibAdwaita, I believe; see tobiasbernard.com) and he’s quite active in the GNOME/LibAdwaita design community. I’m sure he has some good ideas, and with his experience with LibAdwaita he can create some neat design mockups.

Also, 1–2 weeks is even more impressive, considering that you had to learn C as well!

Do you think your code is in a state where people could read through it to understand how to get things working (even with old versions)? Linking to your notes in this thread would also help them out to understand your process.

Thanks, and good luck with building your house!

Of course. I don’t think Libre Office will ever force its users to switch to GTK/LibAdwaita. Thanks for understanding.

GNOME Builder actually faces a similar problem, and solved it by using tabs under the top bar.