QtCurve 1.7.1 backported to Trinity, but no config module and image background does not work #2
Закрито
4 роки тому відкрито tch
·
51 коментарів
Завантаження…
Посилання в новій задачі
Тут ще немає жодного змісту.
Видалити гілку '%!s(<nil>)'
Видалення гілки НЕЗВОРОТНЕ. Дію не можна скасувати. Продовжити?
Hello.
I've just backported the changes of QtCurve 1.7.0 and 1.7.1 to Trinity's version (1.6.2) of QtCurve. (http://mirror.git.trinitydesktop.org/gitea/TDE/tde-style-qtcurve)
I attached the patch.
I've tested the built qtcurve.so and qtcurve.la and they are working. However, i've noticed, that the configuration module does not build. Not even with the original sources of 1.6.2.
Also i am unable to set the background image for panels and menus from the config file. A decade ago i had a converstation with original author Craig Drummond here: https://www.cinnamon-look.org/p/1005552/show/page/21
He advised me what to do, but 1.6.2 did not supported those options; it was introduced in 1.7.0, that's why i backported it, but it still not works.
Any ideas on that?
Patch is available on bugzilla bug 3073
I could swear, that i attached the patch here too... Attaching again.
Anyway, any ideas about the config module not building or why the image as window/menu background is not working?
Yep, upload does not work for me. Neither edit...
Instead of inserting a patch as comments or attachments, the better way is to create a branch, apply the patch, push as a new commit, and create a pull-request. See the TGW tutorial on the wiki.
@tch: thanks anyway for trying crating a PR (replying here to your comment on bug 3073). When I look at the patch I will also look at the config module and background problem.
@SlavekB: Tried, but the authentication has failed.
@MicheleC: Ok, then.
BTW, i've checked the modifications between the steps of 1.7.1->1.8.0->1.8.1->1.8.2->1.8.3->1.8.4->1.8.5 and it's not much. It can be done in an afternoon, just like this one. Although i found nothing between 1.8.4 and 1.8.5 beside the changelog. Maybe all modifications were done in the "common" folder, which is missing from the archives.
First: If @tch has trouble creating a branch or uploading his patch maybe he can create a fork in his gitea area.
Second: I'm a bit puzzled with our Qtcurve because I've cloned git://anongit.kde.org/qtcurve.git and when I get back to tag 1.6.2 for instance, I see two extra folders (kwin and kwindconfig).
As a side note, tags from 1.7.2 to 1.8.9 are available.
git show-ref --tags -d
The user @tch is a member of the Contributors team, so there should be no problem with that he can push the new branch. Unfortunately I have no idea if he tried to push directly into the master branch?
@cethyel: Those folders for KDE4 and/or KDE5. After 1.8.5 KDE3 was unsupported. Also by first glance, your repository does not contain any KDE3/Qt3 related sources even below 1.8.5.
@SlavekB: About the push issues, the details are in https://bugs.trinitydesktop.org/show_bug.cgi?id=3073
@tch
oh that's too bad, I thought that this repository (which, by the way, is not mine) could be of use in your endeavor.
I did not say that it could not, i just said, that i have not found any KDE/Qt3 related part, yet. But thanks anyway.
@tch You mentioned you cannot build the configuration module even using the original 1.6.2 sources. Here in debian bullseye with TDE R14.1.0-dev, I can build that and I can use it.
What error do you see?
The patch looks great, I am ok to merge it almost as is (just a minor change for consistency with other part of the code)
@tch I tried the instructions given by Craig on that page that you linked, but it does not seem to work. Moreover every time the configuration module is open, those changes made manually get lost.
Btw if you want to prepare a patch also for later versions of QtStyle, I will be happy to check and merge them in 😄
@tch I would like to author the patch with your name if you don't mind. Can you confirm I can sign off the patch for you, as in you are the author of it and you backported from Craig's work?
No errors. It simply does not build it. Does not even try to build it. What did you do to build it?
Besides the "config" directory contains no differences between 1.6.2 and 1.8.5. Either the changes've lost, or none of the newer functions can be configured in the configuration program
Well, i can live without the config module. But why the panel background image does not work?
Okay, i'll do it. I don't know when it'll be ready.
If you credit Craig as original author, then ok.
In QtCurve 1.8.0 there is an include in "shortcuthandler.cpp" which requires "shortcuthandler.moc" and that file is not in the QTCurve archives. Not in the repos. Not in anywhere. I don't know what is that, but withot that we cannot port 1.8.0.
The configuration module and translations do not build by default, unless you enable the option in cmake.
The configuration module builds fine both with and without the patch.
I was thinking of crediting your for the patch since anyway there is some conversion work required to adapt the original code to TDE. At the same time I would mention in the commit message that the code is taken from the original code made by Craig, so both of you get the correct recognition 😄
.moc files are generated at build time by the TQt3 meta object compiler, they are the hidden code required to make TQt signals and slots work ;-)
It should be fine to include that and at build time it should just work fine
.moc files are generated at build time by the TQt3 meta object compiler, they are the hidden code required to make TQt signals and slots work ;-)
It should be fine to include that and at build time it should just work fine
To be honest I am not sure at this stage. Either the functionality is not implemented or the instruction from Craig 9 years ago where not correct. Do you know if it works in KDE+Qt Curve 1.7 or later? Just for info. Later we can use that as comparison.
I've done with 1.8.0, link is here:
http://oscomp.hu/depot/qtcurve-1.7.1-to.1.8.0-preliminary.diff
However, as the mentioned file is still missing, the build process still fails and i cannot fix or debug it without that file.
Error log is here:
http://oscomp.hu/depot/qtcurve-1.8.0-build.log
It does miss a bunch of properties (such as "opts.hideShortcutUnderline") which is declared nowhere in 1.8.0.
Yes. I tried QtCurve 1.8.x with KDE4 long ago and it worked.
It does not look like to me that the missing moc file is generated. It's not in the "build/style" directory.
Edit: Okay, got them in "config.h". Patch updated. It still gets a bunch of other errors, i'm checking them...
Edit #2: It now compiles fine, but the result is now a number of missing references which should be in the shortcuthandler. The "shortcuthandler.moc" is still not in the build directory.
1.8.0 patch and build log is on the links above.
Okay, managed to solve it, i needed to tell CMake that it has to build the shortcuthandler.cpp too. The module now builds. So QtCurve 1.8.0 is now ported to TDE.
1.8.1 also ported.
http://oscomp.hu/depot/qtcurve-1.7.1-to.1.8.1-preliminary.diff
It seems 1.8.2 broke a lot of things and the necessary stuff is needed to backport from the "common" dir of the Qt4 version (otherwise the changes were small).
I'll come back, when i'm done or stuck.
Okay, just some renaming which needed to be reverted on the Qt3/TQt side. 1.8.2 is now ported.
http://oscomp.hu/depot/qtcurve-1.7.1-to.1.8.2-preliminary.diff
Tomorrow i'll port 1.8.3 as it is a bit bigger one. And then we're done, since 1.8.4 has like two rows changed and 1.8.5 only changed the changelog, maybe the change was in the missing "common" directory.
1.8.5 is done.
http://oscomp.hu/depot/qtcurve-1.7.1-to.1.8.5.diff
Here it builds. Please check.
Great, thanks for the effort @tch. I am going to merge 1.7.1 first, then as soon as I am done with another bug I am looking at, I will take a look at 1.8.5 port as well.
@tch: can you let me know how I should credit you in the commit? something like "name surname ". For email I guess I can use "tch@protonmail.com", just need a name to put in 😄
Please credit me as "TCH".
Patch up to v.1.7.1 merged into master code. It will be backported when the window for R14.0.9 opens.
Will work on 1.8.5 in the near future. PR remains open.
I had a first look at this patch. There is quite a bit of KDE stuff which has not been translated to TDE. Could you please amend accordingly? The number of changes will reduce quite a bit. Thanks 😄
Could you please give me an example what to change, of what do you mean by KDE stuff which is yet to be translated to TDE? It builds here, so all the API calls must be TDE-compatible as i do not have any kind of KDE here.
Hi @tch, for example kwin -> twin, KDE -> TDE, khtml -> tdehtml and similar occurances. Here is a small extract from the patch where twin is changed back to kwin
Only the changelog was affected. I just copied the new upon the old, since TDE did not existed at the time these changelogs were written.
I've restored the original from 1.6.2 and added the new section. New patch is at the same link as above.
Thanks @tch it looks better now 😄
I will take a look at it soon.
@tch I have merged the last patch, so now QtCurve is updated to 1.8.5.
Does this fix the issue with the background image, since it works on KDE4 + QtCurve 1.8.x?
I don't know. Is there a preliminary Debian package of it? Then i'd try id. I don't exactly know what i need to copy and set after i built it, so it would be good, to have the installer which handles the rest.
If you use PTB repository, the package will be available in a short time. If you use PSB repository, package building for R14.0.9 will start at the end of next week.
Is there a direct URL for the PSB repo? I'd check regularly if QtCurve 1.8.5 has been built and then install it.
See Preliminary Stable Builds on Wiki
Thanks. BTW i built it, copied it into /opt/trinity/lib/trinity/plugins/styles, set the corresponding values in ~/.config/qtcurve/stylerc and nothing. The background image still not works.
@tch could you explain what is the functionality you would like to achieve? is it having a background image on the popup menu background? Would you be able to create a screenshot/picture of what you want os I can have a better understanding?
Forms, panels, buttons, menus, scrollbars, whatever.
From this:
To this:
It works on KDE4, since QtCurve 1.7.0, but somewhy it does not with this.
ok thx. So it works in KDE4 with the same entries in the config file?
Supposed to. I've tried it with the config program, but there is a link in my OP, Craig himself suggested this.
Yes, I read the old post but couldn't get it to work. Also the old post seems to suggest only svg files are supported, but perhaps I am wrong.
If you were able to point me to a specific option in the configure module, it would be of great help for looking into this. Otherwise I will start from the config file entry strings and try to work backward.
Two other examples, perhaps it is better visible:
http://oscomp.hu/depot/withnobg.png
http://oscomp.hu/depot/withbg.png
Edit: No, PNG is also supported, it was on KDE4.
I cannot point you to any option, as the config module does not support this option. That stopped at 1.6.2.
ok thx anyway. Will look into this again in near future 😄
The problem with image background is now reported as issue #3 and continue there.
This issue (related to qtcurve upgrade and R14.0.9) will be closed.