[patch] New Qt4 GUI

Support for HandBrake on Linux, Solaris, and other Unix-like platforms
Forum rules
An Activity Log is required for support requests. Please read How-to get an activity log? for details on how and why this should be provided.
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

[patch] New Qt4 GUI

Post by gonza »

Hi all,
I decided to fix up the Qt4 GUI so that there's at lease one usable GUI for Linux. It currently has enough features to make it usable, but still more work to polish it off. I haven't yet implemented presets, advanced settings or a nice gui for the encode queue (it does have a queue though).

I present you here some screenshots and a patch which should apply against 0.9.2. There is a small second patch which must be applied to libhb.
Update: I have added patches below against recent svn.
Update: The most recent version can be found in this git repository (bonne/qhandbrake branch): http://repo.or.cz/w/HandBrake.git

Please test and provide patches to help the effort. I intend to see if I can get it to compile on a Mac, but please also test on Windows if you want.

Enjoy!

qt4 patch: http://www.ixum.net/handbrake-qt4.patch
libhb patch: http://www.ixum.net/handbrake-qt4-libhb.patch

Image
Image
Image
Image
Image
Last edited by gonza on Tue Jul 08, 2008 6:13 am, edited 2 times in total.
saintdev
Enlightened
Posts: 146
Joined: Wed Dec 20, 2006 4:17 am

Re: [patch] New Qt4 GUI

Post by saintdev »

Looks nice.
Just a quick request, could you redo your patches against svn HEAD? There have been a _lot_ of changes since 0.9.2.
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

saintdev wrote:Looks nice.
Just a quick request, could you redo your patches against svn HEAD? There have been a _lot_ of changes since 0.9.2.
Can do, might take a while though since I have ridiculously slow internet atm. Last I checked though the qt4 dir had no changes since 0.9.2 and the change to libhb is a two liner anyway (just changing const-ness of a single function).
saintdev
Enlightened
Posts: 146
Joined: Wed Dec 20, 2006 4:17 am

Re: [patch] New Qt4 GUI

Post by saintdev »

gonza wrote:Can do, might take a while though since I have ridiculously slow internet atm. Last I checked though the qt4 dir had no changes since 0.9.2 and the change to libhb is a two liner anyway (just changing const-ness of a single function).
Yes, but there have been a lot of changes to other code (eg: the way audio is handled is completely different). Which the qt4 gui was not updated for.
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

saintdev wrote:Yes, but there have been a lot of changes to other code (eg: the way audio is handled is completely different). Which the qt4 gui was not updated for.
Right, got it.
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

I have updated the code for the latest svn. Here are the new patches:

qt4 patch: http://www.ixum.net/handbrake-qt4-svn.patch
libhb patch: http://www.ixum.net/handbrake-qt4-libhb-svn.patch

And some screenshots of the things that changed. I decided to go for a generic Audio widget that adds rows as required, rather than a fixed 4 tracks. It's less code this way. I have half implemented the advanced settings widget.

Unfortunately these screenshots don't have the nice Oxygen widget style of the ones above, and I had to shrink them a bit, but you get the idea.

Image
Image
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

I have done some more work on this, and it's looking much better.
The encode queue now shows the same info as the Mac version (only missing the progress bar part now).
The advanced settings tab now works (updates the string and vice-versa).
Checks are made about the filename before encoding.
An alert is given at the end.

There's still some polish to be done and some bugs to sort, but it's ready for any developers who are interested. I have also compiled in on a Mac and it worked fine there too. I don't have a Windows machine to test on, but I imagine it will work there too.

Please test and give feedback

The new patches you need are here:
qt4 patch: http://www.ixum.net/qhandbrake-svn.diff
libhb patch: http://www.ixum.net/handbrake-qt4-libhb-svn.patch

Cheers
Attachments

[The extension diff has been deactivated and can no longer be displayed.]

[The extension patch has been deactivated and can no longer be displayed.]

Last edited by s55 on Mon Jun 30, 2008 4:03 pm, edited 1 time in total.
Reason: Added files as board attachments.
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

Updated the patch for the latest svn. Removed some macicons that are now gone, and the reference to libdvdcss.

Here: http://www.ixum.net/qhandbrake-svn2.diff
Attachments

[The extension diff has been deactivated and can no longer be displayed.]

Last edited by s55 on Mon Jun 30, 2008 4:02 pm, edited 1 time in total.
Reason: Added File as a board attachment.
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

I added a progress widget to the top of the queue window (much like the mac os x one).

New patch here:
http://www.ixum.net/qhandbrake-svn3.diff
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

I decided to put up a repository holding my changes (rather than just keep posting patches).
You can find it here:
http://repo.or.cz/w/QHandBrake.git

