Re: [PATCH] Improve OpieRecorder usability

Lorn Potter <[email protected]> Tue, 09 Jan 2007 05:19:27 +1000
Newsgroups gmane.comp.handhelds.opie.devel
Message-ID <[email protected]>
applied. thanks


Paul Eggleton wrote:
> On Thursday 04 January 2007 20:06, Paul Eggleton wrote:
>> The attached patch makes the following improvements to OpieRecorder:
> 
> Re-based patch is attached.
> 
> Cheers,
> Paul
> 
> 
> ------------------------------------------------------------------------
> 
> Index: noncore/multimedia/opierec/qtrec.cpp
> ===================================================================
> RCS file: /cvs/opie/noncore/multimedia/opierec/qtrec.cpp,v
> retrieving revision 1.24
> diff -u -B -b -r1.24 qtrec.cpp
> --- noncore/multimedia/opierec/qtrec.cpp	24 May 2005 21:48:49 -0000	1.24
> +++ noncore/multimedia/opierec/qtrec.cpp	5 Jan 2007 05:47:10 -0000
> @@ -466,8 +466,6 @@
>  void QtRec::init() {
>  
>  		needsStereoOut = false;
> -		QPixmap image3( ( const char** ) image3_data );
> -		QPixmap image4( ( const char** ) image4_data );
>  		QPixmap image6( ( const char** ) image6_data );
>  
>  		stopped = true;
> @@ -501,7 +499,7 @@
>  		Stop_PushButton = new QPushButton(  tab, "Stop_PushButton" );
>  		layout1->addMultiCellWidget( Stop_PushButton, 1, 1, 4, 4);
>  		Stop_PushButton->setFixedSize( 22, 22);
> -		Stop_PushButton->setPixmap( image4 );
> +		Stop_PushButton->setPixmap( Opie::Core::OResource::loadPixmap("play2", Opie::Core::OResource::SmallIcon) );
>  
>  		toBeginningButton = new QPushButton(  tab, "Beginning_PushButton" );
>  		layout1->addMultiCellWidget(toBeginningButton, 1, 1, 5, 5);
> @@ -537,7 +535,8 @@
>  
>  		deleteSoundButton  = new QPushButton( tab, "deleteSoundButton" );
>  		layout1->addMultiCellWidget( deleteSoundButton, 1, 1, 8, 8);
> -		deleteSoundButton->setText( tr( "Del" ) );
> +		deleteSoundButton->setFixedSize( 22, 22);
> +		deleteSoundButton->setPixmap(  Opie::Core::OResource::loadPixmap( "editdelete", Opie::Core::OResource::SmallIcon )  );
>  
>  		ListView1 = new QListView( tab, "IconView1" );
>  		layout1->addMultiCellWidget( ListView1, 2, 2, 0, 8);
> @@ -545,8 +544,10 @@
>  		ListView1->addColumn( tr( "Name" ) );
>  		ListView1->setSorting( 1, false);
>  		ListView1->addColumn( tr( "Time" ) ); //in seconds
> +		ListView1->addColumn( tr( "Size" ) );
>  		ListView1->setColumnWidthMode(0, QListView::Maximum);
> - 		ListView1->setColumnAlignment( 1, QListView::AlignCenter);
> + 		ListView1->setColumnAlignment( 1, QListView::AlignRight);
> + 		ListView1->setColumnAlignment( 2, QListView::AlignRight);
>  		ListView1->setAllColumnsShowFocus( true );
>  		QPEApplication::setStylusOperation( ListView1->viewport(), QPEApplication::RightOnHold);
>  
> @@ -702,15 +703,19 @@
>  				fileDate = info.lastModified().toString();
>  
>  				fileS = cfg.readEntry( filePath, "0" );// file length in seconds
> +				QString sizeStr;
> +				fileSize(info.size(), sizeStr);
>  				mediaLocation = getStorage( filePath);
>  				if( info.exists()) {
>  //						owarn << "new item " << temp << oendl;
> -						item = new QListViewItem( ListView1, temp,  fileS /*,  mediaLocation, fileDate*/);
> +						item = new QListViewItem( ListView1, temp, fileS, sizeStr );
>  						item->setPixmap( 0, image0);
>  						if( currentFileName == filePath)
>  								ListView1->setSelected( item, true);
>  				}
>  		}
> +		
> +		setButtons();
>  }
>  
>  void QtRec::initConnections() {
> @@ -786,7 +791,7 @@
>  		QString temp;
>  		sizeLimitCombo->setCurrentItem((i/5));
>  
> -		stereoCheckBox->setChecked( cfg.readBoolEntry("stereo", 1));
> +		stereoCheckBox->setChecked( cfg.readBoolEntry("stereo", 0));
>  		if( stereoCheckBox->isChecked()) {
>  				filePara.channels = 2;
>  		} else {
> @@ -814,7 +819,6 @@
>  
>  void QtRec::stop() {
>  //		owarn << "STOP" << oendl;
> -		setRecordButton(false);
>  
>  		if( !recording) {
>  				emit stopPlaying();
> @@ -824,6 +828,7 @@
>  				endRecording();
>  		}
>  		timeSlider->setValue(0);
> +		setButtons();
>  }
>  
>  void QtRec::doPlayBtn() {
> @@ -841,11 +846,9 @@
>  
>  void QtRec::start() { //play
>  		if( stopped) {
> -				QPixmap image3( ( const char** ) image3_data );
> -				Stop_PushButton->setPixmap( image3 );
> -				Stop_PushButton->setDown( true);
>  				stopped = false;
>  				paused = false;
> +				setButtons();
>  				secCount = 1;
>  
>  				if( openPlayFile())
> @@ -865,7 +868,7 @@
>  				secCount = 1;
>  //				playLabel2->setText(tr("Stop"));
>  				monitoring = false;
> -				setRecordButton( true);
> +				setButtons();
>  
>  				if( setupAudio( true))
>  						if(setUpFile())  {
> @@ -921,8 +924,7 @@
>  										pthread_t thread1;
>  										pthread_create( &thread1, NULL, (void * (*)(void *))quickRec, NULL/* &*/);
>  #endif
> -										toBeginningButton->setEnabled( false);
> -										toEndButton->setEnabled( false);
> +										setButtons();
>  
>  										startTimer(1000);
>  #ifndef THREADED
> @@ -1140,8 +1142,7 @@
>  		pthread_create( &thread2, NULL, (void * (*)(void *))playIt, NULL/* &*/);
>  #endif
>  
> -		toBeginningButton->setEnabled( false);
> -		toEndButton->setEnabled( false);
> +		setButtons();
>  #ifndef  THREADED
>  		playIt();
>  #endif
> @@ -1205,9 +1206,8 @@
>  }
>  
>  void QtRec::newSound() {
> -		if( !rec()) {
> -				endRecording();
> -				deleteSound();
> +	if(!rec()) {
> +		stop();
>  		}
>  }
>  
> @@ -1221,6 +1221,8 @@
>  		cfg.setGroup("Sounds");
>  		if( ListView1->currentItem() == NULL)
>  				return;
> +		
> +	if (QMessageBox::information(this, tr("Delete"), tr("Are you sure?"), QMessageBox::Yes, QMessageBox::No)==QMessageBox::Yes) {
>  		QString file = ListView1->currentItem()->text(0);
>  		QString fileName;
>  		fileName = cfg.readEntry( file, "");
> @@ -1254,6 +1256,7 @@
>  		initIconView();
>  		update();
>  		setCaption( tr( "OpieRecord " ));
> +	}
>  }
>  
>  void QtRec::keyPressEvent( QKeyEvent *e) {
> @@ -1376,10 +1379,8 @@
>  		recording = false;
>  		stopped = true;
>  		waveform->reset();
> -		setRecordButton( false);
>  
> -		toBeginningButton->setEnabled( true);
> -		toEndButton->setEnabled( true);
> +		setButtons();
>  
>  		killTimers();
>  
> @@ -1442,10 +1443,7 @@
>  		waveform->reset();
>  //   errorStop();
>      odebug << "end playing" << oendl;
> -		setRecordButton( false);
> -
> -		toBeginningButton->setEnabled( true);
> -		toEndButton->setEnabled( true);
> +		setButtons();
>  
>  		if(autoMute)
>  				doMute( true);
> @@ -1531,6 +1529,7 @@
>  							cancelRename();
>  
>  					currentFile = item->text(0);
> +					setButtons();
>  //					setCaption( "OpieRecord  " + currentFile);
>  			}
>  					break;
> @@ -1590,6 +1589,7 @@
>  void QtRec::doMenuPlay() {
>  		qApp->processEvents();
>  		currentFile = ListView1->currentItem()->text(0);
> +		doPlayBtn();
>  }
>  
>  void QtRec::doRename() {
> @@ -1627,6 +1627,9 @@
>  
>  		QString file = ListView1->currentItem()->text(0);
>  
> +		if(file == filename)
> +				return;
> +			
>  		odebug << "filename is  " + filename << oendl;
>  
>  		int nFiles = cfg.readNumEntry("NumberofFiles",0);
> @@ -1938,29 +1941,6 @@
>  			//      endmntent( mntfp );
>  }
>  
> -void QtRec::setRecordButton(bool b) {
> -
> -		if(b) { //about to record or play
> -
> -				Rec_PushButton->setDown( true);
> -				QPixmap image3( ( const char** ) image3_data );
> -				Stop_PushButton->setPixmap( image3 );
> -				if(Stop_PushButton->isDown())
> -						Stop_PushButton->setDown( true);
> -//				playLabel2->setText( tr("Stop") );
> -
> -		} else { //about to stop
> -
> -				QPixmap image4( ( const char** ) image4_data );
> -				Stop_PushButton->setPixmap( image4);
> -				if(Stop_PushButton->isDown())
> -						Stop_PushButton->setDown( false);
> -//				playLabel2->setText( tr("Play") );
> -				if(Rec_PushButton->isDown())
> -						Rec_PushButton->setDown( false);
> -		}
> -}
> -
>  void QtRec::fillDirectoryCombo() {
>  		if( directoryComboBox->count() > 0)
>  				directoryComboBox->clear();
> @@ -2050,4 +2030,39 @@
>  		cfg.write();
>  }
>  
> +void QtRec::setButtons() {
> +	if(stopped) {
> +		Stop_PushButton->setPixmap( Opie::Core::OResource::loadPixmap("play2", Opie::Core::OResource::SmallIcon) );
> +		if(ListView1->currentItem()) {
> +			Stop_PushButton->setEnabled(true);
> +			toBeginningButton->setEnabled(true);
> +			toEndButton->setEnabled(true);
> +			deleteSoundButton->setEnabled(true);
> +			timeSlider->setEnabled(true);
> +		}
> +		else {
> +			Stop_PushButton->setEnabled(false);
> +			toBeginningButton->setEnabled(false);
> +			toEndButton->setEnabled(false);
> +			deleteSoundButton->setEnabled(false);
> +			timeSlider->setEnabled(false);
> +		}
> +	}
> +	else {
> +		timeSlider->setEnabled(true);
> +		Stop_PushButton->setPixmap( Opie::Core::OResource::loadPixmap("stop", Opie::Core::OResource::SmallIcon) );
> +		Stop_PushButton->setEnabled(true);
> +		toBeginningButton->setEnabled(false);
> +		toEndButton->setEnabled(false);
> +		deleteSoundButton->setEnabled(false);
> +	}
> +}
>  
> +void QtRec::fileSize(unsigned long size, QString &str) {
> +	if( size > 1048576 )
> +		str.sprintf( "%.0fM", size / 1048576.0 );
> +	else if( size > 1024 )
> +		str.sprintf( "%.0fk", size / 1024.0 );
> +	else
> +		str.sprintf( "%d", size );
> +}
> Index: noncore/multimedia/opierec/qtrec.h
> ===================================================================
> RCS file: /cvs/opie/noncore/multimedia/opierec/qtrec.h,v
> retrieving revision 1.12
> diff -u -B -b -r1.12 qtrec.h
> --- noncore/multimedia/opierec/qtrec.h	12 Mar 2005 02:23:02 -0000	1.12
> +++ noncore/multimedia/opierec/qtrec.h	5 Jan 2007 05:47:10 -0000
> @@ -98,10 +98,11 @@
>     void initConfig();
>     void initConnections();
>     void selectItemByName(const QString &);
> -   void setRecordButton(bool);
>     void start();
>     void stop();
>     void timerEvent( QTimerEvent *e );
> +   void setButtons();
> +   void QtRec::fileSize(unsigned long size, QString &str);
>      
>  private slots:
>     void endPlaying();
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> 
> http://opie.handhelds.org/cgi-bin/moin.cgi/DeveloperWikiIndex
> 
> Opie-devel mailing list
> [email protected]
> https://handhelds.org/mailman/listinfo/opie-devel

-- 
Lorn 'ljp' Potter
Trolltech Qtopia Community Manager
Opie Core Developer
http://qtopia.net
_______________________________________________

http://opie.handhelds.org/cgi-bin/moin.cgi/DeveloperWikiIndex

Opie-devel mailing list
[email protected]
https://handhelds.org/mailman/listinfo/opie-devel