69 QFont font( pPref->getApplicationFontFamily(),
getPointSize( pPref->getFontSize() ) );
71 m_pPlaylistTree->setFont( font );
75 installEventFilter(
this );
83 m_pPlaylistMenu->addAction( tr(
"Add song to Play&list" ),
this, SLOT(
addSong() ), QKeySequence(
"Ctrl+A" ) );
101 m_pScriptMenu->addAction( tr(
"&Add Script to selected song" ),
this, SLOT(
loadScript() ), QKeySequence(
"" ) );
110 QHBoxLayout* pMenuBarLayout =
new QHBoxLayout( menuBarWidget );
111 pMenuBarLayout->setSpacing(0);
112 pMenuBarLayout->setContentsMargins( 0, 0, 0, 0 );
117 pControlsPanel->setFixedSize( 119, 32 );
118 pControlsPanel->
setPixmap(
"/playerControlPanel/playlist_background_Control.png" );
124 std::shared_ptr<Action> pAction = std::make_shared<Action>(
"PLAYLIST_PREV_SONG");
132 pAction = std::make_shared<Action>(
"PLAY/PAUSE_TOGGLE");
139 pAction = std::make_shared<Action>(
"STOP");
146 pAction = std::make_shared<Action>(
"PLAYLIST_NEXT_SONG");
151 headers << tr (
"Song list" );
152 QTreeWidgetItem* header =
new QTreeWidgetItem ( headers );
153 m_pPlaylistTree->setHeaderItem ( header );
154 m_pPlaylistTree->setAlternatingRowColors(
true );
155 for (
int ii = 0; ii < m_pPlaylistTree->headerItem()->columnCount(); ii++ ) {
156 m_pPlaylistTree->headerItem()->setFont( ii, font );
173 headers << tr (
"Song list" ) << tr (
"Script" ) << tr (
"exec Script" );
174 QTreeWidgetItem* header =
new QTreeWidgetItem ( headers );
175 m_pPlaylistTree->setHeaderItem ( header );
177 m_pPlaylistTree->setColumnWidth( 0, 405 );
178 m_pPlaylistTree->setColumnWidth( 1, 405 );
179 m_pPlaylistTree->setColumnWidth( 2, 105 );
181 m_pPlaylistTree->header()->setStretchLastSection(
false );
182 m_pPlaylistTree->header()->setSectionResizeMode( 0, QHeaderView::Stretch );
183 m_pPlaylistTree->header()->setSectionResizeMode( 1, QHeaderView::Stretch );
184 m_pPlaylistTree->header()->setSectionResizeMode( 2, QHeaderView::Fixed );
186 m_pPlaylistTree->setAlternatingRowColors(
true );
187 for (
int ii = 0; ii < m_pPlaylistTree->headerItem()->columnCount(); ii++ ) {
188 m_pPlaylistTree->headerItem()->setFont( ii, font );
192 QVBoxLayout *pSideBarLayout =
new QVBoxLayout(sideBarWidget);
193 pSideBarLayout->setSpacing(0);
194 pSideBarLayout->setMargin(0);
198 connect(pUpBtn, SIGNAL( clicked() ),
this, SLOT(
o_upBClicked()) );
199 pSideBarLayout->addWidget(pUpBtn);
203 connect(pDownBtn, SIGNAL( clicked() ),
this, SLOT(
o_downBClicked()));
204 pSideBarLayout->addWidget(pDownBtn);
208 if( pPlaylist->
size() > 0 ){
209 for ( uint i = 0; i < pPlaylist->
size(); ++i ){
210 QTreeWidgetItem* pPlaylistItem =
new QTreeWidgetItem ( m_pPlaylistTree );
212 pPlaylistItem->setText( 0, pPlaylist->
get( i )->
filePath );
213 pPlaylistItem->setText( 1, pPlaylist->
get( i )->
scriptPath );
216 pPlaylistItem->setCheckState( 2, Qt::Checked );
218 pPlaylistItem->setCheckState( 2, Qt::Unchecked );
226 if(! (activeSongNumber == -1 && selectedSongNumber == -1) )
229 if( activeSongNumber == -1 ){
230 aselected = selectedSongNumber;
232 aselected = activeSongNumber ;
235 QTreeWidgetItem* m_pPlaylistItem = m_pPlaylistTree->topLevelItem ( aselected );
236 m_pPlaylistItem->setBackground( 0, QColor( 50, 50, 50) );
237 m_pPlaylistItem->setBackground( 1, QColor( 50, 50, 50) );
238 m_pPlaylistItem->setBackground( 2, QColor( 50, 50, 50) );
396 fd.setAcceptMode( QFileDialog::AcceptOpen );
397 fd.setWindowTitle( tr(
"Load Playlist" ) );
398 fd.setFileMode( QFileDialog::ExistingFile );
399 fd.setDirectory( sPath );
402 if ( fd.exec() != QDialog::Accepted ) {
406 QString filename = fd.selectedFiles().first();
412 _ERRORLOG(
"Error loading the playlist" );
418 if( playlist->
size() > 0 ) {
419 QTreeWidget* m_pPlaylist = m_pPlaylistTree;
420 m_pPlaylist->clear();
422 for ( uint i = 0; i < playlist->
size(); ++i ){
423 QTreeWidgetItem* m_pPlaylistItem =
new QTreeWidgetItem ( m_pPlaylistTree );
426 m_pPlaylistItem->setText( 0, playlist->
get( i )->
filePath );
428 m_pPlaylistItem->setText( 0, tr(
"File not found: ") + playlist->
get( i )->
filePath );
431 m_pPlaylistItem->setText ( 1, playlist->
get( i )->
scriptPath );
434 m_pPlaylistItem->setCheckState( 2, Qt::Checked );
436 m_pPlaylistItem->setCheckState( 2, Qt::Unchecked );
440 QTreeWidgetItem* m_pPlaylistItem = m_pPlaylist->topLevelItem ( 0 );
441 m_pPlaylist->setCurrentItem ( m_pPlaylistItem );
443 setWindowTitle ( tr (
"Playlist Browser" ) + QString(
" - ") + pPlaylist->
getFilename() );
457 fd.setFileMode ( QFileDialog::AnyFile );
459 fd.setAcceptMode ( QFileDialog::AcceptSave );
460 fd.setWindowTitle ( tr (
"New Script" ) );
461 fd.setDirectory( sPath );
463 QString defaultFilename;
465 defaultFilename +=
".sh";
467 fd.selectFile ( defaultFilename );
470 if ( fd.exec() != QDialog::Accepted )
return;
472 filename = fd.selectedFiles().first();
474 if( filename.contains(
" ", Qt::CaseInsensitive)){
475 QMessageBox::information (
this,
"Hydrogen", tr (
"Script name or path to the script contains whitespaces.\nIMPORTANT\nThe path to the script and the scriptname must be without whitespaces.") );
479 QFile chngPerm ( filename );
480 if (!chngPerm.open(QIODevice::WriteOnly | QIODevice::Text)) {
486 QTextStream out(&chngPerm);
487 out <<
"#!/bin/sh\n\n#have phun";
490 if (chngPerm.exists() ) {
491 chngPerm.setPermissions( QFile::ReadOwner|QFile::WriteOwner|QFile::ExeOwner );
492 QMessageBox::information (
this,
"Hydrogen", tr (
"WARNING, the new file is executable by the owner of the file!" ) );
496 QMessageBox::information (
this,
"Hydrogen", tr (
"No Default Editor Set. Please set your Default Editor\nDo not use a console based Editor\nSorry, but this will not work for the moment." ) );
498 static QString lastUsedDir =
"/usr/bin/";
501 fd.setAcceptMode( QFileDialog::AcceptOpen );
502 fd.setFileMode ( QFileDialog::ExistingFile );
503 fd.setDirectory ( lastUsedDir );
505 fd.setWindowTitle ( tr (
"Set your Default Editor" ) );
508 if ( fd.exec() == QDialog::Accepted ){
509 filename = fd.selectedFiles().first();
516 std::system(openfile.toLatin1());
635 QMessageBox::information (
this,
"Hydrogen", tr (
"No Default Editor Set. Please set your Default Editor\nDo not use a console based Editor\nSorry, but this will not work for the moment." ) );
637 static QString lastUsedDir =
"/usr/bin/";
640 fd.setAcceptMode( QFileDialog::AcceptOpen );
641 fd.setFileMode ( QFileDialog::ExistingFile );
642 fd.setDirectory ( lastUsedDir );
644 fd.setWindowTitle ( tr (
"Set your Default Editor" ) );
647 if ( fd.exec() == QDialog::Accepted ){
648 filename = fd.selectedFiles().first();
654 QTreeWidgetItem* pPlaylistItem = m_pPlaylistTree->currentItem();
656 if ( pPlaylistItem ==
nullptr ){
657 QMessageBox::information (
this,
"Hydrogen", tr (
"No Song selected!" ) );
661 selected = pPlaylistItem->text ( 1 );
665 if( !QFile( selected ).exists() ){
666 QMessageBox::information (
this,
"Hydrogen", tr (
"No Script selected!" ));
670 std::system( filename.toLatin1() );
887 if ( !m_pPlaylistTree->topLevelItem( i ) ) {
890 ( m_pPlaylistTree->topLevelItem( i ) )->setBackground( 0, QBrush() );
891 ( m_pPlaylistTree->topLevelItem( i ) )->setBackground( 1, QBrush() );
892 ( m_pPlaylistTree->topLevelItem( i ) )->setBackground( 2, QBrush() );
897 if ( selected == -1 ) {
901 QTreeWidgetItem* pPlaylistItem = m_pPlaylistTree->topLevelItem ( selected );
902 if ( pPlaylistItem !=
nullptr ){
903 pPlaylistItem->setBackground( 0, QColor( 50, 50, 50) );
904 pPlaylistItem->setBackground( 1, QColor( 50, 50, 50) );
905 pPlaylistItem->setBackground( 2, QColor( 50, 50, 50) );
949 _ERRORLOG(
"Error loading the playlist" );
956 if ( playlist->
size() > 0 ) {
957 QTreeWidget* m_pPlaylist = m_pPlaylistTree;
958 m_pPlaylist->clear();
960 for ( uint i = 0; i < playlist->
size(); ++i ){
961 QTreeWidgetItem* m_pPlaylistItem =
new QTreeWidgetItem ( m_pPlaylistTree );
962 m_pPlaylistItem->setText( 0, playlist->
get( i )->
filePath );
963 m_pPlaylistItem->setText( 1, playlist->
get( i )->
scriptPath );
966 m_pPlaylistItem->setCheckState( 2, Qt::Checked );
968 m_pPlaylistItem->setCheckState( 2, Qt::Unchecked );
972 QTreeWidgetItem* m_pPlaylistItem = m_pPlaylist->topLevelItem ( 0 );
973 m_pPlaylist->setCurrentItem ( m_pPlaylistItem );
975 setWindowTitle ( tr (
"Playlist Browser" ) + QString(
" - ") + pPlaylist->
getFilename() );