It will follow HandBrake development, and have a branch with my changes in, give me a few hours to get it sorted.
I have also added a "mob" branch for anyone who wants to give me patches. Look at repo.or.cz for info about that.

If my changes end up in SVN then I'll probably stop using this.
saintdev
Enlightened
Posts: 146
Joined: Wed Dec 20, 2006 4:17 am

Re: [patch] New Qt4 GUI

Post by saintdev »

gonza wrote:I decided to put up a repository holding my changes (rather than just keep posting patches).
You can find it here:
http://repo.or.cz/w/QHandBrake.git

It will follow HandBrake development, and have a branch with my changes in, give me a few hours to get it sorted.
I have also added a "mob" branch for anyone who wants to give me patches. Look at repo.or.cz for info about that.
Cool. I do have a HandBrake svn mirror there (http://repo.or.cz/w/HandBrake.git) that you could have just forked, however.

I probably could setup you a development branch like mine, and add you to the allowed users. Not right now, though I'm too tired, need sleep.
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

saintdev wrote:Cool. I do have a HandBrake svn mirror there (http://repo.or.cz/w/HandBrake.git) that you could have just forked, however.

I probably could setup you a development branch like mine, and add you to the allowed users. Not right now, though I'm too tired, need sleep.
Actually I did fork your repo :). And if you want you can add me as a user (username bonne), and I'll just add a branch myself. That's probably simpler for everyone else :)
saintdev
Enlightened
Posts: 146
Joined: Wed Dec 20, 2006 4:17 am

Re: [patch] New Qt4 GUI

Post by saintdev »

Ok, created a bonne/qhandbrake branch for you, and added you. Feel free to create any other branches you like (as long as they're under bonne/ ).
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

saintdev wrote:Ok, created a bonne/qhandbrake branch for you, and added you. Feel free to create any other branches you like (as long as they're under bonne/ ).
Thanks. I've uploaded my changes there. :)
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

So what's the process to get these changes into svn? Should I apply for an account?
saintdev
Enlightened
Posts: 146
Joined: Wed Dec 20, 2006 4:17 am

Re: [patch] New Qt4 GUI

Post by saintdev »

gonza wrote:So what's the process to get these changes into svn? Should I apply for an account?
One of the admins would be the ones to answer that question, but my guess would be that they would like something a little more polished before comitting. They really preffer to have everything as polished as possible before commit, then fix-up any small bugs that crop up.
jbrjake
Veteran User
Posts: 4805
Joined: Wed Dec 13, 2006 1:38 am

Re: [patch] New Qt4 GUI

Post by jbrjake »

gonza wrote:So what's the process to get these changes into svn? Should I apply for an account?
Stick around for a few months and show you're committed, and it will be committed.

The project tends to take a "wait and see" approach to interface maintainers, because the only thing worse than no gui is an out of date and unsupported gui.

For comparison:

John Stebbins first shared his GTK GUI with us on IRC in March. It was committed to the SVN repository a little less than three months later. He stays in touch constantly, reacted swiftly to new developments, and contributes tech support as well as libhb patches.
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

jbrjake wrote:Stick around for a few months and show you're committed, and it will be committed.

The project tends to take a "wait and see" approach to interface maintainers, because the only thing worse than no gui is an out of date and unsupported gui.

For comparison:

John Stebbins first shared his GTK GUI with us on IRC in March. It was committed to the SVN repository a little less than three months later. He stays in touch constantly, reacted swiftly to new developments, and contributes tech support as well as libhb patches.
No problems, I'm keen to get it nice and polished for you. I'm also keen to get any Qt or KDE developers/users to start testing it so that it can improve faster and to attract a wider audience to HandBrake which I'm convinced is very good software.

If there is anything you can do to attract potential testers/developers that would be much appreciated.
hunterk
Bright Spark User
Posts: 179
Joined: Tue Jun 03, 2008 2:27 pm

Re: [patch] New Qt4 GUI

Post by hunterk »

great work so far, gonza. Now the Qt4 GUI is nearly up to snuff with the OSX GUI!

I had some problems with missing macicons when I tried to compile, but I might've applied the wrong patch or something. After a little fiddling with that, I got it to compile just fine on my Ubuntu Gutsy 64-bit system. I'm excited to see the qt4 GUI actually going somewhere and I hope your additions get committed to svn soon. :mrgreen:
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

hunterk wrote:great work so far, gonza. Now the Qt4 GUI is nearly up to snuff with the OSX GUI!

I had some problems with missing macicons when I tried to compile, but I might've applied the wrong patch or something. After a little fiddling with that, I got it to compile just fine on my Ubuntu Gutsy 64-bit system. I'm excited to see the qt4 GUI actually going somewhere and I hope your additions get committed to svn soon. :mrgreen:
Thanks a lot! If you're keen to do some testing that would be greatly appreciated. For the moment I guess this thread is the best place to report any bugs etc.

The most recent version is in this git repository: git://repo.or.cz/HandBrake.git in the branch bonne/qhandbrake. You should be able to get it like this:

Code: Select all

git clone git://repo.or.cz/HandBrake.git
cd HandBrake
git checkout  -b bonne/qhandbrake origin/bonne/qhandbrake
Thanks for taking the time to look at it :)
Last edited by gonza on Fri Aug 01, 2008 7:39 am, edited 1 time in total.
hunterk
Bright Spark User
Posts: 179
Joined: Tue Jun 03, 2008 2:27 pm

Re: [patch] New Qt4 GUI

Post by hunterk »

I've used it some more and I ran into a couple of minor problems: it won't recognize any of my DVDs normally (I have to use the 'folder' option instead and navigate to /media/cdrom0/VIDEO_TS, which then works fine), and sometimes options I've chosen will reset themselves when I go to other tabs (for instance, I use x264 in an mp4 container, but it tries to switch it to an mkv container when I click on the audio tab. Likewise, I've had some problems with the resolution switching to 64x64 on its own...).

