42 m_pUpBtn =
new QPushButton(
"..",
nullptr );
46 QWidget *pDirectoryPanel =
new QWidget(
nullptr );
47 QHBoxLayout *hbox =
new QHBoxLayout();
48 hbox->setSpacing( 0 );
49 hbox->setContentsMargins( 0, 0, 0, 0 );
52 pDirectoryPanel->setLayout( hbox );
54 QWidget *pInfoPanel =
new QWidget(
nullptr );
56 QPushButton *pPlayBtn =
new QPushButton(
"Play",
nullptr );
58 pPlayBtn->setMaximumWidth( 40 );
59 QHBoxLayout *pInfoHBox =
new QHBoxLayout();
61 pInfoHBox->addWidget( pPlayBtn );
62 pInfoPanel->setLayout( pInfoHBox );
67 connect(
m_pFileList, SIGNAL( currentItemChanged( QListWidgetItem*, QListWidgetItem*) ),
this, SLOT(
on_fileList_ItemChanged( QListWidgetItem*, QListWidgetItem* ) ) );
72 QVBoxLayout *vbox =
new QVBoxLayout();
73 vbox->setSpacing( 0 );
74 vbox->setContentsMargins( 0, 0, 0, 0 );
76 vbox->addWidget( pDirectoryPanel );
79 vbox->addWidget( pInfoPanel );
81 this->setLayout( vbox );
100 INFOLOG(
"[loadDirectoryTree]" );
108 for (
int i = 0; i < list.size(); ++i) {
109 QFileInfo fileInfo = list.at(i);
111 QListWidgetItem *pItem =
new QListWidgetItem();
112 if ( fileInfo.isDir() ) {
113 if ( fileInfo.fileName().startsWith(
"." ) ) {
118 pItem->setText( fileInfo.fileName() );
127 for (
int i = 0; i < list.size(); ++i) {
128 QFileInfo fileInfo = list.at(i);
130 QListWidgetItem *pItem =
new QListWidgetItem();
131 if ( !fileInfo.isDir() ) {
133 if ( fileInfo.fileName().endsWith(
".wav", Qt::CaseInsensitive ) ) {
136 else if ( fileInfo.fileName().endsWith(
".flac", Qt::CaseInsensitive ) ) {
139 else if ( fileInfo.fileName().endsWith(
".au", Qt::CaseInsensitive ) ) {
142 else if ( fileInfo.fileName().endsWith(
".aiff", Qt::CaseInsensitive ) ) {
147 pItem->setText( fileInfo.fileName() );
204 INFOLOG(
"[on_fileList_ItemChanged]" );
206 QString sFileName = current->text();
208 for (
int i = 0; i < list.size(); ++i) {
209 QFileInfo fileInfo = list.at(i);
210 if ( fileInfo.fileName() == current->text() ) {
226 for (
int i = 0; i < list.size(); ++i) {
227 QFileInfo fileInfo = list.at(i);
228 if ( fileInfo.fileName() == item->text() ) {
229 INFOLOG(
"[on_fileList_ItemActivated] " + fileInfo.absoluteFilePath() );
230 if ( !fileInfo.isDir() ) {
233 auto pNewSample =
Sample::load( fileInfo.absoluteFilePath() );
234 if ( pNewSample !=
nullptr ) {
235 updateFileInfo( fileInfo.absoluteFilePath(), pNewSample->get_sample_rate(), pNewSample->get_size() );