summaryrefslogtreecommitdiff
path: root/noncore/multimedia
Unidiff
Diffstat (limited to 'noncore/multimedia') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/camera/gui/mainwindow.cpp4
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.cpp2
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.cpp6
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.cpp12
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp88
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidgetgui.cpp2
-rw-r--r--noncore/multimedia/opieplayer2/threadutil.cpp2
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.cpp4
-rw-r--r--noncore/multimedia/opieplayer2/xinecontrol.cpp14
-rw-r--r--noncore/multimedia/opierec/qtrec.cpp30
-rw-r--r--noncore/multimedia/powerchord/powerchordbase.cpp14
-rw-r--r--noncore/multimedia/showimg/ImageFileSelector.cpp14
-rw-r--r--noncore/multimedia/showimg/showimg.cpp4
13 files changed, 98 insertions, 98 deletions
diff --git a/noncore/multimedia/camera/gui/mainwindow.cpp b/noncore/multimedia/camera/gui/mainwindow.cpp
index 2f42049..e4e1b6c 100644
--- a/noncore/multimedia/camera/gui/mainwindow.cpp
+++ b/noncore/multimedia/camera/gui/mainwindow.cpp
@@ -1,294 +1,294 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14**********************************************************************/ 14**********************************************************************/
15 15
16#include "mainwindow.h" 16#include "mainwindow.h"
17#include "previewwidget.h" 17#include "previewwidget.h"
18#include "zcameraio.h" 18#include "zcameraio.h"
19#include "imageio.h" 19#include "imageio.h"
20#include "avi.h" 20#include "avi.h"
21 21
22/* OPIE */ 22/* OPIE */
23#include <opie2/ofiledialog.h> 23#include <opie2/ofiledialog.h>
24#include <opie2/odevice.h> 24#include <opie2/odevice.h>
25#include <opie2/oapplication.h> 25#include <opie2/oapplication.h>
26#include <opie2/oconfig.h> 26#include <opie2/oconfig.h>
27#include <opie2/odebug.h> 27#include <opie2/odebug.h>
28#include <qpe/global.h> 28#include <qpe/global.h>
29#include <qpe/resource.h> 29#include <qpe/resource.h>
30#include <qpe/qcopenvelope_qws.h> 30#include <qpe/qcopenvelope_qws.h>
31using namespace Opie; 31using namespace Opie;
32 32
33/* QT */ 33/* QT */
34#include <qapplication.h> 34#include <qapplication.h>
35#include <qaction.h> 35#include <qaction.h>
36#include <qvbox.h> 36#include <qvbox.h>
37#include <qcombobox.h> 37#include <qcombobox.h>
38#include <qcursor.h> 38#include <qcursor.h>
39#include <qdatastream.h> 39#include <qdatastream.h>
40#include <qdir.h> 40#include <qdir.h>
41#include <qfile.h> 41#include <qfile.h>
42#include <qimage.h> 42#include <qimage.h>
43#include <qlabel.h> 43#include <qlabel.h>
44#include <qlineedit.h> 44#include <qlineedit.h>
45#include <qpopupmenu.h> 45#include <qpopupmenu.h>
46#include <qprogressbar.h> 46#include <qprogressbar.h>
47#include <qpushbutton.h> 47#include <qpushbutton.h>
48#include <qmessagebox.h> 48#include <qmessagebox.h>
49#include <qlayout.h> 49#include <qlayout.h>
50#include <qdirectpainter_qws.h> 50#include <qdirectpainter_qws.h>
51 51
52/* STD */ 52/* STD */
53#include <assert.h> 53#include <assert.h>
54#include <sys/types.h> 54#include <sys/types.h>
55#include <sys/stat.h> 55#include <sys/stat.h>
56#include <fcntl.h> 56#include <fcntl.h>
57#include <string.h> 57#include <string.h>
58#include <errno.h> 58#include <errno.h>
59#include <unistd.h> 59#include <unistd.h>
60 60
61#define CAPTUREFILE "/tmp/capture.dat" 61#define CAPTUREFILE "/tmp/capture.dat"
62#define OUTPUTFILE "/tmp/output.avi" 62#define OUTPUTFILE "/tmp/output.avi"
63 63
64#define OUTPUT_TO_CUSTOM 250 64#define OUTPUT_TO_CUSTOM 250
65#define OUTPUT_TO_DOCFOLDER 251 65#define OUTPUT_TO_DOCFOLDER 251
66 66
67CameraMainWindow::CameraMainWindow( QWidget * parent, const char * name, WFlags f ) 67CameraMainWindow::CameraMainWindow( QWidget * parent, const char * name, WFlags f )
68 :QMainWindow( parent, name, f ), 68 :QMainWindow( parent, name, f ),
69 _rotation( 270 ), // FIXME: get this from current settings (ODevice?) 69 _rotation( 270 ), // FIXME: get this from current settings (ODevice?)
70 _capturing( false ), 70 _capturing( false ),
71 _pics( 1 ), _videos( 1 ) 71 _pics( 1 ), _videos( 1 )
72{ 72{
73 #ifdef QT_NO_DEBUG 73 #ifdef QT_NO_DEBUG
74 if ( !ZCameraIO::instance()->isOpen() ) 74 if ( !ZCameraIO::instance()->isOpen() )
75 { 75 {
76 QVBox* v = new QVBox( this ); 76 QVBox* v = new QVBox( this );
77 v->setMargin( 10 ); 77 v->setMargin( 10 );
78 QLabel* l1 = new QLabel( v ); 78 QLabel* l1 = new QLabel( v );
79 l1->setPixmap( Resource::loadPixmap( "camera/error" ) ); 79 l1->setPixmap( Resource::loadPixmap( "camera/error" ) );
80 QLabel* l2 = new QLabel( v ); 80 QLabel* l2 = new QLabel( v );
81 l2->setText( "<b>Sorry. could not detect your camera :-(</b><p>" 81 l2->setText( "<b>Sorry. could not detect your camera :-(</b><p>"
82 "* Is the sharpzdc_cs module loaded ?<br>" 82 "* Is the sharpzdc_cs module loaded ?<br>"
83 "* Is /dev/sharpzdc read/writable ?<p>" ); 83 "* Is /dev/sharpzdc read/writable ?<p>" );
84 connect( new QPushButton( "Exit", v ), SIGNAL( clicked() ), this, SLOT( close() ) ); 84 connect( new QPushButton( "Exit", v ), SIGNAL( clicked() ), this, SLOT( close() ) );
85 setCentralWidget( v ); 85 setCentralWidget( v );
86 return; 86 return;
87 } 87 }
88 #endif 88 #endif
89 89
90 init(); 90 init();
91 91
92 _rotation = 270; //TODO: grab these from the actual settings 92 _rotation = 270; //TODO: grab these from the actual settings
93 93
94 preview = new PreviewWidget( this, "camera preview widget" ); 94 preview = new PreviewWidget( this, "camera preview widget" );
95 //setCentralWidget( preview ); <--- don't do this! 95 //setCentralWidget( preview ); <--- don't do this!
96 preview->resize( QSize( 240, 288 ) ); 96 preview->resize( QSize( 240, 288 ) );
97 preview->show(); 97 preview->show();
98 98
99 // construct a System Channel to receive setRotation messages 99 // construct a System Channel to receive setRotation messages
100 _sysChannel = new QCopChannel( "QPE/System", this ); 100 _sysChannel = new QCopChannel( "QPE/System", this );
101 connect( _sysChannel, SIGNAL( received( const QCString&, const QByteArray& ) ), 101 connect( _sysChannel, SIGNAL( received(const QCString&,const QByteArray&) ),
102 this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) ); 102 this, SLOT( systemMessage(const QCString&,const QByteArray&) ) );
103 103
104 connect( preview, SIGNAL( contextMenuRequested() ), this, SLOT( showContextMenu() ) ); 104 connect( preview, SIGNAL( contextMenuRequested() ), this, SLOT( showContextMenu() ) );
105 105
106 connect( ZCameraIO::instance(), SIGNAL( shutterClicked() ), this, SLOT( shutterClicked() ) ); 106 connect( ZCameraIO::instance(), SIGNAL( shutterClicked() ), this, SLOT( shutterClicked() ) );
107 107
108 updateCaption(); 108 updateCaption();
109 109
110}; 110};
111 111
112 112
113CameraMainWindow::~CameraMainWindow() 113CameraMainWindow::~CameraMainWindow()
114{ 114{
115 // write back configuration 115 // write back configuration
116 OConfigGroupSaver cgs( oApp->config(), "General" ); 116 OConfigGroupSaver cgs( oApp->config(), "General" );
117 cgs.config()->writeEntry( "flip", flip ); 117 cgs.config()->writeEntry( "flip", flip );
118 cgs.config()->writeEntry( "quality", quality ); 118 cgs.config()->writeEntry( "quality", quality );
119 cgs.config()->writeEntry( "zoom", zoom ); 119 cgs.config()->writeEntry( "zoom", zoom );
120 cgs.config()->writeEntry( "captureX", captureX ); 120 cgs.config()->writeEntry( "captureX", captureX );
121 cgs.config()->writeEntry( "captureY", captureY ); 121 cgs.config()->writeEntry( "captureY", captureY );
122 cgs.config()->writeEntry( "captureFormat", captureFormat ); 122 cgs.config()->writeEntry( "captureFormat", captureFormat );
123 cgs.config()->writeEntry( "outputTo", outputTo ); 123 cgs.config()->writeEntry( "outputTo", outputTo );
124 cgs.config()->writeEntry( "prefix", prefix ); 124 cgs.config()->writeEntry( "prefix", prefix );
125 cgs.config()->writeEntry( "appendSettings", appendSettings ); 125 cgs.config()->writeEntry( "appendSettings", appendSettings );
126} 126}
127 127
128 128
129void CameraMainWindow::init() 129void CameraMainWindow::init()
130{ 130{
131 // get values from configuration 131 // get values from configuration
132 OConfigGroupSaver cgs( oApp->config(), "General" ); 132 OConfigGroupSaver cgs( oApp->config(), "General" );
133 flip = cgs.config()->readEntry( "flip", "A" ); 133 flip = cgs.config()->readEntry( "flip", "A" );
134 quality = cgs.config()->readNumEntry( "quality", 50 ); 134 quality = cgs.config()->readNumEntry( "quality", 50 );
135 zoom = cgs.config()->readNumEntry( "zoom", 1 ); 135 zoom = cgs.config()->readNumEntry( "zoom", 1 );
136 captureX = cgs.config()->readNumEntry( "captureX", 480 ); 136 captureX = cgs.config()->readNumEntry( "captureX", 480 );
137 captureY = cgs.config()->readNumEntry( "captureY", 640 ); 137 captureY = cgs.config()->readNumEntry( "captureY", 640 );
138 captureFormat = cgs.config()->readEntry( "captureFormat", "JPEG" ); 138 captureFormat = cgs.config()->readEntry( "captureFormat", "JPEG" );
139 outputTo = cgs.config()->readEntry( "outputTo", "Documents Folder" ); 139 outputTo = cgs.config()->readEntry( "outputTo", "Documents Folder" );
140 prefix = cgs.config()->readEntry( "prefix", "Untitled" ); 140 prefix = cgs.config()->readEntry( "prefix", "Untitled" );
141 appendSettings = cgs.config()->readBoolEntry( "appendSettings", true ); 141 appendSettings = cgs.config()->readBoolEntry( "appendSettings", true );
142 142
143 // create action groups 143 // create action groups
144 QAction* a; 144 QAction* a;
145 resog = new QActionGroup( 0, "reso", true ); 145 resog = new QActionGroup( 0, "reso", true );
146 resog->setToggleAction( true ); 146 resog->setToggleAction( true );
147 new QAction( " 64 x 48", 0, 0, resog, "64x48", true ); 147 new QAction( " 64 x 48", 0, 0, resog, "64x48", true );
148 new QAction( "128 x 96", 0, 0, resog, "128x96", true ); 148 new QAction( "128 x 96", 0, 0, resog, "128x96", true );
149 new QAction( "192 x 144", 0, 0, resog, "192x144", true ); 149 new QAction( "192 x 144", 0, 0, resog, "192x144", true );
150 new QAction( "256 x 192", 0, 0, resog, "256x192", true ); 150 new QAction( "256 x 192", 0, 0, resog, "256x192", true );
151 new QAction( "320 x 240", 0, 0, resog, "320x240", true ); 151 new QAction( "320 x 240", 0, 0, resog, "320x240", true );
152 new QAction( "384 x 288", 0, 0, resog, "384x288", true ); 152 new QAction( "384 x 288", 0, 0, resog, "384x288", true );
153 new QAction( "448 x 336", 0, 0, resog, "448x336", true ); 153 new QAction( "448 x 336", 0, 0, resog, "448x336", true );
154 new QAction( "512 x 384", 0, 0, resog, "512x384", true ); 154 new QAction( "512 x 384", 0, 0, resog, "512x384", true );
155 new QAction( "576 x 432", 0, 0, resog, "576x432", true ); 155 new QAction( "576 x 432", 0, 0, resog, "576x432", true );
156 new QAction( "640 x 480", 0, 0, resog, "640x480", true ); 156 new QAction( "640 x 480", 0, 0, resog, "640x480", true );
157 a = (QAction*) resog->child( QString().sprintf( "%dx%d", captureX>captureY ? captureX:captureY, captureX>captureY ? captureY:captureX ) ); 157 a = (QAction*) resog->child( QString().sprintf( "%dx%d", captureX>captureY ? captureX:captureY, captureX>captureY ? captureY:captureX ) );
158 if ( a ) a->setOn( true ); 158 if ( a ) a->setOn( true );
159 else owarn << "can't set resolution" << oendl; 159 else owarn << "can't set resolution" << oendl;
160 160
161 qualityg = new QActionGroup( 0, "quality", true ); 161 qualityg = new QActionGroup( 0, "quality", true );
162 qualityg->setToggleAction( true ); 162 qualityg->setToggleAction( true );
163 new QAction( " 0 (&minimal)", 0, 0, qualityg, "0", true ); 163 new QAction( " 0 (&minimal)", 0, 0, qualityg, "0", true );
164 new QAction( " 25 (&low)", 0, 0, qualityg, "25", true ); 164 new QAction( " 25 (&low)", 0, 0, qualityg, "25", true );
165 new QAction( " 50 (&good)", 0, 0, qualityg, "50", true ); 165 new QAction( " 50 (&good)", 0, 0, qualityg, "50", true );
166 new QAction( " 75 (&better)", 0, 0, qualityg, "75", true ); 166 new QAction( " 75 (&better)", 0, 0, qualityg, "75", true );
167 new QAction( "100 (bes&t)", 0, 0, qualityg, "100", true ); 167 new QAction( "100 (bes&t)", 0, 0, qualityg, "100", true );
168 a = (QAction*) qualityg->child( QString().sprintf( "%d", quality ) ); 168 a = (QAction*) qualityg->child( QString().sprintf( "%d", quality ) );
169 if ( a ) a->setOn( true ); 169 if ( a ) a->setOn( true );
170 else owarn << "can't set quality" << oendl; 170 else owarn << "can't set quality" << oendl;
171 171
172 zoomg = new QActionGroup( 0, "zoom", true ); 172 zoomg = new QActionGroup( 0, "zoom", true );
173 zoomg->setToggleAction( true ); 173 zoomg->setToggleAction( true );
174 new QAction( "x 1", 0, 0, zoomg, "1", true ); 174 new QAction( "x 1", 0, 0, zoomg, "1", true );
175 new QAction( "x 2", 0, 0, zoomg, "2", true ); 175 new QAction( "x 2", 0, 0, zoomg, "2", true );
176 a = (QAction*) zoomg->child( QString().sprintf( "%d", zoom ) ); 176 a = (QAction*) zoomg->child( QString().sprintf( "%d", zoom ) );
177 if ( a ) a->setOn( true ); 177 if ( a ) a->setOn( true );
178 else owarn << "can't set zoom" << oendl; 178 else owarn << "can't set zoom" << oendl;
179 179
180 flipg = new QActionGroup( 0, "flip", true ); 180 flipg = new QActionGroup( 0, "flip", true );
181 flipg->setToggleAction( true ); 181 flipg->setToggleAction( true );
182 new QAction( "Auto (recommended)", 0, 0, flipg, "A", true ); 182 new QAction( "Auto (recommended)", 0, 0, flipg, "A", true );
183 new QAction( "0 (always off)", 0, 0, flipg, "0", true ); 183 new QAction( "0 (always off)", 0, 0, flipg, "0", true );
184 new QAction( "X (always horizontal)", 0, 0, flipg, "X", true ); 184 new QAction( "X (always horizontal)", 0, 0, flipg, "X", true );
185 new QAction( "Y (always vertical)", 0, 0, flipg, "Y", true ); 185 new QAction( "Y (always vertical)", 0, 0, flipg, "Y", true );
186 new QAction( "* (always both)", 0, 0, flipg, "*", true ); 186 new QAction( "* (always both)", 0, 0, flipg, "*", true );
187 a = (QAction*) flipg->child( QString().sprintf( "%s", (const char*) flip ) ); 187 a = (QAction*) flipg->child( QString().sprintf( "%s", (const char*) flip ) );
188 if ( a ) a->setOn( true ); 188 if ( a ) a->setOn( true );
189 else owarn << "can't set flip" << oendl; 189 else owarn << "can't set flip" << oendl;
190 190
191 outputTog = new QActionGroup( 0, "output", true ); 191 outputTog = new QActionGroup( 0, "output", true );
192 outputTog->setToggleAction( true ); 192 outputTog->setToggleAction( true );
193 new QAction( "/tmp/", 0, 0, outputTog, "/tmp/", true ); 193 new QAction( "/tmp/", 0, 0, outputTog, "/tmp/", true );
194 new QAction( "/mnt/card/", 0, 0, outputTog, "/mnt/card/", true ); 194 new QAction( "/mnt/card/", 0, 0, outputTog, "/mnt/card/", true );
195 new QAction( "/mnt/cf/", 0, 0, outputTog, "/mnt/cf/", true ); 195 new QAction( "/mnt/cf/", 0, 0, outputTog, "/mnt/cf/", true );
196 docfolder = new QAction( "Documents Folder", 0, 0, outputTog, "Documents Folder", true ); 196 docfolder = new QAction( "Documents Folder", 0, 0, outputTog, "Documents Folder", true );
197 custom = new QAction( "&Custom...", 0, 0, outputTog, "custom", true ); //TODO: How to save custom!? 197 custom = new QAction( "&Custom...", 0, 0, outputTog, "custom", true ); //TODO: How to save custom!?
198 a = (QAction*) outputTog->child( QString().sprintf( "%s", (const char*) outputTo ) ); 198 a = (QAction*) outputTog->child( QString().sprintf( "%s", (const char*) outputTo ) );
199 if ( a ) a->setOn( true ); 199 if ( a ) a->setOn( true );
200 else owarn << "can't set outputTo" << oendl; 200 else owarn << "can't set outputTo" << oendl;
201 201
202 outputg = new QActionGroup( 0, "output", true ); 202 outputg = new QActionGroup( 0, "output", true );
203 outputg->setToggleAction( true ); 203 outputg->setToggleAction( true );
204 new QAction( "JPEG", 0, 0, outputg, "JPEG", true ); 204 new QAction( "JPEG", 0, 0, outputg, "JPEG", true );
205 new QAction( "PNG", 0, 0, outputg, "PNG", true ); 205 new QAction( "PNG", 0, 0, outputg, "PNG", true );
206 new QAction( "BMP", 0, 0, outputg, "BMP", true ); 206 new QAction( "BMP", 0, 0, outputg, "BMP", true );
207 new QAction( "AVI", 0, 0, outputg, "AVI", true ); 207 new QAction( "AVI", 0, 0, outputg, "AVI", true );
208 a = (QAction*) outputg->child( QString().sprintf( "%s", (const char*) captureFormat ) ); 208 a = (QAction*) outputg->child( QString().sprintf( "%s", (const char*) captureFormat ) );
209 if ( a ) a->setOn( true ); 209 if ( a ) a->setOn( true );
210 else owarn << "can't set output format" << oendl; 210 else owarn << "can't set output format" << oendl;
211 211
212 connect( resog, SIGNAL( selected(QAction*) ), this, SLOT( resoMenuItemClicked(QAction*) ) ); 212 connect( resog, SIGNAL( selected(QAction*) ), this, SLOT( resoMenuItemClicked(QAction*) ) );
213 connect( qualityg, SIGNAL( selected(QAction*) ), this, SLOT( qualityMenuItemClicked(QAction*) ) ); 213 connect( qualityg, SIGNAL( selected(QAction*) ), this, SLOT( qualityMenuItemClicked(QAction*) ) );
214 connect( zoomg, SIGNAL( selected(QAction*) ), this, SLOT( zoomMenuItemClicked(QAction*) ) ); 214 connect( zoomg, SIGNAL( selected(QAction*) ), this, SLOT( zoomMenuItemClicked(QAction*) ) );
215 connect( flipg, SIGNAL( selected(QAction*) ), this, SLOT( flipMenuItemClicked(QAction*) ) ); 215 connect( flipg, SIGNAL( selected(QAction*) ), this, SLOT( flipMenuItemClicked(QAction*) ) );
216 connect( outputTog, SIGNAL( selected(QAction*) ), this, SLOT( outputToMenuItemClicked(QAction*) ) ); 216 connect( outputTog, SIGNAL( selected(QAction*) ), this, SLOT( outputToMenuItemClicked(QAction*) ) );
217 connect( outputg, SIGNAL( selected(QAction*) ), this, SLOT( outputMenuItemClicked(QAction*) ) ); 217 connect( outputg, SIGNAL( selected(QAction*) ), this, SLOT( outputMenuItemClicked(QAction*) ) );
218} 218}
219 219
220 220
221void CameraMainWindow::systemMessage( const QCString& msg, const QByteArray& data ) 221void CameraMainWindow::systemMessage( const QCString& msg, const QByteArray& data )
222{ 222{
223 int _newrotation; 223 int _newrotation;
224 224
225 QDataStream stream( data, IO_ReadOnly ); 225 QDataStream stream( data, IO_ReadOnly );
226 odebug << "received system message: " << msg << oendl; 226 odebug << "received system message: " << msg << oendl;
227 if ( msg == "setCurrentRotation(int)" ) 227 if ( msg == "setCurrentRotation(int)" )
228 { 228 {
229 stream >> _newrotation; 229 stream >> _newrotation;
230 odebug << "received setCurrentRotation(" << _newrotation << ")" << oendl; 230 odebug << "received setCurrentRotation(" << _newrotation << ")" << oendl;
231 231
232 switch ( _newrotation ) 232 switch ( _newrotation )
233 { 233 {
234 case 270: preview->resize( QSize( 240, 288 ) ); break; 234 case 270: preview->resize( QSize( 240, 288 ) ); break;
235 case 180: preview->resize( QSize( 320, 208 ) ); break; 235 case 180: preview->resize( QSize( 320, 208 ) ); break;
236 default: QMessageBox::warning( this, "opie-camera", 236 default: QMessageBox::warning( this, "opie-camera",
237 "This rotation is not supported.\n" 237 "This rotation is not supported.\n"
238 "Supported are 180° and 270°" ); 238 "Supported are 180° and 270°" );
239 } 239 }
240 240
241 if ( _newrotation != _rotation ) 241 if ( _newrotation != _rotation )
242 { 242 {
243 int tmp = captureX; 243 int tmp = captureX;
244 captureX = captureY; 244 captureX = captureY;
245 captureY = tmp; 245 captureY = tmp;
246 _rotation = _newrotation; 246 _rotation = _newrotation;
247 } 247 }
248 248
249 updateCaption(); 249 updateCaption();
250 250
251 } 251 }
252} 252}
253 253
254 254
255void CameraMainWindow::changeZoom( int zoom ) 255void CameraMainWindow::changeZoom( int zoom )
256{ 256{
257 int z; 257 int z;
258 switch ( zoom ) 258 switch ( zoom )
259 { 259 {
260 case 0: z = 128; break; 260 case 0: z = 128; break;
261 case 1: z = 256; break; 261 case 1: z = 256; break;
262 case 2: z = 512; break; 262 case 2: z = 512; break;
263 default: assert( 0 ); break; 263 default: assert( 0 ); break;
264 } 264 }
265 265
266 ZCameraIO::instance()->setCaptureFrame( 240, 160, z ); 266 ZCameraIO::instance()->setCaptureFrame( 240, 160, z );
267} 267}
268 268
269 269
270void CameraMainWindow::showContextMenu() 270void CameraMainWindow::showContextMenu()
271{ 271{
272 QPopupMenu reso; 272 QPopupMenu reso;
273 reso.setCheckable( true ); 273 reso.setCheckable( true );
274 resog->addTo( &reso ); 274 resog->addTo( &reso );
275 275
276 QPopupMenu quality; 276 QPopupMenu quality;
277 quality.setCheckable( true ); 277 quality.setCheckable( true );
278 qualityg->addTo( &quality ); 278 qualityg->addTo( &quality );
279 279
280 QPopupMenu flip; 280 QPopupMenu flip;
281 flip.setCheckable( true ); 281 flip.setCheckable( true );
282 flipg->addTo( &flip ); 282 flipg->addTo( &flip );
283 283
284 QPopupMenu zoom; 284 QPopupMenu zoom;
285 zoom.setCheckable( true ); 285 zoom.setCheckable( true );
286 zoomg->addTo( &zoom ); 286 zoomg->addTo( &zoom );
287 287
288 QPopupMenu prefix; 288 QPopupMenu prefix;
289 prefix.insertItem( "&Choose...", this, SLOT( prefixItemChoosen() ) ); 289 prefix.insertItem( "&Choose...", this, SLOT( prefixItemChoosen() ) );
290 int id = prefix.insertItem( "&Append Settings", this, SLOT( appendSettingsChoosen() ) ); 290 int id = prefix.insertItem( "&Append Settings", this, SLOT( appendSettingsChoosen() ) );
291 prefix.setItemChecked( id, appendSettings ); 291 prefix.setItemChecked( id, appendSettings );
292 292
293 QPopupMenu outputTo; 293 QPopupMenu outputTo;
294 outputTo.setCheckable( true ); 294 outputTo.setCheckable( true );
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp
index 870b4f3..f3eafab 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.cpp
+++ b/noncore/multimedia/opieplayer2/audiowidget.cpp
@@ -1,274 +1,274 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 3
4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com> 5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU General Public 12:`=1 )Y*s>-.--   : the terms of the GNU General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; Library General Public License for more 22..}^=.=       =       ; Library General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = Library General Public License along with 26  -_. . .   )=.  = Library General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34 34
35#include "audiowidget.h" 35#include "audiowidget.h"
36#include "mediaplayerstate.h" 36#include "mediaplayerstate.h"
37#include "playlistwidget.h" 37#include "playlistwidget.h"
38 38
39#include <qpe/qpeapplication.h> 39#include <qpe/qpeapplication.h>
40 40
41namespace 41namespace
42{ 42{
43 43
44const int xo = -2; // movable x offset 44const int xo = -2; // movable x offset
45const int yo = 22; // movable y offset 45const int yo = 22; // movable y offset
46 46
47const MediaWidget::SkinButtonInfo skinInfo[] = 47const MediaWidget::SkinButtonInfo skinInfo[] =
48{ 48{
49 { MediaWidget::Play, "play", MediaWidget::ToggleButton }, 49 { MediaWidget::Play, "play", MediaWidget::ToggleButton },
50 { MediaWidget::Stop, "stop", MediaWidget::NormalButton }, 50 { MediaWidget::Stop, "stop", MediaWidget::NormalButton },
51 { MediaWidget::Next, "next", MediaWidget::NormalButton }, 51 { MediaWidget::Next, "next", MediaWidget::NormalButton },
52 { MediaWidget::Previous, "prev", MediaWidget::NormalButton }, 52 { MediaWidget::Previous, "prev", MediaWidget::NormalButton },
53 { MediaWidget::VolumeUp, "up", MediaWidget::NormalButton }, 53 { MediaWidget::VolumeUp, "up", MediaWidget::NormalButton },
54 { MediaWidget::VolumeDown, "down", MediaWidget::NormalButton }, 54 { MediaWidget::VolumeDown, "down", MediaWidget::NormalButton },
55 { MediaWidget::Loop, "loop", MediaWidget::ToggleButton }, 55 { MediaWidget::Loop, "loop", MediaWidget::ToggleButton },
56 { MediaWidget::PlayList, "playlist", MediaWidget::NormalButton }, 56 { MediaWidget::PlayList, "playlist", MediaWidget::NormalButton },
57 { MediaWidget::Forward, "forward", MediaWidget::NormalButton }, 57 { MediaWidget::Forward, "forward", MediaWidget::NormalButton },
58 { MediaWidget::Back, "back", MediaWidget::NormalButton } 58 { MediaWidget::Back, "back", MediaWidget::NormalButton }
59}; 59};
60 60
61const uint buttonCount = sizeof( skinInfo ) / sizeof( skinInfo[ 0 ] ); 61const uint buttonCount = sizeof( skinInfo ) / sizeof( skinInfo[ 0 ] );
62 62
63void changeTextColor( QWidget * w) { 63void changeTextColor( QWidget * w) {
64 QPalette p = w->palette(); 64 QPalette p = w->palette();
65 p.setBrush( QColorGroup::Background, QColor( 167, 212, 167 ) ); 65 p.setBrush( QColorGroup::Background, QColor( 167, 212, 167 ) );
66 p.setBrush( QColorGroup::Base, QColor( 167, 212, 167 ) ); 66 p.setBrush( QColorGroup::Base, QColor( 167, 212, 167 ) );
67 w->setPalette( p ); 67 w->setPalette( p );
68} 68}
69 69
70} 70}
71 71
72AudioWidget::AudioWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name) : 72AudioWidget::AudioWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name) :
73 73
74 MediaWidget( playList, mediaPlayerState, parent, name ), songInfo( this ), slider( Qt::Horizontal, this ), time( this ), 74 MediaWidget( playList, mediaPlayerState, parent, name ), songInfo( this ), slider( Qt::Horizontal, this ), time( this ),
75 audioSliderBeingMoved( false ) 75 audioSliderBeingMoved( false )
76{ 76{
77 setCaption( tr("OpiePlayer") ); 77 setCaption( tr("OpiePlayer") );
78 78
79 loadSkin(); 79 loadSkin();
80 80
81 connect( &mediaPlayerState, SIGNAL( loopingToggled(bool) ), this, SLOT( setLooping(bool) ) ); 81 connect( &mediaPlayerState, SIGNAL( loopingToggled(bool) ), this, SLOT( setLooping(bool) ) );
82 connect( &mediaPlayerState, SIGNAL( isSeekableToggled( bool ) ), this, SLOT( setSeekable( bool ) ) ); 82 connect( &mediaPlayerState, SIGNAL( isSeekableToggled(bool) ), this, SLOT( setSeekable(bool) ) );
83 83
84 connect( this, SIGNAL( forwardClicked() ), this, SLOT( skipFor() ) ); 84 connect( this, SIGNAL( forwardClicked() ), this, SLOT( skipFor() ) );
85 connect( this, SIGNAL( backClicked() ), this, SLOT( skipBack() ) ); 85 connect( this, SIGNAL( backClicked() ), this, SLOT( skipBack() ) );
86 connect( this, SIGNAL( forwardReleased() ), this, SLOT( stopSkip() ) ); 86 connect( this, SIGNAL( forwardReleased() ), this, SLOT( stopSkip() ) );
87 connect( this, SIGNAL( backReleased() ), this, SLOT( stopSkip() ) ); 87 connect( this, SIGNAL( backReleased() ), this, SLOT( stopSkip() ) );
88 88
89 // Intialise state 89 // Intialise state
90 setLength( mediaPlayerState.length() ); 90 setLength( mediaPlayerState.length() );
91 setPosition( mediaPlayerState.position() ); 91 setPosition( mediaPlayerState.position() );
92 setLooping( mediaPlayerState.isFullscreen() ); 92 setLooping( mediaPlayerState.isFullscreen() );
93 // setPaused( mediaPlayerState->paused() ); 93 // setPaused( mediaPlayerState->paused() );
94 setPlaying( mediaPlayerState.isPlaying() ); 94 setPlaying( mediaPlayerState.isPlaying() );
95} 95}
96 96
97AudioWidget::~AudioWidget() { 97AudioWidget::~AudioWidget() {
98 98
99// mediaPlayerState->setPlaying(false); 99// mediaPlayerState->setPlaying(false);
100} 100}
101 101
102MediaWidget::GUIInfo AudioWidget::guiInfo() 102MediaWidget::GUIInfo AudioWidget::guiInfo()
103{ 103{
104 return GUIInfo( QString::null /* infix */, ::skinInfo, ::buttonCount ); 104 return GUIInfo( QString::null /* infix */, ::skinInfo, ::buttonCount );
105} 105}
106 106
107void AudioWidget::resizeEvent( QResizeEvent *e ) { 107void AudioWidget::resizeEvent( QResizeEvent *e ) {
108 int h = height(); 108 int h = height();
109 int w = width(); 109 int w = width();
110 110
111 songInfo.setGeometry( QRect( 2, 2, w - 4, 20 ) ); 111 songInfo.setGeometry( QRect( 2, 2, w - 4, 20 ) );
112 slider.setFixedWidth( w - 110 ); 112 slider.setFixedWidth( w - 110 );
113 slider.setGeometry( QRect( 15, h - 22, w - 90, 20 ) ); 113 slider.setGeometry( QRect( 15, h - 22, w - 90, 20 ) );
114 slider.setBackgroundOrigin( QWidget::ParentOrigin ); 114 slider.setBackgroundOrigin( QWidget::ParentOrigin );
115 time.setGeometry( QRect( w - 85, h - 30, 70, 20 ) ); 115 time.setGeometry( QRect( w - 85, h - 30, 70, 20 ) );
116 116
117 upperLeftOfButtonMask.rx() = ( w - buttonUpImage.width() ) / 2; 117 upperLeftOfButtonMask.rx() = ( w - buttonUpImage.width() ) / 2;
118 upperLeftOfButtonMask.ry() = (( h - buttonUpImage.height() ) / 2) - 10; 118 upperLeftOfButtonMask.ry() = (( h - buttonUpImage.height() ) / 2) - 10;
119 119
120 MediaWidget::resizeEvent( e ); 120 MediaWidget::resizeEvent( e );
121} 121}
122 122
123void AudioWidget::sliderPressed() { 123void AudioWidget::sliderPressed() {
124 audioSliderBeingMoved = TRUE; 124 audioSliderBeingMoved = TRUE;
125} 125}
126 126
127 127
128void AudioWidget::sliderReleased() { 128void AudioWidget::sliderReleased() {
129 audioSliderBeingMoved = FALSE; 129 audioSliderBeingMoved = FALSE;
130 if ( slider.width() == 0 ) 130 if ( slider.width() == 0 )
131 return; 131 return;
132 long val = long((double)slider.value() * mediaPlayerState.length() / slider.width()); 132 long val = long((double)slider.value() * mediaPlayerState.length() / slider.width());
133 mediaPlayerState.setPosition( val ); 133 mediaPlayerState.setPosition( val );
134} 134}
135 135
136void AudioWidget::setPosition( long i ) { 136void AudioWidget::setPosition( long i ) {
137 // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<set position %d",i); 137 // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<set position %d",i);
138 updateSlider( i, mediaPlayerState.length() ); 138 updateSlider( i, mediaPlayerState.length() );
139} 139}
140 140
141 141
142void AudioWidget::setLength( long max ) { 142void AudioWidget::setLength( long max ) {
143 updateSlider( mediaPlayerState.position(), max ); 143 updateSlider( mediaPlayerState.position(), max );
144} 144}
145 145
146 146
147void AudioWidget::setDisplayType( MediaPlayerState::DisplayType mediaType ) { 147void AudioWidget::setDisplayType( MediaPlayerState::DisplayType mediaType ) {
148 if ( mediaType == MediaPlayerState::Audio ) { 148 if ( mediaType == MediaPlayerState::Audio ) {
149 // startTimer( 150 ); 149 // startTimer( 150 );
150 QPEApplication::showWidget( this ); 150 QPEApplication::showWidget( this );
151 return; 151 return;
152 } 152 }
153 153
154 killTimers(); 154 killTimers();
155 hide(); 155 hide();
156} 156}
157 157
158void AudioWidget::loadSkin() 158void AudioWidget::loadSkin()
159{ 159{
160 loadDefaultSkin( guiInfo() ); 160 loadDefaultSkin( guiInfo() );
161 161
162 songInfo.setFocusPolicy( QWidget::NoFocus ); 162 songInfo.setFocusPolicy( QWidget::NoFocus );
163// changeTextColor( &songInfo ); 163// changeTextColor( &songInfo );
164// songInfo.setBackgroundColor( QColor( 167, 212, 167 )); 164// songInfo.setBackgroundColor( QColor( 167, 212, 167 ));
165// songInfo.setFrameStyle( QFrame::NoFrame); 165// songInfo.setFrameStyle( QFrame::NoFrame);
166 songInfo.setFrameStyle( QFrame::WinPanel | QFrame::Sunken ); 166 songInfo.setFrameStyle( QFrame::WinPanel | QFrame::Sunken );
167// songInfo.setForegroundColor(Qt::white); 167// songInfo.setForegroundColor(Qt::white);
168 168
169 slider.setFixedHeight( 20 ); 169 slider.setFixedHeight( 20 );
170 slider.setMinValue( 0 ); 170 slider.setMinValue( 0 );
171 slider.setMaxValue( 1 ); 171 slider.setMaxValue( 1 );
172 slider.setFocusPolicy( QWidget::NoFocus ); 172 slider.setFocusPolicy( QWidget::NoFocus );
173 slider.setBackgroundPixmap( backgroundPixmap ); 173 slider.setBackgroundPixmap( backgroundPixmap );
174 174
175// Config cofg("qpe"); 175// Config cofg("qpe");
176// cofg.setGroup("Appearance"); 176// cofg.setGroup("Appearance");
177// QColor backgroundcolor = QColor( cofg.readEntry( "Background", "#E5E1D5" ) ); 177// QColor backgroundcolor = QColor( cofg.readEntry( "Background", "#E5E1D5" ) );
178 178
179 time.setFocusPolicy( QWidget::NoFocus ); 179 time.setFocusPolicy( QWidget::NoFocus );
180 time.setAlignment( Qt::AlignCenter ); 180 time.setAlignment( Qt::AlignCenter );
181 181
182// time.setFrame(FALSE); 182// time.setFrame(FALSE);
183// changeTextColor( &time ); 183// changeTextColor( &time );
184 184
185 resizeEvent( 0 ); 185 resizeEvent( 0 );
186} 186}
187 187
188void AudioWidget::setSeekable( bool isSeekable ) { 188void AudioWidget::setSeekable( bool isSeekable ) {
189 189
190 if ( !isSeekable ) { 190 if ( !isSeekable ) {
191 qDebug("<<<<<<<<<<<<<<file is STREAMING>>>>>>>>>>>>>>>>>>>"); 191 qDebug("<<<<<<<<<<<<<<file is STREAMING>>>>>>>>>>>>>>>>>>>");
192 if( !slider.isHidden()) { 192 if( !slider.isHidden()) {
193 slider.hide(); 193 slider.hide();
194 } 194 }
195 disconnect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 195 disconnect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
196 disconnect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 196 disconnect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
197 disconnect( &slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); 197 disconnect( &slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
198 disconnect( &slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); 198 disconnect( &slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
199 } else { 199 } else {
200 // this stops the slider from being moved, thus 200 // this stops the slider from being moved, thus
201 // does not stop stream when it reaches the end 201 // does not stop stream when it reaches the end
202 slider.show(); 202 slider.show();
203 qDebug( " CONNECT SET POSTION " ); 203 qDebug( " CONNECT SET POSTION " );
204 connect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 204 connect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
205 connect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 205 connect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
206 connect( &slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); 206 connect( &slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
207 connect( &slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); 207 connect( &slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
208 } 208 }
209} 209}
210 210
211 211
212static QString timeAsString( long length ) { 212static QString timeAsString( long length ) {
213 int minutes = length / 60; 213 int minutes = length / 60;
214 int seconds = length % 60; 214 int seconds = length % 60;
215 return QString("%1:%2%3").arg( minutes ).arg( seconds / 10 ).arg( seconds % 10 ); 215 return QString("%1:%2%3").arg( minutes ).arg( seconds / 10 ).arg( seconds % 10 );
216} 216}
217 217
218void AudioWidget::updateSlider( long i, long max ) { 218void AudioWidget::updateSlider( long i, long max ) {
219 219
220 time.setText( timeAsString( i ) + " / " + timeAsString( max ) ); 220 time.setText( timeAsString( i ) + " / " + timeAsString( max ) );
221// qDebug( timeAsString( i ) + " / " + timeAsString( max ) ) ; 221// qDebug( timeAsString( i ) + " / " + timeAsString( max ) ) ;
222 222
223 if ( max == 0 ) { 223 if ( max == 0 ) {
224 return; 224 return;
225 } 225 }
226 // Will flicker too much if we don't do this 226 // Will flicker too much if we don't do this
227 // Scale to something reasonable 227 // Scale to something reasonable
228 int width = slider.width(); 228 int width = slider.width();
229 int val = int((double)i * width / max); 229 int val = int((double)i * width / max);
230 if ( !audioSliderBeingMoved ) { 230 if ( !audioSliderBeingMoved ) {
231 if ( slider.value() != val ) { 231 if ( slider.value() != val ) {
232 slider.setValue( val ); 232 slider.setValue( val );
233 } 233 }
234 234
235 if ( slider.maxValue() != width ) { 235 if ( slider.maxValue() != width ) {
236 slider.setMaxValue( width ); 236 slider.setMaxValue( width );
237 } 237 }
238 } 238 }
239} 239}
240 240
241void AudioWidget::skipFor() { 241void AudioWidget::skipFor() {
242 skipDirection = +1; 242 skipDirection = +1;
243 startTimer( 50 ); 243 startTimer( 50 );
244 mediaPlayerState.setPosition( mediaPlayerState.position() + 2 ); 244 mediaPlayerState.setPosition( mediaPlayerState.position() + 2 );
245} 245}
246 246
247void AudioWidget::skipBack() { 247void AudioWidget::skipBack() {
248 skipDirection = -1; 248 skipDirection = -1;
249 startTimer( 50 ); 249 startTimer( 50 );
250 mediaPlayerState.setPosition( mediaPlayerState.position() - 2 ); 250 mediaPlayerState.setPosition( mediaPlayerState.position() - 2 );
251} 251}
252 252
253 253
254 254
255void AudioWidget::stopSkip() { 255void AudioWidget::stopSkip() {
256 killTimers(); 256 killTimers();
257} 257}
258 258
259 259
260void AudioWidget::timerEvent( QTimerEvent * ) { 260void AudioWidget::timerEvent( QTimerEvent * ) {
261 if ( skipDirection == +1 ) { 261 if ( skipDirection == +1 ) {
262 mediaPlayerState.setPosition( mediaPlayerState.position() + 2 ); 262 mediaPlayerState.setPosition( mediaPlayerState.position() + 2 );
263 } else if ( skipDirection == -1 ) { 263 } else if ( skipDirection == -1 ) {
264 mediaPlayerState.setPosition( mediaPlayerState.position() - 2 ); 264 mediaPlayerState.setPosition( mediaPlayerState.position() - 2 );
265 } 265 }
266} 266}
267 267
268void AudioWidget::keyReleaseEvent( QKeyEvent *e) { 268void AudioWidget::keyReleaseEvent( QKeyEvent *e) {
269 switch ( e->key() ) { 269 switch ( e->key() ) {
270 ////////////////////////////// Zaurus keys 270 ////////////////////////////// Zaurus keys
271 case Key_Home: 271 case Key_Home:
272 break; 272 break;
273 case Key_F9: //activity 273 case Key_F9: //activity
274 hide(); 274 hide();
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp
index 9f51006..1e6bc4d 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.cpp
+++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp
@@ -1,237 +1,237 @@
1#include <qpe/qpeapplication.h> 1#include <qpe/qpeapplication.h>
2#include <qpe/config.h> 2#include <qpe/config.h>
3#include <qpe/qcopenvelope_qws.h> 3#include <qpe/qcopenvelope_qws.h>
4#include <qfileinfo.h> 4#include <qfileinfo.h>
5 5
6#include "mediaplayer.h" 6#include "mediaplayer.h"
7#include "playlistwidget.h" 7#include "playlistwidget.h"
8#include "audiowidget.h" 8#include "audiowidget.h"
9#include "videowidget.h" 9#include "videowidget.h"
10#include "volumecontrol.h" 10#include "volumecontrol.h"
11#include "lib.h" 11#include "lib.h"
12 12
13#include "mediaplayerstate.h" 13#include "mediaplayerstate.h"
14 14
15 // for setBacklight() 15 // for setBacklight()
16#include <linux/fb.h> 16#include <linux/fb.h>
17#include <sys/file.h> 17#include <sys/file.h>
18#include <sys/ioctl.h> 18#include <sys/ioctl.h>
19 19
20 20
21#define FBIOBLANK 0x4611 21#define FBIOBLANK 0x4611
22 22
23MediaPlayer::MediaPlayer( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ) 23MediaPlayer::MediaPlayer( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name )
24 : QObject( parent, name ), volumeDirection( 0 ), mediaPlayerState( _mediaPlayerState ), playList( _playList ) { 24 : QObject( parent, name ), volumeDirection( 0 ), mediaPlayerState( _mediaPlayerState ), playList( _playList ) {
25 25
26 m_audioUI = 0; 26 m_audioUI = 0;
27 m_videoUI = 0; 27 m_videoUI = 0;
28 m_xineControl = 0; 28 m_xineControl = 0;
29 xine = new XINE::Lib( XINE::Lib::InitializeInThread ); 29 xine = new XINE::Lib( XINE::Lib::InitializeInThread );
30 30
31 fd=-1;fl=-1; 31 fd=-1;fl=-1;
32 playList.setCaption( tr( "OpiePlayer: Initializating" ) ); 32 playList.setCaption( tr( "OpiePlayer: Initializating" ) );
33 33
34 qApp->processEvents(); 34 qApp->processEvents();
35 // QPEApplication::grabKeyboard(); // EVIL 35 // QPEApplication::grabKeyboard(); // EVIL
36 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); 36 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
37 37
38 connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) ); 38 connect( &mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) );
39 39
40// What is pauseCheck good for? (Simon) 40// What is pauseCheck good for? (Simon)
41// connect( &mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) ); 41// connect( &mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( pauseCheck(bool) ) );
42 42
43 connect( &mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) ); 43 connect( &mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) );
44 connect( &mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) ); 44 connect( &mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) );
45 connect( &mediaPlayerState, SIGNAL( blankToggled( bool ) ), this, SLOT ( blank( bool ) ) ); 45 connect( &mediaPlayerState, SIGNAL( blankToggled(bool) ), this, SLOT ( blank(bool) ) );
46 46
47 volControl = new VolumeControl; 47 volControl = new VolumeControl;
48 Config cfg( "OpiePlayer" ); 48 Config cfg( "OpiePlayer" );
49 cfg.setGroup("PlayList"); 49 cfg.setGroup("PlayList");
50 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default"); 50 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default");
51 playList.setCaption( tr( "OpiePlayer: " ) + QFileInfo(currentPlaylist).baseName() ); 51 playList.setCaption( tr( "OpiePlayer: " ) + QFileInfo(currentPlaylist).baseName() );
52 52
53 m_skinLoader = new SkinLoader; 53 m_skinLoader = new SkinLoader;
54 m_skinLoader->schedule( AudioWidget::guiInfo() ); 54 m_skinLoader->schedule( AudioWidget::guiInfo() );
55 m_skinLoader->schedule( VideoWidget::guiInfo() ); 55 m_skinLoader->schedule( VideoWidget::guiInfo() );
56 m_skinLoader->start(); 56 m_skinLoader->start();
57} 57}
58 58
59MediaPlayer::~MediaPlayer() { 59MediaPlayer::~MediaPlayer() {
60 // this shold never happen, but one never knows... 60 // this shold never happen, but one never knows...
61 if ( xine ) { 61 if ( xine ) {
62 xine->ensureInitialized(); 62 xine->ensureInitialized();
63 delete xine; 63 delete xine;
64 } 64 }
65 delete m_xineControl; 65 delete m_xineControl;
66 delete m_audioUI; 66 delete m_audioUI;
67 delete m_videoUI; 67 delete m_videoUI;
68 delete volControl; 68 delete volControl;
69} 69}
70 70
71void MediaPlayer::pauseCheck( bool b ) { 71void MediaPlayer::pauseCheck( bool b ) {
72 if ( b && !mediaPlayerState.isPlaying() ) { 72 if ( b && !mediaPlayerState.isPlaying() ) {
73 mediaPlayerState.setPaused( FALSE ); 73 mediaPlayerState.setPaused( FALSE );
74 } 74 }
75} 75}
76 76
77void MediaPlayer::play() { 77void MediaPlayer::play() {
78 mediaPlayerState.setPlaying( FALSE ); 78 mediaPlayerState.setPlaying( FALSE );
79 mediaPlayerState.setPlaying( TRUE ); 79 mediaPlayerState.setPlaying( TRUE );
80} 80}
81 81
82void MediaPlayer::setPlaying( bool play ) { 82void MediaPlayer::setPlaying( bool play ) {
83 if ( !play ) { 83 if ( !play ) {
84 return; 84 return;
85 } 85 }
86 86
87 if ( mediaPlayerState.isPaused() ) { 87 if ( mediaPlayerState.isPaused() ) {
88 mediaPlayerState.setPaused( FALSE ); 88 mediaPlayerState.setPaused( FALSE );
89 return; 89 return;
90 } 90 }
91 91
92 QString tickerText, time, fileName; 92 QString tickerText, time, fileName;
93 if ( playList.currentTab() != PlayListWidget::CurrentPlayList ) { 93 if ( playList.currentTab() != PlayListWidget::CurrentPlayList ) {
94 //if playing in file list.. play in a different way 94 //if playing in file list.. play in a different way
95 // random and looping settings enabled causes problems here, 95 // random and looping settings enabled causes problems here,
96 // since there is no selected file in the playlist, but a selected file in the file list, 96 // since there is no selected file in the playlist, but a selected file in the file list,
97 // so we remember and shutoff 97 // so we remember and shutoff
98 l = mediaPlayerState.isLooping(); 98 l = mediaPlayerState.isLooping();
99 if(l) { 99 if(l) {
100 mediaPlayerState.setLooping( false ); 100 mediaPlayerState.setLooping( false );
101 } 101 }
102 r = mediaPlayerState.isShuffled(); 102 r = mediaPlayerState.isShuffled();
103 mediaPlayerState.setShuffled( false ); 103 mediaPlayerState.setShuffled( false );
104 } 104 }
105 105
106 PlayListWidget::Entry playListEntry = playList.currentEntry(); 106 PlayListWidget::Entry playListEntry = playList.currentEntry();
107 fileName = playListEntry.name; 107 fileName = playListEntry.name;
108 xineControl()->play( playListEntry.file ); 108 xineControl()->play( playListEntry.file );
109 109
110 long seconds = mediaPlayerState.length(); 110 long seconds = mediaPlayerState.length();
111 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); 111 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
112 112
113 if( fileName.left(4) == "http" ) { 113 if( fileName.left(4) == "http" ) {
114 fileName = QFileInfo( fileName ).baseName(); 114 fileName = QFileInfo( fileName ).baseName();
115 if ( xineControl()->getMetaInfo().isEmpty() ) { 115 if ( xineControl()->getMetaInfo().isEmpty() ) {
116 tickerText = tr( " File: " ) + fileName; 116 tickerText = tr( " File: " ) + fileName;
117 } else { 117 } else {
118 tickerText = xineControl()->getMetaInfo(); 118 tickerText = xineControl()->getMetaInfo();
119 } 119 }
120 } else { 120 } else {
121 if ( xineControl()->getMetaInfo().isEmpty() ) { 121 if ( xineControl()->getMetaInfo().isEmpty() ) {
122 tickerText = tr( " File: " ) + fileName + tr( ", Length: " ) + time + " "; 122 tickerText = tr( " File: " ) + fileName + tr( ", Length: " ) + time + " ";
123 } else { 123 } else {
124 tickerText = xineControl()->getMetaInfo() + " Length: " + time + " "; 124 tickerText = xineControl()->getMetaInfo() + " Length: " + time + " ";
125 } 125 }
126 } 126 }
127 audioUI()->setTickerText( tickerText ); 127 audioUI()->setTickerText( tickerText );
128} 128}
129 129
130 130
131void MediaPlayer::prev() { 131void MediaPlayer::prev() {
132 if( playList.currentTab() == PlayListWidget::CurrentPlayList ) { //if using the playlist 132 if( playList.currentTab() == PlayListWidget::CurrentPlayList ) { //if using the playlist
133 if ( playList.prev() ) { 133 if ( playList.prev() ) {
134 play(); 134 play();
135 } else if ( mediaPlayerState.isLooping() ) { 135 } else if ( mediaPlayerState.isLooping() ) {
136 if ( playList.last() ) { 136 if ( playList.last() ) {
137 play(); 137 play();
138 } 138 }
139 } else { 139 } else {
140 mediaPlayerState.setList(); 140 mediaPlayerState.setList();
141 } 141 }
142 } 142 }
143} 143}
144 144
145 145
146void MediaPlayer::next() { 146void MediaPlayer::next() {
147 147
148 if(playList.currentTab() == PlayListWidget::CurrentPlayList) { //if using the playlist 148 if(playList.currentTab() == PlayListWidget::CurrentPlayList) { //if using the playlist
149 if ( playList.next() ) { 149 if ( playList.next() ) {
150 play(); 150 play();
151 } else if ( mediaPlayerState.isLooping() ) { 151 } else if ( mediaPlayerState.isLooping() ) {
152 if ( playList.first() ) { 152 if ( playList.first() ) {
153 play(); 153 play();
154 } 154 }
155 } else { 155 } else {
156 mediaPlayerState.setList(); 156 mediaPlayerState.setList();
157 } 157 }
158 } else { //if playing from file list, let's just stop 158 } else { //if playing from file list, let's just stop
159 qDebug("<<<<<<<<<<<<<<<<<stop for filelists"); 159 qDebug("<<<<<<<<<<<<<<<<<stop for filelists");
160 mediaPlayerState.setPlaying(false); 160 mediaPlayerState.setPlaying(false);
161 mediaPlayerState.setDisplayType( MediaPlayerState::MediaSelection ); 161 mediaPlayerState.setDisplayType( MediaPlayerState::MediaSelection );
162 if(l) mediaPlayerState.setLooping(l); 162 if(l) mediaPlayerState.setLooping(l);
163 if(r) mediaPlayerState.setShuffled(r); 163 if(r) mediaPlayerState.setShuffled(r);
164 } 164 }
165 qApp->processEvents(); 165 qApp->processEvents();
166} 166}
167 167
168 168
169void MediaPlayer::startDecreasingVolume() { 169void MediaPlayer::startDecreasingVolume() {
170 volumeDirection = -1; 170 volumeDirection = -1;
171 startTimer( 100 ); 171 startTimer( 100 );
172 volControl->decVol(2); 172 volControl->decVol(2);
173} 173}
174 174
175 175
176void MediaPlayer::startIncreasingVolume() { 176void MediaPlayer::startIncreasingVolume() {
177 volumeDirection = +1; 177 volumeDirection = +1;
178 startTimer( 100 ); 178 startTimer( 100 );
179 volControl->incVol(2); 179 volControl->incVol(2);
180} 180}
181 181
182 182
183bool drawnOnScreenDisplay = FALSE; 183bool drawnOnScreenDisplay = FALSE;
184unsigned int onScreenDisplayVolume = 0; 184unsigned int onScreenDisplayVolume = 0;
185const int yoff = 110; 185const int yoff = 110;
186 186
187void MediaPlayer::stopChangingVolume() { 187void MediaPlayer::stopChangingVolume() {
188 killTimers(); 188 killTimers();
189 // Get rid of the on-screen display stuff 189 // Get rid of the on-screen display stuff
190 drawnOnScreenDisplay = FALSE; 190 drawnOnScreenDisplay = FALSE;
191 onScreenDisplayVolume = 0; 191 onScreenDisplayVolume = 0;
192 int w=0; 192 int w=0;
193 int h=0; 193 int h=0;
194 if( !xineControl()->hasVideo() ) { 194 if( !xineControl()->hasVideo() ) {
195 w = audioUI()->width(); 195 w = audioUI()->width();
196 h = audioUI()->height(); 196 h = audioUI()->height();
197 audioUI()->repaint( ( w - 200 ) / 2, h - yoff, 200 + 9, 70, FALSE ); 197 audioUI()->repaint( ( w - 200 ) / 2, h - yoff, 200 + 9, 70, FALSE );
198 } else { 198 } else {
199 w = videoUI()->width(); 199 w = videoUI()->width();
200 h = videoUI()->height(); 200 h = videoUI()->height();
201 videoUI()->repaint( ( w - 200 ) / 2, h - yoff, 200 + 9, 70, FALSE ); 201 videoUI()->repaint( ( w - 200 ) / 2, h - yoff, 200 + 9, 70, FALSE );
202 } 202 }
203} 203}
204 204
205 205
206void MediaPlayer::timerEvent( QTimerEvent * ) { 206void MediaPlayer::timerEvent( QTimerEvent * ) {
207 if ( volumeDirection == +1 ) { 207 if ( volumeDirection == +1 ) {
208 volControl->incVol( 2 ); 208 volControl->incVol( 2 );
209 } else if ( volumeDirection == -1 ) { 209 } else if ( volumeDirection == -1 ) {
210 volControl->decVol( 2 ); 210 volControl->decVol( 2 );
211 } 211 }
212 212
213 213
214 // TODO FIXME 214 // TODO FIXME
215 // huh?? 215 // huh??
216 unsigned int v= 0; 216 unsigned int v= 0;
217 v = volControl->volume(); 217 v = volControl->volume();
218 v = v / 10; 218 v = v / 10;
219 219
220 if ( drawnOnScreenDisplay && onScreenDisplayVolume == v ) { 220 if ( drawnOnScreenDisplay && onScreenDisplayVolume == v ) {
221 return; 221 return;
222 } 222 }
223 223
224 int w=0; int h=0; 224 int w=0; int h=0;
225 if( !xineControl()->hasVideo() ) { 225 if( !xineControl()->hasVideo() ) {
226 w = audioUI()->width(); 226 w = audioUI()->width();
227 h = audioUI()->height(); 227 h = audioUI()->height();
228 228
229 if ( drawnOnScreenDisplay ) { 229 if ( drawnOnScreenDisplay ) {
230 if ( onScreenDisplayVolume > v ) { 230 if ( onScreenDisplayVolume > v ) {
231 audioUI()->repaint( ( w - 200 ) / 2 + v * 20 + 0, h - yoff + 40, ( onScreenDisplayVolume - v ) * 20 + 9, 30, FALSE ); 231 audioUI()->repaint( ( w - 200 ) / 2 + v * 20 + 0, h - yoff + 40, ( onScreenDisplayVolume - v ) * 20 + 9, 30, FALSE );
232 } 232 }
233 } 233 }
234 drawnOnScreenDisplay = TRUE; 234 drawnOnScreenDisplay = TRUE;
235 onScreenDisplayVolume = v; 235 onScreenDisplayVolume = v;
236 QPainter p( audioUI() ); 236 QPainter p( audioUI() );
237 p.setPen( QColor( 0x10, 0xD0, 0x10 ) ); 237 p.setPen( QColor( 0x10, 0xD0, 0x10 ) );
diff --git a/noncore/multimedia/opieplayer2/mediawidget.cpp b/noncore/multimedia/opieplayer2/mediawidget.cpp
index f193001..08c62a2 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.cpp
+++ b/noncore/multimedia/opieplayer2/mediawidget.cpp
@@ -1,229 +1,229 @@
1/* 1/*
2 Copyright (C) 2002 Simon Hausmann <simon@lst.de> 2 Copyright (C) 2002 Simon Hausmann <simon@lst.de>
3 (C) 2002 Max Reiss <harlekin@handhelds.org> 3 (C) 2002 Max Reiss <harlekin@handhelds.org>
4 (C) 2002 L. Potter <ljp@llornkcor.com> 4 (C) 2002 L. Potter <ljp@llornkcor.com>
5 (C) 2002 Holger Freyther <zecke@handhelds.org> 5 (C) 2002 Holger Freyther <zecke@handhelds.org>
6 6
7 This program is free software; you can redistribute it and/or 7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public 8 modify it under the terms of the GNU General Public
9 License as published by the Free Software Foundation; either 9 License as published by the Free Software Foundation; either
10 version 2 of the License, or (at your option) any later version. 10 version 2 of the License, or (at your option) any later version.
11 11
12 This program is distributed in the hope that it will be useful, 12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 General Public License for more details. 15 General Public License for more details.
16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with this program; see the file COPYING. If not, write to 18 along with this program; see the file COPYING. If not, write to
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 Boston, MA 02111-1307, USA. 20 Boston, MA 02111-1307, USA.
21*/ 21*/
22 22
23#include <assert.h> 23#include <assert.h>
24 24
25#include "mediawidget.h" 25#include "mediawidget.h"
26#include "playlistwidget.h" 26#include "playlistwidget.h"
27#include "skin.h" 27#include "skin.h"
28 28
29MediaWidget::MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent, const char *name ) 29MediaWidget::MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent, const char *name )
30 : QWidget( parent, name ), mediaPlayerState( _mediaPlayerState ), playList( _playList ) 30 : QWidget( parent, name ), mediaPlayerState( _mediaPlayerState ), playList( _playList )
31{ 31{
32 connect( &mediaPlayerState, SIGNAL( displayTypeChanged( MediaPlayerState::DisplayType ) ), 32 connect( &mediaPlayerState, SIGNAL( displayTypeChanged(MediaPlayerState::DisplayType) ),
33 this, SLOT( setDisplayType( MediaPlayerState::DisplayType ) ) ); 33 this, SLOT( setDisplayType(MediaPlayerState::DisplayType) ) );
34 connect( &mediaPlayerState, SIGNAL( lengthChanged( long ) ), 34 connect( &mediaPlayerState, SIGNAL( lengthChanged(long) ),
35 this, SLOT( setLength( long ) ) ); 35 this, SLOT( setLength(long) ) );
36 connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ), 36 connect( &mediaPlayerState, SIGNAL( playingToggled(bool) ),
37 this, SLOT( setPlaying( bool ) ) ); 37 this, SLOT( setPlaying(bool) ) );
38 38
39 setBackgroundMode( NoBackground ); 39 setBackgroundMode( NoBackground );
40} 40}
41 41
42MediaWidget::~MediaWidget() 42MediaWidget::~MediaWidget()
43{ 43{
44} 44}
45 45
46void MediaWidget::setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount, 46void MediaWidget::setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount,
47 const Skin &skin ) 47 const Skin &skin )
48{ 48{
49 buttonMask = skin.buttonMask( skinInfo, buttonCount ); 49 buttonMask = skin.buttonMask( skinInfo, buttonCount );
50 50
51 buttons.clear(); 51 buttons.clear();
52 buttons.reserve( buttonCount ); 52 buttons.reserve( buttonCount );
53 53
54 for ( uint i = 0; i < buttonCount; ++i ) { 54 for ( uint i = 0; i < buttonCount; ++i ) {
55 Button button = setupButton( skinInfo[ i ], skin ); 55 Button button = setupButton( skinInfo[ i ], skin );
56 buttons.push_back( button ); 56 buttons.push_back( button );
57 } 57 }
58} 58}
59 59
60MediaWidget::Button MediaWidget::setupButton( const SkinButtonInfo &buttonInfo, const Skin &skin ) 60MediaWidget::Button MediaWidget::setupButton( const SkinButtonInfo &buttonInfo, const Skin &skin )
61{ 61{
62 Button button; 62 Button button;
63 button.command = buttonInfo.command; 63 button.command = buttonInfo.command;
64 button.type = buttonInfo.type; 64 button.type = buttonInfo.type;
65 button.mask = skin.buttonMaskImage( buttonInfo.fileName ); 65 button.mask = skin.buttonMaskImage( buttonInfo.fileName );
66 66
67 return button; 67 return button;
68} 68}
69 69
70void MediaWidget::loadDefaultSkin( const GUIInfo &guiInfo ) 70void MediaWidget::loadDefaultSkin( const GUIInfo &guiInfo )
71{ 71{
72 Skin skin( guiInfo.fileNameInfix ); 72 Skin skin( guiInfo.fileNameInfix );
73 skin.setCachable( false ); 73 skin.setCachable( false );
74 loadSkin( guiInfo.buttonInfo, guiInfo.buttonCount, skin ); 74 loadSkin( guiInfo.buttonInfo, guiInfo.buttonCount, skin );
75} 75}
76 76
77void MediaWidget::loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const Skin &skin ) 77void MediaWidget::loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const Skin &skin )
78{ 78{
79 backgroundPixmap = skin.backgroundPixmap(); 79 backgroundPixmap = skin.backgroundPixmap();
80 buttonUpImage = skin.buttonUpImage(); 80 buttonUpImage = skin.buttonUpImage();
81 buttonDownImage = skin.buttonDownImage(); 81 buttonDownImage = skin.buttonDownImage();
82 82
83 setupButtons( skinInfo, buttonCount, skin ); 83 setupButtons( skinInfo, buttonCount, skin );
84} 84}
85 85
86void MediaWidget::closeEvent( QCloseEvent * ) 86void MediaWidget::closeEvent( QCloseEvent * )
87{ 87{
88 mediaPlayerState.setList(); 88 mediaPlayerState.setList();
89} 89}
90 90
91void MediaWidget::paintEvent( QPaintEvent *pe ) 91void MediaWidget::paintEvent( QPaintEvent *pe )
92{ 92{
93 QPainter p( this ); 93 QPainter p( this );
94 94
95 if ( mediaPlayerState.isFullscreen() ) { 95 if ( mediaPlayerState.isFullscreen() ) {
96 // Clear the background 96 // Clear the background
97 p.setBrush( QBrush( Qt::black ) ); 97 p.setBrush( QBrush( Qt::black ) );
98 return; 98 return;
99 } 99 }
100 100
101 QPixmap buffer( size() ); 101 QPixmap buffer( size() );
102 QPainter bufferedPainter( &buffer ); 102 QPainter bufferedPainter( &buffer );
103 bufferedPainter.drawTiledPixmap( rect(), backgroundPixmap, QPoint( 0, 0 ) ); 103 bufferedPainter.drawTiledPixmap( rect(), backgroundPixmap, QPoint( 0, 0 ) );
104 paintAllButtons( bufferedPainter ); 104 paintAllButtons( bufferedPainter );
105 p.drawPixmap( 0, 0, buffer ); 105 p.drawPixmap( 0, 0, buffer );
106} 106}
107 107
108void MediaWidget::resizeEvent( QResizeEvent *e ) 108void MediaWidget::resizeEvent( QResizeEvent *e )
109{ 109{
110 QPixmap pixUp = combineImageWithBackground( buttonUpImage, backgroundPixmap, upperLeftOfButtonMask ); 110 QPixmap pixUp = combineImageWithBackground( buttonUpImage, backgroundPixmap, upperLeftOfButtonMask );
111 QPixmap pixDn = combineImageWithBackground( buttonDownImage, backgroundPixmap, upperLeftOfButtonMask ); 111 QPixmap pixDn = combineImageWithBackground( buttonDownImage, backgroundPixmap, upperLeftOfButtonMask );
112 112
113 for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it ) { 113 for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it ) {
114 Button &button = *it; 114 Button &button = *it;
115 115
116 if ( button.mask.isNull() ) 116 if ( button.mask.isNull() )
117 continue; 117 continue;
118 button.pixUp = addMaskToPixmap( pixUp, button.mask ); 118 button.pixUp = addMaskToPixmap( pixUp, button.mask );
119 button.pixDown = addMaskToPixmap( pixDn, button.mask ); 119 button.pixDown = addMaskToPixmap( pixDn, button.mask );
120 } 120 }
121 121
122 QWidget::resizeEvent( e ); 122 QWidget::resizeEvent( e );
123} 123}
124 124
125MediaWidget::Button *MediaWidget::buttonAt( const QPoint &position ) 125MediaWidget::Button *MediaWidget::buttonAt( const QPoint &position )
126{ 126{
127 if ( position.x() <= 0 || position.y() <= 0 || 127 if ( position.x() <= 0 || position.y() <= 0 ||
128 position.x() >= buttonMask.width() || 128 position.x() >= buttonMask.width() ||
129 position.y() >= buttonMask.height() ) 129 position.y() >= buttonMask.height() )
130 return 0; 130 return 0;
131 131
132 int pixelIdx = buttonMask.pixelIndex( position.x(), position.y() ); 132 int pixelIdx = buttonMask.pixelIndex( position.x(), position.y() );
133 for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it ) 133 for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it )
134 if ( it->command + 1 == pixelIdx ) 134 if ( it->command + 1 == pixelIdx )
135 return &( *it ); 135 return &( *it );
136 136
137 return 0; 137 return 0;
138} 138}
139 139
140void MediaWidget::mousePressEvent( QMouseEvent *event ) 140void MediaWidget::mousePressEvent( QMouseEvent *event )
141{ 141{
142 Button *button = buttonAt( event->pos() - upperLeftOfButtonMask ); 142 Button *button = buttonAt( event->pos() - upperLeftOfButtonMask );
143 143
144 if ( !button ) { 144 if ( !button ) {
145 QWidget::mousePressEvent( event ); 145 QWidget::mousePressEvent( event );
146 return; 146 return;
147 } 147 }
148 148
149 switch ( button->command ) { 149 switch ( button->command ) {
150 case VolumeUp: emit moreClicked(); return; 150 case VolumeUp: emit moreClicked(); return;
151 case VolumeDown: emit lessClicked(); return; 151 case VolumeDown: emit lessClicked(); return;
152 case Back: emit backClicked(); return; 152 case Back: emit backClicked(); return;
153 case Forward: emit forwardClicked(); return; 153 case Forward: emit forwardClicked(); return;
154 default: break; 154 default: break;
155 } 155 }
156} 156}
157 157
158void MediaWidget::mouseReleaseEvent( QMouseEvent *event ) 158void MediaWidget::mouseReleaseEvent( QMouseEvent *event )
159{ 159{
160 Button *button = buttonAt( event->pos() - upperLeftOfButtonMask ); 160 Button *button = buttonAt( event->pos() - upperLeftOfButtonMask );
161 161
162 if ( !button ) { 162 if ( !button ) {
163 QWidget::mouseReleaseEvent( event ); 163 QWidget::mouseReleaseEvent( event );
164 return; 164 return;
165 } 165 }
166 166
167 if ( button->type == ToggleButton ) 167 if ( button->type == ToggleButton )
168 toggleButton( *button ); 168 toggleButton( *button );
169 169
170 handleCommand( button->command, button->isDown ); 170 handleCommand( button->command, button->isDown );
171} 171}
172 172
173void MediaWidget::makeVisible() 173void MediaWidget::makeVisible()
174{ 174{
175} 175}
176 176
177void MediaWidget::handleCommand( Command command, bool buttonDown ) 177void MediaWidget::handleCommand( Command command, bool buttonDown )
178{ 178{
179 switch ( command ) { 179 switch ( command ) {
180 case Play: mediaPlayerState.togglePaused(); return; 180 case Play: mediaPlayerState.togglePaused(); return;
181 case Stop: mediaPlayerState.setPlaying(FALSE); return; 181 case Stop: mediaPlayerState.setPlaying(FALSE); return;
182 case Next: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return; 182 case Next: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return;
183 case Previous: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return; 183 case Previous: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return;
184 case Loop: mediaPlayerState.setLooping( buttonDown ); return; 184 case Loop: mediaPlayerState.setLooping( buttonDown ); return;
185 case VolumeUp: emit moreReleased(); return; 185 case VolumeUp: emit moreReleased(); return;
186 case VolumeDown: emit lessReleased(); return; 186 case VolumeDown: emit lessReleased(); return;
187 case PlayList: mediaPlayerState.setList(); return; 187 case PlayList: mediaPlayerState.setList(); return;
188 case Forward: emit forwardReleased(); return; 188 case Forward: emit forwardReleased(); return;
189 case Back: emit backReleased(); return; 189 case Back: emit backReleased(); return;
190 case FullScreen: mediaPlayerState.setFullscreen( true ); makeVisible(); return; 190 case FullScreen: mediaPlayerState.setFullscreen( true ); makeVisible(); return;
191 default: assert( false ); 191 default: assert( false );
192 } 192 }
193} 193}
194 194
195bool MediaWidget::isOverButton( const QPoint &position, int buttonId ) const 195bool MediaWidget::isOverButton( const QPoint &position, int buttonId ) const
196{ 196{
197 return ( position.x() > 0 && position.y() > 0 && 197 return ( position.x() > 0 && position.y() > 0 &&
198 position.x() < buttonMask.width() && 198 position.x() < buttonMask.width() &&
199 position.y() < buttonMask.height() && 199 position.y() < buttonMask.height() &&
200 buttonMask.pixelIndex( position.x(), position.y() ) == buttonId + 1 ); 200 buttonMask.pixelIndex( position.x(), position.y() ) == buttonId + 1 );
201} 201}
202 202
203void MediaWidget::paintAllButtons( QPainter &p ) 203void MediaWidget::paintAllButtons( QPainter &p )
204{ 204{
205 for ( ButtonVector::const_iterator it = buttons.begin(); 205 for ( ButtonVector::const_iterator it = buttons.begin();
206 it != buttons.end(); ++it ) 206 it != buttons.end(); ++it )
207 paintButton( p, *it ); 207 paintButton( p, *it );
208} 208}
209 209
210void MediaWidget::paintButton( const Button &button ) 210void MediaWidget::paintButton( const Button &button )
211{ 211{
212 QPainter p( this ); 212 QPainter p( this );
213 paintButton( p, button ); 213 paintButton( p, button );
214} 214}
215 215
216void MediaWidget::paintButton( QPainter &p, const Button &button ) 216void MediaWidget::paintButton( QPainter &p, const Button &button )
217{ 217{
218 if ( button.isDown ) 218 if ( button.isDown )
219 p.drawPixmap( upperLeftOfButtonMask, button.pixDown ); 219 p.drawPixmap( upperLeftOfButtonMask, button.pixDown );
220 else 220 else
221 p.drawPixmap( upperLeftOfButtonMask, button.pixUp ); 221 p.drawPixmap( upperLeftOfButtonMask, button.pixUp );
222} 222}
223 223
224void MediaWidget::setToggleButton( Command command, bool down ) 224void MediaWidget::setToggleButton( Command command, bool down )
225{ 225{
226 for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it ) 226 for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it )
227 if ( it->command == command ) { 227 if ( it->command == command ) {
228 setToggleButton( *it, down ); 228 setToggleButton( *it, down );
229 return; 229 return;
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp
index 9a9e1ec..0a84268 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp
@@ -1,745 +1,745 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 3
4              Copyright (c) 2002,2003 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002,2003 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com> 5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU General Public 12:`=1 )Y*s>-.--   : the terms of the GNU General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; General Public License for more 22..}^=.=       =       ; General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = General Public License along with 26  -_. . .   )=.  = General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#include <qtoolbar.h> 34#include <qtoolbar.h>
35 35
36#include <opie/ofiledialog.h> 36#include <opie/ofiledialog.h>
37 37
38#include <qmessagebox.h> 38#include <qmessagebox.h>
39 39
40#include "playlistselection.h" 40#include "playlistselection.h"
41#include "playlistwidget.h" 41#include "playlistwidget.h"
42#include "mediaplayer.h" 42#include "mediaplayer.h"
43#include "mediaplayerstate.h" 43#include "mediaplayerstate.h"
44#include "inputDialog.h" 44#include "inputDialog.h"
45#include "om3u.h" 45#include "om3u.h"
46#include "playlistfileview.h" 46#include "playlistfileview.h"
47 47
48//only needed for the random play 48//only needed for the random play
49#include <assert.h> 49#include <assert.h>
50 50
51PlayListWidget::PlayListWidget(QWidget* parent, const char* name, WFlags fl ) 51PlayListWidget::PlayListWidget(QWidget* parent, const char* name, WFlags fl )
52 : PlayListWidgetGui( parent, "playList" ) , currentFileListView( 0 ) 52 : PlayListWidgetGui( parent, "playList" ) , currentFileListView( 0 )
53{ 53{
54 mediaPlayerState = new MediaPlayerState(0, "mediaPlayerState" ); 54 mediaPlayerState = new MediaPlayerState(0, "mediaPlayerState" );
55 m_mp = new MediaPlayer(*this, *mediaPlayerState, 0, "mediaPlayer"); 55 m_mp = new MediaPlayer(*this, *mediaPlayerState, 0, "mediaPlayer");
56 56
57 57
58 58
59 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), 59 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ),
60 "opieplayer2/add_to_playlist", 60 "opieplayer2/add_to_playlist",
61 this , SLOT(addSelected() ) ); 61 this , SLOT(addSelected() ) );
62 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), 62 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ),
63 "opieplayer2/remove_from_playlist", 63 "opieplayer2/remove_from_playlist",
64 this , SLOT(removeSelected() ) ); 64 this , SLOT(removeSelected() ) );
65 d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer2/play", 65 d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer2/play",
66 this , SLOT( btnPlay( bool) ), TRUE ); 66 this , SLOT( btnPlay(bool) ), TRUE );
67 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer2/shuffle", 67 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer2/shuffle",
68 mediaPlayerState, SLOT( setShuffled( bool ) ), TRUE ); 68 mediaPlayerState, SLOT( setShuffled(bool) ), TRUE );
69 d->tbLoop = new ToolButton( bar, tr( "Loop" ), "opieplayer2/loop", 69 d->tbLoop = new ToolButton( bar, tr( "Loop" ), "opieplayer2/loop",
70 mediaPlayerState, SLOT( setLooping( bool ) ), TRUE ); 70 mediaPlayerState, SLOT( setLooping(bool) ), TRUE );
71 71
72 (void)new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); 72 (void)new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) );
73 (void)new MenuItem( pmPlayList, tr( "Add all audio files" ), 73 (void)new MenuItem( pmPlayList, tr( "Add all audio files" ),
74 this, SLOT( addAllMusicToList() ) ); 74 this, SLOT( addAllMusicToList() ) );
75 (void)new MenuItem( pmPlayList, tr( "Add all video files" ), 75 (void)new MenuItem( pmPlayList, tr( "Add all video files" ),
76 this, SLOT( addAllVideoToList() ) ); 76 this, SLOT( addAllVideoToList() ) );
77 (void)new MenuItem( pmPlayList, tr( "Add all files" ), 77 (void)new MenuItem( pmPlayList, tr( "Add all files" ),
78 this, SLOT( addAllToList() ) ); 78 this, SLOT( addAllToList() ) );
79 pmPlayList->insertSeparator(-1); 79 pmPlayList->insertSeparator(-1);
80 (void)new MenuItem( pmPlayList, tr( "Add File" ), 80 (void)new MenuItem( pmPlayList, tr( "Add File" ),
81 this,SLOT( openFile() ) ); 81 this,SLOT( openFile() ) );
82 (void)new MenuItem( pmPlayList, tr("Add URL"), 82 (void)new MenuItem( pmPlayList, tr("Add URL"),
83 this,SLOT( openURL() ) ); 83 this,SLOT( openURL() ) );
84 pmPlayList->insertSeparator(-1); 84 pmPlayList->insertSeparator(-1);
85 (void)new MenuItem( pmPlayList, tr( "Save Playlist" ), 85 (void)new MenuItem( pmPlayList, tr( "Save Playlist" ),
86 this, SLOT(writem3u() ) ); 86 this, SLOT(writem3u() ) );
87 pmPlayList->insertSeparator(-1); 87 pmPlayList->insertSeparator(-1);
88 (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), 88 (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ),
89 audioView, SLOT( scanFiles() ) ); 89 audioView, SLOT( scanFiles() ) );
90 (void)new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), 90 (void)new MenuItem( pmPlayList, tr( "Rescan for Video Files" ),
91 videoView, SLOT( scanFiles() ) ); 91 videoView, SLOT( scanFiles() ) );
92 92
93 pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"), 93 pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"),
94 mediaPlayerState, SLOT( toggleFullscreen() ) ); 94 mediaPlayerState, SLOT( toggleFullscreen() ) );
95 95
96 Config cfg( "OpiePlayer" ); 96 Config cfg( "OpiePlayer" );
97 bool b= cfg.readBoolEntry("FullScreen", 0); 97 bool b= cfg.readBoolEntry("FullScreen", 0);
98 mediaPlayerState->setFullscreen( b ); 98 mediaPlayerState->setFullscreen( b );
99 pmView->setItemChecked( -16, b ); 99 pmView->setItemChecked( -16, b );
100 100
101 (void)new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up", 101 (void)new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up",
102 d->selectedFiles, SLOT(moveSelectedUp() ) ); 102 d->selectedFiles, SLOT(moveSelectedUp() ) );
103 (void)new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut", 103 (void)new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut",
104 d->selectedFiles, SLOT(removeSelected() ) ); 104 d->selectedFiles, SLOT(removeSelected() ) );
105 (void)new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down", 105 (void)new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down",
106 d->selectedFiles, SLOT(moveSelectedDown() ) ); 106 d->selectedFiles, SLOT(moveSelectedDown() ) );
107 QVBox *stretch2 = new QVBox( vbox1 ); 107 QVBox *stretch2 = new QVBox( vbox1 );
108 108
109 connect( tbDeletePlaylist, ( SIGNAL( released() ) ), 109 connect( tbDeletePlaylist, ( SIGNAL( released() ) ),
110 SLOT( deletePlaylist() ) ); 110 SLOT( deletePlaylist() ) );
111 connect( pmView, SIGNAL( activated( int ) ), 111 connect( pmView, SIGNAL( activated(int) ),
112 this, SLOT( pmViewActivated( int ) ) ); 112 this, SLOT( pmViewActivated(int) ) );
113 connect( skinsMenu, SIGNAL( activated( int ) ) , 113 connect( skinsMenu, SIGNAL( activated(int) ) ,
114 this, SLOT( skinsMenuActivated( int ) ) ); 114 this, SLOT( skinsMenuActivated(int) ) );
115 connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int) ), 115 connect( d->selectedFiles, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),
116 this,SLOT( playlistViewPressed( int, QListViewItem *, const QPoint&, int ) ) ); 116 this,SLOT( playlistViewPressed(int,QListViewItem*,const QPoint&,int) ) );
117 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int ) ), 117 connect( audioView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),
118 this,SLOT( viewPressed( int, QListViewItem *, const QPoint&, int ) ) ); 118 this,SLOT( viewPressed(int,QListViewItem*,const QPoint&,int) ) );
119 connect( audioView, SIGNAL( returnPressed( QListViewItem *) ), 119 connect( audioView, SIGNAL( returnPressed(QListViewItem*) ),
120 this,SLOT( playIt( QListViewItem *) ) ); 120 this,SLOT( playIt(QListViewItem*) ) );
121 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), 121 connect( audioView, SIGNAL( doubleClicked(QListViewItem*) ),
122 this, SLOT( addToSelection( QListViewItem *) ) ); 122 this, SLOT( addToSelection(QListViewItem*) ) );
123 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int) ), 123 connect( videoView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),
124 this,SLOT( viewPressed( int, QListViewItem *, const QPoint&, int) ) ); 124 this,SLOT( viewPressed(int,QListViewItem*,const QPoint&,int) ) );
125 connect( videoView, SIGNAL( returnPressed( QListViewItem *) ), 125 connect( videoView, SIGNAL( returnPressed(QListViewItem*) ),
126 this,SLOT( playIt( QListViewItem *) ) ); 126 this,SLOT( playIt(QListViewItem*) ) );
127 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), 127 connect( videoView, SIGNAL( doubleClicked(QListViewItem*) ),
128 this, SLOT( addToSelection( QListViewItem *) ) ); 128 this, SLOT( addToSelection(QListViewItem*) ) );
129 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), 129 connect( playLists, SIGNAL( fileSelected(const DocLnk&) ),
130 this, SLOT( loadList( const DocLnk & ) ) ); 130 this, SLOT( loadList(const DocLnk&) ) );
131 connect( tabWidget, SIGNAL ( currentChanged(QWidget*) ), 131 connect( tabWidget, SIGNAL ( currentChanged(QWidget*) ),
132 this, SLOT( tabChanged( QWidget* ) ) ); 132 this, SLOT( tabChanged(QWidget*) ) );
133 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), 133 connect( mediaPlayerState, SIGNAL( playingToggled(bool) ),
134 d->tbPlay, SLOT( setOn( bool ) ) ); 134 d->tbPlay, SLOT( setOn(bool) ) );
135 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), 135 connect( mediaPlayerState, SIGNAL( loopingToggled(bool) ),
136 d->tbLoop, SLOT( setOn( bool ) ) ); 136 d->tbLoop, SLOT( setOn(bool) ) );
137 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), 137 connect( mediaPlayerState, SIGNAL( shuffledToggled(bool) ),
138 d->tbShuffle, SLOT( setOn( bool ) ) ); 138 d->tbShuffle, SLOT( setOn(bool) ) );
139 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), 139 connect( d->selectedFiles, SIGNAL( doubleClicked(QListViewItem*) ),
140 this, SLOT( playIt( QListViewItem *) ) ); 140 this, SLOT( playIt(QListViewItem*) ) );
141 connect ( gammaSlider, SIGNAL( valueChanged( int ) ), 141 connect ( gammaSlider, SIGNAL( valueChanged(int) ),
142 mediaPlayerState, SLOT( setVideoGamma( int ) ) ); 142 mediaPlayerState, SLOT( setVideoGamma(int) ) );
143 143
144 connect( this, SIGNAL(skinSelected() ), 144 connect( this, SIGNAL(skinSelected() ),
145 m_mp, SLOT( reloadSkins() ) ); 145 m_mp, SLOT( reloadSkins() ) );
146 146
147 // see which skins are installed 147 // see which skins are installed
148 populateSkinsMenu(); 148 populateSkinsMenu();
149 initializeStates(); 149 initializeStates();
150 150
151 channel = new QCopChannel( "QPE/Application/opieplayer2", this ); 151 channel = new QCopChannel( "QPE/Application/opieplayer2", this );
152 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), 152 connect( channel, SIGNAL(received(const QCString&,const QByteArray&)),
153 this, SLOT( qcopReceive(const QCString&, const QByteArray&)) ); 153 this, SLOT( qcopReceive(const QCString&,const QByteArray&)) );
154 154
155 155
156 cfg.setGroup("PlayList"); 156 cfg.setGroup("PlayList");
157 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default"); 157 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default");
158 loadList(DocLnk( currentPlaylist ) ); 158 loadList(DocLnk( currentPlaylist ) );
159 159
160 tabWidget->showPage( playListTab ); 160 tabWidget->showPage( playListTab );
161} 161}
162 162
163 163
164PlayListWidget::~PlayListWidget() { 164PlayListWidget::~PlayListWidget() {
165 delete d; 165 delete d;
166 delete m_mp; 166 delete m_mp;
167} 167}
168 168
169 169
170void PlayListWidget::initializeStates() { 170void PlayListWidget::initializeStates() {
171 d->tbPlay->setOn( mediaPlayerState->isPlaying() ); 171 d->tbPlay->setOn( mediaPlayerState->isPlaying() );
172 d->tbLoop->setOn( mediaPlayerState->isLooping() ); 172 d->tbLoop->setOn( mediaPlayerState->isLooping() );
173 d->tbShuffle->setOn( mediaPlayerState->isShuffled() ); 173 d->tbShuffle->setOn( mediaPlayerState->isShuffled() );
174 d->playListFrame->show(); 174 d->playListFrame->show();
175} 175}
176 176
177void PlayListWidget::writeDefaultPlaylist() { 177void PlayListWidget::writeDefaultPlaylist() {
178 178
179 Config config( "OpiePlayer" ); 179 Config config( "OpiePlayer" );
180 config.setGroup( "PlayList" ); 180 config.setGroup( "PlayList" );
181 QString filename=QPEApplication::documentDir() + "/default.m3u"; 181 QString filename=QPEApplication::documentDir() + "/default.m3u";
182 QString currentString = config.readEntry( "CurrentPlaylist", filename); 182 QString currentString = config.readEntry( "CurrentPlaylist", filename);
183 if( currentString == filename) { 183 if( currentString == filename) {
184 Om3u *m3uList; 184 Om3u *m3uList;
185 // qDebug("<<<<<<<<<<<<<default>>>>>>>>>>>>>>>>>>>"); 185 // qDebug("<<<<<<<<<<<<<default>>>>>>>>>>>>>>>>>>>");
186 if( d->selectedFiles->first() ) { 186 if( d->selectedFiles->first() ) {
187 m3uList = new Om3u(filename, IO_ReadWrite | IO_Truncate); 187 m3uList = new Om3u(filename, IO_ReadWrite | IO_Truncate);
188 do { 188 do {
189 // qDebug(d->selectedFiles->current()->file()); 189 // qDebug(d->selectedFiles->current()->file());
190 m3uList->add( d->selectedFiles->current()->file() ); 190 m3uList->add( d->selectedFiles->current()->file() );
191 } 191 }
192 while ( d->selectedFiles->next() ); 192 while ( d->selectedFiles->next() );
193 193
194 m3uList->write(); 194 m3uList->write();
195 m3uList->close(); 195 m3uList->close();
196 delete m3uList; 196 delete m3uList;
197 197
198 } 198 }
199 } 199 }
200} 200}
201 201
202void PlayListWidget::addToSelection( const DocLnk& lnk ) { 202void PlayListWidget::addToSelection( const DocLnk& lnk ) {
203 d->setDocumentUsed = FALSE; 203 d->setDocumentUsed = FALSE;
204 if( QFileInfo( lnk.file() ).exists() || 204 if( QFileInfo( lnk.file() ).exists() ||
205 lnk.file().left(4) == "http" ) { 205 lnk.file().left(4) == "http" ) {
206 d->selectedFiles->addToSelection( lnk ); 206 d->selectedFiles->addToSelection( lnk );
207 } 207 }
208// writeCurrentM3u(); 208// writeCurrentM3u();
209} 209}
210 210
211 211
212void PlayListWidget::clearList() { 212void PlayListWidget::clearList() {
213 while ( first() ) { 213 while ( first() ) {
214 d->selectedFiles->removeSelected(); 214 d->selectedFiles->removeSelected();
215 } 215 }
216 Config cfg( "OpiePlayer" ); 216 Config cfg( "OpiePlayer" );
217 cfg.setGroup("PlayList"); 217 cfg.setGroup("PlayList");
218 cfg.writeEntry("CurrentPlaylist","default"); 218 cfg.writeEntry("CurrentPlaylist","default");
219 setCaption("OpiePlayer"); 219 setCaption("OpiePlayer");
220} 220}
221 221
222void PlayListWidget::viewPressed( int mouse, QListViewItem *, const QPoint& , int) { 222void PlayListWidget::viewPressed( int mouse, QListViewItem *, const QPoint& , int) {
223 switch (mouse) { 223 switch (mouse) {
224 case LeftButton: 224 case LeftButton:
225 break; 225 break;
226 case RightButton: 226 case RightButton:
227 { 227 {
228 QPopupMenu m; 228 QPopupMenu m;
229 m.insertItem( tr( "Play Selected" ), this, SLOT( playSelected() )); 229 m.insertItem( tr( "Play Selected" ), this, SLOT( playSelected() ));
230 m.insertItem( tr( "Add to Playlist" ), this, SLOT( addSelected() )); 230 m.insertItem( tr( "Add to Playlist" ), this, SLOT( addSelected() ));
231 m.exec( QCursor::pos() ); 231 m.exec( QCursor::pos() );
232 } 232 }
233 break; 233 break;
234 } 234 }
235} 235}
236 236
237 237
238void PlayListWidget::playlistViewPressed( int mouse, QListViewItem *, const QPoint& , int ) { 238void PlayListWidget::playlistViewPressed( int mouse, QListViewItem *, const QPoint& , int ) {
239 switch (mouse) { 239 switch (mouse) {
240 case LeftButton: 240 case LeftButton:
241 break; 241 break;
242 case RightButton: 242 case RightButton:
243 { 243 {
244 QPopupMenu m; 244 QPopupMenu m;
245 m.insertItem( tr( "Play" ), this, SLOT( playSelected() )); 245 m.insertItem( tr( "Play" ), this, SLOT( playSelected() ));
246 m.insertItem( tr( "Remove" ), this, SLOT( removeSelected() )); 246 m.insertItem( tr( "Remove" ), this, SLOT( removeSelected() ));
247 m.exec( QCursor::pos() ); 247 m.exec( QCursor::pos() );
248 } 248 }
249 break; 249 break;
250 } 250 }
251} 251}
252 252
253 253
254void PlayListWidget::addAllToList() { 254void PlayListWidget::addAllToList() {
255 255
256 256
257 audioView->populateView(); 257 audioView->populateView();
258 258
259 QListViewItemIterator audioIt( audioView ); 259 QListViewItemIterator audioIt( audioView );
260 DocLnk lnk; 260 DocLnk lnk;
261 QString filename; 261 QString filename;
262 // iterate through all items of the listview 262 // iterate through all items of the listview
263 for ( ; audioIt.current(); ++audioIt ) { 263 for ( ; audioIt.current(); ++audioIt ) {
264 filename = audioIt.current()->text(3); 264 filename = audioIt.current()->text(3);
265 lnk.setName( QFileInfo(filename).baseName() ); //sets name 265 lnk.setName( QFileInfo(filename).baseName() ); //sets name
266 lnk.setFile( filename ); //sets file name 266 lnk.setFile( filename ); //sets file name
267 d->selectedFiles->addToSelection( lnk); 267 d->selectedFiles->addToSelection( lnk);
268 } 268 }
269 269
270 videoView->populateView(); 270 videoView->populateView();
271 271
272 QListViewItemIterator videoIt( videoView ); 272 QListViewItemIterator videoIt( videoView );
273 for ( ; videoIt.current(); ++videoIt ) { 273 for ( ; videoIt.current(); ++videoIt ) {
274 filename = videoIt.current()->text(3); 274 filename = videoIt.current()->text(3);
275 lnk.setName( QFileInfo(filename).baseName() ); //sets name 275 lnk.setName( QFileInfo(filename).baseName() ); //sets name
276 lnk.setFile( filename ); //sets file name 276 lnk.setFile( filename ); //sets file name
277 d->selectedFiles->addToSelection( lnk); 277 d->selectedFiles->addToSelection( lnk);
278 } 278 }
279 279
280 tabWidget->setCurrentPage(0); 280 tabWidget->setCurrentPage(0);
281 281
282 writeCurrentM3u(); 282 writeCurrentM3u();
283 d->selectedFiles->first(); 283 d->selectedFiles->first();
284} 284}
285 285
286 286
287void PlayListWidget::addAllMusicToList() { 287void PlayListWidget::addAllMusicToList() {
288 288
289 audioView->populateView(); 289 audioView->populateView();
290 290
291 QListViewItemIterator audioIt( audioView ); 291 QListViewItemIterator audioIt( audioView );
292 DocLnk lnk; 292 DocLnk lnk;
293 QString filename; 293 QString filename;
294 // iterate through all items of the listview 294 // iterate through all items of the listview
295 for ( ; audioIt.current(); ++audioIt ) { 295 for ( ; audioIt.current(); ++audioIt ) {
296 filename = audioIt.current()->text(3); 296 filename = audioIt.current()->text(3);
297 lnk.setName( QFileInfo(filename).baseName() ); //sets name 297 lnk.setName( QFileInfo(filename).baseName() ); //sets name
298 lnk.setFile( filename ); //sets file name 298 lnk.setFile( filename ); //sets file name
299 d->selectedFiles->addToSelection( lnk); 299 d->selectedFiles->addToSelection( lnk);
300 } 300 }
301 301
302 tabWidget->setCurrentPage(0); 302 tabWidget->setCurrentPage(0);
303 writeCurrentM3u(); 303 writeCurrentM3u();
304 d->selectedFiles->first(); 304 d->selectedFiles->first();
305} 305}
306 306
307 307
308void PlayListWidget::addAllVideoToList() { 308void PlayListWidget::addAllVideoToList() {
309 309
310 videoView->populateView(); 310 videoView->populateView();
311 311
312 QListViewItemIterator videoIt( videoView ); 312 QListViewItemIterator videoIt( videoView );
313 DocLnk lnk; 313 DocLnk lnk;
314 QString filename; 314 QString filename;
315 for ( ; videoIt.current(); ++videoIt ) { 315 for ( ; videoIt.current(); ++videoIt ) {
316 filename = videoIt.current()->text(3); 316 filename = videoIt.current()->text(3);
317 lnk.setName( QFileInfo(filename).baseName() ); //sets name 317 lnk.setName( QFileInfo(filename).baseName() ); //sets name
318 lnk.setFile( filename ); //sets file name 318 lnk.setFile( filename ); //sets file name
319 d->selectedFiles->addToSelection( lnk); 319 d->selectedFiles->addToSelection( lnk);
320 } 320 }
321 tabWidget->setCurrentPage(0); 321 tabWidget->setCurrentPage(0);
322 writeCurrentM3u(); 322 writeCurrentM3u();
323 d->selectedFiles->first(); 323 d->selectedFiles->first();
324} 324}
325 325
326 326
327void PlayListWidget::setDocument( const QString& fileref ) { 327void PlayListWidget::setDocument( const QString& fileref ) {
328 // qDebug( "<<<<<<<<set document>>>>>>>>>> "+fileref ); 328 // qDebug( "<<<<<<<<set document>>>>>>>>>> "+fileref );
329 fromSetDocument = TRUE; 329 fromSetDocument = TRUE;
330 QFileInfo fileInfo(fileref); 330 QFileInfo fileInfo(fileref);
331 331
332 if ( !fileInfo.exists() ) { 332 if ( !fileInfo.exists() ) {
333 QMessageBox::warning( this, tr( "Invalid File" ), 333 QMessageBox::warning( this, tr( "Invalid File" ),
334 tr( "There was a problem in getting the file." ) ); 334 tr( "There was a problem in getting the file." ) );
335 return; 335 return;
336 } 336 }
337 337
338 clearList(); 338 clearList();
339 QString extension = fileInfo.extension(false); 339 QString extension = fileInfo.extension(false);
340 340
341 if( extension.find( "m3u", 0, false) != -1 341 if( extension.find( "m3u", 0, false) != -1
342 || extension.find( "pls", 0, false) != -1 ) { 342 || extension.find( "pls", 0, false) != -1 ) {
343 readListFromFile( fileref ); 343 readListFromFile( fileref );
344 } else { 344 } else {
345 clearList(); 345 clearList();
346 DocLnk lnk; 346 DocLnk lnk;
347 lnk.setName( fileInfo.baseName() ); //sets name 347 lnk.setName( fileInfo.baseName() ); //sets name
348 lnk.setFile( fileref ); //sets file name 348 lnk.setFile( fileref ); //sets file name
349 addToSelection( lnk ); 349 addToSelection( lnk );
350 writeCurrentM3u(); 350 writeCurrentM3u();
351 351
352 d->setDocumentUsed = TRUE; 352 d->setDocumentUsed = TRUE;
353 mediaPlayerState->setPlaying( FALSE ); 353 mediaPlayerState->setPlaying( FALSE );
354 mediaPlayerState->setPlaying( TRUE ); 354 mediaPlayerState->setPlaying( TRUE );
355 } 355 }
356} 356}
357 357
358 358
359void PlayListWidget::useSelectedDocument() { 359void PlayListWidget::useSelectedDocument() {
360 d->setDocumentUsed = FALSE; 360 d->setDocumentUsed = FALSE;
361} 361}
362 362
363 363
364const DocLnk *PlayListWidget::current() const { // this is fugly 364const DocLnk *PlayListWidget::current() const { // this is fugly
365 assert( currentTab() == CurrentPlayList ); 365 assert( currentTab() == CurrentPlayList );
366 366
367 const DocLnk *lnk = d->selectedFiles->current(); 367 const DocLnk *lnk = d->selectedFiles->current();
368 if ( !lnk ) { 368 if ( !lnk ) {
369 d->selectedFiles->first(); 369 d->selectedFiles->first();
370 lnk = d->selectedFiles->current(); 370 lnk = d->selectedFiles->current();
371 } 371 }
372 assert( lnk ); 372 assert( lnk );
373 return lnk; 373 return lnk;
374} 374}
375 375
376 376
377bool PlayListWidget::prev() { 377bool PlayListWidget::prev() {
378 if ( mediaPlayerState->isShuffled() ) { 378 if ( mediaPlayerState->isShuffled() ) {
379 const DocLnk *cur = current(); 379 const DocLnk *cur = current();
380 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0)); 380 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0));
381 for ( int i = 0; i < j; i++ ) { 381 for ( int i = 0; i < j; i++ ) {
382 if ( !d->selectedFiles->next() ) 382 if ( !d->selectedFiles->next() )
383 d->selectedFiles->first(); 383 d->selectedFiles->first();
384 } 384 }
385 if ( cur == current() ) 385 if ( cur == current() )
386 if ( !d->selectedFiles->next() ) { 386 if ( !d->selectedFiles->next() ) {
387 d->selectedFiles->first(); 387 d->selectedFiles->first();
388 } 388 }
389 return TRUE; 389 return TRUE;
390 } else { 390 } else {
391 if ( !d->selectedFiles->prev() ) { 391 if ( !d->selectedFiles->prev() ) {
392 if ( mediaPlayerState->isLooping() ) { 392 if ( mediaPlayerState->isLooping() ) {
393 return d->selectedFiles->last(); 393 return d->selectedFiles->last();
394 } else { 394 } else {
395 return FALSE; 395 return FALSE;
396 } 396 }
397 } 397 }
398 return TRUE; 398 return TRUE;
399 } 399 }
400} 400}
401 401
402 402
403bool PlayListWidget::next() { 403bool PlayListWidget::next() {
404//qDebug("<<<<<<<<<<<<next()"); 404//qDebug("<<<<<<<<<<<<next()");
405 if ( mediaPlayerState->isShuffled() ) { 405 if ( mediaPlayerState->isShuffled() ) {
406 return prev(); 406 return prev();
407 } else { 407 } else {
408 if ( !d->selectedFiles->next() ) { 408 if ( !d->selectedFiles->next() ) {
409 if ( mediaPlayerState->isLooping() ) { 409 if ( mediaPlayerState->isLooping() ) {
410 return d->selectedFiles->first(); 410 return d->selectedFiles->first();
411 } else { 411 } else {
412 return FALSE; 412 return FALSE;
413 } 413 }
414 } 414 }
415 return TRUE; 415 return TRUE;
416 } 416 }
417} 417}
418 418
419 419
420bool PlayListWidget::first() { 420bool PlayListWidget::first() {
421 return d->selectedFiles->first(); 421 return d->selectedFiles->first();
422} 422}
423 423
424 424
425bool PlayListWidget::last() { 425bool PlayListWidget::last() {
426 return d->selectedFiles->last(); 426 return d->selectedFiles->last();
427} 427}
428 428
429 429
430 void PlayListWidget::saveList() { 430 void PlayListWidget::saveList() {
431 writem3u(); 431 writem3u();
432 } 432 }
433 433
434 434
435void PlayListWidget::loadList( const DocLnk & lnk) { 435void PlayListWidget::loadList( const DocLnk & lnk) {
436 QString name = lnk.name(); 436 QString name = lnk.name();
437 437
438 if( name.length()>0) { 438 if( name.length()>0) {
439 setCaption("OpiePlayer: "+name); 439 setCaption("OpiePlayer: "+name);
440 clearList(); 440 clearList();
441 readListFromFile(lnk.file()); 441 readListFromFile(lnk.file());
442 tabWidget->setCurrentPage(0); 442 tabWidget->setCurrentPage(0);
443 } 443 }
444} 444}
445 445
446void PlayListWidget::addSelected() { 446void PlayListWidget::addSelected() {
447 assert( inFileListMode() ); 447 assert( inFileListMode() );
448 448
449 QListViewItemIterator it( currentFileListView ); 449 QListViewItemIterator it( currentFileListView );
450 for ( ; it.current(); ++it ) 450 for ( ; it.current(); ++it )
451 if ( it.current()->isSelected() ) { 451 if ( it.current()->isSelected() ) {
452 QString filename = it.current()->text(3); 452 QString filename = it.current()->text(3);
453 453
454 DocLnk lnk; 454 DocLnk lnk;
455 lnk.setName( QFileInfo( filename ).baseName() ); //sets name 455 lnk.setName( QFileInfo( filename ).baseName() ); //sets name
456 lnk.setFile( filename ); //sets file name 456 lnk.setFile( filename ); //sets file name
457 457
458 d->selectedFiles->addToSelection( lnk ); 458 d->selectedFiles->addToSelection( lnk );
459 } 459 }
460 460
461 currentFileListView->clearSelection(); 461 currentFileListView->clearSelection();
462 462
463 writeCurrentM3u(); 463 writeCurrentM3u();
464} 464}
465 465
466 466
467void PlayListWidget::removeSelected() { 467void PlayListWidget::removeSelected() {
468 d->selectedFiles->removeSelected( ); 468 d->selectedFiles->removeSelected( );
469 writeCurrentM3u(); 469 writeCurrentM3u();
470} 470}
471 471
472 472
473void PlayListWidget::playIt( QListViewItem *it) { 473void PlayListWidget::playIt( QListViewItem *it) {
474 if(!it) return; 474 if(!it) return;
475 mediaPlayerState->setPlaying(FALSE); 475 mediaPlayerState->setPlaying(FALSE);
476 mediaPlayerState->setPlaying(TRUE); 476 mediaPlayerState->setPlaying(TRUE);
477 d->selectedFiles->unSelect(); 477 d->selectedFiles->unSelect();
478} 478}
479 479
480 480
481void PlayListWidget::addToSelection( QListViewItem *it) { 481void PlayListWidget::addToSelection( QListViewItem *it) {
482 d->setDocumentUsed = FALSE; 482 d->setDocumentUsed = FALSE;
483 483
484 if(it) { 484 if(it) {
485 if ( currentTab() == CurrentPlayList ) 485 if ( currentTab() == CurrentPlayList )
486 return; 486 return;
487 DocLnk lnk; 487 DocLnk lnk;
488 QString filename; 488 QString filename;
489 489
490 filename=it->text(3); 490 filename=it->text(3);
491 lnk.setName( QFileInfo(filename).baseName() ); //sets name 491 lnk.setName( QFileInfo(filename).baseName() ); //sets name
492 lnk.setFile( filename ); //sets file name 492 lnk.setFile( filename ); //sets file name
493 d->selectedFiles->addToSelection( lnk); 493 d->selectedFiles->addToSelection( lnk);
494 494
495 writeCurrentM3u(); 495 writeCurrentM3u();
496// tabWidget->setCurrentPage(0); 496// tabWidget->setCurrentPage(0);
497 497
498 } 498 }
499} 499}
500 500
501 501
502void PlayListWidget::tabChanged(QWidget *) { 502void PlayListWidget::tabChanged(QWidget *) {
503 503
504 d->tbPlay->setEnabled( true ); 504 d->tbPlay->setEnabled( true );
505 505
506 disconnect( audioView, SIGNAL( itemsSelected( bool ) ), 506 disconnect( audioView, SIGNAL( itemsSelected(bool) ),
507 d->tbPlay, SLOT( setEnabled( bool ) ) ); 507 d->tbPlay, SLOT( setEnabled(bool) ) );
508 disconnect( videoView, SIGNAL( itemsSelected( bool ) ), 508 disconnect( videoView, SIGNAL( itemsSelected(bool) ),
509 d->tbPlay, SLOT( setEnabled( bool ) ) ); 509 d->tbPlay, SLOT( setEnabled(bool) ) );
510 510
511 currentFileListView = 0; 511 currentFileListView = 0;
512 512
513 switch ( currentTab() ) { 513 switch ( currentTab() ) {
514 case CurrentPlayList: 514 case CurrentPlayList:
515 { 515 {
516 if( !tbDeletePlaylist->isHidden() ) { 516 if( !tbDeletePlaylist->isHidden() ) {
517 tbDeletePlaylist->hide(); 517 tbDeletePlaylist->hide();
518 } 518 }
519 d->tbRemoveFromList->setEnabled(TRUE); 519 d->tbRemoveFromList->setEnabled(TRUE);
520 d->tbAddToList->setEnabled(FALSE); 520 d->tbAddToList->setEnabled(FALSE);
521 521
522 d->tbPlay->setEnabled( !d->selectedFiles->isEmpty() ); 522 d->tbPlay->setEnabled( !d->selectedFiles->isEmpty() );
523 } 523 }
524 break; 524 break;
525 case AudioFiles: 525 case AudioFiles:
526 { 526 {
527 audioView->populateView(); 527 audioView->populateView();
528 528
529 if( !tbDeletePlaylist->isHidden() ) { 529 if( !tbDeletePlaylist->isHidden() ) {
530 tbDeletePlaylist->hide(); 530 tbDeletePlaylist->hide();
531 } 531 }
532 d->tbRemoveFromList->setEnabled(FALSE); 532 d->tbRemoveFromList->setEnabled(FALSE);
533 d->tbAddToList->setEnabled(TRUE); 533 d->tbAddToList->setEnabled(TRUE);
534 534
535 connect( audioView, SIGNAL( itemsSelected( bool ) ), 535 connect( audioView, SIGNAL( itemsSelected(bool) ),
536 d->tbPlay, SLOT( setEnabled( bool ) ) ); 536 d->tbPlay, SLOT( setEnabled(bool) ) );
537 537
538 d->tbPlay->setEnabled( audioView->hasSelection() ); 538 d->tbPlay->setEnabled( audioView->hasSelection() );
539 539
540 currentFileListView = audioView; 540 currentFileListView = audioView;
541 } 541 }
542 break; 542 break;
543 case VideoFiles: 543 case VideoFiles:
544 { 544 {
545 videoView->populateView(); 545 videoView->populateView();
546 if( !tbDeletePlaylist->isHidden() ) { 546 if( !tbDeletePlaylist->isHidden() ) {
547 tbDeletePlaylist->hide(); 547 tbDeletePlaylist->hide();
548 } 548 }
549 d->tbRemoveFromList->setEnabled(FALSE); 549 d->tbRemoveFromList->setEnabled(FALSE);
550 d->tbAddToList->setEnabled(TRUE); 550 d->tbAddToList->setEnabled(TRUE);
551 551
552 connect( videoView, SIGNAL( itemsSelected( bool ) ), 552 connect( videoView, SIGNAL( itemsSelected(bool) ),
553 d->tbPlay, SLOT( setEnabled( bool ) ) ); 553 d->tbPlay, SLOT( setEnabled(bool) ) );
554 554
555 d->tbPlay->setEnabled( videoView->hasSelection() ); 555 d->tbPlay->setEnabled( videoView->hasSelection() );
556 556
557 currentFileListView = videoView; 557 currentFileListView = videoView;
558 } 558 }
559 break; 559 break;
560 case PlayLists: 560 case PlayLists:
561 { 561 {
562 if( tbDeletePlaylist->isHidden() ) { 562 if( tbDeletePlaylist->isHidden() ) {
563 tbDeletePlaylist->show(); 563 tbDeletePlaylist->show();
564 } 564 }
565 playLists->reread(); 565 playLists->reread();
566 d->tbAddToList->setEnabled(FALSE); 566 d->tbAddToList->setEnabled(FALSE);
567 567
568 d->tbPlay->setEnabled( false ); 568 d->tbPlay->setEnabled( false );
569 } 569 }
570 break; 570 break;
571 }; 571 };
572} 572}
573 573
574 574
575void PlayListWidget::btnPlay(bool b) { 575void PlayListWidget::btnPlay(bool b) {
576// mediaPlayerState->setPlaying(false); 576// mediaPlayerState->setPlaying(false);
577 mediaPlayerState->setPlaying(b); 577 mediaPlayerState->setPlaying(b);
578 insanityBool=FALSE; 578 insanityBool=FALSE;
579} 579}
580 580
581void PlayListWidget::deletePlaylist() { 581void PlayListWidget::deletePlaylist() {
582 switch( QMessageBox::information( this, (tr("Remove Playlist?")), 582 switch( QMessageBox::information( this, (tr("Remove Playlist?")),
583 (tr("You really want to delete\nthis playlist?")), 583 (tr("You really want to delete\nthis playlist?")),
584 (tr("Yes")), (tr("No")), 0 )){ 584 (tr("Yes")), (tr("No")), 0 )){
585 case 0: // Yes clicked, 585 case 0: // Yes clicked,
586 QFile().remove(playLists->selectedDocument().file()); 586 QFile().remove(playLists->selectedDocument().file());
587 QFile().remove(playLists->selectedDocument().linkFile()); 587 QFile().remove(playLists->selectedDocument().linkFile());
588 playLists->reread(); 588 playLists->reread();
589 break; 589 break;
590 case 1: // Cancel 590 case 1: // Cancel
591 break; 591 break;
592 }; 592 };
593} 593}
594 594
595 595
596void PlayListWidget::playSelected() { 596void PlayListWidget::playSelected() {
597 btnPlay( TRUE); 597 btnPlay( TRUE);
598} 598}
599 599
600bool PlayListWidget::inFileListMode() const 600bool PlayListWidget::inFileListMode() const
601{ 601{
602 TabType tab = currentTab(); 602 TabType tab = currentTab();
603 return tab == AudioFiles || tab == VideoFiles; 603 return tab == AudioFiles || tab == VideoFiles;
604} 604}
605 605
606void PlayListWidget::openURL() { 606void PlayListWidget::openURL() {
607 // http://66.28.164.33:2080 607 // http://66.28.164.33:2080
608 // http://somafm.com/star0242.m3u 608 // http://somafm.com/star0242.m3u
609 QString filename, name; 609 QString filename, name;
610 InputDialog *fileDlg; 610 InputDialog *fileDlg;
611 fileDlg = new InputDialog(this,tr("Add URL"),TRUE, 0); 611 fileDlg = new InputDialog(this,tr("Add URL"),TRUE, 0);
612 fileDlg->exec(); 612 fileDlg->exec();
613 if( fileDlg->result() == 1 ) { 613 if( fileDlg->result() == 1 ) {
614 filename = fileDlg->text(); 614 filename = fileDlg->text();
615 qDebug( "Selected filename is " + filename ); 615 qDebug( "Selected filename is " + filename );
616 // Om3u *m3uList; 616 // Om3u *m3uList;
617 DocLnk lnk; 617 DocLnk lnk;
618 Config cfg( "OpiePlayer" ); 618 Config cfg( "OpiePlayer" );
619 cfg.setGroup("PlayList"); 619 cfg.setGroup("PlayList");
620 620
621 if(filename.left(4) == "http") { 621 if(filename.left(4) == "http") {
622 QString m3uFile, m3uFilePath; 622 QString m3uFile, m3uFilePath;
623 if(filename.find(":",8,TRUE) != -1) { //found a port 623 if(filename.find(":",8,TRUE) != -1) { //found a port
624 m3uFile = filename.left( filename.find( ":",8,TRUE)); 624 m3uFile = filename.left( filename.find( ":",8,TRUE));
625 m3uFile = m3uFile.right( 7); 625 m3uFile = m3uFile.right( 7);
626 } else if(filename.left(4) == "http"){ 626 } else if(filename.left(4) == "http"){
627 m3uFile=filename; 627 m3uFile=filename;
628 m3uFile = m3uFile.right( m3uFile.length() - 7); 628 m3uFile = m3uFile.right( m3uFile.length() - 7);
629 } else{ 629 } else{
630 m3uFile=filename; 630 m3uFile=filename;
631 } 631 }
632 632
633 lnk.setName( filename ); //sets name 633 lnk.setName( filename ); //sets name
634 lnk.setFile( filename ); //sets file name 634 lnk.setFile( filename ); //sets file name
635 635
636// lnk.setIcon("opieplayer2/musicfile"); 636// lnk.setIcon("opieplayer2/musicfile");
637 637
638 d->selectedFiles->addToSelection( lnk ); 638 d->selectedFiles->addToSelection( lnk );
639 writeCurrentM3u(); 639 writeCurrentM3u();
640 d->selectedFiles->setSelectedItem( lnk.name()); 640 d->selectedFiles->setSelectedItem( lnk.name());
641 } 641 }
642 else if( filename.right( 3) == "m3u" || filename.right(3) == "pls" ) { 642 else if( filename.right( 3) == "m3u" || filename.right(3) == "pls" ) {
643 readListFromFile( filename ); 643 readListFromFile( filename );
644 } else { 644 } else {
645 lnk.setName( QFileInfo(filename).baseName() ); //sets name 645 lnk.setName( QFileInfo(filename).baseName() ); //sets name
646 lnk.setFile( filename ); //sets file name 646 lnk.setFile( filename ); //sets file name
647 d->selectedFiles->addToSelection( lnk); 647 d->selectedFiles->addToSelection( lnk);
648 writeCurrentM3u(); 648 writeCurrentM3u();
649 d->selectedFiles->setSelectedItem( lnk.name()); 649 d->selectedFiles->setSelectedItem( lnk.name());
650 } 650 }
651 } 651 }
652 652
653 653
654 delete fileDlg; 654 delete fileDlg;
655} 655}
656 656
657 657
658void PlayListWidget::openFile() { 658void PlayListWidget::openFile() {
659 659
660 QString filename, name; 660 QString filename, name;
661 661
662 Config cfg( "OpiePlayer" ); 662 Config cfg( "OpiePlayer" );
663 cfg.setGroup("Dialog"); 663 cfg.setGroup("Dialog");
664 MimeTypes types; 664 MimeTypes types;
665 QStringList audio, video, all; 665 QStringList audio, video, all;
666 audio << "audio/*"; 666 audio << "audio/*";
667 audio << "playlist/plain"; 667 audio << "playlist/plain";
668 audio << "application/ogg"; 668 audio << "application/ogg";
669 audio << "audio/x-mpegurl"; 669 audio << "audio/x-mpegurl";
670 670
671 video << "video/*"; 671 video << "video/*";
672 video << "playlist/plain"; 672 video << "playlist/plain";
673 673
674 all += audio; 674 all += audio;
675 all += video; 675 all += video;
676 types.insert("All Media Files", all ); 676 types.insert("All Media Files", all );
677 types.insert("Audio", audio ); 677 types.insert("Audio", audio );
678 types.insert("Video", video ); 678 types.insert("Video", video );
679 679
680 QString str = OFileDialog::getOpenFileName( 1, 680 QString str = OFileDialog::getOpenFileName( 1,
681 cfg.readEntry("LastDirectory",QPEApplication::documentDir()),"", 681 cfg.readEntry("LastDirectory",QPEApplication::documentDir()),"",
682 types, 0 ); 682 types, 0 );
683 683
684 if(str.left(2) == "//") { 684 if(str.left(2) == "//") {
685 str=str.right(str.length()-1); 685 str=str.right(str.length()-1);
686 } 686 }
687 cfg.writeEntry( "LastDirectory" ,QFileInfo( str ).dirPath() ); 687 cfg.writeEntry( "LastDirectory" ,QFileInfo( str ).dirPath() );
688 688
689 if( !str.isEmpty() ) { 689 if( !str.isEmpty() ) {
690 690
691 qDebug( "Selected filename is " + str ); 691 qDebug( "Selected filename is " + str );
692 filename = str; 692 filename = str;
693 DocLnk lnk; 693 DocLnk lnk;
694 694
695 if( filename.right( 3) == "m3u" || filename.right(3) == "pls" ) { 695 if( filename.right( 3) == "m3u" || filename.right(3) == "pls" ) {
696 readListFromFile( filename ); 696 readListFromFile( filename );
697 } else { 697 } else {
698 lnk.setName( QFileInfo(filename).baseName() ); //sets name 698 lnk.setName( QFileInfo(filename).baseName() ); //sets name
699 lnk.setFile( filename ); //sets file name 699 lnk.setFile( filename ); //sets file name
700 d->selectedFiles->addToSelection( lnk ); 700 d->selectedFiles->addToSelection( lnk );
701 writeCurrentM3u(); 701 writeCurrentM3u();
702 d->selectedFiles->setSelectedItem( lnk.name() ); 702 d->selectedFiles->setSelectedItem( lnk.name() );
703 } 703 }
704 } 704 }
705} 705}
706 706
707 707
708void PlayListWidget::readListFromFile( const QString &filename ) { 708void PlayListWidget::readListFromFile( const QString &filename ) {
709 qDebug( "read list filename " + filename ); 709 qDebug( "read list filename " + filename );
710 QFileInfo fi(filename); 710 QFileInfo fi(filename);
711 Om3u *m3uList; 711 Om3u *m3uList;
712 QString s, name; 712 QString s, name;
713 m3uList = new Om3u( filename, IO_ReadOnly ); 713 m3uList = new Om3u( filename, IO_ReadOnly );
714 if(fi.extension(false).find("m3u",0,false) != -1 ) 714 if(fi.extension(false).find("m3u",0,false) != -1 )
715 m3uList->readM3u(); 715 m3uList->readM3u();
716 else if(fi.extension(false).find("pls",0,false) != -1 ) 716 else if(fi.extension(false).find("pls",0,false) != -1 )
717 m3uList->readPls(); 717 m3uList->readPls();
718 718
719 DocLnk lnk; 719 DocLnk lnk;
720 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) { 720 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) {
721 s = *it; 721 s = *it;
722 // qDebug(s); 722 // qDebug(s);
723 if(s.left(4)=="http") { 723 if(s.left(4)=="http") {
724 lnk.setName( s ); //sets file name 724 lnk.setName( s ); //sets file name
725 lnk.setIcon("opieplayer2/musicfile"); 725 lnk.setIcon("opieplayer2/musicfile");
726 lnk.setFile( s ); //sets file name 726 lnk.setFile( s ); //sets file name
727 727
728 } else { //is file 728 } else { //is file
729 lnk.setName( QFileInfo(s).baseName()); 729 lnk.setName( QFileInfo(s).baseName());
730 if(s.left(1) != "/") { 730 if(s.left(1) != "/") {
731 731
732 lnk.setFile( QFileInfo(filename).dirPath()+"/"+s); 732 lnk.setFile( QFileInfo(filename).dirPath()+"/"+s);
733 } else { 733 } else {
734 lnk.setFile( s); 734 lnk.setFile( s);
735 } 735 }
736 } 736 }
737 d->selectedFiles->addToSelection( lnk ); 737 d->selectedFiles->addToSelection( lnk );
738 } 738 }
739 Config config( "OpiePlayer" ); 739 Config config( "OpiePlayer" );
740 config.setGroup( "PlayList" ); 740 config.setGroup( "PlayList" );
741 741
742 config.writeEntry("CurrentPlaylist",filename); 742 config.writeEntry("CurrentPlaylist",filename);
743 config.write(); 743 config.write();
744 currentPlayList=filename; 744 currentPlayList=filename;
745 745
diff --git a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
index fec91ea..33fe188 100644
--- a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
@@ -1,194 +1,194 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 3
4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com> 5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU General Public 12:`=1 )Y*s>-.--   : the terms of the GNU General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; General Public License for more 22..}^=.=       =       ; General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = General Public License along with 26  -_. . .   )=.  = General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34 34
35#include <qtoolbar.h> 35#include <qtoolbar.h>
36#include <qpe/qpeapplication.h> 36#include <qpe/qpeapplication.h>
37 37
38#include <qlayout.h> 38#include <qlayout.h>
39#include <qmenubar.h> 39#include <qmenubar.h>
40 40
41#include "playlistselection.h" 41#include "playlistselection.h"
42#include "playlistwidget.h" 42#include "playlistwidget.h"
43#include "mediaplayerstate.h" 43#include "mediaplayerstate.h"
44#include "inputDialog.h" 44#include "inputDialog.h"
45#include "playlistfileview.h" 45#include "playlistfileview.h"
46 46
47#include "mediaplayerstate.h" 47#include "mediaplayerstate.h"
48 48
49PlayListWidgetGui::PlayListWidgetGui(QWidget* parent, const char* name ) 49PlayListWidgetGui::PlayListWidgetGui(QWidget* parent, const char* name )
50 : QMainWindow( parent, name ) { 50 : QMainWindow( parent, name ) {
51 51
52 d = new PlayListWidgetPrivate; 52 d = new PlayListWidgetPrivate;
53 d->setDocumentUsed = FALSE; 53 d->setDocumentUsed = FALSE;
54 54
55 setBackgroundMode( PaletteButton ); 55 setBackgroundMode( PaletteButton );
56 setToolBarsMovable( FALSE ); 56 setToolBarsMovable( FALSE );
57 57
58 // Create Toolbar 58 // Create Toolbar
59 QToolBar *toolbar = new QToolBar( this ); 59 QToolBar *toolbar = new QToolBar( this );
60 toolbar->setHorizontalStretchable( TRUE ); 60 toolbar->setHorizontalStretchable( TRUE );
61 61
62 // Create Menubar 62 // Create Menubar
63 QMenuBar *menu = new QMenuBar( toolbar ); 63 QMenuBar *menu = new QMenuBar( toolbar );
64 menu->setMargin( 0 ); 64 menu->setMargin( 0 );
65 65
66 bar = new QToolBar( this ); 66 bar = new QToolBar( this );
67 bar->setLabel( tr( "Play Operations" ) ); 67 bar->setLabel( tr( "Play Operations" ) );
68 68
69 tbDeletePlaylist = new QPushButton( Resource::loadIconSet( "trash" ), "", bar, "close" ); 69 tbDeletePlaylist = new QPushButton( Resource::loadIconSet( "trash" ), "", bar, "close" );
70 tbDeletePlaylist->setFlat( TRUE ); 70 tbDeletePlaylist->setFlat( TRUE );
71 tbDeletePlaylist->setFixedSize( 20, 20 ); 71 tbDeletePlaylist->setFixedSize( 20, 20 );
72 72
73 tbDeletePlaylist->hide(); 73 tbDeletePlaylist->hide();
74 74
75 pmPlayList = new QPopupMenu( this ); 75 pmPlayList = new QPopupMenu( this );
76 menu->insertItem( tr( "File" ), pmPlayList ); 76 menu->insertItem( tr( "File" ), pmPlayList );
77 77
78 pmView = new QPopupMenu( this ); 78 pmView = new QPopupMenu( this );
79 menu->insertItem( tr( "View" ), pmView ); 79 menu->insertItem( tr( "View" ), pmView );
80 pmView->isCheckable(); 80 pmView->isCheckable();
81 81
82 skinsMenu = new QPopupMenu( this ); 82 skinsMenu = new QPopupMenu( this );
83 pmView->insertItem( tr( "Skins" ), skinsMenu ); 83 pmView->insertItem( tr( "Skins" ), skinsMenu );
84 skinsMenu->isCheckable(); 84 skinsMenu->isCheckable();
85 85
86 gammaMenu = new QPopupMenu( this ); 86 gammaMenu = new QPopupMenu( this );
87 pmView->insertItem( tr( "Gamma (Video)" ), gammaMenu ); 87 pmView->insertItem( tr( "Gamma (Video)" ), gammaMenu );
88 88
89 gammaSlider = new QSlider( QSlider::Vertical, gammaMenu ); 89 gammaSlider = new QSlider( QSlider::Vertical, gammaMenu );
90 gammaSlider->setRange( -40, 40 ); 90 gammaSlider->setRange( -40, 40 );
91 gammaSlider->setTickmarks( QSlider::Left ); 91 gammaSlider->setTickmarks( QSlider::Left );
92 gammaSlider->setTickInterval( 20 ); 92 gammaSlider->setTickInterval( 20 );
93 gammaSlider->setFocusPolicy( QWidget::StrongFocus ); 93 gammaSlider->setFocusPolicy( QWidget::StrongFocus );
94 gammaSlider->setValue( 0 ); 94 gammaSlider->setValue( 0 );
95 gammaSlider->setMinimumHeight( 50 ); 95 gammaSlider->setMinimumHeight( 50 );
96 96
97 gammaLCD = new QLCDNumber( 3, gammaMenu ); 97 gammaLCD = new QLCDNumber( 3, gammaMenu );
98 gammaLCD-> setFrameShape ( QFrame::NoFrame ); 98 gammaLCD-> setFrameShape ( QFrame::NoFrame );
99 gammaLCD-> setSegmentStyle ( QLCDNumber::Flat ); 99 gammaLCD-> setSegmentStyle ( QLCDNumber::Flat );
100 100
101 gammaMenu->insertItem( gammaSlider ); 101 gammaMenu->insertItem( gammaSlider );
102 gammaMenu->insertItem( gammaLCD ); 102 gammaMenu->insertItem( gammaLCD );
103 103
104 connect( gammaSlider, SIGNAL( valueChanged( int ) ), gammaLCD, SLOT( display( int ) ) ); 104 connect( gammaSlider, SIGNAL( valueChanged(int) ), gammaLCD, SLOT( display(int) ) );
105 105
106 vbox5 = new QVBox( this ); 106 vbox5 = new QVBox( this );
107 QVBox *vbox4 = new QVBox( vbox5 ); 107 QVBox *vbox4 = new QVBox( vbox5 );
108 QHBox *hbox6 = new QHBox( vbox4 ); 108 QHBox *hbox6 = new QHBox( vbox4 );
109 109
110 tabWidget = new QTabWidget( hbox6, "tabWidget" ); 110 tabWidget = new QTabWidget( hbox6, "tabWidget" );
111 111
112 playListTab = new QWidget( tabWidget, "PlayListTab" ); 112 playListTab = new QWidget( tabWidget, "PlayListTab" );
113 tabWidget->insertTab( playListTab, "Playlist"); 113 tabWidget->insertTab( playListTab, "Playlist");
114 114
115 QGridLayout *Playout = new QGridLayout( playListTab ); 115 QGridLayout *Playout = new QGridLayout( playListTab );
116 Playout->setSpacing( 2); 116 Playout->setSpacing( 2);
117 Playout->setMargin( 2); 117 Playout->setMargin( 2);
118 118
119 // Add the playlist area 119 // Add the playlist area
120 QVBox *vbox3 = new QVBox( playListTab ); 120 QVBox *vbox3 = new QVBox( playListTab );
121 d->playListFrame = vbox3; 121 d->playListFrame = vbox3;
122 122
123 QHBox *hbox2 = new QHBox( vbox3 ); 123 QHBox *hbox2 = new QHBox( vbox3 );
124 d->selectedFiles = new PlayListSelection( hbox2 ); 124 d->selectedFiles = new PlayListSelection( hbox2 );
125 125
126 vbox1 = new QVBox( hbox2 ); 126 vbox1 = new QVBox( hbox2 );
127 QPEApplication::setStylusOperation( d->selectedFiles->viewport(), QPEApplication::RightOnHold ); 127 QPEApplication::setStylusOperation( d->selectedFiles->viewport(), QPEApplication::RightOnHold );
128 QVBox *stretch1 = new QVBox( vbox1 ); // add stretch 128 QVBox *stretch1 = new QVBox( vbox1 ); // add stretch
129 129
130 Playout->addMultiCellWidget( vbox3, 0, 0, 0, 1 ); 130 Playout->addMultiCellWidget( vbox3, 0, 0, 0, 1 );
131 131
132 QWidget *aTab; 132 QWidget *aTab;
133 aTab = new QWidget( tabWidget, "aTab" ); 133 aTab = new QWidget( tabWidget, "aTab" );
134 134
135 QGridLayout *Alayout = new QGridLayout( aTab ); 135 QGridLayout *Alayout = new QGridLayout( aTab );
136 Alayout->setSpacing( 2 ); 136 Alayout->setSpacing( 2 );
137 Alayout->setMargin( 2 ); 137 Alayout->setMargin( 2 );
138 // no m3u's here please 138 // no m3u's here please
139 audioView = new PlayListFileView( "audio/mpeg;audio/x-wav;application/ogg", "opieplayer2/musicfile", aTab, "Audioview" ); 139 audioView = new PlayListFileView( "audio/mpeg;audio/x-wav;application/ogg", "opieplayer2/musicfile", aTab, "Audioview" );
140 Alayout->addMultiCellWidget( audioView, 0, 0, 0, 1 ); 140 Alayout->addMultiCellWidget( audioView, 0, 0, 0, 1 );
141 tabWidget->insertTab( aTab, tr( "Audio" ) ); 141 tabWidget->insertTab( aTab, tr( "Audio" ) );
142 142
143 QPEApplication::setStylusOperation( audioView->viewport(), QPEApplication::RightOnHold ); 143 QPEApplication::setStylusOperation( audioView->viewport(), QPEApplication::RightOnHold );
144 144
145 QWidget *vTab; 145 QWidget *vTab;
146 vTab = new QWidget( tabWidget, "vTab" ); 146 vTab = new QWidget( tabWidget, "vTab" );
147 147
148 QGridLayout *Vlayout = new QGridLayout( vTab ); 148 QGridLayout *Vlayout = new QGridLayout( vTab );
149 Vlayout->setSpacing( 2 ); 149 Vlayout->setSpacing( 2 );
150 Vlayout->setMargin( 2 ); 150 Vlayout->setMargin( 2 );
151 videoView = new PlayListFileView( "video/*", "opieplayer2/videofile", vTab, "Videoview" ); 151 videoView = new PlayListFileView( "video/*", "opieplayer2/videofile", vTab, "Videoview" );
152 Vlayout->addMultiCellWidget( videoView, 0, 0, 0, 1 ); 152 Vlayout->addMultiCellWidget( videoView, 0, 0, 0, 1 );
153 153
154 QPEApplication::setStylusOperation( videoView->viewport(), QPEApplication::RightOnHold ); 154 QPEApplication::setStylusOperation( videoView->viewport(), QPEApplication::RightOnHold );
155 155
156 tabWidget->insertTab( vTab, tr( "Video" ) ); 156 tabWidget->insertTab( vTab, tr( "Video" ) );
157 157
158 //playlists list 158 //playlists list
159 QWidget *LTab; 159 QWidget *LTab;
160 LTab = new QWidget( tabWidget, "LTab" ); 160 LTab = new QWidget( tabWidget, "LTab" );
161 QGridLayout *Llayout = new QGridLayout( LTab ); 161 QGridLayout *Llayout = new QGridLayout( LTab );
162 Llayout->setSpacing( 2 ); 162 Llayout->setSpacing( 2 );
163 Llayout->setMargin( 2 ); 163 Llayout->setMargin( 2 );
164 164
165 playLists = new FileSelector( "playlist/plain;audio/x-mpegurl", LTab, "fileselector" , FALSE, FALSE ); 165 playLists = new FileSelector( "playlist/plain;audio/x-mpegurl", LTab, "fileselector" , FALSE, FALSE );
166 Llayout->addMultiCellWidget( playLists, 0, 0, 0, 1 ); 166 Llayout->addMultiCellWidget( playLists, 0, 0, 0, 1 );
167 167
168 tabWidget->insertTab( LTab, tr( "Lists" ) ); 168 tabWidget->insertTab( LTab, tr( "Lists" ) );
169 169
170 setCentralWidget( vbox5 ); 170 setCentralWidget( vbox5 );
171} 171}
172 172
173 173
174 174
175PlayListWidgetGui::~PlayListWidgetGui() { 175PlayListWidgetGui::~PlayListWidgetGui() {
176} 176}
177 177
178void PlayListWidgetGui::setView( char view ) { 178void PlayListWidgetGui::setView( char view ) {
179 if ( view == 'l' ) 179 if ( view == 'l' )
180 showMaximized(); 180 showMaximized();
181 else 181 else
182 hide(); 182 hide();
183} 183}
184 184
185 185
186void PlayListWidgetGui::setActiveWindow() { 186void PlayListWidgetGui::setActiveWindow() {
187 // qDebug("SETTING active window"); 187 // qDebug("SETTING active window");
188 // When we get raised we need to ensure that it switches views 188 // When we get raised we need to ensure that it switches views
189 MediaPlayerState::DisplayType origDisplayType = mediaPlayerState->displayType(); 189 MediaPlayerState::DisplayType origDisplayType = mediaPlayerState->displayType();
190 mediaPlayerState->setDisplayType( MediaPlayerState::MediaSelection ); // invalidate 190 mediaPlayerState->setDisplayType( MediaPlayerState::MediaSelection ); // invalidate
191 mediaPlayerState->setDisplayType( origDisplayType ); // now switch back 191 mediaPlayerState->setDisplayType( origDisplayType ); // now switch back
192} 192}
193 193
194 194
diff --git a/noncore/multimedia/opieplayer2/threadutil.cpp b/noncore/multimedia/opieplayer2/threadutil.cpp
index ff38b1e..fb951b4 100644
--- a/noncore/multimedia/opieplayer2/threadutil.cpp
+++ b/noncore/multimedia/opieplayer2/threadutil.cpp
@@ -51,344 +51,344 @@ Mutex::~Mutex()
51{ 51{
52 delete d; 52 delete d;
53} 53}
54 54
55void Mutex::lock() 55void Mutex::lock()
56{ 56{
57 pthread_mutex_lock( &d->mutex ); 57 pthread_mutex_lock( &d->mutex );
58} 58}
59 59
60void Mutex::unlock() 60void Mutex::unlock()
61{ 61{
62 pthread_mutex_unlock( &d->mutex ); 62 pthread_mutex_unlock( &d->mutex );
63} 63}
64 64
65bool Mutex::tryLock() 65bool Mutex::tryLock()
66{ 66{
67 return pthread_mutex_trylock( &d->mutex ) == 0; 67 return pthread_mutex_trylock( &d->mutex ) == 0;
68} 68}
69 69
70bool Mutex::isLocked() 70bool Mutex::isLocked()
71{ 71{
72 if ( !tryLock() ) 72 if ( !tryLock() )
73 return true; 73 return true;
74 74
75 unlock(); 75 unlock();
76 return false; 76 return false;
77} 77}
78 78
79struct WaitCondition::Data 79struct WaitCondition::Data
80{ 80{
81 Data() 81 Data()
82 { 82 {
83 int result = pthread_cond_init( &waitCondition, 0 ); 83 int result = pthread_cond_init( &waitCondition, 0 );
84 assert( result == 0 ); 84 assert( result == 0 );
85 } 85 }
86 ~Data() 86 ~Data()
87 { 87 {
88 pthread_cond_destroy( &waitCondition ); 88 pthread_cond_destroy( &waitCondition );
89 } 89 }
90 90
91 pthread_cond_t waitCondition; 91 pthread_cond_t waitCondition;
92}; 92};
93 93
94WaitCondition::WaitCondition() 94WaitCondition::WaitCondition()
95 : d( new Data ) 95 : d( new Data )
96{ 96{
97} 97}
98 98
99WaitCondition::~WaitCondition() 99WaitCondition::~WaitCondition()
100{ 100{
101 delete d; 101 delete d;
102} 102}
103 103
104bool WaitCondition::wait() 104bool WaitCondition::wait()
105{ 105{
106 Mutex m; 106 Mutex m;
107 m.lock(); 107 m.lock();
108 return wait( m ); 108 return wait( m );
109} 109}
110 110
111bool WaitCondition::wait( Mutex &mutex ) 111bool WaitCondition::wait( Mutex &mutex )
112{ 112{
113 return pthread_cond_wait( &d->waitCondition, &mutex.d->mutex ); 113 return pthread_cond_wait( &d->waitCondition, &mutex.d->mutex );
114} 114}
115 115
116void WaitCondition::wakeOne() 116void WaitCondition::wakeOne()
117{ 117{
118 pthread_cond_signal( &d->waitCondition ); 118 pthread_cond_signal( &d->waitCondition );
119} 119}
120 120
121void WaitCondition::wakeAll() 121void WaitCondition::wakeAll()
122{ 122{
123 pthread_cond_broadcast( &d->waitCondition ); 123 pthread_cond_broadcast( &d->waitCondition );
124} 124}
125 125
126struct Thread::Data 126struct Thread::Data
127{ 127{
128 Data() : isRunning( false ) 128 Data() : isRunning( false )
129 {} 129 {}
130 130
131 pthread_t self; 131 pthread_t self;
132 Mutex guard; 132 Mutex guard;
133 bool isRunning; 133 bool isRunning;
134 134
135 WaitCondition finishCondition; 135 WaitCondition finishCondition;
136 136
137 Thread *thr; 137 Thread *thr;
138 138
139 void run() { thr->run(); } 139 void run() { thr->run(); }
140}; 140};
141 141
142extern "C" 142extern "C"
143{ 143{
144 144
145static void terminate_thread( void *arg ) 145static void terminate_thread( void *arg )
146{ 146{
147 Thread::Data *data = ( Thread::Data* )arg; 147 Thread::Data *data = ( Thread::Data* )arg;
148 148
149 assert( data ); 149 assert( data );
150 150
151 AutoLock locker( data->guard ); 151 AutoLock locker( data->guard );
152 data->isRunning = false; 152 data->isRunning = false;
153 data->finishCondition.wakeAll(); 153 data->finishCondition.wakeAll();
154} 154}
155 155
156static void *start_thread( void *arg ) 156static void *start_thread( void *arg )
157{ 157{
158 Thread::Data *data = ( Thread::Data* )arg; 158 Thread::Data *data = ( Thread::Data* )arg;
159 159
160 pthread_cleanup_push( terminate_thread, data ); 160 pthread_cleanup_push( terminate_thread, data );
161 161
162 data->isRunning = true; 162 data->isRunning = true;
163 data->run(); 163 data->run();
164 164
165 pthread_cleanup_pop( true ); 165 pthread_cleanup_pop( true );
166 166
167 Thread::exit(); 167 Thread::exit();
168 return 0; // never reached 168 return 0; // never reached
169} 169}
170 170
171} 171}
172 172
173Thread::Thread() 173Thread::Thread()
174 : d( new Data ) 174 : d( new Data )
175{ 175{
176 d->thr = this; 176 d->thr = this;
177} 177}
178 178
179Thread::~Thread() 179Thread::~Thread()
180{ 180{
181 assert( d->isRunning == false ); 181 assert( d->isRunning == false );
182 delete d; 182 delete d;
183} 183}
184 184
185void Thread::start() 185void Thread::start()
186{ 186{
187 AutoLock lock( d->guard ); 187 AutoLock lock( d->guard );
188 188
189 if ( d->isRunning ) { 189 if ( d->isRunning ) {
190 qDebug( "ThreadUtil::Thread::start() called for running thread." ); 190 qDebug( "ThreadUtil::Thread::start() called for running thread." );
191 return; 191 return;
192 } 192 }
193 193
194 pthread_attr_t attributes; 194 pthread_attr_t attributes;
195 pthread_attr_init( &attributes ); 195 pthread_attr_init( &attributes );
196 pthread_attr_setscope( &attributes, PTHREAD_SCOPE_SYSTEM ); 196 pthread_attr_setscope( &attributes, PTHREAD_SCOPE_SYSTEM );
197 int err = pthread_create( &d->self, &attributes, start_thread, ( void* )d ); 197 int err = pthread_create( &d->self, &attributes, start_thread, ( void* )d );
198 if ( err != 0 ) { 198 if ( err != 0 ) {
199 qDebug( "ThreadUtil::Thread::start() : can't create thread: %s", strerror( err ) ); 199 qDebug( "ThreadUtil::Thread::start() : can't create thread: %s", strerror( err ) );
200 pthread_attr_destroy( &attributes ); 200 pthread_attr_destroy( &attributes );
201 return; 201 return;
202 } 202 }
203 pthread_attr_destroy( &attributes ); 203 pthread_attr_destroy( &attributes );
204} 204}
205 205
206void Thread::terminate() 206void Thread::terminate()
207{ 207{
208 AutoLock lock( d->guard ); 208 AutoLock lock( d->guard );
209 if ( !d->isRunning ) 209 if ( !d->isRunning )
210 return; 210 return;
211 211
212 pthread_cancel( d->self ); 212 pthread_cancel( d->self );
213} 213}
214 214
215bool Thread::wait() 215bool Thread::wait()
216{ 216{
217 AutoLock lock( d->guard ); 217 AutoLock lock( d->guard );
218 if ( !d->isRunning ) 218 if ( !d->isRunning )
219 return true; 219 return true;
220 220
221 return d->finishCondition.wait( d->guard ); 221 return d->finishCondition.wait( d->guard );
222} 222}
223 223
224bool Thread::isRunning() const 224bool Thread::isRunning() const
225{ 225{
226 AutoLock lock( d->guard ); 226 AutoLock lock( d->guard );
227 return d->isRunning; 227 return d->isRunning;
228} 228}
229 229
230void Thread::exit() 230void Thread::exit()
231{ 231{
232 pthread_exit( 0 ); 232 pthread_exit( 0 );
233} 233}
234 234
235OnewayNotifier::OnewayNotifier() 235OnewayNotifier::OnewayNotifier()
236{ 236{
237 int fds[ 2 ]; 237 int fds[ 2 ];
238 pipe( fds ); 238 pipe( fds );
239 m_readFd = fds[ 0 ]; 239 m_readFd = fds[ 0 ];
240 m_writeFd = fds[ 1 ]; 240 m_writeFd = fds[ 1 ];
241 241
242 m_notifier = new QSocketNotifier( m_readFd, QSocketNotifier::Read ); 242 m_notifier = new QSocketNotifier( m_readFd, QSocketNotifier::Read );
243 connect( m_notifier, SIGNAL( activated( int ) ), 243 connect( m_notifier, SIGNAL( activated(int) ),
244 this, SLOT( wakeUp() ) ); 244 this, SLOT( wakeUp() ) );
245} 245}
246 246
247OnewayNotifier::~OnewayNotifier() 247OnewayNotifier::~OnewayNotifier()
248{ 248{
249 delete m_notifier; 249 delete m_notifier;
250 250
251 ::close( m_readFd ); 251 ::close( m_readFd );
252 ::close( m_writeFd ); 252 ::close( m_writeFd );
253} 253}
254 254
255void OnewayNotifier::notify() 255void OnewayNotifier::notify()
256{ 256{
257 const char c = 42; 257 const char c = 42;
258 ::write( m_writeFd, &c, 1 ); 258 ::write( m_writeFd, &c, 1 );
259} 259}
260 260
261void OnewayNotifier::wakeUp() 261void OnewayNotifier::wakeUp()
262{ 262{
263 char c = 0; 263 char c = 0;
264 264
265 if ( ::read( m_readFd, &c, 1 ) != 1 ) 265 if ( ::read( m_readFd, &c, 1 ) != 1 )
266 return; 266 return;
267 267
268 emit awake(); 268 emit awake();
269} 269}
270 270
271ChannelMessage::ChannelMessage( int type ) 271ChannelMessage::ChannelMessage( int type )
272 : m_type( type ), m_isCall( false ), m_replied( false ), 272 : m_type( type ), m_isCall( false ), m_replied( false ),
273 m_inEventHandler( false ) 273 m_inEventHandler( false )
274{ 274{
275} 275}
276 276
277ChannelMessage::~ChannelMessage() 277ChannelMessage::~ChannelMessage()
278{ 278{
279 if ( m_guard.isLocked() ) 279 if ( m_guard.isLocked() )
280 m_guard.unlock(); 280 m_guard.unlock();
281} 281}
282 282
283void ChannelMessage::reply() 283void ChannelMessage::reply()
284{ 284{
285 if ( !m_isCall ) 285 if ( !m_isCall )
286 { 286 {
287 qDebug( "ChannelMessage::reply() - can't reply oneway message!" ); 287 qDebug( "ChannelMessage::reply() - can't reply oneway message!" );
288 return; 288 return;
289 } 289 }
290 290
291 if ( m_inEventHandler ) 291 if ( m_inEventHandler )
292 { 292 {
293 m_replied = true; 293 m_replied = true;
294 return; 294 return;
295 } 295 }
296 296
297 m_condition.wakeOne(); 297 m_condition.wakeOne();
298 m_guard.unlock(); 298 m_guard.unlock();
299} 299}
300 300
301struct Channel::Private 301struct Channel::Private
302{ 302{
303 Private() 303 Private()
304 { 304 {
305 ownerThread = pthread_self(); 305 ownerThread = pthread_self();
306 } 306 }
307 307
308 pthread_t ownerThread; 308 pthread_t ownerThread;
309}; 309};
310 310
311Channel::Channel( QObject *parent, const char *name ) 311Channel::Channel( QObject *parent, const char *name )
312 : QObject( parent, name ), d( new Private ) 312 : QObject( parent, name ), d( new Private )
313{ 313{
314 connect( &m_notifier, SIGNAL( awake() ), 314 connect( &m_notifier, SIGNAL( awake() ),
315 this, SLOT( deliver() ) ); 315 this, SLOT( deliver() ) );
316} 316}
317 317
318Channel::~Channel() 318Channel::~Channel()
319{ 319{
320 delete d; 320 delete d;
321} 321}
322 322
323void Channel::send( ChannelMessage *message, SendType type ) 323void Channel::send( ChannelMessage *message, SendType type )
324{ 324{
325 if ( type == WaitForReply ) 325 if ( type == WaitForReply )
326 { 326 {
327 message->m_guard.lock(); 327 message->m_guard.lock();
328 message->m_isCall = true; 328 message->m_isCall = true;
329 } 329 }
330 330
331 m_pendingMessagesGuard.lock(); 331 m_pendingMessagesGuard.lock();
332 m_pendingMessages << MsgEnvelope( type, message ); 332 m_pendingMessages << MsgEnvelope( type, message );
333 m_pendingMessagesGuard.unlock(); 333 m_pendingMessagesGuard.unlock();
334 334
335 if ( d->ownerThread == pthread_self() ) { 335 if ( d->ownerThread == pthread_self() ) {
336 assert( type != WaitForReply ); 336 assert( type != WaitForReply );
337 337
338 deliver(); 338 deliver();
339 } 339 }
340 else 340 else
341 m_notifier.notify(); 341 m_notifier.notify();
342 //QThread::postEvent( this, new QCustomEvent( QEvent::User, envelope ) ); 342 //QThread::postEvent( this, new QCustomEvent( QEvent::User, envelope ) );
343 343
344 if ( type == WaitForReply ) 344 if ( type == WaitForReply )
345 { 345 {
346 message->m_condition.wait( message->m_guard ); 346 message->m_condition.wait( message->m_guard );
347 message->m_guard.unlock(); 347 message->m_guard.unlock();
348 } 348 }
349} 349}
350 350
351void Channel::deliver() 351void Channel::deliver()
352{ 352{
353 AutoLock lock( m_pendingMessagesGuard ); 353 AutoLock lock( m_pendingMessagesGuard );
354 354
355 while ( !m_pendingMessages.isEmpty() ) { 355 while ( !m_pendingMessages.isEmpty() ) {
356 MsgEnvelope envelope = m_pendingMessages.first(); 356 MsgEnvelope envelope = m_pendingMessages.first();
357 357
358 m_pendingMessages.remove( m_pendingMessages.begin() ); 358 m_pendingMessages.remove( m_pendingMessages.begin() );
359 359
360 m_pendingMessagesGuard.unlock(); 360 m_pendingMessagesGuard.unlock();
361 deliverOne( envelope ); 361 deliverOne( envelope );
362 m_pendingMessagesGuard.lock(); 362 m_pendingMessagesGuard.lock();
363 } 363 }
364} 364}
365 365
366void Channel::deliverOne( const MsgEnvelope &envelope ) 366void Channel::deliverOne( const MsgEnvelope &envelope )
367{ 367{
368 ChannelMessage *msg = envelope.msg; 368 ChannelMessage *msg = envelope.msg;
369 369
370 assert( msg ); 370 assert( msg );
371 371
372 if ( envelope.type == WaitForReply ) 372 if ( envelope.type == WaitForReply )
373 { 373 {
374 msg->m_guard.lock(); 374 msg->m_guard.lock();
375 msg->m_inEventHandler = true; 375 msg->m_inEventHandler = true;
376 } 376 }
377 377
378 receiveMessage( msg, envelope.type ); 378 receiveMessage( msg, envelope.type );
379 379
380 if ( envelope.type == WaitForReply ) 380 if ( envelope.type == WaitForReply )
381 { 381 {
382 msg->m_inEventHandler = false; 382 msg->m_inEventHandler = false;
383 if ( msg->m_replied ) 383 if ( msg->m_replied )
384 { 384 {
385 msg->m_condition.wakeOne(); 385 msg->m_condition.wakeOne();
386 // this is a bit tricky. we unlock only when we reply. 386 // this is a bit tricky. we unlock only when we reply.
387 // reply() does an unlock as well. 387 // reply() does an unlock as well.
388 msg->m_guard.unlock(); 388 msg->m_guard.unlock();
389 } 389 }
390 } 390 }
391} 391}
392 392
393/* vim: et sw=4 ts=4 393/* vim: et sw=4 ts=4
394 */ 394 */
diff --git a/noncore/multimedia/opieplayer2/videowidget.cpp b/noncore/multimedia/opieplayer2/videowidget.cpp
index c829e03..a4d09f5 100644
--- a/noncore/multimedia/opieplayer2/videowidget.cpp
+++ b/noncore/multimedia/opieplayer2/videowidget.cpp
@@ -1,267 +1,267 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 3
4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com> 5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU General Public 12:`=1 )Y*s>-.--   : the terms of the GNU General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; Library General Public License for more 22..}^=.=       =       ; Library General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = Library General Public License along with 26  -_. . .   )=.  = Library General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#include "videowidget.h" 34#include "videowidget.h"
35#include "mediaplayerstate.h" 35#include "mediaplayerstate.h"
36#include "playlistwidget.h" 36#include "playlistwidget.h"
37 37
38 38
39#ifdef Q_WS_QWS 39#ifdef Q_WS_QWS
40# define USE_DIRECT_PAINTER 40# define USE_DIRECT_PAINTER
41# include <qdirectpainter_qws.h> 41# include <qdirectpainter_qws.h>
42# include <qgfxraster_qws.h> 42# include <qgfxraster_qws.h>
43#endif 43#endif
44 44
45 45
46namespace 46namespace
47{ 47{
48 48
49const int xo = 2; // movable x offset 49const int xo = 2; // movable x offset
50const int yo = 0; // movable y offset 50const int yo = 0; // movable y offset
51 51
52const MediaWidget::SkinButtonInfo skinInfo[] = 52const MediaWidget::SkinButtonInfo skinInfo[] =
53{ 53{
54 { MediaWidget::Play, "play", MediaWidget::ToggleButton }, 54 { MediaWidget::Play, "play", MediaWidget::ToggleButton },
55 { MediaWidget::Stop, "stop", MediaWidget::NormalButton }, 55 { MediaWidget::Stop, "stop", MediaWidget::NormalButton },
56 { MediaWidget::Next, "fwd", MediaWidget::NormalButton }, 56 { MediaWidget::Next, "fwd", MediaWidget::NormalButton },
57 { MediaWidget::Previous, "back", MediaWidget::NormalButton }, 57 { MediaWidget::Previous, "back", MediaWidget::NormalButton },
58 { MediaWidget::VolumeUp, "up", MediaWidget::NormalButton }, 58 { MediaWidget::VolumeUp, "up", MediaWidget::NormalButton },
59 { MediaWidget::VolumeDown, "down", MediaWidget::NormalButton }, 59 { MediaWidget::VolumeDown, "down", MediaWidget::NormalButton },
60 { MediaWidget::FullScreen, "full", MediaWidget::ToggleButton } 60 { MediaWidget::FullScreen, "full", MediaWidget::ToggleButton }
61}; 61};
62 62
63const uint buttonCount = sizeof( skinInfo ) / sizeof( skinInfo[ 0 ] ); 63const uint buttonCount = sizeof( skinInfo ) / sizeof( skinInfo[ 0 ] );
64 64
65} 65}
66 66
67VideoWidget::VideoWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name ) 67VideoWidget::VideoWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name )
68 : MediaWidget( playList, mediaPlayerState, parent, name ), scaledWidth( 0 ), scaledHeight( 0 ), videoSliderBeingMoved( false ) 68 : MediaWidget( playList, mediaPlayerState, parent, name ), scaledWidth( 0 ), scaledHeight( 0 ), videoSliderBeingMoved( false )
69{ 69{
70 setCaption( tr("OpiePlayer - Video") ); 70 setCaption( tr("OpiePlayer - Video") );
71 71
72 videoFrame = new XineVideoWidget ( this, "Video frame" ); 72 videoFrame = new XineVideoWidget ( this, "Video frame" );
73 73
74 connect ( videoFrame, SIGNAL( videoResized ( const QSize & )), this, SIGNAL( videoResized ( const QSize & ))); 74 connect ( videoFrame, SIGNAL( videoResized(const QSize&)), this, SIGNAL( videoResized(const QSize&)));
75 connect ( videoFrame, SIGNAL( clicked () ), this, SLOT ( backToNormal() ) ); 75 connect ( videoFrame, SIGNAL( clicked() ), this, SLOT ( backToNormal() ) );
76 76
77 slider = 0; 77 slider = 0;
78 78
79 loadSkin(); 79 loadSkin();
80 80
81 setLength( mediaPlayerState.length() ); 81 setLength( mediaPlayerState.length() );
82 setPosition( mediaPlayerState.position() ); 82 setPosition( mediaPlayerState.position() );
83 setFullscreen( mediaPlayerState.isFullscreen() ); 83 setFullscreen( mediaPlayerState.isFullscreen() );
84 setPlaying( mediaPlayerState.isPlaying() ); 84 setPlaying( mediaPlayerState.isPlaying() );
85} 85}
86 86
87 87
88VideoWidget::~VideoWidget() 88VideoWidget::~VideoWidget()
89{ 89{
90} 90}
91 91
92MediaWidget::GUIInfo VideoWidget::guiInfo() 92MediaWidget::GUIInfo VideoWidget::guiInfo()
93{ 93{
94 return GUIInfo( "V" /* infix */, ::skinInfo, ::buttonCount ); 94 return GUIInfo( "V" /* infix */, ::skinInfo, ::buttonCount );
95} 95}
96 96
97void VideoWidget::resizeEvent( QResizeEvent *e ) { 97void VideoWidget::resizeEvent( QResizeEvent *e ) {
98 int h = height(); 98 int h = height();
99 int w = width(); 99 int w = width();
100 //int Vh = 160; 100 //int Vh = 160;
101 //int Vw = 220; 101 //int Vw = 220;
102 102
103 slider->setFixedWidth( w - 20 ); 103 slider->setFixedWidth( w - 20 );
104 slider->setGeometry( QRect( 15, h - 22, w - 90, 20 ) ); 104 slider->setGeometry( QRect( 15, h - 22, w - 90, 20 ) );
105 slider->setBackgroundOrigin( QWidget::ParentOrigin ); 105 slider->setBackgroundOrigin( QWidget::ParentOrigin );
106 slider->setFocusPolicy( QWidget::NoFocus ); 106 slider->setFocusPolicy( QWidget::NoFocus );
107 slider->setBackgroundPixmap( backgroundPixmap ); 107 slider->setBackgroundPixmap( backgroundPixmap );
108 108
109 upperLeftOfButtonMask.rx() = 0;// ( imgUp->width() ) / 2; 109 upperLeftOfButtonMask.rx() = 0;// ( imgUp->width() ) / 2;
110 if(w>h) 110 if(w>h)
111 upperLeftOfButtonMask.ry() = 0; 111 upperLeftOfButtonMask.ry() = 0;
112 else 112 else
113 upperLeftOfButtonMask.ry() = 185;//(( Vh - imgUp->height() ) / 2) - 10; 113 upperLeftOfButtonMask.ry() = 185;//(( Vh - imgUp->height() ) / 2) - 10;
114 114
115 MediaWidget::resizeEvent( e ); 115 MediaWidget::resizeEvent( e );
116} 116}
117 117
118void VideoWidget::sliderPressed() { 118void VideoWidget::sliderPressed() {
119 videoSliderBeingMoved = TRUE; 119 videoSliderBeingMoved = TRUE;
120} 120}
121 121
122void VideoWidget::sliderReleased() { 122void VideoWidget::sliderReleased() {
123 videoSliderBeingMoved = FALSE; 123 videoSliderBeingMoved = FALSE;
124 if ( slider->width() == 0 ) { 124 if ( slider->width() == 0 ) {
125 return; 125 return;
126 } 126 }
127 long val = long((double)slider->value() * mediaPlayerState.length() / slider->width()); 127 long val = long((double)slider->value() * mediaPlayerState.length() / slider->width());
128 mediaPlayerState.setPosition( val ); 128 mediaPlayerState.setPosition( val );
129} 129}
130 130
131void VideoWidget::setPosition( long i ) { 131void VideoWidget::setPosition( long i ) {
132 updateSlider( i, mediaPlayerState.length() ); 132 updateSlider( i, mediaPlayerState.length() );
133} 133}
134 134
135 135
136void VideoWidget::setLength( long max ) { 136void VideoWidget::setLength( long max ) {
137 updateSlider( mediaPlayerState.position(), max ); 137 updateSlider( mediaPlayerState.position(), max );
138} 138}
139 139
140void VideoWidget::setDisplayType( MediaPlayerState::DisplayType displayType ) 140void VideoWidget::setDisplayType( MediaPlayerState::DisplayType displayType )
141{ 141{
142 if ( displayType == MediaPlayerState::Video ) { 142 if ( displayType == MediaPlayerState::Video ) {
143 makeVisible(); 143 makeVisible();
144 return; 144 return;
145 } 145 }
146 146
147 // Effectively blank the view next time we show it so it looks nicer 147 // Effectively blank the view next time we show it so it looks nicer
148 scaledWidth = 0; 148 scaledWidth = 0;
149 scaledHeight = 0; 149 scaledHeight = 0;
150 hide(); 150 hide();
151} 151}
152 152
153void VideoWidget::loadSkin() 153void VideoWidget::loadSkin()
154{ 154{
155 loadDefaultSkin( guiInfo() ); 155 loadDefaultSkin( guiInfo() );
156 156
157 delete slider; 157 delete slider;
158 slider = new QSlider( Qt::Horizontal, this ); 158 slider = new QSlider( Qt::Horizontal, this );
159 slider->setMinValue( 0 ); 159 slider->setMinValue( 0 );
160 slider->setMaxValue( 1 ); 160 slider->setMaxValue( 1 );
161 slider->setBackgroundPixmap( backgroundPixmap ); 161 slider->setBackgroundPixmap( backgroundPixmap );
162 //slider->setFocusPolicy( QWidget::NoFocus ); 162 //slider->setFocusPolicy( QWidget::NoFocus );
163 163
164 resizeEvent( 0 ); 164 resizeEvent( 0 );
165} 165}
166 166
167void VideoWidget::updateSlider( long i, long max ) { 167void VideoWidget::updateSlider( long i, long max ) {
168 // Will flicker too much if we don't do this 168 // Will flicker too much if we don't do this
169 if ( max == 0 ) { 169 if ( max == 0 ) {
170 return; 170 return;
171 } 171 }
172 int width = slider->width(); 172 int width = slider->width();
173 int val = int((double)i * width / max); 173 int val = int((double)i * width / max);
174 if ( !mediaPlayerState.isFullscreen() && !videoSliderBeingMoved ) { 174 if ( !mediaPlayerState.isFullscreen() && !videoSliderBeingMoved ) {
175 if ( slider->value() != val ) { 175 if ( slider->value() != val ) {
176 slider->setValue( val ); 176 slider->setValue( val );
177 } 177 }
178 if ( slider->maxValue() != width ) { 178 if ( slider->maxValue() != width ) {
179 slider->setMaxValue( width ); 179 slider->setMaxValue( width );
180 } 180 }
181 } 181 }
182} 182}
183 183
184void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) { 184void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) {
185 if ( mediaPlayerState.isFullscreen() ) { 185 if ( mediaPlayerState.isFullscreen() ) {
186 mediaPlayerState.setFullscreen( FALSE ); 186 mediaPlayerState.setFullscreen( FALSE );
187 makeVisible(); 187 makeVisible();
188 } 188 }
189 MediaWidget::mouseReleaseEvent( event ); 189 MediaWidget::mouseReleaseEvent( event );
190} 190}
191 191
192void VideoWidget::backToNormal() { 192void VideoWidget::backToNormal() {
193 mediaPlayerState.setFullscreen( FALSE ); 193 mediaPlayerState.setFullscreen( FALSE );
194 makeVisible(); 194 makeVisible();
195 setToggleButton( FullScreen, false ); 195 setToggleButton( FullScreen, false );
196} 196}
197 197
198void VideoWidget::makeVisible() { 198void VideoWidget::makeVisible() {
199 if ( mediaPlayerState.isFullscreen() ) { 199 if ( mediaPlayerState.isFullscreen() ) {
200 showFullScreen(); 200 showFullScreen();
201 resize( qApp->desktop()->size() ); 201 resize( qApp->desktop()->size() );
202 videoFrame-> setGeometry ( 0, 0, width ( ), height ( )); 202 videoFrame-> setGeometry ( 0, 0, width ( ), height ( ));
203 203
204 slider->hide(); 204 slider->hide();
205 disconnect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 205 disconnect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
206 disconnect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 206 disconnect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
207 disconnect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); 207 disconnect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
208 disconnect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); 208 disconnect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
209 209
210 } else { 210 } else {
211 showNormal(); 211 showNormal();
212 showMaximized(); 212 showMaximized();
213 QWidget *d = QApplication::desktop(); 213 QWidget *d = QApplication::desktop();
214 int w = d->width(); 214 int w = d->width();
215 int h = d->height(); 215 int h = d->height();
216 216
217 if(w>h) { 217 if(w>h) {
218 int newW=(w/2)-(246/2); //this will only work with 320x240 218 int newW=(w/2)-(246/2); //this will only work with 320x240
219 videoFrame->setGeometry( QRect( newW, 4, 240, 170 ) ); 219 videoFrame->setGeometry( QRect( newW, 4, 240, 170 ) );
220 } else { 220 } else {
221 videoFrame->setGeometry( QRect( 0, 30, 240, 170 ) ); 221 videoFrame->setGeometry( QRect( 0, 30, 240, 170 ) );
222 } 222 }
223 223
224 if ( !mediaPlayerState.isSeekable() ) { 224 if ( !mediaPlayerState.isSeekable() ) {
225 if( !slider->isHidden()) { 225 if( !slider->isHidden()) {
226 slider->hide(); 226 slider->hide();
227 } 227 }
228 disconnect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 228 disconnect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
229 disconnect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 229 disconnect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
230 disconnect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); 230 disconnect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
231 disconnect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); 231 disconnect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
232 } else { 232 } else {
233 slider->show(); 233 slider->show();
234 connect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 234 connect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
235 connect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 235 connect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
236 connect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); 236 connect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
237 connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); 237 connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
238 } 238 }
239 } 239 }
240} 240}
241 241
242void VideoWidget::keyReleaseEvent( QKeyEvent *e) { 242void VideoWidget::keyReleaseEvent( QKeyEvent *e) {
243 switch ( e->key() ) { 243 switch ( e->key() ) {
244////////////////////////////// Zaurus keys 244////////////////////////////// Zaurus keys
245 case Key_Home: 245 case Key_Home:
246 break; 246 break;
247 case Key_F9: //activity 247 case Key_F9: //activity
248 break; 248 break;
249 case Key_F10: //contacts 249 case Key_F10: //contacts
250// hide(); 250// hide();
251 break; 251 break;
252 case Key_F11: //menu 252 case Key_F11: //menu
253 break; 253 break;
254 case Key_F12: //home 254 case Key_F12: //home
255 break; 255 break;
256 case Key_F13: //mail 256 case Key_F13: //mail
257 break; 257 break;
258 case Key_Space: { 258 case Key_Space: {
259 if(mediaPlayerState.isPlaying()) { 259 if(mediaPlayerState.isPlaying()) {
260 mediaPlayerState.setPlaying(FALSE); 260 mediaPlayerState.setPlaying(FALSE);
261 } else { 261 } else {
262 mediaPlayerState.setPlaying(TRUE); 262 mediaPlayerState.setPlaying(TRUE);
263 } 263 }
264 } 264 }
265 break; 265 break;
266 case Key_Down: 266 case Key_Down:
267// toggleButton(6); 267// toggleButton(6);
diff --git a/noncore/multimedia/opieplayer2/xinecontrol.cpp b/noncore/multimedia/opieplayer2/xinecontrol.cpp
index a392f4a..70f2ffd 100644
--- a/noncore/multimedia/opieplayer2/xinecontrol.cpp
+++ b/noncore/multimedia/opieplayer2/xinecontrol.cpp
@@ -1,267 +1,267 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 3
4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com> 5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU General Public 12:`=1 )Y*s>-.--   : the terms of the GNU General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; General Public License for more 22..}^=.=       =       ; General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = General Public License along with 26  -_. . .   )=.  = General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34 34
35#include <qtimer.h> 35#include <qtimer.h>
36#include <qmessagebox.h> 36#include <qmessagebox.h>
37#include <qpe/qcopenvelope_qws.h> 37#include <qpe/qcopenvelope_qws.h>
38#include <qpe/qpeapplication.h> 38#include <qpe/qpeapplication.h>
39 39
40#include "xinecontrol.h" 40#include "xinecontrol.h"
41#include "mediaplayerstate.h" 41#include "mediaplayerstate.h"
42#include "xinevideowidget.h" 42#include "xinevideowidget.h"
43 43
44XineControl::XineControl( XineVideoWidget *xineWidget, 44XineControl::XineControl( XineVideoWidget *xineWidget,
45 MediaPlayerState &_mediaPlayerState, 45 MediaPlayerState &_mediaPlayerState,
46 QObject *parent, const char *name ) 46 QObject *parent, const char *name )
47 : QObject( parent, name ), mediaPlayerState( _mediaPlayerState ), xineVideoWidget( xineWidget ) 47 : QObject( parent, name ), mediaPlayerState( _mediaPlayerState ), xineVideoWidget( xineWidget )
48{ 48{
49 libXine = new XINE::Lib( XINE::Lib::InitializeImmediately, xineWidget ); 49 libXine = new XINE::Lib( XINE::Lib::InitializeImmediately, xineWidget );
50 50
51 init(); 51 init();
52} 52}
53 53
54XineControl::XineControl( XINE::Lib *xine, XineVideoWidget *xineWidget, 54XineControl::XineControl( XINE::Lib *xine, XineVideoWidget *xineWidget,
55 MediaPlayerState &_mediaPlayerState, 55 MediaPlayerState &_mediaPlayerState,
56 QObject *parent, const char *name ) 56 QObject *parent, const char *name )
57 : QObject( parent, name ), libXine( xine ), mediaPlayerState( _mediaPlayerState ), xineVideoWidget( xineWidget ) 57 : QObject( parent, name ), libXine( xine ), mediaPlayerState( _mediaPlayerState ), xineVideoWidget( xineWidget )
58{ 58{
59 xine->ensureInitialized(); 59 xine->ensureInitialized();
60 60
61 xine->setWidget( xineWidget ); 61 xine->setWidget( xineWidget );
62 62
63 init(); 63 init();
64} 64}
65 65
66void XineControl::init() 66void XineControl::init()
67{ 67{
68 connect( &mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pause( bool ) ) ); 68 connect( &mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( pause(bool) ) );
69 connect( this, SIGNAL( positionChanged( long ) ), &mediaPlayerState, SLOT( updatePosition( long ) ) ); 69 connect( this, SIGNAL( positionChanged(long) ), &mediaPlayerState, SLOT( updatePosition(long) ) );
70 connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( stop( bool ) ) ); 70 connect( &mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( stop(bool) ) );
71 connect( &mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), this, SLOT( setFullscreen( bool ) ) ); 71 connect( &mediaPlayerState, SIGNAL( fullscreenToggled(bool) ), this, SLOT( setFullscreen(bool) ) );
72 connect( &mediaPlayerState, SIGNAL( positionChanged( long ) ), this, SLOT( seekTo( long ) ) ); 72 connect( &mediaPlayerState, SIGNAL( positionChanged(long) ), this, SLOT( seekTo(long) ) );
73 connect( &mediaPlayerState, SIGNAL( videoGammaChanged( int ) ), this, SLOT( setGamma( int ) ) ); 73 connect( &mediaPlayerState, SIGNAL( videoGammaChanged(int) ), this, SLOT( setGamma(int) ) );
74 connect( libXine, SIGNAL( stopped() ), this, SLOT( nextMedia() ) ); 74 connect( libXine, SIGNAL( stopped() ), this, SLOT( nextMedia() ) );
75 connect( xineVideoWidget, SIGNAL( videoResized( const QSize & ) ), this, SLOT( videoResized ( const QSize & ) ) ); 75 connect( xineVideoWidget, SIGNAL( videoResized(const QSize&) ), this, SLOT( videoResized(const QSize&) ) );
76 76
77 disabledSuspendScreenSaver = FALSE; 77 disabledSuspendScreenSaver = FALSE;
78} 78}
79 79
80XineControl::~XineControl() { 80XineControl::~XineControl() {
81#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 81#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
82 if ( disabledSuspendScreenSaver ) { 82 if ( disabledSuspendScreenSaver ) {
83 disabledSuspendScreenSaver = FALSE; 83 disabledSuspendScreenSaver = FALSE;
84 // Re-enable the suspend mode 84 // Re-enable the suspend mode
85 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; 85 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable;
86 } 86 }
87#endif 87#endif
88 delete libXine; 88 delete libXine;
89} 89}
90 90
91void XineControl::play( const QString& fileName ) { 91void XineControl::play( const QString& fileName ) {
92 92
93 hasVideoChannel = FALSE; 93 hasVideoChannel = FALSE;
94 hasAudioChannel = FALSE; 94 hasAudioChannel = FALSE;
95 m_fileName = fileName; 95 m_fileName = fileName;
96 96
97 qDebug("<<FILENAME: " + fileName + ">>>>"); 97 qDebug("<<FILENAME: " + fileName + ">>>>");
98 98
99 if ( !libXine->play( fileName, 0, 0 ) ) { 99 if ( !libXine->play( fileName, 0, 0 ) ) {
100 QMessageBox::warning( 0l , tr( "Failure" ), getErrorCode() ); 100 QMessageBox::warning( 0l , tr( "Failure" ), getErrorCode() );
101 // toggle stop so the the play button is reset 101 // toggle stop so the the play button is reset
102 mediaPlayerState.setPlaying( false ); 102 mediaPlayerState.setPlaying( false );
103 return; 103 return;
104 } 104 }
105 mediaPlayerState.setPlaying( true ); 105 mediaPlayerState.setPlaying( true );
106 106
107 MediaPlayerState::DisplayType displayType; 107 MediaPlayerState::DisplayType displayType;
108 if ( !libXine->hasVideo() ) { 108 if ( !libXine->hasVideo() ) {
109 displayType = MediaPlayerState::Audio; 109 displayType = MediaPlayerState::Audio;
110 qDebug("HAS AUDIO"); 110 qDebug("HAS AUDIO");
111 libXine->setShowVideo( false ); 111 libXine->setShowVideo( false );
112 hasAudioChannel = TRUE; 112 hasAudioChannel = TRUE;
113 } else { 113 } else {
114 displayType = MediaPlayerState::Video; 114 displayType = MediaPlayerState::Video;
115 qDebug("HAS VIDEO"); 115 qDebug("HAS VIDEO");
116 libXine->setShowVideo( true ); 116 libXine->setShowVideo( true );
117 hasVideoChannel = TRUE; 117 hasVideoChannel = TRUE;
118 } 118 }
119 // determine if slider is shown 119 // determine if slider is shown
120 mediaPlayerState.setIsSeekable( libXine->isSeekable() ); 120 mediaPlayerState.setIsSeekable( libXine->isSeekable() );
121 121
122 // which gui (video / audio) 122 // which gui (video / audio)
123 mediaPlayerState.setDisplayType( displayType ); 123 mediaPlayerState.setDisplayType( displayType );
124 124
125#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 125#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
126 if ( !disabledSuspendScreenSaver ) { 126 if ( !disabledSuspendScreenSaver ) {
127 disabledSuspendScreenSaver = TRUE; 127 disabledSuspendScreenSaver = TRUE;
128 // Stop the screen from blanking and power saving state 128 // Stop the screen from blanking and power saving state
129 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) 129 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" )
130 << ( displayType == MediaPlayerState::Video ? QPEApplication::Disable : QPEApplication::DisableSuspend ); 130 << ( displayType == MediaPlayerState::Video ? QPEApplication::Disable : QPEApplication::DisableSuspend );
131 } 131 }
132#endif 132#endif
133 133
134 length(); 134 length();
135 position(); 135 position();
136} 136}
137 137
138void XineControl::nextMedia() { 138void XineControl::nextMedia() {
139 mediaPlayerState.setNext(); 139 mediaPlayerState.setNext();
140} 140}
141 141
142void XineControl::setGamma( int value ) { 142void XineControl::setGamma( int value ) {
143 libXine->setGamma( value ); 143 libXine->setGamma( value );
144} 144}
145 145
146void XineControl::stop( bool isSet ) { 146void XineControl::stop( bool isSet ) {
147 if ( !isSet ) { 147 if ( !isSet ) {
148 libXine->stop(); 148 libXine->stop();
149 149
150#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 150#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
151 if ( disabledSuspendScreenSaver ) { 151 if ( disabledSuspendScreenSaver ) {
152 disabledSuspendScreenSaver = FALSE; 152 disabledSuspendScreenSaver = FALSE;
153 // Re-enable the suspend mode 153 // Re-enable the suspend mode
154 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; 154 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable;
155 } 155 }
156#endif 156#endif
157 } 157 }
158} 158}
159 159
160/** 160/**
161 * Pause playback 161 * Pause playback
162 * @isSet 162 * @isSet
163 */ 163 */
164void XineControl::pause( bool isSet) { 164void XineControl::pause( bool isSet) {
165 libXine->pause( isSet ); 165 libXine->pause( isSet );
166} 166}
167 167
168 168
169/** 169/**
170 * get current time in playback 170 * get current time in playback
171 */ 171 */
172long XineControl::currentTime() { 172long XineControl::currentTime() {
173 // todo: jede sekunde überprüfen 173 // todo: jede sekunde überprüfen
174 m_currentTime = libXine->currentTime(); 174 m_currentTime = libXine->currentTime();
175 return m_currentTime; 175 return m_currentTime;
176 QTimer::singleShot( 1000, this, SLOT( currentTime() ) ); 176 QTimer::singleShot( 1000, this, SLOT( currentTime() ) );
177} 177}
178 178
179/** 179/**
180 * Set the length of the media file 180 * Set the length of the media file
181 */ 181 */
182void XineControl::length() { 182void XineControl::length() {
183 m_length = libXine->length(); 183 m_length = libXine->length();
184 mediaPlayerState.setLength( m_length ); 184 mediaPlayerState.setLength( m_length );
185} 185}
186 186
187 187
188/** 188/**
189 * Reports the position the xine backend is at right now 189 * Reports the position the xine backend is at right now
190 * @return long the postion in seconds 190 * @return long the postion in seconds
191 */ 191 */
192long XineControl::position() { 192long XineControl::position() {
193 m_position = ( currentTime() ); 193 m_position = ( currentTime() );
194 mediaPlayerState.updatePosition( m_position ); 194 mediaPlayerState.updatePosition( m_position );
195 long emitPos = (long)m_position; 195 long emitPos = (long)m_position;
196 emit positionChanged( emitPos ); 196 emit positionChanged( emitPos );
197 if( mediaPlayerState.isPlaying() ) { 197 if( mediaPlayerState.isPlaying() ) {
198 // needs to be stopped the media is stopped 198 // needs to be stopped the media is stopped
199 QTimer::singleShot( 1000, this, SLOT( position() ) ); 199 QTimer::singleShot( 1000, this, SLOT( position() ) );
200 } 200 }
201 return m_position; 201 return m_position;
202} 202}
203 203
204/** 204/**
205 * Set videoplayback to fullscreen 205 * Set videoplayback to fullscreen
206 * @param isSet 206 * @param isSet
207 */ 207 */
208void XineControl::setFullscreen( bool isSet ) { 208void XineControl::setFullscreen( bool isSet ) {
209 libXine->showVideoFullScreen( isSet ); 209 libXine->showVideoFullScreen( isSet );
210} 210}
211 211
212 212
213QString XineControl::getMetaInfo() { 213QString XineControl::getMetaInfo() {
214 214
215 QString returnString; 215 QString returnString;
216 216
217 if ( !libXine->metaInfo( 0 ).isEmpty() ) { 217 if ( !libXine->metaInfo( 0 ).isEmpty() ) {
218 returnString += tr( " Title: " + libXine->metaInfo( 0 ) ); 218 returnString += tr( " Title: " + libXine->metaInfo( 0 ) );
219 } 219 }
220 220
221 if ( !libXine->metaInfo( 1 ).isEmpty() ) { 221 if ( !libXine->metaInfo( 1 ).isEmpty() ) {
222 returnString += tr( " Comment: " + libXine->metaInfo( 1 ) ); 222 returnString += tr( " Comment: " + libXine->metaInfo( 1 ) );
223 } 223 }
224 224
225 if ( !libXine->metaInfo( 2 ).isEmpty() ) { 225 if ( !libXine->metaInfo( 2 ).isEmpty() ) {
226 returnString += tr( " Artist: " + libXine->metaInfo( 2 ) ); 226 returnString += tr( " Artist: " + libXine->metaInfo( 2 ) );
227 } 227 }
228 228
229 if ( !libXine->metaInfo( 3 ).isEmpty() ) { 229 if ( !libXine->metaInfo( 3 ).isEmpty() ) {
230 returnString += tr( " Genre: " + libXine->metaInfo( 3 ) ); 230 returnString += tr( " Genre: " + libXine->metaInfo( 3 ) );
231 } 231 }
232 232
233 if ( !libXine->metaInfo( 4 ).isEmpty() ) { 233 if ( !libXine->metaInfo( 4 ).isEmpty() ) {
234 returnString += tr( " Album: " + libXine->metaInfo( 4 ) ); 234 returnString += tr( " Album: " + libXine->metaInfo( 4 ) );
235 } 235 }
236 236
237 if ( !libXine->metaInfo( 5 ).isEmpty() ) { 237 if ( !libXine->metaInfo( 5 ).isEmpty() ) {
238 returnString += tr( " Year: " + libXine->metaInfo( 5 ) ); 238 returnString += tr( " Year: " + libXine->metaInfo( 5 ) );
239 } 239 }
240 return returnString; 240 return returnString;
241} 241}
242 242
243QString XineControl::getErrorCode() { 243QString XineControl::getErrorCode() {
244 244
245 int errorCode = libXine->error(); 245 int errorCode = libXine->error();
246 246
247 qDebug( QString("ERRORCODE: %1 ").arg(errorCode) ); 247 qDebug( QString("ERRORCODE: %1 ").arg(errorCode) );
248 248
249 if ( errorCode == 1 ) { 249 if ( errorCode == 1 ) {
250 return tr( "No input plugin found for this media type" ); 250 return tr( "No input plugin found for this media type" );
251 } else if ( errorCode == 2 ) { 251 } else if ( errorCode == 2 ) {
252 return tr( "No demux plugin found for this media type" ); 252 return tr( "No demux plugin found for this media type" );
253 } else if ( errorCode == 3 ) { 253 } else if ( errorCode == 3 ) {
254 return tr( "Demuxing failed for this media type" ); 254 return tr( "Demuxing failed for this media type" );
255 } else if ( errorCode == 4 ) { 255 } else if ( errorCode == 4 ) {
256 return tr( "Malformed MRL" ); 256 return tr( "Malformed MRL" );
257 } else { 257 } else {
258 return tr( "Some other error" ); 258 return tr( "Some other error" );
259 } 259 }
260} 260}
261 261
262/** 262/**
263 * Seek to a position in the track 263 * Seek to a position in the track
264 * @param second the second to jump to 264 * @param second the second to jump to
265 */ 265 */
266void XineControl::seekTo( long second ) { 266void XineControl::seekTo( long second ) {
267 libXine->seekTo( (int)second ); 267 libXine->seekTo( (int)second );
diff --git a/noncore/multimedia/opierec/qtrec.cpp b/noncore/multimedia/opierec/qtrec.cpp
index 0a6e5ae..f2035ef 100644
--- a/noncore/multimedia/opierec/qtrec.cpp
+++ b/noncore/multimedia/opierec/qtrec.cpp
@@ -572,418 +572,418 @@ void QtRec::init() {
572 ListView1->setColumnWidth( 3, 63); 572 ListView1->setColumnWidth( 3, 63);
573 573
574 ListView1->setColumnWidthMode( 0, QListView::Manual); 574 ListView1->setColumnWidthMode( 0, QListView::Manual);
575 ListView1->setColumnAlignment( 1, QListView::AlignCenter); 575 ListView1->setColumnAlignment( 1, QListView::AlignCenter);
576 ListView1->setColumnAlignment( 2, QListView::AlignRight); 576 ListView1->setColumnAlignment( 2, QListView::AlignRight);
577 ListView1->setColumnAlignment( 3, QListView::AlignLeft); 577 ListView1->setColumnAlignment( 3, QListView::AlignLeft);
578 ListView1->setAllColumnsShowFocus( true ); 578 ListView1->setAllColumnsShowFocus( true );
579 QPEApplication::setStylusOperation( ListView1->viewport(), QPEApplication::RightOnHold); 579 QPEApplication::setStylusOperation( ListView1->viewport(), QPEApplication::RightOnHold);
580 580
581 TabWidget->insertTab( tab, tr( "Files" ) ); 581 TabWidget->insertTab( tab, tr( "Files" ) );
582 582
583 ///**********<<<<<<<<<<<<>>>>>>>>>>>>*************** 583 ///**********<<<<<<<<<<<<>>>>>>>>>>>>***************
584 tab_3 = new QWidget( TabWidget, "tab_3" ); 584 tab_3 = new QWidget( TabWidget, "tab_3" );
585 QGridLayout *glayout3 = new QGridLayout( tab_3 ); 585 QGridLayout *glayout3 = new QGridLayout( tab_3 );
586 glayout3->setSpacing( 2); 586 glayout3->setSpacing( 2);
587 glayout3->setMargin( 2); 587 glayout3->setMargin( 2);
588 //////////////////////////////////// 588 ////////////////////////////////////
589 sampleGroup = new QGroupBox( tab_3, "samplegroup" ); 589 sampleGroup = new QGroupBox( tab_3, "samplegroup" );
590 sampleGroup->setTitle( tr( "Sample Rate" ) ); 590 sampleGroup->setTitle( tr( "Sample Rate" ) );
591 sampleGroup->setFixedSize( 95,50); 591 sampleGroup->setFixedSize( 95,50);
592 592
593 sampleRateComboBox = new QComboBox( false, sampleGroup, "SampleRateComboBox" ); 593 sampleRateComboBox = new QComboBox( false, sampleGroup, "SampleRateComboBox" );
594 sampleRateComboBox->setGeometry( QRect( 10, 20, 80, 25 ) ); 594 sampleRateComboBox->setGeometry( QRect( 10, 20, 80, 25 ) );
595//#ifndef QT_QWS_EBX 595//#ifndef QT_QWS_EBX
596 QString s; 596 QString s;
597 int z = 0; 597 int z = 0;
598 while( deviceSampleRates[z] != -1) { 598 while( deviceSampleRates[z] != -1) {
599 sampleRateComboBox->insertItem( s.setNum( deviceSampleRates[z], 10)); 599 sampleRateComboBox->insertItem( s.setNum( deviceSampleRates[z], 10));
600 z++; 600 z++;
601 } 601 }
602 602
603 603
604 glayout3->addMultiCellWidget( sampleGroup, 0, 0, 0, 0); 604 glayout3->addMultiCellWidget( sampleGroup, 0, 0, 0, 0);
605 605
606 sizeGroup= new QGroupBox( tab_3, "sizeGroup" ); 606 sizeGroup= new QGroupBox( tab_3, "sizeGroup" );
607 sizeGroup->setTitle( tr( "Limit Size" ) ); 607 sizeGroup->setTitle( tr( "Limit Size" ) );
608 sizeGroup->setFixedSize( 80, 50); 608 sizeGroup->setFixedSize( 80, 50);
609 609
610 sizeLimitCombo = new QComboBox( false, sizeGroup, "sizeLimitCombo" ); 610 sizeLimitCombo = new QComboBox( false, sizeGroup, "sizeLimitCombo" );
611 sizeLimitCombo ->setGeometry( QRect( 5, 20, 70, 25 ) ); 611 sizeLimitCombo ->setGeometry( QRect( 5, 20, 70, 25 ) );
612 sizeLimitCombo->insertItem(tr("Unlimited")); 612 sizeLimitCombo->insertItem(tr("Unlimited"));
613 613
614 for(int i=1;i<13; i++) { 614 for(int i=1;i<13; i++) {
615 sizeLimitCombo->insertItem( QString::number( i * 5)); 615 sizeLimitCombo->insertItem( QString::number( i * 5));
616 } 616 }
617 617
618 618
619 glayout3->addMultiCellWidget( sizeGroup, 0, 0, 1, 1); 619 glayout3->addMultiCellWidget( sizeGroup, 0, 0, 1, 1);
620 dirGroup = new QGroupBox( tab_3, "dirGroup" ); 620 dirGroup = new QGroupBox( tab_3, "dirGroup" );
621 dirGroup->setTitle( tr( "File Directory" ) ); 621 dirGroup->setTitle( tr( "File Directory" ) );
622 dirGroup->setFixedSize( 130, 50); 622 dirGroup->setFixedSize( 130, 50);
623 623
624 directoryComboBox = new QComboBox( false, dirGroup, "dirGroup" ); 624 directoryComboBox = new QComboBox( false, dirGroup, "dirGroup" );
625 directoryComboBox->setGeometry( QRect( 10, 15, 115, 25 ) ); 625 directoryComboBox->setGeometry( QRect( 10, 15, 115, 25 ) );
626 626
627 glayout3->addMultiCellWidget( dirGroup, 1, 1, 0, 0); 627 glayout3->addMultiCellWidget( dirGroup, 1, 1, 0, 0);
628 628
629 bitGroup = new QGroupBox( tab_3, "bitGroup" ); 629 bitGroup = new QGroupBox( tab_3, "bitGroup" );
630 bitGroup->setTitle( tr( "Bit Depth" ) ); 630 bitGroup->setTitle( tr( "Bit Depth" ) );
631 bitGroup->setFixedSize( 65, 50); 631 bitGroup->setFixedSize( 65, 50);
632 632
633 bitRateComboBox = new QComboBox( false, bitGroup, "BitRateComboBox" ); 633 bitRateComboBox = new QComboBox( false, bitGroup, "BitRateComboBox" );
634 634
635 z = 0; 635 z = 0;
636 while( deviceBitRates[z] != -1) { 636 while( deviceBitRates[z] != -1) {
637 bitRateComboBox->insertItem( s.setNum( deviceBitRates[z], 10) ); 637 bitRateComboBox->insertItem( s.setNum( deviceBitRates[z], 10) );
638 z++; 638 z++;
639 } 639 }
640 640
641 bitRateComboBox->setGeometry( QRect( 5, 20, 50, 25 ) ); 641 bitRateComboBox->setGeometry( QRect( 5, 20, 50, 25 ) );
642 642
643 glayout3->addMultiCellWidget( bitGroup, 1, 1, 1, 1); 643 glayout3->addMultiCellWidget( bitGroup, 1, 1, 1, 1);
644 644
645 compressionCheckBox = new QCheckBox ( tr("Wave Compression (smaller files)"), tab_3 ); 645 compressionCheckBox = new QCheckBox ( tr("Wave Compression (smaller files)"), tab_3 );
646 646
647 autoMuteCheckBox = new QCheckBox ( tr("Auto Mute"), tab_3 ); 647 autoMuteCheckBox = new QCheckBox ( tr("Auto Mute"), tab_3 );
648 stereoCheckBox = new QCheckBox ( tr("Stereo Channels"), tab_3 ); 648 stereoCheckBox = new QCheckBox ( tr("Stereo Channels"), tab_3 );
649 649
650 glayout3->addMultiCellWidget( compressionCheckBox, 2, 2, 0, 3); 650 glayout3->addMultiCellWidget( compressionCheckBox, 2, 2, 0, 3);
651 glayout3->addMultiCellWidget( autoMuteCheckBox, 3, 3, 0, 0); 651 glayout3->addMultiCellWidget( autoMuteCheckBox, 3, 3, 0, 0);
652 glayout3->addMultiCellWidget( stereoCheckBox, 3, 3, 1, 1); 652 glayout3->addMultiCellWidget( stereoCheckBox, 3, 3, 1, 1);
653 653
654 tab_5 = new QWidget( TabWidget, "tab_5" ); 654 tab_5 = new QWidget( TabWidget, "tab_5" );
655 655
656 QHBoxLayout *Layout19a; 656 QHBoxLayout *Layout19a;
657 Layout19a = new QHBoxLayout( tab_5); 657 Layout19a = new QHBoxLayout( tab_5);
658 Layout19a->setSpacing( 2 ); 658 Layout19a->setSpacing( 2 );
659 Layout19a->setMargin( 0 ); 659 Layout19a->setMargin( 0 );
660 660
661 Layout15 = new QVBoxLayout( this); 661 Layout15 = new QVBoxLayout( this);
662 Layout15->setSpacing( 2 ); 662 Layout15->setSpacing( 2 );
663 Layout15->setMargin( 0 ); 663 Layout15->setMargin( 0 );
664 664
665 Layout15b = new QVBoxLayout( this); 665 Layout15b = new QVBoxLayout( this);
666 Layout15b->setSpacing( 2 ); 666 Layout15b->setSpacing( 2 );
667 Layout15b->setMargin( 0 ); 667 Layout15b->setMargin( 0 );
668 668
669 TextLabel2 = new QLabel( tab_5, "InputLabel" ); 669 TextLabel2 = new QLabel( tab_5, "InputLabel" );
670 TextLabel2->setText( tr( "In")); 670 TextLabel2->setText( tr( "In"));
671 TextLabel2->setFixedWidth( 35); 671 TextLabel2->setFixedWidth( 35);
672 Layout15->addWidget( TextLabel2 ); 672 Layout15->addWidget( TextLabel2 );
673 673
674 TextLabel3 = new QLabel( tab_5, "OutputLabel" ); 674 TextLabel3 = new QLabel( tab_5, "OutputLabel" );
675 TextLabel3->setText( tr( "Out" ) ); 675 TextLabel3->setText( tr( "Out" ) );
676 Layout15b->addWidget( TextLabel3 ); 676 Layout15b->addWidget( TextLabel3 );
677 677
678 InputSlider = new QSlider( -100, 0, 10, 0, QSlider::Vertical, tab_5, (const char *) "InputSlider" ); 678 InputSlider = new QSlider( -100, 0, 10, 0, QSlider::Vertical, tab_5, (const char *) "InputSlider" );
679 InputSlider->setTickmarks( QSlider::Both); 679 InputSlider->setTickmarks( QSlider::Both);
680 Layout15->addWidget( InputSlider); 680 Layout15->addWidget( InputSlider);
681 681
682 OutputSlider = new QSlider( -100,0,10,0, QSlider::Vertical,tab_5,(const char *) "OutputSlider" ); 682 OutputSlider = new QSlider( -100,0,10,0, QSlider::Vertical,tab_5,(const char *) "OutputSlider" );
683 OutputSlider->setTickmarks( QSlider::Both); 683 OutputSlider->setTickmarks( QSlider::Both);
684 684
685 Layout15b->addWidget( OutputSlider ); 685 Layout15b->addWidget( OutputSlider );
686 686
687 outMuteCheckBox = new QCheckBox ( tr("mute"), tab_5 ); 687 outMuteCheckBox = new QCheckBox ( tr("mute"), tab_5 );
688 Layout15->addWidget( outMuteCheckBox ); 688 Layout15->addWidget( outMuteCheckBox );
689 689
690 inMuteCheckBox = new QCheckBox ( tr("mute"), tab_5 ); 690 inMuteCheckBox = new QCheckBox ( tr("mute"), tab_5 );
691 inMuteCheckBox-> setFocusPolicy ( QWidget::NoFocus ); 691 inMuteCheckBox-> setFocusPolicy ( QWidget::NoFocus );
692 Layout15b->addWidget( inMuteCheckBox ); 692 Layout15b->addWidget( inMuteCheckBox );
693 693
694 694
695 Layout19a->addLayout( Layout15 ); 695 Layout19a->addLayout( Layout15 );
696 Layout19a->addLayout( Layout15b ); 696 Layout19a->addLayout( Layout15b );
697 697
698 fillDirectoryCombo(); 698 fillDirectoryCombo();
699 699
700 TabWidget->insertTab( tab_3, tr( "Options" ) ); 700 TabWidget->insertTab( tab_3, tr( "Options" ) );
701 701
702 TabWidget->insertTab( tab_5, tr( "Volume" ) ); 702 TabWidget->insertTab( tab_5, tr( "Volume" ) );
703 703
704 704
705 waveform = new Waveform( this, "waveform" ); 705 waveform = new Waveform( this, "waveform" );
706// waveform->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)3, waveform->sizePolicy().hasHeightForWidth() ) ); 706// waveform->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)3, waveform->sizePolicy().hasHeightForWidth() ) );
707 waveform->setMinimumSize( QSize( 0, 50 ) ); 707 waveform->setMinimumSize( QSize( 0, 50 ) );
708 708
709 layout->addMultiCellWidget( waveform, 8, 8, 0, 7 ); 709 layout->addMultiCellWidget( waveform, 8, 8, 0, 7 );
710 waveform->setBackgroundColor ( black ); 710 waveform->setBackgroundColor ( black );
711} 711}
712 712
713void QtRec::initIconView() { 713void QtRec::initIconView() {
714 714
715 ListView1->clear(); 715 ListView1->clear();
716 Config cfg("OpieRec"); 716 Config cfg("OpieRec");
717 cfg.setGroup("Sounds"); 717 cfg.setGroup("Sounds");
718 QString temp; 718 QString temp;
719 QPixmap image0( ( const char** ) image0_data ); 719 QPixmap image0( ( const char** ) image0_data );
720 720
721 int nFiles = cfg.readNumEntry("NumberofFiles",0); 721 int nFiles = cfg.readNumEntry("NumberofFiles",0);
722 // qDebug("init number of files %d", nFiles); 722 // qDebug("init number of files %d", nFiles);
723 723
724 for(int i=1;i<= nFiles;i++) { 724 for(int i=1;i<= nFiles;i++) {
725 725
726 QListViewItem * item; 726 QListViewItem * item;
727 QString fileS, mediaLocation, fileDate, filePath; 727 QString fileS, mediaLocation, fileDate, filePath;
728 728
729 temp.sprintf( "%d",i); 729 temp.sprintf( "%d",i);
730 temp = cfg.readEntry( temp,""); //reads currentFile 730 temp = cfg.readEntry( temp,""); //reads currentFile
731 filePath = cfg.readEntry( temp,""); //currentFileName 731 filePath = cfg.readEntry( temp,""); //currentFileName
732 732
733 QFileInfo info(filePath); 733 QFileInfo info(filePath);
734 fileDate = info.lastModified().toString(); 734 fileDate = info.lastModified().toString();
735 735
736 fileS = cfg.readEntry( filePath, "0" );// file length in seconds 736 fileS = cfg.readEntry( filePath, "0" );// file length in seconds
737 mediaLocation = getStorage( filePath); 737 mediaLocation = getStorage( filePath);
738 if( info.exists()) { 738 if( info.exists()) {
739 item = new QListViewItem( ListView1, temp, fileS, mediaLocation, fileDate); 739 item = new QListViewItem( ListView1, temp, fileS, mediaLocation, fileDate);
740 item->setPixmap( 0, image0); 740 item->setPixmap( 0, image0);
741 if( currentFileName == filePath) 741 if( currentFileName == filePath)
742 ListView1->setSelected( item, true); 742 ListView1->setSelected( item, true);
743 } 743 }
744 } 744 }
745} 745}
746 746
747void QtRec::initConnections() { 747void QtRec::initConnections() {
748 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); 748 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
749 749
750 connect( toBeginningButton, SIGNAL( pressed()), 750 connect( toBeginningButton, SIGNAL( pressed()),
751 this, SLOT( rewindPressed() )); 751 this, SLOT( rewindPressed() ));
752 connect( toBeginningButton, SIGNAL( released()), 752 connect( toBeginningButton, SIGNAL( released()),
753 this, SLOT( rewindReleased() )); 753 this, SLOT( rewindReleased() ));
754 connect( toEndButton, SIGNAL( pressed()), 754 connect( toEndButton, SIGNAL( pressed()),
755 this, SLOT( FastforwardPressed() )); 755 this, SLOT( FastforwardPressed() ));
756 connect( toEndButton, SIGNAL( released()), 756 connect( toEndButton, SIGNAL( released()),
757 this, SLOT( FastforwardReleased() )); 757 this, SLOT( FastforwardReleased() ));
758 connect( deleteSoundButton, SIGNAL(released()), 758 connect( deleteSoundButton, SIGNAL(released()),
759 this, SLOT( deleteSound() )); 759 this, SLOT( deleteSound() ));
760 connect( Stop_PushButton, SIGNAL(released()), 760 connect( Stop_PushButton, SIGNAL(released()),
761 this, SLOT( doPlayBtn() )); 761 this, SLOT( doPlayBtn() ));
762 connect( Rec_PushButton, SIGNAL(released()), 762 connect( Rec_PushButton, SIGNAL(released()),
763 this, SLOT( newSound() ) ); 763 this, SLOT( newSound() ) );
764 connect( TabWidget, SIGNAL( currentChanged( QWidget*)), 764 connect( TabWidget, SIGNAL( currentChanged(QWidget*)),
765 this, SLOT(thisTab(QWidget*) )); 765 this, SLOT(thisTab(QWidget*) ));
766 connect( OutputSlider, SIGNAL(sliderReleased()), 766 connect( OutputSlider, SIGNAL(sliderReleased()),
767 this, SLOT( changedOutVolume()) ); 767 this, SLOT( changedOutVolume()) );
768 connect( InputSlider, SIGNAL(sliderReleased()), 768 connect( InputSlider, SIGNAL(sliderReleased()),
769 this, SLOT( changedInVolume()) ); 769 this, SLOT( changedInVolume()) );
770 770
771 connect( sampleRateComboBox, SIGNAL(activated( int)), 771 connect( sampleRateComboBox, SIGNAL(activated(int)),
772 this, SLOT( changesamplerateCombo(int)) ); 772 this, SLOT( changesamplerateCombo(int)) );
773 connect( bitRateComboBox, SIGNAL(activated( int)), 773 connect( bitRateComboBox, SIGNAL(activated(int)),
774 this, SLOT( changebitrateCombo(int)) ); 774 this, SLOT( changebitrateCombo(int)) );
775 775
776 connect( directoryComboBox, SIGNAL(activated( int)), 776 connect( directoryComboBox, SIGNAL(activated(int)),
777 this, SLOT( changeDirCombo(int)) ); 777 this, SLOT( changeDirCombo(int)) );
778 connect( sizeLimitCombo, SIGNAL(activated( int)), 778 connect( sizeLimitCombo, SIGNAL(activated(int)),
779 this, SLOT( changeSizeLimitCombo(int)) ); 779 this, SLOT( changeSizeLimitCombo(int)) );
780 780
781 connect( stereoCheckBox, SIGNAL(toggled( bool)), 781 connect( stereoCheckBox, SIGNAL(toggled(bool)),
782 this, SLOT( changeStereoCheck(bool)) ); 782 this, SLOT( changeStereoCheck(bool)) );
783 783
784 connect( outMuteCheckBox, SIGNAL(toggled( bool)), 784 connect( outMuteCheckBox, SIGNAL(toggled(bool)),
785 this, SLOT( doVolMuting(bool)) ); 785 this, SLOT( doVolMuting(bool)) );
786 connect( inMuteCheckBox , SIGNAL(toggled( bool)), 786 connect( inMuteCheckBox , SIGNAL(toggled(bool)),
787 this, SLOT( doMicMuting(bool)) ); 787 this, SLOT( doMicMuting(bool)) );
788 788
789 connect( ListView1,SIGNAL(doubleClicked( QListViewItem*)), 789 connect( ListView1,SIGNAL(doubleClicked(QListViewItem*)),
790 this,SLOT( itClick(QListViewItem*))); 790 this,SLOT( itClick(QListViewItem*)));
791 connect( ListView1, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 791 connect( ListView1, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)),
792 this,SLOT( listPressed(int, QListViewItem *, const QPoint&, int)) ); 792 this,SLOT( listPressed(int,QListViewItem*,const QPoint&,int)) );
793 connect( timeSlider, SIGNAL( sliderMoved( int)), 793 connect( timeSlider, SIGNAL( sliderMoved(int)),
794 this, SLOT( changeTimeSlider(int) )); 794 this, SLOT( changeTimeSlider(int) ));
795 connect( timeSlider, SIGNAL( sliderPressed( )), 795 connect( timeSlider, SIGNAL( sliderPressed()),
796 this, SLOT( timeSliderPressed() )); 796 this, SLOT( timeSliderPressed() ));
797 connect( timeSlider, SIGNAL( sliderReleased( )), 797 connect( timeSlider, SIGNAL( sliderReleased()),
798 this, SLOT( timeSliderReleased() )); 798 this, SLOT( timeSliderReleased() ));
799 connect( compressionCheckBox, SIGNAL( toggled(bool)), 799 connect( compressionCheckBox, SIGNAL( toggled(bool)),
800 this, SLOT( compressionSelected(bool))); 800 this, SLOT( compressionSelected(bool)));
801 connect( autoMuteCheckBox, SIGNAL( toggled(bool)), 801 connect( autoMuteCheckBox, SIGNAL( toggled(bool)),
802 this, SLOT( slotAutoMute(bool))); 802 this, SLOT( slotAutoMute(bool)));
803} 803}
804 804
805void QtRec::initConfig() { 805void QtRec::initConfig() {
806 int index, fred, i; 806 int index, fred, i;
807 Config cfg("OpieRec"); 807 Config cfg("OpieRec");
808 cfg.setGroup("Settings"); 808 cfg.setGroup("Settings");
809 809
810 index = cfg.readNumEntry("samplerate",22050); 810 index = cfg.readNumEntry("samplerate",22050);
811 bool ok; 811 bool ok;
812 812
813 for(int ws=0;ws<sampleRateComboBox->count();ws++) { 813 for(int ws=0;ws<sampleRateComboBox->count();ws++) {
814 fred = sampleRateComboBox->text(ws).toInt(&ok, 10); 814 fred = sampleRateComboBox->text(ws).toInt(&ok, 10);
815 if( index == fred) { 815 if( index == fred) {
816 filePara.sampleRate = fred; 816 filePara.sampleRate = fred;
817 sampleRateComboBox->setCurrentItem(ws); 817 sampleRateComboBox->setCurrentItem(ws);
818 } 818 }
819 } 819 }
820 820
821 i = cfg.readNumEntry("bitrate",16); 821 i = cfg.readNumEntry("bitrate",16);
822 if(i == 16) 822 if(i == 16)
823 bitRateComboBox->setCurrentItem( 1); 823 bitRateComboBox->setCurrentItem( 1);
824 elseif(i == 24) 824 elseif(i == 24)
825 bitRateComboBox->setCurrentItem( 2); 825 bitRateComboBox->setCurrentItem( 2);
826 elseif(i == 32) 826 elseif(i == 32)
827 bitRateComboBox->setCurrentItem( 3); 827 bitRateComboBox->setCurrentItem( 3);
828 else 828 else
829 bitRateComboBox->setCurrentItem( 0); 829 bitRateComboBox->setCurrentItem( 0);
830 830
831 filePara.resolution = i; 831 filePara.resolution = i;
832 832
833 i = cfg.readNumEntry("sizeLimit", 5 ); 833 i = cfg.readNumEntry("sizeLimit", 5 );
834 QString temp; 834 QString temp;
835 sizeLimitCombo->setCurrentItem((i/5)); 835 sizeLimitCombo->setCurrentItem((i/5));
836 836
837 stereoCheckBox->setChecked( cfg.readBoolEntry("stereo", 1)); 837 stereoCheckBox->setChecked( cfg.readBoolEntry("stereo", 1));
838 if( stereoCheckBox->isChecked()) { 838 if( stereoCheckBox->isChecked()) {
839 filePara.channels = 2; 839 filePara.channels = 2;
840 } else { 840 } else {
841 filePara.channels = 1; 841 filePara.channels = 1;
842 } 842 }
843 843
844 compressionCheckBox->setChecked( cfg.readBoolEntry("wavCompression",1)); 844 compressionCheckBox->setChecked( cfg.readBoolEntry("wavCompression",1));
845 if( compressionCheckBox->isChecked()) { 845 if( compressionCheckBox->isChecked()) {
846 bitRateComboBox->setEnabled(false); 846 bitRateComboBox->setEnabled(false);
847 bitRateComboBox->setCurrentItem(0); 847 bitRateComboBox->setCurrentItem(0);
848 filePara.resolution=16; 848 filePara.resolution=16;
849 } 849 }
850 850
851 autoMuteCheckBox->setChecked( cfg.readBoolEntry("useAutoMute",0)); 851 autoMuteCheckBox->setChecked( cfg.readBoolEntry("useAutoMute",0));
852 if( autoMuteCheckBox->isChecked()) 852 if( autoMuteCheckBox->isChecked())
853 slotAutoMute(true); 853 slotAutoMute(true);
854 else 854 else
855 slotAutoMute(false); 855 slotAutoMute(false);
856 856
857 Config cofg( "qpe"); 857 Config cofg( "qpe");
858 cofg.setGroup( "Volume"); 858 cofg.setGroup( "Volume");
859 outMuteCheckBox->setChecked( cofg.readBoolEntry( "Mute",0)); 859 outMuteCheckBox->setChecked( cofg.readBoolEntry( "Mute",0));
860 inMuteCheckBox->setChecked( cofg.readBoolEntry( "MicMute",0)); 860 inMuteCheckBox->setChecked( cofg.readBoolEntry( "MicMute",0));
861} 861}
862 862
863void QtRec::stop() { 863void QtRec::stop() {
864 qWarning("STOP"); 864 qWarning("STOP");
865 setRecordButton(false); 865 setRecordButton(false);
866 866
867 if( !recording) 867 if( !recording)
868 endPlaying(); 868 endPlaying();
869 else 869 else
870 endRecording(); 870 endRecording();
871 timeSlider->setValue(0); 871 timeSlider->setValue(0);
872} 872}
873 873
874void QtRec::doPlayBtn() { 874void QtRec::doPlayBtn() {
875 875
876 if(!stopped) { 876 if(!stopped) {
877 playLabel2->setText(tr("Play")); 877 playLabel2->setText(tr("Play"));
878 stop(); 878 stop();
879 } else { 879 } else {
880 if(ListView1->currentItem() == 0) return; 880 if(ListView1->currentItem() == 0) return;
881 playLabel2->setText(tr("Stop")); 881 playLabel2->setText(tr("Stop"));
882 currentFile = ListView1->currentItem()->text(0); 882 currentFile = ListView1->currentItem()->text(0);
883 start(); 883 start();
884 } 884 }
885} 885}
886 886
887void QtRec::start() { //play 887void QtRec::start() { //play
888 if( stopped) { 888 if( stopped) {
889 QPixmap image3( ( const char** ) image3_data ); 889 QPixmap image3( ( const char** ) image3_data );
890 Stop_PushButton->setPixmap( image3 ); 890 Stop_PushButton->setPixmap( image3 );
891 Stop_PushButton->setDown( true); 891 Stop_PushButton->setDown( true);
892 stopped = false; 892 stopped = false;
893 paused = false; 893 paused = false;
894 secCount = 1; 894 secCount = 1;
895 895
896 if( openPlayFile()) 896 if( openPlayFile())
897 if( setupAudio( false)) //recording is false 897 if( setupAudio( false)) //recording is false
898 doPlay(); 898 doPlay();
899 } 899 }
900} 900}
901 901
902bool QtRec::rec() { //record 902bool QtRec::rec() { //record
903 QString timeString; 903 QString timeString;
904 timeString.sprintf("%.0f", 0.0); 904 timeString.sprintf("%.0f", 0.0);
905 timeLabel->setText( timeString+ " seconds"); 905 timeLabel->setText( timeString+ " seconds");
906 if(!stopped) { 906 if(!stopped) {
907 monitoring = true; 907 monitoring = true;
908 return false; 908 return false;
909 } else { 909 } else {
910 secCount = 1; 910 secCount = 1;
911 playLabel2->setText(tr("Stop")); 911 playLabel2->setText(tr("Stop"));
912 monitoring = false; 912 monitoring = false;
913 setRecordButton( true); 913 setRecordButton( true);
914 914
915 if( setupAudio( true)) 915 if( setupAudio( true))
916 if(setUpFile()) { 916 if(setUpFile()) {
917 int fileSize = 0; 917 int fileSize = 0;
918 Config cfg("OpieRec"); 918 Config cfg("OpieRec");
919 cfg.setGroup("Settings"); 919 cfg.setGroup("Settings");
920// qDebug( "<<<<<<<Device bits %d, device rate %d, device channels %d", 920// qDebug( "<<<<<<<Device bits %d, device rate %d, device channels %d",
921// soundDevice->getDeviceBits(), 921// soundDevice->getDeviceBits(),
922// soundDevice->getDeviceRate(), 922// soundDevice->getDeviceRate(),
923// soundDevice->getDeviceChannels()); 923// soundDevice->getDeviceChannels());
924 924
925 //filePara.sampleRate = cfg.readNumEntry("samplerate", 22050); 925 //filePara.sampleRate = cfg.readNumEntry("samplerate", 22050);
926// qDebug("sample rate is %d", filePara.sampleRate); 926// qDebug("sample rate is %d", filePara.sampleRate);
927 filePara.SecondsToRecord = getCurrentSizeLimit(); 927 filePara.SecondsToRecord = getCurrentSizeLimit();
928 928
929// qDebug("size limit %d sec", filePara.SecondsToRecord); 929// qDebug("size limit %d sec", filePara.SecondsToRecord);
930 int diskSize = checkDiskSpace( (const QString &) wavFile->trackName()); 930 int diskSize = checkDiskSpace( (const QString &) wavFile->trackName());
931 931
932 if( filePara.SecondsToRecord == 0) { 932 if( filePara.SecondsToRecord == 0) {
933 fileSize = diskSize; 933 fileSize = diskSize;
934 } else if( filePara.format == WAVE_FORMAT_PCM) { 934 } else if( filePara.format == WAVE_FORMAT_PCM) {
935// qDebug("WAVE_FORMAT_PCM"); 935// qDebug("WAVE_FORMAT_PCM");
936 fileSize = (filePara.SecondsToRecord ) * filePara.channels 936 fileSize = (filePara.SecondsToRecord ) * filePara.channels
937 * filePara.sampleRate * ( filePara.resolution / 8) + 1000; 937 * filePara.sampleRate * ( filePara.resolution / 8) + 1000;
938 } else { 938 } else {
939// qDebug("WAVE_FORMAT_DVI_ADPCM"); 939// qDebug("WAVE_FORMAT_DVI_ADPCM");
940 fileSize = ((filePara.SecondsToRecord) * filePara.channels 940 fileSize = ((filePara.SecondsToRecord) * filePara.channels
941 * filePara.sampleRate * ( filePara.resolution / 8) ) / 4 + 250; 941 * filePara.sampleRate * ( filePara.resolution / 8) ) / 4 + 250;
942 } 942 }
943 943
944 filePara.samplesToRecord = fileSize; 944 filePara.samplesToRecord = fileSize;
945 qDebug("filesize should be %d, bits %d, rate %d", 945 qDebug("filesize should be %d, bits %d, rate %d",
946 filePara.samplesToRecord, filePara.resolution, filePara.sampleRate); 946 filePara.samplesToRecord, filePara.resolution, filePara.sampleRate);
947 if( paused) { 947 if( paused) {
948 paused = false; 948 paused = false;
949 } 949 }
950 // else { 950 // else {
951 qDebug("Setting timeslider %d", filePara.samplesToRecord); 951 qDebug("Setting timeslider %d", filePara.samplesToRecord);
952 // if(fileSize != 0) 952 // if(fileSize != 0)
953 timeSlider->setRange(0, filePara.samplesToRecord); 953 timeSlider->setRange(0, filePara.samplesToRecord);
954 // } 954 // }
955 955
956 if( diskSize < fileSize/1024) { 956 if( diskSize < fileSize/1024) {
957 QMessageBox::warning(this, 957 QMessageBox::warning(this,
958 tr("Low Disk Space"), 958 tr("Low Disk Space"),
959 tr("You are running low of\nrecording space\n" 959 tr("You are running low of\nrecording space\n"
960 "or a card isn't being recognized")); 960 "or a card isn't being recognized"));
961 stopped = true; //we need to be stopped 961 stopped = true; //we need to be stopped
962 stop(); 962 stop();
963 } else { 963 } else {
964 QString msg; 964 QString msg;
965 msg.sprintf("%d, %d, %d", filePara.sampleRate, filePara.channels, filePara.resolution); 965 msg.sprintf("%d, %d, %d", filePara.sampleRate, filePara.channels, filePara.resolution);
966#ifdef DEV_VERSION 966#ifdef DEV_VERSION
967 setCaption( msg); 967 setCaption( msg);
968#endif 968#endif
969 filePara.fileName=currentFile.latin1(); 969 filePara.fileName=currentFile.latin1();
970 qDebug("Start recording thread"); 970 qDebug("Start recording thread");
971 stopped = false; 971 stopped = false;
972 972
973#ifdef THREADED 973#ifdef THREADED
974 pthread_t thread1; 974 pthread_t thread1;
975 pthread_create( &thread1, NULL, (void * (*)(void *))quickRec, NULL/* &*/); 975 pthread_create( &thread1, NULL, (void * (*)(void *))quickRec, NULL/* &*/);
976#endif 976#endif
977 toBeginningButton->setEnabled( false); 977 toBeginningButton->setEnabled( false);
978 toEndButton->setEnabled( false); 978 toEndButton->setEnabled( false);
979 979
980 startTimer(1000); 980 startTimer(1000);
981#ifndef THREADED 981#ifndef THREADED
982 quickRec(); 982 quickRec();
983#endif 983#endif
984 } 984 }
985 } //end setUpFile 985 } //end setUpFile
986 } //end setupAudio 986 } //end setupAudio
987 return true; 987 return true;
988} 988}
989/* 989/*
@@ -1467,385 +1467,385 @@ void QtRec::endRecording() {
1467 if( wavFile->track.isOpen()) { 1467 if( wavFile->track.isOpen()) {
1468 wavFile->adjustHeaders( filePara.fd, filePara.numberSamples); 1468 wavFile->adjustHeaders( filePara.fd, filePara.numberSamples);
1469 // soundDevice->sd=-1; 1469 // soundDevice->sd=-1;
1470 filePara.numberSamples = 0; 1470 filePara.numberSamples = 0;
1471 // filePara.sd=-1; 1471 // filePara.sd=-1;
1472 wavFile->closeFile(); 1472 wavFile->closeFile();
1473 filePara.fd=0; 1473 filePara.fd=0;
1474 1474
1475 if( wavFile->isTempFile()) { 1475 if( wavFile->isTempFile()) {
1476// move tmp file to regular file 1476// move tmp file to regular file
1477 QString cmd; 1477 QString cmd;
1478 cmd.sprintf("mv "+ wavFile->trackName() + " " + wavFile->currentFileName); 1478 cmd.sprintf("mv "+ wavFile->trackName() + " " + wavFile->currentFileName);
1479// qDebug("moving tmp file to "+currentFileName); 1479// qDebug("moving tmp file to "+currentFileName);
1480 system( cmd.latin1()); 1480 system( cmd.latin1());
1481 } 1481 }
1482 1482
1483 qDebug("Just moved " + wavFile->currentFileName); 1483 qDebug("Just moved " + wavFile->currentFileName);
1484 Config cfg("OpieRec"); 1484 Config cfg("OpieRec");
1485 cfg.setGroup("Sounds"); 1485 cfg.setGroup("Sounds");
1486 1486
1487 int nFiles = cfg.readNumEntry( "NumberofFiles",0); 1487 int nFiles = cfg.readNumEntry( "NumberofFiles",0);
1488 1488
1489 currentFile = QFileInfo( wavFile->currentFileName).fileName(); 1489 currentFile = QFileInfo( wavFile->currentFileName).fileName();
1490 currentFile = currentFile.left( currentFile.length() - 4); 1490 currentFile = currentFile.left( currentFile.length() - 4);
1491 1491
1492 cfg.writeEntry( "NumberofFiles", nFiles + 1); 1492 cfg.writeEntry( "NumberofFiles", nFiles + 1);
1493 cfg.writeEntry( QString::number( nFiles + 1), currentFile); 1493 cfg.writeEntry( QString::number( nFiles + 1), currentFile);
1494 cfg.writeEntry( currentFile, wavFile->currentFileName); 1494 cfg.writeEntry( currentFile, wavFile->currentFileName);
1495 1495
1496 QString time; 1496 QString time;
1497 time.sprintf("%.2f", filePara.numberOfRecordedSeconds); 1497 time.sprintf("%.2f", filePara.numberOfRecordedSeconds);
1498 cfg.writeEntry( wavFile->currentFileName, time ); 1498 cfg.writeEntry( wavFile->currentFileName, time );
1499// qDebug("writing config numberOfRecordedSeconds "+time); 1499// qDebug("writing config numberOfRecordedSeconds "+time);
1500 1500
1501 cfg.write(); 1501 cfg.write();
1502 qDebug("finished recording"); 1502 qDebug("finished recording");
1503 timeLabel->setText(""); 1503 timeLabel->setText("");
1504 } 1504 }
1505 1505
1506 if(soundDevice) delete soundDevice; 1506 if(soundDevice) delete soundDevice;
1507 1507
1508 timeSlider->setValue(0); 1508 timeSlider->setValue(0);
1509 initIconView(); 1509 initIconView();
1510 selectItemByName( currentFile); 1510 selectItemByName( currentFile);
1511} 1511}
1512 1512
1513void QtRec::endPlaying() { 1513void QtRec::endPlaying() {
1514 monitoring = false; 1514 monitoring = false;
1515 recording = false; 1515 recording = false;
1516 playing = false; 1516 playing = false;
1517 stopped = true; 1517 stopped = true;
1518 waveform->reset(); 1518 waveform->reset();
1519// errorStop(); 1519// errorStop();
1520// qDebug("end playing"); 1520// qDebug("end playing");
1521 setRecordButton( false); 1521 setRecordButton( false);
1522 1522
1523 toBeginningButton->setEnabled( true); 1523 toBeginningButton->setEnabled( true);
1524 toEndButton->setEnabled( true); 1524 toEndButton->setEnabled( true);
1525 1525
1526 if(autoMute) 1526 if(autoMute)
1527 doMute( true); 1527 doMute( true);
1528 1528
1529 soundDevice->closeDevice( false); 1529 soundDevice->closeDevice( false);
1530 soundDevice->sd = -1; 1530 soundDevice->sd = -1;
1531 // if(soundDevice) delete soundDevice; 1531 // if(soundDevice) delete soundDevice;
1532// qDebug("file and sound device closed"); 1532// qDebug("file and sound device closed");
1533 timeLabel->setText(""); 1533 timeLabel->setText("");
1534 total = 0; 1534 total = 0;
1535 filePara.numberSamples = 0; 1535 filePara.numberSamples = 0;
1536 filePara.sd = -1; 1536 filePara.sd = -1;
1537// wavFile->closeFile(); 1537// wavFile->closeFile();
1538 filePara.fd = 0; 1538 filePara.fd = 0;
1539// if(wavFile) delete wavFile; //this crashes 1539// if(wavFile) delete wavFile; //this crashes
1540 1540
1541// qDebug("track closed"); 1541// qDebug("track closed");
1542 killTimers(); 1542 killTimers();
1543 qWarning("reset slider"); 1543 qWarning("reset slider");
1544 timeSlider->setValue(0); 1544 timeSlider->setValue(0);
1545 1545
1546 if(soundDevice) delete soundDevice; 1546 if(soundDevice) delete soundDevice;
1547 1547
1548} 1548}
1549 1549
1550bool QtRec::openPlayFile() { 1550bool QtRec::openPlayFile() {
1551 1551
1552 qApp->processEvents(); 1552 qApp->processEvents();
1553 if( currentFile.isEmpty()) { 1553 if( currentFile.isEmpty()) {
1554 QMessageBox::message(tr("Opierec"),tr("Please select file to play")); 1554 QMessageBox::message(tr("Opierec"),tr("Please select file to play"));
1555 endPlaying(); 1555 endPlaying();
1556 return false; 1556 return false;
1557 } 1557 }
1558 QString currentFileName; 1558 QString currentFileName;
1559 Config cfg("OpieRec"); 1559 Config cfg("OpieRec");
1560 cfg.setGroup("Sounds"); 1560 cfg.setGroup("Sounds");
1561 int nFiles = cfg.readNumEntry( "NumberofFiles", 0); 1561 int nFiles = cfg.readNumEntry( "NumberofFiles", 0);
1562 for(int i=0;i<nFiles+1;i++) { //look for file 1562 for(int i=0;i<nFiles+1;i++) { //look for file
1563 if( cfg.readEntry( QString::number(i),"").find( currentFile,0,true) != -1) { 1563 if( cfg.readEntry( QString::number(i),"").find( currentFile,0,true) != -1) {
1564 currentFileName = cfg.readEntry( currentFile, "" ); 1564 currentFileName = cfg.readEntry( currentFile, "" );
1565 qDebug("opening for play: " + currentFileName); 1565 qDebug("opening for play: " + currentFileName);
1566 } 1566 }
1567 } 1567 }
1568 wavFile = new WavFile(this, 1568 wavFile = new WavFile(this,
1569 currentFileName, 1569 currentFileName,
1570 false); 1570 false);
1571 filePara.fd = wavFile->wavHandle(); 1571 filePara.fd = wavFile->wavHandle();
1572 if(filePara.fd == -1) { 1572 if(filePara.fd == -1) {
1573 // if(!track.open(IO_ReadOnly)) { 1573 // if(!track.open(IO_ReadOnly)) {
1574 QString errorMsg = (QString)strerror(errno); 1574 QString errorMsg = (QString)strerror(errno);
1575 monitoring = false; 1575 monitoring = false;
1576 setCaption( tr( "OpieRecord " ) + QString::number(VERSION) ); 1576 setCaption( tr( "OpieRecord " ) + QString::number(VERSION) );
1577 QMessageBox::message(tr("Note"), tr("Could not open audio file.\n") 1577 QMessageBox::message(tr("Note"), tr("Could not open audio file.\n")
1578 + errorMsg + "\n" + currentFile); 1578 + errorMsg + "\n" + currentFile);
1579 return false; 1579 return false;
1580 } else { 1580 } else {
1581 1581
1582 filePara.numberSamples = wavFile->getNumberSamples(); 1582 filePara.numberSamples = wavFile->getNumberSamples();
1583 filePara.format = wavFile->getFormat(); 1583 filePara.format = wavFile->getFormat();
1584 filePara.sampleRate = wavFile->getSampleRate(); 1584 filePara.sampleRate = wavFile->getSampleRate();
1585 filePara.resolution = wavFile->getResolution(); 1585 filePara.resolution = wavFile->getResolution();
1586 filePara.channels = wavFile->getChannels(); 1586 filePara.channels = wavFile->getChannels();
1587 timeSlider->setPageStep(1); 1587 timeSlider->setPageStep(1);
1588 monitoring = true; 1588 monitoring = true;
1589 1589
1590 qDebug("file %d, samples %d %d", filePara.fd, filePara.numberSamples, filePara.sampleRate); 1590 qDebug("file %d, samples %d %d", filePara.fd, filePara.numberSamples, filePara.sampleRate);
1591 int sec = (int) (( filePara.numberSamples / filePara.sampleRate) / filePara.channels) / ( filePara.channels*( filePara.resolution/8)); 1591 int sec = (int) (( filePara.numberSamples / filePara.sampleRate) / filePara.channels) / ( filePara.channels*( filePara.resolution/8));
1592 1592
1593 qWarning("seconds %d", sec); 1593 qWarning("seconds %d", sec);
1594 1594
1595 timeSlider->setRange(0, filePara.numberSamples ); 1595 timeSlider->setRange(0, filePara.numberSamples );
1596 } 1596 }
1597 1597
1598 return true; 1598 return true;
1599} 1599}
1600 1600
1601void QtRec::listPressed( int mouse, QListViewItem *item, const QPoint &, int ) { 1601void QtRec::listPressed( int mouse, QListViewItem *item, const QPoint &, int ) {
1602 if(item == NULL ) 1602 if(item == NULL )
1603 return; 1603 return;
1604 switch (mouse) { 1604 switch (mouse) {
1605 case 1: { 1605 case 1: {
1606 if( renameBox != 0 ) //tricky 1606 if( renameBox != 0 ) //tricky
1607 cancelRename(); 1607 cancelRename();
1608 1608
1609 currentFile = item->text(0); 1609 currentFile = item->text(0);
1610 setCaption( "OpieRecord " + currentFile); 1610 setCaption( "OpieRecord " + currentFile);
1611 } 1611 }
1612 break; 1612 break;
1613 case 2: 1613 case 2:
1614 showListMenu(item); 1614 showListMenu(item);
1615 ListView1->clearSelection(); 1615 ListView1->clearSelection();
1616 break; 1616 break;
1617 }; 1617 };
1618} 1618}
1619 1619
1620void QtRec::showListMenu(QListViewItem * item) { 1620void QtRec::showListMenu(QListViewItem * item) {
1621 if(item == NULL) 1621 if(item == NULL)
1622 return; 1622 return;
1623 QPopupMenu *m = new QPopupMenu(this); 1623 QPopupMenu *m = new QPopupMenu(this);
1624 m->insertItem( tr("Play"), this, SLOT( doMenuPlay() )); 1624 m->insertItem( tr("Play"), this, SLOT( doMenuPlay() ));
1625 if(Ir::supported()) m->insertItem( tr( "Send with Ir" ), this, SLOT( doBeam() )); 1625 if(Ir::supported()) m->insertItem( tr( "Send with Ir" ), this, SLOT( doBeam() ));
1626 m->insertItem( tr( "Rename" ), this, SLOT( doRename() )); 1626 m->insertItem( tr( "Rename" ), this, SLOT( doRename() ));
1627 // #if defined (QTOPIA_INTERNAL_FSLP) 1627 // #if defined (QTOPIA_INTERNAL_FSLP)
1628 // m->insertItem( tr( "Properties" ), this, SLOT( doProperties() )); 1628 // m->insertItem( tr( "Properties" ), this, SLOT( doProperties() ));
1629 // #endif 1629 // #endif
1630 m->insertSeparator(); 1630 m->insertSeparator();
1631 m->insertItem( tr("Delete"), this, SLOT( deleteSound() ) ); 1631 m->insertItem( tr("Delete"), this, SLOT( deleteSound() ) );
1632 m->exec( QCursor::pos() ); 1632 m->exec( QCursor::pos() );
1633 qApp->processEvents(); 1633 qApp->processEvents();
1634} 1634}
1635 1635
1636void QtRec::fileBeamFinished( Ir *ir) { 1636void QtRec::fileBeamFinished( Ir *ir) {
1637 if(ir) 1637 if(ir)
1638 QMessageBox::message( tr("Ir Beam out"), tr("Ir sent.") ,tr("Ok") ); 1638 QMessageBox::message( tr("Ir Beam out"), tr("Ir sent.") ,tr("Ok") );
1639 1639
1640} 1640}
1641 1641
1642void QtRec::doBeam() { 1642void QtRec::doBeam() {
1643 qApp->processEvents(); 1643 qApp->processEvents();
1644 if( ListView1->currentItem() == NULL) 1644 if( ListView1->currentItem() == NULL)
1645 return; 1645 return;
1646 Ir ir; 1646 Ir ir;
1647 if( ir.supported()) { 1647 if( ir.supported()) {
1648 QString file = ListView1->currentItem()->text(0); 1648 QString file = ListView1->currentItem()->text(0);
1649 Config cfg("OpieRec"); 1649 Config cfg("OpieRec");
1650 cfg.setGroup("Sounds"); 1650 cfg.setGroup("Sounds");
1651 1651
1652 int nFiles = cfg.readNumEntry("NumberofFiles",0); 1652 int nFiles = cfg.readNumEntry("NumberofFiles",0);
1653 1653
1654 for(int i=0;i<nFiles+1;i++) { 1654 for(int i=0;i<nFiles+1;i++) {
1655 if( cfg.readEntry( QString::number( i),"").find( file, 0, true) != -1) { 1655 if( cfg.readEntry( QString::number( i),"").find( file, 0, true) != -1) {
1656 QString filePath = cfg.readEntry(file,""); 1656 QString filePath = cfg.readEntry(file,"");
1657 Ir *file = new Ir(this, "IR"); 1657 Ir *file = new Ir(this, "IR");
1658 connect( file, SIGNAL( done(Ir*)), 1658 connect( file, SIGNAL( done(Ir*)),
1659 this, SLOT( fileBeamFinished( Ir * ))); 1659 this, SLOT( fileBeamFinished(Ir*)));
1660 file->send( filePath, "OPieRec audio file\n" + filePath ); 1660 file->send( filePath, "OPieRec audio file\n" + filePath );
1661 } 1661 }
1662 } 1662 }
1663 } 1663 }
1664} 1664}
1665 1665
1666void QtRec::doMenuPlay() { 1666void QtRec::doMenuPlay() {
1667 qApp->processEvents(); 1667 qApp->processEvents();
1668 currentFile = ListView1->currentItem()->text(0); 1668 currentFile = ListView1->currentItem()->text(0);
1669} 1669}
1670 1670
1671void QtRec::doRename() { 1671void QtRec::doRename() {
1672 QRect r = ListView1->itemRect( ListView1->currentItem( )); 1672 QRect r = ListView1->itemRect( ListView1->currentItem( ));
1673 r = QRect( ListView1->viewportToContents( r.topLeft() ), r.size() ); 1673 r = QRect( ListView1->viewportToContents( r.topLeft() ), r.size() );
1674 r.setX( ListView1->contentsX() ); 1674 r.setX( ListView1->contentsX() );
1675 if ( r.width() > ListView1->visibleWidth() ) 1675 if ( r.width() > ListView1->visibleWidth() )
1676 r.setWidth( ListView1->visibleWidth() ); 1676 r.setWidth( ListView1->visibleWidth() );
1677 1677
1678 renameBox = new QLineEdit( ListView1->viewport(), "qt_renamebox" ); 1678 renameBox = new QLineEdit( ListView1->viewport(), "qt_renamebox" );
1679 renameBox->setFrame(true); 1679 renameBox->setFrame(true);
1680 1680
1681 renameBox->setText( ListView1->currentItem()->text(0) ); 1681 renameBox->setText( ListView1->currentItem()->text(0) );
1682 1682
1683 renameBox->selectAll(); 1683 renameBox->selectAll();
1684 renameBox->installEventFilter( this ); 1684 renameBox->installEventFilter( this );
1685 ListView1->addChild( renameBox, r.x(), r.y() ); 1685 ListView1->addChild( renameBox, r.x(), r.y() );
1686 renameBox->resize( r.size() ); 1686 renameBox->resize( r.size() );
1687 ListView1->viewport()->setFocusProxy( renameBox ); 1687 ListView1->viewport()->setFocusProxy( renameBox );
1688 renameBox->setFocus(); 1688 renameBox->setFocus();
1689 renameBox->show(); 1689 renameBox->show();
1690 1690
1691} 1691}
1692 1692
1693void QtRec::okRename() { 1693void QtRec::okRename() {
1694 qDebug(renameBox->text()); 1694 qDebug(renameBox->text());
1695 QString filename = renameBox->text(); 1695 QString filename = renameBox->text();
1696 cancelRename(); 1696 cancelRename();
1697 1697
1698 if( ListView1->currentItem() == NULL) 1698 if( ListView1->currentItem() == NULL)
1699 return; 1699 return;
1700 1700
1701 Config cfg("OpieRec"); 1701 Config cfg("OpieRec");
1702 cfg.setGroup("Sounds"); 1702 cfg.setGroup("Sounds");
1703 1703
1704 QString file = ListView1->currentItem()->text(0); 1704 QString file = ListView1->currentItem()->text(0);
1705 1705
1706 qDebug("filename is " + filename); 1706 qDebug("filename is " + filename);
1707 1707
1708 int nFiles = cfg.readNumEntry("NumberofFiles",0); 1708 int nFiles = cfg.readNumEntry("NumberofFiles",0);
1709 1709
1710 for(int i=0;i<nFiles+1;i++) { //look for file 1710 for(int i=0;i<nFiles+1;i++) { //look for file
1711 if( cfg.readEntry( QString::number(i),"").find(file,0,true) != -1) { 1711 if( cfg.readEntry( QString::number(i),"").find(file,0,true) != -1) {
1712 1712
1713 QString filePath = cfg.readEntry(file,""); 1713 QString filePath = cfg.readEntry(file,"");
1714 1714
1715 cfg.writeEntry( QString::number(i), filename ); 1715 cfg.writeEntry( QString::number(i), filename );
1716 cfg.writeEntry( filename, filePath ); 1716 cfg.writeEntry( filename, filePath );
1717 cfg.removeEntry( file); 1717 cfg.removeEntry( file);
1718 cfg.write(); 1718 cfg.write();
1719 } 1719 }
1720 } 1720 }
1721 1721
1722 ListView1->takeItem( ListView1->currentItem() ); 1722 ListView1->takeItem( ListView1->currentItem() );
1723 delete ListView1->currentItem(); 1723 delete ListView1->currentItem();
1724 ListView1->clear(); 1724 ListView1->clear();
1725 initIconView(); 1725 initIconView();
1726 update(); 1726 update();
1727} 1727}
1728 1728
1729void QtRec::cancelRename() { 1729void QtRec::cancelRename() {
1730 bool resetFocus = ListView1->viewport()->focusProxy() == renameBox; 1730 bool resetFocus = ListView1->viewport()->focusProxy() == renameBox;
1731 delete renameBox; 1731 delete renameBox;
1732 renameBox = 0; 1732 renameBox = 0;
1733 if ( resetFocus ) { 1733 if ( resetFocus ) {
1734 ListView1->viewport()->setFocusProxy( ListView1 ); 1734 ListView1->viewport()->setFocusProxy( ListView1 );
1735 ListView1->setFocus(); 1735 ListView1->setFocus();
1736 } 1736 }
1737} 1737}
1738 1738
1739bool QtRec::eventFilter( QObject * o, QEvent * e ) { 1739bool QtRec::eventFilter( QObject * o, QEvent * e ) {
1740 if ( o->inherits( "QLineEdit" ) ) { 1740 if ( o->inherits( "QLineEdit" ) ) {
1741 if ( e->type() == QEvent::KeyPress ) { 1741 if ( e->type() == QEvent::KeyPress ) {
1742 QKeyEvent *ke = (QKeyEvent*)e; 1742 QKeyEvent *ke = (QKeyEvent*)e;
1743 if ( ke->key() == Key_Return || 1743 if ( ke->key() == Key_Return ||
1744 ke->key() == Key_Enter ) { 1744 ke->key() == Key_Enter ) {
1745 okRename(); 1745 okRename();
1746 return true; 1746 return true;
1747 } else if ( ke->key() == Key_Escape ) { 1747 } else if ( ke->key() == Key_Escape ) {
1748 cancelRename(); 1748 cancelRename();
1749 return true; 1749 return true;
1750 } 1750 }
1751 } else if ( e->type() == QEvent::FocusOut ) { 1751 } else if ( e->type() == QEvent::FocusOut ) {
1752 cancelRename(); 1752 cancelRename();
1753 return true; 1753 return true;
1754 } 1754 }
1755 } 1755 }
1756 return QWidget::eventFilter( o, e ); 1756 return QWidget::eventFilter( o, e );
1757} 1757}
1758 1758
1759 1759
1760int QtRec::getCurrentSizeLimit() { 1760int QtRec::getCurrentSizeLimit() {
1761 return sizeLimitCombo->currentItem() * 5; 1761 return sizeLimitCombo->currentItem() * 5;
1762} 1762}
1763 1763
1764void QtRec::timerBreak() { 1764void QtRec::timerBreak() {
1765 endPlaying(); 1765 endPlaying();
1766} 1766}
1767 1767
1768void QtRec::doVolMuting(bool b) { 1768void QtRec::doVolMuting(bool b) {
1769 Config cfg( "qpe" ); 1769 Config cfg( "qpe" );
1770 cfg. setGroup( "Volume" ); 1770 cfg. setGroup( "Volume" );
1771 cfg.writeEntry( "Mute",b); 1771 cfg.writeEntry( "Mute",b);
1772 cfg.write(); 1772 cfg.write();
1773 QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << b; 1773 QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << b;
1774} 1774}
1775 1775
1776void QtRec::doMicMuting(bool b) { 1776void QtRec::doMicMuting(bool b) {
1777 // qDebug("mic mute"); 1777 // qDebug("mic mute");
1778 Config cfg( "qpe" ); 1778 Config cfg( "qpe" );
1779 cfg. setGroup( "Volume" ); 1779 cfg. setGroup( "Volume" );
1780 cfg.writeEntry( "MicMute",b); 1780 cfg.writeEntry( "MicMute",b);
1781 cfg.write(); 1781 cfg.write();
1782 QCopEnvelope( "QPE/System", "micChange(bool)" ) << b; 1782 QCopEnvelope( "QPE/System", "micChange(bool)" ) << b;
1783} 1783}
1784 1784
1785void QtRec::compressionSelected(bool b) { 1785void QtRec::compressionSelected(bool b) {
1786 Config cfg("OpieRec"); 1786 Config cfg("OpieRec");
1787 cfg.setGroup("Settings"); 1787 cfg.setGroup("Settings");
1788 cfg.writeEntry("wavCompression", b); 1788 cfg.writeEntry("wavCompression", b);
1789 cfg.writeEntry("bitrate", 16); 1789 cfg.writeEntry("bitrate", 16);
1790 filePara.resolution = 16; 1790 filePara.resolution = 16;
1791 cfg.write(); 1791 cfg.write();
1792 1792
1793 if(b) { 1793 if(b) {
1794 bitRateComboBox->setEnabled( false); 1794 bitRateComboBox->setEnabled( false);
1795 bitRateComboBox->setCurrentItem( 0); 1795 bitRateComboBox->setCurrentItem( 0);
1796 filePara.resolution = 16; 1796 filePara.resolution = 16;
1797 } else{ 1797 } else{
1798 bitRateComboBox->setEnabled( true); 1798 bitRateComboBox->setEnabled( true);
1799 } 1799 }
1800} 1800}
1801 1801
1802long QtRec::checkDiskSpace(const QString &path) { 1802long QtRec::checkDiskSpace(const QString &path) {
1803 1803
1804 struct statfs fs; 1804 struct statfs fs;
1805 1805
1806 if ( !statfs( path.latin1(), &fs ) ) { 1806 if ( !statfs( path.latin1(), &fs ) ) {
1807 1807
1808 int blkSize = fs.f_bsize; 1808 int blkSize = fs.f_bsize;
1809 int availBlks = fs.f_bavail; 1809 int availBlks = fs.f_bavail;
1810 1810
1811 long mult = blkSize / 1024; 1811 long mult = blkSize / 1024;
1812 long div = 1024 / blkSize; 1812 long div = 1024 / blkSize;
1813 1813
1814 if ( !mult ) mult = 1; 1814 if ( !mult ) mult = 1;
1815 if ( !div ) div = 1; 1815 if ( !div ) div = 1;
1816 1816
1817 return availBlks * mult / div; 1817 return availBlks * mult / div;
1818 } 1818 }
1819 return -1; 1819 return -1;
1820} 1820}
1821 1821
1822// short f_fstyp; /* File system type */ 1822// short f_fstyp; /* File system type */
1823// long f_bsize; /* Block size */ 1823// long f_bsize; /* Block size */
1824// long f_frsize; /* Fragment size */ 1824// long f_frsize; /* Fragment size */
1825// long f_blocks; /* Total number of blocks*/ 1825// long f_blocks; /* Total number of blocks*/
1826// long f_bfree; /* Count of free blocks */ 1826// long f_bfree; /* Count of free blocks */
1827// long f_files; /* Total number of file nodes */ 1827// long f_files; /* Total number of file nodes */
1828// long f_ffree; /* Count of free file nodes */ 1828// long f_ffree; /* Count of free file nodes */
1829// char f_fname[6]; /* Volumename */ 1829// char f_fname[6]; /* Volumename */
1830// char f_fpack[6]; /* Pack name */ 1830// char f_fpack[6]; /* Pack name */
1831 1831
1832void QtRec::receive( const QCString &msg, const QByteArray & ) { 1832void QtRec::receive( const QCString &msg, const QByteArray & ) {
1833 qDebug("Voicerecord received message "+msg); 1833 qDebug("Voicerecord received message "+msg);
1834 1834
1835} 1835}
1836 1836
1837 1837
1838///////////////////////////// timerEvent 1838///////////////////////////// timerEvent
1839void QtRec::timerEvent( QTimerEvent * ) { 1839void QtRec::timerEvent( QTimerEvent * ) {
1840 1840
1841// if(!recording) 1841// if(!recording)
1842// timeSlider->setValue( secCount); 1842// timeSlider->setValue( secCount);
1843// else 1843// else
1844// timeSlider->setValue( filePara.numberOfRecordedSeconds); 1844// timeSlider->setValue( filePara.numberOfRecordedSeconds);
1845 1845
1846 if( stopped && playing) { 1846 if( stopped && playing) {
1847 stop(); 1847 stop();
1848 } 1848 }
1849 1849
1850 if( stopped && recording ){ 1850 if( stopped && recording ){
1851 stop(); 1851 stop();
diff --git a/noncore/multimedia/powerchord/powerchordbase.cpp b/noncore/multimedia/powerchord/powerchordbase.cpp
index 0b97984..7978426 100644
--- a/noncore/multimedia/powerchord/powerchordbase.cpp
+++ b/noncore/multimedia/powerchord/powerchordbase.cpp
@@ -195,391 +195,391 @@ PowerchordBase::PowerchordBase( QWidget* parent, const char* name, WFlags fl )
195 chordshow_label->setGeometry( QRect( 185, 60, 32, 17 ) ); 195 chordshow_label->setGeometry( QRect( 185, 60, 32, 17 ) );
196 // chordshow_label->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, chordshow_label->sizePolicy().hasHeightForWidth() ) ); 196 // chordshow_label->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, chordshow_label->sizePolicy().hasHeightForWidth() ) );
197 chordshow_label->setFrameShape( QLabel::NoFrame ); 197 chordshow_label->setFrameShape( QLabel::NoFrame );
198 chordshow_label->setPixmap( image1 ); 198 chordshow_label->setPixmap( image1 );
199 chordshow_label->setScaledContents( TRUE ); 199 chordshow_label->setScaledContents( TRUE );
200 // chordshow_label->setBackgroundMode( QWidget::PaletteButton ); 200 // chordshow_label->setBackgroundMode( QWidget::PaletteButton );
201 201
202 transport_rec = new QPushButton( tab, "transport_rec" ); 202 transport_rec = new QPushButton( tab, "transport_rec" );
203 transport_rec->setGeometry( QRect( 170, 80, 30, 30 ) ); 203 transport_rec->setGeometry( QRect( 170, 80, 30, 30 ) );
204 transport_rec->setText( tr( "" ) ); 204 transport_rec->setText( tr( "" ) );
205 transport_rec->setPixmap( image2 ); 205 transport_rec->setPixmap( image2 );
206 206
207 play_sound = new QPushButton( tab, "play_sound" ); 207 play_sound = new QPushButton( tab, "play_sound" );
208 play_sound->setGeometry( QRect( 170, 180, 60, 55 ) ); 208 play_sound->setGeometry( QRect( 170, 180, 60, 55 ) );
209 play_sound->setText( tr( "" ) ); 209 play_sound->setText( tr( "" ) );
210 play_sound->setPixmap( image3 ); 210 play_sound->setPixmap( image3 );
211 211
212 Frame6_2 = new QFrame( tab, "Frame6_2" ); 212 Frame6_2 = new QFrame( tab, "Frame6_2" );
213 Frame6_2->setGeometry( QRect( 170, 45, 66, 10 ) ); 213 Frame6_2->setGeometry( QRect( 170, 45, 66, 10 ) );
214 Frame6_2->setFrameShape( QFrame::HLine ); 214 Frame6_2->setFrameShape( QFrame::HLine );
215 Frame6_2->setFrameShadow( QFrame::Raised ); 215 Frame6_2->setFrameShadow( QFrame::Raised );
216 216
217 transport_play = new QPushButton( tab, "transport_play" ); 217 transport_play = new QPushButton( tab, "transport_play" );
218 transport_play->setEnabled( FALSE ); 218 transport_play->setEnabled( FALSE );
219 transport_play->setGeometry( QRect( 200, 80, 30, 30 ) ); 219 transport_play->setGeometry( QRect( 200, 80, 30, 30 ) );
220 transport_play->setText( tr( "" ) ); 220 transport_play->setText( tr( "" ) );
221 transport_play->setPixmap( image3 ); 221 transport_play->setPixmap( image3 );
222 222
223 transport_rew = new QPushButton( tab, "transport_rew" ); 223 transport_rew = new QPushButton( tab, "transport_rew" );
224 transport_rew->setEnabled( FALSE ); 224 transport_rew->setEnabled( FALSE );
225 transport_rew->setGeometry( QRect( 170, 110, 30, 30 ) ); 225 transport_rew->setGeometry( QRect( 170, 110, 30, 30 ) );
226 transport_rew->setText( tr( "" ) ); 226 transport_rew->setText( tr( "" ) );
227 transport_rew->setPixmap( image4 ); 227 transport_rew->setPixmap( image4 );
228 228
229 transport_fwd = new QPushButton( tab, "transport_fwd" ); 229 transport_fwd = new QPushButton( tab, "transport_fwd" );
230 transport_fwd->setEnabled( FALSE ); 230 transport_fwd->setEnabled( FALSE );
231 transport_fwd->setGeometry( QRect( 200, 110, 30, 30 ) ); 231 transport_fwd->setGeometry( QRect( 200, 110, 30, 30 ) );
232 transport_fwd->setText( tr( "" ) ); 232 transport_fwd->setText( tr( "" ) );
233 transport_fwd->setPixmap( image5 ); 233 transport_fwd->setPixmap( image5 );
234 234
235 chordname = new QLabel( tab, "chordname" ); 235 chordname = new QLabel( tab, "chordname" );
236 chordname->setGeometry( QRect( 146, 0, 90, 20 ) ); //cxm moved l 5 236 chordname->setGeometry( QRect( 146, 0, 90, 20 ) ); //cxm moved l 5
237 chordname->setText( tr( "A" ) ); 237 chordname->setText( tr( "A" ) );
238 chordname->setAlignment( int( QLabel::AlignCenter ) ); 238 chordname->setAlignment( int( QLabel::AlignCenter ) );
239 QToolTip::add( chordname, tr( "" ) ); 239 QToolTip::add( chordname, tr( "" ) );
240 240
241 synth = new gs(); 241 synth = new gs();
242 tuner = new gt(); 242 tuner = new gt();
243 frets = new FretBoard( tab, "frets" ); 243 frets = new FretBoard( tab, "frets" );
244 frets->setGeometry( QRect( 0, 20, 168, 210 ) ); 244 frets->setGeometry( QRect( 0, 20, 168, 210 ) );
245 tabs->insertTab( tab, tr( "Guitar" ) ); 245 tabs->insertTab( tab, tr( "Guitar" ) );
246 246
247 tab_2 = new QWidget( tabs, "tab_2" ); 247 tab_2 = new QWidget( tabs, "tab_2" );
248 248
249 optlab2 = new QLabel( tab_2, "optlab2" ); 249 optlab2 = new QLabel( tab_2, "optlab2" );
250 optlab2->setGeometry( QRect( 9, 58, 120, 41 ) ); 250 optlab2->setGeometry( QRect( 9, 58, 120, 41 ) );
251 optlab2->setText( tr( "Alternative tunings are possible" ) ); 251 optlab2->setText( tr( "Alternative tunings are possible" ) );
252 optlab2->setAlignment( int( QLabel::WordBreak | QLabel::AlignVCenter | QLabel::AlignLeft ) ); 252 optlab2->setAlignment( int( QLabel::WordBreak | QLabel::AlignVCenter | QLabel::AlignLeft ) );
253 253
254 span = new QComboBox( FALSE, tab_2, "span" ); 254 span = new QComboBox( FALSE, tab_2, "span" );
255 span->insertItem( tr( "2" ) ); 255 span->insertItem( tr( "2" ) );
256 span->insertItem( tr( "3" ) ); 256 span->insertItem( tr( "3" ) );
257 span->insertItem( tr( "4" ) ); 257 span->insertItem( tr( "4" ) );
258 span->insertItem( tr( "5" ) ); 258 span->insertItem( tr( "5" ) );
259 span->insertItem( tr( "6" ) ); 259 span->insertItem( tr( "6" ) );
260 span->setGeometry( QRect( 180, 20, 50, 21 ) ); 260 span->setGeometry( QRect( 180, 20, 50, 21 ) );
261 span->setCurrentItem( 1 ); 261 span->setCurrentItem( 1 );
262 262
263 TextLabel1 = new QLabel( tab_2, "TextLabel1" ); 263 TextLabel1 = new QLabel( tab_2, "TextLabel1" );
264 TextLabel1->setGeometry( QRect( 3, 109, 226, 140 ) ); 264 TextLabel1->setGeometry( QRect( 3, 109, 226, 140 ) );
265 TextLabel1->setText( tr( QString::fromUtf8( "©2002 Camilo Mesias\n" 265 TextLabel1->setText( tr( QString::fromUtf8( "©2002 Camilo Mesias\n"
266"camilo@mesias.co.uk\n" 266"camilo@mesias.co.uk\n"
267"Version 0.0.7 beta" ) ) ); 267"Version 0.0.7 beta" ) ) );
268 TextLabel1->setAlignment( int( QLabel::AlignBottom | QLabel::AlignLeft ) ); 268 TextLabel1->setAlignment( int( QLabel::AlignBottom | QLabel::AlignLeft ) );
269 269
270 tuning = new QComboBox( FALSE, tab_2, "tuning" ); 270 tuning = new QComboBox( FALSE, tab_2, "tuning" );
271 tuning->insertItem( tr( "EADGBE" ) ); 271 tuning->insertItem( tr( "EADGBE" ) );
272 tuning->insertItem( tr( "EBEG#BE" ) ); 272 tuning->insertItem( tr( "EBEG#BE" ) );
273 tuning->insertItem( tr( "EAEAC#E" ) ); 273 tuning->insertItem( tr( "EAEAC#E" ) );
274 tuning->insertItem( tr( "EADF#BE" ) ); 274 tuning->insertItem( tr( "EADF#BE" ) );
275 tuning->insertItem( tr( "EADGCF" ) ); 275 tuning->insertItem( tr( "EADGCF" ) );
276 tuning->insertItem( tr( "DADGAD" ) ); 276 tuning->insertItem( tr( "DADGAD" ) );
277 tuning->insertItem( tr( "DGCGCD" ) ); 277 tuning->insertItem( tr( "DGCGCD" ) );
278 tuning->insertItem( tr( "DADF#AD" ) ); 278 tuning->insertItem( tr( "DADF#AD" ) );
279 tuning->insertItem( tr( "DADGBE" ) ); 279 tuning->insertItem( tr( "DADGBE" ) );
280 tuning->insertItem( tr( "DGDGBD" ) ); 280 tuning->insertItem( tr( "DGDGBD" ) );
281 tuning->insertItem( tr( "DADACD" ) ); 281 tuning->insertItem( tr( "DADACD" ) );
282 tuning->insertItem( tr( "CGCGAE" ) ); 282 tuning->insertItem( tr( "CGCGAE" ) );
283 tuning->insertItem( tr( "FADGBE" ) ); 283 tuning->insertItem( tr( "FADGBE" ) );
284 tuning->insertItem( tr( "G minor" ) ); 284 tuning->insertItem( tr( "G minor" ) );
285 tuning->setGeometry( QRect( 140, 70, 91, 21 ) ); 285 tuning->setGeometry( QRect( 140, 70, 91, 21 ) );
286 286
287 optlab1 = new QLabel( tab_2, "optlab1" ); 287 optlab1 = new QLabel( tab_2, "optlab1" );
288 optlab1->setGeometry( QRect( 8, 8, 160, 40 ) ); 288 optlab1->setGeometry( QRect( 8, 8, 160, 40 ) );
289 optlab1->setText( tr( "Span: the greatest number of frets over which you want chords to be generated" ) ); 289 optlab1->setText( tr( "Span: the greatest number of frets over which you want chords to be generated" ) );
290 optlab1->setAlignment( int( QLabel::WordBreak | QLabel::AlignVCenter | QLabel::AlignLeft ) ); 290 optlab1->setAlignment( int( QLabel::WordBreak | QLabel::AlignVCenter | QLabel::AlignLeft ) );
291 tabs->insertTab( tab_2, tr( "Options" ) ); 291 tabs->insertTab( tab_2, tr( "Options" ) );
292 292
293 Tuner = new QWidget( tabs, "Tuner" ); 293 Tuner = new QWidget( tabs, "Tuner" );
294 294
295 Frame4 = new QFrame( Tuner, "Frame4" ); 295 Frame4 = new QFrame( Tuner, "Frame4" );
296 Frame4->setGeometry( QRect( 0, 0, 230, 126 ) ); 296 Frame4->setGeometry( QRect( 0, 0, 230, 126 ) );
297 Frame4->setFrameShape( QFrame::Box ); 297 Frame4->setFrameShape( QFrame::Box );
298 Frame4->setFrameShadow( QFrame::Raised ); 298 Frame4->setFrameShadow( QFrame::Raised );
299 299
300 vu = new VUMeter( Frame4, "vu" ); 300 vu = new VUMeter( Frame4, "vu" );
301 vu->setGeometry( QRect( 5, 5, 220, 115 ) ); 301 vu->setGeometry( QRect( 5, 5, 220, 115 ) );
302 302
303 tuner_note = new QComboBox( FALSE, Tuner, "tuner_note" ); 303 tuner_note = new QComboBox( FALSE, Tuner, "tuner_note" );
304 tuner_note->insertItem( tr( "auto" ) ); 304 tuner_note->insertItem( tr( "auto" ) );
305 tuner_note->insertItem( tr( "E" ) ); 305 tuner_note->insertItem( tr( "E" ) );
306 tuner_note->insertItem( tr( "D" ) ); 306 tuner_note->insertItem( tr( "D" ) );
307 tuner_note->insertItem( tr( "G" ) ); 307 tuner_note->insertItem( tr( "G" ) );
308 tuner_note->insertItem( tr( "A" ) ); 308 tuner_note->insertItem( tr( "A" ) );
309 tuner_note->insertItem( tr( "B" ) ); 309 tuner_note->insertItem( tr( "B" ) );
310 tuner_note->insertItem( tr( "C" ) ); 310 tuner_note->insertItem( tr( "C" ) );
311 tuner_note->insertItem( tr( "F" ) ); 311 tuner_note->insertItem( tr( "F" ) );
312 tuner_note->setGeometry( QRect( 5, 160, 90, 20 ) ); 312 tuner_note->setGeometry( QRect( 5, 160, 90, 20 ) );
313 313
314 Frame8 = new QFrame( Tuner, "Frame8" ); 314 Frame8 = new QFrame( Tuner, "Frame8" );
315 Frame8->setGeometry( QRect( -2, 188, 231, 10 ) ); 315 Frame8->setGeometry( QRect( -2, 188, 231, 10 ) );
316 Frame8->setFrameShape( QFrame::HLine ); 316 Frame8->setFrameShape( QFrame::HLine );
317 Frame8->setFrameShadow( QFrame::Raised ); 317 Frame8->setFrameShadow( QFrame::Raised );
318 318
319 tuner_start = new QPushButton( Tuner, "tuner_start" ); 319 tuner_start = new QPushButton( Tuner, "tuner_start" );
320 tuner_start->setGeometry( QRect( 100, 155, 91, 30 ) ); 320 tuner_start->setGeometry( QRect( 100, 155, 91, 30 ) );
321 tuner_start->setText( tr( "Start" ) ); 321 tuner_start->setText( tr( "Start" ) );
322 322
323 tuner_lab1 = new QLabel( Tuner, "tuner_lab1" ); 323 tuner_lab1 = new QLabel( Tuner, "tuner_lab1" );
324 tuner_lab1->setGeometry( QRect( 10, 130, 100, 21 ) ); 324 tuner_lab1->setGeometry( QRect( 10, 130, 100, 21 ) );
325 tuner_lab1->setText( tr( "Tuner operation" ) ); 325 tuner_lab1->setText( tr( "Tuner operation" ) );
326 326
327 tuner_lab2 = new QLabel( Tuner, "tuner_lab2" ); 327 tuner_lab2 = new QLabel( Tuner, "tuner_lab2" );
328 tuner_lab2->setGeometry( QRect( 10, 200, 100, 16 ) ); 328 tuner_lab2->setGeometry( QRect( 10, 200, 100, 16 ) );
329 tuner_lab2->setText( tr( "Pitch calibration" ) ); 329 tuner_lab2->setText( tr( "Pitch calibration" ) );
330 330
331 tuner_calib_note = new QComboBox( FALSE, Tuner, "tuner_calib_note" ); 331 tuner_calib_note = new QComboBox( FALSE, Tuner, "tuner_calib_note" );
332 tuner_calib_note->insertItem( tr( "A" ) ); 332 tuner_calib_note->insertItem( tr( "A" ) );
333 tuner_calib_note->insertItem( tr( "C" ) ); 333 tuner_calib_note->insertItem( tr( "C" ) );
334 tuner_calib_note->setGeometry( QRect( 5, 225, 90, 21 ) ); 334 tuner_calib_note->setGeometry( QRect( 5, 225, 90, 21 ) );
335 335
336 tuner_calib_freq = new QSpinBox( Tuner, "tuner_calib_freq" ); 336 tuner_calib_freq = new QSpinBox( Tuner, "tuner_calib_freq" );
337 tuner_calib_freq->setGeometry( QRect( 105, 225, 71, 21 ) ); 337 tuner_calib_freq->setGeometry( QRect( 105, 225, 71, 21 ) );
338 tuner_calib_freq->setSuffix( tr( "Hz" ) ); 338 tuner_calib_freq->setSuffix( tr( "Hz" ) );
339 tuner_calib_freq->setWrapping( TRUE ); 339 tuner_calib_freq->setWrapping( TRUE );
340 tuner_calib_freq->setMaxValue( 500 ); 340 tuner_calib_freq->setMaxValue( 500 );
341 tuner_calib_freq->setMinValue( 300 ); 341 tuner_calib_freq->setMinValue( 300 );
342 tuner_calib_freq->setValue( 440 ); 342 tuner_calib_freq->setValue( 440 );
343 343
344 tuner_lab3 = new QLabel( Tuner, "tuner_lab3" ); 344 tuner_lab3 = new QLabel( Tuner, "tuner_lab3" );
345 tuner_lab3->setGeometry( QRect( 185, 225, 40, 21 ) ); 345 tuner_lab3->setGeometry( QRect( 185, 225, 40, 21 ) );
346 tuner_lab3->setText( tr( "Pitch" ) ); 346 tuner_lab3->setText( tr( "Pitch" ) );
347 347
348 tuner_pic1 = new QLabel( Tuner, "tuner_pic1" ); 348 tuner_pic1 = new QLabel( Tuner, "tuner_pic1" );
349 tuner_pic1->setGeometry( QRect( 195, 155, 31, 31 ) ); 349 tuner_pic1->setGeometry( QRect( 195, 155, 31, 31 ) );
350 tuner_pic1->setFrameShape( QLabel::NoFrame ); 350 tuner_pic1->setFrameShape( QLabel::NoFrame );
351 tuner_pic1->setPixmap( image6 ); 351 tuner_pic1->setPixmap( image6 );
352 tuner_pic1->setScaledContents( TRUE ); 352 tuner_pic1->setScaledContents( TRUE );
353 tabs->insertTab( Tuner, tr( "Tuner" ) ); 353 tabs->insertTab( Tuner, tr( "Tuner" ) );
354 354
355 tab_3 = new QWidget( tabs, "tab_3" ); 355 tab_3 = new QWidget( tabs, "tab_3" );
356 356
357 chordlistlab1 = new QLabel( tab_3, "chordlistlab1" ); 357 chordlistlab1 = new QLabel( tab_3, "chordlistlab1" );
358 chordlistlab1->setGeometry( QRect( 5, 5, 216, 16 ) ); 358 chordlistlab1->setGeometry( QRect( 5, 5, 216, 16 ) );
359 chordlistlab1->setText( tr( "Chord list" ) ); 359 chordlistlab1->setText( tr( "Chord list" ) );
360 360
361 chordlist = new QListBox( tab_3, "chordlist" ); 361 chordlist = new QListBox( tab_3, "chordlist" );
362 chordlist->setGeometry( QRect( 5, 25, 220, 200 ) ); 362 chordlist->setGeometry( QRect( 5, 25, 220, 200 ) );
363 363
364 list_remove_btn = new QPushButton( tab_3, "list_remove_btn" ); 364 list_remove_btn = new QPushButton( tab_3, "list_remove_btn" );
365 list_remove_btn->setGeometry( QRect( 150, 230, 71, 25 ) ); 365 list_remove_btn->setGeometry( QRect( 150, 230, 71, 25 ) );
366 list_remove_btn->setText( tr( "Remove" ) ); 366 list_remove_btn->setText( tr( "Remove" ) );
367 tabs->insertTab( tab_3, tr( "Chords" ) ); 367 tabs->insertTab( tab_3, tr( "Chords" ) );
368 368
369 // hope this does what it's supposed to!! 369 // hope this does what it's supposed to!!
370 // setPalette( QPalette( QColor( 232, 227, 215) ) ); 370 // setPalette( QPalette( QColor( 232, 227, 215) ) );
371 371
372 // signals and slots connections 372 // signals and slots connections
373 373
374 //cxm 374 //cxm
375 connect( tuning, SIGNAL( activated(int) ), frets, SLOT( Tune(int) ) ); 375 connect( tuning, SIGNAL( activated(int) ), frets, SLOT( Tune(int) ) );
376 connect( span, SIGNAL( activated(int) ), frets, SLOT( Span(int) ) ); 376 connect( span, SIGNAL( activated(int) ), frets, SLOT( Span(int) ) );
377 connect( transport_rec, SIGNAL( clicked() ), this, SLOT( transport_rec_cb() )); 377 connect( transport_rec, SIGNAL( clicked() ), this, SLOT( transport_rec_cb() ));
378 connect( play_sound, SIGNAL( clicked() ), this, SLOT( play_chord_cb() )); 378 connect( play_sound, SIGNAL( clicked() ), this, SLOT( play_chord_cb() ));
379 connect( tuner_start, SIGNAL( clicked() ), this, SLOT( tuner_start_cb() )); 379 connect( tuner_start, SIGNAL( clicked() ), this, SLOT( tuner_start_cb() ));
380 connect( tuner_note, SIGNAL( textChanged(const QString&) ), vu, SLOT( AnnotL(const QString&) )); 380 connect( tuner_note, SIGNAL( textChanged(const QString&) ), vu, SLOT( AnnotL(const QString&) ));
381 connect( this, SIGNAL( frequency_change(int) ), vu, SLOT( Value(int) )); 381 connect( this, SIGNAL( frequency_change(int) ), vu, SLOT( Value(int) ));
382 382
383 connect( chordnote, SIGNAL( activated(int) ), frets, SLOT( Base(int) ) ); 383 connect( chordnote, SIGNAL( activated(int) ), frets, SLOT( Base(int) ) );
384 connect( chordkey, SIGNAL( activated(int) ), frets, SLOT( Chord(int) ) ); 384 connect( chordkey, SIGNAL( activated(int) ), frets, SLOT( Chord(int) ) );
385 connect( chordfret, SIGNAL( activated(int) ), frets, SLOT( Fret(int) ) ); 385 connect( chordfret, SIGNAL( activated(int) ), frets, SLOT( Fret(int) ) );
386 connect( list_remove_btn, SIGNAL( clicked() ), this, SLOT( list_remove_cb() ) ); 386 connect( list_remove_btn, SIGNAL( clicked() ), this, SLOT( list_remove_cb() ) );
387 connect( frets, SIGNAL( s1nameChanged(const QString &) ), s1_1, SLOT( setText(const QString&) ) ); 387 connect( frets, SIGNAL( s1nameChanged(const QString&) ), s1_1, SLOT( setText(const QString&) ) );
388 connect( frets, SIGNAL( s2nameChanged(const QString &) ), s1_2, SLOT( setText(const QString&) ) ); 388 connect( frets, SIGNAL( s2nameChanged(const QString&) ), s1_2, SLOT( setText(const QString&) ) );
389 connect( frets, SIGNAL( s3nameChanged(const QString &) ), s1_3, SLOT( setText(const QString&) ) ); 389 connect( frets, SIGNAL( s3nameChanged(const QString&) ), s1_3, SLOT( setText(const QString&) ) );
390 connect( frets, SIGNAL( s4nameChanged(const QString &) ), s1_4, SLOT( setText(const QString&) ) ); 390 connect( frets, SIGNAL( s4nameChanged(const QString&) ), s1_4, SLOT( setText(const QString&) ) );
391 connect( frets, SIGNAL( s5nameChanged(const QString &) ), s1_5, SLOT( setText(const QString&) ) ); 391 connect( frets, SIGNAL( s5nameChanged(const QString&) ), s1_5, SLOT( setText(const QString&) ) );
392 connect( frets, SIGNAL( s6nameChanged(const QString &) ), s1_6, SLOT( setText(const QString&) ) ); 392 connect( frets, SIGNAL( s6nameChanged(const QString&) ), s1_6, SLOT( setText(const QString&) ) );
393 connect( frets, SIGNAL( nameChanged(const QString &) ), chordname, SLOT( setText(const QString&) ) ); 393 connect( frets, SIGNAL( nameChanged(const QString&) ), chordname, SLOT( setText(const QString&) ) );
394} 394}
395 395
396 396
397static int known=0; 397static int known=0;
398#include <qmessagebox.h> 398#include <qmessagebox.h>
399void PowerchordBase::transport_rec_cb(){ 399void PowerchordBase::transport_rec_cb(){
400 chordlist->insertItem(chordname->text(),-1); 400 chordlist->insertItem(chordname->text(),-1);
401 if (!known){ 401 if (!known){
402 QMessageBox::information(this, "Powerchord", "This chord has been saved\ninto the list of chords,\nfor later playback."); 402 QMessageBox::information(this, "Powerchord", "This chord has been saved\ninto the list of chords,\nfor later playback.");
403 known = 1; 403 known = 1;
404 } 404 }
405} 405}
406void PowerchordBase::list_remove_cb(){ 406void PowerchordBase::list_remove_cb(){
407 if (chordlist->count() > 0){ 407 if (chordlist->count() > 0){
408 chordlist->removeItem(0); 408 chordlist->removeItem(0);
409 } 409 }
410} 410}
411void PowerchordBase::play_chord_cb(){ 411void PowerchordBase::play_chord_cb(){
412 // QMessageBox::information(this, "Coming soon!", "This button plays\nthe chord by synthesizing\nthe sound of the notes."); 412 // QMessageBox::information(this, "Coming soon!", "This button plays\nthe chord by synthesizing\nthe sound of the notes.");
413 413
414 414
415 if (audio_timer){ 415 if (audio_timer){
416 audio_timer->stop(); 416 audio_timer->stop();
417 // set pixmap? 417 // set pixmap?
418 synth->Stop(); 418 synth->Stop();
419 delete(audio_timer); 419 delete(audio_timer);
420 audio_timer = 0; 420 audio_timer = 0;
421 }else{ 421 }else{
422 // get notes from chord engine 422 // get notes from chord engine
423 423
424 int note; 424 int note;
425 int base; 425 int base;
426 int octave; 426 int octave;
427 note = frets->ce.noteindex(0); 427 note = frets->ce.noteindex(0);
428 if (note >= 0){ 428 if (note >= 0){
429 //fprintf(stderr, "Note was %d\n", note); 429 //fprintf(stderr, "Note was %d\n", note);
430 base = note % 12; 430 base = note % 12;
431 octave = note / 12; 431 octave = note / 12;
432 synth->note_start(0, base, octave); 432 synth->note_start(0, base, octave);
433 }else{ 433 }else{
434 // subtle bug here - replay second note if 1st one muted 434 // subtle bug here - replay second note if 1st one muted
435 note = frets->ce.noteindex(1); 435 note = frets->ce.noteindex(1);
436 base = note % 12; 436 base = note % 12;
437 octave = note / 12; 437 octave = note / 12;
438 synth->note_start(1, base, octave); 438 synth->note_start(1, base, octave);
439 439
440 } 440 }
441 441
442 // init synth 442 // init synth
443 if (synth->Play()){ 443 if (synth->Play()){
444 // error 444 // error
445 QMessageBox::information(this, "Powerchord", "Unable to open device for sound playback - check that no other application is using it."); 445 QMessageBox::information(this, "Powerchord", "Unable to open device for sound playback - check that no other application is using it.");
446 return; 446 return;
447 } 447 }
448 synth->fill_buffer(); 448 synth->fill_buffer();
449 449
450 // start timer 450 // start timer
451 audio_timer = new QTimer(); 451 audio_timer = new QTimer();
452 connect(audio_timer, SIGNAL( timeout() ), this, SLOT( audio_cb() )); 452 connect(audio_timer, SIGNAL( timeout() ), this, SLOT( audio_cb() ));
453 // set pixmap on player? 453 // set pixmap on player?
454 audio_timer->start(19); // 19 msec (fudge factor!!) 454 audio_timer->start(19); // 19 msec (fudge factor!!)
455 } 455 }
456} 456}
457 457
458 458
459 459
460void PowerchordBase::audio_cb(){ 460void PowerchordBase::audio_cb(){
461 // play the next bit of audio until quiet 461 // play the next bit of audio until quiet
462 462
463 // strum timing 463 // strum timing
464#define INTERVAL 2 464#define INTERVAL 2
465 465
466 if ((synth->Frames() % INTERVAL) == 0){ 466 if ((synth->Frames() % INTERVAL) == 0){
467 int string = synth->Frames() / INTERVAL; 467 int string = synth->Frames() / INTERVAL;
468 if (string <= 5){ 468 if (string <= 5){
469 int note; 469 int note;
470 int base; 470 int base;
471 int octave; 471 int octave;
472 note = frets->ce.noteindex(string); 472 note = frets->ce.noteindex(string);
473 // check not muted... 473 // check not muted...
474 if (note > 0){ 474 if (note > 0){
475 base = note % 12; 475 base = note % 12;
476 octave = note / 12; 476 octave = note / 12;
477 synth->note_start(string, base, octave); 477 synth->note_start(string, base, octave);
478 } 478 }
479 } 479 }
480 } 480 }
481 481
482 if (synth->Playing()){ 482 if (synth->Playing()){
483 synth->write_buffer(); 483 synth->write_buffer();
484 synth->fill_buffer(); 484 synth->fill_buffer();
485 }else{ 485 }else{
486 audio_timer->stop(); 486 audio_timer->stop();
487 // set pixmap? 487 // set pixmap?
488 synth->Stop(); 488 synth->Stop();
489 delete(audio_timer); 489 delete(audio_timer);
490 audio_timer = 0; 490 audio_timer = 0;
491 } 491 }
492} 492}
493 493
494// the real tuner 494// the real tuner
495// void PowerchordBase::tuner_start_cb(){ 495// void PowerchordBase::tuner_start_cb(){
496 496
497// if (tuner->Listening()){ 497// if (tuner->Listening()){
498// simulation_timer->stop(); 498// simulation_timer->stop();
499// tuner->Stop(); 499// tuner->Stop();
500// tuner_pic1->setPixmap( *image6 ); 500// tuner_pic1->setPixmap( *image6 );
501 501
502// }else{ 502// }else{
503// tuner_pic1->setPixmap( *image_open ); 503// tuner_pic1->setPixmap( *image_open );
504 504
505// if (!simulation_timer){ 505// if (!simulation_timer){
506// simulation_timer = new QTimer(); 506// simulation_timer = new QTimer();
507 507
508 508
509// connect(simulation_timer, SIGNAL( timeout() ), this, SLOT( tuner_cb() )); 509// connect(simulation_timer, SIGNAL( timeout() ), this, SLOT( tuner_cb() ));
510// } 510// }
511 511
512// simulation_timer->start(50); 512// simulation_timer->start(50);
513// tuner->Listen(); 513// tuner->Listen();
514 514
515// } 515// }
516// } 516// }
517 517
518void PowerchordBase::tuner_cb(){ 518void PowerchordBase::tuner_cb(){
519 if (tuner->Listening()){ 519 if (tuner->Listening()){
520 tuner->read_buffer(); 520 tuner->read_buffer();
521 tuner->process_buffer(); 521 tuner->process_buffer();
522 522
523 // update gui 523 // update gui
524 // do something with the note: tuner->Note() 524 // do something with the note: tuner->Note()
525 emit frequency_change(tuner->Tuning()); 525 emit frequency_change(tuner->Tuning());
526 526
527 }else{ 527 }else{
528 simulation_timer->stop(); 528 simulation_timer->stop();
529 tuner->Stop(); 529 tuner->Stop();
530 tuner_pic1->setPixmap( image6 ); 530 tuner_pic1->setPixmap( image6 );
531 } 531 }
532} 532}
533 533
534 534
535void PowerchordBase::tuner_start_cb(){ 535void PowerchordBase::tuner_start_cb(){
536 if (0 == QMessageBox::information(this, "Powerchord", "Using the microphone,\nthe note's frequency\nis analysed. This\nis a simulation.", "OK", "Cancel", 0, 1)){ 536 if (0 == QMessageBox::information(this, "Powerchord", "Using the microphone,\nthe note's frequency\nis analysed. This\nis a simulation.", "OK", "Cancel", 0, 1)){
537 if (simulation_timer){ 537 if (simulation_timer){
538 simulation_timer->stop(); 538 simulation_timer->stop();
539 }else{ 539 }else{
540 simulation_timer = new QTimer(); 540 simulation_timer = new QTimer();
541 connect(simulation_timer, SIGNAL( timeout() ), this, SLOT( tuner_simulation_cb() )); 541 connect(simulation_timer, SIGNAL( timeout() ), this, SLOT( tuner_simulation_cb() ));
542 542
543 } 543 }
544 simulation_x = -45; 544 simulation_x = -45;
545 simulation_v = 0; 545 simulation_v = 0;
546 simulation_iter = 0; 546 simulation_iter = 0;
547 547
548 tuner_pic1->setPixmap( image_open ); 548 tuner_pic1->setPixmap( image_open );
549 simulation_timer->start(100); 549 simulation_timer->start(100);
550 } 550 }
551} 551}
552 552
553#include <stdio.h> 553#include <stdio.h>
554 554
555void PowerchordBase::tuner_simulation_cb(){ 555void PowerchordBase::tuner_simulation_cb(){
556 if (simulation_x < -10 || simulation_x > 10){ 556 if (simulation_x < -10 || simulation_x > 10){
557 simulation_v = (simulation_v/2)-(simulation_x/5); 557 simulation_v = (simulation_v/2)-(simulation_x/5);
558 } 558 }
559 559
560 simulation_x += simulation_v; 560 simulation_x += simulation_v;
561 simulation_iter++; 561 simulation_iter++;
562 562
563 if (simulation_x > 50){ 563 if (simulation_x > 50){
564 simulation_x = 50; 564 simulation_x = 50;
565 } 565 }
566 566
567 if (simulation_x < -50){ 567 if (simulation_x < -50){
568 simulation_x = -50; 568 simulation_x = -50;
569 } 569 }
570 570
571 if (simulation_iter > 50){ 571 if (simulation_iter > 50){
572 simulation_timer->stop(); 572 simulation_timer->stop();
573 emit frequency_change(0); 573 emit frequency_change(0);
574 tuner_pic1->setPixmap( image6 ); 574 tuner_pic1->setPixmap( image6 );
575 }else{ 575 }else{
576 emit frequency_change(simulation_x); 576 emit frequency_change(simulation_x);
577 } 577 }
578} 578}
579 579
580/* 580/*
581 * Destroys the object and frees any allocated resources 581 * Destroys the object and frees any allocated resources
582 */ 582 */
583PowerchordBase::~PowerchordBase() 583PowerchordBase::~PowerchordBase()
584{ 584{
585 // no need to delete child widgets, Qt does it all for us 585 // no need to delete child widgets, Qt does it all for us
diff --git a/noncore/multimedia/showimg/ImageFileSelector.cpp b/noncore/multimedia/showimg/ImageFileSelector.cpp
index 7872c09..d2b65a9 100644
--- a/noncore/multimedia/showimg/ImageFileSelector.cpp
+++ b/noncore/multimedia/showimg/ImageFileSelector.cpp
@@ -1,271 +1,271 @@
1 1
2 2
3#include "qpe/global.h" 3#include "qpe/global.h"
4#include "qpe/applnk.h" 4#include "qpe/applnk.h"
5#include "qpe/lnkproperties.h" 5#include "qpe/lnkproperties.h"
6#include "qpe/applnk.h" 6#include "qpe/applnk.h"
7#include "qpe/qpeapplication.h" 7#include "qpe/qpeapplication.h"
8 8
9#include <stdlib.h> 9#include <stdlib.h>
10 10
11#include <qdir.h> 11#include <qdir.h>
12#include <qwidget.h> 12#include <qwidget.h>
13#include <qheader.h> 13#include <qheader.h>
14#include <qimage.h> 14#include <qimage.h>
15#include <qpixmap.h> 15#include <qpixmap.h>
16#include <qlabel.h> 16#include <qlabel.h>
17#include <qfileinfo.h> 17#include <qfileinfo.h>
18#include <qpainter.h> 18#include <qpainter.h>
19#include <qscrollview.h> 19#include <qscrollview.h>
20 20
21#include "ImageFileSelector.h" 21#include "ImageFileSelector.h"
22 22
23 23
24ThumbWidget::ThumbWidget(QPixmap p,QString text,const DocLnk& f,QWidget *parent,int w) 24ThumbWidget::ThumbWidget(QPixmap p,QString text,const DocLnk& f,QWidget *parent,int w)
25 : QWidget( parent ),fl(f) 25 : QWidget( parent ),fl(f)
26{ 26{
27 setBackgroundMode(NoBackground); 27 setBackgroundMode(NoBackground);
28 if ( w!=-1 ) 28 if ( w!=-1 )
29 setMinimumSize(w,p.height()+24); 29 setMinimumSize(w,p.height()+24);
30 else 30 else
31 setMinimumSize(p.width(),p.height()+24); 31 setMinimumSize(p.width(),p.height()+24);
32 description=new QLabel(text,this); 32 description=new QLabel(text,this);
33 description->setBackgroundColor(colorGroup().base()); 33 description->setBackgroundColor(colorGroup().base());
34 description->setAlignment(AlignCenter); 34 description->setAlignment(AlignCenter);
35 description->setGeometry(0,height()-24,width(),24); 35 description->setGeometry(0,height()-24,width(),24);
36 pixmap=p; 36 pixmap=p;
37} 37}
38 38
39void ThumbWidget::resizeEvent(QResizeEvent *) 39void ThumbWidget::resizeEvent(QResizeEvent *)
40{ 40{
41 description->setGeometry(0,height()-24,width(),24); 41 description->setGeometry(0,height()-24,width(),24);
42} 42}
43 43
44void ThumbWidget::paintEvent( QPaintEvent *e ) 44void ThumbWidget::paintEvent( QPaintEvent *e )
45{ 45{
46 QPainter painter(this); 46 QPainter painter(this);
47 47
48 painter.setClipRect(e->rect()); 48 painter.setClipRect(e->rect());
49 painter.fillRect(0,0,width(),height(),QColor(255,255,255)); 49 painter.fillRect(0,0,width(),height(),QColor(255,255,255));
50 painter.drawPixmap((width() - pixmap.width()) / 2,0, pixmap); 50 painter.drawPixmap((width() - pixmap.width()) / 2,0, pixmap);
51 51
52} 52}
53 53
54void ThumbWidget::mouseReleaseEvent(QMouseEvent* ) 54void ThumbWidget::mouseReleaseEvent(QMouseEvent* )
55{ 55{
56 emit clicked(fl); 56 emit clicked(fl);
57} 57}
58 58
59 59
60 60
61ImageFileSelectorItem::ImageFileSelectorItem( QListView *parent, const DocLnk &f) 61ImageFileSelectorItem::ImageFileSelectorItem( QListView *parent, const DocLnk &f)
62 : QListViewItem( parent ), fl( f ) 62 : QListViewItem( parent ), fl( f )
63{ 63{
64 setText( 0, f.name() ); 64 setText( 0, f.name() );
65 QFileInfo fi(f.file()); 65 QFileInfo fi(f.file());
66 setText( 1, (fi.extension()).upper() ); 66 setText( 1, (fi.extension()).upper() );
67 setPixmap( 0, f.pixmap() ); 67 setPixmap( 0, f.pixmap() );
68 68
69 69
70} 70}
71 71
72 72
73ImageFileSelectorItem::~ImageFileSelectorItem() 73ImageFileSelectorItem::~ImageFileSelectorItem()
74{ 74{
75 75
76} 76}
77 77
78 78
79ImageFileSelector::ImageFileSelector( CURRENT_VIEW scv,QWidget *parent,const char * ) 79ImageFileSelector::ImageFileSelector( CURRENT_VIEW scv,QWidget *parent,const char * )
80 : QWidgetStack(parent) 80 : QWidgetStack(parent)
81{ 81{
82 82
83 detailed=new QListView(this); 83 detailed=new QListView(this);
84 84
85 detailed->addColumn (tr("Title")); 85 detailed->addColumn (tr("Title"));
86 detailed->addColumn (tr("Type")); 86 detailed->addColumn (tr("Type"));
87 detailed->setAllColumnsShowFocus( true ); 87 detailed->setAllColumnsShowFocus( true );
88 88
89 tList.setAutoDelete(true); 89 tList.setAutoDelete(true);
90 90
91 thumb =new QScrollView(this); 91 thumb =new QScrollView(this);
92 thumb->setVScrollBarMode (QScrollView::Auto ); 92 thumb->setVScrollBarMode (QScrollView::Auto );
93 thumb->viewport()->setBackgroundColor(colorGroup().base()); 93 thumb->viewport()->setBackgroundColor(colorGroup().base());
94 94
95 background=new QWidget(0); 95 background=new QWidget(0);
96 background->setBackgroundColor(colorGroup().base()); 96 background->setBackgroundColor(colorGroup().base());
97 thumb->addChild(background); 97 thumb->addChild(background);
98 gl = new QGridLayout(background,1,2,4,4); 98 gl = new QGridLayout(background,1,2,4,4);
99 99
100 100
101 101
102 connect( detailed, SIGNAL( mouseButtonClicked( int, QListViewItem *, const QPoint &, int ) ), 102 connect( detailed, SIGNAL( mouseButtonClicked(int,QListViewItem*,const QPoint&,int) ),
103 this, SLOT( fileClicked( int, QListViewItem *, const QPoint &, int ) ) ); 103 this, SLOT( fileClicked(int,QListViewItem*,const QPoint&,int) ) );
104 connect( detailed, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint &, int ) ), 104 connect( detailed, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),
105 this, SLOT( filePressed( int, QListViewItem *, const QPoint &, int ) ) ); 105 this, SLOT( filePressed(int,QListViewItem*,const QPoint&,int) ) );
106 connect( detailed, SIGNAL( returnPressed( QListViewItem * ) ), 106 connect( detailed, SIGNAL( returnPressed(QListViewItem*) ),
107 this, SLOT( fileClicked( QListViewItem * ) ) ); 107 this, SLOT( fileClicked(QListViewItem*) ) );
108 108
109 cView=UNKNOWN; 109 cView=UNKNOWN;
110 setView(scv); 110 setView(scv);
111 reread(); 111 reread();
112 112
113} 113}
114ImageFileSelector::~ImageFileSelector() 114ImageFileSelector::~ImageFileSelector()
115{ 115{
116 116
117} 117}
118 118
119 119
120void ImageFileSelector::switchView() 120void ImageFileSelector::switchView()
121{ 121{
122 CURRENT_VIEW v=cView; 122 CURRENT_VIEW v=cView;
123 123
124 if ( v==DETAILED ) 124 if ( v==DETAILED )
125 v=THUMBNAIL; 125 v=THUMBNAIL;
126 else 126 else
127 v=DETAILED; 127 v=DETAILED;
128 setView(v); 128 setView(v);
129} 129}
130 130
131void ImageFileSelector::setView(CURRENT_VIEW v) 131void ImageFileSelector::setView(CURRENT_VIEW v)
132{ 132{
133 133
134 if ( v==cView ) 134 if ( v==cView )
135 return; 135 return;
136 cView=v; 136 cView=v;
137 137
138 if ( cView!=DETAILED ) 138 if ( cView!=DETAILED )
139 { 139 {
140 raiseWidget(thumb); 140 raiseWidget(thumb);
141 updateSizes(); 141 updateSizes();
142 } 142 }
143 else 143 else
144 { 144 {
145 raiseWidget(detailed); 145 raiseWidget(detailed);
146 updateSizes(); 146 updateSizes();
147 } 147 }
148 148
149 149
150} 150}
151 151
152void ImageFileSelector::resizeEvent(QResizeEvent *) 152void ImageFileSelector::resizeEvent(QResizeEvent *)
153{ 153{
154 updateSizes(); 154 updateSizes();
155} 155}
156 156
157void ImageFileSelector::updateSizes() 157void ImageFileSelector::updateSizes()
158{ 158{
159 int ww=(detailed->width()-detailed->frameWidth()*2); 159 int ww=(detailed->width()-detailed->frameWidth()*2);
160 double w=(double)ww*0.70; 160 double w=(double)ww*0.70;
161 detailed->setColumnWidth(0,(int)w); 161 detailed->setColumnWidth(0,(int)w);
162 detailed->setColumnWidth(1,ww-(int)w); 162 detailed->setColumnWidth(1,ww-(int)w);
163 background->setMinimumWidth(thumb->visibleWidth()); 163 background->setMinimumWidth(thumb->visibleWidth());
164 thumb->updateScrollBars(); 164 thumb->updateScrollBars();
165} 165}
166 166
167void ImageFileSelector::reread(bool) 167void ImageFileSelector::reread(bool)
168{ 168{
169// qDebug("reread"); 169// qDebug("reread");
170 ImageFileSelectorItem *item = (ImageFileSelectorItem *)detailed->selectedItem(); 170 ImageFileSelectorItem *item = (ImageFileSelectorItem *)detailed->selectedItem();
171 QString oldFile; 171 QString oldFile;
172 if ( item ) 172 if ( item )
173 oldFile = item->file().file(); 173 oldFile = item->file().file();
174 detailed->clear(); 174 detailed->clear();
175 tList.clear(); 175 tList.clear();
176 DocLnkSet files; 176 DocLnkSet files;
177 Global::findDocuments(&files, "image/*"); 177 Global::findDocuments(&files, "image/*");
178 count = files.children().count(); 178 count = files.children().count();
179 QListIterator<DocLnk> dit( files.children() ); 179 QListIterator<DocLnk> dit( files.children() );
180// int y=0; 180// int y=0;
181// int x=4; 181// int x=4;
182// int totalHeight=4; 182// int totalHeight=4;
183 ThumbWidget *l=0; 183 ThumbWidget *l=0;
184 int width=80; 184 int width=80;
185 gl->expand(dit.count()/2,2); 185 gl->expand(dit.count()/2,2);
186 int i,j; 186 int i,j;
187 i=j=0; 187 i=j=0;
188 detailed->setUpdatesEnabled(false); 188 detailed->setUpdatesEnabled(false);
189 thumb->setUpdatesEnabled(false); 189 thumb->setUpdatesEnabled(false);
190 190
191 for ( ; dit.current(); ++dit ) { 191 for ( ; dit.current(); ++dit ) {
192 item = new ImageFileSelectorItem( detailed, **dit ); 192 item = new ImageFileSelectorItem( detailed, **dit );
193 if ( item->file().file() == oldFile ) 193 if ( item->file().file() == oldFile )
194 detailed->setCurrentItem( item ); 194 detailed->setCurrentItem( item );
195 } 195 }
196 196
197 QListViewItemIterator it( detailed ); 197 QListViewItemIterator it( detailed );
198 ImageFileSelectorItem *ii; 198 ImageFileSelectorItem *ii;
199 // iterate through all items of the listview 199 // iterate through all items of the listview
200 for ( ; it.current(); ++it ) { 200 for ( ; it.current(); ++it ) {
201 ii=(ImageFileSelectorItem *)it.current(); 201 ii=(ImageFileSelectorItem *)it.current();
202 QImage img( ii->file().file() ); 202 QImage img( ii->file().file() );
203 if( !img.isNull()) { 203 if( !img.isNull()) {
204 img=img.smoothScale(64,64); 204 img=img.smoothScale(64,64);
205 QPixmap pix; 205 QPixmap pix;
206 pix.convertFromImage(img); 206 pix.convertFromImage(img);
207 l=new ThumbWidget(pix,ii->file().name(),ii->file(),background,width); 207 l=new ThumbWidget(pix,ii->file().name(),ii->file(),background,width);
208 l->setBackgroundColor(colorGroup().base()); 208 l->setBackgroundColor(colorGroup().base());
209 gl->addWidget(l,j,i); 209 gl->addWidget(l,j,i);
210 i++; 210 i++;
211 if ( i==2 ) { 211 if ( i==2 ) {
212 i=0; 212 i=0;
213 j++; 213 j++;
214 } 214 }
215 tList.append(l); 215 tList.append(l);
216 connect(l,SIGNAL(clicked(const DocLnk &)),this,SLOT(thumbClicked(const DocLnk &))); 216 connect(l,SIGNAL(clicked(const DocLnk&)),this,SLOT(thumbClicked(const DocLnk&)));
217 } 217 }
218 } 218 }
219 219
220 if ( !detailed->selectedItem() ) 220 if ( !detailed->selectedItem() )
221 detailed->setCurrentItem( detailed->firstChild() ); 221 detailed->setCurrentItem( detailed->firstChild() );
222 222
223 detailed->setUpdatesEnabled(true); 223 detailed->setUpdatesEnabled(true);
224 thumb->setUpdatesEnabled(true); 224 thumb->setUpdatesEnabled(true);
225 detailed->update(); 225 detailed->update();
226 thumb->update(); 226 thumb->update();
227} 227}
228 228
229int ImageFileSelector::fileCount() 229int ImageFileSelector::fileCount()
230{ 230{
231 return count; 231 return count;
232} 232}
233const DocLnk * ImageFileSelector::selected() 233const DocLnk * ImageFileSelector::selected()
234{ 234{
235 qDebug("image selected"); 235 qDebug("image selected");
236 ImageFileSelectorItem *item = (ImageFileSelectorItem *) detailed->selectedItem(); 236 ImageFileSelectorItem *item = (ImageFileSelectorItem *) detailed->selectedItem();
237 if ( item ) 237 if ( item )
238 return new DocLnk( item->file() ); 238 return new DocLnk( item->file() );
239 return 0; 239 return 0;
240} 240}
241 241
242 242
243 243
244void ImageFileSelector::fileClicked( int button, QListViewItem *i, const QPoint &, int ) 244void ImageFileSelector::fileClicked( int button, QListViewItem *i, const QPoint &, int )
245{ 245{
246 if ( !i ) 246 if ( !i )
247 return; 247 return;
248 if ( button == Qt::LeftButton ) 248 if ( button == Qt::LeftButton )
249 { 249 {
250 fileClicked( i ); 250 fileClicked( i );
251 } 251 }
252} 252}
253 // pressed to get 'right down' 253 // pressed to get 'right down'
254void ImageFileSelector::filePressed( int, QListViewItem *, const QPoint &, int ) 254void ImageFileSelector::filePressed( int, QListViewItem *, const QPoint &, int )
255{ 255{
256 256
257} 257}
258void ImageFileSelector::fileClicked( QListViewItem *i) 258void ImageFileSelector::fileClicked( QListViewItem *i)
259{ 259{
260 if ( !i ) 260 if ( !i )
261 return; 261 return;
262 emit fileSelected( ( (ImageFileSelectorItem*)i )->file() ); 262 emit fileSelected( ( (ImageFileSelectorItem*)i )->file() );
263 emit closeMe(); 263 emit closeMe();
264} 264}
265 265
266void ImageFileSelector::thumbClicked(const DocLnk &f) 266void ImageFileSelector::thumbClicked(const DocLnk &f)
267{ 267{
268 emit fileSelected( f ); 268 emit fileSelected( f );
269 emit closeMe(); 269 emit closeMe();
270} 270}
271 271
diff --git a/noncore/multimedia/showimg/showimg.cpp b/noncore/multimedia/showimg/showimg.cpp
index ba76e57..02a1d91 100644
--- a/noncore/multimedia/showimg/showimg.cpp
+++ b/noncore/multimedia/showimg/showimg.cpp
@@ -119,386 +119,386 @@ InfoDialog::InfoDialog(const QString &caption, const QStringList text,QWidget *p
119 } 119 }
120 120
121 121
122 122
123 QString labels[]={ tr("File Name"),tr("Format"),tr("File Size"),tr("Size"),tr("Colors"),tr("Alpha") }; 123 QString labels[]={ tr("File Name"),tr("Format"),tr("File Size"),tr("Size"),tr("Colors"),tr("Alpha") };
124 124
125 setMinimumSize(180,80); 125 setMinimumSize(180,80);
126 int num=ImageViewer::LAST+1; 126 int num=ImageViewer::LAST+1;
127 if ( text[ImageViewer::ALPHA].isEmpty() ) 127 if ( text[ImageViewer::ALPHA].isEmpty() )
128 num--; 128 num--;
129 QGridLayout *gl= new QGridLayout(this,num,2,4,2); 129 QGridLayout *gl= new QGridLayout(this,num,2,4,2);
130 QLabel *l; 130 QLabel *l;
131 int count=0; 131 int count=0;
132 for ( int i=0;i<num;i++ ) 132 for ( int i=0;i<num;i++ )
133 { 133 {
134 if ( i==1 ) 134 if ( i==1 )
135 { 135 {
136 QFrame *frm=new QFrame(this); 136 QFrame *frm=new QFrame(this);
137 frm->setFrameStyle(QFrame::HLine|QFrame::Sunken); 137 frm->setFrameStyle(QFrame::HLine|QFrame::Sunken);
138 gl->addMultiCellWidget(frm,i,i,0,1); 138 gl->addMultiCellWidget(frm,i,i,0,1);
139 } 139 }
140 else 140 else
141 { 141 {
142 l=new QLabel( tr( labels[count] )+":",this); 142 l=new QLabel( tr( labels[count] )+":",this);
143 gl->addWidget(l,i,0,AlignLeft); 143 gl->addWidget(l,i,0,AlignLeft);
144 l=new QLabel(text[count],this); 144 l=new QLabel(text[count],this);
145 gl->addWidget(l,i,1,AlignRight); 145 gl->addWidget(l,i,1,AlignRight);
146 count++; 146 count++;
147 } 147 }
148 148
149 } 149 }
150 150
151} 151}
152 152
153void InfoDialog::displayInfo(const QString &caption, const QStringList text, QWidget *parent) 153void InfoDialog::displayInfo(const QString &caption, const QStringList text, QWidget *parent)
154{ 154{
155 InfoDialog *dlg=new InfoDialog(caption,text,parent); 155 InfoDialog *dlg=new InfoDialog(caption,text,parent);
156 dlg->exec(); 156 dlg->exec();
157 delete dlg; 157 delete dlg;
158} 158}
159 159
160//=========================================================================== 160//===========================================================================
161 161
162 162
163ImagePane::ImagePane( QWidget *parent ) : QWidget( parent ) 163ImagePane::ImagePane( QWidget *parent ) : QWidget( parent )
164{ 164{
165 vb = new QVBoxLayout( this ); 165 vb = new QVBoxLayout( this );
166 166
167 image = new QScrollView(this,0,WResizeNoErase|WNorthWestGravity); 167 image = new QScrollView(this,0,WResizeNoErase|WNorthWestGravity);
168 pic=new ImageWidget(image); 168 pic=new ImageWidget(image);
169 image->addChild(pic); 169 image->addChild(pic);
170 170
171 connect(pic, SIGNAL( clicked() ), this, SLOT( imageClicked() )); 171 connect(pic, SIGNAL( clicked() ), this, SLOT( imageClicked() ));
172 172
173 vb->addWidget( image ); 173 vb->addWidget( image );
174 174
175} 175}
176 176
177void ImagePane::setPixmap( const QPixmap &pm ) 177void ImagePane::setPixmap( const QPixmap &pm )
178{ 178{
179 pic->setPixmap( pm ); 179 pic->setPixmap( pm );
180 pic->resize(pm.width(),pm.height()); 180 pic->resize(pm.width(),pm.height());
181 image->updateScrollBars (); 181 image->updateScrollBars ();
182 pic->repaint(false); 182 pic->repaint(false);
183} 183}
184 184
185void ImagePane::imageClicked() 185void ImagePane::imageClicked()
186{ 186{
187 emit clicked(); 187 emit clicked();
188} 188}
189//=========================================================================== 189//===========================================================================
190/* 190/*
191 Draws the portion of the scaled pixmap that needs to be updated 191 Draws the portion of the scaled pixmap that needs to be updated
192*/ 192*/
193 193
194void ImageWidget::paintEvent( QPaintEvent *e ) 194void ImageWidget::paintEvent( QPaintEvent *e )
195{ 195{
196 QPainter painter(this); 196 QPainter painter(this);
197 197
198 painter.setClipRect(e->rect()); 198 painter.setClipRect(e->rect());
199 painter.fillRect(0,0,width(),height(),QColor(0,0,0)); 199 painter.fillRect(0,0,width(),height(),QColor(0,0,0));
200 200
201 if ( pixmap.size() != QSize( 0, 0 ) ) 201 if ( pixmap.size() != QSize( 0, 0 ) )
202 { // is an image loaded? 202 { // is an image loaded?
203 painter.drawPixmap((width() - pixmap.width()) / 2, (height() - pixmap.height()) / 2, pixmap); 203 painter.drawPixmap((width() - pixmap.width()) / 2, (height() - pixmap.height()) / 2, pixmap);
204 } 204 }
205} 205}
206 206
207void ImageWidget::mouseReleaseEvent(QMouseEvent *) 207void ImageWidget::mouseReleaseEvent(QMouseEvent *)
208{ 208{
209 emit clicked(); 209 emit clicked();
210} 210}
211 211
212//=========================================================================== 212//===========================================================================
213 213
214ImageViewer::ImageViewer( QWidget *parent, const char *name, int wFlags ) 214ImageViewer::ImageViewer( QWidget *parent, const char *name, int wFlags )
215: QMainWindow( parent, name, WResizeNoErase ), filename( 0 ), bFromDocView( FALSE ) 215: QMainWindow( parent, name, WResizeNoErase ), filename( 0 ), bFromDocView( FALSE )
216{ 216{
217 setCaption( tr("Image Viewer") ); 217 setCaption( tr("Image Viewer") );
218 setIcon( Resource::loadPixmap( "ImageViewer" ) ); 218 setIcon( Resource::loadPixmap( "ImageViewer" ) );
219 219
220 220
221 Config cfg("Image Viewer"); 221 Config cfg("Image Viewer");
222 cfg.setGroup("Image Viewer"); 222 cfg.setGroup("Image Viewer");
223 223
224 showThumbView=cfg.readBoolEntry("ShowThumbnails",false); 224 showThumbView=cfg.readBoolEntry("ShowThumbnails",false);
225 isSized=cfg.readBoolEntry("SizeToScreen",true); 225 isSized=cfg.readBoolEntry("SizeToScreen",true);
226 226
227 isFullScreen = FALSE; 227 isFullScreen = FALSE;
228 228
229 setToolBarsMovable( FALSE ); 229 setToolBarsMovable( FALSE );
230 230
231 toolBar = new QToolBar( this ); 231 toolBar = new QToolBar( this );
232 toolBar->setHorizontalStretchable( TRUE ); 232 toolBar->setHorizontalStretchable( TRUE );
233 233
234 menuBar = new QMenuBar( toolBar ); 234 menuBar = new QMenuBar( toolBar );
235 235
236 current=menuBar; 236 current=menuBar;
237 237
238 238
239 239
240 fileMenuFile = new QPopupMenu(this); 240 fileMenuFile = new QPopupMenu(this);
241 //menuBarmenubarFile->insertItem( tr("File"), fileMenu ); 241 //menuBarmenubarFile->insertItem( tr("File"), fileMenu );
242 fileMenuFile->insertItem(tr("Open"), 242 fileMenuFile->insertItem(tr("Open"),
243 this, SLOT(openFile()), 0); 243 this, SLOT(openFile()), 0);
244 244
245 viewMenuFile = new QPopupMenu( this ); 245 viewMenuFile = new QPopupMenu( this );
246 //menubarFile->insertItem( tr("View"), viewMenu ); 246 //menubarFile->insertItem( tr("View"), viewMenu );
247 viewMenuFile->insertItem( tr("Thumbnail View"), 247 viewMenuFile->insertItem( tr("Thumbnail View"),
248 this, SLOT(switchThumbView()), 0, SHOW_THUMBNAILS ); 248 this, SLOT(switchThumbView()), 0, SHOW_THUMBNAILS );
249 249
250 viewMenuFile->setItemChecked ( SHOW_THUMBNAILS, showThumbView ); 250 viewMenuFile->setItemChecked ( SHOW_THUMBNAILS, showThumbView );
251 251
252 252
253 253
254 254
255 optionsMenuFile = new QPopupMenu( this); 255 optionsMenuFile = new QPopupMenu( this);
256 //menubarFile->insertItem( tr("Options"),optionsMenu ); 256 //menubarFile->insertItem( tr("Options"),optionsMenu );
257 slideAction = new QAction( tr( "Slide show" ), Resource::loadIconSet( "slideshow" ), 257 slideAction = new QAction( tr( "Slide show" ), Resource::loadIconSet( "slideshow" ),
258 QString::null, 0, this, 0 ); 258 QString::null, 0, this, 0 );
259 slideAction->setToggleAction( TRUE ); 259 slideAction->setToggleAction( TRUE );
260 connect( slideAction, SIGNAL( toggled(bool) ), this, SLOT( slideShow(bool) ) ); 260 connect( slideAction, SIGNAL( toggled(bool) ), this, SLOT( slideShow(bool) ) );
261 slideAction->addTo( optionsMenuFile); 261 slideAction->addTo( optionsMenuFile);
262// slideAction->addTo( toolBar ); 262// slideAction->addTo( toolBar );
263 263
264 264
265// optionsMenuFile->insertItem( tr("Slideshow") ); 265// optionsMenuFile->insertItem( tr("Slideshow") );
266 optionsMenuFile->insertSeparator(); 266 optionsMenuFile->insertSeparator();
267 optionsMenuFile->insertItem( tr("Preferences.."), this, SLOT(settings()), 0); 267 optionsMenuFile->insertItem( tr("Preferences.."), this, SLOT(settings()), 0);
268// optionsMenuFile->insertItem( tr("Help"), this, SLOT(help()), 0); 268// optionsMenuFile->insertItem( tr("Help"), this, SLOT(help()), 0);
269 269
270 QStrList fmt = QImage::outputFormats(); 270 QStrList fmt = QImage::outputFormats();
271 271
272 272
273 fileMenuView = new QPopupMenu( this ); 273 fileMenuView = new QPopupMenu( this );
274 //menubarView->insertItem( tr("File"),fileMenu ); 274 //menubarView->insertItem( tr("File"),fileMenu );
275 fileMenuView->insertItem( tr("Image Info ..."),this, SLOT(displayInfoDialog()),0 ); 275 fileMenuView->insertItem( tr("Image Info ..."),this, SLOT(displayInfoDialog()),0 );
276 fileMenuView->insertSeparator(); 276 fileMenuView->insertSeparator();
277 277
278 viewMenuView = new QPopupMenu(this ); 278 viewMenuView = new QPopupMenu(this );
279 viewMenuView->setCheckable ( true ); 279 viewMenuView->setCheckable ( true );
280 280
281 //menubarView->insertItem( tr("View"),viewMenu ); 281 //menubarView->insertItem( tr("View"),viewMenu );
282 viewMenuView->insertItem(tr("Horizontal flip"), this, SLOT(hFlip()), 0); 282 viewMenuView->insertItem(tr("Horizontal flip"), this, SLOT(hFlip()), 0);
283 viewMenuView->insertItem(tr("Vertical flip"), this, SLOT(vFlip()), 0); 283 viewMenuView->insertItem(tr("Vertical flip"), this, SLOT(vFlip()), 0);
284 284
285 stack = new QWidgetStack( this ); 285 stack = new QWidgetStack( this );
286 stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); 286 stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
287 setCentralWidget( stack ); 287 setCentralWidget( stack );
288 288
289 289
290 imagePanel = new ImagePane( stack ); 290 imagePanel = new ImagePane( stack );
291 connect(imagePanel, SIGNAL(clicked()), this, SLOT(normalView())); 291 connect(imagePanel, SIGNAL(clicked()), this, SLOT(normalView()));
292 292
293 293
294 ImageFileSelector::CURRENT_VIEW cv; 294 ImageFileSelector::CURRENT_VIEW cv;
295 if(showThumbView) 295 if(showThumbView)
296 cv=ImageFileSelector::THUMBNAIL; 296 cv=ImageFileSelector::THUMBNAIL;
297 else 297 else
298 cv=ImageFileSelector::DETAILED; 298 cv=ImageFileSelector::DETAILED;
299 299
300 qDebug("cv = %d",cv); 300 qDebug("cv = %d",cv);
301 301
302 fileSelector = new ImageFileSelector( cv,stack, "fs"); 302 fileSelector = new ImageFileSelector( cv,stack, "fs");
303 303
304 //switchThumbView(); 304 //switchThumbView();
305 305
306 306
307 //fileSelector = new ImageFileSelector("image/*", stack, "fs"); 307 //fileSelector = new ImageFileSelector("image/*", stack, "fs");
308 //fileSelector->setNewVisible(FALSE); 308 //fileSelector->setNewVisible(FALSE);
309 //fileSelector->setCloseVisible(FALSE); 309 //fileSelector->setCloseVisible(FALSE);
310 connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( closeFileSelector() ) ); 310 connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( closeFileSelector() ) );
311 connect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), 311 connect( fileSelector, SIGNAL( fileSelected(const DocLnk&) ),
312 this, SLOT( openFile( const DocLnk & ) ) ); 312 this, SLOT( openFile(const DocLnk&) ) );
313 313
314 imageList = fileSelector->fileList(); 314 imageList = fileSelector->fileList();
315 slideAction->setEnabled( imageList.count() != 0); 315 slideAction->setEnabled( imageList.count() != 0);
316 316
317 iconToolBar = new QToolBar(this); 317 iconToolBar = new QToolBar(this);
318 318
319 QAction *a; 319 QAction *a;
320 320
321 a = new QAction( tr( "Open ..." ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 ); 321 a = new QAction( tr( "Open ..." ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 );
322 connect( a, SIGNAL( activated() ), this, SLOT( open() ) ); 322 connect( a, SIGNAL( activated() ), this, SLOT( open() ) );
323 a->addTo( fileMenuView); 323 a->addTo( fileMenuView);
324 a->addTo( iconToolBar ); 324 a->addTo( iconToolBar );
325 325
326 326
327 a = new QAction( tr( "Rotate 90"), Resource::loadPixmap( "rotate90" ), QString::null, 0, this, 0); 327 a = new QAction( tr( "Rotate 90"), Resource::loadPixmap( "rotate90" ), QString::null, 0, this, 0);
328 connect( a, SIGNAL( activated() ), this, SLOT( rot90() ) ); 328 connect( a, SIGNAL( activated() ), this, SLOT( rot90() ) );
329 a->addTo( iconToolBar ); 329 a->addTo( iconToolBar );
330 a->addTo( viewMenuView ); 330 a->addTo( viewMenuView );
331 331
332 a = new QAction( tr( "Rotate 180" ), Resource::loadPixmap( "repeat" ), QString::null, 0, this, 0 ); 332 a = new QAction( tr( "Rotate 180" ), Resource::loadPixmap( "repeat" ), QString::null, 0, this, 0 );
333 connect( a, SIGNAL( activated() ), this, SLOT( rot180() ) ); 333 connect( a, SIGNAL( activated() ), this, SLOT( rot180() ) );
334 a->addTo( iconToolBar ); 334 a->addTo( iconToolBar );
335 a->addTo( viewMenuView ); 335 a->addTo( viewMenuView );
336 336
337 337
338 a = new QAction( tr( "Rotate 270"), Resource::loadPixmap( "rotate270" ), QString::null, 0, this, 0); 338 a = new QAction( tr( "Rotate 270"), Resource::loadPixmap( "rotate270" ), QString::null, 0, this, 0);
339 connect( a, SIGNAL( activated() ), this, SLOT( rot270() ) ); 339 connect( a, SIGNAL( activated() ), this, SLOT( rot270() ) );
340 //a->addTo( iconToolBar ); 340 //a->addTo( iconToolBar );
341 a->addTo( viewMenuView ); 341 a->addTo( viewMenuView );
342 342
343 343
344 344
345 viewMenuView->insertSeparator(); 345 viewMenuView->insertSeparator();
346 viewMenuView->insertItem(tr("Brightness ..."), this, SLOT(displayControlsDialog()), 0); 346 viewMenuView->insertItem(tr("Brightness ..."), this, SLOT(displayControlsDialog()), 0);
347 viewMenuView->insertItem(tr("Black And White"), this, SLOT(blackAndWhite()), 0,BLACKANDWHITE); 347 viewMenuView->insertItem(tr("Black And White"), this, SLOT(blackAndWhite()), 0,BLACKANDWHITE);
348 viewMenuView->insertSeparator(); 348 viewMenuView->insertSeparator();
349 349
350 350
351 sss = new QAction( tr( "Scale to Screen"), Resource::loadPixmap( "scale" ), QString::null, 0, this, 0,true); 351 sss = new QAction( tr( "Scale to Screen"), Resource::loadPixmap( "scale" ), QString::null, 0, this, 0,true);
352 connect( sss, SIGNAL( activated() ), this, SLOT( switchSizeToScreen() ) ); 352 connect( sss, SIGNAL( activated() ), this, SLOT( switchSizeToScreen() ) );
353 sss->addTo( iconToolBar ); 353 sss->addTo( iconToolBar );
354 sss->addTo( viewMenuView ); 354 sss->addTo( viewMenuView );
355 355
356 sss->setOn(isSized); 356 sss->setOn(isSized);
357 viewMenuView->insertSeparator(); 357 viewMenuView->insertSeparator();
358 358
359 359
360 a = new QAction( tr( "Fullscreen" ), Resource::loadPixmap( "fullscreen" ), 360 a = new QAction( tr( "Fullscreen" ), Resource::loadPixmap( "fullscreen" ),
361 QString::null, 0, this, 0 ); 361 QString::null, 0, this, 0 );
362 connect( a, SIGNAL( activated() ), this, SLOT( fullScreen() ) ); 362 connect( a, SIGNAL( activated() ), this, SLOT( fullScreen() ) );
363 a->addTo( iconToolBar ); 363 a->addTo( iconToolBar );
364 a->addTo( viewMenuView); 364 a->addTo( viewMenuView);
365 365
366 a = new QAction( tr( "Stop Slideshow" ), Resource::loadPixmap( "quit_icon" ), 366 a = new QAction( tr( "Stop Slideshow" ), Resource::loadPixmap( "quit_icon" ),
367 QString::null, 0, this, 0 ); 367 QString::null, 0, this, 0 );
368 connect( a, SIGNAL( activated() ), this, SLOT( stopSlideShow() ) ); 368 connect( a, SIGNAL( activated() ), this, SLOT( stopSlideShow() ) );
369 a->addTo( iconToolBar ); 369 a->addTo( iconToolBar );
370 a->addTo( viewMenuView); 370 a->addTo( viewMenuView);
371 371
372 372
373 Config config( "ImageViewer" ); 373 Config config( "ImageViewer" );
374 config.setGroup( "SlideShow" ); 374 config.setGroup( "SlideShow" );
375 slideDelay = config.readNumEntry( "Delay", 2); 375 slideDelay = config.readNumEntry( "Delay", 2);
376 slideRepeat = config.readBoolEntry( "Repeat", FALSE ); 376 slideRepeat = config.readBoolEntry( "Repeat", FALSE );
377 slideReverse = config.readBoolEntry("Reverse", FALSE); 377 slideReverse = config.readBoolEntry("Reverse", FALSE);
378 378
379 config.setGroup("Default"); 379 config.setGroup("Default");
380 rotateOnLoad = config.readBoolEntry("Rotate", FALSE); 380 rotateOnLoad = config.readBoolEntry("Rotate", FALSE);
381 fastLoad = config.readBoolEntry("FastLoad", TRUE); 381 fastLoad = config.readBoolEntry("FastLoad", TRUE);
382 slideTimer = new QTimer( this ); 382 slideTimer = new QTimer( this );
383 connect( slideTimer, SIGNAL(timeout()), this, SLOT(slideUpdate()) ); 383 connect( slideTimer, SIGNAL(timeout()), this, SLOT(slideUpdate()) );
384 384
385 switchToFileSelector(); 385 switchToFileSelector();
386 386
387 setMouseTracking( TRUE ); 387 setMouseTracking( TRUE );
388 388
389 389
390} 390}
391 391
392ImageViewer::~ImageViewer() 392ImageViewer::~ImageViewer()
393{ 393{
394 Config cfg("Image Viewer"); 394 Config cfg("Image Viewer");
395 cfg.setGroup("Image Viewer"); 395 cfg.setGroup("Image Viewer");
396 396
397 cfg.writeEntry("ShowThumbnails",(int)showThumbView); 397 cfg.writeEntry("ShowThumbnails",(int)showThumbView);
398 cfg.writeEntry("SizeToScreen",(int)isSized); 398 cfg.writeEntry("SizeToScreen",(int)isSized);
399 399
400 cfg.setGroup( "SlideShow" ); 400 cfg.setGroup( "SlideShow" );
401 cfg.writeEntry( "Delay", slideDelay); 401 cfg.writeEntry( "Delay", slideDelay);
402 cfg.writeEntry( "Repeat", slideRepeat ); 402 cfg.writeEntry( "Repeat", slideRepeat );
403 cfg.writeEntry("Reverse", slideReverse); 403 cfg.writeEntry("Reverse", slideReverse);
404 404
405 cfg.setGroup("Default"); 405 cfg.setGroup("Default");
406 cfg.writeEntry("Rotate", rotateOnLoad); 406 cfg.writeEntry("Rotate", rotateOnLoad);
407 cfg.writeEntry("FastLoad", fastLoad); 407 cfg.writeEntry("FastLoad", fastLoad);
408 408
409 delete imagePanel; // in case it is fullscreen 409 delete imagePanel; // in case it is fullscreen
410} 410}
411 411
412void ImageViewer::help() { 412void ImageViewer::help() {
413 413
414} 414}
415 415
416 416
417void ImageViewer::settings() 417void ImageViewer::settings()
418{ 418{
419 SettingsDialog dlg( this, 0, TRUE ); 419 SettingsDialog dlg( this, 0, TRUE );
420 dlg.setDelay( slideDelay ); 420 dlg.setDelay( slideDelay );
421 dlg.setRepeat( slideRepeat ); 421 dlg.setRepeat( slideRepeat );
422 dlg.setReverse( slideReverse ); 422 dlg.setReverse( slideReverse );
423 dlg.setRotate(rotateOnLoad); 423 dlg.setRotate(rotateOnLoad);
424 dlg.setFastLoad(fastLoad); 424 dlg.setFastLoad(fastLoad);
425 425
426 if ( QPEApplication::execDialog(&dlg) == QDialog::Accepted ) { 426 if ( QPEApplication::execDialog(&dlg) == QDialog::Accepted ) {
427 qDebug("<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>"); 427 qDebug("<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>");
428 slideDelay = dlg.delay(); 428 slideDelay = dlg.delay();
429 slideRepeat = dlg.repeat(); 429 slideRepeat = dlg.repeat();
430 slideReverse = dlg.reverse(); 430 slideReverse = dlg.reverse();
431 rotateOnLoad = dlg.rotate(); 431 rotateOnLoad = dlg.rotate();
432 fastLoad = dlg.fastLoad(); 432 fastLoad = dlg.fastLoad();
433 433
434 Config config( "ImageViewer" ); 434 Config config( "ImageViewer" );
435 config.setGroup( "SlideShow" ); 435 config.setGroup( "SlideShow" );
436 config.writeEntry( "Delay", slideDelay ); 436 config.writeEntry( "Delay", slideDelay );
437 config.writeEntry( "Repeat", slideRepeat ); 437 config.writeEntry( "Repeat", slideRepeat );
438 config.writeEntry("Reverse", slideReverse); 438 config.writeEntry("Reverse", slideReverse);
439 439
440 config.setGroup("Default"); 440 config.setGroup("Default");
441 config.writeEntry("Rotate", rotateOnLoad); 441 config.writeEntry("Rotate", rotateOnLoad);
442 config.writeEntry("FastLoad", fastLoad); 442 config.writeEntry("FastLoad", fastLoad);
443 } 443 }
444} 444}
445 445
446void ImageViewer::switchSizeToScreen() 446void ImageViewer::switchSizeToScreen()
447{ 447{
448 isSized=!isSized; 448 isSized=!isSized;
449 sss->setOn(isSized); 449 sss->setOn(isSized);
450 updateImage(); 450 updateImage();
451} 451}
452 452
453void ImageViewer::updateImage() 453void ImageViewer::updateImage()
454{ 454{
455 if ( isSized ) { 455 if ( isSized ) {
456 imagePanel->setPixmap(pmScaled); 456 imagePanel->setPixmap(pmScaled);
457 } else { 457 } else {
458 imagePanel->setPixmap(pm); 458 imagePanel->setPixmap(pm);
459 } 459 }
460} 460}
461 461
462void ImageViewer::switchThumbView() 462void ImageViewer::switchThumbView()
463{ 463{
464 464
465 showThumbView=!showThumbView; 465 showThumbView=!showThumbView;
466 viewMenuFile->setItemChecked ( SHOW_THUMBNAILS, showThumbView ); 466 viewMenuFile->setItemChecked ( SHOW_THUMBNAILS, showThumbView );
467 fileSelector->switchView(); 467 fileSelector->switchView();
468 468
469} 469}
470 470
471void ImageViewer::switchToFileSelector() 471void ImageViewer::switchToFileSelector()
472{ 472{
473 stack->raiseWidget(fileSelector); 473 stack->raiseWidget(fileSelector);
474 menuBar->clear(); 474 menuBar->clear();
475 menuBar->insertItem( tr("File"), fileMenuFile ); 475 menuBar->insertItem( tr("File"), fileMenuFile );
476 menuBar->insertItem( tr("View"), viewMenuFile ); 476 menuBar->insertItem( tr("View"), viewMenuFile );
477 menuBar->insertItem( tr("Options"), optionsMenuFile ); 477 menuBar->insertItem( tr("Options"), optionsMenuFile );
478 iconToolBar->hide(); 478 iconToolBar->hide();
479 imagePanel->disable(); 479 imagePanel->disable();
480 slideShow(false); 480 slideShow(false);
481 481
482} 482}
483 483
484void ImageViewer::switchToImageView() 484void ImageViewer::switchToImageView()
485{ 485{
486 stack->raiseWidget(imagePanel); 486 stack->raiseWidget(imagePanel);
487 487
488 menuBar->clear(); 488 menuBar->clear();
489 menuBar->insertItem( tr("File"), fileMenuView ); 489 menuBar->insertItem( tr("File"), fileMenuView );
490 menuBar->insertItem( tr("View"), viewMenuView ); 490 menuBar->insertItem( tr("View"), viewMenuView );
491 viewMenuView->setItemEnabled(BLACKANDWHITE,true); 491 viewMenuView->setItemEnabled(BLACKANDWHITE,true);
492 iconToolBar->show(); 492 iconToolBar->show();
493 493
494 imagePanel->setPosition(0,0); 494 imagePanel->setPosition(0,0);
495 495
496} 496}
497 497
498 498
499void ImageViewer::setDocument(const QString& fileref) 499void ImageViewer::setDocument(const QString& fileref)
500{ 500{
501 delayLoad = fileref; 501 delayLoad = fileref;
502 switchToImageView(); 502 switchToImageView();
503 QTimer::singleShot( 0, this, SLOT(doDelayedLoad()) ); 503 QTimer::singleShot( 0, this, SLOT(doDelayedLoad()) );
504} 504}