I also ran into some weird issues with 2-pass encoding always failing just after the 2nd pass tries to start (often with an error about curves not converging) and no support for my cpu extensions beyond SSE2 despite having yasm installed. However, I also experienced these same issues when working with the normal svn snapshot (without your code), so I don't think it has anything to do with your GUI. I suppose I'll file bug reports with the normal HandBrake team regarding those issues.

Other than that, I've had a great experience using the GUI. Thanks again for all of your outstanding work on it so far!
redraiderbum
Enlightened
Posts: 132
Joined: Thu Jun 21, 2007 3:53 am

Re: [patch] New Qt4 GUI

Post by redraiderbum »

Gonza the gui screen shots look great. I tried to download the latest version with the code to try it out. When I put in the last line:

Code: Select all

git checkout bonne/qhandbrake
I get the following:
error: pathspec 'bonne/qhandbrake' did not match any file(s) known to git.
Did you forget to 'git add'?
I honestly know nothing about the git command so I may be missing something that is painfully obvious.
gonza
Posts: 42
Joined: Tue Jun 10, 2008 12:41 am

Re: [patch] New Qt4 GUI

Post by gonza »

Sorry, try this:
This will checkout the branch bonne/qhandbrake from the repository origin (which is the default name for the repository you cloned from) and create a new local branch called bonne/qhandbrake with the same contents.

Code: Select all

git checkout  -b bonne/qhandbrake origin/bonne/qhandbrake
When you want new updates you would do

Code: Select all

git pull
which will pull in the remote reference origin/master into your local branch master and also the remote branch origin/bonne/qhandbrake into your local branch bonne/qhandbrake.

Hope that helps
stealthdave
Posts: 2
Joined: Wed Aug 13, 2008 10:52 pm

Re: [patch] New Qt4 GUI

Post by stealthdave »

Just got the qt4 interface compiled. Very nice! I've been using the gtk interface, but it doesn't have the ability to adjust the Picture options, which has been problematic for a few of my source videos. I am having a few issues using it, however. Forgive me if this is because development isn't complete yet, but here are my observations running qtHB on Ubuntu 8.04 (Gnome interface, AMD64):
  • The first Title of the disc is selected by default, but many options are not selectable until you change the Title at least once, such as Framerate and Audio Tracks. It's as if the Title isn't completely selected yet.
  • The menu option Presets -> New Preset doesn't seem to work yet. Coming soon perhaps?
  • When creating presets does get implemented (provided it's not an issue with my setup), might I suggest sharing a common presets file with the gtk interface? Right now, ghb uses {$HOME}/.config/ghb/custom_presets to store custom presets. While that's probably not an appropriate location for qtHB, perhaps you and the gtk ui maintainer could use a common location for presets?
I also have one small feature request. The gtk interface allows you to select an mpg file as the input in addition a DVD disc or VIDEO_TS folder. This is especially useful if you have HD video captures from broadcast that you'd like to compress down. (Although, as I stated above, I'm having issues there because I can't adjust the Picture settings through the gtk interface.) Any chance of adding this to the qt4 interface, as well?

The interface does look sharp! I'm going to take a closer look at it this evening and actually run a few discs through it. (I've done all this remotely through an NX terminal, so far. ;) ) Thanks for getting this working!

Many thanks!
- Dave
User avatar
JohnAStebbins
HandBrake Team
Posts: 5712
Joined: Sat Feb 09, 2008 7:21 pm

Re: [patch] New Qt4 GUI

Post by JohnAStebbins »

In ghb, I guess you didn't notice that the small preview image on the picture settings tab is a button. Push it. You'll get a preview window much like the mac gui where you can change the picture settings.
Post Reply