Thread: [Jahshaka-cvs] SF.net SVN: editopia: [15] cinesuite/cineplay-cinecode/trunk/src
Status: Beta
Brought to you by:
jahshaka
From: <edi...@us...> - 2007-12-06 13:22:35
|
Revision: 15 http://editopia.svn.sourceforge.net/editopia/?rev=15&view=rev Author: editopia Date: 2007-12-06 05:22:32 -0800 (Thu, 06 Dec 2007) Log Message: ----------- Added Paths: ----------- cinesuite/cineplay-cinecode/trunk/src/UI/about/about_cinecode.htm cinesuite/cineplay-cinecode/trunk/src/UI/about/images/CineCode.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/cinecode_logo.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/cinecode_logo_large.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_blue.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_gray.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_green.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_red.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_yellow.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/pause.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/pause_hover.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/remove.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/remove_hover.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/resume.png cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/resume_hover.png cinesuite/cineplay-cinecode/trunk/src/help/help_cinecode.html cinesuite/cineplay-cinecode/trunk/src/help/images/cinecode.png cinesuite/cineplay-cinecode/trunk/src/help/images/end_cinecode.png cinesuite/cineplay-cinecode/trunk/src/help/images/sshot_01_cinecode.png Added: cinesuite/cineplay-cinecode/trunk/src/UI/about/about_cinecode.htm =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/UI/about/about_cinecode.htm (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/UI/about/about_cinecode.htm 2007-12-06 13:22:32 UTC (rev 15) @@ -0,0 +1,35 @@ +<head> +<title>About Cinecode</title> +</head> +<style type="text/css"> +<!-- +body {margin:0px 0px;} + +--> +</style> + + +<body> + +<img src="images/CineCode.png" /> + +<div style="font-family:arial; font-size:16px; font-weight:bold; color:#777777; padding-bottom:10px; padding-left:12px;"> +Version 2.0 +</div> + +<div style="padding-left:12px;"> +<img src="images/editopia.png" /> +</div> + +<div style="font-family:arial; font-size:13px; padding-left:12px;"> +Copyright (c) 2005-2007 <br /> +All rights reserved.<br /> +www.editopia.com +</div> + +<div style="font-family:arial; font-size:13px; padding-top:20px; padding-left:12px;"> +FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com +</div> + +</body> +</html> Added: cinesuite/cineplay-cinecode/trunk/src/UI/about/images/CineCode.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/about/images/CineCode.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/cinecode_logo.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/cinecode_logo.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/cinecode_logo_large.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/cinecode_logo_large.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_blue.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_blue.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_gray.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_gray.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_green.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_green.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_red.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_red.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_yellow.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/led_yellow.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/pause.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/pause.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/pause_hover.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/pause_hover.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/remove.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/remove.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/remove_hover.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/remove_hover.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/resume.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/resume.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/resume_hover.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/windows/images/resume_hover.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/help/help_cinecode.html =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/help/help_cinecode.html (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/help/help_cinecode.html 2007-12-06 13:22:32 UTC (rev 15) @@ -0,0 +1,139 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<title>Help -CineCode</title> + +<style type="text/css"> +<!-- +body { + background: url(images/background.png) repeat-x #ffffff; + font-family: Arial, Helvetica, sans-serif; + font-size: 15px; + margin: 0px 0px; + +} + +h2 {font-size: 22px; font-weight: bold; color:#3986c7} +h3 {font-size: 20px; font-weight: bold; color:#006ab5;} + +p {font-size: 15px; padding-left:15px;} + +#Wrapper { + margin: 0px auto; + background-color: #fff; + width: 780px; +} + +.Content {padding: 15px 15px 15px 15px;} + +h3.Table-Title { + background-color:#006ab5; + color:#fff; + padding: 2px 15px 2px 15px; + margin: 15px 0px 0px 0px; +} + +.Hotkeys {margin-bottom: 25px;} +.Hotkeys td {border-bottom: 1px solid #007ac3; padding: 5px 15px;} +--> + +</style> + +</head> + +<body> + +<div id="Wrapper"> + +<img src="images/cinecode.png" /> + +<div class="Content"> + +<h3>Starting</h3> + + +<p>CineCode is an offline, open source encoder which converts any file format into flash on your desktop.</p> + +<p>Easy to download. Simply download the executable and place on your desktop, or any other location you wish.</p> + +<p>To execute, simply double click the program icon and the install program will run.</p> + + +<h3>Loading a Video Clip</h3> + +<p>There are two ways to load a video clip into CineCode:<br> +1) Drag and drop a clip over the CineCode window</p> +<p>or</p> +<p>2) Select File on the left corner of the CineCode application and choose one of the 'open' commands to choose the location of a file. Once the dialog box pops up, choose the file which you want to play.</p> +<p>Select your desired video clip and click on Open.</p> + + +<h3>Interface</h3> + +<b><i>UI screenshot and call outs</i></b> + +<img src="images/sshot_01_cinecode.png" /> +<br /> +<b><i>Menubar</i></b> + +<p>Most CineCode features can be accessed from the menubar at the top of the application</p> + + +<ul> + <li>File</li> + <ul> + <li>open file - opens a file browser dialog to allow you to select a media clip</li> + <li>open url - opens a dialog to allow you to type an URL in for the player to download</li> + <li>open sequence - opens a file browser dialog to allow you to select a media clip sequence</li> + <li>open recent - shows a list of your recently viewed media files</li> + <li>open close - closes the currently opened media file</li> + <li>quit - closes CineCode</li> + </ul> + <li>View</li> + <ul> + <li>half size - adjusts the main video window to half of the source video in pixels.</li> + <li>normal size - adjusts the main video window to the same size as the source video in pixels.</li> + <li>double size - adjusts the main video window to double of the source video in pixels.</li> + <li>full screen - adjusts the main video window to full screen mode. Double click the video to leave full screen mode.</li> + <li>hide video - hides the video window area. Sound will continue to play normally.</li> + <li>loop - keeps repeating the currently loaded video file</li> + </ul> + <li>Window</li> + <ul> + <li>movie info - opens a dialog with information about the currently loaded video clip</li> + <li>add favourite - opens a dialog to add the current video clip to the favourites list</li> + <li>remove favourite - opens a dialog to manage removal of a favourites entry</li> + <li>favourites - shows a list of your favourite media files</li> + </ul> + <li>Encode</li> + <ul> + <li>Encode . . . \x96 encodes the section of the file that you have selected\x96 if no in and out points are selected it will encode the entire file. A tray will pop out to the right of the application with a status bar to show the progress of the encoding and provide the option to remove the encoded file. The encoded file will be automatically saved on your desktop.</li> + <li>Cancel \x96 cancels all encode jobs.</li> + <li>Set in point \x96 choose the beginning of the section of the video you want to encode \x96 or just click on the Encode . . .function to encode the entire video. You can see the section that was set on the blue progress bar.</li> + <li>Set out point \x96 choose the end of the section you want to encode - or just click on the Encode . . .function to encode the entire video. You can see the section that was set on the blue progress bar.</li> + <li>Reset in/out points \x96 clears any in out points that have been set</li> + <li>Toggle encode tray \x96 adds or removes the encode tray.</li> + </ul> + <li>Help</li> + <ul> + <li>help - opens the help page with the CineCode user manual</li> + <li>check for release - opens the CineCode updates web page to check for updates</li> + <li>website - opens the Editopia web page</li> + <li>about - opens a dialog box about CineCode and the version of the program</li> + </ul> +</ul> + +<b><i>Encode Tray</i></b> + <ul> + <li>The encoding tray will pop out once you click on encode . . .. It will pop out to the right of the application with a status bar to show the progress of the encoding and provide the option to remove the encoded file.</li> + <li>Clean Up \x96 you can click the clean up button on the bottom of the encoding tray to remove any of the files you have encoded from the application \x96 the files will still be saved to your desktop.</li> + </ul> + + +</div> + +<img src="images/end_cinecode.png" /></div> + +</body> +</html> Added: cinesuite/cineplay-cinecode/trunk/src/help/images/cinecode.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/help/images/cinecode.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/help/images/end_cinecode.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/help/images/end_cinecode.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: cinesuite/cineplay-cinecode/trunk/src/help/images/sshot_01_cinecode.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/help/images/sshot_01_cinecode.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-01-24 13:51:35
|
Revision: 29 http://editopia.svn.sourceforge.net/editopia/?rev=29&view=rev Author: timdewhirst Date: 2008-01-24 05:51:15 -0800 (Thu, 24 Jan 2008) Log Message: ----------- audiotube - remove VM Inc, wwww.vmfx.com Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/AddFavouriteDlg.h cinesuite/cineplay-cinecode/trunk/src/Browser.cpp cinesuite/cineplay-cinecode/trunk/src/Browser.h cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp cinesuite/cineplay-cinecode/trunk/src/CinePlay.h cinesuite/cineplay-cinecode/trunk/src/Command.h cinesuite/cineplay-cinecode/trunk/src/Download.cpp cinesuite/cineplay-cinecode/trunk/src/Download.h cinesuite/cineplay-cinecode/trunk/src/EncodeJob.h cinesuite/cineplay-cinecode/trunk/src/FilterGraph.cpp cinesuite/cineplay-cinecode/trunk/src/Info.cpp cinesuite/cineplay-cinecode/trunk/src/Info.h cinesuite/cineplay-cinecode/trunk/src/Jah.h cinesuite/cineplay-cinecode/trunk/src/OpenGLStore.cpp cinesuite/cineplay-cinecode/trunk/src/OpenGLStore.h cinesuite/cineplay-cinecode/trunk/src/PlayList.cpp cinesuite/cineplay-cinecode/trunk/src/PlayList.h cinesuite/cineplay-cinecode/trunk/src/Player.cpp cinesuite/cineplay-cinecode/trunk/src/Player.h cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.cpp cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.h cinesuite/cineplay-cinecode/trunk/src/Release.cpp cinesuite/cineplay-cinecode/trunk/src/Release.h cinesuite/cineplay-cinecode/trunk/src/ReleaseDlg.cpp cinesuite/cineplay-cinecode/trunk/src/ReleaseDlg.h cinesuite/cineplay-cinecode/trunk/src/RemoveFavouriteDlg.h cinesuite/cineplay-cinecode/trunk/src/SetupDefs.h cinesuite/cineplay-cinecode/trunk/src/SkinDlg.h cinesuite/cineplay-cinecode/trunk/src/Theme.cpp cinesuite/cineplay-cinecode/trunk/src/Theme.h cinesuite/cineplay-cinecode/trunk/src/TrayDlg.cpp cinesuite/cineplay-cinecode/trunk/src/TrayDlg.h cinesuite/cineplay-cinecode/trunk/src/TrayEntryWidget.h cinesuite/cineplay-cinecode/trunk/src/Utils.cpp cinesuite/cineplay-cinecode/trunk/src/Utils.h cinesuite/cineplay-cinecode/trunk/src/Version.h cinesuite/cineplay-cinecode/trunk/src/licence.preamble cinesuite/cineplay-cinecode/trunk/src/pinfo.cpp cinesuite/cineplay-cinecode/trunk/src/pinfo.h Modified: cinesuite/cineplay-cinecode/trunk/src/AddFavouriteDlg.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/AddFavouriteDlg.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/AddFavouriteDlg.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef ADDFAVOURITEDLG_H Modified: cinesuite/cineplay-cinecode/trunk/src/Browser.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Browser.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Browser.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "Browser.h" Modified: cinesuite/cineplay-cinecode/trunk/src/Browser.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Browser.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Browser.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #pragma once Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #if defined(_WIN32) # import <msxml4.dll> Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef CINEPLAY_CINEPLAY_H Modified: cinesuite/cineplay-cinecode/trunk/src/Command.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Command.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Command.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef CINEPLAY_COMMAND_H Modified: cinesuite/cineplay-cinecode/trunk/src/Download.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Download.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Download.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "Download.h" Modified: cinesuite/cineplay-cinecode/trunk/src/Download.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Download.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Download.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #pragma once Modified: cinesuite/cineplay-cinecode/trunk/src/EncodeJob.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/EncodeJob.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/EncodeJob.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef CINEPLAY_ENCODE_JOB_H Modified: cinesuite/cineplay-cinecode/trunk/src/FilterGraph.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/FilterGraph.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/FilterGraph.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "FilterGraph.h" Modified: cinesuite/cineplay-cinecode/trunk/src/Info.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Info.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Info.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "Info.h" Modified: cinesuite/cineplay-cinecode/trunk/src/Info.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Info.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Info.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #pragma once Modified: cinesuite/cineplay-cinecode/trunk/src/Jah.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Jah.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Jah.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef JAH_H Modified: cinesuite/cineplay-cinecode/trunk/src/OpenGLStore.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/OpenGLStore.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/OpenGLStore.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "OpenGLStore.h" Modified: cinesuite/cineplay-cinecode/trunk/src/OpenGLStore.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/OpenGLStore.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/OpenGLStore.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef OPENGL_STORE_H Modified: cinesuite/cineplay-cinecode/trunk/src/PlayList.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/PlayList.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/PlayList.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -16,8 +16,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "PlayList.h" #include "SetupDefs.h" Modified: cinesuite/cineplay-cinecode/trunk/src/PlayList.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/PlayList.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/PlayList.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef CINEPLAY_PLAYLIST_H Modified: cinesuite/cineplay-cinecode/trunk/src/Player.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Player.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Player.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "Player.h" Modified: cinesuite/cineplay-cinecode/trunk/src/Player.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Player.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Player.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef CINEPLAY_PLAYER_H Modified: cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "PlayerDelegate.h" #include "CinePlay.h" Modified: cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef CINEPLAY_PLAYERDELEGATE_H Modified: cinesuite/cineplay-cinecode/trunk/src/Release.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Release.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Release.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "Release.h" Modified: cinesuite/cineplay-cinecode/trunk/src/Release.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Release.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Release.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef __RELEASE_H__ Modified: cinesuite/cineplay-cinecode/trunk/src/ReleaseDlg.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/ReleaseDlg.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/ReleaseDlg.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "ReleaseDlg.h" #include "SkinDlg.h" Modified: cinesuite/cineplay-cinecode/trunk/src/ReleaseDlg.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/ReleaseDlg.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/ReleaseDlg.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef __RELEASEDLG_H__ Modified: cinesuite/cineplay-cinecode/trunk/src/RemoveFavouriteDlg.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/RemoveFavouriteDlg.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/RemoveFavouriteDlg.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef REMOVEFAVOURITEDLG_H Modified: cinesuite/cineplay-cinecode/trunk/src/SetupDefs.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/SetupDefs.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/SetupDefs.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef CINEPLAY_SETUPDEFS_H Modified: cinesuite/cineplay-cinecode/trunk/src/SkinDlg.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/SkinDlg.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/SkinDlg.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef SKINDLG_H Modified: cinesuite/cineplay-cinecode/trunk/src/Theme.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Theme.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Theme.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include <qpushbutton.h> Modified: cinesuite/cineplay-cinecode/trunk/src/Theme.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Theme.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Theme.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef CINEPLAY_THEME_H Modified: cinesuite/cineplay-cinecode/trunk/src/TrayDlg.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/TrayDlg.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/TrayDlg.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "TrayDlg.h" #include "Utils.h" Modified: cinesuite/cineplay-cinecode/trunk/src/TrayDlg.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/TrayDlg.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/TrayDlg.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef TRAYDLG_H Modified: cinesuite/cineplay-cinecode/trunk/src/TrayEntryWidget.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/TrayEntryWidget.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/TrayEntryWidget.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef TRAYENTRY_WIDGET_H Modified: cinesuite/cineplay-cinecode/trunk/src/Utils.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Utils.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Utils.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "Utils.h" Modified: cinesuite/cineplay-cinecode/trunk/src/Utils.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Utils.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Utils.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef CINEPLAY_UTILS_H Modified: cinesuite/cineplay-cinecode/trunk/src/Version.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Version.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/Version.h 2008-01-24 13:51:15 UTC (rev 29) @@ -15,8 +15,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #if !defined(PROD_CLASS) # define PROD_CLASS "Cine" Modified: cinesuite/cineplay-cinecode/trunk/src/licence.preamble =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/licence.preamble 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/licence.preamble 2008-01-24 13:51:15 UTC (rev 29) @@ -15,5 +15,5 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com Modified: cinesuite/cineplay-cinecode/trunk/src/pinfo.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/pinfo.cpp 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/pinfo.cpp 2008-01-24 13:51:15 UTC (rev 29) @@ -1,5 +1,5 @@ -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #include "pinfo.h" Modified: cinesuite/cineplay-cinecode/trunk/src/pinfo.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/pinfo.h 2008-01-04 09:50:52 UTC (rev 28) +++ cinesuite/cineplay-cinecode/trunk/src/pinfo.h 2008-01-24 13:51:15 UTC (rev 29) @@ -1,5 +1,5 @@ -// Copyright (C) 2006 VM Inc. -// For more information, see http://www.vmfx.com +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com #ifndef PINFO_H #define PINFO_H This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-01-25 15:56:23
|
Revision: 30 http://editopia.svn.sourceforge.net/editopia/?rev=30&view=rev Author: timdewhirst Date: 2008-01-25 07:56:04 -0800 (Fri, 25 Jan 2008) Log Message: ----------- audiotube - change name in help and about Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/UI/about/about.htm cinesuite/cineplay-cinecode/trunk/src/UI/about/about_cinecode.htm cinesuite/cineplay-cinecode/trunk/src/help/help.html cinesuite/cineplay-cinecode/trunk/src/help/help_cinecode.html Modified: cinesuite/cineplay-cinecode/trunk/src/UI/about/about.htm =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/UI/about/about.htm 2008-01-24 13:51:15 UTC (rev 29) +++ cinesuite/cineplay-cinecode/trunk/src/UI/about/about.htm 2008-01-25 15:56:04 UTC (rev 30) @@ -22,9 +22,9 @@ </div> <div style="font-family:arial; font-size:13px; padding-left:12px;"> -Copyright (c) 2005-2007 <br /> +Copyright (c) 2008 <br /> All rights reserved.<br /> -www.editopia.com +www.audiotube.com </div> <div style="font-family:arial; font-size:13px; padding-top:20px; padding-left:12px;"> Modified: cinesuite/cineplay-cinecode/trunk/src/UI/about/about_cinecode.htm =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/UI/about/about_cinecode.htm 2008-01-24 13:51:15 UTC (rev 29) +++ cinesuite/cineplay-cinecode/trunk/src/UI/about/about_cinecode.htm 2008-01-25 15:56:04 UTC (rev 30) @@ -24,7 +24,7 @@ <div style="font-family:arial; font-size:13px; padding-left:12px;"> Copyright (c) 2005-2007 <br /> All rights reserved.<br /> -www.editopia.com +www.audiotube.com </div> <div style="font-family:arial; font-size:13px; padding-top:20px; padding-left:12px;"> Modified: cinesuite/cineplay-cinecode/trunk/src/help/help.html =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/help/help.html 2008-01-24 13:51:15 UTC (rev 29) +++ cinesuite/cineplay-cinecode/trunk/src/help/help.html 2008-01-25 15:56:04 UTC (rev 30) @@ -110,7 +110,7 @@ <ul> <li>help - opens the help page with the CinePlay user manual</li> <li>check for release - opens the CinePlay updates web page to check for updates</li> - <li>website - opens the Editopia web page</li> + <li>website - opens the Audiotube web page</li> <li>about - opens a dialog box about CinePlay and the version of the program</li> </ul> </ul> Modified: cinesuite/cineplay-cinecode/trunk/src/help/help_cinecode.html =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/help/help_cinecode.html 2008-01-24 13:51:15 UTC (rev 29) +++ cinesuite/cineplay-cinecode/trunk/src/help/help_cinecode.html 2008-01-25 15:56:04 UTC (rev 30) @@ -119,7 +119,7 @@ <ul> <li>help - opens the help page with the CineCode user manual</li> <li>check for release - opens the CineCode updates web page to check for updates</li> - <li>website - opens the Editopia web page</li> + <li>website - opens the Audiotube web page</li> <li>about - opens a dialog box about CineCode and the version of the program</li> </ul> </ul> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-01-25 15:57:47
|
Revision: 32 http://editopia.svn.sourceforge.net/editopia/?rev=32&view=rev Author: timdewhirst Date: 2008-01-25 07:57:36 -0800 (Fri, 25 Jan 2008) Log Message: ----------- audiotube - fixup checking for updates (-> updates.audiotube.com) - cleanup - remove an unnecessary mutex Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/Release.cpp cinesuite/cineplay-cinecode/trunk/src/Release.h Modified: cinesuite/cineplay-cinecode/trunk/src/Release.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Release.cpp 2008-01-25 15:56:50 UTC (rev 31) +++ cinesuite/cineplay-cinecode/trunk/src/Release.cpp 2008-01-25 15:57:36 UTC (rev 32) @@ -54,10 +54,10 @@ { version = ver.latin1(); #ifdef BUILD_CINECODE - QString url( "http://updates.editopia.com/cineplay/cinecode.txt" ); + QString url( "http://updates.audiotube.com/cineplay/cinecode.txt" ); QString str = "cinecode.txt"; #else - QString url( "http://updates.editopia.com/cineplay/cineplay.txt" ); + QString url( "http://updates.audiotube.com/cineplay/cineplay.txt" ); QString str = "cineplay.txt"; #endif @@ -73,9 +73,6 @@ void Release::getVersion() { - QMutex mutex; - mutex.lock(); - if ( !f.open( IO_ReadWrite | IO_Raw ) ) { qWarning( "Release::getVersion: failed to open file" ); @@ -99,7 +96,6 @@ else upflag = 0; } - mutex.unlock(); } void Release::checkRelease( const QString& ver ) Modified: cinesuite/cineplay-cinecode/trunk/src/Release.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Release.h 2008-01-25 15:56:50 UTC (rev 31) +++ cinesuite/cineplay-cinecode/trunk/src/Release.h 2008-01-25 15:57:36 UTC (rev 32) @@ -19,8 +19,7 @@ // For more information, see http://www.audiotube.com -#ifndef __RELEASE_H__ -#define __RELEASE_H__ +#pragma once // qt #include <qobject.h> @@ -34,7 +33,7 @@ #include <qfileinfo.h> #include <qdir.h> -#include "Version.h" +#include "Version.h" class QString; class QUrl; @@ -50,7 +49,7 @@ bool upflag; Release() - { + { connect( &op, SIGNAL( data( const QByteArray&, QNetworkOperation* ) ), this, SLOT( onFile( const QByteArray&, QNetworkOperation* ) ) ); connect( &op, SIGNAL( dataTransferProgress( int, int, QNetworkOperation* ) ), @@ -80,5 +79,3 @@ void getVersion(); }; - -#endif //__RELEASE_H__ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-02-01 17:38:00
|
Revision: 38 http://editopia.svn.sourceforge.net/editopia/?rev=38&view=rev Author: timdewhirst Date: 2008-02-01 09:37:52 -0800 (Fri, 01 Feb 2008) Log Message: ----------- audiotube - change images to be cinefx Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/UI/about/about.htm cinesuite/cineplay-cinecode/trunk/src/UI/about/about_cinecode.htm cinesuite/cineplay-cinecode/trunk/src/help/images/end.png cinesuite/cineplay-cinecode/trunk/src/help/images/end_cinecode.png Added Paths: ----------- cinesuite/cineplay-cinecode/trunk/src/UI/about/images/cinefx.png Removed Paths: ------------- cinesuite/cineplay-cinecode/trunk/src/UI/about/images/Editopia.png Modified: cinesuite/cineplay-cinecode/trunk/src/UI/about/about.htm =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/UI/about/about.htm 2008-02-01 17:37:03 UTC (rev 37) +++ cinesuite/cineplay-cinecode/trunk/src/UI/about/about.htm 2008-02-01 17:37:52 UTC (rev 38) @@ -18,7 +18,7 @@ </div> <div style="padding-left:12px;"> -<img src="images/editopia.png" /> +<img src="images/cinefx.png" /> </div> <div style="font-family:arial; font-size:13px; padding-left:12px;"> Modified: cinesuite/cineplay-cinecode/trunk/src/UI/about/about_cinecode.htm =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/UI/about/about_cinecode.htm 2008-02-01 17:37:03 UTC (rev 37) +++ cinesuite/cineplay-cinecode/trunk/src/UI/about/about_cinecode.htm 2008-02-01 17:37:52 UTC (rev 38) @@ -18,7 +18,7 @@ </div> <div style="padding-left:12px;"> -<img src="images/editopia.png" /> +<img src="images/cinefx.png" /> </div> <div style="font-family:arial; font-size:13px; padding-left:12px;"> Deleted: cinesuite/cineplay-cinecode/trunk/src/UI/about/images/Editopia.png =================================================================== (Binary files differ) Added: cinesuite/cineplay-cinecode/trunk/src/UI/about/images/cinefx.png =================================================================== (Binary files differ) Property changes on: cinesuite/cineplay-cinecode/trunk/src/UI/about/images/cinefx.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: cinesuite/cineplay-cinecode/trunk/src/help/images/end.png =================================================================== (Binary files differ) Modified: cinesuite/cineplay-cinecode/trunk/src/help/images/end_cinecode.png =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-02-01 17:39:39
|
Revision: 39 http://editopia.svn.sourceforge.net/editopia/?rev=39&view=rev Author: timdewhirst Date: 2008-02-01 09:39:35 -0800 (Fri, 01 Feb 2008) Log Message: ----------- audiotube - set widgets/ as an external to jahwidgets/src/qt3/widgets - use only the widgets we need Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp cinesuite/cineplay-cinecode/trunk/src/Jah.h cinesuite/cineplay-cinecode/trunk/src/jah.pri Property Changed: ---------------- cinesuite/cineplay-cinecode/trunk/src/ Property changes on: cinesuite/cineplay-cinecode/trunk/src ___________________________________________________________________ Name: svn:externals + widgets https://jahshaka.svn.sourceforge.net/svnroot/jahshaka/trunk/jahwidgets/src/qt3/widgets Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-02-01 17:37:52 UTC (rev 38) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-02-01 17:39:35 UTC (rev 39) @@ -400,26 +400,26 @@ { m_storeAsWidget = 0; - if( storeTypeVideo == "opengl" ) - { - jw::opengl_store *store = new jw::opengl_store(storePlace); - m_jwStore = store; - m_storeAsWidget = store; - m_handlePush = true; - } - else if( storeTypeVideo == "opengl2" ) - { - GLStore *store = new GLStore(storePlace); - if(store->IsBasicCapable()) - { - m_jwStore = store; - m_storeAsWidget = store; - m_handlePush = true; - convertFormat = L"b8g8r8a8"; - } - else - delete store; - } +// if( storeTypeVideo == "opengl" ) +// { +// jw::opengl_store *store = new jw::opengl_store(storePlace); +// m_jwStore = store; +// m_storeAsWidget = store; +// m_handlePush = true; +// } +// else if( storeTypeVideo == "opengl2" ) +// { +// GLStore *store = new GLStore(storePlace); +// if(store->IsBasicCapable()) +// { +// m_jwStore = store; +// m_storeAsWidget = store; +// m_handlePush = true; +// convertFormat = L"b8g8r8a8"; +// } +// else +// delete store; +// } if(m_storeAsWidget == 0) //default to sdl { Modified: cinesuite/cineplay-cinecode/trunk/src/Jah.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Jah.h 2008-02-01 17:37:52 UTC (rev 38) +++ cinesuite/cineplay-cinecode/trunk/src/Jah.h 2008-02-01 17:39:35 UTC (rev 39) @@ -26,17 +26,11 @@ #include <openpluginlib/pl/timer.hpp> #include <openmedialib/ml/openmedialib_plugin.hpp> - -//#include "wrapper.hpp" -//#include "widgetFactory.h" -#include "sdl_store.hpp" -#include "opengl_store.hpp" #include "scrollview.hpp" #include "pushbutton.h" +#include "widget_store.hpp" +#include "sdl_store.hpp" - - - namespace jw = jahwidgets::qt3; namespace ml = olib::openmedialib::ml; namespace il = olib::openimagelib::il; Modified: cinesuite/cineplay-cinecode/trunk/src/jah.pri =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/jah.pri 2008-02-01 17:37:52 UTC (rev 38) +++ cinesuite/cineplay-cinecode/trunk/src/jah.pri 2008-02-01 17:39:35 UTC (rev 39) @@ -1,2 +1,23 @@ -INCLUDEPATH += $$(JAH_DEVEL_ROOT)/jahwidgets/src/qt3/widgets -LIBS += -L$$(JAH_DEVEL_ROOT)/jahwidgets/src/qt3/widgets -lwidgets + +VPATH += widgets +INCLUDEPATH += widgets + +HEADERS += \ + pushbutton.h \ + timelineSlider.h \ + slider.h \ + label.h \ + progress.h \ + scrollview.hpp \ + widget_store.hpp \ + sdl_store.hpp \ + valueFormatters.h + +SOURCES += \ + pushbutton.cpp \ + timelineSlider.cpp \ + slider.cpp \ + sdl_store.cpp \ + valueFormatters.cpp + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-02-18 18:23:01
|
Revision: 48 http://editopia.svn.sourceforge.net/editopia/?rev=48&view=rev Author: timdewhirst Date: 2008-02-18 10:22:50 -0800 (Mon, 18 Feb 2008) Log Message: ----------- audiotube - reinstating opengl playout from olibs; WIP; build is broken Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp cinesuite/cineplay-cinecode/trunk/src/Jah.h cinesuite/cineplay-cinecode/trunk/src/jah.pri Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-02-18 18:18:22 UTC (rev 47) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-02-18 18:22:50 UTC (rev 48) @@ -146,7 +146,8 @@ pl::init(dir_list); #else - pl::init( appDir.latin1() ); + // pl::init( appDir.latin1() ); + pl::init(); #endif //Q_OS_MACX //general main window setup @@ -400,29 +401,33 @@ { m_storeAsWidget = 0; -// if( storeTypeVideo == "opengl" ) -// { -// jw::opengl_store *store = new jw::opengl_store(storePlace); -// m_jwStore = store; -// m_storeAsWidget = store; -// m_handlePush = true; -// } -// else if( storeTypeVideo == "opengl2" ) -// { -// GLStore *store = new GLStore(storePlace); -// if(store->IsBasicCapable()) -// { -// m_jwStore = store; -// m_storeAsWidget = store; -// m_handlePush = true; -// convertFormat = L"b8g8r8a8"; -// } -// else -// delete store; -// } + if( storeTypeVideo == "opengl" ) + { + jw::opengl_store *store = new jw::opengl_store(storePlace); + m_jwStore = store; + m_storeAsWidget = store; + m_handlePush = true; + } + else if( storeTypeVideo == "opengl2" ) + { + GLStore *store = new GLStore(storePlace); + if(store->IsBasicCapable()) + { + m_jwStore = store; + m_storeAsWidget = store; + m_handlePush = true; + convertFormat = L"b8g8r8a8"; + } + else + { + qWarning( "failed to create OpenGL2 store; IsBasicCapable() is false" ); + delete store; + } + } if(m_storeAsWidget == 0) //default to sdl { + qDebug( "CppAppWidget::SetupStores: creating an SDL store for video" ); jw::sdl_store *store = new jw::sdl_store(storePlace); m_jwStore = store; m_storeAsWidget = store; @@ -442,16 +447,14 @@ { if( storeTypeAudio == "openal" ) { + qDebug( "CppAppWidget::SetupStores: creating an openal store" ); m_audioStore = ml::create_store("openal:", ml::frame_type_ptr() ); } else //default: sdl { + qDebug( "CppAppWidget::SetupStores: creating an SDL store for audio" ); m_audioStore = ml::create_store("sdl_audio:", ml::frame_type_ptr() ); } - - //M> - //if(m_audioStore == 0) - // return false; } if( m_videoStore->init() == false) Modified: cinesuite/cineplay-cinecode/trunk/src/Jah.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Jah.h 2008-02-18 18:18:22 UTC (rev 47) +++ cinesuite/cineplay-cinecode/trunk/src/Jah.h 2008-02-18 18:22:50 UTC (rev 48) @@ -30,6 +30,7 @@ #include "pushbutton.h" #include "widget_store.hpp" #include "sdl_store.hpp" +#include "opengl_store.hpp" namespace jw = jahwidgets::qt3; namespace ml = olib::openmedialib::ml; Modified: cinesuite/cineplay-cinecode/trunk/src/jah.pri =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/jah.pri 2008-02-18 18:18:22 UTC (rev 47) +++ cinesuite/cineplay-cinecode/trunk/src/jah.pri 2008-02-18 18:22:50 UTC (rev 48) @@ -11,6 +11,8 @@ scrollview.hpp \ widget_store.hpp \ sdl_store.hpp \ + opengl_store.hpp \ + shader_state.h \ valueFormatters.h SOURCES += \ @@ -18,6 +20,8 @@ timelineSlider.cpp \ slider.cpp \ sdl_store.cpp \ + opengl_store.cpp \ + shader_state.cpp \ valueFormatters.cpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-02-18 23:35:27
|
Revision: 49 http://editopia.svn.sourceforge.net/editopia/?rev=49&view=rev Author: timdewhirst Date: 2008-02-18 15:35:23 -0800 (Mon, 18 Feb 2008) Log Message: ----------- cineplay - fix build; re-enable "original" opengl - sore feet Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/jah.pri cinesuite/cineplay-cinecode/trunk/src/olibs.pri cinesuite/cineplay-cinecode/trunk/src/setenv Modified: cinesuite/cineplay-cinecode/trunk/src/jah.pri =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/jah.pri 2008-02-18 18:22:50 UTC (rev 48) +++ cinesuite/cineplay-cinecode/trunk/src/jah.pri 2008-02-18 23:35:23 UTC (rev 49) @@ -11,8 +11,6 @@ scrollview.hpp \ widget_store.hpp \ sdl_store.hpp \ - opengl_store.hpp \ - shader_state.h \ valueFormatters.h SOURCES += \ @@ -20,8 +18,20 @@ timelineSlider.cpp \ slider.cpp \ sdl_store.cpp \ - opengl_store.cpp \ - shader_state.cpp \ valueFormatters.cpp +# original OpenGL support +HEADERS += \ + opengl_store.hpp \ + shader_state.h \ + histogram.h \ + media.h \ + mediaPtr.h + +SOURCES += \ + opengl_store.cpp \ + shader_state.cpp \ + histogram.cpp \ + media.cpp \ + mediaPtr.cpp Modified: cinesuite/cineplay-cinecode/trunk/src/olibs.pri =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/olibs.pri 2008-02-18 18:22:50 UTC (rev 48) +++ cinesuite/cineplay-cinecode/trunk/src/olibs.pri 2008-02-18 23:35:23 UTC (rev 49) @@ -16,6 +16,7 @@ # For now add any link flags from the environment LIBS += $(LDFLAGS) + DEFINES += HAVE_CONFIG_H } # OPL auto links, but we need to give the path. NB requires quotes. Modified: cinesuite/cineplay-cinecode/trunk/src/setenv =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/setenv 2008-02-18 18:22:50 UTC (rev 48) +++ cinesuite/cineplay-cinecode/trunk/src/setenv 2008-02-18 23:35:23 UTC (rev 49) @@ -6,6 +6,7 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OPENLIBDIR/openimagelib/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OPENLIBDIR/openmedialib/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OPENLIBDIR/openpluginlib/lib +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OPENLIBDIR/openobjectlib/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-02-27 12:14:26
|
Revision: 53 http://editopia.svn.sourceforge.net/editopia/?rev=53&view=rev Author: timdewhirst Date: 2008-02-27 04:14:21 -0800 (Wed, 27 Feb 2008) Log Message: ----------- cineplay/cinecode - start of refactoring; separation of cineplay & cinecode Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp cinesuite/cineplay-cinecode/trunk/src/CinePlay.h cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.cpp cinesuite/cineplay-cinecode/trunk/src/Utils.cpp cinesuite/cineplay-cinecode/trunk/src/Utils.h cinesuite/cineplay-cinecode/trunk/src/cinecode.pro cinesuite/cineplay-cinecode/trunk/src/cineplay.pro Added Paths: ----------- cinesuite/cineplay-cinecode/trunk/src/Common.cpp cinesuite/cineplay-cinecode/trunk/src/Common.h Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-02-21 12:31:39 UTC (rev 52) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-02-27 12:14:21 UTC (rev 53) @@ -18,14 +18,6 @@ // Copyright (C) 2008 Audiotube Ltd. // For more information, see http://www.audiotube.com -#if defined(_WIN32) -# import <msxml4.dll> -# pragma warning( push ) -# pragma warning( disable : 4290 ) -# include <atlbase.h> -# pragma warning( pop ) -#endif - // local #include "CinePlay.h" #include "Theme.h" @@ -41,6 +33,7 @@ #include "AddFavouriteDlg.h" #include "RemoveFavouriteDlg.h" #include "OpenGLStore.h" +#include "Utils.h" #include "windows/main.h" #include "windows/toolbar.h" #include "windows/about.h" @@ -48,13 +41,8 @@ #include "windows/removefav.h" #include "windows/styledlg.h" - -#ifdef BUILD_CINECODE -#include "windows/tray.h" -#endif - - // qt +#include <qapplication.h> #include <qcursor.h> #include <qfiledialog.h> #include <qstylefactory.h> @@ -156,59 +144,51 @@ //Look for all our widgets and stuff QWidget *mainWidget = new main(this, "main"); - AddWidgetToParentLayout(this, mainWidget); + CineUtils::AddWidgetToParentLayout(this, mainWidget); setCaption(SETTINGS_APPTITLE); - QWidget *ht = FindWidget(WIDGET_TOOLBARPLACE, mainWidget ); + QWidget *ht = CineUtils::FindWidget(WIDGET_TOOLBARPLACE, mainWidget ); QWidget *h2 = new toolbar( ht ); - AddWidgetToParentLayout( ht, h2 ); + CineUtils::AddWidgetToParentLayout( ht, h2 ); - ConnectButtonTo(mainWidget, WIDGET_MINIMISE, SLOT(showMinimized()) ); - ConnectButtonTo(mainWidget, WIDGET_MAXIMISE, SLOT(toggleMaximized()) ); - ConnectButtonTo(mainWidget, WIDGET_CLOSE, SLOT(close()) ); + CineUtils::ConnectButtonTo(mainWidget, WIDGET_MINIMISE, this, SLOT(showMinimized()) ); + CineUtils::ConnectButtonTo(mainWidget, WIDGET_MAXIMISE, this, SLOT(toggleMaximized()) ); + CineUtils::ConnectButtonTo(mainWidget, WIDGET_CLOSE, this, SLOT(close()) ); - m_playButton = ConnectButtonTo(h2, WIDGET_PLAY, SLOT(onPlay())); - ConnectButtonTo(h2, WIDGET_STEPBACK, SLOT(onStepBack())); - ConnectButtonTo(h2, WIDGET_STEPFWD, SLOT(onStepFwd())); + m_playButton = CineUtils::ConnectButtonTo(h2, WIDGET_PLAY, this, SLOT(onPlay())); + CineUtils::ConnectButtonTo(h2, WIDGET_STEPBACK, this, SLOT(onStepBack())); + CineUtils::ConnectButtonTo(h2, WIDGET_STEPFWD, this, SLOT(onStepFwd())); - ConnectButtonTo(h2, WIDGET_GOSTART, SLOT(onStart())); - ConnectButtonTo(h2, WIDGET_GOEND, SLOT(onEnd())); + CineUtils::ConnectButtonTo(h2, WIDGET_GOSTART, this, SLOT(onStart())); + CineUtils::ConnectButtonTo(h2, WIDGET_GOEND, this, SLOT(onEnd())); - m_hTitlebar = FindWidget(WIDGET_TITLEBAR, mainWidget); -#ifdef BUILD_CINECODE - m_hTitlebar->setProperty("enableInOutControls", true); -#else + m_hTitlebar = CineUtils::FindWidget(WIDGET_TITLEBAR, mainWidget); m_hTitlebar->setProperty("enableInOutControls", false); -#endif + //setup the jahwidgets::qt3::TimelineSlider - m_timeSlider = FindWidget( WIDGET_TIMESLIDER, h2 ); + m_timeSlider = CineUtils::FindWidget( WIDGET_TIMESLIDER, h2 ); if(m_timeSlider) { m_timeSlider->setProperty("maximum", QVariant(100000)); m_timeSliderMin = m_timeSlider->property("minimum").toInt(); m_timeSliderMax = m_timeSlider->property("maximum").toInt(); - -#ifdef BUILD_CINECODE - m_timeSlider->setProperty("enableInOutControls", true); -#else m_timeSlider->setProperty("enableInOutControls", false); -#endif } - ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(sliderPressed()), SLOT(timeSliderPressed())); - ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(sliderReleased()), SLOT(timeSliderReleased())); - ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(sliderMoved(int)), SLOT(timeSliderMoved(int))); - ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(valueChanged(int)), SLOT(timeValueChanged(int))); - ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(activeInValueChanged(int)), SLOT(timeInValueChanged(int))); - ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(activeOutValueChanged(int)), SLOT(timeOutValueChanged(int))); - ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(minValueChanged(int)), SLOT(timeMinValueChanged(int))); - ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(maxValueChanged(int)), SLOT(timeMaxValueChanged(int))); - ConnectSignalTo(h2, WIDGET_VOLUMESLIDER, SIGNAL(valueChanged(int)), SLOT(volumeSliderMoved(int))); - ConnectSignalTo(h2, WIDGET_MUTE, SIGNAL(toggled( bool )), SLOT(muteToggled(bool))); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(sliderPressed()), this, SLOT(timeSliderPressed())); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(sliderReleased()), this, SLOT(timeSliderReleased())); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(sliderMoved(int)), this, SLOT(timeSliderMoved(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(valueChanged(int)), this, SLOT(timeValueChanged(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(activeInValueChanged(int)), this, SLOT(timeInValueChanged(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(activeOutValueChanged(int)), this, SLOT(timeOutValueChanged(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(minValueChanged(int)), this, SLOT(timeMinValueChanged(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(maxValueChanged(int)), this, SLOT(timeMaxValueChanged(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_VOLUMESLIDER, SIGNAL(valueChanged(int)), this, SLOT(volumeSliderMoved(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_MUTE, SIGNAL(toggled( bool )), this, SLOT(muteToggled(bool))); // setup the menu - QWidget* menubarPlaceholder = FindWidget( WIDGET_MENUBAR, mainWidget ); + QWidget* menubarPlaceholder = CineUtils::FindWidget( WIDGET_MENUBAR, mainWidget ); @@ -275,22 +255,7 @@ menubar->insertItem( tr( "&Window" ), m_windowMenu ); -#ifdef BUILD_CINECODE // help - QPopupMenu* encode = new QPopupMenu( menubar ); - encode->setPalette( menubarPlaceholder->palette() ); - encode->insertItem( tr( "&encode..." ), this, SLOT( onEncodeEncode() ) ); - encode->insertItem( tr( "&cancel all" ), this, SLOT( onEncodeCancelAll() ) ); - //encode->insertItem( tr( "o&ptions..." ), this, SLOT( onEncodeOptions() ) ); - encode->insertItem( tr( "set &in point" ), this, SLOT( onSetInPoint() ) ); - encode->insertItem( tr( "set &out point" ), this, SLOT( onSetOutPoint() ) ); - encode->insertItem( tr( "&reset in/out points" ), this, SLOT( onResetInOPutPoints() ) ); - m_encodeTrayItem = encode->insertItem( tr( "toggle encode &tray" ), this, SLOT( onEncodeTrayShow() ) ); - menubar->insertItem( "&Encode", encode ); -#endif - - - // help QPopupMenu* help = new QPopupMenu( menubar ); help->setPalette( menubarPlaceholder->palette() ); help->insertItem( tr( "&help" ), this, SLOT( onHelp() ) ); @@ -309,7 +274,7 @@ { QSettings settings; - m_volumeSlider = FindWidget( WIDGET_VOLUMESLIDER, h2 ); + m_volumeSlider = CineUtils::FindWidget( WIDGET_VOLUMESLIDER, h2 ); if(m_volumeSlider) { @@ -339,12 +304,12 @@ } -#ifdef BUILD_CINECODE +// #ifdef BUILD_CINECODE - //create the encode tray - m_encodeTray = new TrayDlg(this); +// //create the encode tray +// m_encodeTray = new TrayDlg(this); -#endif //BUILD_CINECODE +// #endif //BUILD_CINECODE show(); @@ -378,7 +343,7 @@ { //Setup the store object - QWidget *storePlace = FindWidget(WIDGET_STOREPLACE, this ); + QWidget *storePlace = CineUtils::FindWidget(WIDGET_STOREPLACE, this ); if(storePlace == 0) return false; @@ -393,7 +358,7 @@ storeTypeVideo = settings.readEntry(SETTINGS_VIDEOSTORETYPE, "opengl"); storeTypeAudio = settings.readEntry(SETTINGS_AUDIOSTORETYPE, "sdl"); #else - storeTypeVideo = settings.readEntry(SETTINGS_VIDEOSTORETYPE, "opengl2"); + storeTypeVideo = settings.readEntry(SETTINGS_VIDEOSTORETYPE, "opengl"); storeTypeAudio = settings.readEntry(SETTINGS_AUDIOSTORETYPE, "sdl"); #endif @@ -473,33 +438,7 @@ } - void CppAppWidget::AddWidgetToParentLayout( QWidget *parent, QWidget* w ) - { - if ( parent ) - { - if ( !parent->layout() ) - { - (void*)new QVBoxLayout( parent ); - } - parent->layout()->add( w ); - w->updateGeometry(); - } - } - - QWidget *CppAppWidget::FindWidget( const char* name, QWidget *parent ) - { - if(parent == 0) - return 0; - - std::auto_ptr< QObjectList > objList( parent->queryList( NULL, name, false /* no regexp */ ) ); - if ( objList->isEmpty() ) - return 0; - else - return dynamic_cast< QWidget* >( objList->first() ); - } - - //static QString CppAppWidget::MakeDefaultImageName() { @@ -551,9 +490,9 @@ else m_preFullScreenRect = QRect( pos(), sz ); -#ifdef BUILD_CINECODE - UpdateTrayPositions(); -#endif //BUILD_CINECODE +// #ifdef BUILD_CINECODE +// UpdateTrayPositions(); +// #endif //BUILD_CINECODE } @@ -623,78 +562,33 @@ case Qt::Key_F: toggleFullScreen(); break; - -#ifdef BUILD_CINECODE - case Key_I: - onSetInPoint(); - break; - case Key_O: - onSetOutPoint(); - break; - case Key_R: - onResetInOPutPoints(); - break; - case Key_T: - onEncodeTrayShow(); - break; -#endif //BUILD_CINECODE - } } - QWidget *CppAppWidget::ConnectSignalTo(QWidget *parent, const char *nm, const char *signal, const char *slot) - { - QWidget *ht = FindWidget(nm, parent); - if(ht) - { - bool succ = QObject::connect(ht, signal, this, slot ); - if(!succ) - { - qDebug( "Couldnt connect \"%s::%s\" to \"%s::%s\"!", nm, signal, name(), slot ); - } - } - - return ht; - } - - - QWidget *CppAppWidget::ConnectButtonTo(QWidget *parent, const char *nm, const char *slot) - { - return ConnectSignalTo(parent, nm, SIGNAL(clicked()), slot); - } - - void CppAppWidget::toggleMaximized() { if(isMaximized()) showNormal(); else { -#ifdef BUILD_CINECODE - HideEncodeTray(); -#endif //BUILD_CINECODE +// #ifdef BUILD_CINECODE +// HideEncodeTray(); +// #endif //BUILD_CINECODE showMaximized(); } } - void CppAppWidget::ShowWidget(QWidget *parent, const char *name, bool show) - { - QWidget *w = FindWidget( name, parent ); - if(w) - w->setShown(show); - } - void CppAppWidget::ShowBorderWidgets(bool show) { - ShowWidget(this, "titlebar", show); - ShowWidget(this, "titlebar_left", show); - ShowWidget(this, "titlebar_center", show); - ShowWidget(this, "titlebar_right", show); - ShowWidget(this, "frame16", show); - ShowWidget(this, "frame17", show); - ShowWidget(this, WIDGET_MENUBAR, show); - ShowWidget(this, WIDGET_TOOLBARPLACE, show); + CineUtils::ShowWidget(this, "titlebar", show); + CineUtils::ShowWidget(this, "titlebar_left", show); + CineUtils::ShowWidget(this, "titlebar_center", show); + CineUtils::ShowWidget(this, "titlebar_right", show); + CineUtils::ShowWidget(this, "frame16", show); + CineUtils::ShowWidget(this, "frame17", show); + CineUtils::ShowWidget(this, WIDGET_MENUBAR, show); + CineUtils::ShowWidget(this, WIDGET_TOOLBARPLACE, show); } void RecurseLayoutMode(QWidget *parent, QLayout::ResizeMode mode) @@ -720,9 +614,9 @@ } else { -#ifdef BUILD_CINECODE - HideEncodeTray(); -#endif //BUILD_CINECODE +// #ifdef BUILD_CINECODE +// HideEncodeTray(); +// #endif //BUILD_CINECODE m_preFullScreenRect = geometry(); @@ -745,17 +639,9 @@ void CppAppWidget::onHelp() { #ifdef Q_OS_MACX -#ifdef BUILD_CINECODE - openBrowserWindow( QUrl( QString( "file://%1/../Resources/help/help_cinecode.html" ).arg( qApp->applicationDirPath() ) ) ); -#else openBrowserWindow( QUrl( QString( "file://%1/../Resources/help/help.html" ).arg( qApp->applicationDirPath() ) ) ); -#endif //BUILD_CINECODE #else -#ifdef BUILD_CINECODE - openBrowserWindow( QUrl( QString( "file://%1/help/help_cinecode.html" ).arg( qApp->applicationDirPath() ) ) ); -#else openBrowserWindow( QUrl( QString( "file://%1/help/help.html" ).arg( qApp->applicationDirPath() ) ) ); -#endif //BUILD_CINECODE #endif //Q_OS_MACX } @@ -1164,62 +1050,6 @@ m_timeSliderBlock = false; } -#ifdef BUILD_CINECODE - - void CppAppWidget::onResetInOPutPoints() - { - - int min = m_timeSlider->property("minimum").toInt(); - int max = m_timeSlider->property("maximum").toInt(); - - m_ioPointBlock = true; - m_timeSlider->setProperty("activeInValue", QVariant(min) ); - m_ioPointBlock = true; - m_timeSlider->setProperty("activeOutValue", QVariant(max) ); - } - - void CppAppWidget::onSetInPoint() - { - int val = m_timeSlider->property("value").toInt(); - m_timeSlider->setProperty("activeInValue", QVariant(val) ); - } - - void CppAppWidget::onSetOutPoint() - { - int val = m_timeSlider->property("value").toInt(); - m_timeSlider->setProperty("activeOutValue", QVariant(val) ); - } - - - /* - void CppAppWidget::ClampSliderToInOutPoints() - { - //Why doesnt the widget do this! - - bool enabled = m_timeSlider->property("enableInOutControls").toBool(); - - if(enabled) - { - int firstVal = m_timeSlider->property("value").toInt(); - int val = firstVal; - - if(val < m_inPoint) - val = m_inPoint; - if(val > m_outPoint) - val = m_outPoint; - - if(val != firstVal) - { - m_timeSliderBlock = true; - //m_timeSlider->setProperty("tracking", QVariant(true)); - m_timeSlider->setProperty("value", QVariant(val)); - } - } - } - */ - -#endif //BUILD_CINECODE - void CppAppWidget::timeInValueChanged( int pt ) { m_inPoint = pt; @@ -1367,9 +1197,9 @@ QPoint clickDp = event->pos() - m_dragClickPos; move(nowPos + clickDp); -#ifdef BUILD_CINECODE - UpdateTrayPositions(); -#endif //BUILD_CINECODE +// #ifdef BUILD_CINECODE +// UpdateTrayPositions(); +// #endif //BUILD_CINECODE } else if(m_resizingApp) @@ -1389,16 +1219,16 @@ ClearSizeChecks(); -#ifdef BUILD_CINECODE - UpdateTrayPositions(); -#endif //BUILD_CINECODE +// #ifdef BUILD_CINECODE +// UpdateTrayPositions(); +// #endif //BUILD_CINECODE } else { if(m_fullScreen) { - QWidget *toolbar = FindWidget(WIDGET_TOOLBARPLACE, this); + QWidget *toolbar = CineUtils::FindWidget(WIDGET_TOOLBARPLACE, this); QRect r = rect(); int mouseY = event->pos().y(); @@ -1408,11 +1238,11 @@ if( mouseY > startHeight ) { m_playControlPopup = true; - ShowWidget(this, WIDGET_TOOLBARPLACE, true); + CineUtils::ShowWidget(this, WIDGET_TOOLBARPLACE, true); } else if( m_playControlPopup && (mouseY < stopHeight) ) { - ShowWidget(this, WIDGET_TOOLBARPLACE, false); + CineUtils::ShowWidget(this, WIDGET_TOOLBARPLACE, false); } } else @@ -1534,8 +1364,6 @@ if(le) { - onResetInOPutPoints(); - m_mediaSize = le->size(); SetVideoSize(m_mediaSize); m_player->play(); @@ -1590,246 +1418,9 @@ } } - - -#ifndef BUILD_CINECODE - - //these are stubbed out because Moc doesnt understand the #ifdef in CinePlay.h - void CppAppWidget::HideEncodeTray() {} - void CppAppWidget::ShowEncodeTray() {} - void CppAppWidget::onEncodeTrayShow() {} - void CppAppWidget::UpdateTrayPositions() {} - void CppAppWidget::onEncodeEncode() {} - void CppAppWidget::onEncodeCancelAll() {} - void CppAppWidget::onEncodeOptions() {} - void CppAppWidget::onResetInOPutPoints() {} - void CppAppWidget::onSetInPoint() {} - void CppAppWidget::onSetOutPoint() {} - -#else //BUILD_CINECODE - - void CppAppWidget::HideEncodeTray() - { - if(m_encodeTray->isShown()) - onEncodeTrayShow(); - } - - - void CppAppWidget::ShowEncodeTray() - { - if(!m_encodeTray->isShown()) - onEncodeTrayShow(); - } - - - void CppAppWidget::onEncodeTrayShow() - { - if(!isMaximized() && !m_fullScreen) - { - UpdateTrayPositions(); - - bool shown = m_encodeTray->isShown(); - shown = !shown; - - if(shown) - m_windowMenu->changeItem( m_encodeTrayItem, tr("hide encode &tray") ); - else - m_windowMenu->changeItem( m_encodeTrayItem, tr("show encode &tray") ); - - m_encodeTray->setShown(shown); - } - } - - - void CppAppWidget::UpdateTrayPositions() - { - int topBottomMargin = 15; - - //move the encode tray - QRect r = geometry(); - QRect rt = m_encodeTray->geometry(); - rt = QRect( r.right(), r.top() + topBottomMargin, rt.width(), r.height() - (2 * topBottomMargin) ); - m_encodeTray->setGeometry( rt ); - } - - void CppAppWidget::onEncodeEncode() - { - if(!m_lastFile.isEmpty()) - { - ShowEncodeTray(); - int start = SliderToFrame(m_inPoint); - int end = SliderToFrame(m_outPoint); - m_encodeTray->Encode( m_lastFile.ascii(), start, end ); - } - } - - void CppAppWidget::onEncodeCancelAll() - { - int ret = QMessageBox::warning(this, SETTINGS_APPTITLE, "Cancel All encode jobs. are you sure?", QMessageBox::Yes, QMessageBox::No); - - if(ret == QMessageBox::Yes) - { - m_encodeTray->CancelAll(); - } - } - - void CppAppWidget::onEncodeOptions() - { - } - -#endif //BUILD_CINECODE - - - } //namespace cineplay - - -#if defined(_WIN32) - - - -namespace -{ - bool registerCOMComponent(const char* filename) - { - HINSTANCE hLib = LoadLibraryExA(filename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); - if(hLib < (HINSTANCE)HINSTANCE_ERROR) - { - char msg[50]; - sprintf( msg, "ERROR: LoadLibraryExA returned %08lx\n", GetLastError() ); - OutputDebugStringA( msg ); - return false; - } - - __try - { - HRESULT (STDAPICALLTYPE * lpDllEntryPoint)(void); - (FARPROC&)lpDllEntryPoint = GetProcAddress(hLib, "DllRegisterServer"); - if(lpDllEntryPoint == NULL) - return false; - if( FAILED( (*lpDllEntryPoint)() ) ) - return false; - OutputDebugStringA( "File successfully registered\n" ); - return true; - } - __finally - { - FreeLibrary(hLib); - } - } - - bool unregisterCOMComponent(const char* filename) - { - HINSTANCE hLib = LoadLibraryExA(filename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); - if(hLib < (HINSTANCE)HINSTANCE_ERROR) - return false; - - __try - { - HRESULT (STDAPICALLTYPE * lpDllEntryPoint)(void); - (FARPROC&)lpDllEntryPoint = GetProcAddress(hLib, "DllUnregisterServer"); - if(lpDllEntryPoint == NULL) - return false; - if( FAILED( (*lpDllEntryPoint)() ) ) - return false; - OutputDebugStringA( "File successfully unregistered\n" ); - return true; - } - __finally - { - FreeLibrary(hLib); - } - } - - class MSXML4_Manager - { - public: - MSXML4_Manager(const pl::string& filepath); - ~MSXML4_Manager(); - - private: - bool isAvailable(); - - pl::string m_filepath; - bool m_registered; - }; - - MSXML4_Manager::MSXML4_Manager(const pl::string& filepath) - : m_registered(false) - { - m_filepath = filepath; - for(pl::string::iterator it = m_filepath.begin(); - it != m_filepath.end(); - it++) - { - if(*it == '/') - *it = '\\'; - } - - OutputDebugStringA(m_filepath.c_str()); - - if(!isAvailable()) - { - if(registerCOMComponent( m_filepath.c_str() ) ) - m_registered = true; - else - { - QMessageBox::warning(NULL, - SETTINGS_APPTITLE, - "MSXML4 is not installed.\nPlease install and try again.", - QMessageBox::Ok, - QMessageBox::NoButton, - QMessageBox::NoButton); - } - } - } - - MSXML4_Manager::~MSXML4_Manager() - { - if( m_registered - && !unregisterCOMComponent( m_filepath.c_str() ) ) - { - QMessageBox::warning(NULL, - SETTINGS_APPTITLE, - "Temporary file, \"msxml4.dll\" could not be unregistered.", - QMessageBox::Ok, - QMessageBox::NoButton, - QMessageBox::NoButton); - } - } - - bool MSXML4_Manager::isAvailable() - { - ::CoInitialize(0); - - bool available = false; - - try - { //Scope for smart pointer. Avoids problem when destruction occurs after CoUninitialize. - MSXML2::IXMLDOMDocument2Ptr pXMLDoc(__uuidof(MSXML2::DOMDocument40)); - if(pXMLDoc) - available = true; - } - catch(_com_error& e) - { - pl::string msg("COM Exception: "); - msg += CT2CA(e.ErrorMessage()); - msg += "\n"; - OutputDebugStringA( msg.c_str() ); - } - - ::CoUninitialize(); - - return available; - } -} - -#endif - - - int main( int argc, char **argv ) { QApplication::setColorSpec( QApplication::CustomColor ); @@ -1837,19 +1428,11 @@ qInitNetworkProtocols(); -#if defined(_WIN32) - QString appDir = a.applicationDirPath(); - pl::string full_path_to_msxml4( appDir.latin1() ); - full_path_to_msxml4 += "/msxml4.dll"; - MSXML4_Manager msxml4Handler(full_path_to_msxml4); -#endif - a.setStyle( new cineplay::Theme ); cineplay::CppAppWidget app; a.setMainWidget( &app ); - //app.show(); if(argc == 2) { Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-02-21 12:31:39 UTC (rev 52) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-02-27 12:14:21 UTC (rev 53) @@ -19,10 +19,8 @@ // For more information, see http://www.audiotube.com -#ifndef CINEPLAY_CINEPLAY_H -#define CINEPLAY_CINEPLAY_H +#pragma once -#include <qapplication.h> #include <qtimer.h> #include <qmutex.h> @@ -31,19 +29,12 @@ #include "PlayList.h" #include "Version.h" - class Download; class Info; class Release; class ReleaseDlg; -#ifdef BUILD_CINECODE -#include "TrayDlg.h" -#endif //BUILD_CINECODE - - - namespace cineplay { class PlayerCallbackDelegate; @@ -57,12 +48,12 @@ CppAppWidget( QWidget *parent=0, const char *name=0 ); ~CppAppWidget(); - bool LoadCmdLineInput(const char *fname); - bool HandlePush() { return m_handlePush; } - void FrameUpdate( const ml::frame_type_ptr &frame ); + bool LoadCmdLineInput(const char *fname); + bool HandlePush() { return m_handlePush; } + void FrameUpdate( const ml::frame_type_ptr &frame ); protected: - virtual void keyPressEvent( QKeyEvent* ); + virtual void keyPressEvent( QKeyEvent* ); protected slots: void toggleMaximized(); @@ -99,12 +90,6 @@ void onFavRemove(); void updateFavMenu(); void onShowMovieInfo(); - void onEncodeEncode(); - void onEncodeCancelAll(); - void onEncodeOptions(); - void onResetInOPutPoints(); - void onSetInPoint(); - void onSetOutPoint(); void timeSliderPressed(); void timeSliderReleased(); @@ -132,13 +117,12 @@ void customEvent(QCustomEvent* e); private: - bool SetupStores(); QWidget* ConnectSignalTo(QWidget *parent, const char *nm, const char *signal, const char *slot); QWidget* ConnectButtonTo(QWidget *parent, const char *name, const char *slot); void AddWidgetToParentLayout( QWidget *parent, QWidget* w ); QWidget* FindWidget( const char* name, QWidget *parent ); - void ShowWidget(QWidget *parent, const char *name, bool show); + void ShowWidget( QWidget *parent, const char *name, bool show ); void SimulatePlayClick(); static QString MakeDefaultImageName(); static bool IsDefaultImageName(const QString &str); @@ -233,18 +217,7 @@ #endif //BUILD_CINECODE - protected slots: - - void onEncodeTrayShow(); - void UpdateTrayPositions(); - void HideEncodeTray(); - void ShowEncodeTray(); - }; } //namespace cineplay - - -#endif //CINEPLAY_CINEPLAY_H - Added: cinesuite/cineplay-cinecode/trunk/src/Common.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.cpp (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-02-27 12:14:21 UTC (rev 53) @@ -0,0 +1,21 @@ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ + +// This file is part of Cineplay +// +// Cineplay is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Cineplay is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com + +#include "Common.h" Added: cinesuite/cineplay-cinecode/trunk/src/Common.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.h (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/Common.h 2008-02-27 12:14:21 UTC (rev 53) @@ -0,0 +1,234 @@ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ + +// This file is part of Cineplay +// +// Cineplay is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Cineplay is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com + +#pragma once + +// #include <qtimer.h> +// #include <qmutex.h> + +// #include "Jah.h" +// #include "Player.h" +// #include "PlayList.h" +// #include "Version.h" + +// class Download; +// class Info; +// class Release; +// class ReleaseDlg; + + +// namespace cineplay +// { +// class PlayerCallbackDelegate; + + +// class CppAppWidget : public QWidget +// { +// Q_OBJECT + +// public: +// CppAppWidget( QWidget *parent=0, const char *name=0 ); +// ~CppAppWidget(); + +// bool LoadCmdLineInput(const char *fname); +// bool HandlePush() { return m_handlePush; } +// void FrameUpdate( const ml::frame_type_ptr &frame ); + +// protected: +// virtual void keyPressEvent( QKeyEvent* ); + +// protected slots: +// void toggleMaximized(); +// void toggleFullScreen(); + +// void onPlay(); +// void onStepFwd(); +// void onStepBack(); +// void onLoad(); +// void onLoadUrl(); +// void onLoadSequence(); +// void onStart(); +// void onEnd(); +// void onClose(); +// void onSaveAs(); +// void onViewHalfSize(); +// void onViewNormalSize(); +// void onViewDoubleSize(); +// void onViewHideVideo(); +// void onViewLoop(); +// void onWindowInfo(); +// void onWindowFavourites(); +// void onWindowAddFav(); +// void onHelp(); +// void onAbout(); +// void onCheckVersion(); +// void checkVersionDone( const bool ); +// void onCheckRelease( const bool ); +// void checkReleaseDone( const bool, const bool ); +// void onGotoWebsite(); +// void onMruSelected(int); +// void onFavSelected(int); +// void onFavAdd(); +// void onFavRemove(); +// void updateFavMenu(); +// void onShowMovieInfo(); +// void onEncodeEncode(); +// void onEncodeCancelAll(); +// void onEncodeOptions(); +// void onResetInOPutPoints(); +// void onSetInPoint(); +// void onSetOutPoint(); + +// void timeSliderPressed(); +// void timeSliderReleased(); +// void timeSliderMoved( int ); +// void timeValueChanged( int ); +// void timeInValueChanged( int ); +// void timeOutValueChanged( int ); +// void timeMinValueChanged( int ); +// void timeMaxValueChanged( int ); + +// void volumeSliderMoved( int ); +// void muteToggled( bool ); + +// void UrlLoadDone( const QString& fname ); +// bool LoadInput( const QString& fname ); + +// void mousePressEvent(QMouseEvent *); +// void mouseReleaseEvent(QMouseEvent *); +// void mouseMoveEvent(QMouseEvent *); +// void mouseClickTimerEvent(); +// void mouseDoubleClickEvent(QMouseEvent *); +// void resizeEvent(QResizeEvent*); +// void dragEnterEvent(QDragEnterEvent *de); +// void dropEvent(QDropEvent *); +// void customEvent(QCustomEvent* e); + +// private: +// bool SetupStores(); +// void SimulatePlayClick(); +// static QString MakeDefaultImageName(); +// static bool IsDefaultImageName(const QString &str); +// bool IsResizePos(const QPoint &pt); +// bool LoadDefaultInput(); +// int SliderToFrame(int val); +// int FrameToSlider(int val); +// void UpdateSliderPos(int pos); +// void SetPlaybuttonState(bool on); +// void SetVideoSizeFromStore(float scale = 1.0f); +// void SetVideoSize(const QSize &size, float scale = 1.0f); +// void SetSizeCheck(int index, bool set); +// void ClearSizeChecks(); +// void BuildMruMenu(QPopupMenu *menu); +// void onLoad( bool isSequence ); +// QString GetLastPath(); +// void ShowBorderWidgets(bool show); + +// QWidget* m_hTitlebar; +// QWidget* m_hTitlelogo; +// QWidget* m_playButton; +// QWidget* m_timeSlider; +// QWidget* m_volumeSlider; +// int m_timeSliderMin; +// int m_timeSliderMax; +// bool m_timeSliderBlock; +// bool m_timeSliderPlayState; + +// bool m_draggingApp; +// bool m_resizingApp; +// bool m_resizingBlock; +// bool m_fullScreen; +// bool m_handlePush; +// bool m_playerRefresh; +// bool m_playControlPopup; + +// QPopupMenu* m_menuView; +// int m_menuViewHalfIndex; +// int m_menuViewNormalIndex; +// int m_menuViewDoubleIndex; +// int m_menuViewShowIndex; +// int m_menuViewLoopIndex; +// QPopupMenu* m_fileMenu; +// QPopupMenu* m_windowMenu; +// QPopupMenu* m_mruMenu; +// int m_mruItemRef; +// QPopupMenu* m_favMenu; +// int m_favItemRef; + +// QPoint m_dragClickPos; +// QSize m_dragAppSize; +// QSize m_mediaSize; +// CMruList m_mruList; +// CFavourites m_favList; +// QString m_lastFile; +// int m_lastFrame; +// QRect m_preFullScreenRect; +// QRect m_preHideScreenRect; + +// #if !defined(Q_OS_WIN32) && !defined(Q_OS_MACX) // Linux +// QTimer m_resizeTimer; +// #endif + +// jw::widget_store* m_jwStore; +// QWidget* m_storeAsWidget; +// ml::store_type_ptr m_videoStore; +// ml::store_type_ptr m_audioStore; + +// QMutex m_frameCacheMutex; +// ml::frame_type_ptr m_frameCache; + +// IPlayerPtr m_player; +// IPlayerCallbackPtr m_delegate; + +// Download* m_download; +// Info* m_info; +// bool m_ver_appload; +// Release* m_release; +// ReleaseDlg* m_release_dialog; +// int m_checkRelease; +// int m_inPoint; +// int m_outPoint; +// bool m_ioPointBlock; + + +// #ifdef BUILD_CINECODE + +// protected: + +// TrayDlg* m_encodeTray; +// int m_encodeTrayItem; + +// #endif //BUILD_CINECODE + +// protected slots: + +// void onEncodeTrayShow(); +// void UpdateTrayPositions(); +// void HideEncodeTray(); +// void ShowEncodeTray(); + +// }; + +// } //namespace cineplay + + + +// #endif //CINEPLAY_CINEPLAY_H + Modified: cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.cpp 2008-02-21 12:31:39 UTC (rev 52) +++ cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.cpp 2008-02-27 12:14:21 UTC (rev 53) @@ -21,6 +21,8 @@ #include "PlayerDelegate.h" #include "CinePlay.h" +// qt +#include <qapplication.h> namespace cineplay { Modified: cinesuite/cineplay-cinecode/trunk/src/Utils.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Utils.cpp 2008-02-21 12:31:39 UTC (rev 52) +++ cinesuite/cineplay-cinecode/trunk/src/Utils.cpp 2008-02-27 12:14:21 UTC (rev 53) @@ -20,10 +20,16 @@ #include "Utils.h" -#include "qdir.h" +// qt +#include <qdir.h> +#include <qlayout.h> +#include <qwidget.h> +#include <qobject.h> +#include <qobjectlist.h> +// std +#include <memory> - #ifdef Q_OS_WIN #include <Windows.h> @@ -55,7 +61,6 @@ return file; } - //static QString CineUtils::createStandardEncodeLocation() { @@ -66,7 +71,6 @@ return path; } - //static bool CineUtils::movefile(const QString &srcFile, const QString &dstLocation, bool dstIsFile /*= false*/) { @@ -87,7 +91,6 @@ } } - //static bool CineUtils::deletefile(const QString &file) { @@ -112,7 +115,6 @@ return tmp; } - //static QString CineUtils::createStandardEncodeLocation() { @@ -120,7 +122,6 @@ path += "/Desktop"; return path; } - //static bool CineUtils::movefile(const QString &srcFile, const QString &dstLocation, bool ) { @@ -137,9 +138,6 @@ #endif - - - //static QString CineUtils::makeUniqueDstFilename(const QString &start) { @@ -163,3 +161,59 @@ return dstFile; } + +void CineUtils::AddWidgetToParentLayout( QWidget* parent, QWidget* w ) +{ + if ( parent ) + { + if ( !parent->layout() ) + { + (void*)new QVBoxLayout( parent ); + } + parent->layout()->add( w ); + w->updateGeometry(); + } +} + + +QWidget* CineUtils::FindWidget( const char* name, QWidget* parent ) +{ + if(parent == 0) + return 0; + + std::auto_ptr< QObjectList > objList( parent->queryList( NULL, name, false /* no regexp */ ) ); + if ( objList->isEmpty() ) + return 0; + else + return dynamic_cast< QWidget* >( objList->first() ); +} + +QWidget* CineUtils::ConnectSignalTo( QWidget* parent, const char* nm, const char* signal, QObject* receiver, const char* slot ) +{ + QWidget *ht = FindWidget(nm, parent); + + if(ht) + { + bool succ = QObject::connect(ht, signal, receiver, slot ); + if(!succ) + { + qDebug( "Couldnt connect \"%s::%s\" to \"%s::%s\"!", nm, signal, receiver->name(), slot ); + } + } + + return ht; +} + + +QWidget* CineUtils::ConnectButtonTo( QWidget* parent, const char* nm, QObject* receiver, const char* slot ) +{ + return ConnectSignalTo( parent, nm, SIGNAL(clicked()), receiver, slot ); +} + +void CineUtils::ShowWidget( QWidget* parent, const char* name, bool show ) +{ + QWidget *w = FindWidget( name, parent ); + if(w) + w->setShown(show); +} + Modified: cinesuite/cineplay-cinecode/trunk/src/Utils.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Utils.h 2008-02-21 12:31:39 UTC (rev 52) +++ cinesuite/cineplay-cinecode/trunk/src/Utils.h 2008-02-27 12:14:21 UTC (rev 53) @@ -23,17 +23,27 @@ #define CINEPLAY_UTILS_H -#include "qstring.h" +#include <qstring.h> +class QWidget; +class QObject; class CineUtils { public: - static QString createTemporaryFilename(); - static QString createStandardEncodeLocation(); - static bool movefile(const QString &srcFile, const QString &dstLocation, bool dstIsFile = false); - static QString makeUniqueDstFilename(const QString &dstFile); - static bool deletefile(const QString &file); + /// file utilities + static QString createTemporaryFilename(); + static QString createStandardEncodeLocation(); + static bool movefile(const QString &srcFile, const QString &dstLocation, bool dstIsFile = false); + static QString makeUniqueDstFilename(const QString &dstFile); + static bool deletefile(const QString &file); + + /// widget utilities; remove asap + static QWidget* ConnectSignalTo( QWidget* parent, const char* nm, const char* signal, QObject* receiver, const char* slot ); + static QWidget* ConnectButtonTo( QWidget* parent, const char* name, QObject* receiver, const char* slot ); + static void AddWidgetToParentLayout( QWidget* parent, QWidget* w ); + static QWidget* FindWidget( const char* name, QWidget* parent ); + static void ShowWidget( QWidget* parent, const char* name, bool show ); }; Modified: cinesuite/cineplay-cinecode/trunk/src/cinecode.pro =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/cinecode.pro 2008-02-21 12:31:39 UTC (rev 52) +++ cinesuite/cineplay-cinecode/trunk/src/cinecode.pro 2008-02-27 12:14:21 UTC (rev 53) @@ -8,7 +8,6 @@ CONFIG += thread qt warn_on opengl CONFIG += debug RC_FILE = cineplay.rc -DEFINES += BUILD_CINECODE include( olibs.pri ) include( jah.pri ) @@ -35,7 +34,8 @@ HEADERS += \ AddFavouriteDlg.h \ Browser.h \ - CinePlay.h \ + Common.h \ + CineCode.h \ Command.h \ Download.h \ EncodeJob.h \ @@ -61,7 +61,8 @@ SOURCES += \ AddFavouriteDlg.cpp \ Browser.cpp \ - CinePlay.cpp \ + Common.cpp \ + CineCode.cpp \ Command.cpp \ Download.cpp \ EncodeJob.cpp \ Modified: cinesuite/cineplay-cinecode/trunk/src/cineplay.pro =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/cineplay.pro 2008-02-21 12:31:39 UTC (rev 52) +++ cinesuite/cineplay-cinecode/trunk/src/cineplay.pro 2008-02-27 12:14:21 UTC (rev 53) @@ -32,6 +32,7 @@ HEADERS += \ AddFavouriteDlg.h \ Browser.h \ + Common.h \ CinePlay.h \ Download.h \ Info.h \ @@ -53,6 +54,7 @@ SOURCES += \ AddFavouriteDlg.cpp \ Browser.cpp \ + Common.cpp \ CinePlay.cpp \ Download.cpp \ Info.cpp \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-02-27 17:21:48
|
Revision: 54 http://editopia.svn.sourceforge.net/editopia/?rev=54&view=rev Author: timdewhirst Date: 2008-02-27 09:21:27 -0800 (Wed, 27 Feb 2008) Log Message: ----------- CinePlay - more tidyup Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp cinesuite/cineplay-cinecode/trunk/src/CinePlay.h Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-02-27 12:14:21 UTC (rev 53) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-02-27 17:21:27 UTC (rev 54) @@ -335,7 +335,7 @@ settings.writeEntry( SETTINGS_WINDOWYSIZE, sz.height() ); settings.writeEntry( SETTINGS_WINDOWXPOS, pt.x() ); settings.writeEntry( SETTINGS_WINDOWYPOS, pt.y() ); - settings.writeEntry(SETTINGS_CHECKUPDATE, m_checkRelease); + settings.writeEntry( SETTINGS_CHECKUPDATE, m_checkRelease ); } @@ -343,12 +343,12 @@ { //Setup the store object - QWidget *storePlace = CineUtils::FindWidget(WIDGET_STOREPLACE, this ); + QWidget *storePlace = CineUtils::FindWidget( WIDGET_STOREPLACE, this ); if(storePlace == 0) return false; - QGridLayout *lo = new QGridLayout(storePlace); + QVBoxLayout *lo = new QVBoxLayout( storePlace ); QSettings settings; QString storeTypeVideo, storeTypeAudio; @@ -390,16 +390,17 @@ } } - if(m_storeAsWidget == 0) //default to sdl + if( !m_storeAsWidget ) //default to sdl { qDebug( "CppAppWidget::SetupStores: creating an SDL store for video" ); jw::sdl_store *store = new jw::sdl_store(storePlace); m_jwStore = store; m_storeAsWidget = store; + m_handlePush = true; m_playerRefresh = true; } - lo->addWidget(m_storeAsWidget, 0, 0); + lo->addWidget( m_storeAsWidget ); bool succ = m_jwStore->init( ml::frame_type_ptr() ); if(!succ) return false; @@ -591,18 +592,6 @@ CineUtils::ShowWidget(this, WIDGET_TOOLBARPLACE, show); } - void RecurseLayoutMode(QWidget *parent, QLayout::ResizeMode mode) - { - QWidget *w = parent; - while(w) - { - QLayout *l = w->layout(); - if(l) - l->setResizeMode(mode); - w = w->parentWidget(); - } - } - void CppAppWidget::toggleFullScreen() { if(m_fullScreen) @@ -682,7 +671,7 @@ connect( m_release_dialog, SIGNAL( done( const bool, const bool ) ), this, SLOT( checkReleaseDone( const bool, const bool ) ) ); } - void CppAppWidget::checkReleaseDone( const bool OpenURL, const bool CheckRelease ) + void CppAppWidget::checkReleaseDone( const bool /*OpenURL*/, const bool CheckRelease ) { m_release_dialog->close(); Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-02-27 12:14:21 UTC (rev 53) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-02-27 17:21:27 UTC (rev 54) @@ -118,11 +118,6 @@ private: bool SetupStores(); - QWidget* ConnectSignalTo(QWidget *parent, const char *nm, const char *signal, const char *slot); - QWidget* ConnectButtonTo(QWidget *parent, const char *name, const char *slot); - void AddWidgetToParentLayout( QWidget *parent, QWidget* w ); - QWidget* FindWidget( const char* name, QWidget *parent ); - void ShowWidget( QWidget *parent, const char *name, bool show ); void SimulatePlayClick(); static QString MakeDefaultImageName(); static bool IsDefaultImageName(const QString &str); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-02-28 11:21:57
|
Revision: 55 http://editopia.svn.sourceforge.net/editopia/?rev=55&view=rev Author: timdewhirst Date: 2008-02-28 03:21:54 -0800 (Thu, 28 Feb 2008) Log Message: ----------- cineplay - more refactoring; move to use common; should be aggregated Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp cinesuite/cineplay-cinecode/trunk/src/CinePlay.h cinesuite/cineplay-cinecode/trunk/src/Common.cpp cinesuite/cineplay-cinecode/trunk/src/Common.h cinesuite/cineplay-cinecode/trunk/src/Jah.h cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.cpp cinesuite/cineplay-cinecode/trunk/src/PlayerDelegate.h cinesuite/cineplay-cinecode/trunk/src/ReleaseDlg.h cinesuite/cineplay-cinecode/trunk/src/Utils.cpp cinesuite/cineplay-cinecode/trunk/src/Utils.h Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-02-27 17:21:27 UTC (rev 54) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-02-28 11:21:54 UTC (rev 55) @@ -20,1393 +20,76 @@ // local #include "CinePlay.h" +#include "Common.h" #include "Theme.h" -#include "Browser.h" -#include "Download.h" -#include "Info.h" -#include "Release.h" -#include "ReleaseDlg.h" -#include "SetupDefs.h" -#include "SkinDlg.h" -#include "Version.h" -#include "PlayerDelegate.h" -#include "AddFavouriteDlg.h" -#include "RemoveFavouriteDlg.h" -#include "OpenGLStore.h" -#include "Utils.h" -#include "windows/main.h" -#include "windows/toolbar.h" -#include "windows/about.h" -#include "windows/addfav.h" -#include "windows/removefav.h" -#include "windows/styledlg.h" // qt #include <qapplication.h> -#include <qcursor.h> -#include <qfiledialog.h> -#include <qstylefactory.h> -#include <qvariant.h> -#include <qmessagebox.h> -#include <qsettings.h> -#include <qdir.h> -#include <qdragobject.h> -#include <qevent.h> -#include <qlayout.h> -#include <qmenubar.h> -#include <qpopupmenu.h> -#include <qpushbutton.h> -#include <qlineedit.h> -#include <qcheckbox.h> -#include <qlistview.h> #include <qnetwork.h> -#include <qregexp.h> -#include <qobjectlist.h> -#include <qthread.h> -#include <qgl.h> -#include <qlabel.h> -// olibs -#include <openpluginlib/pl/openpluginlib.hpp> -#include <openpluginlib/pl/utf8_utils.hpp> - -#if !defined(Q_OS_WIN32) && !defined(Q_OS_MACX) // Linux -#define RESIZE_DELAY 35 // minimal delay (in ms) in between two calls to the main window's resize() -#endif //!Q_OS_WIN32 && !Q_OS_MACX - - -#ifdef Q_OS_WIN32 -#pragma comment(lib, "opengl32.lib") -#endif - - - namespace cineplay { - CppAppWidget::CppAppWidget( QWidget *parent, const char *name ) - : QWidget( parent, name, Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WStyle_SysMenu ) - , m_timeSliderMin(0) - , m_timeSliderMax(1) - , m_timeSliderBlock(false) - , m_timeSliderPlayState(false) - , m_draggingApp(false) - , m_resizingApp(false) - , m_resizingBlock(false) - , m_fullScreen(false) - , m_handlePush(false) - , m_playerRefresh(false) - , m_playControlPopup(false) - , m_mruMenu(0) - , m_mediaSize(0, 0) - , m_mruList(5) - , m_jwStore(NULL) - , m_player(IPlayerPtr()) - , m_delegate(IPlayerCallbackPtr()) - , m_download( NULL ) - , m_info( new Info( this ) ) - , m_ver_appload ( true ) - , m_release( new Release() ) - , m_release_dialog( NULL ) - , m_checkRelease(1) - , m_ioPointBlock(false) - { +CppAppWidget::CppAppWidget( QWidget *parent, const char *name ) + : QWidget( parent, name, Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WStyle_SysMenu ), + m_impl( new Common( this ) ) +{ + //general main window setup + setAcceptDrops( true ); +} - //Init OpenLibraries - QString appDir = qApp->applicationDirPath(); +bool CppAppWidget::LoadCmdLineInput( const QString& fname ) +{ + m_impl->LoadCmdLineInput( fname ); +} -#if defined(Q_OS_MACX) - pl::string_list lib_list; - lib_list.push_back("openassetlib"); - lib_list.push_back("openeffectslib"); - lib_list.push_back("openimagelib"); - lib_list.push_back("openmedialib"); - lib_list.push_back("openobjectlib"); +void CppAppWidget::keyPressEvent( QKeyEvent* e ) +{ + QWidget::keyPressEvent( e ); + m_impl->keyPressEvent( e ); +} - pl::string_list dir_list; - for (pl::string_list::iterator it = lib_list.begin(); it !=lib_list.end(); it++) { - pl::string s = appDir.latin1(); - s += "/../PlugIns/"; - s += *it; - dir_list.push_back(s); - } +void CppAppWidget::mouseDoubleClickEvent( QMouseEvent* e ) +{ + m_impl->mouseDoubleClickEvent( e ); +} - pl::init(dir_list); -#else - // pl::init( appDir.latin1() ); - pl::init(); -#endif //Q_OS_MACX +void CppAppWidget::mousePressEvent( QMouseEvent* e ) +{ + m_impl->mousePressEvent( e ); +} - //general main window setup - setAcceptDrops( true ); +void CppAppWidget::mouseMoveEvent( QMouseEvent* e ) +{ + m_impl->mouseMoveEvent( e ); +} +void CppAppWidget::mouseReleaseEvent( QMouseEvent* e ) +{ + m_impl->mouseReleaseEvent( e ); +} - //Look for all our widgets and stuff - QWidget *mainWidget = new main(this, "main"); - CineUtils::AddWidgetToParentLayout(this, mainWidget); - setCaption(SETTINGS_APPTITLE); +void CppAppWidget::resizeEvent( QResizeEvent* e ) +{ + m_impl->resizeEvent( e ); +} - QWidget *ht = CineUtils::FindWidget(WIDGET_TOOLBARPLACE, mainWidget ); - QWidget *h2 = new toolbar( ht ); - CineUtils::AddWidgetToParentLayout( ht, h2 ); +void CppAppWidget::dragEnterEvent( QDragEnterEvent* e ) +{ + m_impl->dragEnterEvent( e ); +} - CineUtils::ConnectButtonTo(mainWidget, WIDGET_MINIMISE, this, SLOT(showMinimized()) ); - CineUtils::ConnectButtonTo(mainWidget, WIDGET_MAXIMISE, this, SLOT(toggleMaximized()) ); - CineUtils::ConnectButtonTo(mainWidget, WIDGET_CLOSE, this, SLOT(close()) ); +void CppAppWidget::dropEvent( QDropEvent* e ) +{ + m_impl->dropEvent( e ); +} - m_playButton = CineUtils::ConnectButtonTo(h2, WIDGET_PLAY, this, SLOT(onPlay())); - CineUtils::ConnectButtonTo(h2, WIDGET_STEPBACK, this, SLOT(onStepBack())); - CineUtils::ConnectButtonTo(h2, WIDGET_STEPFWD, this, SLOT(onStepFwd())); +void CppAppWidget::customEvent( QCustomEvent* e ) +{ + m_impl->customEvent( e ); +} - CineUtils::ConnectButtonTo(h2, WIDGET_GOSTART, this, SLOT(onStart())); - CineUtils::ConnectButtonTo(h2, WIDGET_GOEND, this, SLOT(onEnd())); - - m_hTitlebar = CineUtils::FindWidget(WIDGET_TITLEBAR, mainWidget); - m_hTitlebar->setProperty("enableInOutControls", false); - - //setup the jahwidgets::qt3::TimelineSlider - m_timeSlider = CineUtils::FindWidget( WIDGET_TIMESLIDER, h2 ); - - if(m_timeSlider) - { - m_timeSlider->setProperty("maximum", QVariant(100000)); - m_timeSliderMin = m_timeSlider->property("minimum").toInt(); - m_timeSliderMax = m_timeSlider->property("maximum").toInt(); - m_timeSlider->setProperty("enableInOutControls", false); - } - - CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(sliderPressed()), this, SLOT(timeSliderPressed())); - CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(sliderReleased()), this, SLOT(timeSliderReleased())); - CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(sliderMoved(int)), this, SLOT(timeSliderMoved(int))); - CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(valueChanged(int)), this, SLOT(timeValueChanged(int))); - CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(activeInValueChanged(int)), this, SLOT(timeInValueChanged(int))); - CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(activeOutValueChanged(int)), this, SLOT(timeOutValueChanged(int))); - CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(minValueChanged(int)), this, SLOT(timeMinValueChanged(int))); - CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(maxValueChanged(int)), this, SLOT(timeMaxValueChanged(int))); - CineUtils::ConnectSignalTo(h2, WIDGET_VOLUMESLIDER, SIGNAL(valueChanged(int)), this, SLOT(volumeSliderMoved(int))); - CineUtils::ConnectSignalTo(h2, WIDGET_MUTE, SIGNAL(toggled( bool )), this, SLOT(muteToggled(bool))); - - // setup the menu - QWidget* menubarPlaceholder = CineUtils::FindWidget( WIDGET_MENUBAR, mainWidget ); - - - -#ifdef Q_OS_MACX - menubarPlaceholder->hide(); -#endif - - QMenuBar* menubar = new QMenuBar( menubarPlaceholder ); - menubar->setFrameShape( QFrame::NoFrame ); - menubar->setPalette( menubarPlaceholder->palette() ); - menubar->setSeparator( QMenuBar::InWindowsStyle ); - - // file - m_fileMenu = new QPopupMenu( menubar ); - - //mru menu - m_mruMenu = new QPopupMenu( menubar ); - m_mruList.BuildMenu(m_mruMenu, this, SLOT( onMruSelected(int) ) ); - m_mruMenu->setPalette( menubarPlaceholder->palette() ); - - m_fileMenu->setPalette( menubarPlaceholder->palette() ); - m_fileMenu->insertItem( tr( "&open file..." ), this, SLOT( onLoad() ) ); - m_fileMenu->insertItem( tr( "open &url..." ), this, SLOT( onLoadUrl() ) ); - m_fileMenu->insertItem( tr( "open &sequence..." ), this, SLOT( onLoadSequence() ) ); - - m_mruItemRef = m_fileMenu->insertItem( tr( "open &recent" ), m_mruMenu ); - if(m_mruMenu->count() == 0) - m_fileMenu->setItemEnabled(m_mruItemRef, false); - - m_fileMenu->insertItem( tr( "&close" ), this, SLOT( onClose() ) ); - //m_fileMenu->insertItem( tr( "save &as" ), this, SLOT( onSaveAs() ) ); - m_fileMenu->insertItem( tr( "&quit" ), qApp, SLOT( quit() ) ); - menubar->insertItem( tr( "&File" ), m_fileMenu ); - - // view - m_menuView = new QPopupMenu( menubar ); - m_menuView->setPalette( menubarPlaceholder->palette() ); - m_menuViewHalfIndex = m_menuView->insertItem( tr( "&half size" ), this, SLOT( onViewHalfSize() ) ); - m_menuViewNormalIndex = m_menuView->insertItem( tr( "&normal size" ), this, SLOT( onViewNormalSize() ) ); - m_menuViewDoubleIndex = m_menuView->insertItem( tr( "&double size" ), this, SLOT( onViewDoubleSize() ) ); - m_menuView->insertItem( tr( "&full screen" ), this, SLOT( toggleFullScreen() ) ); - m_menuView->insertSeparator(); - m_menuViewShowIndex = m_menuView->insertItem( tr( "hide &video" ), this, SLOT( onViewHideVideo() ) ); - m_menuView->insertSeparator(); - m_menuViewLoopIndex = m_menuView->insertItem( tr( "&loop" ), this, SLOT( onViewLoop() ) ); - menubar->insertItem( tr( "&View" ), m_menuView ); - - // window - m_windowMenu = new QPopupMenu( menubar ); - m_windowMenu->setPalette( menubarPlaceholder->palette() ); - m_windowMenu->insertItem( tr( "&movie info" ), this, SLOT( onShowMovieInfo() ) ); - - - m_favMenu = new QPopupMenu( menubar ); - m_favList.BuildMenu(m_favMenu, this, SLOT( onFavSelected(int) ) ); - m_favMenu->setPalette( menubarPlaceholder->palette() ); - - m_windowMenu->insertItem( tr( "&add favorite" ), this, SLOT( onFavAdd() ) ); - m_windowMenu->insertItem( tr( "&remove favorite" ), this, SLOT( onFavRemove() ) ); - - m_favItemRef = m_windowMenu->insertItem( tr( "&favorites" ), m_favMenu ); - updateFavMenu(); - - menubar->insertItem( tr( "&Window" ), m_windowMenu ); - - - // help - QPopupMenu* help = new QPopupMenu( menubar ); - help->setPalette( menubarPlaceholder->palette() ); - help->insertItem( tr( "&help" ), this, SLOT( onHelp() ) ); - help->insertItem( tr( "&check for release" ), this, SLOT( onCheckVersion() ) ); - help->insertItem( tr( "&website" ), this, SLOT( onGotoWebsite() ) ); - help->insertItem( tr( "&about" ), this, SLOT( onAbout() ) ); - menubar->insertItem( "&Help", help ); - - if( SetupStores() == false ) - { - QMessageBox::critical( this, SETTINGS_APPTITLE, "failed to initialise store objects."); - return; - } - - //local registry settings - { - QSettings settings; - - m_volumeSlider = CineUtils::FindWidget( WIDGET_VOLUMESLIDER, h2 ); - - if(m_volumeSlider) - { - //HACK! jahwidgets slider on the mac is not working for now. -#ifdef Q_OS_MACX - m_volumeSlider->setProperty("thumb", QVariant(QPixmap()) ); - m_volumeSlider->setProperty("tray", QVariant(QPixmap()) ); -#endif - - int volume_max = m_volumeSlider->property( "maxValue" ).toInt(); - - int vol = settings.readNumEntry(SETTINGS_VOLUME, volume_max); - m_volumeSlider->setProperty( "value", vol ); - volumeSliderMoved(vol); - } - - //do not check for updates in case flag is set to value 0 - m_checkRelease = settings.readNumEntry(SETTINGS_CHECKUPDATE, 1); - if (m_checkRelease) - onCheckVersion(); - - //lastly before we show, load the last window pos - - int xPos = settings.readNumEntry(SETTINGS_WINDOWXPOS, 200); - int yPos = settings.readNumEntry(SETTINGS_WINDOWYPOS, 200); - move(xPos, yPos); - } - - -// #ifdef BUILD_CINECODE - -// //create the encode tray -// m_encodeTray = new TrayDlg(this); - -// #endif //BUILD_CINECODE - - - show(); - - //if we only switch this on with fullscreen - QApplication::setGlobalMouseTracking(true); - - //we need to show before doing some last sizing stuff, otherwise Qt caches - // the size message and does it all later on. - LoadDefaultInput(); - } - - - CppAppWidget::~CppAppWidget() - { - m_player->unRegisterCallback(m_delegate); - - QPoint pt = pos(); - QSize sz = size(); - - QSettings settings; - settings.writeEntry( SETTINGS_WINDOWXSIZE, sz.width() ); - settings.writeEntry( SETTINGS_WINDOWYSIZE, sz.height() ); - settings.writeEntry( SETTINGS_WINDOWXPOS, pt.x() ); - settings.writeEntry( SETTINGS_WINDOWYPOS, pt.y() ); - settings.writeEntry( SETTINGS_CHECKUPDATE, m_checkRelease ); - } - - - bool CppAppWidget::SetupStores() - { - - //Setup the store object - QWidget *storePlace = CineUtils::FindWidget( WIDGET_STOREPLACE, this ); - - if(storePlace == 0) - return false; - - QVBoxLayout *lo = new QVBoxLayout( storePlace ); - - QSettings settings; - QString storeTypeVideo, storeTypeAudio; - std::wstring convertFormat; - -#ifdef Q_OS_MACX - storeTypeVideo = settings.readEntry(SETTINGS_VIDEOSTORETYPE, "opengl"); - storeTypeAudio = settings.readEntry(SETTINGS_AUDIOSTORETYPE, "sdl"); -#else - storeTypeVideo = settings.readEntry(SETTINGS_VIDEOSTORETYPE, "opengl"); - storeTypeAudio = settings.readEntry(SETTINGS_AUDIOSTORETYPE, "sdl"); -#endif - - //Create the right video store object - { - m_storeAsWidget = 0; - - if( storeTypeVideo == "opengl" ) - { - jw::opengl_store *store = new jw::opengl_store(storePlace); - m_jwStore = store; - m_storeAsWidget = store; - m_handlePush = true; - } - else if( storeTypeVideo == "opengl2" ) - { - GLStore *store = new GLStore(storePlace); - if(store->IsBasicCapable()) - { - m_jwStore = store; - m_storeAsWidget = store; - m_handlePush = true; - convertFormat = L"b8g8r8a8"; - } - else - { - qWarning( "failed to create OpenGL2 store; IsBasicCapable() is false" ); - delete store; - } - } - - if( !m_storeAsWidget ) //default to sdl - { - qDebug( "CppAppWidget::SetupStores: creating an SDL store for video" ); - jw::sdl_store *store = new jw::sdl_store(storePlace); - m_jwStore = store; - m_storeAsWidget = store; - m_handlePush = true; - m_playerRefresh = true; - } - - lo->addWidget( m_storeAsWidget ); - bool succ = m_jwStore->init( ml::frame_type_ptr() ); - if(!succ) - return false; - - m_videoStore = m_jwStore->store(); - if(m_videoStore == 0) - return false; - } - - { - if( storeTypeAudio == "openal" ) - { - qDebug( "CppAppWidget::SetupStores: creating an openal store" ); - m_audioStore = ml::create_store("openal:", ml::frame_type_ptr() ); - } - else //default: sdl - { - qDebug( "CppAppWidget::SetupStores: creating an SDL store for audio" ); - m_audioStore = ml::create_store("sdl_audio:", ml::frame_type_ptr() ); - } - } - - if( m_videoStore->init() == false) - return false; - if( m_audioStore && m_audioStore->init() == false) - return false; - - m_delegate = IPlayerCallbackPtr(new PlayerCallbackDelegate(this)); - - m_player = createPlayer( m_videoStore, m_audioStore ); - m_player->registerCallback( m_delegate ); - m_player->setVideoConvertFormat( convertFormat ); - m_storeAsWidget->setEnabled( true ); - - return true; - } - - - - //static - QString CppAppWidget::MakeDefaultImageName() - { - QString str = qApp->applicationDirPath(); -#ifdef Q_OS_MACX - str += "/../Resources/"; -#else //Q_OS_MACX - str += "/"; -#endif //Q_OS_MACX - str += SETTINGS_SPLASH; - return str; - } - - - bool CppAppWidget::IsDefaultImageName(const QString &str) - { - QString def = MakeDefaultImageName(); - if(str == def) - return true; - def += "/sequence:"; - if(str == def) - return true; - - return false; - } - - - bool CppAppWidget::LoadDefaultInput() - { - QString str = MakeDefaultImageName(); - return LoadInput(str); - } - - - void CppAppWidget::SetVideoSizeFromStore(float scale /*= 1.0f*/) - { - SetVideoSize( m_mediaSize, scale ); - } - - - void CppAppWidget::SetVideoSize(const QSize &newSize, float scale /*= 1.0f*/) - { - QSize storeSize = m_storeAsWidget->size(); - QSize sz = size(); - sz = (newSize * scale) + (sz - storeSize); - - if(!m_fullScreen && !isMaximized() ) - resize(sz); - else - m_preFullScreenRect = QRect( pos(), sz ); - -// #ifdef BUILD_CINECODE -// UpdateTrayPositions(); -// #endif //BUILD_CINECODE - } - - - bool CppAppWidget::LoadInput( const QString& fname ) - { - qDebug( "CppAppWidget::LoadInput: %s", fname.ascii() ); - - if(m_info) - m_info->update( fname ); - - m_player->load(fname); - return true; - } - - bool CppAppWidget::LoadCmdLineInput(const char *fname) - { - if(LoadInput(fname)) - { - m_player->play(); - return true; - } - else - return false; - } - - void CppAppWidget::SimulatePlayClick() - { - if(m_playButton) - { - bool tog = m_playButton->property("on").toBool(); - tog = !tog; - m_playButton->setProperty( "on", tog ); - onPlay(); - } - } - - void CppAppWidget::keyPressEvent( QKeyEvent* e ) - { - QWidget::keyPressEvent( e ); - - switch( e->key() ) - { - case Qt::Key_Escape: - if(m_fullScreen) - toggleFullScreen(); - break; - case Qt::Key_Space: - SimulatePlayClick(); - break; - case Qt::Key_Left: - if(!m_player->isPlaying()) - m_player->seek(-1, true); - break; - case Qt::Key_Right: - if(!m_player->isPlaying()) - m_player->seek(1, true); - break; - case Qt::Key_0: - onViewHalfSize(); - break; - case Qt::Key_1: - onViewNormalSize(); - break; - case Qt::Key_2: - onViewDoubleSize(); - break; - case Qt::Key_F: - toggleFullScreen(); - break; - } - } - - - void CppAppWidget::toggleMaximized() - { - if(isMaximized()) - showNormal(); - else - { -// #ifdef BUILD_CINECODE -// HideEncodeTray(); -// #endif //BUILD_CINECODE - showMaximized(); - } - } - - void CppAppWidget::ShowBorderWidgets(bool show) - { - CineUtils::ShowWidget(this, "titlebar", show); - CineUtils::ShowWidget(this, "titlebar_left", show); - CineUtils::ShowWidget(this, "titlebar_center", show); - CineUtils::ShowWidget(this, "titlebar_right", show); - CineUtils::ShowWidget(this, "frame16", show); - CineUtils::ShowWidget(this, "frame17", show); - CineUtils::ShowWidget(this, WIDGET_MENUBAR, show); - CineUtils::ShowWidget(this, WIDGET_TOOLBARPLACE, show); - } - - void CppAppWidget::toggleFullScreen() - { - if(m_fullScreen) - { - ShowBorderWidgets(true); - setGeometry(m_preFullScreenRect); - - setMouseTracking(false); - } - else - { -// #ifdef BUILD_CINECODE -// HideEncodeTray(); -// #endif //BUILD_CINECODE - - m_preFullScreenRect = geometry(); - - QDesktopWidget *desktop = QApplication::desktop(); - int screen = desktop->screenNumber(this); - QRect r = desktop->screenGeometry(screen); - - ShowBorderWidgets(false); - ClearSizeChecks(); - - setGeometry(r); - m_storeAsWidget->setGeometry(r); - - setMouseTracking(true); - } - - m_fullScreen = !m_fullScreen; - } - - void CppAppWidget::onHelp() - { -#ifdef Q_OS_MACX - openBrowserWindow( QUrl( QString( "file://%1/../Resources/help/help.html" ).arg( qApp->applicationDirPath() ) ) ); -#else - openBrowserWindow( QUrl( QString( "file://%1/help/help.html" ).arg( qApp->applicationDirPath() ) ) ); -#endif //Q_OS_MACX - } - - void CppAppWidget::onAbout() - { - SkinDialog dlg(this); - - dlg.SetAllowResize(false); - AboutDialog *about = new AboutDialog; - QString versionString = "Version: "; - versionString += CINE_VERSION; - about->versionLabel->setText( versionString ); - dlg.SetContentWidget( about ); - - dlg.exec(); - } - - void CppAppWidget::onCheckVersion() - { - if(m_release == 0) - m_release = new Release(); - m_release->checkRelease( QString( CINE_VERSION ) ); - connect( m_release, SIGNAL( done( const bool ) ), this, SLOT( checkVersionDone( const bool ) ) ); - } - - void CppAppWidget::checkVersionDone( const bool upgrade ) - { - if ( ( this->m_ver_appload && upgrade ) || !this->m_ver_appload ) - onCheckRelease( upgrade ); - this->m_ver_appload = false; - } - - void CppAppWidget::onCheckRelease( const bool upgrade ) - { - if(m_release_dialog == 0) - m_release_dialog = new ReleaseDlg(); - m_release_dialog->show( upgrade, QString( CINE_VERSION ) ); - connect( m_release_dialog, SIGNAL( done( const bool, const bool ) ), this, SLOT( checkReleaseDone( const bool, const bool ) ) ); - } - - void CppAppWidget::checkReleaseDone( const bool /*OpenURL*/, const bool CheckRelease ) - { - m_release_dialog->close(); - - if (CheckRelease) - m_checkRelease = 1; - else - m_checkRelease = 0; - } - - void CppAppWidget::onGotoWebsite() - { - openBrowserWindow( QUrl( "http://cinefx.org/" ) ); - } - - void CppAppWidget::onPlay() - { - //check player state - if(m_playButton) - { - if(m_playButton->property("toggled").toBool()) - m_player->play(); - else - m_player->stop(); - } - } - - - void CppAppWidget::onStepFwd() - { - m_player->seek(1, true); - } - - void CppAppWidget::onStepBack() - { - m_player->seek(-1, true); - } - - QString CppAppWidget::GetLastPath() - { - QString url = m_mruList.getLastestUrl(); - - if(url.isEmpty()) - return "./"; - else - { - QFileInfo info( url ); - return info.dirPath(true); - } - } - - void CppAppWidget::onLoad( bool isSequence ) - { - QSettings settings; - - pl::string filters = pl::to_string( pl::registered_filters( true ) ); - QStringList filtersAsList( QStringList::split( " ", QString( filters.c_str() ) ) ); - filtersAsList.push_front( "All files (*.*)" ); - - QString filtersString; - - for(uint t=0;t<filtersAsList.size();t++) - { - if(t) - filtersString += ";;"; - filtersString += filtersAsList[t]; - } - - QString fname = QFileDialog::getOpenFileName( m_mruList.getLastestUrl(), filtersString, this ); - - if(!fname.isEmpty()) - { - //load - QFileInfo info(fname); - - if ( isSequence ) - { - QFileInfo info(fname); - QString base = info.baseName(); - QString path = info.dirPath(); - QString ext = info.extension(1); - - base.replace(QRegExp("[0-9]*$"), ""); - fname = path + "/" + base + "*." + ext + "/sequence:"; - } - - LoadInput(fname); - } - } - - void CppAppWidget::onLoad() - { - onLoad( false ); - } - - void CppAppWidget::onLoadSequence() - { - onLoad( true ); - } - - void CppAppWidget::onLoadUrl() - { - if(m_download == 0) - m_download = new Download( this ); - m_download->show(); - connect( m_download, SIGNAL( done( const QString& ) ), this, SLOT( UrlLoadDone( const QString& ) ) ); - } - - void CppAppWidget::UrlLoadDone( const QString& fname ) - { - m_download->close(); - LoadInput(fname); - } - - void CppAppWidget::onStart() - { - m_player->seek(0); - } - - - void CppAppWidget::onEnd() - { - m_player->seek(m_player->frameCount() - 1); - } - - - void CppAppWidget::onClose() - { - LoadDefaultInput(); - } - - - void CppAppWidget::onSaveAs() - { - } - - - void CppAppWidget::onMruSelected(int index) - { - QString str = m_mruList.getUrl(index); - - if(!str.isEmpty()) - { - LoadInput(str); - } - } - - - void CppAppWidget::onFavSelected(int index) - { - QString str = m_favList.getUrl(index); - - if(!str.isEmpty()) - { - LoadInput(str); - - int frame = m_favList.getFrameNumber(index); - if(frame != -1) - m_player->seek(frame); - } - } - - void CppAppWidget::onFavAdd() - { - if(!m_lastFile.isEmpty()) - { - AddFavouriteDlg dlg(this, &m_favList, m_lastFile, m_lastFrame); - - if(dlg.exec() == QDialog::Accepted) - { - m_favList.BuildMenu(m_favMenu, this, SLOT( onFavSelected(int) ) ); - updateFavMenu(); - } - } - } - - - void CppAppWidget::onFavRemove() - { - unsigned int count = m_favList.getEntryCount(); - - if(count) - { - RemoveFavouriteDlg dlg(this, &m_favList); - - if(dlg.exec() == QDialog::Accepted) - { - m_favList.BuildMenu(m_favMenu, this, SLOT( onFavSelected(int) ) ); - updateFavMenu(); - } - } - } - - void CppAppWidget::updateFavMenu() - { - m_windowMenu->setItemEnabled( m_favItemRef, m_favList.getEntryCount() != 0 ); - } - - void CppAppWidget::onShowMovieInfo() - { - m_info->show(); - } - - - void CppAppWidget::ClearSizeChecks() - { - m_menuView->setItemChecked(m_menuViewHalfIndex, false); - m_menuView->setItemChecked(m_menuViewNormalIndex, false); - m_menuView->setItemChecked(m_menuViewDoubleIndex, false); - } - - - void CppAppWidget::onViewHalfSize() - { - SetVideoSizeFromStore(0.5f); - ClearSizeChecks(); - m_menuView->setItemChecked(m_menuViewHalfIndex, true); - } - - - void CppAppWidget::onViewNormalSize() - { - SetVideoSizeFromStore(); - ClearSizeChecks(); - m_menuView->setItemChecked(m_menuViewNormalIndex, true); - } - - - void CppAppWidget::onViewDoubleSize() - { - SetVideoSizeFromStore(2.0f); - ClearSizeChecks(); - m_menuView->setItemChecked(m_menuViewDoubleIndex, true); - } - - - void CppAppWidget::onViewHideVideo() - { - bool chk = m_menuView->isItemChecked(m_menuViewShowIndex); - m_storeAsWidget->setShown(chk); - m_menuView->setItemChecked(m_menuViewShowIndex, !chk); - - - if(!m_fullScreen && !isMaximized()) - { - m_resizingBlock = true; - if(chk) - { - if(m_preHideScreenRect.width() != 0) - setGeometry( m_preHideScreenRect ); - } - else - { - m_preHideScreenRect = geometry(); - SetVideoSize( QSize(0,0) ); - } - } - else - m_preHideScreenRect = QRect(0,0,0,0); - } - - - void CppAppWidget::onViewLoop() - { - bool chk = m_menuView->isItemChecked(m_menuViewLoopIndex); - m_menuView->setItemChecked(m_menuViewLoopIndex, !chk); - } - - - void CppAppWidget::onWindowInfo() - { - } - - - void CppAppWidget::onWindowFavourites() - { - } - - - void CppAppWidget::onWindowAddFav() - { - } - - - void CppAppWidget::timeSliderPressed() - { - m_timeSliderPlayState = m_player->isPlaying(); - m_player->stop(); - } - - - void CppAppWidget::timeSliderReleased() - { - if(m_timeSliderPlayState) - m_player->play(); - m_timeSliderPlayState = false; - } - - - void CppAppWidget::timeSliderMoved( int val) - { - timeValueChanged(val); - } - - - int CppAppWidget::SliderToFrame(int val) - { - int frameCount = m_player->frameCount(); - if(frameCount) - { - float range = (float)m_timeSliderMax - (float)m_timeSliderMin; - range = (float)val / (range - m_timeSliderMin); - range *= frameCount; - return (int)range; - } - else - return 0; - } - - - int CppAppWidget::FrameToSlider(int val) - { - int frameCount = m_player->frameCount(); - if(frameCount) - { - float range = (float)m_timeSliderMax - (float)m_timeSliderMin; - float f = (float)val / (float)frameCount; - f *= range; - f += m_timeSliderMin; - return (int)f; - } - else - return 0; - } - - - void CppAppWidget::UpdateSliderPos(int pos) - { - m_timeSliderBlock = true; - int sliderPos = FrameToSlider(pos); - - if(m_timeSlider) - m_timeSlider->setProperty("value", QVariant(sliderPos)); - } - - - void CppAppWidget::SetPlaybuttonState(bool on) - { - if( m_playButton && on != m_playButton->property( "on" ).toBool() ) - m_playButton->setProperty("on", on); - } - - - void CppAppWidget::timeValueChanged( int val ) - { - if(!m_timeSliderBlock) - { - //seek to new frame here - int frameCount = m_player->frameCount(); - if(frameCount) - { - int frame = SliderToFrame(val); - m_player->seek(frame); - } - } - m_timeSliderBlock = false; - } - - void CppAppWidget::timeInValueChanged( int pt ) - { - m_inPoint = pt; - - if(!m_ioPointBlock) - { - int frameCount = m_player->frameCount(); - if(frameCount) - { - m_timeSliderBlock = true; - int frame = SliderToFrame(pt); - m_player->seek(frame); - } - } - m_ioPointBlock = true; - } - - - void CppAppWidget::timeOutValueChanged( int pt ) - { - m_outPoint = pt; - if(!m_ioPointBlock) - { - int frameCount = m_player->frameCount(); - if(frameCount) - { - m_timeSliderBlock = false; - int frame = SliderToFrame(pt); - m_player->seek(frame); - } - } - m_ioPointBlock = true; - } - - - void CppAppWidget::timeMinValueChanged( int min ) - { - m_timeSliderMin = min; - } - - - void CppAppWidget::timeMaxValueChanged( int max ) - { - m_timeSliderMax = max; - } - - - void CppAppWidget::volumeSliderMoved( int val ) - { - int min = m_volumeSlider->property("minValue").toInt(); - int max = m_volumeSlider->property("maxValue").toInt(); - - float range = (float)(max - min); - float vol = (float)(val - min) / range; - - m_player->setVolume(vol); - - QSettings settings; - settings.writeEntry(SETTINGS_VOLUME, val); - } - - void CppAppWidget::muteToggled( bool on ) - { - m_player->setMute( on ); - } - - //////////////////// - - - bool CppAppWidget::IsResizePos(const QPoint &pt) - { - //within a square in the bottom right - int sz = 10; - QRect thisRect = rect(); - return ( (pt.x() > thisRect.width() - sz) && (pt.y() > thisRect.height() - sz ) ); - } - - void CppAppWidget::mousePressEvent(QMouseEvent *event) - { - QPoint pt = event->pos(); - - if( m_hTitlebar->rect().contains(pt) ) - { - if(!isMaximized()) - { - m_draggingApp = true; - m_dragClickPos = pt; - } - } - else if(m_storeAsWidget && m_storeAsWidget->rect().contains(pt) ) - { - //play pause? - } - else - { - //resize click? - if( IsResizePos(pt) ) - { - m_resizingApp = true; - m_dragClickPos = pt; - m_dragAppSize = size(); - setCursor(QCursor::sizeFDiagCursor); - } - } - } - - - void CppAppWidget::mouseClickTimerEvent() - { - } - - - void CppAppWidget::mouseDoubleClickEvent(QMouseEvent *event) - { - //cancel recognising a single-only click - QPoint pt = event->pos(); - - if( m_hTitlebar->rect().contains(pt) ) - toggleMaximized(); - else - toggleFullScreen(); - } - - void CppAppWidget::mouseReleaseEvent(QMouseEvent *) - { - if(m_draggingApp) - { - } - else if(m_resizingApp) - { - m_dragAppSize = size(); - } - - m_draggingApp = false; - m_resizingApp = false; - setCursor(QCursor::arrowCursor); - } - - - void CppAppWidget::mouseMoveEvent(QMouseEvent *event) - { - if(m_draggingApp) - { - QPoint nowPos = pos(); - QPoint clickDp = event->pos() - m_dragClickPos; - move(nowPos + clickDp); - -// #ifdef BUILD_CINECODE -// UpdateTrayPositions(); -// #endif //BUILD_CINECODE - - } - else if(m_resizingApp) - { - QPoint clickDp = event->pos() - m_dragClickPos; - -#if !defined(Q_OS_WIN32) && !defined(Q_OS_MACX) // Linux - // Only do the actual resize if the timer started after last resize has ran out. - // This fixes a glitch in resizing (size jumping around while resizing) under Linux - if (!m_resizeTimer.isActive()) { - resize(m_dragAppSize + QSize(clickDp.x(), clickDp.y()) ); - m_resizeTimer.start(RESIZE_DELAY, true); - } -#else // Everything else (Windows, OSX) - resize(m_dragAppSize + QSize(clickDp.x(), clickDp.y()) ); -#endif //!Q_OS_WIN32 && !Q_OS_MACX - - ClearSizeChecks(); - -// #ifdef BUILD_CINECODE -// UpdateTrayPositions(); -// #endif //BUILD_CINECODE - - } - else - { - if(m_fullScreen) - { - QWidget *toolbar = CineUtils::FindWidget(WIDGET_TOOLBARPLACE, this); - - QRect r = rect(); - int mouseY = event->pos().y(); - int startHeight = r.height() - 15; - int stopHeight = r.height() - toolbar->height(); - - if( mouseY > startHeight ) - { - m_playControlPopup = true; - CineUtils::ShowWidget(this, WIDGET_TOOLBARPLACE, true); - } - else if( m_playControlPopup && (mouseY < stopHeight) ) - { - CineUtils::ShowWidget(this, WIDGET_TOOLBARPLACE, false); - } - } - else - { - QPoint pt = event->pos(); - if(IsResizePos(pt)) - setCursor(QCursor::sizeFDiagCursor); - else - setCursor(QCursor::arrowCursor); - } - } - } - - - void CppAppWidget::resizeEvent(QResizeEvent*) - { - if(m_player && !m_resizingBlock) - { - m_resizingBlock = true; - - bool chk = m_menuView->isItemChecked(m_menuViewShowIndex); - if(chk) - { - m_storeAsWidget->setShown(true); - m_menuView->setItemChecked(m_menuViewShowIndex, false); - } - - if(m_playerRefresh) - m_player->refreshVideo(); - } - - m_resizingBlock = false; - } - - - void CppAppWidget::dragEnterEvent(QDragEnterEvent *de) - { - QString fmt = de->format(); - if( fmt.contains( "list" ) ) - { - de->accept(true); - } - } - - - void CppAppWidget::dropEvent(QDropEvent *de) - { - QString data( QString::fromUtf8( de->encodedData( de->format() ).data() ) ); - QStringList items = QStringList::split( QRegExp( "[\\n\\r]{1}" ), data ); - if ( items.empty() ) - { - return; - } - - QString fname = QUriDrag::uriToLocalFile( items[0] ).stripWhiteSpace(); - setActiveWindow(); - LoadInput(fname); - setActiveWindow(); - } - - - void CppAppWidget::FrameUpdate( const ml::frame_type_ptr &frame ) - { - //copy the video frame's image! - - //we must do this because the boost::smart_ptr's are not thread safe, and we end up with a massive - // resource leak if we do not guard against this. we cant steal the object from the pointer either - // so copy as little as possible for the video store to use: - - //lock scope - { - QMutexLocker lock( &m_frameCacheMutex ); - m_frameCache = ml::frame_type::shallow_copy(frame); - if(frame->get_image()) - m_frameCache->set_image( ml::image_type_ptr( frame->get_image()->clone() ) ); - } - - QApplication::postEvent( this, new PlayerFrameUpdateEvent( ) ); - } - - - void CppAppWidget::customEvent(QCustomEvent* e) - { - switch(e->type()) - { - case customEventID_PlayerPlaying: - SetPlaybuttonState(true); - break; - - case customEventID_PlayerPosition: - { - PlayerPositionEvent *pe = dynamic_cast<PlayerPositionEvent*>(e); - - if(pe) - { - int pos = pe->position(); - UpdateSliderPos(pos); - m_lastFrame = pos; - } - } - break; - - case customEventID_PlayerEndReached: - SetPlaybuttonState(false); - m_player->seek(0); - UpdateSliderPos(m_player->position()); - - if( m_menuView->isItemChecked(m_menuViewLoopIndex) ) - m_player->play(); - - break; - - case customEventID_PlayerStopping: - break; - - case customEventID_LoadComplete: - { - PlayerLoadCompleteEvent *le = dynamic_cast<PlayerLoadCompleteEvent*>(e); - - if(le) - { - m_mediaSize = le->size(); - SetVideoSize(m_mediaSize); - m_player->play(); - - //add to mru - std::string str = le->filename(); - const char *fname = str.c_str(); - - if( !IsDefaultImageName( fname ) ) - { - m_mruList.pushUrl( fname ); - m_mruList.BuildMenu(m_mruMenu, this, SLOT( onMruSelected(int) ) ); - m_fileMenu->setItemEnabled(m_mruItemRef, true); - m_lastFile = fname; - m_lastFrame = 0; - } - } - } - break; - - case customEventID_LoadFailed: - { - PlayerLoadFailedEvent *le = dynamic_cast<PlayerLoadFailedEvent*>(e); - - if(le) - { - if( !IsDefaultImageName( le->filename().c_str() ) ) - { - LoadDefaultInput(); - QMessageBox::warning( this, SETTINGS_APPTITLE, "Could not load that file", QMessageBox::Ok, QMessageBox::NoButton); - m_lastFile = QString(); - m_lastFrame = -1; - } - } - } - break; - - case customEventID_FrameUpdate: - { - PlayerFrameUpdateEvent *le = dynamic_cast<PlayerFrameUpdateEvent*>(e); - - if(le) - { - QMutexLocker lock( &m_frameCacheMutex ); - m_videoStore->push( m_frameCache ); - } - } - break; - - default: - break; - } - } - } //namespace cineplay @@ -1419,15 +102,17 @@ a.setStyle( new cineplay::Theme ); - cineplay::CppAppWidget app; + cineplay::CppAppWidget* app = new cineplay::CppAppWidget; - a.setMainWidget( &app ); + a.setMainWidget( app ); - if(argc == 2) + if( argc == 2 ) { - if(app.LoadCmdLineInput( argv[1] ) == false) + if( !app->LoadCmdLineInput( argv[1] ) ) return -1; } + + app->show(); return a.exec(); } Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-02-27 17:21:27 UTC (rev 54) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-02-28 11:21:54 UTC (rev 55) @@ -21,198 +21,37 @@ #pragma once -#include <qtimer.h> -#include <qmutex.h> +// qt +#include <qwidget.h> -#include "Jah.h" -#include "Player.h" -#include "PlayList.h" -#include "Version.h" - -class Download; -class Info; -class Release; -class ReleaseDlg; - - namespace cineplay { - class PlayerCallbackDelegate; +class Common; - class CppAppWidget : public QWidget - { - Q_OBJECT +class CppAppWidget : public QWidget +{ + Q_OBJECT + +public: + CppAppWidget( QWidget *parent=0, const char *name=0 ); - public: - CppAppWidget( QWidget *parent=0, const char *name=0 ); - ~CppAppWidget(); + bool LoadCmdLineInput( const QString& fname ); + +protected: + virtual void keyPressEvent( QKeyEvent* ); + virtual void mousePressEvent( QMouseEvent* ); + virtual void mouseReleaseEvent( QMouseEvent* ); + virtual void mouseMoveEvent( QMouseEvent* ); + virtual void mouseDoubleClickEvent( QMouseEvent* ); + virtual void resizeEvent( QResizeEvent* ); + virtual void dragEnterEvent( QDragEnterEvent* ); + virtual void dropEvent( QDropEvent* ); + virtual void customEvent( QCustomEvent* ); - bool LoadCmdLineInput(const char *fname); - bool HandlePush() { return m_handlePush; } - void FrameUpdate( const ml::frame_type_ptr &frame ); +private: + Common* m_impl; +}; - protected: - virtual void keyPressEvent( QKeyEvent* ); - - protected slots: - void toggleMaximized(); - void toggleFullScreen(); - - void onPlay(); - void onStepFwd(); - void onStepBack(); - void onLoad(); - void onLoadUrl(); - void onLoadSequence(); - void onStart(); - void onEnd(); - void onClose(); - void onSaveAs(); - void onViewHalfSize(); - void onViewNormalSize(); - void onViewDoubleSize(); - void onViewHideVideo(); - void onViewLoop(); - void onWindowInfo(); - void onWindowFavourites(); - void onWindowAddFav(); - void onHelp(); - void onAbout(); - void onCheckVersion(); - void checkVersionDone( const bool ); - void onCheckRelease( const bool ); - void checkReleaseDone( const bool, const bool ); - void onGotoWebsite(); - void onMruSelected(int); - void onFavSelected(int); - void onFavAdd(); - void onFavRemove(); - void updateFavMenu(); - void onShowMovieInfo(); - - void timeSliderPressed(); - void timeSliderReleased(); - void timeSliderMoved( int ); - void timeValueChanged( int ); - void timeInValueChanged( int ); - void timeOutValueChanged( int ); - void timeMinValueChanged( int ); - void timeMaxValueChanged( int ); - - void volumeSliderMoved( int ); - void muteToggled( bool ); - - void UrlLoadDone( const QString& fname ); - bool LoadInput( const QString& fname ); - - void mousePressEvent(QMouseEvent *); - void mouseReleaseEvent(QMouseEvent *); - void mouseMoveEvent(QMouseEvent *); - void mouseClickTimerEvent(); - void mouseDoubleClickEvent(QMouseEvent *); - void resizeEvent(QResizeEvent*); - void dragEnterEvent(QDragEnterEvent *de); - void dropEvent(QDropEvent *); - void customEvent(QCustomEvent* e); - - private: - bool SetupStores(); - void SimulatePlayClick(); - static QString MakeDefaultImageName(); - static bool IsDefaultImageName(const QString &str); - bool IsResizePos(const QPoint &pt); - bool LoadDefaultInput(); - int SliderToFrame(int val); - int FrameToSlider(int val); - void UpdateSliderPos(int pos); - void SetPlaybuttonState(bool on); - void SetVideoSizeFromStore(float scale = 1.0f); - void SetVideoSize(const QSize &size, float scale = 1.0f); - void SetSizeCheck(int index, bool set); - void ClearSizeChecks(); - void BuildMruMenu(QPopupMenu *menu); - void onLoad( bool isSequence ); - QString GetLastPath(); - void ShowBorderWidgets(bool show); - - QWidget* m_hTitlebar; - QWidget* m_hTitlelogo; - QWidget* m_playButton; - QWidget* m_timeSlider; - QWidget* m_volumeSlider; - int m_timeSliderMin; - int m_timeSliderMax; - bool m_timeSliderBlock; - bool m_timeSliderPlayState; - - bool m_draggingApp; - bool m_resizingApp; - bool m_resizingBlock; - bool m_fullScreen; - bool m_handlePush; - bool m_playerRefresh; - bool m_playControlPopup; - - QPopupMenu* m_menuView; - int m_menuViewHalfIndex; - int m_menuViewNormalIndex; - int m_menuViewDoubleIndex; - int m_menuViewShowIndex; - int m_menuViewLoopIndex; - QPopupMenu* m_fileMenu; - QPopupMenu* m_windowMenu; - QPopupMenu* m_mruMenu; - int m_mruItemRef; - QPopupMenu* m_favMenu; - int m_favItemRef; - - QPoint m_dragClickPos; - QSize m_dragAppSize; - QSize m_mediaSize; - CMruList m_mruList; - CFavourites m_favList; - QString m_lastFile; - int m_lastFrame; - QRect m_preFullScreenRect; - QRect m_preHideScreenRect; - -#if !defined(Q_OS_WIN32) && !defined(Q_OS_MACX) // Linux - QTimer m_resizeTimer; -#endif - - jw::widget_store* m_jwStore; - QWidget* m_storeAsWidget; - ml::store_type_ptr m_videoStore; - ml::store_type_ptr m_audioStore; - - QMutex m_frameCacheMutex; - ml::frame_type_ptr m_frameCache; - - IPlayerPtr m_player; - IPlayerCallbackPtr m_delegate; - - Download* m_download; - Info* m_info; - bool m_ver_appload; - Release* m_release; - ReleaseDlg* m_release_dialog; - int m_checkRelease; - int m_inPoint; - int m_outPoint; - bool m_ioPointBlock; - - -#ifdef BUILD_CINECODE - - protected: - - TrayDlg* m_encodeTray; - int m_encodeTrayItem; - -#endif //BUILD_CINECODE - - }; - } //namespace cineplay Modified: cinesuite/cineplay-cinecode/trunk/src/Common.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-02-27 17:21:27 UTC (rev 54) +++ cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-02-28 11:21:54 UTC (rev 55) @@ -19,3 +19,1340 @@ // For more information, see http://www.audiotube.com #include "Common.h" + +// local +#include "Browser.h" +#include "Download.h" +#include "Info.h" +#include "Release.h" +#include "ReleaseDlg.h" +#include "SetupDefs.h" +#include "SkinDlg.h" +#include "Version.h" +#include "PlayerDelegate.h" +#include "AddFavouriteDlg.h" +#include "RemoveFavouriteDlg.h" +#include "OpenGLStore.h" +#include "Utils.h" +#include "windows/main.h" +#include "windows/toolbar.h" +#include "windows/about.h" +#include "windows/addfav.h" +#include "windows/removefav.h" +#include "windows/styledlg.h" + +// qt +#include <qapplication.h> +#include <qcursor.h> +#include <qfiledialog.h> +#include <qstylefactory.h> +#include <qvariant.h> +#include <qmessagebox.h> +#include <qsettings.h> +#include <qdir.h> +#include <qdragobject.h> +#include <qevent.h> +#include <qlayout.h> +#include <qmenubar.h> +#include <qpopupmenu.h> +#include <qpushbutton.h> +#include <qlineedit.h> +#include <qcheckbox.h> +#include <qlistview.h> +#include <qnetwork.h> +#include <qregexp.h> +#include <qobjectlist.h> +#include <qthread.h> +#include <qgl.h> +#include <qlabel.h> + +// olibs +#include <openpluginlib/pl/openpluginlib.hpp> +#include <openpluginlib/pl/utf8_utils.hpp> + +#define RESIZE_DELAY 35 // minimal delay (in ms) in between two calls to the main window's resize() + + +namespace cineplay +{ + + +Common::Common( QWidget* parent ) + : QObject( parent ) + , m_parent( parent ) + , m_timeSliderMin(0) + , m_timeSliderMax(1) + , m_timeSliderBlock(false) + , m_timeSliderPlayState(false) + , m_draggingApp(false) + , m_resizingApp(false) + , m_resizingBlock(false) + , m_fullScreen(false) + , m_handlePush(false) + , m_playerRefresh(false) + , m_playControlPopup(false) + , m_mruMenu(0) + , m_mediaSize(0, 0) + , m_mruList(5) + , m_jwStore(NULL) + , m_player(IPlayerPtr()) + , m_delegate(IPlayerCallbackPtr()) + , m_download( NULL ) + , m_info( new Info( m_parent ) ) + , m_ver_appload ( true ) + , m_release( new Release() ) + , m_release_dialog( NULL ) + , m_checkRelease(1) + , m_ioPointBlock(false) +{ + //Init OpenLibraries + CineUtils::InitOpenLibraries( qApp->applicationDirPath() ); + + //Look for all our widgets and stuff + QWidget *mainWidget = new main( parent, "main" ); + CineUtils::AddWidgetToParentLayout( parent, mainWidget ); + parent->setCaption( SETTINGS_APPTITLE ); + + QWidget *ht = CineUtils::FindWidget( WIDGET_TOOLBARPLACE, mainWidget ); + QWidget *h2 = new toolbar( ht ); + CineUtils::AddWidgetToParentLayout( ht, h2 ); + + CineUtils::ConnectButtonTo(mainWidget, WIDGET_MINIMISE, m_parent, SLOT(showMinimized()) ); + CineUtils::ConnectButtonTo(mainWidget, WIDGET_MAXIMISE, this, SLOT(toggleMaximized()) ); + CineUtils::ConnectButtonTo(mainWidget, WIDGET_CLOSE, m_parent, SLOT(close()) ); + + m_playButton = CineUtils::ConnectButtonTo(h2, WIDGET_PLAY, this, SLOT(onPlay())); + CineUtils::ConnectButtonTo(h2, WIDGET_STEPBACK, this, SLOT(onStepBack())); + CineUtils::ConnectButtonTo(h2, WIDGET_STEPFWD, this, SLOT(onStepFwd())); + + CineUtils::ConnectButtonTo(h2, WIDGET_GOSTART, this, SLOT(onStart())); + CineUtils::ConnectButtonTo(h2, WIDGET_GOEND, this, SLOT(onEnd())); + + m_hTitlebar = CineUtils::FindWidget(WIDGET_TITLEBAR, mainWidget); + + //setup the jahwidgets::qt3::TimelineSlider + m_timeSlider = CineUtils::FindWidget( WIDGET_TIMESLIDER, h2 ); + + if( m_timeSlider ) + { + m_timeSlider->setProperty("maximum", QVariant(100000)); + m_timeSliderMin = m_timeSlider->property("minimum").toInt(); + m_timeSliderMax = m_timeSlider->property("maximum").toInt(); + m_timeSlider->setProperty("enableInOutControls", false); + } + + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(sliderPressed()), this, SLOT(timeSliderPressed())); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(sliderReleased()), this, SLOT(timeSliderReleased())); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(sliderMoved(int)), this, SLOT(timeSliderMoved(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(valueChanged(int)), this, SLOT(timeValueChanged(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(activeInValueChanged(int)), this, SLOT(timeInValueChanged(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(activeOutValueChanged(int)), this, SLOT(timeOutValueChanged(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(minValueChanged(int)), this, SLOT(timeMinValueChanged(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_TIMESLIDER, SIGNAL(maxValueChanged(int)), this, SLOT(timeMaxValueChanged(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_VOLUMESLIDER, SIGNAL(valueChanged(int)), this, SLOT(volumeSliderMoved(int))); + CineUtils::ConnectSignalTo(h2, WIDGET_MUTE, SIGNAL(toggled( bool )), this, SLOT(muteToggled(bool))); + + // setup the menu + QWidget* menubarPlaceholder = CineUtils::FindWidget( WIDGET_MENUBAR, mainWidget ); + +#ifdef Q_OS_MACX + menubarPlaceholder->hide(); +#endif + + QMenuBar* menubar = new QMenuBar( menubarPlaceholder ); + menubar->setFrameShape( QFrame::NoFrame ); + menubar->setPalette( menubarPlaceholder->palette() ); + menubar->setSeparator( QMenuBar::InWindowsStyle ); + + // file + m_fileMenu = new QPopupMenu( menubar ); + + //mru menu + m_mruMenu = new QPopupMenu( menubar ); + m_mruList.BuildMenu(m_mruMenu, this, SLOT( onMruSelected(int) ) ); + m_mruMenu->setPalette( menubarPlaceholder->palette() ); + + m_fileMenu->setPalette( menubarPlaceholder->palette() ); + m_fileMenu->insertItem( tr( "&open file..." ), this, SLOT( onLoad() ) ); + m_fileMenu->insertItem( tr( "open &url..." ), this, SLOT( onLoadUrl() ) ); + m_fileMenu->insertItem( tr( "open &sequence..." ), this, SLOT( onLoadSequence() ) ); + + m_mruItemRef = m_fileMenu->insertItem( tr( "open &recent" ), m_mruMenu ); + if(m_mruMenu->count() == 0) + m_fileMenu->setItemEnabled(m_mruItemRef, false); + + m_fileMenu->insertItem( tr( "&close" ), this, SLOT( onClose() ) ); + //m_fileMenu->insertItem( tr( "save &as" ), this, SLOT( onSaveAs() ) ); + m_fileMenu->insertItem( tr( "&quit" ), qApp, SLOT( quit() ) ); + menubar->insertItem( tr( "&File" ), m_fileMenu ); + + // view + m_menuView = new QPopupMenu( menubar ); + m_menuView->setPalette( menubarPlaceholder->palette() ); + m_menuViewHalfIndex = m_menuView->insertItem( tr( "&half size" ), this, SLOT( onViewHalfSize() ) ); + m_menuViewNormalIndex = m_menuView->insertItem( tr( "&normal size" ), this, SLOT( onViewNormalSize() ) ); + m_menuViewDoubleIndex = m_menuView->insertItem( tr( "&double size" ), this, SLOT( onViewDoubleSize() ) ); + m_menuView->insertItem( tr( "&full screen" ), this, SLOT( toggleFullScreen() ) ); + m_menuView->insertSeparator(); + m_menuViewShowIndex = m_menuView->insertItem( tr( "hide &video" ), this, SLOT( onViewHideVideo() ) ); + m_menuView->insertSeparator(); + m_menuViewLoopIndex = m_menuView->insertItem( tr( "&loop" ), this, SLOT( onViewLoop() ) ); + menubar->insertItem( tr( "&View" ), m_menuView ); + + // window + m_windowMenu = new QPopupMenu( menubar ); + m_windowMenu->setPalette( menubarPlaceholder->palette() ); + m_windowMenu->insertItem( tr( "&movie info" ), this, SLOT( onShowMovieInfo() ) ); + + m_favMenu = new QPopupMenu( menubar ); + m_favList.BuildMenu(m_favMenu, this, SLOT( onFavSelected(int) ) ); + m_favMenu->setPalette( menubarPlaceholder->palette() ); + + m_windowMenu->insertItem( tr( "&add favorite" ), this, SLOT( onFavAdd() ) ); + m_windowMenu->insertItem( tr( "&remove favorite" ), this, SLOT( onFavRemove() ) ); + + m_favItemRef = m_windowMenu->insertItem( tr( "&favorites" ), m_favMenu ); + updateFavMenu(); + + menubar->insertItem( tr( "&Window" ), m_windowMenu ); + + // help + QPopupMenu* help = new QPopupMenu( menubar ); + help->setPalette( menubarPlaceholder->palette() ); + help->insertItem( tr( "&help" ), this, SLOT( onHelp() ) ); + help->insertItem( tr( "&check for release" ), this, SLOT( onCheckVersion() ) ); + help->insertItem( tr( "&website" ), this, SLOT( onGotoWebsite() ) ); + help->insertItem( tr( "&about" ), this, SLOT( onAbout() ) ); + menubar->insertItem( "&Help", help ); + + if( !SetupStores() ) + { + QMessageBox::critical( m_parent, SETTINGS_APPTITLE, tr( "failed to initialise store objects." ) ); + return; + } + + //local registry settings + { + QSettings settings; + + m_volumeSlider = CineUtils::FindWidget( WIDGET_VOLUMESLIDER, h2 ); + + if(m_volumeSlider) + { + //HACK! jahwidgets slider on the mac is not working for now. +#ifdef Q_OS_MACX + m_volumeSlider->setProperty("thumb", QVariant(QPixmap()) ); + m_volumeSlider->setProperty("tray", QVariant(QPixmap()) ); +#endif + + int volume_max = m_volumeSlider->property( "maxValue" ).toInt(); + + int vol = settings.readNumEntry(SETTINGS_VOLUME, volume_max); + m_volumeSlider->setProperty( "value", vol ); + volumeSliderMoved(vol); + } + + //do not check for updates in case flag is set to value 0 + m_checkRelease = settings.readNumEntry( SETTINGS_CHECKUPDATE, 1 ); + if (m_checkRelease) + onCheckVersion(); + + //lastly before we show, load the last window pos + int xPos = settings.readNumEntry( SETTINGS_WINDOWXPOS, 200 ); + int yPos = settings.readNumEntry( SETTINGS_WINDOWYPOS, 200 ); + m_parent->move (xPos, yPos ); + } + + +// #ifdef BUILD_CINECODE + +// //create the encode tray +// m_encodeTray = new TrayDlg(this); + +// #endif //BUILD_CINECODE + + //if we only switch this on with fullscreen + QApplication::setGlobalMouseTracking(true); + + //we need to show before doing some last sizing stuff, otherwise Qt caches + // the size message and does it all later on. + LoadDefaultInput(); +} + +Common::~Common() +{ + m_player->unRegisterCallback( m_delegate ); + + QPoint pt = m_parent->pos(); + QSize sz = m_parent->size(); + + QSettings settings; + settings.writeEntry( SETTINGS_WINDOWXSIZE, sz.width() ); + settings.writeEntry( SETTINGS_WINDOWYSIZE, sz.height() ); + settings.writeEntry( SETTINGS_WINDOWXPOS, pt.x() ); + settings.writeEntry( SETTINGS_WINDOWYPOS, pt.y() ); + settings.writeEntry( SETTINGS_CHECKUPDATE, m_checkRelease ); +} + + +bool Common::SetupStores() +{ + //Setup the store object + QWidget *storePlace = CineUtils::FindWidget( WIDGET_STOREPLACE, m_parent ); + + if( storePlace == 0 ) + return false; + + QVBoxLayout *lo = new QVBoxLayout( storePlace ); + + QSettings settings; + QString storeTypeVideo, storeTypeAudio; + std::wstring convertFormat; + +#ifdef Q_OS_MACX + storeTypeVideo = settings.readEntry(SETTINGS_VIDEOSTORETYPE, "opengl"); + storeTypeAudio = settings.readEntry(SETTINGS_AUDIOSTORETYPE, "sdl"); +#else + storeTypeVideo = settings.readEntry(SETTINGS_VIDEOSTORETYPE, "opengl"); + storeTypeAudio = settings.readEntry(SETTINGS_AUDIOSTORETYPE, "sdl"); +#endif + + //Create the right video store object + { + m_storeAsWidget = 0; + + if( storeTypeVideo == "opengl" ) + { + jw::opengl_store *store = new jw::opengl_store(storePlace); + m_jwStore = store; + m_storeAsWidget = store; + m_handlePush = true; + } + else if( storeTypeVideo == "opengl2" ) + { + GLStore *store = new GLStore(storePlace); + if(store->IsBasicCapable()) + { + m_jwStore = store; + m_storeAsWidget = store; + m_handlePush = true; + convertFormat = L"b8g8r8a8"; + } + else + { + qWarning( "failed to create OpenGL2 store; IsBasicCapable() is false" ); + delete store; + } + } + + if( !m_storeAsWidget ) //default to sdl + { + qDebug( "Common::SetupStores: creating an SDL store for video" ); + jw::sdl_store *store = new jw::sdl_store(storePlace); + m_jwStore = store; + m_storeAsWidget = store; + m_handlePush = true; + m_playerRefresh = true; + } + + lo->addWidget( m_storeAsWidget ); + bool succ = m_jwStore->init( ml::frame_type_ptr() ); + if(!succ) + return false; + + m_videoStore = m_jwStore->store(); + if(m_videoStore == 0) + return false; + } + + { + if( storeTypeAudio == "openal" ) + { + qDebug( "Common::SetupStores: creating an openal store" ); + m_audioStore = ml::create_store("openal:", ml::frame_type_ptr() ); + } + else //default: sdl + { + qDebug( "Common::SetupStores: creating an SDL store for audio" ); + m_audioStore = ml::create_store("sdl_audio:", ml::frame_type_ptr() ); + } + } + + if( m_videoStore->init() == false) + return false; + if( m_audioStore && m_audioStore->init() == false) + return false; + + m_delegate = IPlayerCallbackPtr(new PlayerCallbackDelegate(this)); + + m_player = createPlayer( m_videoStore, m_audioStore ); + m_player->registerCallback( m_delegate ); + m_player->setVideoConvertFormat( convertFormat ); + m_storeAsWidget->setEnabled( true ); + + return true; +} + + + +//static +QString Common::MakeDefaultImageName() +{ + QString str = qApp->applicationDirPath(); +#ifdef Q_OS_MACX + str += "/../Resources/"; +#else //Q_OS_MACX + str += "/"; +#endif //Q_OS_MACX + str += SETTINGS_SPLASH; + return str; +} + + +bool Common::IsDefaultImageName(const QString &str) +{ + QString def = MakeDefaultImageName(); + if(str == def) + return true; + def += "/sequence:"; + if(str == def) + return true; + + return false; +} + + +bool Common::LoadDefaultInput() +{ + QString str = MakeDefaultImageName(); + return LoadInput(str); +} + + +void Common::SetVideoSizeFromStore(float scale /*= 1.0f*/) +{ + SetVideoSize( m_mediaSize, scale ); +} + + +void Common::SetVideoSize(const QSize &newSize, float scale /*= 1.0f*/) +{ + QSize storeSize = m_storeAsWidget->size(); + QSize sz = m_parent->size(); + sz = (newSize * scale) + (sz - storeSize); + + if(!m_fullScreen && !m_parent->isMaximized() ) + m_parent->resize(sz); + else + m_preFullScreenRect = QRect( m_parent->pos(), sz ); + +// #ifdef BUILD_CINECODE +// UpdateTrayPositions(); +// #endif //BUILD_CINECODE +} + + +bool Common::LoadInput( const QString& fname ) +{ + qDebug( "Common::LoadInput: %s", fname.ascii() ); + + if(m_info) + m_info->update( fname ); + + m_player->load(fname); + return true; +} + +bool Common::LoadCmdLineInput( const QString& fname ) +{ + if( LoadInput(fname) ) + { + m_player->play(); + return true; + } + else + return false; +} + +void Common::SimulatePlayClick() +{ + if(m_playButton) + { + bool tog = m_playButton->property("on").toBool(); + tog = !tog; + m_playButton->setProperty( "on", tog ); + onPlay(); + } +} + +void Common::keyPressEvent( QKeyEvent* e ) +{ + switch( e->key() ) + { + case Qt::Key_Escape: + if(m_fullScreen) + toggleFullScreen(); + break; + case Qt::Key_Space: + SimulatePlayClick(); + break; + case Qt::Key_Left: + if(!m_player->isPlaying()) + m_player->seek(-1, true); + break; + case Qt::Key_Right: + if(!m_player->isPlaying()) + m_player->seek(1, true); + break; + case Qt::Key_0: + onViewHalfSize(); + break; + case Qt::Key_1: + onViewNormalSize(); + break; + case Qt::Key_2: + onViewDoubleSize(); + break; + case Qt::Key_F: + toggleFullScreen(); + break; + } +} + + +void Common::toggleMaximized() +{ + if( m_parent->isMaximized() ) + m_parent->showNormal(); + else + { +// #ifdef BUILD_CINECODE +// HideEncodeTray(); +// #endif //BUILD_CINECODE + m_parent->showMaximized(); + } +} + +void Common::ShowBorderWidgets(bool show) +{ + CineUtils::ShowWidget( m_parent, "titlebar", show ); + CineUtils::ShowWidget( m_parent, "titlebar_left", show ); + CineUtils::ShowWidget( m_parent, "titlebar_center", show ); + CineUtils::ShowWidget( m_parent, "titlebar_right", show ); + CineUtils::ShowWidget( m_parent, "frame16", show ); + CineUtils::ShowWidget( m_parent, "frame17", show ); + CineUtils::ShowWidget( m_parent, WIDGET_MENUBAR, show ); + CineUtils::ShowWidget( m_parent, WIDGET_TOOLBARPLACE, show ); +} + +void Common::toggleFullScreen() +{ + if(m_fullScreen) + { + ShowBorderWidgets(true); + ... [truncated message content] |
From: <tim...@us...> - 2008-02-29 09:13:31
|
Revision: 56 http://editopia.svn.sourceforge.net/editopia/?rev=56&view=rev Author: timdewhirst Date: 2008-02-29 01:13:28 -0800 (Fri, 29 Feb 2008) Log Message: ----------- cineplay - more tidying up in preparation for tray re-working Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp cinesuite/cineplay-cinecode/trunk/src/CinePlay.h cinesuite/cineplay-cinecode/trunk/src/Command.h cinesuite/cineplay-cinecode/trunk/src/EncodeJob.cpp cinesuite/cineplay-cinecode/trunk/src/EncodeJob.h cinesuite/cineplay-cinecode/trunk/src/FilterGraph.cpp cinesuite/cineplay-cinecode/trunk/src/FilterGraph.h cinesuite/cineplay-cinecode/trunk/src/SetupDefs.h cinesuite/cineplay-cinecode/trunk/src/SkinDlg.cpp cinesuite/cineplay-cinecode/trunk/src/SkinDlg.h cinesuite/cineplay-cinecode/trunk/src/TrayDlg.cpp cinesuite/cineplay-cinecode/trunk/src/TrayDlg.h cinesuite/cineplay-cinecode/trunk/src/TrayEntryWidget.cpp cinesuite/cineplay-cinecode/trunk/src/Utils.cpp cinesuite/cineplay-cinecode/trunk/src/Utils.h cinesuite/cineplay-cinecode/trunk/src/cinecode.pro cinesuite/cineplay-cinecode/trunk/src/windows/addfav.ui cinesuite/cineplay-cinecode/trunk/src/windows/removefav.ui Added Paths: ----------- cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp cinesuite/cineplay-cinecode/trunk/src/CineCode.h cinesuite/cineplay-cinecode/trunk/src/Tray.h Added: cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp 2008-02-29 09:13:28 UTC (rev 56) @@ -0,0 +1,119 @@ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ + +// This file is part of Cineplay +// +// Cineplay is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Cineplay is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com + +// local +#include "CineCode.h" +#include "Common.h" +#include "Theme.h" + +// qt +#include <qapplication.h> +#include <qnetwork.h> + +namespace cineplay +{ + + +CineCode::CineCode( QWidget *parent, const char *name ) + : QWidget( parent, name, Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WStyle_SysMenu ), + m_impl( new Common( this ) ) +{ + //general main window setup + setAcceptDrops( true ); +} + +bool CineCode::LoadCmdLineInput( const QString& fname ) +{ + return m_impl->LoadCmdLineInput( fname ); +} + +void CineCode::keyPressEvent( QKeyEvent* e ) +{ + QWidget::keyPressEvent( e ); + m_impl->keyPressEvent( e ); +} + +void CineCode::mouseDoubleClickEvent( QMouseEvent* e ) +{ + m_impl->mouseDoubleClickEvent( e ); +} + +void CineCode::mousePressEvent( QMouseEvent* e ) +{ + m_impl->mousePressEvent( e ); +} + +void CineCode::mouseMoveEvent( QMouseEvent* e ) +{ + m_impl->mouseMoveEvent( e ); +} + +void CineCode::mouseReleaseEvent( QMouseEvent* e ) +{ + m_impl->mouseReleaseEvent( e ); +} + +void CineCode::resizeEvent( QResizeEvent* e ) +{ + m_impl->resizeEvent( e ); +} + +void CineCode::dragEnterEvent( QDragEnterEvent* e ) +{ + m_impl->dragEnterEvent( e ); +} + +void CineCode::dropEvent( QDropEvent* e ) +{ + m_impl->dropEvent( e ); +} + +void CineCode::customEvent( QCustomEvent* e ) +{ + m_impl->customEvent( e ); +} + +} //namespace cineplay + + +int main( int argc, char **argv ) +{ + QApplication::setColorSpec( QApplication::CustomColor ); + QApplication a( argc, argv ); + + qInitNetworkProtocols(); + + a.setStyle( new cineplay::Theme ); + + cineplay::CineCode* app = new cineplay::CineCode; + + a.setMainWidget( app ); + + if( argc == 2 ) + { + if( !app->LoadCmdLineInput( argv[1] ) ) + return -1; + } + + app->show(); + + return a.exec(); +} + Added: cinesuite/cineplay-cinecode/trunk/src/CineCode.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CineCode.h (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/CineCode.h 2008-02-29 09:13:28 UTC (rev 56) @@ -0,0 +1,57 @@ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ + +// This file is part of Cineplay +// +// Cineplay is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Cineplay is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com + + +#pragma once + +// qt +#include <qwidget.h> + +namespace cineplay +{ + +class Common; + +class CineCode : public QWidget +{ + Q_OBJECT + +public: + CineCode( QWidget *parent=0, const char *name=0 ); + + bool LoadCmdLineInput( const QString& fname ); + +protected: + virtual void keyPressEvent( QKeyEvent* ); + virtual void mousePressEvent( QMouseEvent* ); + virtual void mouseReleaseEvent( QMouseEvent* ); + virtual void mouseMoveEvent( QMouseEvent* ); + virtual void mouseDoubleClickEvent( QMouseEvent* ); + virtual void resizeEvent( QResizeEvent* ); + virtual void dragEnterEvent( QDragEnterEvent* ); + virtual void dropEvent( QDropEvent* ); + virtual void customEvent( QCustomEvent* ); + +private: + Common* m_impl; +}; + +} //namespace cineplay + Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-02-29 09:13:28 UTC (rev 56) @@ -31,7 +31,7 @@ { -CppAppWidget::CppAppWidget( QWidget *parent, const char *name ) +CinePlay::CinePlay( QWidget *parent, const char *name ) : QWidget( parent, name, Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WStyle_SysMenu ), m_impl( new Common( this ) ) { @@ -39,53 +39,53 @@ setAcceptDrops( true ); } -bool CppAppWidget::LoadCmdLineInput( const QString& fname ) +bool CinePlay::LoadCmdLineInput( const QString& fname ) { - m_impl->LoadCmdLineInput( fname ); + return m_impl->LoadCmdLineInput( fname ); } -void CppAppWidget::keyPressEvent( QKeyEvent* e ) +void CinePlay::keyPressEvent( QKeyEvent* e ) { QWidget::keyPressEvent( e ); m_impl->keyPressEvent( e ); } -void CppAppWidget::mouseDoubleClickEvent( QMouseEvent* e ) +void CinePlay::mouseDoubleClickEvent( QMouseEvent* e ) { m_impl->mouseDoubleClickEvent( e ); } -void CppAppWidget::mousePressEvent( QMouseEvent* e ) +void CinePlay::mousePressEvent( QMouseEvent* e ) { m_impl->mousePressEvent( e ); } -void CppAppWidget::mouseMoveEvent( QMouseEvent* e ) +void CinePlay::mouseMoveEvent( QMouseEvent* e ) { m_impl->mouseMoveEvent( e ); } -void CppAppWidget::mouseReleaseEvent( QMouseEvent* e ) +void CinePlay::mouseReleaseEvent( QMouseEvent* e ) { m_impl->mouseReleaseEvent( e ); } -void CppAppWidget::resizeEvent( QResizeEvent* e ) +void CinePlay::resizeEvent( QResizeEvent* e ) { m_impl->resizeEvent( e ); } -void CppAppWidget::dragEnterEvent( QDragEnterEvent* e ) +void CinePlay::dragEnterEvent( QDragEnterEvent* e ) { m_impl->dragEnterEvent( e ); } -void CppAppWidget::dropEvent( QDropEvent* e ) +void CinePlay::dropEvent( QDropEvent* e ) { m_impl->dropEvent( e ); } -void CppAppWidget::customEvent( QCustomEvent* e ) +void CinePlay::customEvent( QCustomEvent* e ) { m_impl->customEvent( e ); } @@ -102,7 +102,7 @@ a.setStyle( new cineplay::Theme ); - cineplay::CppAppWidget* app = new cineplay::CppAppWidget; + cineplay::CinePlay* app = new cineplay::CinePlay; a.setMainWidget( app ); Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-02-29 09:13:28 UTC (rev 56) @@ -29,12 +29,12 @@ class Common; -class CppAppWidget : public QWidget +class CinePlay : public QWidget { Q_OBJECT public: - CppAppWidget( QWidget *parent=0, const char *name=0 ); + CinePlay( QWidget *parent=0, const char *name=0 ); bool LoadCmdLineInput( const QString& fname ); Modified: cinesuite/cineplay-cinecode/trunk/src/Command.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Command.h 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/Command.h 2008-02-29 09:13:28 UTC (rev 56) @@ -19,10 +19,8 @@ // For more information, see http://www.audiotube.com -#ifndef CINEPLAY_COMMAND_H -#define CINEPLAY_COMMAND_H +#pragma once - #include <boost/shared_ptr.hpp> #include <deque> #include "qmutex.h" @@ -70,5 +68,3 @@ } //namespace cineplay - -#endif //CINEPLAY_COMMAND_H Modified: cinesuite/cineplay-cinecode/trunk/src/EncodeJob.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/EncodeJob.cpp 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/EncodeJob.cpp 2008-02-29 09:13:28 UTC (rev 56) @@ -1,3 +1,25 @@ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ + +// This file is part of Cineplay +// +// Cineplay is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Cineplay is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com + + +// local #include "EncodeJob.h" #include "Command.h" #include "FilterGraph.h" @@ -3,10 +25,10 @@ #include "Utils.h" -#include "qthread.h" -#include "qfileinfo.h" -#include "qapplication.h" +// qt +#include <qthread.h> +#include <qfileinfo.h> +#include <qapplication.h> - namespace cineplay { @@ -61,9 +83,9 @@ { protected: - std::wstring m_cfgfile; - std::wstring m_infile; - std::wstring m_outfile; + QString m_cfgfile; + QString m_infile; + QString m_outfile; EncodeJobCallback* m_cb; bool m_paused; CommandQueue m_commandQueue; @@ -75,7 +97,7 @@ public: - FGEncodeJob(const std::wstring &cfg, const std::wstring &infile, const std::wstring &outfile, int startFrame, int endFrame); + FGEncodeJob( const QString& cfg, const QString& infile, const QString& outfile, int startFrame, int endFrame ); ~FGEncodeJob(); //QThread @@ -85,8 +107,8 @@ void Pause(); void Resume(); void Cancel(); - std::wstring GetInputFilename(); - std::wstring GetOutputFilename(); + QString GetInputFilename(); + QString GetOutputFilename(); friend class EncodePauseCommand; friend class EncodeCancelCommand; @@ -94,13 +116,6 @@ }; - class FGEncodeManager : public EncodeManager - { - public: - EncodeJob *BeginJob(const std::wstring &infile, const std::wstring &outfile, int startFrame, int endFrame); - }; - - ///////////////////////// @@ -123,7 +138,7 @@ } - FGEncodeJob::FGEncodeJob(const std::wstring &cfg, const std::wstring &infile, const std::wstring &outfile, int startpos, int endpos) + FGEncodeJob::FGEncodeJob( const QString& cfg, const QString& infile, const QString& outfile, int startpos, int endpos ) { m_cb = 0; m_cfgfile = cfg; @@ -163,12 +178,12 @@ FilterGraph *fg = new FilterGraph; FilterGraphLoader ldr; - fg->SetDefaultInput( m_infile ); - fg->SetDefaultStore( m_outfile ); + fg->SetDefaultInput( CineUtils::ToWString( m_infile ) ); + fg->SetDefaultStore( CineUtils::ToWString( m_outfile ) ); - bool succ = ldr.Load( m_cfgfile, fg); + bool succ = ldr.Load( CineUtils::ToWString( m_cfgfile ), fg ); - if(succ == false) + if( !succ ) { m_threadRunning = true; if(m_cb) @@ -184,7 +199,7 @@ int frameCounter = m_startFrame; //running - while(m_threadRunning) + while( m_threadRunning ) { if(m_paused) m_commandQueue.waitForCommands(); @@ -245,8 +260,7 @@ if(m_clearFile) { - QString qfname = QString::fromUcs2( (unsigned short *)m_outfile.c_str() ); - CineUtils::deletefile(qfname); + CineUtils::deletefile( m_outfile ); } } @@ -272,22 +286,28 @@ m_commandQueue.postCommand( EncodeCancelCommand::Create(this) ); } - std::wstring FGEncodeJob::GetInputFilename() + QString FGEncodeJob::GetInputFilename() { return m_infile; } - std::wstring FGEncodeJob::GetOutputFilename() + QString FGEncodeJob::GetOutputFilename() { return m_outfile; } + + EncodeManager::EncodeManager() + {} - EncodeJob *FGEncodeManager::BeginJob(const std::wstring &infile, const std::wstring &outfile, int startFrame, int endFrame) + EncodeManager::~EncodeManager() + {} + + EncodeJob *EncodeManager::BeginJob( const QString& infile, const QString& outfile, int startFrame, int endFrame ) { //Make sure we have a .flv extension on the output filename - QFileInfo pinfo( QString::fromUcs2( (unsigned short *) outfile.c_str() ) ); + QFileInfo pinfo( outfile ); //we are an flv encoder QString path = pinfo.dirPath(); @@ -301,14 +321,17 @@ fgPath += "/fg_flash.xml"; #endif - FGEncodeJob *job = new FGEncodeJob( (wchar_t*)fgPath.ucs2(), infile, (wchar_t*)(str.ucs2()), startFrame, endFrame ); + FGEncodeJob *job = new FGEncodeJob( fgPath, infile, str, startFrame, endFrame ); return job; } + EncodeManager* EncodeManager::instance() + { + static EncodeManager* static_manager = NULL; + if ( !static_manager ) + static_manager = new EncodeManager; - EncodeManager* CreateEncodeManager() - { - return new FGEncodeManager(); + return static_manager; } Modified: cinesuite/cineplay-cinecode/trunk/src/EncodeJob.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/EncodeJob.h 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/EncodeJob.h 2008-02-29 09:13:28 UTC (rev 56) @@ -19,10 +19,8 @@ // For more information, see http://www.audiotube.com -#ifndef CINEPLAY_ENCODE_JOB_H -#define CINEPLAY_ENCODE_JOB_H +#pragma once - #include <qstring.h> #include <qstringlist.h> #include <qvaluelist.h> @@ -32,46 +30,44 @@ namespace cineplay { - class EncodeJobCallback - { - public: - virtual ~EncodeJobCallback() {} +class EncodeJobCallback +{ +public: + virtual ~EncodeJobCallback() {} + + virtual void Pausing() = 0; + virtual void Continuing() = 0; + virtual void Progress(float percent) = 0; + virtual void Cancelling() = 0; + virtual void Finished() = 0; + virtual void Error(int code) = 0; +}; - virtual void Pausing() = 0; - virtual void Continuing() = 0; - virtual void Progress(float percent) = 0; - virtual void Cancelling() = 0; - virtual void Finished() = 0; - virtual void Error(int code) = 0; - }; + +class EncodeJob +{ +public: + virtual ~EncodeJob() {} + + virtual void SetCallback(EncodeJobCallback*) = 0; + virtual void Pause() = 0; + virtual void Resume() = 0; + virtual void Cancel() = 0; + virtual QString GetInputFilename() = 0; + virtual QString GetOutputFilename() = 0; +}; + +class EncodeManager +{ +public: + virtual ~EncodeManager(); + + EncodeJob* BeginJob( const QString& infile, const QString& outfile, int startFrame, int endFrame ); + static EncodeManager* instance(); + +private: + EncodeManager(); +}; - - class EncodeJob - { - public: - virtual ~EncodeJob() {} - - virtual void SetCallback(EncodeJobCallback*) = 0; - virtual void Pause() = 0; - virtual void Resume() = 0; - virtual void Cancel() = 0; - virtual std::wstring GetInputFilename() = 0; - virtual std::wstring GetOutputFilename() = 0; - }; - - class EncodeManager - { - public: - virtual ~EncodeManager() {} - - virtual EncodeJob* BeginJob(const std::wstring &infile, const std::wstring &outfile, int startFrame, int endFrame) = 0; - }; - - - EncodeManager* CreateEncodeManager(); - - } //namespace cineplay - -#endif //CINEPLAY_ENCODE_JOB_H Modified: cinesuite/cineplay-cinecode/trunk/src/FilterGraph.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/FilterGraph.cpp 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/FilterGraph.cpp 2008-02-29 09:13:28 UTC (rev 56) @@ -86,22 +86,22 @@ -FilterGraphInput::FilterGraphInput(const ml::input_type_ptr &node, const std::wstring &name) +FilterGraphInput::FilterGraphInput( const ml::input_type_ptr &node, const std::wstring& name ) { m_node = node; m_name = name; } -FilterGraphNode::FilterGraphNode(const ml::filter_type_ptr &node, const std::wstring &name) -: FilterGraphInput(node, name) +FilterGraphNode::FilterGraphNode( const ml::filter_type_ptr &node, const std::wstring& name ) + : FilterGraphInput(node, name) { m_fnode = node; } -FilterGraphStore::FilterGraphStore(const ml::store_type_ptr &node, const std::wstring name) +FilterGraphStore::FilterGraphStore( const ml::store_type_ptr &node, const std::wstring& name ) { m_node = node; m_name = name; Modified: cinesuite/cineplay-cinecode/trunk/src/FilterGraph.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/FilterGraph.h 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/FilterGraph.h 2008-02-29 09:13:28 UTC (rev 56) @@ -1,8 +1,26 @@ -#ifndef __SCENE_GRAPH__ -#define __SCENE_GRAPH__ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ +// This file is part of Cineplay +// +// Cineplay is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Cineplay is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com +#pragma once + //#include <openmedialib/ml/openmedialib_plugin.hpp> #include <openmedialib/ml/ml.hpp> @@ -22,133 +40,123 @@ class FGException : public std::exception { public: - FGException(const char *str); - FGException(const char *node, const char *err); - FGException(const char *node, const char *err, const char *err2); - FGException(const char *file, const char *err, int line); - FGException(const wchar_t *str); - FGException(const wchar_t *node, const wchar_t *err); - FGException(const wchar_t *node, const wchar_t *err, const wchar_t *err2); - FGException(const wchar_t *file, const wchar_t *err, int line); + FGException( const char *str ); + FGException( const char *node, const char *err ); + FGException( const char *node, const char *err, const char *err2 ); + FGException( const char *file, const char *err, int line ); + FGException( const wchar_t *str ); + FGException( const wchar_t *node, const wchar_t *err ); + FGException( const wchar_t *node, const wchar_t *err, const wchar_t *err2 ); + FGException( const wchar_t *file, const wchar_t *err, int line ); }; - - class FilterGraphInput { protected: + ml::input_type_ptr m_node; + std::wstring m_name; - ml::input_type_ptr m_node; - std::wstring m_name; - public: - - FilterGraphInput(const ml::input_type_ptr &node, const std::wstring &name); + FilterGraphInput( const ml::input_type_ptr& node, const std::wstring& name ); virtual ~FilterGraphInput() {} + + const ml::input_type_ptr& node() { return m_node; } + const std::wstring& name() { return m_name; } + ml::frame_type_ptr fetch() { return m_node->fetch(); } - const ml::input_type_ptr& node() { return m_node; } - const std::wstring& name() { return m_name; } - ml::frame_type_ptr fetch() { return m_node->fetch(); } - operator ml::input_type_ptr() { return m_node; } - virtual bool IsFilter() { return false; } - virtual ml::filter_type_ptr GetAsFilter() { return ml::filter_type_ptr(); } + virtual bool IsFilter() { return false; } + virtual ml::filter_type_ptr GetAsFilter() { return ml::filter_type_ptr(); } }; - class FilterGraphNode : public FilterGraphInput { protected: + ml::filter_type_ptr m_fnode; - ml::filter_type_ptr m_fnode; - public: + FilterGraphNode( const ml::filter_type_ptr& node, const std::wstring& name ); - FilterGraphNode(const ml::filter_type_ptr &node, const std::wstring &name); - - const ml::filter_type_ptr& filter() { return m_fnode; } + const ml::filter_type_ptr& filter() { return m_fnode; } operator ml::filter_type_ptr() { return m_fnode; } - bool IsFilter() { return true; } - ml::filter_type_ptr GetAsFilter() { return filter(); } - + bool IsFilter() { return true; } + ml::filter_type_ptr GetAsFilter() { return filter(); } }; class FilterGraphStore { protected: - ml::store_type_ptr m_node; - std::wstring m_name; - FilterGraphInput* m_input; + ml::store_type_ptr m_node; + std::wstring m_name; + FilterGraphInput* m_input; - virtual void PushFrame(const ml::frame_type_ptr &frame); + virtual void PushFrame( const ml::frame_type_ptr& frame ); public: - FilterGraphStore(const ml::store_type_ptr &node, const std::wstring name); + FilterGraphStore( const ml::store_type_ptr& node, const std::wstring& name ); virtual ~FilterGraphStore(); - void SetInput(FilterGraphInput*); - - const ml::store_type_ptr& node() { return m_node; } - const std::wstring& name() { return m_name; } - - virtual void Init(); - void Seek(int pos, bool rel = false); - virtual bool FrameUpdate(); - virtual void Complete(); - unsigned int GetProgress(); + void SetInput(FilterGraphInput*); + + const ml::store_type_ptr& node() { return m_node; } + const std::wstring& name() { return m_name; } + + virtual void Init(); + void Seek(int pos, bool rel = false); + virtual bool FrameUpdate(); + virtual void Complete(); + unsigned int GetProgress(); }; - -typedef std::vector<FilterGraphNode*> FGNodeVector; -typedef std::vector<FilterGraphInput*> FGInputVector; -typedef std::vector<FilterGraphStore*> FGStoreVector; +typedef std::vector<FilterGraphNode*> FGNodeVector; +typedef std::vector<FilterGraphInput*> FGInputVector; +typedef std::vector<FilterGraphStore*> FGStoreVector; typedef std::map<std::wstring, std::wstring> WStringMap; class FilterGraph { protected: + FGNodeVector m_filters; + FGInputVector m_inputs; + FGStoreVector m_stores; + WStringMap m_vars; + std::wstring m_defaultInput; + std::wstring m_defaultStore; - FGNodeVector m_filters; - FGInputVector m_inputs; - FGStoreVector m_stores; - WStringMap m_vars; - std::wstring m_defaultInput; - std::wstring m_defaultStore; + bool ShouldSet(const std::wstring name, bool overwrite); - bool ShouldSet(const std::wstring name, bool overwrite); - public: - FilterGraph(); - ~FilterGraph(); + FilterGraph(); + ~FilterGraph(); - template <typename T> void SetVar(const std::wstring name, T value, bool overwrite = false); - - bool HaveVar(const std::wstring name); - std::wstring Var(const std::wstring &str); + template <typename T> void SetVar(const std::wstring name, T value, bool overwrite = false); + + bool HaveVar(const std::wstring name); + std::wstring Var(const std::wstring &str); - void SetDefaultInput(const std::wstring &name); - void SetDefaultStore(const std::wstring &name); - FilterGraphNode* PushFilter(const std::wstring &name, const std::wstring &type); - FilterGraphNode* SearchFilter(const std::wstring &name, bool thrw = true); - FilterGraphInput* PushInput(const std::wstring &name, const std::wstring &type); - FilterGraphInput* SearchInput(const std::wstring &name, bool noFilter = false, bool thrw = true); - FilterGraphStore* PushStore(const std::wstring &name, const std::wstring &type, const ml::frame_type_ptr &frame = ml::frame_type_ptr() ); - FilterGraphStore* SearchStore(const std::wstring &name, bool thrw = true); - void Connect(const std::wstring &from, const std::wstring &to, int index = 0); + void SetDefaultInput(const std::wstring &name); + void SetDefaultStore(const std::wstring &name); + FilterGraphNode* PushFilter(const std::wstring &name, const std::wstring &type); + FilterGraphNode* SearchFilter(const std::wstring &name, bool thrw = true); + FilterGraphInput* PushInput(const std::wstring &name, const std::wstring &type); + FilterGraphInput* SearchInput(const std::wstring &name, bool noFilter = false, bool thrw = true); + FilterGraphStore* PushStore(const std::wstring &name, const std::wstring &type, const ml::frame_type_ptr &frame = ml::frame_type_ptr() ); + FilterGraphStore* SearchStore(const std::wstring &name, bool thrw = true); + void Connect(const std::wstring &from, const std::wstring &to, int index = 0); - void InitStores(); - bool StepStores(); - void SeekStores(int pos, bool rel = false); - void CompleteStores(); - unsigned int GetProgress(); + void InitStores(); + bool StepStores(); + void SeekStores(int pos, bool rel = false); + void CompleteStores(); + unsigned int GetProgress(); - //Encapsulates init, and step till end, and complete - void RunStores(); + //Encapsulates init, and step till end, and complete + void RunStores(); }; @@ -156,12 +164,12 @@ template <typename T> void FilterGraph::SetVar(const std::wstring name, T value, bool overwrite) { - if( ShouldSet(name, overwrite) ) - { - std::wstringstream strm; - strm << value; - m_vars[name] = strm.str(); - } + if( ShouldSet(name, overwrite) ) + { + std::wstringstream strm; + strm << value; + m_vars[name] = strm.str(); + } } @@ -170,9 +178,7 @@ { protected: public: - bool Load(const std::wstring &filename, FilterGraph *inOutGraph); - bool Load(FilterGraph *graph, const char *xmlRaw); + bool Load(const std::wstring &filename, FilterGraph *inOutGraph); + bool Load(FilterGraph *graph, const char *xmlRaw); }; - -#endif //__SCENE_GRAPH__ Modified: cinesuite/cineplay-cinecode/trunk/src/SetupDefs.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/SetupDefs.h 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/SetupDefs.h 2008-02-29 09:13:28 UTC (rev 56) @@ -19,10 +19,8 @@ // For more information, see http://www.audiotube.com -#ifndef CINEPLAY_SETUPDEFS_H -#define CINEPLAY_SETUPDEFS_H +#pragma once - //settings paths #ifdef BUILD_CINECODE @@ -86,6 +84,3 @@ #define customEventID_EncodeEvent 7710 - - -#endif //CINEPLAY_SETUPDEFS_H Modified: cinesuite/cineplay-cinecode/trunk/src/SkinDlg.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/SkinDlg.cpp 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/SkinDlg.cpp 2008-02-29 09:13:28 UTC (rev 56) @@ -1,21 +1,45 @@ /* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ + +// This file is part of Cineplay +// +// Cineplay is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Cineplay is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com + #include "SkinDlg.h" +// local +#include "Utils.h" + +// qt #include <qobjectlist.h> #include <qlayout.h> #include <qcursor.h> -SkinDialog::SkinDialog( QWidget* parent ) :styledlg(parent, "dlg", TRUE, Qt::WStyle_Customize | Qt::WStyle_NoBorder) +SkinDialog::SkinDialog( QWidget* parent ) + : styledlg( parent, "dlg", TRUE, Qt::WStyle_Customize | Qt::WStyle_NoBorder ) { - m_titleClickWidget = FindWidget("style_titlebar_center", this); + m_titleClickWidget = CineUtils::FindWidget( "style_titlebar_center", this ); m_allowResize = true; m_draggingApp = false; m_resizingApp = false; m_contentWidget = 0; - QWidget *close = FindWidget("style_close", this); + QWidget *close = CineUtils::FindWidget( "style_close", this ); if(close) QObject::connect( close, SIGNAL(clicked()), this, SLOT(reject()) ); } @@ -23,30 +47,16 @@ void SkinDialog::ConnectStandardButtons(QWidget *) { - ConnectCtrlButton("OK", true); - ConnectCtrlButton("Ok", true); ConnectCtrlButton("ok", true); - - ConnectCtrlButton("Cancel", false); ConnectCtrlButton("cancel", false); } -QWidget *SkinDialog::FindWidget(const char *name, QWidget *) -{ - std::auto_ptr< QObjectList > objList( queryList( NULL, name, false /* no regexp */ ) ); - if ( objList->isEmpty() ) - return 0; - else - return dynamic_cast< QWidget* >( objList->first() ); -} - - void SkinDialog::ConnectCtrlButton(const char *widgetName, bool accept) { if(m_contentWidget) { - QWidget *button = FindWidget(widgetName, m_contentWidget); + QWidget *button = CineUtils::FindWidget( widgetName, m_contentWidget ); if(button) QObject::connect( button, SIGNAL(clicked()), this, accept ? SLOT(accept()) : SLOT(reject()) ); } @@ -57,21 +67,15 @@ { if(m_contentWidget == 0) { - QWidget *placeholder = FindWidget("style_content_placeholder", this); + QWidget *placeholder = CineUtils::FindWidget( "style_content_placeholder", this ); if(placeholder) { m_contentWidget = w; QLayout *lo = new QVBoxLayout( placeholder, 0, 0, "mainLayout"); - - w->reparent(placeholder, Qt::WStyle_NoBorder, QPoint(0, 0), true); - + w->reparent(placeholder, Qt::WStyle_NoBorder, QPoint(), true); ConnectStandardButtons(w); - - //see below for this effort - //w->installEventFilter(this); - lo->add(w); resize( w->size() ); @@ -79,35 +83,6 @@ } } - -bool SkinDialog::eventFilter( QObject *, QEvent * ) -{ - //We could use this approach when we dont know buttons to connect to - // but then we cant pass the reight response back to the caller - -// if(e->type() == QEvent::Hide) -// { -// m_contentWidget->removeEventFilter(this); -// //setResult - -// /* -// //this is a hack, but it wont work because the dlg hasnt set its result yet -// QDialog *dlg = dynamic_cast<QDialog*>(o); -// if(dlg) -// { -// int res = dlg->result(); -// setResult(res); -// } -// // - -// QDialog::close(); -// return TRUE; -// } - - return FALSE; -} - - void SkinDialog::SetAllowResize(bool on) { m_allowResize = on; @@ -192,16 +167,6 @@ bool SkinDialog::event( QEvent *e ) { - -/* -id = 51 : AccelOverride -id = 30 : Accel -id = 72 : LayoutHint -id = 11 : Leave -id = 10 : Enter -id = 7 : KeyRelease -*/ - int id = e->type(); if(id == QEvent::AccelOverride) Modified: cinesuite/cineplay-cinecode/trunk/src/SkinDlg.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/SkinDlg.h 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/SkinDlg.h 2008-02-29 09:13:28 UTC (rev 56) @@ -19,10 +19,8 @@ // For more information, see http://www.audiotube.com -#ifndef SKINDLG_H -#define SKINDLG_H +#pragma once - #include "windows/styledlg.h" @@ -38,7 +36,6 @@ QPoint m_dragClickPos; QSize m_dragAppSize; - QWidget* FindWidget(const char *name, QWidget *parent); bool IsResizePos(const QPoint &pt); void ConnectStandardButtons(QWidget *parent); @@ -59,5 +56,3 @@ }; - -#endif //SKINDLG_H Added: cinesuite/cineplay-cinecode/trunk/src/Tray.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Tray.h (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/Tray.h 2008-02-29 09:13:28 UTC (rev 56) @@ -0,0 +1,37 @@ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ + +// This file is part of Cineplay +// +// Cineplay is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Cineplay is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com + +#pragma once + +/// a tray widget that can be placed on any edge of the top level window +class Tray : public QWidget +{ +public: + enum { LOCATION_TOP, + LOCATION_BOTTOM, + LOCATION_LEFT, + LOCATION_RIGHT }; + + /// parent must be passed in; this tray will monitor the parent + /// for changes in size and position; having more than one tray + /// visible per size will result in undefined behaviour + Tray( QWidget* parent ); + QWidget* placeholder() const; +}; Modified: cinesuite/cineplay-cinecode/trunk/src/TrayDlg.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/TrayDlg.cpp 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/TrayDlg.cpp 2008-02-29 09:13:28 UTC (rev 56) @@ -117,8 +117,7 @@ SetState(Yellow); - std::wstring fname = job->GetInputFilename(); - QFileInfo finfo( QString::fromUcs2( (unsigned short *) fname.c_str() ) ); + QFileInfo finfo( job->GetInputFilename() ); m_entryWidget->name_label->setText( finfo.baseName(TRUE) ); m_entryWidget->size_label->setText( "desktop" ); m_entryWidget->bottom_label->setText("cancel"); @@ -202,10 +201,8 @@ void TrayCallbackDelegate::Finished() { //copy the file to the desktop here - std::wstring ifname = m_job->GetInputFilename(); - std::wstring ofname = m_job->GetOutputFilename(); - QString qifname = QString::fromUcs2((unsigned short *)ifname.c_str()); - QString qofname = QString::fromUcs2((unsigned short *)ofname.c_str()); + QString qifname = m_job->GetInputFilename(); + QString qofname = m_job->GetOutputFilename(); //take the extension from the output file, but te filename from the input file QFileInfo ifinfo(qifname); @@ -280,12 +277,11 @@ /////////////////// - TrayDlg::TrayDlg(QWidget *parent) : tray(parent, 0, Qt::WStyle_Tool | Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WType_TopLevel) + TrayDlg::TrayDlg(QWidget *parent) + : tray(parent, 0, Qt::WStyle_Tool | Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WType_TopLevel) { - m_encodeMgr = cineplay::CreateEncodeManager(); + QObject::connect( cleanup, SIGNAL( clicked() ), this, SLOT( onCleanupClicked() ) ); - QObject::connect(cleanup, SIGNAL( clicked() ), this, SLOT( onCleanupClicked() ) ); - //This is a botch because for some reason on windows the first child widget will not // resize properly. so we put a dummy in. TrayEntryWidget *temp = new TrayEntryWidget( this ); @@ -299,8 +295,6 @@ for(size_t t=0; t<m_encodeJobs.size(); t++) delete m_encodeJobs[t]; m_encodeJobs.clear(); - - delete m_encodeMgr; } @@ -324,13 +318,12 @@ LayoutTrayWidgets(); } - void TrayDlg::Encode(const char *filename, int start, int end) + void TrayDlg::Encode( const QString& fname, int start, int end ) { - QString fname = filename; QString out = CineUtils::createTemporaryFilename(); - EncodeJob *job = m_encodeMgr->BeginJob( std::wstring((wchar_t*)fname.ucs2()), std::wstring((wchar_t*)out.ucs2()), start, end ); - m_encodeJobs.push_back( new TrayCallbackDelegate(this, job) ); + EncodeJob *job = EncodeManager::instance()->BeginJob( fname, out, start, end ); + m_encodeJobs.push_back( new TrayCallbackDelegate( this, job ) ); LayoutTrayWidgets(); } Modified: cinesuite/cineplay-cinecode/trunk/src/TrayDlg.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/TrayDlg.h 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/TrayDlg.h 2008-02-29 09:13:28 UTC (rev 56) @@ -18,21 +18,22 @@ // Copyright (C) 2008 Audiotube Ltd. // For more information, see http://www.audiotube.com +#pragma once -#ifndef TRAYDLG_H -#define TRAYDLG_H - +// local #include "windows/tray.h" #include "EncodeJob.h" #include "TrayEntryWidget.h" +// std #include <vector> namespace cineplay { - class TrayCallbackDelegate : public QObject, public EncodeJobCallback + class TrayCallbackDelegate : public QObject, + public EncodeJobCallback { Q_OBJECT @@ -89,33 +90,25 @@ Q_OBJECT public: - TrayDlg(QWidget *parent); ~TrayDlg(); - void Encode(const char *filename, int start, int end); + void Encode( const QString& filename, int start, int end ); void CancelAll(); void RemoveDelegate(TrayCallbackDelegate *del); protected slots: - void onCleanupClicked(); void LayoutTrayWidgets(); protected: - void customEvent(QCustomEvent* e); TrayDelegateVector m_encodeJobs; - cineplay::EncodeManager* m_encodeMgr; - friend class TrayCallbackDelegate; - + // friend class TrayCallbackDelegate; }; } //namespace cineplay - - -#endif //TRAYDLG_H Modified: cinesuite/cineplay-cinecode/trunk/src/TrayEntryWidget.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/TrayEntryWidget.cpp 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/TrayEntryWidget.cpp 2008-02-29 09:13:28 UTC (rev 56) @@ -7,10 +7,11 @@ -TrayEntryWidget::TrayEntryWidget(TrayDlg*) : tray_entry() +TrayEntryWidget::TrayEntryWidget(TrayDlg*) + : tray_entry() { } -} // namespace cineplay \ No newline at end of file +} // namespace cineplay Modified: cinesuite/cineplay-cinecode/trunk/src/Utils.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Utils.cpp 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/Utils.cpp 2008-02-29 09:13:28 UTC (rev 56) @@ -33,15 +33,16 @@ // std #include <memory> + +namespace CineUtils { + #ifdef Q_OS_WIN #include <Windows.h> #include "shlwapi.h" #pragma comment(lib, "shlwapi.lib") - -//static -QString CineUtils::createTemporaryFilename() +QString createTemporaryFilename() { const static int BUFFERSIZE = 100; char dir[ BUFFERSIZE ]; @@ -60,12 +61,11 @@ qWarning( "createTemporaryFilename: failed to get temporary filename" ); return QString(); } - + return file; } - -//static -QString CineUtils::createStandardEncodeLocation() + +QString createStandardEncodeLocation() { //perhaps should use SHGetSpecialFolderLocation? @@ -74,8 +74,7 @@ return path; } -//static -bool CineUtils::movefile(const QString &srcFile, const QString &dstLocation, bool dstIsFile /*= false*/) +bool movefile(const QString &srcFile, const QString &dstLocation, bool dstIsFile /*= false*/) { if(dstIsFile) { @@ -94,8 +93,8 @@ } } -//static -bool CineUtils::deletefile(const QString &file) + +bool deletefile(const QString &file) { return DeleteFile( (WCHAR*)file.ucs2() ) != FALSE; } @@ -108,8 +107,8 @@ #include <qfileinfo.h> #include <qdir.h> -//static -QString CineUtils::createTemporaryFilename() + +QString createTemporaryFilename() { char tmp[] = "/tmp/cinecode-XXXXXX"; strncpy( tmp, mktemp( tmp ), 20 ); @@ -118,22 +117,22 @@ return tmp; } -//static -QString CineUtils::createStandardEncodeLocation() + +QString createStandardEncodeLocation() { QString path = QDir::homeDirPath(); path += "/Desktop"; return path; } -//static -bool CineUtils::movefile(const QString &srcFile, const QString &dstLocation, bool ) + +bool movefile(const QString &srcFile, const QString &dstLocation, bool ) { QString path = QFileInfo( srcFile ).dirPath( true ); return ::rename( srcFile.local8Bit(), (path + QDir::separator() + dstLocation).local8Bit() ) == 0; } -//static -bool CineUtils::deletefile(const QString &file) + +bool deletefile(const QString &file) { return QFile::remove( file ); } @@ -141,8 +140,8 @@ #endif -//static -QString CineUtils::makeUniqueDstFilename(const QString &start) + +QString makeUniqueDstFilename(const QString &start) { QString dstFile = start; QFileInfo info(dstFile); @@ -165,7 +164,7 @@ return dstFile; } -void CineUtils::AddWidgetToParentLayout( QWidget* parent, QWidget* w ) +void AddWidgetToParentLayout( QWidget* parent, QWidget* w ) { if ( parent ) { @@ -179,9 +178,9 @@ } -QWidget* CineUtils::FindWidget( const char* name, QWidget* parent ) +QWidget* FindWidget( const char* name, QWidget* parent ) { - if(parent == 0) + if( !parent ) return 0; std::auto_ptr< QObjectList > objList( parent->queryList( NULL, name, false /* no regexp */ ) ); @@ -191,7 +190,7 @@ return dynamic_cast< QWidget* >( objList->first() ); } -QWidget* CineUtils::ConnectSignalTo( QWidget* parent, const char* nm, const char* signal, QObject* receiver, const char* slot ) +QWidget* ConnectSignalTo( QWidget* parent, const char* nm, const char* signal, QObject* receiver, const char* slot ) { QWidget *ht = FindWidget(nm, parent); @@ -208,19 +207,19 @@ } -QWidget* CineUtils::ConnectButtonTo( QWidget* parent, const char* nm, QObject* receiver, const char* slot ) +QWidget* ConnectButtonTo( QWidget* parent, const char* nm, QObject* receiver, const char* slot ) { return ConnectSignalTo( parent, nm, SIGNAL(clicked()), receiver, slot ); } -void CineUtils::ShowWidget( QWidget* parent, const char* name, bool show ) +void ShowWidget( QWidget* parent, const char* name, bool show ) { QWidget *w = FindWidget( name, parent ); if(w) w->setShown(show); } -void CineUtils::InitOpenLibraries( const QString& appDirPath ) +void InitOpenLibraries( const QString& appDirPath ) { #if defined( Q_OS_MACX ) pl::string_list lib_list; @@ -232,7 +231,7 @@ pl::string_list dir_list; for (pl::string_list::iterator it = lib_list.begin(); it !=lib_list.end(); it++) { - pl::string s = appDir.latin1(); + pl::string s = appDirPath.latin1(); s += "/../PlugIns/"; s += *it; dir_list.push_back(s); @@ -240,7 +239,19 @@ pl::init(dir_list); #else - // pl::init( appDir.latin1() ); + // pl::init( appDirPath.latin1() ); pl::init(); #endif //Q_OS_MACX } + +pl::wstring ToWString( const QString& s ) +{ + return pl::wstring( (wchar_t* )s.ucs2() ); +} + +QString ToQString( const pl::wstring& s ) +{ + return QString::fromUcs2( (const unsigned short*)( s.c_str() ) ); +} + +} Modified: cinesuite/cineplay-cinecode/trunk/src/Utils.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Utils.h 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/Utils.h 2008-02-29 09:13:28 UTC (rev 56) @@ -18,37 +18,38 @@ // Copyright (C) 2008 Audiotube Ltd. // For more information, see http://www.audiotube.com +#pragma once -#ifndef CINEPLAY_UTILS_H -#define CINEPLAY_UTILS_H +// qt +#include <qstring.h> +// opl +#include <openpluginlib/pl/string.hpp> +namespace pl = olib::openpluginlib; -#include <qstring.h> - class QWidget; class QObject; -class CineUtils +namespace CineUtils { -public: - /// file utilities - static QString createTemporaryFilename(); - static QString createStandardEncodeLocation(); - static bool movefile(const QString &srcFile, const QString &dstLocation, bool dstIsFile = false); - static QString makeUniqueDstFilename(const QString &dstFile); - static bool deletefile(const QString &file); - /// widget utilities; remove asap - static QWidget* ConnectSignalTo( QWidget* parent, const char* nm, const char* signal, QObject* receiver, const char* slot ); - static QWidget* ConnectButtonTo( QWidget* parent, const char* name, QObject* receiver, const char* slot ); - static void AddWidgetToParentLayout( QWidget* parent, QWidget* w ); - static QWidget* FindWidget( const char* name, QWidget* parent ); - static void ShowWidget( QWidget* parent, const char* name, bool show ); +/// file utilities +QString createTemporaryFilename(); +QString createStandardEncodeLocation(); +bool movefile( const QString& srcFile, const QString& dstLocation, bool dstIsFile = false ); +QString makeUniqueDstFilename( const QString& dstFile ); +bool deletefile( const QString& file ); - /// olibs utils - static void InitOpenLibraries( const QString& appDirPath ); -}; +/// widget utilities; remove asap +QWidget* ConnectSignalTo( QWidget* parent, const char* nm, const char* signal, QObject* receiver, const char* slot ); +QWidget* ConnectButtonTo( QWidget* parent, const char* name, QObject* receiver, const char* slot ); +void AddWidgetToParentLayout( QWidget* parent, QWidget* w ); +QWidget* FindWidget( const char* name, QWidget* parent ); +void ShowWidget( QWidget* parent, const char* name, bool show ); +/// olibs utils +void InitOpenLibraries( const QString& appDirPath ); +pl::wstring ToWString( const QString& ); +QString ToQString( const pl::wstring& ); - -#endif //CINEPLAY_UTILS_H +} Modified: cinesuite/cineplay-cinecode/trunk/src/cinecode.pro =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/cinecode.pro 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/cinecode.pro 2008-02-29 09:13:28 UTC (rev 56) @@ -8,6 +8,7 @@ CONFIG += thread qt warn_on opengl CONFIG += debug RC_FILE = cineplay.rc +DEFINES += BUILD_CINECODE include( olibs.pri ) include( jah.pri ) @@ -19,7 +20,7 @@ } FORMS += \ - windows/main.ui \ + windows/main_cinecode.ui \ windows/toolbar.ui \ windows/downloadDialog.ui \ windows/about.ui \ Modified: cinesuite/cineplay-cinecode/trunk/src/windows/addfav.ui =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/windows/addfav.ui 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/windows/addfav.ui 2008-02-29 09:13:28 UTC (rev 56) @@ -111,7 +111,7 @@ </spacer> <widget class="QPushButton"> <property name="name"> - <cstring>OK</cstring> + <cstring>ok</cstring> </property> <property name="text"> <string>OK</string> @@ -119,7 +119,7 @@ </widget> <widget class="QPushButton"> <property name="name"> - <cstring>Cancel</cstring> + <cstring>cancel</cstring> </property> <property name="text"> <string>Cancel</string> @@ -136,13 +136,13 @@ </images> <connections> <connection> - <sender>OK</sender> + <sender>ok</sender> <signal>clicked()</signal> <receiver>addFav</receiver> <slot>accept()</slot> </connection> <connection> - <sender>Cancel</sender> + <sender>cancel</sender> <signal>clicked()</signal> <receiver>addFav</receiver> <slot>reject()</slot> Modified: cinesuite/cineplay-cinecode/trunk/src/windows/removefav.ui =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/windows/removefav.ui 2008-02-28 11:21:54 UTC (rev 55) +++ cinesuite/cineplay-cinecode/trunk/src/windows/removefav.ui 2008-02-29 09:13:28 UTC (rev 56) @@ -118,7 +118,7 @@ </widget> <widget class="QPushButton"> <property name="name"> - <cstring>Cancel</cstring> + <cstring>cancel</cstring> </property> <property name="autoMask"> <bool>false</bool> @@ -144,7 +144,7 @@ <slot>accept()</slot> </connection> <connection> - <sender>Cancel</sender> + <sender>cancel</sender> <signal>clicked()</signal> <receiver>removeFav</receiver> <slot>reject()</slot> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-03-03 18:08:19
|
Revision: 58 http://editopia.svn.sourceforge.net/editopia/?rev=58&view=rev Author: timdewhirst Date: 2008-03-03 10:07:55 -0800 (Mon, 03 Mar 2008) Log Message: ----------- cinesuite - remove widgets as external - fix build Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/SkinDlg.h Property Changed: ---------------- cinesuite/cineplay-cinecode/trunk/src/ Property changes on: cinesuite/cineplay-cinecode/trunk/src ___________________________________________________________________ Name: svn:externals - widgets https://jahshaka.svn.sourceforge.net/svnroot/jahshaka/trunk/jahwidgets/src/qt3/widgets Modified: cinesuite/cineplay-cinecode/trunk/src/SkinDlg.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/SkinDlg.h 2008-03-02 19:18:41 UTC (rev 57) +++ cinesuite/cineplay-cinecode/trunk/src/SkinDlg.h 2008-03-03 18:07:55 UTC (rev 58) @@ -52,7 +52,6 @@ void mouseMoveEvent(QMouseEvent *); void childEvent(QChildEvent *); bool event( QEvent *e ); - bool eventFilter( QObject *o, QEvent *e ); }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-03-03 18:15:48
|
Revision: 59 http://editopia.svn.sourceforge.net/editopia/?rev=59&view=rev Author: timdewhirst Date: 2008-03-03 10:15:16 -0800 (Mon, 03 Mar 2008) Log Message: ----------- cinesuite - add subset of required widgets Added Paths: ----------- cinesuite/cineplay-cinecode/trunk/src/widgets/ cinesuite/cineplay-cinecode/trunk/src/widgets/combobox.cpp cinesuite/cineplay-cinecode/trunk/src/widgets/combobox.h cinesuite/cineplay-cinecode/trunk/src/widgets/config.h cinesuite/cineplay-cinecode/trunk/src/widgets/histogram.cpp cinesuite/cineplay-cinecode/trunk/src/widgets/histogram.h cinesuite/cineplay-cinecode/trunk/src/widgets/label.h cinesuite/cineplay-cinecode/trunk/src/widgets/media.cpp cinesuite/cineplay-cinecode/trunk/src/widgets/media.h cinesuite/cineplay-cinecode/trunk/src/widgets/mediaPtr.cpp cinesuite/cineplay-cinecode/trunk/src/widgets/mediaPtr.h cinesuite/cineplay-cinecode/trunk/src/widgets/opengl_store.cpp cinesuite/cineplay-cinecode/trunk/src/widgets/opengl_store.hpp cinesuite/cineplay-cinecode/trunk/src/widgets/progress.h cinesuite/cineplay-cinecode/trunk/src/widgets/pushbutton.cpp cinesuite/cineplay-cinecode/trunk/src/widgets/pushbutton.h cinesuite/cineplay-cinecode/trunk/src/widgets/scrollview.hpp cinesuite/cineplay-cinecode/trunk/src/widgets/sdl_store.cpp cinesuite/cineplay-cinecode/trunk/src/widgets/sdl_store.hpp cinesuite/cineplay-cinecode/trunk/src/widgets/shader_state.cpp cinesuite/cineplay-cinecode/trunk/src/widgets/shader_state.h cinesuite/cineplay-cinecode/trunk/src/widgets/slider.cpp cinesuite/cineplay-cinecode/trunk/src/widgets/slider.h cinesuite/cineplay-cinecode/trunk/src/widgets/texture.h cinesuite/cineplay-cinecode/trunk/src/widgets/timelineSlider.cpp cinesuite/cineplay-cinecode/trunk/src/widgets/timelineSlider.h cinesuite/cineplay-cinecode/trunk/src/widgets/valueFormatters.cpp cinesuite/cineplay-cinecode/trunk/src/widgets/valueFormatters.h cinesuite/cineplay-cinecode/trunk/src/widgets/widgetStack.cpp cinesuite/cineplay-cinecode/trunk/src/widgets/widgetStack.h cinesuite/cineplay-cinecode/trunk/src/widgets/widget_store.hpp Added: cinesuite/cineplay-cinecode/trunk/src/widgets/combobox.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/combobox.cpp (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/combobox.cpp 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,65 @@ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +#include "combobox.h" + +#if defined( Q_OS_MACX ) +#include <qapplication.h> +#endif + +#include "utils/string_utils.hpp" + +using namespace olib::openpluginlib; + +namespace jahwidgets { namespace qt3 { + +ComboBox::ComboBox( QWidget* parent, const char* name ) + : QComboBox( parent, name ) +{ + connect( this, SIGNAL( activated( int ) ), this, SIGNAL( currentItem_changed() ) ); + connect( this, SIGNAL( textChanged( const QString& ) ), this, SIGNAL( textChanged_changed() ) ); +} + +QStringList ComboBox::items() const +{ + QStringList list; + for ( int c=0; c<count(); ++c ) + list.push_back( text( c ) ); + + return list; +} + +void ComboBox::setItems( const QStringList& list ) +{ + clear(); + insertStringList( list, 0 ); + + // Make sure we don't end up with scrollbars... + if ( static_cast<int>(list.size()) > sizeLimit() ) { + setSizeLimit( list.size() ); + } + + emit items_changed(); +} + +int ComboBox::wrapped_currentItem() const +{ + return currentItem(); +} + +void ComboBox::wrapped_setCurrentItem( int i ) +{ + setCurrentItem( i ); +} + +bool ComboBox::wrapped_textChanged() const +{ + return true; +} + + +} } // namespaces Added: cinesuite/cineplay-cinecode/trunk/src/widgets/combobox.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/combobox.h (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/combobox.h 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,45 @@ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +#ifndef COMBOBOX_H +#define COMBOBOX_H + +// qt +#include <qcombobox.h> + +// local +#include "config.h" + +namespace jahwidgets { namespace qt3 { + +class WIDGETS_DECLSPEC ComboBox : public QComboBox +{ + Q_OBJECT + Q_PROPERTY( QStringList items READ items WRITE setItems ) + Q_PROPERTY( int currentItem READ wrapped_currentItem WRITE wrapped_setCurrentItem ) + Q_PROPERTY( bool textChanged READ wrapped_textChanged ) + +public: + ComboBox( QWidget* parent = NULL, const char* name = NULL ); + + QStringList items() const; + void setItems( const QStringList& ); + + int wrapped_currentItem() const; + void wrapped_setCurrentItem( int i ); + + bool wrapped_textChanged() const; + +signals: + void items_changed(); + void currentItem_changed(); + void textChanged_changed(); +}; + +} } + +#endif // COMBOBOX_H Added: cinesuite/cineplay-cinecode/trunk/src/widgets/config.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/config.h (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/config.h 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,22 @@ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +// Custom geometry classes, with minimal interfaces. + +#ifndef WIDGETS_CONFIG_INC_ +#define WIDGETS_CONFIG_INC_ + +#ifdef WIN32 +# ifdef WIDGETS_EXPORTS +# define WIDGETS_DECLSPEC __declspec( dllexport ) +# else +# define WIDGETS_DECLSPEC __declspec( dllimport ) +# endif +#else +# define WIDGETS_DECLSPEC +#endif + +#endif Added: cinesuite/cineplay-cinecode/trunk/src/widgets/histogram.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/histogram.cpp (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/histogram.cpp 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,203 @@ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +// Custom geometry classes, with minimal interfaces. + +#include "histogram.h" + +#ifdef __APPLE__ +#include <algorithm> // used in histogram::compute +#endif + +namespace jahwidgets { namespace qt3 { + +histogram::histogram( ) + : siz_( 32 ) +{ + results_.resize( siz_, 0 ); +} + +void histogram::init( ) +{ + if( GLEW_ARB_occlusion_query ) + { + query_.resize( siz_ ); + + glGenQueriesARB( siz_, &query_[ 0 ] ); + +#ifdef HAVE_CG_RUNTIME + Cg_.init( "cg:passthrough.cg", "cg:histogram.cg" ); +#endif + GLSL_.init( "glsl:passthrough.vert", "glsl:histogram.frag" ); + } +} + +void histogram::fini( ) +{ + if( GLEW_ARB_occlusion_query ) + { + glDeleteQueries( siz_, &query_[ 0 ] ); + +#ifdef HAVE_CG_RUNTIME + if( Cg_.is_valid( ) ) + Cg_.fini( ); +#endif + if( GLSL_.is_valid( ) ) + GLSL_.fini( ); + } +} + +void histogram::set_channels( float r, float g, float b, float a ) +{ + channels_.get( )[ 0 ] = r; + channels_.get( )[ 1 ] = g; + channels_.get( )[ 2 ] = b; + channels_.get( )[ 3 ] = a; +} + +void histogram::compute_gpu( float phy_w, float phy_h, float tex_w, float tex_h, GLenum target, GLuint tex ) +{ + if( target == GL_TEXTURE_2D ) + { + tex_prop_.get( ) = 0; + + GLSL_.bind_shader( ); + GLSL_.bind_uniform( tex_prop_, L"inColor0" ); + GLSL_.bind_uniform( channels_, L"channels" ); + } +#ifdef HAVE_CG_RUNTIME + else + { + tex_prop_.get( ) = tex; + + Cg_.bind_shader( ); + Cg_.bind_texture( tex_prop_, L"inColor0" ); + Cg_.bind_matrix_parameter( modelproj_prop_, L"model_view_proj", true ); + Cg_.bind_uniform( channels_, L"channels" ); + } +#endif + + glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE ); + glDepthMask( GL_TRUE ); + + for( int i = 0; i < siz_; ++i ) + { + min_.get( ) = i / ( float ) siz_; + max_.get( ) = ( i + 1 ) / ( float ) siz_ + 0.0001f; + + if( target == GL_TEXTURE_2D ) + { + GLSL_.bind_uniform( min_, L"min" ); + GLSL_.bind_uniform( max_, L"max" ); + } +#ifdef HAVE_CG_RUNTIME + else + { + Cg_.bind_uniform( min_, L"min" ); + Cg_.bind_uniform( max_, L"max" ); + } +#endif + glBeginQueryARB( GL_SAMPLES_PASSED_ARB, query_[ i ] ); + + glDepthMask( GL_FALSE ); + + glBegin( GL_QUADS ); + glTexCoord2f( 0.0f, tex_h ); + glVertex2f( 0.0f, phy_h ); + glTexCoord2f( tex_w, tex_h ); + glVertex2f( phy_w, phy_h ); + glTexCoord2f( tex_w, 0.0f ); + glVertex2f( phy_w, 0.0f ); + glTexCoord2f( 0.0f, 0.0f ); + glVertex2f( 0.0f, 0.0f ); + glEnd( ); + + glDepthMask( GL_TRUE ); + glEndQueryARB( GL_SAMPLES_PASSED_ARB ); + } + + for( int i = 0; i < siz_; ++i ) + glGetQueryObjectuivARB( query_[ i ], GL_QUERY_RESULT_ARB, &results_[ i ] ); + + glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE ); + glDepthMask( GL_FALSE ); + + if( GLSL_.is_valid( ) ) + GLSL_.unbind_shader( ); + +#ifdef HAVE_CG_RUNTIME + if( Cg_.is_valid( ) ) + Cg_.unbind_shader( ); +#endif +} + +void histogram::compute_cpu( ) +{ +#ifdef __APPLE__ + // Apple defines GLuint as unsigned long. il::histogram returns std::vector<unsigned int> + // The olib return type is not to be altered... + std::vector<unsigned int> tmp; + il::histogram( im_, siz_, &channels_.get( )[ 0 ], tmp ); + + results_.clear(); + std::copy( tmp.begin(), tmp.end(), results_.begin() ); +#else + il::histogram( im_, siz_, &channels_.get( )[ 0 ], results_ ); +#endif +} + +void histogram::display( float x, float y, float bar_width, float height ) const +{ + glColor3f( 0.0f, 1.0f, 1.0f ); + glBegin( GL_LINE_LOOP ); + glVertex2f( x, y ); + glVertex2f( x + siz_ * bar_width + 2, y ); + glVertex2f( x + siz_ * bar_width + 2, y + height + 2 ); + glVertex2f( x, y + height + 2 ); + glEnd( ); + + GLuint max = 1; + for( int i = 0; i < siz_; ++i ) + { + if( max < results_[ i ] ) + max = results_[ i ]; + } + + x += 1.0f; + y += 1.0f; + + glColor3f( 1.0f, 1.0f, 0.0f ); + + for( int i = 0; i < siz_; ++i ) + { + float top = ( results_[ i ] / ( float ) max ) * height; + + glBegin( GL_QUADS ); + glVertex2f( x + ( i * bar_width ) + 2, y ); + glVertex2f( x + ( i * bar_width ) + bar_width, y ); + glVertex2f( x + ( i * bar_width ) + bar_width, y + top ); + glVertex2f( x + ( i * bar_width ) + 2, y + top ); + glEnd( ); + } + + glColor3f( 1.0f, 1.0f, 1.0f ); +} + +bool histogram::gpu_valid( GLenum target, bool env_GL_2_0_targets ) const +{ + return GLEW_ARB_occlusion_query && +#ifdef HAVE_CG_RUNTIME + Cg_.is_valid( ) || +#endif + ( GLSL_.is_valid( ) && ( target == GL_TEXTURE_2D || env_GL_2_0_targets ) ); +} + +void histogram::set_image( const il::image_type_ptr im ) +{ + im_ = im; +} + +} } Added: cinesuite/cineplay-cinecode/trunk/src/widgets/histogram.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/histogram.h (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/histogram.h 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,71 @@ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +// Custom geometry classes, with minimal interfaces. + +#ifndef HISTOGRAM_INC_ +#define HISTOGRAM_INC_ + +#ifdef _MSC_VER +#pragma warning ( push ) +#pragma warning ( disable:4251 ) +#endif + +#include <vector> + +#include <openpluginlib/pl/shader_manager.hpp> +#include <openimagelib/il/il.hpp> + +#include "config.h" + +namespace pl = olib::openpluginlib; +namespace il = olib::openimagelib::il; + +namespace jahwidgets { namespace qt3 { + +class WIDGETS_DECLSPEC histogram +{ +public: + explicit histogram( ); + + void set_size( int siz ) + { siz_ = siz; } + int size( ) const + { return siz_; } + + void init( ); + void fini( ); + void set_channels( float r, float g, float b, float a ); + void compute_gpu( float phy_w, float phy_h, float tex_w, float tex_h, GLenum target, GLuint tex ); + void compute_cpu( ); + void display( float x, float y, float bar_width, float height ) const; + bool gpu_valid( GLenum target, bool env_GL_2_0_targets ) const; + void set_image( const il::image_type_ptr im ); + +private: + std::vector<GLuint> query_; + int siz_; + pl::v_float min_, max_; + pl::v_vec4f channels_; + pl::v_int32 tex_prop_; + pl::v_matrix4f modelproj_prop_; + + pl::shader_object GLSL_; +#ifdef HAVE_CG_RUNTIME + pl::shader_object Cg_; +#endif + std::vector<GLuint> results_; + + il::image_type_ptr im_; +}; + +} } + +#ifdef _MSC_VER +#pragma warning ( pop ) +#endif + +#endif Added: cinesuite/cineplay-cinecode/trunk/src/widgets/label.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/label.h (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/label.h 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,50 @@ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +#ifndef JW_LABEL_WIDGET_H +#define JW_LABEL_WIDGET_H + +// qt +#include <qlabel.h> + +// local +#include "config.h" + +namespace jahwidgets { namespace qt3 { + +class WIDGETS_DECLSPEC Label : public QLabel +{ + Q_OBJECT + Q_PROPERTY( bool clicked READ clicked ) + +public: + Label( QWidget* parent = NULL, const char* name = NULL ) + : QLabel( parent, name ) + { + } + + bool clicked() const { return true; } + + void setText( const QString& txt ) { + QLabel::setText( txt ); + emit text_changed(); + } + +protected: + void mouseReleaseEvent( QMouseEvent* e ) { + emit clicked_changed(); + QLabel::mouseReleaseEvent( e ); + } + +signals: + void text_changed(); + void clicked_changed(); +}; + +} } // namespaces + +#endif // JW_LABEL_WIDGET_H Added: cinesuite/cineplay-cinecode/trunk/src/widgets/media.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/media.cpp (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/media.cpp 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,285 @@ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +#include "media.h" + +namespace jahwidgets { namespace qt3 { + +namespace ml = olib::openmedialib::ml; +namespace il = olib::openimagelib::il; +namespace al = olib::openassetlib::al; + +Media::Media( const std::string &uri, float x, float y, float w, float h, float t ) + : Texture( x, y, w, h, t ) + , dirty_( true ) + , uri_( uri ) + , length_( 0 ) + , position_( 0 ) + , shader_( INVALID ) + , colour_matrix_( false ) + , channel_matrix_( 0 ) + , override_( false ) + , orig_sar_num_( 0 ) + , orig_sar_den_( 0 ) + , sar_num_( 0 ) + , sar_den_( 0 ) + , fps_num_( 0 ) + , fps_den_( 0 ) + , in_( 0 ) + , out_( -1 ) + , deinterlace_( false ) +{ } + +Media::Media( il::image_type_ptr image, float x, float y, float w, float h, float t ) + : Texture( x, y, w, h, t ) + , dirty_( true ) + , length_( 1 ) + , position_( 0 ) + , shader_( INVALID ) + , colour_matrix_( false ) + , channel_matrix_( 0 ) + , override_( true ) + , orig_sar_num_( 0 ) + , orig_sar_den_( 0 ) + , sar_num_( 0 ) + , sar_den_( 0 ) + , fps_num_( 0 ) + , fps_den_( 0 ) + , in_( 0 ) + , out_( -1 ) + , deinterlace_( false ) +{ + frame_ = ml::frame_type_ptr( new ml::frame_type( ) ); + frame_->set_image( image ); + frame_->set_sar( 1, 1 ); + phy_w( ) = image->width( ); + phy_h( ) = image->height( ); + ar( ) = frame_->aspect_ratio( ); +} + +Media::~Media( ) { } + +bool Media::open( ) +{ + if ( uri_ != "" ) + { + input_ = ml::create_input( uri_.c_str( ) ); + + if ( input_ == 0 ) + { + std::string in(uri_); + in += "/sequence: "; + input_ = ml::create_input( ( in ).c_str( ) ); + } + + if ( input_ ) + { + length_ = input_->get_frames( ); + seek( position_ ); + frame_ = fetch( ); + dirty_ = true; + } + return input_ != 0; + } + return frame_ != 0; +} + +void Media::close( ) +{ + if ( uri_ != "" ) + { + input_ = ml::input_type_ptr( ); + //frame_ = ml::frame_type_ptr( ); + } +} + +ml::frame_type_ptr Media::fetch( ) +{ + if ( override_ == false && uri_ != "" && input_ != 0 ) + { + ml::frame_type_ptr frame = input_->fetch( ); + if ( input_->get_process_flags( ) & ml::process_image ) + visualise( frame ); + if ( frame && frame->get_image( ) ) + { + frame->get_sar( orig_sar_num_, orig_sar_den_ ); + if ( sar_den_ != 0 && sar_num_ != 0 ) + frame->set_sar( sar_num_, sar_den_ ); + ar( ) = frame->aspect_ratio( ); + set_duration( frame ); + } + return frame; + } + return frame_; +} + +ml::image_type_ptr Media::fetch_image( ) +{ + ml::frame_type_ptr frame = fetch( ); + return frame ? frame->get_image( ) : ml::image_type_ptr( ); +} + +void Media::set_active_frame( ) +{ + frame_ = fetch( ); + position_ = frame_->get_position( ); + if ( frame_->get_image( ) ) + dirty_ = true; +} + +void Media::set_active_frame( ml::frame_type_ptr frame ) +{ + frame_ = frame; + position_ = frame_->get_position( ); + if ( frame->get_image( ) ) + dirty_ = true; +} + +ml::frame_type_ptr Media::get_active_frame( ) +{ + if ( frame_ && frame_->get_image( ) ) + { + if ( sar_num_ != 0 && sar_den_ != 0 ) + frame_->set_sar( sar_num_, sar_den_ ); + else if ( orig_sar_num_ != 0 && orig_sar_den_ != 0 ) + frame_->set_sar( orig_sar_num_, orig_sar_den_ ); + ar( ) = frame_->aspect_ratio( ); + set_duration( frame_ ); + } + return frame_; +} + +ml::image_type_ptr Media::image( ) +{ + return frame_ != 0 ? frame_->get_image( ) : ml::image_type_ptr( ); +} + +void Media::set_image( ml::image_type_ptr image ) +{ + if ( frame_ ) + { + frame_->set_image( image ); + frame_->set_sar( 1, 1 ); + phy_w( ) = image->width( ); + phy_h( ) = image->height( ); + ar( ) = frame_->aspect_ratio( ); + dirty_ = true; + override_ = true; + } +} + +void Media::seek( int pos, bool relative ) +{ + if ( input_ ) + input_->seek( pos, relative ); +} + +void Media::refresh( int pos, bool relative ) { + if ( input( ) ) { + seek( pos, relative ); + set_active_frame( ); + } +} + +void Media::set_colour_matrix( bool colour_matrix, float* channel_matrix ) +{ + colour_matrix_ = colour_matrix; + channel_matrix_ = channel_matrix; +} + +bool Media::get_colour_matrix( ) const +{ + return colour_matrix_; +} + +void Media::set_sar( int num, int den ) +{ + sar_num_ = num; + sar_den_ = den; + if ( frame_ && frame_->get_image( ) ) + { + if ( sar_num_ != 0 && sar_den_ != 0 ) + frame_->set_sar( sar_num_, sar_den_ ); + else if ( orig_sar_num_ != 0 && orig_sar_den_ != 0 ) + frame_->set_sar( orig_sar_num_, orig_sar_den_ ); + ar( ) = frame_->aspect_ratio( ); + } +} + +void Media::set_fps( int num, int den ) +{ + fps_num_ = num; + fps_den_ = den; +} + +void Media::get_fps( int &num, int &den ) +{ + num = fps_num_; + den = fps_den_; +} + +double Media::fps( ) +{ + if ( fps_num_ != 0 && fps_den_ != 0 ) + { + return double( fps_num_ ) / double( fps_den_ ); + } + else if ( input_ ) + { + ml::frame_type_ptr frame = input_->fetch( ); + return frame->fps( ); + } + else + { + return 25.0; + } +} + +void Media::set_duration( ml::frame_type_ptr frame ) +{ + if ( fps_num_ != 0 && fps_den_ != 0 ) + frame->set_duration( 1.0 / ( double( fps_num_ ) / double( fps_den_ ) ) ); +} + +void Media::visualise( ml::frame_type_ptr frame ) +{ + if ( frame->get_image( ) == 0 && frame->get_audio( ) != 0 ) + { + ml::audio_type_ptr audio = frame->get_audio( ); + il::image_type_ptr image = il::allocate( L"r8g8b8", 640, 480 ); + memset( image->data( ), 0, image->size( ) ); + + short *buff = ( short * )audio->data( ); + int samples = audio->samples( ); + int channels = audio->channels( ); + + double sample_offset = 640.0 / samples; + int pitch = image->pitch( ); + unsigned char *middle = image->data( ) + pitch * image->height( ) / 2; + + short sample; + unsigned char *p; + int i, j; + int offset; + + for ( i = 0; i < 640; i ++ ) + { + offset = i * 3; + for ( j = 0; j < channels; j ++ ) + { + sample = ( buff + 2 * int( sample_offset * i * channels ) )[ j ] / 140; + p = middle - sample * pitch + offset; + *p ++ = j == 0 ? 255 : 0; + *p ++ = j == 0 ? 0 : 255; + *p ++ = 0; + } + } + + frame->set_image( image ); + } +} + +} } Added: cinesuite/cineplay-cinecode/trunk/src/widgets/media.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/media.h (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/media.h 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,118 @@ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +#ifndef JW_MEDIA_H +#define JW_MEDIA_H + +#include "texture.h" +#include <openmedialib/ml/ml.hpp> +#include <openassetlib/al/asset.hpp> + +namespace jahwidgets { namespace qt3 { + +namespace ml = olib::openmedialib::ml; +namespace il = olib::openimagelib::il; +namespace al = olib::openassetlib::al; + +enum shader_id { INVALID, YUV444_TO_RGB, YUV444_TO_RGB_DEINTERLACE, CHANNEL_SELECTOR, SHADER_COUNT }; + +// All video/audio material is entered as a media source object + +class WIDGETS_DECLSPEC Media : public Texture +{ +public: + enum colour_matrix_mode { none, yuv_conversion, channel_selection }; + +public: + Media( const std::string &uri, float x = 0, float y = 0, float w = 1.0, float h = 1.0, float t = 1.0 ); + + Media( il::image_type_ptr image, float x = 0, float y = 0, float w = 1.0, float h = 1.0, float t = 1.0 ); + + virtual ~Media( ); + + bool open( ); + void close( ); + + const std::string &uri( ) { return uri_; } + int &position( ) { return position_; } + int length( ) { return length_; } + bool is_valid( ) { return length_ > 0; } + ml::input_type_ptr input( ) { if ( !input_ ) open( ); return input_; } + bool usable( ) { return uri_ != "" ? input( ) != 0 : frame_ != 0; } + + ml::frame_type_ptr fetch( ); + ml::image_type_ptr fetch_image( ); + + void set_active_frame( ); + void set_active_frame( ml::frame_type_ptr frame ); + + ml::frame_type_ptr get_active_frame( ); + + ml::image_type_ptr image( ); + + void set_image( ml::image_type_ptr image ); + + void seek( int pos, bool relative = false ); + void refresh( int pos, bool relative = false ); + + bool &dirty( ) { return dirty_; } + bool get_dirty( ) { return dirty_; } + void set_dirty( bool value ) { dirty_ = value; } + + void set_shader( shader_id shader ) { shader_ = shader; } + shader_id get_shader( ) const { return shader_; } + + void set_colour_matrix( bool colour_matrix, float* channel_matrix ); + bool get_colour_matrix( ) const; + + void set_asset( al::asset_ptr asset ) { asset_ = asset; } + al::asset_ptr get_asset( ) { return asset_; } + + void set_sar( int num, int den ); + + void set_fps( int num, int den ); + void get_fps( int &num, int &den ); + + double fps( ); + + void set_duration( ml::frame_type_ptr frame ); + + void set_in( int in ) { in_ = in; } + int get_in( ) { return in_; } + void set_out( int out ) { out_ = out; } + int get_out( ) { return out_; } + void set_deinterlace( int deinterlace ) { deinterlace_ = deinterlace; } + int get_deinterlace( ) { return deinterlace_; } + +protected: + void visualise( ml::frame_type_ptr frame ); + +private: + bool dirty_; + std::string uri_; + int length_; + int position_; + ml::input_type_ptr input_; + ml::frame_type_ptr frame_; + shader_id shader_; + al::asset_ptr asset_; + bool colour_matrix_; + float* channel_matrix_; + bool override_; + int orig_sar_num_; + int orig_sar_den_; + int sar_num_; + int sar_den_; + int fps_num_; + int fps_den_; + int in_; + int out_; + bool deinterlace_; +}; + +} } + +#endif Added: cinesuite/cineplay-cinecode/trunk/src/widgets/mediaPtr.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/mediaPtr.cpp (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/mediaPtr.cpp 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,24 @@ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +// Custom geometry classes, with minimal interfaces. + +#include "mediaPtr.h" + +namespace jahwidgets { namespace qt3 { + +MediaPtr create_media( const std::string &uri ) +{ + return MediaPtr( new Media_( uri ) ); +} + +MediaPtr create_image( il::image_type_ptr image ) +{ + return MediaPtr( new Media_( image ) ); +} + +} } + Added: cinesuite/cineplay-cinecode/trunk/src/widgets/mediaPtr.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/mediaPtr.h (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/mediaPtr.h 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,35 @@ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +// Custom geometry classes, with minimal interfaces. + +#ifndef JW_MEDIA_PTR_H +#define JW_MEDIA_PTR_H + +#include "config.h" +#include "media.h" + +namespace jahwidgets { namespace qt3 { + +// Wrapper class +class Media_ : public Media +{ + public: + Media_( const std::string &uri ) : Media( uri ) { } + Media_( il::image_type_ptr image ) : Media( image ) { } + virtual ~Media_( ) { } +}; + +// Shared Pointer wrapper for the media source +typedef boost::shared_ptr< Media_ > MediaPtr; + +// Factory method +WIDGETS_DECLSPEC MediaPtr create_media( const std::string &uri ); +WIDGETS_DECLSPEC MediaPtr create_image( il::image_type_ptr image ); + +} } + +#endif Added: cinesuite/cineplay-cinecode/trunk/src/widgets/opengl_store.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/opengl_store.cpp (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/opengl_store.cpp 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,716 @@ +/* -*- mode: C; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +#include "opengl_store.hpp" +#include "mediaPtr.h" + +// qt +#include <qlayout.h> + +// olibs +#include <openimagelib/il/il.hpp> +#include <openpluginlib/pl/pcos/property.hpp> + +#include <cassert> + +namespace jahwidgets { namespace qt3 { + +namespace pcos = olib::openpluginlib::pcos; +namespace il = olib::openimagelib::il; +namespace opl = olib::openpluginlib; + +class opengl_store_impl : public ml::store_type +{ + public: + opengl_store_impl( opengl_store* owner ) + : owner_(owner), + channels_used_(false), + channel_matrix_dirty_(false), + env_GL_2_0_targets_(false), + prop_width_( pcos::key::from_string( "width" ) ), + prop_height_( pcos::key::from_string( "height" ) ) + { + properties().append( prop_width_ ); + properties().append( prop_height_ ); + + prop_width_.set( owner_->width() ); + prop_height_.set( owner_->height() ); + + set_channels( 1.0f, 1.0f, 1.0f, 1.0f ); + + channel_matrix_ = opl::make_identity<float>( ); + + // GC - Use getenv_s if using VC8. + char* env_GL_2_0_targets = getenv( "GL_2_0_TARGETS" ); + if( env_GL_2_0_targets ) + env_GL_2_0_targets_ = atoi( env_GL_2_0_targets ) != 0; + + union { int i; char c[ 4 ]; } big_endian_test; + big_endian_test.i = 1; + big_endian_ = big_endian_test.c[ 0 ] != 1; + } + + virtual ~opengl_store_impl() + { + } + + // ml::store_type interface + bool init() + { + prop_width_.set( owner_->width() ); + prop_height_.set( owner_->height() ); + + if ( owner_->parentWidget() && owner_->parentWidget()->layout() ) + owner_->parentWidget()->layout()->invalidate(); + + return true; + } + + bool push( ml::frame_type_ptr frame ) + { + frame_ = frame; + // Repaint right now: this is how stores are expected to behave + owner_->repaint(); + return frame; + } + + ml::frame_type_ptr flush( ) + { + return ml::frame_type_ptr( ); + } + + void initializeGL( ) + { + glewInit( ); + + shaders_[ YUV444_TO_RGB ].init( "cg:passthrough.cg", "cg:yuv444_to_rgb.cg", "glsl:passthrough.vert", "glsl:yuv444_to_rgb.frag", false ); + shaders_[ YUV444_TO_RGB_DEINTERLACE ].init( "cg:passthrough.cg", + "cg:yuv444_to_rgb_deinterlace.cg", + "glsl:passthrough.vert", + "glsl:yuv444_to_rgb_deinterlace.frag", false ); + shaders_[ CHANNEL_SELECTOR ].init( "cg:passthrough.cg", "cg:channel_selector.cg", "glsl:passthrough.vert", "glsl:channel_selector.frag", false ); + } + + void resizeGL( int w, int h ) + { + glViewport( 0, 0, w, h ); + } + + void paintGL( ) + { + glDisable( GL_DEPTH_TEST ); + glDepthMask( 0 ); + + glClearColor( 0, 0, 0, 1 ); + glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); + + if ( frame_ ) + paintFrame( frame_ ); + + glDepthMask( 1 ); + glEnable( GL_DEPTH_TEST ); + +# ifndef NDEBUG + GLenum error; + while( ( error = glGetError( ) ) != GL_NO_ERROR ) + fprintf( stderr, "GLerror:%s\n", gluErrorString( error ) ); +# endif + } + + int width() const { + return prop_width_.value<int>(); + } + + int height() const { + return prop_height_.value<int>(); + } + + private: + void paintFrame( ml::frame_type_ptr frame ) + { + assert( frame && L"paintFrame passed a NULL frame ptr" ); + + il::image_type_ptr image = frame->get_image(); + if ( !image ) { + qWarning( "paintFrame NULL image" ); + return; + } + + // check cache + if ( !media_ || image_ != image ) + { + media_ = create_image( image ); + image_ = image; + } + + if ( channel_matrix_dirty_ ) + { + media_->set_dirty( true ); + channel_matrix_dirty_ = false; + } + + int orig_phy_w = media_->phy_w( ); + int orig_phy_h = media_->phy_h( ); + + prop_width_.set( orig_phy_w ); + prop_height_.set( orig_phy_h ); + + // Size the media + int phy_w, phy_h, req_w, req_h; + calculate_dimensions( media_, phy_w, phy_h, req_w, req_h ); + + // Calculate the position according to the window size/application requirements + media_geometry( media_, req_w, req_h ); + + // Determine if the image has been rescaled in the process above + bool phy_changed = orig_phy_w != phy_w || orig_phy_h != phy_h; + + // Retrieve the new geometry (note requested width/height might change) + float off_x = float( media_->gx( ) ); + float off_y = float( media_->gy( ) ); + + phy_w = media_->phy_w( ); + phy_h = media_->phy_h( ); + req_w = media_->gw( ); + req_h = media_->gh( ); + + // Check for edge cases and abort if possible + if ( off_x + req_w < 0 || off_y + req_h < 0 || off_x > owner_->width( ) || off_y > owner_->height( ) ) + return; + + // Retrieve texture information + float tex_w = media_->tex_w( ); + float tex_h = media_->tex_h( ); + GLenum target = media_->target( ); + + // Refresh the texture if need be + // TODO: Push this to the Media class + if ( phy_changed || media_->dirty( ) ) + { + if ( pl::texture_target( phy_w, phy_h, target, tex_w, tex_h, env_GL_2_0_targets_ ) ) + { + // Determine if the image is supported by the gpu directly + GLint internal_format = 0; + GLenum format, type = GL_UNSIGNED_BYTE; + pl::pf_to_gl_format( image_->pf( ), internal_format, format, type ); + ml::image_type_ptr new_im; + + media_->set_shader( INVALID ); + if( channels_used_ ) + media_->set_colour_matrix( true, get_channels( ) ); + else + media_->set_colour_matrix( false, 0 ); + + // Otherwise convert it + if( !internal_format ) + { + if( GLEW_APPLE_ycbcr_422 && ( opl::is_yuv_format( image_->pf( ) ) && image_->field_order( ) == il::progressive ) ) + { + new_im = il::convert( image_, L"yuv422" ); + + internal_format = 3; + format = GL_YCBCR_422_APPLE; + + if( big_endian_ ) + type = GL_UNSIGNED_SHORT_8_8_APPLE; + else + type = GL_UNSIGNED_SHORT_8_8_REV_APPLE; + } + else if( opl::is_yuv_format( image_->pf( ) ) && shader_valid( YUV444_TO_RGB, target ) ) + { + new_im = il::convert( image_, L"yuv444" ); + media_->set_shader( YUV444_TO_RGB ); + + internal_format = 3; + format = GL_RGB; + } + else + { + new_im = il::convert( image_, L"b8g8r8a8" ); + internal_format = 4; + format = GL_BGRA_EXT; + } + + frame_->set_image( new_im ); + image_ = new_im; + } + else + { + new_im = image_; + if( new_im->pf( ) == L"yuv422" ) + { + if( big_endian_ ) + type = GL_UNSIGNED_SHORT_8_8_APPLE; + else + type = GL_UNSIGNED_SHORT_8_8_REV_APPLE; + } + else if( new_im->pf( ) == L"r10g10b10" || new_im->pf( ) == L"r12g12b12" + || new_im->pf( ) == L"r16g16b16" || new_im->pf( ) == L"r12g12b12a12" + || new_im->pf( ) == L"r16g16b16a16" ) + type = GL_UNSIGNED_SHORT; + } + + if( media_->get_colour_matrix( ) ) + { + if( shader_valid( CHANNEL_SELECTOR, target ) && media_->get_shader( ) == INVALID ) + media_->set_shader( CHANNEL_SELECTOR ); + else + { + // Ensure im gets converted to expected format. + new_im = il::convert( new_im, L"b8g8r8a8" ); + + internal_format = 4; + format = GL_BGRA_EXT; + + float* mat = get_channels( ); + + if( mat[ 0 ] != 0.0f ) + new_im = il::project( new_im, "red" ); + else if( mat[ 5 ] != 0.0f ) + new_im = il::project( new_im, "green" ); + else if( mat[ 10 ] != 0.0f ) + new_im = il::project( new_im, "blue" ); + else + new_im = il::project( new_im, "alpha" ); + } + } + + glPixelStorei( GL_UNPACK_ALIGNMENT, 4 ); + + float tex_w, tex_h; + GLenum target; + if ( pl::texture_target( phy_w, phy_h, target, tex_w, tex_h, env_GL_2_0_targets_ ) ) + { + // Set up the conform flags + int flags = il::cropped; + + // Conform to cropped and not flipped or flopped (optimal for video playout) + new_im = il::conform( new_im, flags ); + + glEnable( target ); + + if ( media_->target( ) != target ) + { + if ( media_->texture( ) ) + glDeleteTextures( 1, &( media_->texture( ) ) ); + glGenTextures( 1, &( media_->texture( ) ) ); + media_->target( ) = target; + media_->phy_w( ) = media_->phy_h( ) = 0; + } + + glBindTexture( target, media_->texture( ) ); + if ( phy_w != media_->phy_tex_w( ) || phy_h != media_->phy_tex_h( ) ) + { + unsigned char *data = new_im->data( ); + glTexParameteri( target, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); + glTexParameteri( target, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); + glTexParameteri( target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE ); + glTexParameteri( target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE ); + glTexImage2D( target, 0, internal_format, phy_w, phy_h, 0, format, type, data ); + media_->init_offscreen_buffer( phy_w, phy_h, env_GL_2_0_targets_ ); + if ( media_->phy_tex_w( ) == 0 ) + media_->init_histogram( ); + media_->phy_w( ) = phy_w; + media_->phy_h( ) = phy_h; + media_->phy_tex_w( ) = phy_w; + media_->phy_tex_h( ) = phy_h; + media_->dirty( ) = false; + } + else if ( media_->dirty( ) ) + { + unsigned char *data = new_im->data( ); + glTexSubImage2D( target, 0, 0, 0, phy_w, phy_h, format, type, data ); + media_->dirty( ) = false; + } + + media_->gl_type( ) = type; + media_->gl_format( ) = std::pair<GLint, GLenum>( internal_format, format ); + media_->bpp( ) = get_bpp( new_im ); + media_->tex_w( ) = tex_w; + media_->tex_h( ) = tex_h; + + glDisable( target ); + } + } + } + + if ( !media_->dirty() && media_->texture( ) ) + { + glEnable( target ); + glBindTexture( target, media_->texture( ) ); + + glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ); + + glEnable( GL_BLEND ); + glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); + glColor4f( 1, 1, 1, media_->t( ) ); + + glMatrixMode( GL_PROJECTION ); + glPushMatrix( ); + glLoadIdentity( ); + gluOrtho2D( 0.0f, owner_->width( ), 0.0f, owner_->height( ) ); + + glMatrixMode( GL_MODELVIEW ); + glPushMatrix( ); + glLoadIdentity( ); + + glTranslatef( off_x, owner_->height( ) - off_y - req_h, 0.0f ); + + glTranslatef( req_w * media_->rotate_x( ), req_h * media_->rotate_y( ), 0.0f ); + glRotatef( media_->rotate( ), 0.0f, 0.0f, 1.0f ); + glTranslatef( - req_w * media_->rotate_x( ), - req_h * media_->rotate_y( ), 0.0f ); + + float zoom_w = ( float ) req_w / ( float ) phy_w; + float zoom_h = ( float ) req_h / ( float ) phy_h; + glScalef( zoom_w, zoom_h, 1.0f ); + + shader_id s_id = media_->get_shader( ); + if( shader_valid( s_id, target ) ) + enable_shader( s_id, target, media_->texture( ), media_->t( ), phy_h / tex_h, get_channels( ) ); + + draw_screen_quad( phy_w, phy_h, tex_w, tex_h, media_->offset_w, media_->usage_w ); + + if( shader_valid( s_id, target ) ) + disable_shader( s_id ); + + glDisable( GL_BLEND ); + glDisable( target ); + + // Reset scaling + glScalef( 1.0 / zoom_w, 1.0 / zoom_h, 1.0f ); + + glMatrixMode( GL_MODELVIEW ); + glPopMatrix( ); + + glMatrixMode( GL_PROJECTION ); + glPopMatrix( ); + } + else + { + // TODO: Correct for the interlaced case + // Determine if the image is supported by the gpu directly + GLint internal_format = 0; + GLenum format, type = GL_UNSIGNED_BYTE; + pl::pf_to_gl_format( image_->pf( ), internal_format, format, type ); + ml::image_type_ptr new_im; + + // Otherwise convert it + if( !internal_format ) + { + if( opl::is_yuv_format( image_->pf( ) ) && image_->field_order( ) == il::progressive && GLEW_APPLE_ycbcr_422 ) + { + new_im = il::convert( image_, L"yuv422" ); + + internal_format = 3; + format = GL_YCBCR_422_APPLE; + + if( big_endian_ ) + type = GL_UNSIGNED_SHORT_8_8_APPLE; + else + type = GL_UNSIGNED_SHORT_8_8_REV_APPLE; + } + else + { + new_im = il::convert( image_, L"b8g8r8a8" ); + internal_format = 4; + format = GL_BGRA_EXT; + } + } + else + { + new_im = image_; + if( new_im->pf( ) == L"yuv422" ) + { + if( big_endian_ ) + type = GL_UNSIGNED_SHORT_8_8_APPLE; + else + type = GL_UNSIGNED_SHORT_8_8_REV_APPLE; + } + } + + // Since we don't have a texture, crop, flip and don't flop + new_im = il::conform( new_im, il::cropped | il::flipped ); + frame->set_image( new_im ); + image_ = new_im; + + glPixelStorei( GL_UNPACK_ALIGNMENT, 4 ); + + // Display the image at the correct aspect ratio and scaled to fill as much as possible + glWindowPos2f( off_x, owner_->height( ) - off_y - req_h ); + glPixelZoom( ( ( float )req_w / phy_w ), ( ( float )req_h / phy_h ) ); + glDrawPixels( phy_w, phy_h, format, type, new_im->data( ) ); + + glMatrixMode( GL_PROJECTION ); + glPushMatrix( ); + glLoadIdentity( ); + gluOrtho2D( 0.0f, owner_->width( ), 0.0f, owner_->height( ) ); + + glMatrixMode( GL_MODELVIEW ); + glPushMatrix( ); + glLoadIdentity( ); + + glTranslatef( off_x, owner_->height( ) - off_y - req_h, 0.0f ); + + glTranslatef( req_w * media_->rotate_x( ), req_h * media_->rotate_y( ), 0.0f ); + glRotatef( media_->rotate( ), 0.0f, 0.0f, 1.0f ); + + glTranslatef( - req_w * media_->rotate_x( ), - req_h * media_->rotate_y( ), 0.0f ); + + float zoom_w = ( float ) req_w / ( float ) phy_w; + float zoom_h = ( float ) req_h / ( float ) phy_h; + glScalef( zoom_w, zoom_h, 1.0f ); + + // Reset scaling + glScalef( 1.0 / zoom_w, 1.0 / zoom_h, 1.0f ); + + glMatrixMode( GL_MODELVIEW ); + glPopMatrix( ); + + glMatrixMode( GL_PROJECTION ); + glPopMatrix( ); + } + } + + void calculate_dimensions( MediaPtr media, int &phy_w, int &phy_h, int &req_w, int &req_h ) + { + ml::image_type_ptr image; + + if ( frame_ ) + image = frame_->get_image( ); + + // This is the absolute WxH we have + int abs_w = owner_->width(); + int abs_h = owner_->height(); + + // Should get the ar from the frame or the previous value + double ar; + + // This is the physcial WxH of the image + if ( image != 0 ) + { + ar = frame_->aspect_ratio( ); + phy_w = image->width( ); + phy_h = image->height( ); + + if ( /*deinterlace_mode_ == 0 &&*/ image->field_order( ) != il::progressive ) + phy_h /= 2; + + media->ar( ) = ar == 0.0 ? 1.0 : ar; + } + else + { + ar = media->ar( ); + phy_w = media->phy_w( ); + phy_h = media->phy_h( ); + } + + if ( media->zoom_active( ) ) + { + req_h = phy_h; + req_w = int( req_h * ar ); + req_h = int( media->zoom_level( ) * req_h ); + req_w = int( media->zoom_level( ) * req_w ); + } + else if ( media->distort( ) ) + { + req_w = int( abs_w * media->w( ) ); + req_h = int( abs_h * media->h( ) ); + } + else + { + // Calculate the required display WxH + req_h = abs_h; + req_w = int( req_h * ar ); + + // Scale up or down to fit + if ( req_w > abs_w ) + { + req_w = abs_w; + req_h = int( req_w / ar ); + } + + req_w = int( req_w * media->w( ) ); + req_h = int( req_h * media->h( ) ); + } + } + + float* get_channels( ) + { + return channel_matrix_.a; + } + + void set_channels( float r, float g, float b, float a ) + { + channels_used_ = r != 1.0f || g != 1.0f || b != 1.0f || a != 1.0f; + + if( r != 0.0f || g != 0.0f || b != 0.0f ) + { + channel_matrix_ = opl::make_scale( r, g, b, a ); + } + else + { + channel_matrix_ = opl::matrixf( 0.0f ); + channel_matrix_[ 12 ] = a; + channel_matrix_[ 13 ] = a; + channel_matrix_[ 14 ] = a; + channel_matrix_[ 15 ] = 1.0f; + } + + channel_matrix_dirty_ = true; + } + + void media_geometry( MediaPtr media, int req_w, int req_h ) + { + float off_x = ( media->x( ) * owner_->width( ) ) + ( ( owner_->width( ) * media->w( ) ) - req_w ) * media->align_h( ) / 2; + float off_y = ( media->y( ) * owner_->height( ) ) + ( ( owner_->height( ) * media->h( ) ) - req_h ) * media->align_v( ) / 2; + media->set_geometry( int( off_x ), int( off_y ), req_w, req_h ); + } + + bool shader_valid( shader_id id, GLenum target ) const + { + return id != INVALID && shaders_[ id ].is_valid( target ); + } + + void enable_shader( shader_id id, GLenum target, GLuint tex_id, float alpha, float offset, float* channel_selector ) + { + shaders_[ id ].enable( target, tex_id, alpha, offset, channel_selector ); + } + + void disable_shader( shader_id id ) + { + shaders_[ id ].disable( ); + } + + int get_bpp( ml::image_type_ptr image ) + { + if ( image->pf( ) == L"r8g8b8a8" ) + return 32; + else if ( image->pf( ) == L"b8g8r8a8" ) + return 32; + else if ( image->pf( ) == L"r8g8b8" ) + return 24; + else if ( image->pf( ) == L"b8g8r8" ) + return 24; + return 0; + } + + void draw_screen_quad( float phy_w, float phy_h, float tex_w, float tex_h, float offset_w, float usage_w ) + { + float off_phy_w = phy_w * offset_w; + float off_tex_w = tex_w * offset_w; + float use_phy_w = phy_w * usage_w; + float use_tex_w = tex_w * usage_w; + + glBegin( GL_QUADS ); + glTexCoord2f( off_tex_w, 0.0f ); + glVertex2f( off_phy_w, phy_h ); + glTexCoord2f( off_tex_w + use_tex_w, 0.0f ); + glVertex2f( off_phy_w + use_phy_w, phy_h ); + glTexCoord2f( off_tex_w + use_tex_w, tex_h ); + glVertex2f( off_phy_w + use_phy_w, 0.0f ); + glTexCoord2f( off_tex_w, tex_h ); + glVertex2f( off_phy_w, 0.0f ); + glEnd( ); + } + + void draw_screen_quad_inverted( float phy_w, float phy_h, float tex_w, float tex_h, float offset_w, float usage_w ) + { + float off_phy_w = phy_w * offset_w; + float off_tex_w = tex_w * offset_w; + float use_phy_w = phy_w * usage_w; + float use_tex_w = tex_w * usage_w; + + glBegin( GL_QUADS ); + glTexCoord2f( off_tex_w, tex_h ); + glVertex2f( off_phy_w, phy_h ); + glTexCoord2f( off_tex_w + use_tex_w, tex_h ); + glVertex2f( off_phy_w + use_phy_w, phy_h ); + glTexCoord2f( off_tex_w + use_tex_w, 0.0f ); + glVertex2f( off_phy_w + use_phy_w, 0.0f ); + glTexCoord2f( off_tex_w, 0.0f ); + glVertex2f( off_phy_w, 0.0f ); + glEnd( ); + } + + opengl_store* owner_; + + ml::frame_type_ptr frame_; + + // cache the current image and media so we can draw efficiently if duplicate frames are pushed + ml::image_type_ptr image_; + MediaPtr media_; + + shader_state shaders_[ SHADER_COUNT ]; + bool channels_used_; + bool channel_matrix_dirty_; + opl::matrixf channel_matrix_; + bool big_endian_; + bool env_GL_2_0_targets_; + + olib::openpluginlib::pcos::property prop_width_, prop_height_; +}; + +opengl_store::opengl_store( QWidget* w, const char* name ) + : QGLWidget( w, name ), + impl_( new opengl_store_impl(this) ), + store_( impl_ ) +{ + // ensure we have a sensible size policy + setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); + + // Enable mouse tracking and drops + //setMouseTracking( true ); + //setAcceptDrops( true ); +} + +opengl_store::~opengl_store() +{ +} + +bool opengl_store::init( ml::frame_type_ptr f ) +{ + if ( store_->init() ) { + if ( f ) + return store_->push( f ); + else + return true; + } + + return false; +} + +ml::store_type_ptr opengl_store::store() const +{ + return store_; +} + +QSize opengl_store::minimumSizeHint() const +{ + return QSize( 100, 100 ); +} + +QSize opengl_store::sizeHint() const +{ + return QSize( impl_->width(), impl_->height() ); +} + +void opengl_store::initializeGL( ) +{ + impl_->initializeGL(); +} + +void opengl_store::resizeGL( int w, int h ) +{ + impl_->resizeGL( w, h ); +} + +void opengl_store::paintGL( ) +{ + impl_->paintGL(); +} + +} } Added: cinesuite/cineplay-cinecode/trunk/src/widgets/opengl_store.hpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/opengl_store.hpp (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/opengl_store.hpp 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,61 @@ +/* -*- mode: C; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +#ifndef JW_OPENGL_STORE_H +#define JW_OPENGL_STORE_H + +#ifndef HAVE_GL_GLEW_H +#define HAVE_GL_GLEW_H +#endif + +#include "config.h" +#include "widget_store.hpp" + +// Must be included before qgl.h +#include "shader_state.h" + +// qt +#include <qgl.h> + +// oml +#include <openmedialib/ml/store.hpp> +#include <openmedialib/ml/frame.hpp> + +namespace jahwidgets { namespace qt3 { + +namespace ml = olib::openmedialib::ml; + +class opengl_store_impl; + +//! A simple store that uses OpenGl to display media in a Qt widget +class WIDGETS_DECLSPEC opengl_store : public QGLWidget, public widget_store +{ + Q_OBJECT + +public: + opengl_store( QWidget* = NULL, const char* name = NULL ); + virtual ~opengl_store(); + + bool init( ml::frame_type_ptr ); + ml::store_type_ptr store() const; + + virtual QSize minimumSizeHint() const; + virtual QSize sizeHint() const; + +protected: + void paintGL( ); + void resizeGL( int, int ); + void initializeGL( ); + +private: + opengl_store_impl* impl_; + ml::store_type_ptr store_; // <- impl +}; + +} } + +#endif Added: cinesuite/cineplay-cinecode/trunk/src/widgets/progress.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/progress.h (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/progress.h 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,55 @@ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +// Custom geometry classes, with minimal interfaces. + +#ifndef JR_PROGRESS_H +#define JR_PROGRESS_H + +// qt +#include "config.h" +#include <qprogressbar.h> + +namespace jahwidgets { namespace qt3 { + +#define TOTAL 100 + +class WIDGETS_DECLSPEC Progress : public QProgressBar +{ + Q_OBJECT + Q_PROPERTY( double progress READ wrapped_progress WRITE wrapped_setProgress ) + Q_PROPERTY( double total READ wrapped_total WRITE wrapped_setTotal ) + +public: + Progress( QWidget* parent, const char* name = 0 ) + : QProgressBar( TOTAL, parent, name ), + m_total( 1 ) + {} + + double wrapped_progress() const { return progress() * m_total / TOTAL; } + void wrapped_setProgress( double v ) + { + setProgress( (int)( v * TOTAL / m_total ) ); + } + double wrapped_total() const { return m_total; } + void wrapped_setTotal( double v ) + { + m_total = v; + wrapped_setProgress( wrapped_progress() ); + } + +signals: + void progress_changed(); + void total_changed(); + +private: + double m_total; +}; + + +} } + +#endif // JR_PROGRESS_H Added: cinesuite/cineplay-cinecode/trunk/src/widgets/pushbutton.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/pushbutton.cpp (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/pushbutton.cpp 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,284 @@ +/* -*- tab-width: 4; indent-tabs-mode: t -*- */ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + + +#include "pushbutton.h" + +#include <qfontmetrics.h> +#include <qpixmap.h> +#include <qstyle.h> + +#include <utility> + +namespace jahwidgets { namespace qt3 { + +Pushbutton::Pushbutton( QWidget* parent, const char* name ) + : QPushButton( parent, name ), + m_pressed( false ), + m_hover( false ) +{ + connect( this, SIGNAL( clicked() ), this, SIGNAL( clicked_changed() ) ); + connect( this, SIGNAL( toggled( bool ) ), this, SIGNAL( on_changed() ) ); + connect( this, SIGNAL( toggled( bool ) ), this, SIGNAL( toggled_changed() ) ); + connect( this, SIGNAL( pressed() ), this, SLOT( onPressed() ) ); + connect( this, SIGNAL( released() ), this, SLOT( onReleased() ) ); + connect( this, SIGNAL( stateChanged(int) ), this, SLOT(updatePixmap()) ); +} + +bool Pushbutton::clicked() const +{ + return true; +} + +bool Pushbutton::pressed() const +{ + return m_pressed; +} + +bool Pushbutton::toggled() const +{ + return isOn(); +} + +bool Pushbutton::local_on() const +{ + return isOn(); +} + +void Pushbutton::local_setOn( bool b ) +{ + setOn( b ); + emit on_changed(); + updatePixmap(); +} + +QPixmap Pushbutton::activeOnIcon() const +{ + return m_iconSet.pixmap( QIconSet::Small, QIconSet::Active, QIconSet::On ); +} + +QPixmap Pushbutton::normalOnIcon() const +{ + return m_iconSet.pixmap( QIconSet::Small, QIconSet::Normal, QIconSet::On ); +} + +QPixmap Pushbutton::disabledOnIcon() const +{ + if ( !m_iconSet.isGenerated( QIconSet::Small, QIconSet::Disabled, QIconSet::On ) ) { + return m_iconSet.pixmap( QIconSet::Small, QIconSet::Disabled, QIconSet::On ); + } + else if ( !m_iconSet.isGenerated( QIconSet::Small, QIconSet::Normal, QIconSet::On ) ) { + return m_iconSet.pixmap( QIconSet::Small, QIconSet::Normal, QIconSet::On ); + } + else { + return m_iconSet.pixmap( QIconSet::Small, QIconSet::Normal, QIconSet::Off ); + } +} + +void Pushbutton::setActiveOnIcon( const QPixmap& p ) +{ + m_iconSet.setPixmap( p, QIconSet::Small, QIconSet::Active, QIconSet::On ); + updatePixmap(); +} + +void Pushbutton::setNormalOnIcon( const QPixmap& p ) +{ + m_iconSet.setPixmap( p, QIconSet::Small, QIconSet::Normal, QIconSet::On ); + updatePixmap(); +} + +void Pushbutton::setDisabledOnIcon( const QPixmap& p ) +{ + m_iconSet.setPixmap( p, QIconSet::Small, QIconSet::Disabled, QIconSet::On ); + updatePixmap(); +} + +void Pushbutton::resetActiveOnIcon() +{ + setActiveOnIcon( QPixmap() ); +} + +void Pushbutton::resetNormalOnIcon() +{ + setNormalOnIcon( QPixmap() ); +} + +void Pushbutton::resetDisabledOnIcon() +{ + setDisabledOnIcon( QPixmap() ); +} + +QPixmap Pushbutton::activeOffIcon() const +{ + return m_iconSet.pixmap( QIconSet::Small, QIconSet::Active, QIconSet::Off ); +} + +QPixmap Pushbutton::normalOffIcon() const +{ + return m_iconSet.pixmap( QIconSet::Small, QIconSet::Normal, QIconSet::Off ); +} + +QPixmap Pushbutton::disabledOffIcon() const +{ + if ( !m_iconSet.isGenerated( QIconSet::Small, QIconSet::Disabled, QIconSet::Off ) ) { + return m_iconSet.pixmap( QIconSet::Small, QIconSet::Disabled, QIconSet::Off ); + } + else { + return m_iconSet.pixmap( QIconSet::Small, QIconSet::Normal, QIconSet::Off ); + } +} + +void Pushbutton::setActiveOffIcon( const QPixmap& p ) +{ + m_iconSet.setPixmap( p, QIconSet::Small, QIconSet::Active, QIconSet::Off ); + updatePixmap(); +} + +void Pushbutton::setNormalOffIcon( const QPixmap& p ) +{ + m_iconSet.setPixmap( p, QIconSet::Small, QIconSet::Normal, QIconSet::Off ); + updatePixmap(); +} + +void Pushbutton::setDisabledOffIcon( const QPixmap& p ) +{ + m_iconSet.setPixmap( p, QIconSet::Small, QIconSet::Disabled, QIconSet::Off ); + updatePixmap(); +} + +void Pushbutton::resetActiveOffIcon() +{ + setActiveOffIcon( QPixmap() ); +} + +void Pushbutton::resetNormalOffIcon() +{ + setNormalOffIcon( QPixmap() ); +} + +void Pushbutton::resetDisabledOffIcon() +{ + setDisabledOffIcon( QPixmap() ); +} + +void Pushbutton::setLabel( const QString& l ) { + m_label = l; + update(); +} + +QString Pushbutton::label() const { + return m_label; +} + +QSize Pushbutton::sizeHint() const +{ + if ( m_label.isEmpty() ) { + return QPushButton::sizeHint(); + } + + int margin = style().pixelMetric( QStyle::PM_ButtonMargin, this ); + QFontMetrics fm( font() ); + + if ( pixmap() ) { + // Account for the pixmap and label + return QSize ( margin * 3 + pixmap()->width() + fm.width(m_label), margin * 2 + fm.height() ); + } + else { + return QSize ( margin * 2 + fm.width(m_label), margin * 2 + fm.height() ); + } +} + +void Pushbutton::mousePressEvent( QMouseEvent* e ) +{ + QPushButton::mousePressEvent( e ); + updatePixmap(); +} + +void Pushbutton::mouseReleaseEvent( QMouseEvent* e ) +{ + QPushButton::mouseReleaseEvent( e ); + + if ( isToggleButton() == false ) { + setDown( false ); + } + + updatePixmap(); +} + +void Pushbutton::mouseMoveEvent( QMouseEvent * e ) +{ + // Control pixmap when the user moves the mouse off a button whilst holding a button down + if ( (e->state() & Qt::LeftButton) == Qt::LeftButton ) { + m_hover = rect().contains( e->pos() ); + if ( m_hover != isDown() ) { + setDown( m_hover ); + updatePixmap(); + } + } + + QPushButton::mouseMoveEvent( e ); +} + +void Pushbutton::enterEvent( QEvent* e ) +{ + QPushButton::enterEvent( e ); + + if ( isEnabled() ) { + m_hover = true; + updatePixmap(); + update(); // force hover update even if we have no pixmap + } +} + +void Pushbutton::leaveEvent( QEvent* e ) +{ + // Always cancel hover, even if the button is disabled + m_hover = false; + QPushButton::leaveEvent( e ); + updatePixmap(); + update(); // force hover update even if we have no pixmap +} + +void Pushbutton::onPressed() +{ + m_pressed = true; + emit pressed_changed(); +} + +void Pushbutton::onReleased() +{ + m_pressed = false; + emit pressed_changed(); +} + +void Pushbutton::updatePixmap() +{ + if ( !m_iconSet.isNull() ) + { + if ( isEnabled() == false ) { + setPixmap( isOn() ? disabledOnIcon() : disabledOffIcon() ); + } + else if ( m_hover ) { + setPixmap( (isOn() || isDown()) ? activeOnIcon() : activeOffIcon() ); + } + else { + setPixmap( isOn() ? normalOnIcon() : normalOffIcon() ); + } + update(); + } +} + +void Pushbutton::enabledChange( bool oldEnabled ) +{ + QPushButton::enabledChange( oldEnabled ); + + updatePixmap(); + + emit enabled_changed(); +} + +} } // namespaces Added: cinesuite/cineplay-cinecode/trunk/src/widgets/pushbutton.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/widgets/pushbutton.h (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/widgets/pushbutton.h 2008-03-03 18:15:16 UTC (rev 59) @@ -0,0 +1,110 @@ +/* -*- tab-width: 4; indent-tabs-mode: t -*- */ +// jahwidgets - A widget library representation. + +// Copyright (C) 2006 Editopia Inc. +// Released under the GPL. +// For more information, see http://www.jahshaka.org. + +// Custom geometry classes, with minimal interfaces. + +#ifndef JR_PUSHBUTTON_H +#define JR_PUSHBUTTON_H + +// qt +#include <qpushbutton.h> +#include <qpixmap.h> +#include <qiconset.h> + +#include "config.h" + +namespace jahwidgets { namespace qt3 { + +/// thin wrapper around QPushButton allowing icon sets to be directly set from +/// within designer +class WIDGETS_DECLSPEC Pushbutton : public QPushButton +{ + Q_OBJECT + + Q_PROPERTY( bool clicked READ clicked ) + Q_PROPERTY( bool pressed READ pressed ) + Q_PROPERTY( bool toggled READ toggled ) + Q_PROPERTY( bool on READ local_on WRITE local_setOn ) + Q_PROPERTY( QPixmap activeOnIcon READ activeOnIcon WRITE setActiveOnIcon RESET resetActiveOnIcon ) + Q_PROPERTY( QPixmap normalOnIcon READ normalOnIcon WRITE setNormalOnIcon RESET resetNormalOnIcon ) + Q_PROPERTY( QPixmap disabledOnIcon READ disabledOnIcon WRITE setDisabledOnIcon RESET resetDisabledOnIcon ) + Q_PROPERTY( QPixmap activeOffIcon READ activeOffIcon WRITE setActiveOffIcon RESET resetActiveOffIcon ) + Q_PROPERTY( QPixmap normalOffIcon READ normalOffIcon WRITE setNormalOffIcon RESET resetNormalOffIcon ) + Q_PROPERTY( QPixmap disabledOffIcon READ disabledOffIcon WRITE setDisabledOffIcon RESET resetDisabledOffIcon ) + // Allows support of a label and icon on the button + Q_PROPERTY( QString label READ label WRITE setLabel ) + +public: + Pushbutton( QWidget* parent, const char* name = 0 ); + + bool clicked() const; + bool pressed() const; + bool toggled() const; + + bool local_on() const; + void local_setOn( bool ); + + QPixmap activeOnIcon() const; + QPixmap normalOnIcon() const; + QPixmap disabledOnIcon() const; + + void setActiveOnIcon( const QPixmap& ); + void setNormalOnIcon( const QPixmap& ); + void setDisabledOnIcon( const QPixmap& ); + + void resetActiveOnIcon(); + void resetNormalOnIcon(); + void resetDisabledOnIcon(); + + QPixmap activeOffIcon() const; + QPixmap normalOffIcon() const; + QPixmap disabledOffIcon() const; + + void setActiveOffIcon( const QPixmap& ); + void setNormalOffIcon( const QPixmap& ); + void setDisabledOffIcon( const QPixmap& ); + + void resetActiveOffIcon(); + void resetNormalOffIcon(); + void resetDisabledOffIcon(); + + void setLabel( const QString& ); + QString label() const; + + QSize sizeHint() const; + +protected: + void mousePressEvent( QMouseEvent* ); + void mouseReleaseEvent( QMouseEvent* ); + void mouseMoveEvent( QMouseEvent* ); + void enterEvent( QEvent* ); + void leaveEvent( QEvent* ); + + void enabledChange( bool oldEnabled ); + +signals: + void clicked_changed(); + void on_changed(); + void pressed_changed(); + void toggled_changed(); + void enabled_changed(); + +private slots: + void onPressed(); + void onReleased(); + void updatePixmap(); + +private: + bool m_pressed; + bool m_hover; + QIconSet m_iconSet; + QString m_label; // necessary so we can support a pixmap AND a label - woh! +}; + +} } + +#endif // JR_PUSHBUTTON_H Added: cin... [truncated message content] |
From: <tim...@us...> - 2008-03-04 10:08:48
|
Revision: 61 http://editopia.svn.sourceforge.net/editopia/?rev=61&view=rev Author: timdewhirst Date: 2008-03-04 02:08:14 -0800 (Tue, 04 Mar 2008) Log Message: ----------- cinesuite - reinstate encode menu Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp cinesuite/cineplay-cinecode/trunk/src/CineCode.h cinesuite/cineplay-cinecode/trunk/src/Common.cpp cinesuite/cineplay-cinecode/trunk/src/Common.h Modified: cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp 2008-03-03 22:49:35 UTC (rev 60) +++ cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp 2008-03-04 10:08:14 UTC (rev 61) @@ -26,6 +26,7 @@ // qt #include <qapplication.h> #include <qnetwork.h> +#include <qmenubar.h> namespace cineplay { @@ -37,6 +38,20 @@ { //general main window setup setAcceptDrops( true ); + + // cinecode specific setup + m_impl->m_timeSlider->setProperty( "enableInOutControls", true ); + + // encode + QPopupMenu* encode = new QPopupMenu( m_impl->m_menubar ); + encode->setPalette( m_impl->m_menubar->palette() ); + encode->insertItem( tr( "&encode..." ), this, SLOT( onEncodeEncode() ) ); + encode->insertItem( tr( "&cancel all" ), this, SLOT( onEncodeCancelAll() ) ); + encode->insertItem( tr( "set &in point" ), this, SLOT( onSetInPoint() ) ); + encode->insertItem( tr( "set &out point" ), this, SLOT( onSetOutPoint() ) ); + encode->insertItem( tr( "&reset in/out points" ), this, SLOT( onResetInOPutPoints() ) ); + m_encodeTrayItem = encode->insertItem( tr( "toggle encode &tray" ), this, SLOT( onEncodeTrayShow() ) ); + m_impl->m_menubar->insertItem( "&Encode", encode ); } bool CineCode::LoadCmdLineInput( const QString& fname ) Modified: cinesuite/cineplay-cinecode/trunk/src/CineCode.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CineCode.h 2008-03-03 22:49:35 UTC (rev 60) +++ cinesuite/cineplay-cinecode/trunk/src/CineCode.h 2008-03-04 10:08:14 UTC (rev 61) @@ -51,6 +51,7 @@ private: Common* m_impl; + int m_encodeTrayItem; }; } //namespace cineplay Modified: cinesuite/cineplay-cinecode/trunk/src/Common.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-03 22:49:35 UTC (rev 60) +++ cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-04 10:08:14 UTC (rev 61) @@ -159,16 +159,16 @@ menubarPlaceholder->hide(); #endif - QMenuBar* menubar = new QMenuBar( menubarPlaceholder ); - menubar->setFrameShape( QFrame::NoFrame ); - menubar->setPalette( menubarPlaceholder->palette() ); - menubar->setSeparator( QMenuBar::InWindowsStyle ); + m_menubar = new QMenuBar( menubarPlaceholder ); + m_menubar->setFrameShape( QFrame::NoFrame ); + m_menubar->setPalette( menubarPlaceholder->palette() ); + m_menubar->setSeparator( QMenuBar::InWindowsStyle ); // file - m_fileMenu = new QPopupMenu( menubar ); + m_fileMenu = new QPopupMenu( m_menubar ); //mru menu - m_mruMenu = new QPopupMenu( menubar ); + m_mruMenu = new QPopupMenu( m_menubar ); m_mruList.BuildMenu(m_mruMenu, this, SLOT( onMruSelected(int) ) ); m_mruMenu->setPalette( menubarPlaceholder->palette() ); @@ -184,10 +184,10 @@ m_fileMenu->insertItem( tr( "&close" ), this, SLOT( onClose() ) ); //m_fileMenu->insertItem( tr( "save &as" ), this, SLOT( onSaveAs() ) ); m_fileMenu->insertItem( tr( "&quit" ), qApp, SLOT( quit() ) ); - menubar->insertItem( tr( "&File" ), m_fileMenu ); + m_menubar->insertItem( tr( "&File" ), m_fileMenu ); // view - m_menuView = new QPopupMenu( menubar ); + m_menuView = new QPopupMenu( m_menubar ); m_menuView->setPalette( menubarPlaceholder->palette() ); m_menuViewHalfIndex = m_menuView->insertItem( tr( "&half size" ), this, SLOT( onViewHalfSize() ) ); m_menuViewNormalIndex = m_menuView->insertItem( tr( "&normal size" ), this, SLOT( onViewNormalSize() ) ); @@ -197,14 +197,14 @@ m_menuViewShowIndex = m_menuView->insertItem( tr( "hide &video" ), this, SLOT( onViewHideVideo() ) ); m_menuView->insertSeparator(); m_menuViewLoopIndex = m_menuView->insertItem( tr( "&loop" ), this, SLOT( onViewLoop() ) ); - menubar->insertItem( tr( "&View" ), m_menuView ); + m_menubar->insertItem( tr( "&View" ), m_menuView ); // window - m_windowMenu = new QPopupMenu( menubar ); + m_windowMenu = new QPopupMenu( m_menubar ); m_windowMenu->setPalette( menubarPlaceholder->palette() ); m_windowMenu->insertItem( tr( "&movie info" ), this, SLOT( onShowMovieInfo() ) ); - m_favMenu = new QPopupMenu( menubar ); + m_favMenu = new QPopupMenu( m_menubar ); m_favList.BuildMenu(m_favMenu, this, SLOT( onFavSelected(int) ) ); m_favMenu->setPalette( menubarPlaceholder->palette() ); @@ -214,16 +214,16 @@ m_favItemRef = m_windowMenu->insertItem( tr( "&favorites" ), m_favMenu ); updateFavMenu(); - menubar->insertItem( tr( "&Window" ), m_windowMenu ); + m_menubar->insertItem( tr( "&Window" ), m_windowMenu ); // help - QPopupMenu* help = new QPopupMenu( menubar ); + QPopupMenu* help = new QPopupMenu( m_menubar ); help->setPalette( menubarPlaceholder->palette() ); help->insertItem( tr( "&help" ), this, SLOT( onHelp() ) ); help->insertItem( tr( "&check for release" ), this, SLOT( onCheckVersion() ) ); help->insertItem( tr( "&website" ), this, SLOT( onGotoWebsite() ) ); help->insertItem( tr( "&about" ), this, SLOT( onAbout() ) ); - menubar->insertItem( "&Help", help ); + m_menubar->insertItem( "&Help", help ); if( !SetupStores() ) { Modified: cinesuite/cineplay-cinecode/trunk/src/Common.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.h 2008-03-03 22:49:35 UTC (rev 60) +++ cinesuite/cineplay-cinecode/trunk/src/Common.h 2008-03-04 10:08:14 UTC (rev 61) @@ -40,6 +40,7 @@ class Release; class ReleaseDlg; class TrayDlg; +class QMenuBar; namespace cineplay { @@ -166,6 +167,7 @@ bool m_playerRefresh; bool m_playControlPopup; + QMenuBar* m_menubar; QPopupMenu* m_menuView; int m_menuViewHalfIndex; int m_menuViewNormalIndex; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-03-05 22:15:34
|
Revision: 63 http://editopia.svn.sourceforge.net/editopia/?rev=63&view=rev Author: timdewhirst Date: 2008-03-05 14:15:24 -0800 (Wed, 05 Mar 2008) Log Message: ----------- cinesuite - cleanup .pro files Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/cinecode.pro cinesuite/cineplay-cinecode/trunk/src/cineplay.pro Added Paths: ----------- cinesuite/cineplay-cinecode/trunk/src/common.pri cinesuite/cineplay-cinecode/trunk/src/config.pri Modified: cinesuite/cineplay-cinecode/trunk/src/cinecode.pro =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/cinecode.pro 2008-03-04 10:12:42 UTC (rev 62) +++ cinesuite/cineplay-cinecode/trunk/src/cinecode.pro 2008-03-05 22:15:24 UTC (rev 63) @@ -1,83 +1,18 @@ -###################################################################### -# Automatically generated by qmake (1.07a) Tue Jul 31 23:39:06 2007 -###################################################################### TEMPLATE = app -DEPENDPATH += windows -INCLUDEPATH += . -CONFIG += thread qt warn_on opengl -CONFIG += debug -RC_FILE = cineplay.rc DEFINES += BUILD_CINECODE -include( olibs.pri ) -include( jah.pri ) +include( common.pri ) -# Input - -macx { - LIBS+= -framework Cocoa -framework CoreFoundation -} - FORMS += \ - windows/main_cinecode.ui \ - windows/toolbar.ui \ - windows/downloadDialog.ui \ - windows/about.ui \ - windows/addfav.ui \ - windows/releaseDialog.ui \ - windows/removefav.ui \ - windows/infoDialog.ui \ - windows/styledlg.ui \ - windows/tray.ui \ - windows/tray_entry.ui + windows/main_cinecode.ui HEADERS += \ - AddFavouriteDlg.h \ - Browser.h \ - Common.h \ CineCode.h \ - Command.h \ - Download.h \ EncodeJob.h \ - FilterGraph.h \ - Info.h \ - Jah.h \ - OpenGLStore.h \ - Player.h \ - PlayerDelegate.h \ - PlayList.h \ - Release.h \ - ReleaseDlg.h \ - RemoveFavouriteDlg.h \ - SetupDefs.h \ - SkinDlg.h \ - Theme.h \ - TrayDlg.h \ - TrayEntryWidget.h \ - Utils.h \ - Version.h + FilterGraph.h - SOURCES += \ - AddFavouriteDlg.cpp \ - Browser.cpp \ - Common.cpp \ CineCode.cpp \ - Command.cpp \ - Download.cpp \ EncodeJob.cpp \ - FilterGraph.cpp \ - Info.cpp \ - OpenGLStore.cpp \ - Player.cpp \ - PlayerDelegate.cpp \ - PlayList.cpp \ - Release.cpp \ - ReleaseDlg.cpp \ - RemoveFavouriteDlg.cpp \ - SkinDlg.cpp \ - Theme.cpp \ - TrayDlg.cpp \ - TrayEntryWidget.cpp \ - Utils.cpp + FilterGraph.cpp Modified: cinesuite/cineplay-cinecode/trunk/src/cineplay.pro =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/cineplay.pro 2008-03-04 10:12:42 UTC (rev 62) +++ cinesuite/cineplay-cinecode/trunk/src/cineplay.pro 2008-03-05 22:15:24 UTC (rev 63) @@ -1,71 +1,13 @@ -###################################################################### -# Automatically generated by qmake (1.07a) Tue Jul 31 23:39:06 2007 -###################################################################### TEMPLATE = app -DEPENDPATH += windows -INCLUDEPATH += . -CONFIG += thread qt warn_on opengl -CONFIG += debug -RC_FILE = cineplay.rc -include( olibs.pri ) -include( jah.pri ) +include( common.pri ) -# Input - -macx { - LIBS+= -framework Cocoa -framework CoreFoundation -} - FORMS += \ - windows/main.ui \ - windows/toolbar.ui \ - windows/downloadDialog.ui \ - windows/about.ui \ - windows/addfav.ui \ - windows/releaseDialog.ui \ - windows/removefav.ui \ - windows/infoDialog.ui \ - windows/styledlg.ui \ + windows/main.ui HEADERS += \ - AddFavouriteDlg.h \ - Browser.h \ - Common.h \ - CinePlay.h \ - Download.h \ - Info.h \ - Jah.h \ - OpenGLStore.h \ - Player.h \ - PlayerDelegate.h \ - PlayList.h \ - Release.h \ - ReleaseDlg.h \ - RemoveFavouriteDlg.h \ - SetupDefs.h \ - SkinDlg.h \ - Theme.h \ - Version.h \ - Utils.h \ - Command.h + CinePlay.h SOURCES += \ - AddFavouriteDlg.cpp \ - Browser.cpp \ - Common.cpp \ - CinePlay.cpp \ - Download.cpp \ - Info.cpp \ - OpenGLStore.cpp \ - Player.cpp \ - PlayerDelegate.cpp \ - PlayList.cpp \ - Release.cpp \ - ReleaseDlg.cpp \ - RemoveFavouriteDlg.cpp \ - SkinDlg.cpp \ - Theme.cpp \ - Utils.cpp \ - Command.cpp + CinePlay.cpp Added: cinesuite/cineplay-cinecode/trunk/src/common.pri =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/common.pri (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/common.pri 2008-03-05 22:15:24 UTC (rev 63) @@ -0,0 +1,62 @@ + +DEPENDPATH += windows +INCLUDEPATH += . + +include( config.pri ) +include( olibs.pri ) +include( jah.pri ) + +# Input + +macx { + LIBS+= -framework Cocoa -framework CoreFoundation +} + +FORMS += \ + windows/toolbar.ui \ + windows/downloadDialog.ui \ + windows/about.ui \ + windows/addfav.ui \ + windows/releaseDialog.ui \ + windows/removefav.ui \ + windows/infoDialog.ui \ + windows/styledlg.ui \ + +HEADERS += \ + AddFavouriteDlg.h \ + Browser.h \ + Common.h \ + Download.h \ + Info.h \ + Jah.h \ + OpenGLStore.h \ + Player.h \ + PlayerDelegate.h \ + PlayList.h \ + Release.h \ + ReleaseDlg.h \ + RemoveFavouriteDlg.h \ + SetupDefs.h \ + SkinDlg.h \ + Theme.h \ + Version.h \ + Utils.h \ + Command.h + +SOURCES += \ + AddFavouriteDlg.cpp \ + Browser.cpp \ + Common.cpp \ + Download.cpp \ + Info.cpp \ + OpenGLStore.cpp \ + Player.cpp \ + PlayerDelegate.cpp \ + PlayList.cpp \ + Release.cpp \ + ReleaseDlg.cpp \ + RemoveFavouriteDlg.cpp \ + SkinDlg.cpp \ + Theme.cpp \ + Utils.cpp \ + Command.cpp Added: cinesuite/cineplay-cinecode/trunk/src/config.pri =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/config.pri (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/config.pri 2008-03-05 22:15:24 UTC (rev 63) @@ -0,0 +1,4 @@ + +CONFIG += thread qt warn_on opengl +CONFIG += debug +RC_FILE = cineplay.rc This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-03-06 07:57:14
|
Revision: 66 http://editopia.svn.sourceforge.net/editopia/?rev=66&view=rev Author: timdewhirst Date: 2008-03-05 23:57:03 -0800 (Wed, 05 Mar 2008) Log Message: ----------- cinesuite - add of new tray class Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/Tray.h Added Paths: ----------- cinesuite/cineplay-cinecode/trunk/src/Tray.cpp Added: cinesuite/cineplay-cinecode/trunk/src/Tray.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Tray.cpp (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/Tray.cpp 2008-03-06 07:57:03 UTC (rev 66) @@ -0,0 +1,137 @@ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ + +// This file is part of Cineplay +// +// Cineplay is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Cineplay is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com + +#include "Tray.h" + +// qt +#include <qframe.h> +#include <qdesktopwidget.h> +#include <qrect.h> +#include <qpoint.h> + +const static int INSET = 10; + +Tray::Tray( QWidget* parent, Location location ) + : tray( parent, 0, Qt::WStyle_Tool | Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WType_TopLevel ), + location_( location ) +{ + switch ( location_ ) + { + case LOCATION_TOP: + bottom->hide(); + break; + + case LOCATION_BOTTOM: + top->hide(); + break; + + case LOCATION_LEFT: + right_vertical->hide(); + break; + + default: + left_vertical->hide(); + break; + } + + parent->installEventFilter( this ); +} + +QWidget* Tray::placeholder() const +{ + return tray::placeholder; +} + +bool Tray::eventFilter( QObject*, QEvent* e ) +{ + switch ( e->type() ) + { + case QEvent::Move: + case QEvent::Resize: + update(); + break; + + case QEvent::Show: + show(); + break; + + case QEvent::Hide: + hide(); + break; + + default: + break; + } + + return false; +} + +QSize constrainToDesktop( QWidget* w, QSize proposed ) +{ + QDesktopWidget desktopWidget; + QRect desktop = desktopWidget.availableGeometry( w ); + + const static int BORDER = 5; + QPoint mapped = w->mapToGlobal( QPoint( proposed.width(), proposed.height() ) ); + QPoint constained( std::min( std::max( mapped.x(), desktop.x() + BORDER ), desktop.x() + desktop.width() - 2*BORDER ), + std::min( std::max( mapped.y(), desktop.y() + BORDER ), desktop.y() + desktop.height() - 2*BORDER ) ); + + QPoint final( w->mapFromGlobal( constained ) ); + QSize result( final.x(), final.y() ); + +// qDebug( "[%i, %i] -> [%i, %i] (%i, %i -> %i, %i)", +// proposed.width(), proposed.height(), +// result.width(), result.height(), +// desktop.x(), desktop.y(), desktop.width(), desktop.height() ); +// qDebug( "[%i, %i] -> [%i, %i]", +// mapped.x(), mapped.y(), +// constained.x(), constained.y() ); + + return result; +} + +void Tray::update() +{ + QWidget* parent = parentWidget(); + + switch ( location_ ) + { + case LOCATION_TOP: + move( parent->x() + INSET, parent->y() - height() ); + resize( constrainToDesktop( this, QSize( parent->width() - 2*INSET, height() ) ) ); + break; + + case LOCATION_BOTTOM: + move( parent->x() + INSET, parent->y() + parent->height() ); + resize( parent->width() - 2*INSET, height() ); + break; + + case LOCATION_LEFT: + move( parent->x() - width(), parent->y() + INSET ); + resize( width(), parent->height() - 2*INSET ); + break; + + default: + move( parent->x() + parent->width(), parent->y() + INSET ); + resize( constrainToDesktop( this, QSize( width(), parent->height() - 2*INSET ) ) ); + break; + } + +} Modified: cinesuite/cineplay-cinecode/trunk/src/Tray.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Tray.h 2008-03-06 07:55:21 UTC (rev 65) +++ cinesuite/cineplay-cinecode/trunk/src/Tray.h 2008-03-06 07:57:03 UTC (rev 66) @@ -20,18 +20,33 @@ #pragma once +// generated +#include "windows/tray.h" + +// qt +#include <qwidget.h> +#include <qobject.h> +#include <qevent.h> + /// a tray widget that can be placed on any edge of the top level window -class Tray : public QWidget +class Tray : public tray { public: - enum { LOCATION_TOP, - LOCATION_BOTTOM, - LOCATION_LEFT, - LOCATION_RIGHT }; + enum Location { LOCATION_TOP, + LOCATION_BOTTOM, + LOCATION_LEFT, + LOCATION_RIGHT }; /// parent must be passed in; this tray will monitor the parent /// for changes in size and position; having more than one tray - /// visible per size will result in undefined behaviour - Tray( QWidget* parent ); + /// visible per side will result in undefined behaviour + Tray( QWidget* parent, Location ); QWidget* placeholder() const; + + virtual bool eventFilter( QObject* watched, QEvent* e ); + +private: + void update(); + + Location location_; }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-03-06 08:00:49
|
Revision: 67 http://editopia.svn.sourceforge.net/editopia/?rev=67&view=rev Author: timdewhirst Date: 2008-03-06 00:00:47 -0800 (Thu, 06 Mar 2008) Log Message: ----------- cinesuite - updates to build - whitespace changes Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/Utils.h cinesuite/cineplay-cinecode/trunk/src/cinecode.pro cinesuite/cineplay-cinecode/trunk/src/common.pri Modified: cinesuite/cineplay-cinecode/trunk/src/Utils.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Utils.h 2008-03-06 07:57:03 UTC (rev 66) +++ cinesuite/cineplay-cinecode/trunk/src/Utils.h 2008-03-06 08:00:47 UTC (rev 67) @@ -50,6 +50,6 @@ /// olibs utils void InitOpenLibraries( const QString& appDirPath ); pl::wstring ToWString( const QString& ); -QString ToQString( const pl::wstring& ); +QString ToQString( const pl::wstring& ); } Modified: cinesuite/cineplay-cinecode/trunk/src/cinecode.pro =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/cinecode.pro 2008-03-06 07:57:03 UTC (rev 66) +++ cinesuite/cineplay-cinecode/trunk/src/cinecode.pro 2008-03-06 08:00:47 UTC (rev 67) @@ -5,7 +5,8 @@ include( common.pri ) FORMS += \ - windows/main_cinecode.ui + windows/main_cinecode.ui \ + windows/encode_tray_entry.ui HEADERS += \ CineCode.h \ Modified: cinesuite/cineplay-cinecode/trunk/src/common.pri =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/common.pri 2008-03-06 07:57:03 UTC (rev 66) +++ cinesuite/cineplay-cinecode/trunk/src/common.pri 2008-03-06 08:00:47 UTC (rev 67) @@ -21,6 +21,8 @@ windows/removefav.ui \ windows/infoDialog.ui \ windows/styledlg.ui \ + windows/tray.ui \ + windows/favorite_tray_entry.ui HEADERS += \ AddFavouriteDlg.h \ @@ -41,7 +43,8 @@ Theme.h \ Version.h \ Utils.h \ - Command.h + Command.h \ + Tray.h SOURCES += \ AddFavouriteDlg.cpp \ @@ -59,4 +62,5 @@ SkinDlg.cpp \ Theme.cpp \ Utils.cpp \ - Command.cpp + Command.cpp \ + Tray.cpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-03-06 10:26:01
|
Revision: 68 http://editopia.svn.sourceforge.net/editopia/?rev=68&view=rev Author: timdewhirst Date: 2008-03-06 02:25:58 -0800 (Thu, 06 Mar 2008) Log Message: ----------- cinesuite - more tray work; interim checkin Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp cinesuite/cineplay-cinecode/trunk/src/CinePlay.h Modified: cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp 2008-03-06 08:00:47 UTC (rev 67) +++ cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp 2008-03-06 10:25:58 UTC (rev 68) @@ -22,6 +22,8 @@ #include "CineCode.h" #include "Common.h" #include "Theme.h" +#include "Tray.h" +#include "Utils.h" // qt #include <qapplication.h> @@ -52,6 +54,13 @@ encode->insertItem( tr( "&reset in/out points" ), this, SLOT( onResetInOPutPoints() ) ); m_encodeTrayItem = encode->insertItem( tr( "toggle encode &tray" ), this, SLOT( onEncodeTrayShow() ) ); m_impl->m_menubar->insertItem( "&Encode", encode ); + + // trays... + Tray* right = new Tray( this, Tray::LOCATION_RIGHT ); + right->hide(); + + QWidget* toggleRightTrayButton = CineUtils::FindWidget( "toggle_right_tray", this ); + connect( toggleRightTrayButton, SIGNAL( toggled( bool ) ), right, SLOT( setShown( bool ) ) ); } bool CineCode::LoadCmdLineInput( const QString& fname ) Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-03-06 08:00:47 UTC (rev 67) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-03-06 10:25:58 UTC (rev 68) @@ -22,6 +22,8 @@ #include "CinePlay.h" #include "Common.h" #include "Theme.h" +#include "Tray.h" +#include "Utils.h" // qt #include <qapplication.h> @@ -37,6 +39,12 @@ { //general main window setup setAcceptDrops( true ); + + // trays... + m_favoritesTray = new Tray( this, Tray::LOCATION_RIGHT ); + + QWidget* toggleRightTrayButton = CineUtils::FindWidget( "toggle_right_tray", this ); + connect( toggleRightTrayButton, SIGNAL( toggled( bool ) ), m_favoritesTray, SLOT( setShown( bool ) ) ); } bool CinePlay::LoadCmdLineInput( const QString& fname ) Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-03-06 08:00:47 UTC (rev 67) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-03-06 10:25:58 UTC (rev 68) @@ -24,6 +24,8 @@ // qt #include <qwidget.h> +class Tray; + namespace cineplay { @@ -51,6 +53,7 @@ private: Common* m_impl; + Tray* m_favoritesTray; }; } //namespace cineplay This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-03-06 12:46:19
|
Revision: 70 http://editopia.svn.sourceforge.net/editopia/?rev=70&view=rev Author: timdewhirst Date: 2008-03-06 04:46:11 -0800 (Thu, 06 Mar 2008) Log Message: ----------- cinesuite - add thumbnailing capability - add storage of thumbnails to settings - add image utilities - fix main window decoration on FC8 Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/AddFavouriteDlg.cpp cinesuite/cineplay-cinecode/trunk/src/AddFavouriteDlg.h cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp cinesuite/cineplay-cinecode/trunk/src/CinePlay.h cinesuite/cineplay-cinecode/trunk/src/Common.cpp cinesuite/cineplay-cinecode/trunk/src/Common.h cinesuite/cineplay-cinecode/trunk/src/PlayList.cpp cinesuite/cineplay-cinecode/trunk/src/PlayList.h cinesuite/cineplay-cinecode/trunk/src/Utils.cpp cinesuite/cineplay-cinecode/trunk/src/Utils.h Modified: cinesuite/cineplay-cinecode/trunk/src/AddFavouriteDlg.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/AddFavouriteDlg.cpp 2008-03-06 12:45:24 UTC (rev 69) +++ cinesuite/cineplay-cinecode/trunk/src/AddFavouriteDlg.cpp 2008-03-06 12:46:11 UTC (rev 70) @@ -8,50 +8,55 @@ class addFavInt : public addFav { protected: - SkinDialog* m_skinDlg; + SkinDialog* m_skinDlg; + public: - - addFavInt( SkinDialog *dlg) { m_skinDlg = dlg; } - - void reject() - { - setResult( QDialog::Rejected ); - m_skinDlg->close(); - } + addFavInt( SkinDialog *dlg) { m_skinDlg = dlg; } + + void reject() + { + setResult( QDialog::Rejected ); + m_skinDlg->close(); + } }; - -AddFavouriteDlg::AddFavouriteDlg( QWidget *parent, cineplay::CFavourites *favs, const QString &lastFile, int frame) : SkinDialog(parent) +AddFavouriteDlg::AddFavouriteDlg( QWidget *parent, + cineplay::CFavourites *favs, + const QString &lastFile, + int frame, + QImage thumbnail ) + : SkinDialog(parent), + m_thumbnail( thumbnail ) { - m_currentFrame = frame; - m_favList = favs; - m_fav = new addFavInt(this); - - SetContentWidget( m_fav ); - - //make a nice name tobegin with - m_fname = lastFile; - - QFileInfo info(lastFile); - QString niceStr = info.fileName(); - - niceStr.replace('-', ' '); - niceStr.replace('_', ' '); - niceStr.replace('.', ' '); - - m_fav->nameEdit->setText( niceStr ); + m_currentFrame = frame; + m_favList = favs; + m_fav = new addFavInt(this); + + SetContentWidget( m_fav ); + + //make a nice name tobegin with + m_fname = lastFile; + + QFileInfo info(lastFile); + QString niceStr = info.fileName(); + + niceStr.replace('-', ' '); + niceStr.replace('_', ' '); + niceStr.replace('.', ' '); + + m_fav->nameEdit->setText( niceStr ); } void AddFavouriteDlg::accept() { - QString name = m_fav->nameEdit->text(); - if(name.isEmpty()) - name = m_fname; - - int frame = m_fav->positionChk->isChecked() ? m_currentFrame : -1; - m_favList->pushUrl(m_fname, name, frame); - - SkinDialog::accept(); + QString name = m_fav->nameEdit->text(); + if(name.isEmpty()) + name = m_fname; + + int frame = m_fav->positionChk->isChecked() ? m_currentFrame : -1; + m_favList->pushUrl( m_fname, name, m_thumbnail, frame ); + + SkinDialog::accept(); } Modified: cinesuite/cineplay-cinecode/trunk/src/AddFavouriteDlg.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/AddFavouriteDlg.h 2008-03-06 12:45:24 UTC (rev 69) +++ cinesuite/cineplay-cinecode/trunk/src/AddFavouriteDlg.h 2008-03-06 12:46:11 UTC (rev 70) @@ -22,26 +22,33 @@ #ifndef ADDFAVOURITEDLG_H #define ADDFAVOURITEDLG_H - +// local #include "windows/addfav.h" #include "SkinDlg.h" #include "PlayList.h" +// qt +#include <qimage.h> class AddFavouriteDlg : public SkinDialog { protected: - addFav* m_fav; - cineplay::CFavourites* m_favList; - QString m_fname; - int m_currentFrame; + addFav* m_fav; + cineplay::CFavourites* m_favList; + QString m_fname; + QImage m_thumbnail; + int m_currentFrame; public: - AddFavouriteDlg( QWidget *parent, cineplay::CFavourites *favs, const QString &fname, int currentFrame); + AddFavouriteDlg( QWidget *parent, + cineplay::CFavourites *favs, + const QString &fname, + int currentFrame, + QImage thumbnail ); - void accept(); + void accept(); }; Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-03-06 12:45:24 UTC (rev 69) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-03-06 12:46:11 UTC (rev 70) @@ -28,13 +28,14 @@ // qt #include <qapplication.h> #include <qnetwork.h> +#include <qscrollview.h> namespace cineplay { CinePlay::CinePlay( QWidget *parent, const char *name ) - : QWidget( parent, name, Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WStyle_SysMenu ), + : QWidget( parent, name, Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WType_TopLevel ), m_impl( new Common( this ) ) { //general main window setup @@ -42,9 +43,11 @@ // trays... m_favoritesTray = new Tray( this, Tray::LOCATION_RIGHT ); - QWidget* toggleRightTrayButton = CineUtils::FindWidget( "toggle_right_tray", this ); connect( toggleRightTrayButton, SIGNAL( toggled( bool ) ), m_favoritesTray, SLOT( setShown( bool ) ) ); + + // connect to favourites changing + connect( m_impl->m_favList, SIGNAL( changed() ), this, SLOT( onFavouritesChanged() ) ); } bool CinePlay::LoadCmdLineInput( const QString& fname ) @@ -52,6 +55,11 @@ return m_impl->LoadCmdLineInput( fname ); } +void CinePlay::onFavouritesChanged() +{ + +} + void CinePlay::keyPressEvent( QKeyEvent* e ) { QWidget::keyPressEvent( e ); Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-03-06 12:45:24 UTC (rev 69) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-03-06 12:46:11 UTC (rev 70) @@ -51,6 +51,9 @@ virtual void dropEvent( QDropEvent* ); virtual void customEvent( QCustomEvent* ); +private slots: + void onFavouritesChanged(); + private: Common* m_impl; Tray* m_favoritesTray; Modified: cinesuite/cineplay-cinecode/trunk/src/Common.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-06 12:45:24 UTC (rev 69) +++ cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-06 12:46:11 UTC (rev 70) @@ -69,6 +69,7 @@ // olibs #include <openpluginlib/pl/openpluginlib.hpp> #include <openpluginlib/pl/utf8_utils.hpp> +#include <openimagelib/il/utility.hpp> #define RESIZE_DELAY 35 // minimal delay (in ms) in between two calls to the main window's resize() @@ -94,6 +95,7 @@ , m_mruMenu(0) , m_mediaSize(0, 0) , m_mruList(5) + , m_favList( new CFavourites( this ) ) , m_jwStore(NULL) , m_player(IPlayerPtr()) , m_delegate(IPlayerCallbackPtr()) @@ -205,7 +207,7 @@ m_windowMenu->insertItem( tr( "&movie info" ), this, SLOT( onShowMovieInfo() ) ); m_favMenu = new QPopupMenu( m_menubar ); - m_favList.BuildMenu(m_favMenu, this, SLOT( onFavSelected(int) ) ); + m_favList->BuildMenu(m_favMenu, this, SLOT( onFavSelected(int) ) ); m_favMenu->setPalette( menubarPlaceholder->palette() ); m_windowMenu->insertItem( tr( "&add favorite" ), this, SLOT( onFavAdd() ) ); @@ -774,13 +776,13 @@ void Common::onFavSelected(int index) { - QString str = m_favList.getUrl(index); + QString str = m_favList->getUrl(index); if(!str.isEmpty()) { LoadInput(str); - int frame = m_favList.getFrameNumber(index); + int frame = m_favList->getFrameNumber(index); if(frame != -1) m_player->seek(frame); } @@ -790,11 +792,17 @@ { if(!m_lastFile.isEmpty()) { - AddFavouriteDlg dlg( m_parent, &m_favList, m_lastFile, m_lastFrame ); + QImage thumb; + { + QMutexLocker lock( &m_frameCacheMutex ); + thumb = CineUtils::ImageToQImage( il::rescale( m_frameCache->get_image(), 64, 64 ) ); + } + AddFavouriteDlg dlg( m_parent, m_favList, m_lastFile, m_lastFrame, thumb ); + if(dlg.exec() == QDialog::Accepted) { - m_favList.BuildMenu(m_favMenu, this, SLOT( onFavSelected(int) ) ); + m_favList->BuildMenu(m_favMenu, this, SLOT( onFavSelected(int) ) ); updateFavMenu(); } } @@ -803,15 +811,15 @@ void Common::onFavRemove() { - unsigned int count = m_favList.getEntryCount(); + unsigned int count = m_favList->getEntryCount(); if(count) { - RemoveFavouriteDlg dlg( m_parent, &m_favList); + RemoveFavouriteDlg dlg( m_parent, m_favList); if(dlg.exec() == QDialog::Accepted) { - m_favList.BuildMenu(m_favMenu, this, SLOT( onFavSelected(int) ) ); + m_favList->BuildMenu(m_favMenu, this, SLOT( onFavSelected(int) ) ); updateFavMenu(); } } @@ -819,7 +827,7 @@ void Common::updateFavMenu() { - m_windowMenu->setItemEnabled( m_favItemRef, m_favList.getEntryCount() != 0 ); + m_windowMenu->setItemEnabled( m_favItemRef, m_favList->getEntryCount() != 0 ); } void Common::onShowMovieInfo() @@ -1345,7 +1353,7 @@ if(le) { QMutexLocker lock( &m_frameCacheMutex ); - m_videoStore->push( m_frameCache ); + m_videoStore->push( m_frameCache ); } } break; Modified: cinesuite/cineplay-cinecode/trunk/src/Common.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.h 2008-03-06 12:45:24 UTC (rev 69) +++ cinesuite/cineplay-cinecode/trunk/src/Common.h 2008-03-06 12:46:11 UTC (rev 70) @@ -22,8 +22,8 @@ // local #include "Jah.h" +#include "Player.h" #include "PlayList.h" -#include "Player.h" // qt #include <qobject.h> @@ -185,7 +185,7 @@ QSize m_dragAppSize; QSize m_mediaSize; CMruList m_mruList; - CFavourites m_favList; + CFavourites* m_favList; QString m_lastFile; int m_lastFrame; QRect m_preFullScreenRect; Modified: cinesuite/cineplay-cinecode/trunk/src/PlayList.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/PlayList.cpp 2008-03-06 12:45:24 UTC (rev 69) +++ cinesuite/cineplay-cinecode/trunk/src/PlayList.cpp 2008-03-06 12:46:11 UTC (rev 70) @@ -21,11 +21,11 @@ #include "PlayList.h" #include "SetupDefs.h" +#include "Utils.h" - #include <qsettings.h> +#include <qpopupmenu.h> - namespace cineplay { @@ -123,7 +123,8 @@ } } - CFavourites::CFavourites() + CFavourites::CFavourites( QObject* parent ) + : QObject( parent ) { readSettings(); } @@ -140,64 +141,80 @@ QString url = settings.readEntry( entry + "/url" ); QString name = settings.readEntry( entry + "/name" ); int frame = settings.readNumEntry( entry + "/frame", -1 ); + QImage thumb = CineUtils::StringToQImage( settings.readEntry( entry + "/thumbnail" ) ); - if(!url.isEmpty() && !name.isEmpty()) + if( !url.isEmpty() && !name.isEmpty() ) { - m_urls.push_back(url); - m_names.push_back(name); - m_frameNumbers.push_back(frame); + Data d; + d.url = url; + d.name = name; + d.frameNumber = frame; + d.thumbnail = thumb; + + m_data.push_back( d ); } } + + emit changed(); } void CFavourites::writeSettings() { QSettings settings; - for(size_t t=0;t<m_urls.size();t++) + for( size_t t=0; t<m_data.size(); ++t ) { QString str = SETTINGS_FAVROOT + QString::number( static_cast<uint>(t) ); - settings.writeEntry( str + "/url", m_urls[t] ); - settings.writeEntry( str + "/name", m_names[t] ); - settings.writeEntry( str + "/frame", m_frameNumbers[t] ); + settings.writeEntry( str + "/url", m_data[t].url ); + settings.writeEntry( str + "/name", m_data[t].name ); + settings.writeEntry( str + "/frame", m_data[t].frameNumber ); + settings.writeEntry( str + "/thumbnail", CineUtils::QImageToString( m_data[t].thumbnail ) ); } } - void CFavourites::pushUrl(const QString &str1, const QString &name, int index) + void CFavourites::pushUrl( const QString &str1, const QString &name, const QImage& thumb, int index ) { //strip sequence tag if its there QString str = str1; str.remove("/sequence:"); - m_urls.push_back(str); - m_names.push_back(name); - m_frameNumbers.push_back(index); + Data d; + d.url = str; + d.name = name; + d.frameNumber = index; + d.thumbnail = thumb; + m_data.push_back( d ); + writeSettings(); + emit changed(); } QString CFavourites::getUrl(unsigned int index) { - return m_urls[index]; + return m_data[index].url; } int CFavourites::getFrameNumber(unsigned int index) { - return m_frameNumbers[index]; + return m_data[index].frameNumber; } QString CFavourites::getName(unsigned int index) { - return m_names[index]; + return m_data[index].name; } + QImage CFavourites::getThumbnail( unsigned int index ) + { + return m_data[index].thumbnail; + } + void CFavourites::removeEntry(unsigned int ref) { - if(ref < m_urls.size()) + if( ref < m_data.size() ) { - m_urls.remove( m_urls.at(ref) ); - m_names.remove( m_names.at(ref) ); - m_frameNumbers.remove( m_frameNumbers.at(ref) ); + m_data.remove( m_data.at(ref) ); QSettings settings; QString str = SETTINGS_FAVROOT + QString::number(ref); @@ -205,6 +222,9 @@ settings.removeEntry( str + "/url" ); settings.removeEntry( str + "/name" ); settings.removeEntry( str + "/frame" ); + settings.removeEntry( str + "/thumbnail" ); + + emit changed(); } } @@ -213,10 +233,10 @@ { menu->clear(); - for(size_t t=0;t<m_urls.size();t++) + for( size_t t=0; t<m_data.size(); ++t ) { QString str = QString::number( static_cast<uint>(t+1) ) + ": "; - str += m_names[t]; + str += m_data[t].name; int ref = menu->insertItem( str, receiver, slot ); menu->setItemParameter ( ref, static_cast<int>(t) ); Modified: cinesuite/cineplay-cinecode/trunk/src/PlayList.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/PlayList.h 2008-03-06 12:45:24 UTC (rev 69) +++ cinesuite/cineplay-cinecode/trunk/src/PlayList.h 2008-03-06 12:46:11 UTC (rev 70) @@ -26,55 +26,70 @@ #include <qstring.h> #include <qstringlist.h> #include <qvaluelist.h> -#include <qpopupmenu.h> +#include <qimage.h> +#include <qobject.h> +class QPopupMenu; namespace cineplay { - class CMruList - { - protected: - size_t m_maxSize; - QStringList m_urls; - public: + class CMruList + { + protected: + size_t m_maxSize; + QStringList m_urls; + public: - CMruList(size_t maxSize); + CMruList(size_t maxSize); - void setMaxSize(size_t maxSize); - void readSettings(); - void writeSettings(); - void pushUrl(const QString &str); - QString getLastestUrl(); - QString getUrl(unsigned int index); - QStringList getUrls() { return m_urls; } - void BuildMenu(QPopupMenu *menu, QObject *receiver, const char *slot); - }; + void setMaxSize(size_t maxSize); + void readSettings(); + void writeSettings(); + void pushUrl(const QString &str); + QString getLastestUrl(); + QString getUrl(unsigned int index); + QStringList getUrls() { return m_urls; } + void BuildMenu(QPopupMenu *menu, QObject *receiver, const char *slot); + }; - class CFavourites - { - protected: - QStringList m_urls; - QValueList<int> m_frameNumbers; - QStringList m_names; - public: + class CFavourites : public QObject + { + Q_OBJECT + + private: + struct Data { + QString url; + int frameNumber; + QString name; + QImage thumbnail; + }; + typedef QValueList< Data > DataList; + + DataList m_data; + + public: + CFavourites( QObject* parent ); - CFavourites(); + void readSettings(); + void writeSettings(); + void pushUrl( const QString &url, const QString &name, const QImage& thumbnail, int index = -1 ); + QString getUrl( unsigned int index ); + int getFrameNumber( unsigned int index ); + QString getName( unsigned int index ); + QImage getThumbnail( unsigned int index ); - void readSettings(); - void writeSettings(); - void pushUrl(const QString &url, const QString &name, int index = -1); - QString getUrl(unsigned int index); - int getFrameNumber(unsigned int index); - QString getName(unsigned int index); - unsigned int getEntryCount() { return static_cast<unsigned int>( m_urls.size() ); } - void removeEntry(unsigned int ref); + unsigned int getEntryCount() { return static_cast<unsigned int>( m_data.size() ); } + void removeEntry(unsigned int ref); - void BuildMenu(QPopupMenu *menu, QObject *receiver, const char *slot); - }; + void BuildMenu( QPopupMenu *menu, QObject *receiver, const char *slot ); + signals: + void changed(); + }; + } //namespace cineplay Modified: cinesuite/cineplay-cinecode/trunk/src/Utils.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Utils.cpp 2008-03-06 12:45:24 UTC (rev 69) +++ cinesuite/cineplay-cinecode/trunk/src/Utils.cpp 2008-03-06 12:46:11 UTC (rev 70) @@ -29,11 +29,13 @@ #include <qwidget.h> #include <qobject.h> #include <qobjectlist.h> +#include <qcstring.h> +#include <qbuffer.h> // std #include <memory> +#include <map> - namespace CineUtils { #ifdef Q_OS_WIN @@ -254,4 +256,158 @@ return QString::fromUcs2( (const unsigned short*)( s.c_str() ) ); } +il::image_type_ptr QImageToImage( const QImage& qimage ) +{ + typedef il::image< unsigned char, il::b8g8r8a8 > b8g8r8a8_image_type; + typedef il::image< unsigned char, il::a8r8g8b8 > a8r8g8b8_image_type; + + if ( qimage.isNull() ) return il::image_type_ptr(); + + if ( qimage.depth( ) == 32 ) + { + int w = qimage.width( ); + int h = qimage.height( ); + uchar *bits = qimage.bits( ); + + // Optimal memcpy when applicable + il::image_type_ptr image; + + if ( QImage::systemByteOrder() == QImage::BigEndian ) { + image.reset( new il::image_type( a8r8g8b8_image_type( w, h, 1 ) ) ); + } + else { + image.reset( new il::image_type( b8g8r8a8_image_type( w, h, 1 ) ) ); + } + + w *= 4; + int stride = image->pitch( ); + uchar *ptr = image->data( ); + + while ( h-- ) + { + memcpy( ptr, bits, w ); + ptr += stride; + bits += w; + } + + return image; + } + else { + qWarning( "qimage_to_image: only supports 32bit images" ); + return il::image_type_ptr(); + } } + +QImage ImageToQImage( il::image_type_ptr image ) +{ + if ( !image ) { + qWarning( "image_to_qimage passed NULL image_type_ptr" ); + return QImage(); + } + + //qDebug( "image_to_qimage pf: %s", WStringToQString::convert( image->pf() ).latin1() ); + //qDebug( "image_to_qimage: w %d h %d", image->width(), image->height() ); + + // Convert to correct format + il::image_type_ptr dst_img; + if ( QImage::systemByteOrder() == QImage::BigEndian ) { + // TODO: a8r8g8b8 is correct for the Mac, but for some reason causes image corruption... + //dst_img = il::convert( image, L"a8r8g8b8" ); + dst_img = il::convert( image, L"b8g8r8a8" ); + } + else { + dst_img = il::convert( image, L"b8g8r8a8" ); + } + + if ( !dst_img ) { + qWarning( "image_to_qimage unable to convert to QImage byte order" ); + return QImage(); + } + + /* + qDebug( "src: %s", WStringToQString::convert(image->pf()).latin1() ); + qDebug( "src data: %p", image->data() ); + qDebug( "dst data: %p", dst_img->data() ); + */ + + // Convert + int w = dst_img->width(); + int h = dst_img->height(); + QImage qimage( w, h, 32 ); + qimage.setAlphaBuffer( true ); + + int stride = dst_img->pitch( ); + uchar* ptr = dst_img->data( ); + uchar* bits = qimage.bits(); + + //qDebug( "qim data: %p", qimage.bits() ); + + while ( h-- ) + { + memcpy( bits, ptr, stride ); + ptr += stride; + bits += stride; + } + + return qimage; +} + +QString QImageToString( const QImage& im ) +{ + QByteArray bytes; + QBuffer buf( bytes ); + buf.open( IO_ReadWrite ); + im.save( &buf, "PNG" ); + + QString result; + result.reserve( bytes.size()*2 ); + + const static char static_map[] = { '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; + for ( unsigned int i=0; i<bytes.size(); ++i ) + { + result[i] = static_map[ bytes[i]/16 ]; + result[i+1] = static_map[ bytes[i]%16 ]; + } + + return result; +} + +QImage StringToQImage( const QString& s ) +{ + QByteArray bytes; + bytes.resize( s.length()/2 ); + + static std::map< char, int > static_map; + if ( static_map.empty() ) + { + static_map[ '0' ] = 0; + static_map[ '1' ] = 1; + static_map[ '2' ] = 2; + static_map[ '3' ] = 3; + static_map[ '4' ] = 4; + static_map[ '5' ] = 5; + static_map[ '6' ] = 6; + static_map[ '7' ] = 7; + static_map[ '8' ] = 8; + static_map[ '9' ] = 9; + static_map[ 'a' ] = 10; + static_map[ 'b' ] = 11; + static_map[ 'c' ] = 12; + static_map[ 'd' ] = 13; + static_map[ 'e' ] = 14; + static_map[ 'f' ] = 15; + } + + for ( unsigned int i=0; i<s.length(); ++i ) + { + bytes[i] = static_map[ s[i] ]*16 + static_map[ s[i+1] ]; + } + + QImage im; + im.load( bytes ); + + return im; +} + +} Modified: cinesuite/cineplay-cinecode/trunk/src/Utils.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Utils.h 2008-03-06 12:45:24 UTC (rev 69) +++ cinesuite/cineplay-cinecode/trunk/src/Utils.h 2008-03-06 12:46:11 UTC (rev 70) @@ -22,11 +22,17 @@ // qt #include <qstring.h> +#include <qimage.h> // opl #include <openpluginlib/pl/string.hpp> namespace pl = olib::openpluginlib; +// oil +#include <openimagelib/il/basic_image.hpp> +namespace il = olib::openimagelib::il; + + class QWidget; class QObject; @@ -52,4 +58,10 @@ pl::wstring ToWString( const QString& ); QString ToQString( const pl::wstring& ); +/// image utils +il::image_type_ptr QImageToImage( const QImage& ); +QImage ImageToQImage( il::image_type_ptr ); +QString QImageToString( const QImage& ); +QImage StringToQImage( const QString& ); + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-03-06 15:14:56
|
Revision: 71 http://editopia.svn.sourceforge.net/editopia/?rev=71&view=rev Author: timdewhirst Date: 2008-03-06 07:14:45 -0800 (Thu, 06 Mar 2008) Log Message: ----------- cinesuite - visual favorites (nearly) - tweaks to favorite tray entry layout - bug fix in image utilities Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp cinesuite/cineplay-cinecode/trunk/src/CinePlay.h cinesuite/cineplay-cinecode/trunk/src/Common.cpp cinesuite/cineplay-cinecode/trunk/src/Utils.cpp cinesuite/cineplay-cinecode/trunk/src/common.pri cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui Added Paths: ----------- cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.cpp cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.h Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-03-06 12:46:11 UTC (rev 70) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-03-06 15:14:45 UTC (rev 71) @@ -24,12 +24,18 @@ #include "Theme.h" #include "Tray.h" #include "Utils.h" +#include "PlayList.h" +#include "FavoriteTrayEntry.h" // qt #include <qapplication.h> #include <qnetwork.h> #include <qscrollview.h> +#include <qlayout.h> +// std +#include <algorithm> + namespace cineplay { @@ -46,6 +52,23 @@ QWidget* toggleRightTrayButton = CineUtils::FindWidget( "toggle_right_tray", this ); connect( toggleRightTrayButton, SIGNAL( toggled( bool ) ), m_favoritesTray, SLOT( setShown( bool ) ) ); + // setup a scrollview + QVBoxLayout* placeholderLayout = new QVBoxLayout( m_favoritesTray->placeholder() ); + QScrollView* sv = new QScrollView( m_favoritesTray->placeholder() ); + sv->setFrameStyle( QFrame::NoFrame ); + placeholderLayout->setSpacing( 0 ); + placeholderLayout->setMargin( 0 ); + placeholderLayout->addWidget( sv ); + + sv->setHScrollBarMode( QScrollView::AlwaysOff ); + sv->setVScrollBarMode( QScrollView::AlwaysOn ); + m_trayPlaceholder = sv->viewport(); + + QVBoxLayout* trayLayout = new QVBoxLayout( m_trayPlaceholder ); + trayLayout->setSpacing( 0 ); + trayLayout->setMargin( 0 ); + trayLayout->setAutoAdd( true ); + // connect to favourites changing connect( m_impl->m_favList, SIGNAL( changed() ), this, SLOT( onFavouritesChanged() ) ); } @@ -55,9 +78,34 @@ return m_impl->LoadCmdLineInput( fname ); } +void destroy( QWidget* w ) +{ + delete w; +} + void CinePlay::onFavouritesChanged() { - + // destroy all and build again + std::for_each( m_trayEntries.begin(), m_trayEntries.end(), cineplay::destroy ); + m_trayEntries.clear(); + + // create all... + CFavourites* favorites = m_impl->m_favList; + for ( unsigned int i=0; i<favorites->getEntryCount(); ++i ) + { + QWidget* e = new FavoriteTrayEntry( m_trayPlaceholder, + i, + favorites->getName( i ), + favorites->getUrl( i ), + favorites->getThumbnail( i ) ); + QFont f( font() ); + f.setPointSizeFloat( 0.6* f.pointSizeFloat() ); + e->setFont( f ); + e->show(); + m_trayEntries.push_back( e ); + } + + m_trayPlaceholder->layout()->addItem( new QSpacerItem( 5, 5, QSizePolicy::Minimum, QSizePolicy::Expanding ) ); } void CinePlay::keyPressEvent( QKeyEvent* e ) Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-03-06 12:46:11 UTC (rev 70) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-03-06 15:14:45 UTC (rev 71) @@ -24,6 +24,9 @@ // qt #include <qwidget.h> +// std +#include <vector> + class Tray; namespace cineplay @@ -36,6 +39,8 @@ Q_OBJECT public: + typedef std::vector< QWidget* > WidgetVector; + CinePlay( QWidget *parent=0, const char *name=0 ); bool LoadCmdLineInput( const QString& fname ); @@ -56,7 +61,10 @@ private: Common* m_impl; + Tray* m_favoritesTray; + QWidget* m_trayPlaceholder; + WidgetVector m_trayEntries; }; } //namespace cineplay Modified: cinesuite/cineplay-cinecode/trunk/src/Common.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-06 12:46:11 UTC (rev 70) +++ cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-06 15:14:45 UTC (rev 71) @@ -795,7 +795,7 @@ QImage thumb; { QMutexLocker lock( &m_frameCacheMutex ); - thumb = CineUtils::ImageToQImage( il::rescale( m_frameCache->get_image(), 64, 64 ) ); + thumb = CineUtils::ImageToQImage( il::rescale( m_frameCache->get_image(), 48, 48 ) ); } AddFavouriteDlg dlg( m_parent, m_favList, m_lastFile, m_lastFrame, thumb ); Added: cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.cpp (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.cpp 2008-03-06 15:14:45 UTC (rev 71) @@ -0,0 +1,45 @@ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ + +// This file is part of Cineplay +// +// Cineplay is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Cineplay is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com + +#include "FavoriteTrayEntry.h" + +// widgets +#include "pushbutton.h" + +// qt +#include <qlabel.h> +#include <qframe.h> +#include <qimage.h> +#include <qpixmap.h> + +FavoriteTrayEntry::FavoriteTrayEntry( QWidget* parent, + int id, + const QString& name, + const QString& location, + const QImage& thumb ) + : favorite_tray_entry( parent ), + id_( id ) +{ + if ( !thumb.isNull() && thumb.size() != QSize() ) + image->setPixmap( QPixmap( thumb ) ); + location_label->setText( location ); + name_label->setText( name ); + connect( bottom_button, SIGNAL( clicked() ), this, SIGNAL( remove() ) ); +} Added: cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.h (rev 0) +++ cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.h 2008-03-06 15:14:45 UTC (rev 71) @@ -0,0 +1,45 @@ +/* -*- mode: C++; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */ + +// This file is part of Cineplay +// +// Cineplay is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Cineplay is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2008 Audiotube Ltd. +// For more information, see http://www.audiotube.com + +#pragma once + +// generated +#include "windows/favorite_tray_entry.h" + +class QString; +class QImage; + +class FavoriteTrayEntry : public favorite_tray_entry +{ + Q_OBJECT + +public: + FavoriteTrayEntry( QWidget* parent, + int id, + const QString& name, + const QString& location, + const QImage& thumb ); + +signals: + void remove(); + +private: + int id_; +}; Modified: cinesuite/cineplay-cinecode/trunk/src/Utils.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Utils.cpp 2008-03-06 12:46:11 UTC (rev 70) +++ cinesuite/cineplay-cinecode/trunk/src/Utils.cpp 2008-03-06 15:14:45 UTC (rev 71) @@ -360,14 +360,14 @@ im.save( &buf, "PNG" ); QString result; - result.reserve( bytes.size()*2 ); - const static char static_map[] = { '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; + static const char* static_map[] = { "0", "1", "2", "3", "4", "5", "6", "7", + "8", "9", "a", "b", "c", "d", "e", "f" }; + for ( unsigned int i=0; i<bytes.size(); ++i ) { - result[i] = static_map[ bytes[i]/16 ]; - result[i+1] = static_map[ bytes[i]%16 ]; + result.append( static_map[ static_cast< unsigned char >( bytes[i] )/16 ] ); + result.append( static_map[ static_cast< unsigned char >( bytes[i] )%16 ] ); } return result; @@ -375,9 +375,6 @@ QImage StringToQImage( const QString& s ) { - QByteArray bytes; - bytes.resize( s.length()/2 ); - static std::map< char, int > static_map; if ( static_map.empty() ) { @@ -399,9 +396,10 @@ static_map[ 'f' ] = 15; } - for ( unsigned int i=0; i<s.length(); ++i ) + QByteArray bytes( s.length()/2 ); + for ( unsigned int i=0; i<bytes.size(); ++i ) { - bytes[i] = static_map[ s[i] ]*16 + static_map[ s[i+1] ]; + bytes[i] = static_map[ s[2*i] ]*16 + static_map[ s[2*i+1] ]; } QImage im; Modified: cinesuite/cineplay-cinecode/trunk/src/common.pri =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/common.pri 2008-03-06 12:46:11 UTC (rev 70) +++ cinesuite/cineplay-cinecode/trunk/src/common.pri 2008-03-06 15:14:45 UTC (rev 71) @@ -44,7 +44,8 @@ Version.h \ Utils.h \ Command.h \ - Tray.h + Tray.h \ + FavoriteTrayEntry.h SOURCES += \ AddFavouriteDlg.cpp \ @@ -63,4 +64,5 @@ Theme.cpp \ Utils.cpp \ Command.cpp \ - Tray.cpp + Tray.cpp \ + FavoriteTrayEntry.cpp Modified: cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui 2008-03-06 12:46:11 UTC (rev 70) +++ cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui 2008-03-06 15:14:45 UTC (rev 71) @@ -8,14 +8,14 @@ <rect> <x>0</x> <y>0</y> - <width>236</width> - <height>55</height> + <width>198</width> + <height>52</height> </rect> </property> <property name="sizePolicy"> <sizepolicy> <hsizetype>7</hsizetype> - <vsizetype>4</vsizetype> + <vsizetype>1</vsizetype> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> @@ -35,6 +35,9 @@ <cstring>unnamed</cstring> </property> <property name="margin"> + <number>2</number> + </property> + <property name="spacing"> <number>0</number> </property> <widget class="QLayoutWidget" row="0" column="1" rowspan="3" colspan="1"> @@ -85,23 +88,6 @@ <pixmap>image0</pixmap> </property> </widget> - <spacer> - <property name="name"> - <cstring>spacer12</cstring> - </property> - <property name="orientation"> - <enum>Vertical</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>5</width> - <height>5</height> - </size> - </property> - </spacer> </vbox> </widget> <widget class="QLabel" row="1" column="2"> @@ -120,7 +106,7 @@ <string><i>location</i></string> </property> <property name="alignment"> - <set>AlignTop|AlignLeft</set> + <set>WordBreak|AlignTop|AlignLeft</set> </property> </widget> <widget class="QLabel" row="0" column="2"> @@ -266,8 +252,6 @@ </widget> </grid> </widget> -<customwidgets> -</customwidgets> <images> <image name="image0"> <data format="XPM.GZ" length="6945">789cad58c972db3810bdfb2b54e95b6a0ae14eb0a6e6603b76e2c48eb738913d35072ea237c9abbc2535ff3e085e0b43401465cbd1d3e5a9817e8d46a349e8dddb5e7f67abf7f6ddd2ed381f9f96bdf224bfe9bdadee46a3a7bffff9ebe7d29b48f6d4d70ffd5ef0e68fa537bbe35ed9234f7f7e71ba642ebde217177dc34bcd87cc33afd2e357c07dcf4fb4fd9879e0ebf9b4c13c0de0ff94b90cb43ee586877afe05f32290dace7a8117404f30f7835a8ff79907a1f62f0e0df735ffc03c0ce1ff87e191e6c43c0a63ed7f9d791aeaf5d0197319e69a17ccb310f9e1f50455a4fdd332f33ac2fa1e0d87bd060ffd08f91a314f62e4e78eb98cb0be6fcccb18e33f33afe24c73deafb08e919f7bf0c88b11ef95e18837611ec4f01f330f13e4ef807994e8f8c5bee188ff13f398c76f1b8efcad314f309fb8bea23441beef0d47fc5786eb7805d74324c1699379c5f69d094fb1bfabcceb14fe1f0c473c5c8fb197623d6786a7da3e60eea758df13f324457c1f99a712eb9d8ccfa4d6a31be6b5c4febc074f3c39d0fc84799021de90792475fe89fd27b1d4e78bb8fe1399215ec93ccf10cfd870bddf82eb312932ec279fb7d4cf110fc7978639f6ff9c7994438ff397c639cec791e15a8fae994be693f919cf2f99e739e2d99cf002f13f1a8efd59311cfbc3f59c16888ff8bca625fbcb26bcd0f923ce6f5ae5c8ef44bf2a101f9fef7450e03c3d188efc078643ff96795d60fd7b86a3fef87caa7688fde6fd947ea1eb477c311cf9a898071c0ff7171916c8fff284978867cd70e42b651e15587fc43c2eb0bfb7135eeaf885c73c617fb5e188ef3bf394fd7f652e4becc7aee1a8972de679897ae3f32e8b12f1af1b8ef8f8bcc8b2447cdcbfe4a0423cd78623bf93fcd415f2097ddfaf03e41bfa7e54f2f9473d065eed633cce7fa0fa1ff60ffd274842897c63bd6110a3bf13f6338c0af41bc27e85aa5ee11ff510f9153f6fd0ff22f538403f457f8c8d1df98b531fe78ff6996739ece8d7529d173c3fb03f99ea2fa8473c4fb3d4cba08fe7559ea639e245bd17618efe4fe8d785ea87e84fe81f652cd19f08cfbf4ab54f6dcff5f3d1ffd5bfa01f81abf38cf3a3ebcb0f922ad3f9cb757dfaeaf123118f044f23f4935cf7633f49c34c9fb7ddf13c0812b9284429aa45304f43791f887a31dfcfd150fe8bd779efd610c7e2e477f89fad214e5f9b9f791ae2ecf7f96fd7507bdc3da756bb340be7cfd198a970aeaa97c4f019753e72f36c6bccc8d2405cccf76dede64c0dd7c6f1bfc83f7b9aa1a1aa75ba96ce5eeebf5363fa3c8c1654a0760df7f757280cddea321a6ed768cd928ae452d557175aba1b34a65671de125dbee8d9670df75438b5f4badec21ab68781a3305adcff44632a5317ce1a5ea5c01a57e2ba811b671f6e2deb02c0bbbeb86be0ded278b06c0b01efe7e2a9811f96c6b265ebc68a5815efc59afb3bde192d347aabf8e0d8baf0d16477c3b6e03db5096b159f6d5b0736adc82c1bde8d1bf862696c5bb62eec58f32c1bdec71bd8b3c6ee5bb62eec5bf3f69a36dc019ab0c61ed8b60e7cb3e65936dc3b2cf41b630f1ddb6c1c3666f56d1beeaac26bc0b7220a2cdb2c04d61cdfb21de1be2ea206626b7c6cd966a16b0eee4489481b90d6f8bec82c6b1bb2667ed51c6959710f10647ff2e60c2a68dea7b0c6e78e55a0b7534955034e6fa7dab2baa89dd103cb5aee8e59e3984e2c9c3af3cee8dc19019c93f34ca65367c4b1d118d2c8c2d43b155dd2155d5b63aed52f9753e32e1c4fc38986b2ddd0ad85b13b5b8f1ad21ddd2bdc51eb5b298d1d2ffa59643486f4e0e0b1cd4b17e871cac7b0a9a1463cd10f07cb2f52589e9aff044b43638556e9bd83b5672bac4dcd5da51557438d5ba70f53f8481b73fd6fa851d333d72776fb6e409fe8730b3667eb28ff9bad731acf3af78e435bf4a515dbb443bbffd7aaaae55df5cbf68cd15b4d9fd37735daa3fd4e7c55e81eb1677b6cbb73d2017d7b050e5c7fed7767fa4e7d3a5c007dfa3eed6dd67f0074441ef92f8447476dbebafecba080428a9e899082597ee6fd274331259492ec40aa46c45d3e9ef7df9252cad42589f2e687d4853debf6ce1afffeb9f41f1be12d45</data> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-03-06 17:46:17
|
Revision: 72 http://editopia.svn.sourceforge.net/editopia/?rev=72&view=rev Author: timdewhirst Date: 2008-03-06 09:45:46 -0800 (Thu, 06 Mar 2008) Log Message: ----------- cinesuite - hook up of favorites - tweaks to layout of tray entry Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp cinesuite/cineplay-cinecode/trunk/src/CinePlay.h cinesuite/cineplay-cinecode/trunk/src/Common.cpp cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.cpp cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.h cinesuite/cineplay-cinecode/trunk/src/Utils.cpp cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-03-06 15:14:45 UTC (rev 71) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-03-06 17:45:46 UTC (rev 72) @@ -32,6 +32,8 @@ #include <qnetwork.h> #include <qscrollview.h> #include <qlayout.h> +#include <qvbox.h> +#include <qpalette.h> // std #include <algorithm> @@ -49,6 +51,7 @@ // trays... m_favoritesTray = new Tray( this, Tray::LOCATION_RIGHT ); + m_favoritesTray->hide(); QWidget* toggleRightTrayButton = CineUtils::FindWidget( "toggle_right_tray", this ); connect( toggleRightTrayButton, SIGNAL( toggled( bool ) ), m_favoritesTray, SLOT( setShown( bool ) ) ); @@ -62,15 +65,15 @@ sv->setHScrollBarMode( QScrollView::AlwaysOff ); sv->setVScrollBarMode( QScrollView::AlwaysOn ); - m_trayPlaceholder = sv->viewport(); - QVBoxLayout* trayLayout = new QVBoxLayout( m_trayPlaceholder ); - trayLayout->setSpacing( 0 ); - trayLayout->setMargin( 0 ); - trayLayout->setAutoAdd( true ); + // setup a placeholder + m_trayPlaceholder = new QVBox( sv->viewport() ); + sv->addChild( m_trayPlaceholder ); + m_trayPlaceholder->layout()->setAutoAdd( true ); // connect to favourites changing connect( m_impl->m_favList, SIGNAL( changed() ), this, SLOT( onFavouritesChanged() ) ); + onFavouritesChanged(); } bool CinePlay::LoadCmdLineInput( const QString& fname ) @@ -80,7 +83,7 @@ void destroy( QWidget* w ) { - delete w; + w->deleteLater(); } void CinePlay::onFavouritesChanged() @@ -89,6 +92,10 @@ std::for_each( m_trayEntries.begin(), m_trayEntries.end(), cineplay::destroy ); m_trayEntries.clear(); + QPalette darker = palette(); + darker.setColor( QColorGroup::Background, + darker.color( QPalette::Normal, QColorGroup::Background ).dark( 120 ) ); + // create all... CFavourites* favorites = m_impl->m_favList; for ( unsigned int i=0; i<favorites->getEntryCount(); ++i ) @@ -101,13 +108,31 @@ QFont f( font() ); f.setPointSizeFloat( 0.6* f.pointSizeFloat() ); e->setFont( f ); + + if ( i%2 ) + e->setPalette( darker ); + + connect( e, SIGNAL( remove( int ) ), this, SLOT( onRemoveFavorite( int ) ) ); + connect( e, SIGNAL( selected( int ) ), this, SLOT( onSelectFavorite( int ) ) ); + e->show(); m_trayEntries.push_back( e ); } - m_trayPlaceholder->layout()->addItem( new QSpacerItem( 5, 5, QSizePolicy::Minimum, QSizePolicy::Expanding ) ); } +void CinePlay::onRemoveFavorite( int id ) +{ + m_impl->m_favList->removeEntry( id ); + m_impl->m_favList->BuildMenu( m_impl->m_favMenu, m_impl, SLOT( onFavSelected(int) ) ); + m_impl->updateFavMenu(); +} + +void CinePlay::onSelectFavorite( int id ) +{ + m_impl->onFavSelected( id ); +} + void CinePlay::keyPressEvent( QKeyEvent* e ) { QWidget::keyPressEvent( e ); Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-03-06 15:14:45 UTC (rev 71) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-03-06 17:45:46 UTC (rev 72) @@ -58,6 +58,8 @@ private slots: void onFavouritesChanged(); + void onRemoveFavorite( int ); + void onSelectFavorite( int ); private: Common* m_impl; Modified: cinesuite/cineplay-cinecode/trunk/src/Common.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-06 15:14:45 UTC (rev 71) +++ cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-06 17:45:46 UTC (rev 72) @@ -795,7 +795,7 @@ QImage thumb; { QMutexLocker lock( &m_frameCacheMutex ); - thumb = CineUtils::ImageToQImage( il::rescale( m_frameCache->get_image(), 48, 48 ) ); + thumb = CineUtils::ImageToQImage( il::rescale( m_frameCache->get_image(), 64, 64 ) ); } AddFavouriteDlg dlg( m_parent, m_favList, m_lastFile, m_lastFrame, thumb ); Modified: cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.cpp 2008-03-06 15:14:45 UTC (rev 71) +++ cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.cpp 2008-03-06 17:45:46 UTC (rev 72) @@ -41,5 +41,15 @@ image->setPixmap( QPixmap( thumb ) ); location_label->setText( location ); name_label->setText( name ); - connect( bottom_button, SIGNAL( clicked() ), this, SIGNAL( remove() ) ); + connect( bottom_button, SIGNAL( clicked() ), this, SLOT( onRemoveClicked() ) ); } + +void FavoriteTrayEntry::mouseDoubleClickEvent( QMouseEvent* ) +{ + emit selected( id_ ); +} + +void FavoriteTrayEntry::onRemoveClicked() +{ + emit remove( id_ ); +} Modified: cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.h 2008-03-06 15:14:45 UTC (rev 71) +++ cinesuite/cineplay-cinecode/trunk/src/FavoriteTrayEntry.h 2008-03-06 17:45:46 UTC (rev 72) @@ -38,8 +38,15 @@ const QImage& thumb ); signals: - void remove(); + void remove( int id ); + void selected( int id ); +protected: + void mouseDoubleClickEvent( QMouseEvent* e ); + +private slots: + void onRemoveClicked(); + private: int id_; }; Modified: cinesuite/cineplay-cinecode/trunk/src/Utils.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Utils.cpp 2008-03-06 15:14:45 UTC (rev 71) +++ cinesuite/cineplay-cinecode/trunk/src/Utils.cpp 2008-03-06 17:45:46 UTC (rev 72) @@ -403,7 +403,7 @@ } QImage im; - im.load( bytes ); + im.loadFromData( bytes, "PNG" ); return im; } Modified: cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui 2008-03-06 15:14:45 UTC (rev 71) +++ cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui 2008-03-06 17:45:46 UTC (rev 72) @@ -8,8 +8,8 @@ <rect> <x>0</x> <y>0</y> - <width>198</width> - <height>52</height> + <width>204</width> + <height>58</height> </rect> </property> <property name="sizePolicy"> @@ -30,7 +30,7 @@ <property name="caption"> <string>Form1</string> </property> - <grid> + <hbox> <property name="name"> <cstring>unnamed</cstring> </property> @@ -40,217 +40,187 @@ <property name="spacing"> <number>0</number> </property> - <widget class="QLayoutWidget" row="0" column="1" rowspan="3" colspan="1"> + <widget class="QLabel"> <property name="name"> - <cstring>layout17</cstring> + <cstring>image</cstring> </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>0</number> - </property> - <property name="spacing"> - <number>0</number> - </property> - <widget class="QLabel"> - <property name="name"> - <cstring>image</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>0</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>48</width> - <height>48</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>48</width> - <height>48</height> - </size> - </property> - <property name="lineWidth"> - <number>0</number> - </property> - <property name="text"> - <string></string> - </property> - <property name="pixmap"> - <pixmap>image0</pixmap> - </property> - </widget> - </vbox> - </widget> - <widget class="QLabel" row="1" column="2"> - <property name="name"> - <cstring>location_label</cstring> - </property> <property name="sizePolicy"> <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>7</vsizetype> + <hsizetype>0</hsizetype> + <vsizetype>0</vsizetype> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="text"> - <string><i>location</i></string> + <property name="minimumSize"> + <size> + <width>48</width> + <height>48</height> + </size> </property> - <property name="alignment"> - <set>WordBreak|AlignTop|AlignLeft</set> - </property> - </widget> - <widget class="QLabel" row="0" column="2"> - <property name="name"> - <cstring>name_label</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>7</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> <property name="maximumSize"> <size> - <width>32767</width> - <height>32767</height> + <width>48</width> + <height>48</height> </size> </property> + <property name="lineWidth"> + <number>0</number> + </property> <property name="text"> - <string><qt><b>name</b></qt></string> + <string></string> </property> - <property name="alignment"> - <set>AlignTop|AlignLeft</set> + <property name="pixmap"> + <pixmap>image0</pixmap> </property> </widget> - <widget class="QFrame" row="0" column="3" rowspan="2" colspan="1"> + <widget class="QLayoutWidget"> <property name="name"> - <cstring>frame12</cstring> + <cstring>layout5</cstring> </property> - <property name="frameShape"> - <enum>StyledPanel</enum> - </property> - <property name="frameShadow"> - <enum>Plain</enum> - </property> - <property name="lineWidth"> - <number>0</number> - </property> <vbox> <property name="name"> <cstring>unnamed</cstring> </property> <property name="margin"> - <number>0</number> + <number>3</number> </property> <property name="spacing"> <number>0</number> </property> <widget class="QLayoutWidget"> <property name="name"> - <cstring>layout19</cstring> + <cstring>layout4</cstring> </property> - <grid> + <hbox> <property name="name"> <cstring>unnamed</cstring> </property> <property name="margin"> <number>0</number> </property> - <widget class="QLabel" row="1" column="1"> + <property name="spacing"> + <number>0</number> + </property> + <widget class="QLabel"> <property name="name"> - <cstring>bottom_label</cstring> + <cstring>name_label</cstring> </property> - <property name="text"> - <string>remove</string> - </property> - </widget> - <spacer row="2" column="0"> - <property name="name"> - <cstring>spacer13</cstring> - </property> - <property name="orientation"> - <enum>Vertical</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>9</width> - <height>41</height> - </size> - </property> - </spacer> - <widget class="jahwidgets::qt3::Pushbutton" row="1" column="0"> - <property name="name"> - <cstring>bottom_button</cstring> - </property> <property name="sizePolicy"> <sizepolicy> - <hsizetype>0</hsizetype> - <vsizetype>0</vsizetype> + <hsizetype>1</hsizetype> + <vsizetype>7</vsizetype> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="minimumSize"> - <size> - <width>16</width> - <height>16</height> - </size> - </property> <property name="maximumSize"> <size> - <width>16</width> - <height>16</height> + <width>32767</width> + <height>32767</height> </size> </property> - <property name="paletteBackgroundColor"> - <color> - <red>240</red> - <green>240</green> - <blue>240</blue> - </color> - </property> <property name="text"> - <string></string> + <string><qt><b>name</b></qt></string> </property> - <property name="pixmap"> - <pixmap>image1</pixmap> + <property name="alignment"> + <set>AlignVCenter|AlignLeft</set> </property> - <property name="flat"> - <bool>true</bool> + </widget> + <widget class="QLayoutWidget"> + <property name="name"> + <cstring>layout3</cstring> </property> - <property name="activeOnIcon"> - <pixmap>image2</pixmap> - </property> - <property name="normalOnIcon"> - <pixmap>image1</pixmap> - </property> - <property name="activeOffIcon"> - <pixmap>image2</pixmap> - </property> - <property name="normalOffIcon"> - <pixmap>image1</pixmap> - </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <property name="margin"> + <number>0</number> + </property> + <property name="spacing"> + <number>0</number> + </property> + <widget class="jahwidgets::qt3::Pushbutton"> + <property name="name"> + <cstring>bottom_button</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>16</width> + <height>16</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>16</width> + <height>16</height> + </size> + </property> + <property name="text"> + <string></string> + </property> + <property name="pixmap"> + <pixmap>image1</pixmap> + </property> + <property name="flat"> + <bool>true</bool> + </property> + <property name="activeOnIcon"> + <pixmap>image2</pixmap> + </property> + <property name="normalOnIcon"> + <pixmap>image1</pixmap> + </property> + <property name="activeOffIcon"> + <pixmap>image2</pixmap> + </property> + <property name="normalOffIcon"> + <pixmap>image1</pixmap> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>bottom_label</cstring> + </property> + <property name="text"> + <string>remove</string> + </property> + </widget> + </hbox> </widget> - </grid> + </hbox> </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>location_label</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>7</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string><i>location</i></string> + </property> + <property name="alignment"> + <set>WordBreak|AlignVCenter|AlignLeft</set> + </property> + </widget> </vbox> </widget> - </grid> + </hbox> </widget> <images> <image name="image0"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-03-07 14:01:23
|
Revision: 76 http://editopia.svn.sourceforge.net/editopia/?rev=76&view=rev Author: timdewhirst Date: 2008-03-07 06:01:16 -0800 (Fri, 07 Mar 2008) Log Message: ----------- cinesuite - use correct .ui files according to app. dur. Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp cinesuite/cineplay-cinecode/trunk/src/CineCode.h cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp cinesuite/cineplay-cinecode/trunk/src/CinePlay.h cinesuite/cineplay-cinecode/trunk/src/Common.cpp Modified: cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp 2008-03-07 14:00:09 UTC (rev 75) +++ cinesuite/cineplay-cinecode/trunk/src/CineCode.cpp 2008-03-07 14:01:16 UTC (rev 76) @@ -35,7 +35,7 @@ CineCode::CineCode( QWidget *parent, const char *name ) - : QWidget( parent, name, Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WStyle_SysMenu ), + : main( parent, name, Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WStyle_SysMenu ), m_impl( new Common( this ) ) { //general main window setup Modified: cinesuite/cineplay-cinecode/trunk/src/CineCode.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CineCode.h 2008-03-07 14:00:09 UTC (rev 75) +++ cinesuite/cineplay-cinecode/trunk/src/CineCode.h 2008-03-07 14:01:16 UTC (rev 76) @@ -21,6 +21,8 @@ #pragma once +#include "windows/main_cinecode.h" + // qt #include <qwidget.h> @@ -29,7 +31,7 @@ class Common; -class CineCode : public QWidget +class CineCode : public main { Q_OBJECT Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-03-07 14:00:09 UTC (rev 75) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.cpp 2008-03-07 14:01:16 UTC (rev 76) @@ -43,15 +43,15 @@ CinePlay::CinePlay( QWidget *parent, const char *name ) - : QWidget( parent, name, Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WType_TopLevel ), + : main( parent, name, Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WType_TopLevel ), m_impl( new Common( this ) ) { //general main window setup setAcceptDrops( true ); - // trays... + // favorites tray... m_favoritesTray = new Tray( this, Tray::LOCATION_RIGHT ); - m_favoritesTray->hide(); + m_favoritesTray->setMaximumWidth( 250 ); QWidget* toggleRightTrayButton = CineUtils::FindWidget( "toggle_right_tray", this ); connect( toggleRightTrayButton, SIGNAL( toggled( bool ) ), m_favoritesTray, SLOT( setShown( bool ) ) ); Modified: cinesuite/cineplay-cinecode/trunk/src/CinePlay.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-03-07 14:00:09 UTC (rev 75) +++ cinesuite/cineplay-cinecode/trunk/src/CinePlay.h 2008-03-07 14:01:16 UTC (rev 76) @@ -21,8 +21,7 @@ #pragma once -// qt -#include <qwidget.h> +#include "windows/main.h" // std #include <vector> @@ -34,7 +33,7 @@ class Common; -class CinePlay : public QWidget +class CinePlay : public main { Q_OBJECT Modified: cinesuite/cineplay-cinecode/trunk/src/Common.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-07 14:00:09 UTC (rev 75) +++ cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-07 14:01:16 UTC (rev 76) @@ -34,7 +34,6 @@ #include "RemoveFavouriteDlg.h" #include "OpenGLStore.h" #include "Utils.h" -#include "windows/main.h" #include "windows/toolbar.h" #include "windows/about.h" #include "windows/addfav.h" @@ -111,17 +110,16 @@ CineUtils::InitOpenLibraries( qApp->applicationDirPath() ); //Look for all our widgets and stuff - QWidget *mainWidget = new main( parent, "main" ); - CineUtils::AddWidgetToParentLayout( parent, mainWidget ); + CineUtils::AddWidgetToParentLayout( parent, parent ); parent->setCaption( SETTINGS_APPTITLE ); - QWidget *ht = CineUtils::FindWidget( WIDGET_TOOLBARPLACE, mainWidget ); + QWidget *ht = CineUtils::FindWidget( WIDGET_TOOLBARPLACE, parent ); QWidget *h2 = new toolbar( ht ); CineUtils::AddWidgetToParentLayout( ht, h2 ); - CineUtils::ConnectButtonTo(mainWidget, WIDGET_MINIMISE, m_parent, SLOT(showMinimized()) ); - CineUtils::ConnectButtonTo(mainWidget, WIDGET_MAXIMISE, this, SLOT(toggleMaximized()) ); - CineUtils::ConnectButtonTo(mainWidget, WIDGET_CLOSE, m_parent, SLOT(close()) ); + CineUtils::ConnectButtonTo(parent, WIDGET_MINIMISE, m_parent, SLOT(showMinimized()) ); + CineUtils::ConnectButtonTo(parent, WIDGET_MAXIMISE, this, SLOT(toggleMaximized()) ); + CineUtils::ConnectButtonTo(parent, WIDGET_CLOSE, m_parent, SLOT(close()) ); m_playButton = CineUtils::ConnectButtonTo(h2, WIDGET_PLAY, this, SLOT(onPlay())); CineUtils::ConnectButtonTo(h2, WIDGET_STEPBACK, this, SLOT(onStepBack())); @@ -130,7 +128,7 @@ CineUtils::ConnectButtonTo(h2, WIDGET_GOSTART, this, SLOT(onStart())); CineUtils::ConnectButtonTo(h2, WIDGET_GOEND, this, SLOT(onEnd())); - m_hTitlebar = CineUtils::FindWidget(WIDGET_TITLEBAR, mainWidget); + m_hTitlebar = CineUtils::FindWidget(WIDGET_TITLEBAR, parent); //setup the jahwidgets::qt3::TimelineSlider m_timeSlider = CineUtils::FindWidget( WIDGET_TIMESLIDER, h2 ); @@ -155,7 +153,7 @@ CineUtils::ConnectSignalTo(h2, WIDGET_MUTE, SIGNAL(toggled( bool )), this, SLOT(muteToggled(bool))); // setup the menu - QWidget* menubarPlaceholder = CineUtils::FindWidget( WIDGET_MENUBAR, mainWidget ); + QWidget* menubarPlaceholder = CineUtils::FindWidget( WIDGET_MENUBAR, parent ); #ifdef Q_OS_MACX menubarPlaceholder->hide(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-03-07 15:10:27
|
Revision: 77 http://editopia.svn.sourceforge.net/editopia/?rev=77&view=rev Author: timdewhirst Date: 2008-03-07 07:09:12 -0800 (Fri, 07 Mar 2008) Log Message: ----------- cinesuite - more tweaks to tray - ensure menu bar and buttons are hidden in fullscreen mode - remove some redundant code Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/Common.cpp cinesuite/cineplay-cinecode/trunk/src/Common.h cinesuite/cineplay-cinecode/trunk/src/SetupDefs.h cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui cinesuite/cineplay-cinecode/trunk/src/windows/main.ui cinesuite/cineplay-cinecode/trunk/src/windows/main_cinecode.ui cinesuite/cineplay-cinecode/trunk/src/windows/tray.ui Modified: cinesuite/cineplay-cinecode/trunk/src/Common.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-07 14:01:16 UTC (rev 76) +++ cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-07 15:09:12 UTC (rev 77) @@ -70,9 +70,6 @@ #include <openpluginlib/pl/utf8_utils.hpp> #include <openimagelib/il/utility.hpp> -#define RESIZE_DELAY 35 // minimal delay (in ms) in between two calls to the main window's resize() - - namespace cineplay { @@ -264,13 +261,6 @@ } -// #ifdef BUILD_CINECODE - -// //create the encode tray -// m_encodeTray = new TrayDlg(this); - -// #endif //BUILD_CINECODE - //if we only switch this on with fullscreen QApplication::setGlobalMouseTracking(true); @@ -445,10 +435,6 @@ m_parent->resize(sz); else m_preFullScreenRect = QRect( m_parent->pos(), sz ); - -// #ifdef BUILD_CINECODE -// UpdateTrayPositions(); -// #endif //BUILD_CINECODE } @@ -541,7 +527,7 @@ CineUtils::ShowWidget( m_parent, "titlebar_right", show ); CineUtils::ShowWidget( m_parent, "frame16", show ); CineUtils::ShowWidget( m_parent, "frame17", show ); - CineUtils::ShowWidget( m_parent, WIDGET_MENUBAR, show ); + CineUtils::ShowWidget( m_parent, WIDGET_MENUBARPLACE, show ); CineUtils::ShowWidget( m_parent, WIDGET_TOOLBARPLACE, show ); } @@ -1139,33 +1125,13 @@ QPoint nowPos = m_parent->pos(); QPoint clickDp = event->pos() - m_dragClickPos; m_parent->move(nowPos + clickDp); - -// #ifdef BUILD_CINECODE -// UpdateTrayPositions(); -// #endif //BUILD_CINECODE - } else if(m_resizingApp) { QPoint clickDp = event->pos() - m_dragClickPos; + m_parent->resize(m_dragAppSize + QSize(clickDp.x(), clickDp.y()) ); -#if !defined(Q_OS_WIN32) && !defined(Q_OS_MACX) // Linux - // Only do the actual resize if the timer started after last resize has ran out. - // This fixes a glitch in resizing (size jumping around while resizing) under Linux - if (!m_resizeTimer.isActive()) { - m_parent->resize(m_dragAppSize + QSize(clickDp.x(), clickDp.y()) ); - m_resizeTimer.start(RESIZE_DELAY, true); - } -#else // Everything else (Windows, OSX) - m_parent->resize(m_dragAppSize + QSize(clickDp.x(), clickDp.y()) ); -#endif //!Q_OS_WIN32 && !Q_OS_MACX - ClearSizeChecks(); - -// #ifdef BUILD_CINECODE -// UpdateTrayPositions(); -// #endif //BUILD_CINECODE - } else { Modified: cinesuite/cineplay-cinecode/trunk/src/Common.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.h 2008-03-07 14:01:16 UTC (rev 76) +++ cinesuite/cineplay-cinecode/trunk/src/Common.h 2008-03-07 15:09:12 UTC (rev 77) @@ -29,7 +29,6 @@ #include <qobject.h> #include <qstring.h> #include <qrect.h> -#include <qtimer.h> #include <qmutex.h> // std @@ -191,10 +190,6 @@ QRect m_preFullScreenRect; QRect m_preHideScreenRect; -#if !defined(Q_OS_WIN32) && !defined(Q_OS_MACX) // Linux - QTimer m_resizeTimer; -#endif - jw::widget_store* m_jwStore; QWidget* m_storeAsWidget; ml::store_type_ptr m_videoStore; Modified: cinesuite/cineplay-cinecode/trunk/src/SetupDefs.h =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/SetupDefs.h 2008-03-07 14:01:16 UTC (rev 76) +++ cinesuite/cineplay-cinecode/trunk/src/SetupDefs.h 2008-03-07 15:09:12 UTC (rev 77) @@ -72,6 +72,7 @@ #define WIDGET_TOOLBARPLACE "toolbar_placeholder" #define WIDGET_TITLEBAR "titlebar_center" #define WIDGET_MENUBAR "menubar" +#define WIDGET_MENUBARPLACE "menubar_placeholder" #define customEventID_PlayerPlaying 7701 Modified: cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui 2008-03-07 14:01:16 UTC (rev 76) +++ cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui 2008-03-07 15:09:12 UTC (rev 77) @@ -54,14 +54,14 @@ </property> <property name="minimumSize"> <size> - <width>48</width> - <height>48</height> + <width>64</width> + <height>64</height> </size> </property> <property name="maximumSize"> <size> - <width>48</width> - <height>48</height> + <width>64</width> + <height>64</height> </size> </property> <property name="lineWidth"> @@ -73,6 +73,12 @@ <property name="pixmap"> <pixmap>image0</pixmap> </property> + <property name="scaledContents"> + <bool>true</bool> + </property> + <property name="alignment"> + <set>AlignCenter</set> + </property> </widget> <widget class="QLayoutWidget"> <property name="name"> @@ -222,6 +228,8 @@ </widget> </hbox> </widget> +<customwidgets> +</customwidgets> <images> <image name="image0"> <data format="XPM.GZ" length="6945">789cad58c972db3810bdfb2b54e95b6a0ae14eb0a6e6603b76e2c48eb738913d35072ea237c9abbc2535ff3e085e0b43401465cbd1d3e5a9817e8d46a349e8dddb5e7f67abf7f6ddd2ed381f9f96bdf224bfe9bdadee46a3a7bffff9ebe7d29b48f6d4d70ffd5ef0e68fa537bbe35ed9234f7f7e71ba642ebde217177dc34bcd87cc33afd2e357c07dcf4fb4fd9879e0ebf9b4c13c0de0ff94b90cb43ee586877afe05f32290dace7a8117404f30f7835a8ff79907a1f62f0e0df735ffc03c0ce1ff87e191e6c43c0a63ed7f9d791aeaf5d0197319e69a17ccb310f9e1f50455a4fdd332f33ac2fa1e0d87bd060ffd08f91a314f62e4e78eb98cb0be6fcccb18e33f33afe24c73deafb08e919f7bf0c88b11ef95e18837611ec4f01f330f13e4ef807994e8f8c5bee188ff13f398c76f1b8efcad314f309fb8bea23441beef0d47fc5786eb7805d74324c1699379c5f69d094fb1bfabcceb14fe1f0c473c5c8fb197623d6786a7da3e60eea758df13f324457c1f99a712eb9d8ccfa4d6a31be6b5c4febc074f3c39d0fc84799021de90792475fe89fd27b1d4e78bb8fe1399215ec93ccf10cfd870bddf82eb312932ec279fb7d4cf110fc7978639f6ff9c7994438ff397c639cec791e15a8fae994be693f919cf2f99e739e2d99cf002f13f1a8efd59311cfbc3f59c16888ff8bca625fbcb26bcd0f923ce6f5ae5c8ef44bf2a101f9fef7450e03c3d188efc078643ff96795d60fd7b86a3fef87caa7688fde6fd947ea1eb477c311cf9a898071c0ff7171916c8fff284978867cd70e42b651e15587fc43c2eb0bfb7135eeaf885c73c617fb5e188ef3bf394fd7f652e4becc7aee1a8972de679897ae3f32e8b12f1af1b8ef8f8bcc8b2447cdcbfe4a0423cd78623bf93fcd415f2097ddfaf03e41bfa7e54f2f9473d065eed633cce7fa0fa1ff60ffd274842897c63bd6110a3bf13f6338c0af41bc27e85aa5ee11ff510f9153f6fd0ff22f538403f457f8c8d1df98b531fe78ff6996739ece8d7529d173c3fb03f99ea2fa8473c4fb3d4cba08fe7559ea639e245bd17618efe4fe8d785ea87e84fe81f652cd19f08cfbf4ab54f6dcff5f3d1ffd5bfa01f81abf38cf3a3ebcb0f922ad3f9cb757dfaeaf123118f044f23f4935cf7633f49c34c9fb7ddf13c0812b9284429aa45304f43791f887a31dfcfd150fe8bd779efd610c7e2e477f89fad214e5f9b9f791ae2ecf7f96fd7507bdc3da756bb340be7cfd198a970aeaa97c4f019753e72f36c6bccc8d2405cccf76dede64c0dd7c6f1bfc83f7b9aa1a1aa75ba96ce5eeebf5363fa3c8c1654a0760df7f757280cddea321a6ed768cd928ae452d557175aba1b34a65671de125dbee8d9670df75438b5f4badec21ab68781a3305adcff44632a5317ce1a5ea5c01a57e2ba811b671f6e2deb02c0bbbeb86be0ded278b06c0b01efe7e2a9811f96c6b265ebc68a5815efc59afb3bde192d347aabf8e0d8baf0d16477c3b6e03db5096b159f6d5b0736adc82c1bde8d1bf862696c5bb62eec58f32c1bdec71bd8b3c6ee5bb62eec5bf3f69a36dc019ab0c61ed8b60e7cb3e65936dc3b2cf41b630f1ddb6c1c3666f56d1beeaac26bc0b7220a2cdb2c04d61cdfb21de1be2ea206626b7c6cd966a16b0eee4489481b90d6f8bec82c6b1bb2667ed51c6959710f10647ff2e60c2a68dea7b0c6e78e55a0b7534955034e6fa7dab2baa89dd103cb5aee8e59e3984e2c9c3af3cee8dc19019c93f34ca65367c4b1d118d2c8c2d43b155dd2155d5b63aed52f9753e32e1c4fc38986b2ddd0ad85b13b5b8f1ad21ddd2bdc51eb5b298d1d2ffa59643486f4e0e0b1cd4b17e871cac7b0a9a1463cd10f07cb2f52589e9aff044b43638556e9bd83b5672bac4dcd5da51557438d5ba70f53f8481b73fd6fa851d333d72776fb6e409fe8730b3667eb28ff9bad731acf3af78e435bf4a515dbb443bbffd7aaaae55df5cbf68cd15b4d9fd37735daa3fd4e7c55e81eb1677b6cbb73d2017d7b050e5c7fed7767fa4e7d3a5c007dfa3eed6dd67f0074441ef92f8447476dbebafecba080428a9e899082597ee6fd274331259492ec40aa46c45d3e9ef7df9252cad42589f2e687d4853debf6ce1afffeb9f41f1be12d45</data> Modified: cinesuite/cineplay-cinecode/trunk/src/windows/main.ui =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/windows/main.ui 2008-03-07 14:01:16 UTC (rev 76) +++ cinesuite/cineplay-cinecode/trunk/src/windows/main.ui 2008-03-07 15:09:12 UTC (rev 77) @@ -498,7 +498,7 @@ </property> <widget class="QFrame"> <property name="name"> - <cstring>outer_menubar</cstring> + <cstring>menubar_placeholder</cstring> </property> <property name="sizePolicy"> <sizepolicy> Modified: cinesuite/cineplay-cinecode/trunk/src/windows/main_cinecode.ui =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/windows/main_cinecode.ui 2008-03-07 14:01:16 UTC (rev 76) +++ cinesuite/cineplay-cinecode/trunk/src/windows/main_cinecode.ui 2008-03-07 15:09:12 UTC (rev 77) @@ -498,7 +498,7 @@ </property> <widget class="QFrame"> <property name="name"> - <cstring>outer_menubar</cstring> + <cstring>menubar_placeholder</cstring> </property> <property name="sizePolicy"> <sizepolicy> Modified: cinesuite/cineplay-cinecode/trunk/src/windows/tray.ui =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/windows/tray.ui 2008-03-07 14:01:16 UTC (rev 76) +++ cinesuite/cineplay-cinecode/trunk/src/windows/tray.ui 2008-03-07 15:09:12 UTC (rev 77) @@ -125,18 +125,6 @@ <property name="name"> <cstring>placeholder</cstring> </property> - <property name="minimumSize"> - <size> - <width>200</width> - <height>0</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>250</width> - <height>32767</height> - </size> - </property> </widget> <widget class="QFrame"> <property name="name"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tim...@us...> - 2008-03-07 15:20:42
|
Revision: 78 http://editopia.svn.sourceforge.net/editopia/?rev=78&view=rev Author: timdewhirst Date: 2008-03-07 07:20:36 -0800 (Fri, 07 Mar 2008) Log Message: ----------- cinesuite - maintain aspect ratio of the thumbnails Modified Paths: -------------- cinesuite/cineplay-cinecode/trunk/src/Common.cpp cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui Modified: cinesuite/cineplay-cinecode/trunk/src/Common.cpp =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-07 15:09:12 UTC (rev 77) +++ cinesuite/cineplay-cinecode/trunk/src/Common.cpp 2008-03-07 15:20:36 UTC (rev 78) @@ -779,7 +779,9 @@ QImage thumb; { QMutexLocker lock( &m_frameCacheMutex ); - thumb = CineUtils::ImageToQImage( il::rescale( m_frameCache->get_image(), 64, 64 ) ); + static const int THUMBSIZE = 64; + il::image_type_ptr im = m_frameCache->get_image(); + thumb = CineUtils::ImageToQImage( il::rescale( im, THUMBSIZE, THUMBSIZE*im->height()/im->width() ) ); } AddFavouriteDlg dlg( m_parent, m_favList, m_lastFile, m_lastFrame, thumb ); Modified: cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui =================================================================== --- cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui 2008-03-07 15:09:12 UTC (rev 77) +++ cinesuite/cineplay-cinecode/trunk/src/windows/favorite_tray_entry.ui 2008-03-07 15:20:36 UTC (rev 78) @@ -9,7 +9,7 @@ <x>0</x> <y>0</y> <width>204</width> - <height>58</height> + <height>68</height> </rect> </property> <property name="sizePolicy"> @@ -74,7 +74,7 @@ <pixmap>image0</pixmap> </property> <property name="scaledContents"> - <bool>true</bool> + <bool>false</bool> </property> <property name="alignment"> <set>AlignCenter</set> @@ -228,8 +228,6 @@ </widget> </hbox> </widget> -<customwidgets> -</customwidgets> <images> <image name="image0"> <data format="XPM.GZ" length="6945">789cad58c972db3810bdfb2b54e95b6a0ae14eb0a6e6603b76e2c48eb738913d35072ea237c9abbc2535ff3e085e0b43401465cbd1d3e5a9817e8d46a349e8dddb5e7f67abf7f6ddd2ed381f9f96bdf224bfe9bdadee46a3a7bffff9ebe7d29b48f6d4d70ffd5ef0e68fa537bbe35ed9234f7f7e71ba642ebde217177dc34bcd87cc33afd2e357c07dcf4fb4fd9879e0ebf9b4c13c0de0ff94b90cb43ee586877afe05f32290dace7a8117404f30f7835a8ff79907a1f62f0e0df735ffc03c0ce1ff87e191e6c43c0a63ed7f9d791aeaf5d0197319e69a17ccb310f9e1f50455a4fdd332f33ac2fa1e0d87bd060ffd08f91a314f62e4e78eb98cb0be6fcccb18e33f33afe24c73deafb08e919f7bf0c88b11ef95e18837611ec4f01f330f13e4ef807994e8f8c5bee188ff13f398c76f1b8efcad314f309fb8bea23441beef0d47fc5786eb7805d74324c1699379c5f69d094fb1bfabcceb14fe1f0c473c5c8fb197623d6786a7da3e60eea758df13f324457c1f99a712eb9d8ccfa4d6a31be6b5c4febc074f3c39d0fc84799021de90792475fe89fd27b1d4e78bb8fe1399215ec93ccf10cfd870bddf82eb312932ec279fb7d4cf110fc7978639f6ff9c7994438ff397c639cec791e15a8fae994be693f919cf2f99e739e2d99cf002f13f1a8efd59311cfbc3f59c16888ff8bca625fbcb26bcd0f923ce6f5ae5c8ef44bf2a101f9fef7450e03c3d188efc078643ff96795d60fd7b86a3fef87caa7688fde6fd947ea1eb477c311cf9a898071c0ff7171916c8fff284978867cd70e42b651e15587fc43c2eb0bfb7135eeaf885c73c617fb5e188ef3bf394fd7f652e4becc7aee1a8972de679897ae3f32e8b12f1af1b8ef8f8bcc8b2447cdcbfe4a0423cd78623bf93fcd415f2097ddfaf03e41bfa7e54f2f9473d065eed633cce7fa0fa1ff60ffd274842897c63bd6110a3bf13f6338c0af41bc27e85aa5ee11ff510f9153f6fd0ff22f538403f457f8c8d1df98b531fe78ff6996739ece8d7529d173c3fb03f99ea2fa8473c4fb3d4cba08fe7559ea639e245bd17618efe4fe8d785ea87e84fe81f652cd19f08cfbf4ab54f6dcff5f3d1ffd5bfa01f81abf38cf3a3ebcb0f922ad3f9cb757dfaeaf123118f044f23f4935cf7633f49c34c9fb7ddf13c0812b9284429aa45304f43791f887a31dfcfd150fe8bd779efd610c7e2e477f89fad214e5f9b9f791ae2ecf7f96fd7507bdc3da756bb340be7cfd198a970aeaa97c4f019753e72f36c6bccc8d2405cccf76dede64c0dd7c6f1bfc83f7b9aa1a1aa75ba96ce5eeebf5363fa3c8c1654a0760df7f757280cddea321a6ed768cd928ae452d557175aba1b34a65671de125dbee8d9670df75438b5f4badec21ab68781a3305adcff44632a5317ce1a5ea5c01a57e2ba811b671f6e2deb02c0bbbeb86be0ded278b06c0b01efe7e2a9811f96c6b265ebc68a5815efc59afb3bde192d347aabf8e0d8baf0d16477c3b6e03db5096b159f6d5b0736adc82c1bde8d1bf862696c5bb62eec58f32c1bdec71bd8b3c6ee5bb62eec5bf3f69a36dc019ab0c61ed8b60e7cb3e65936dc3b2cf41b630f1ddb6c1c3666f56d1beeaac26bc0b7220a2cdb2c04d61cdfb21de1be2ea206626b7c6cd966a16b0eee4489481b90d6f8bec82c6b1bb2667ed51c6959710f10647ff2e60c2a68dea7b0c6e78e55a0b7534955034e6fa7dab2baa89dd103cb5aee8e59e3984e2c9c3af3cee8dc19019c93f34ca65367c4b1d118d2c8c2d43b155dd2155d5b63aed52f9753e32e1c4fc38986b2ddd0ad85b13b5b8f1ad21ddd2bdc51eb5b298d1d2ffa59643486f4e0e0b1cd4b17e871cac7b0a9a1463cd10f07cb2f52589e9aff044b43638556e9bd83b5672bac4dcd5da51557438d5ba70f53f8481b73fd6fa851d333d72776fb6e409fe8730b3667eb28ff9bad731acf3af78e435bf4a515dbb443bbffd7aaaae55df5cbf68cd15b4d9fd37735daa3fd4e7c55e81eb1677b6cbb73d2017d7b050e5c7fed7767fa4e7d3a5c007dfa3eed6dd67f0074441ef92f8447476dbebafecba080428a9e899082597ee6fd274331259492ec40aa46c45d3e9ef7df9252cad42589f2e687d4853debf6ce1afffeb9f41f1be12d45</data> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |