Re: [PATCH] Improve OpieRecorder usability
Paul Eggleton <[email protected]> Fri, 5 Jan 2007 18:49:32 +1300
| Newsgroups | gmane.comp.handhelds.opie.devel |
|---|---|
| Message-ID | <[email protected]> |
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 _______________________________________________ http://opie.handhelds.org/cgi-bin/moin.cgi/DeveloperWikiIndex Opie-devel mailing list [email protected] https://handhelds.org/mailman/listinfo/opie-devel
opierec2.patch
(text/x-diff, 8.7 KB)
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();