GNOME Bugzilla – Bug 641100
GTK 3 porting
Last modified: 2011-03-07 11:34:09 UTC
SSIA
Created attachment 179760 [details] [review] um-crop-area: Update from gnome-control-center for GTK+ 3.x porting.
*** Bug 641102 has been marked as a duplicate of this bug. ***
*** Bug 641099 has been marked as a duplicate of this bug. ***
*** Bug 641098 has been marked as a duplicate of this bug. ***
Created attachment 179761 [details] [review] Port cheese-flash
Created attachment 179762 [details] [review] Port cheese-widget
At least porting to GtkApplication and removing the calls for gtkrc parsing will also be necessary.
*** Bug 636329 has been marked as a duplicate of this bug. ***
Created attachment 180473 [details] [review] Replaced some deprecated symbols. Replaced Gtk.STOCK_*, Gtk.Widget.hide_all() and Gtk.Widget.size_request().
Created attachment 180474 [details] [review] Corrected Vala package names. Clutter-gtk, libcanberra-gtk and libcanberra.
Created attachment 180475 [details] [review] Migrated from libunique to GtkApplication.
(In reply to comment #7) > At least porting to GtkApplication and removing the calls for gtkrc parsing > will also be necessary. Ported libunique to GtkApplication, but I am not able to test it or go further, because the needed gtk 3 based clutter-gtk-1.0 bindings do not exist yet (look at the "Blocks" section bug 632834 ). Depends on: bug 641512.
(In reply to comment #12) > the needed gtk 3 based clutter-gtk-1.0 bindings do not exist yet (look > at the "Blocks" section bug 632834 ). You mean that the vala binding for clutter-gtk-1.0 does not exist yet? Is there a vala bug open about that?
Clutter-Gtk installs gobject-introspection libraries, so it should be possible to use the GI bindings directly instead of the vala bindings to get a head start.
(In reply to comment #13) > (In reply to comment #12) > > the needed gtk 3 based clutter-gtk-1.0 bindings do not exist yet (look > > at the "Blocks" section bug 632834 ). > > You mean that the vala binding for clutter-gtk-1.0 does not exist yet? Is there > a vala bug open about that? Yes, that is what I meant. I talked yesterday to juergbi and he already knew about the issue and said he will try to get around to it before the next release. I filed a bug already (bug 642013).
juergbi is going to do it and the plan is to do a release on the weekend.
Created attachment 180568 [details] [review] Allow user with VALAC but no valac to run autogen.sh When trying to build cheese to have a look on what still needs migration, I get stuck because on gentoo, we do not preserve the "valac" symlink, we only have valac-0.12 and so on, handling that setting VALAC. Currently autogen.sh checks for "valac" before looking at VALAC, so autogen.sh won't run as expected
Created attachment 180569 [details] [review] Allow user with VALAC but no valac to run autogen.sh wrong attachment, sorry ...
Review of attachment 180569 [details] [review]: looks fine to me, thanks!
I didn't know about this bug, Daneil pointed me to it. I worked on branch gtk3 and it now compiles and runs with gtk3. Apparently some of the stuff I did was already done here and some were not. There are some warnings, though. All of them are related to gtk_icon_view. For instance, when calling set_margin there are some warnings because priv->cell_area is null and it expects it not to be. I'm not really sure if it's a problem in gtk_icon_view or in cheese_thumb_view that inherits from it.
It's unfortunate that you didn't check with your co-maintainer or bugzilla first. Maybe someone needs to look at both branches and make sure that we have the best changes from both. http://git.gnome.org/browse/cheese/log/?h=gtk3 https://github.com/Patriciasc/Cheese-GTK-3 Patricia, do you have the same GtkIconView warning?
(In reply to comment #20) > I didn't know about this bug, Daneil pointed me to it. I worked on branch gtk3 > and it now compiles and runs with gtk3. Apparently some of the stuff I did was > already done here and some were not. > > There are some warnings, though. All of them are related to gtk_icon_view. For > instance, when calling set_margin there are some warnings because > priv->cell_area is null and it expects it not to be. I'm not really sure if > it's a problem in gtk_icon_view or in cheese_thumb_view that inherits from it. It is a shame we have duplicated work unnecessary. Please, next time inform about the work you are doing. If there is not a bug filed already or you do not find one related, please, file one so this will not happen again.
(In reply to comment #21) > It's unfortunate that you didn't check with your co-maintainer or bugzilla > first. > > Maybe someone needs to look at both branches and make sure that we have the > best changes from both. > http://git.gnome.org/browse/cheese/log/?h=gtk3 > https://github.com/Patriciasc/Cheese-GTK-3 > > Patricia, do you have the same GtkIconView warning? Yes, I am exactly working on that now and spent Friday with gdb trying to find out what the problem is. I am going to talk to Tristan today and if he does not know what the problem could be, I will go on trying with Valgrind.
I'm sorry. I'm now following Cheese bugs so I'm more aware of it. I had actually talked about helping on this with Yuvipanda when he created the branch, but he didn't work on it anymore. I was actually thinking a couple of changes would make the branch compile and I ended up spending a lot of time on it. Patricia, I think we should use your GTK.Application patch when we merge it to master. Not only it is newer than mine, but also you probably know better what you're doing. We can use the other two too if you like, just need to rebase some stuff I think. Murray also said you're the responsible for we having clutter-gtk vala bindng, thank you very much.
Luciana, I guess that we will have to make sure that we take at the end the best of both branches (yours and mine). These are the problems that I am currently having and their status: 1. GtkIconView. As I said, I am currently trying to find out what the problem with the GtkIconView is. I spent several time with gdb and Valgrind finding no helpful results. I tried to contact Tristan yesterday but he was not online, so I just emailed him with the problem today. Hopefully we get an answer soon and he can help. 2. The C generated code for the vfunc local_command_line() is wrong, it has one parameter more than expected. This is a problem and a blocker of our work, since it is one of the very first functions that the application calls. I already filed a bug (bug 642885) yesterday afternoon and commented it in #vala. 3. I migrated from GtkRcStyle to GtkStyleContext and in that process replaced the gtkrc file for the custom scrollbar with a .css file. This is not working right now and therefore, a default scrollbar is showing instead. I am currently investigating this. 4. Menu options (I guess they are actions) are showing as if they were inactivated. I still did not have time to look to this problem, but I did not directly change anything that had something to do with the actions, so I will have to investigate this as well. I just made this small summary to have track of the work being done and in order to divide our efforts in a better way. I hope that it helps.
I think I saw tristan commit some icon view fixes today, might be related to your problems.
Yes, I contacted Tristan with the problem and he informed me that it would be fixed within the next days. Regarding to the problem with the local_command_line, juergbi is working on it, and hopefully we will get an answer soon. I still do not have news about the problem with the .css file. I am trying to contact garnacho for some help, since I really do not find where the problem is. The problem with the insensitive menus and buttons is produced by GStreamer which was not initialized. It seems that at some point it was, but it was put out of the code two years ago... I still do not understand the reason, since I did not see that Gst.init_get_option_group () initializes it. I am still working on this point because the web-cam is not detected yet and the message "No device found" is displaying.
Update: - The GtkIconView issue is still prompting the warnings after Tristan changes. I contacted him already to let him know. - The issue with local_command_line has not been solved, but juergbi found a workaround that is working for cheese right now. - Regarding to the .css file, I emailed Carlos Garnacho with the issue already. - As I said before, menus and buttons are showed insensitive still. This is caused by some problem in GStreamer. The following warning+error is prompted when running cheese: ** (cheese:19067): WARNING **: cheese-window.vala:1257: Error: No device found and the following is displayed on the cheese screen: "No device found". Can anybody with some experience in GStreamer help?
Btw, this is the line prompting the error from the cheese source: https://github.com/Patriciasc/Cheese-GTK-3/blob/gtk3/libcheese/cheese-camera.c#L1202
So, is cheese_camera_create_camera_source_bin() being called, to set priv->num_camera_devices ?
Sorry, I mean, is the cheese_camera_add_device() callback called?
I just grabbed your changes from your branch and appart from the warnings it works for me. Does your webcam works with a simple gst-launch line?
So, it seems like time to merge stuff to master. Luciana, how do you want to do that?
We think we have mostly solved the "device not available problem". It was a problem in a signal connection, in some code that was added since the GNOME 2.32 branch: https://github.com/Patriciasc/Cheese-GTK-3/commit/01b6aa85c2263c81c4b04e4b2557fb4334bac673 Both Patricia and I only actually see the picture from the webcam when effects are enabled, but this could be due to some unrelated gstreamer or clutter problem in our jhbuild environments, so I still want to get this merged to master so more people can try it.
Update: - The GtkIconView issue is still prompting the warnings after Tristan changes. I contacted him already to let him know. These are some of the prompting errors: http://pastebin.com/HZ5JbJ6v - Regarding to the .css file, garnacho answered already with a solution that I will apply today. - When running cheese, the following error is shown in the terminal too and the image is still not displaying: ** (cheese:10017): WARNING **: Internal data flow problem. Does anybody knows what could be causing these problems? Apart from these issues, everything else seems to be working fine, so as Murray suggested, it would be a good idea to decide which parts to take and push.
(In reply to comment #35) > Update: > > - The GtkIconView issue is still prompting the warnings after Tristan changes. > I contacted him already to let him know. These are some of the prompting > errors: > > http://pastebin.com/HZ5JbJ6v Patricia, I have filed bug #643286 about that, though you have a slightly different version of the warning. Maybe you could check if the backtrace is similar for you, though please let's deal with that in that other bug. In general, let's start splitting off these remaining minor issues to other bug reports.
Unfortunately, and as you already know, Luciana and I have been working on the same project for a few weeks without having knowledge of that being happening. I am happy that we both share the same interest and I am pretty sure that we are going to make a good team together on helping cheese grow, but now, we have to make a decision and take the necessary parts of both branches. I have taken some time to have a look to Luciana's code, and it seems that all her changes are in my branch too (although this is something we two already discussed). I would like to know Luciana's opinion and then act, so everybody can have access to the code: "more eyes, more bugs fixed!" :)
Update: - I got the Gtk.StyleContext already working. Now cheese is using the custom Gtk.Scrollbar custom style. - Cheese is already displaying the image, but when clicking on the "Effects" button, previews are showing very badly and without colour. The following error is prompting 9 times too when doing this: ** (cheese:17960): WARNING **: Internal data flow problem. I would say that this is prompted 9 times because there are 9 time effect previews.
This "internal data flow problem" happens for me in master branch too, I don't think it has something to do with gtk3 changes. About merging this branch, I think we can get everything or at least great majority of it from Patricia's branch. I have only worked on it for a little while to make it compile, she made many more changes on it and I have stopped working on it since I learned about her branch with other patches that were not in this bug report. One change I suggest to her branch is to reduce or remove version requirements, since I tested that the branch works with older versions of gtk3, libgnome-desktop, etc. To get theese changes to master it would be nice to know Daniel's opinion. If you agree with him and you have the branch ready to push just go ahead.
I filed a bug for the "internal data flow problem" (bug 643480). Everything else seems to be working fine, so the branch is ready for being merged.
It would be nice if we could push Patricia's branch to gtk3 branch in git.gnome.org? We would have to remove what is there right now first, but I think that happened before in this branch. I think this would make it easier to test and merge. What do you think?
yep, that makes perfect sense! thanks a lot for the work you put into this!
Daniel, and could you please approve the merging to master?
I rebased my gtk3 branch on top of the current cheese master and created a new branch with the changes. David King just pushed that branch some minutes ago. Thanks for that!
I think that now, that the gtk3 branch has been merged into master and made public, all the tasks have been accomplished. Now, more eyes will be able to check the work and we will have more chances to fix the small related bugs marked as dependencies. One more bug closed! Thanks for everybody's work.