#include <QInputDialog>
#include "mainwindow.h"
+#include "time.h"
#define AVOID_INPUT_DIALOG 1
}
settings.setValue("lastPlaylist", curList);
settings.setValue("volume", audioOutput->volume());
+ qDebug () << "cucc: " << musicTable->columnWidth(1);
}
void MainWindow::addFiles()
void MainWindow::about()
{
- QMessageBox::information(this, tr("About Music Player"),
- tr("The Music Player example shows how to use Phonon - the multimedia"
- " framework that comes with Qt - to create a simple music player."));
+ QMessageBox::information(this, tr("About TomAmp v0.1"),
+ tr("TomAmp is a simple playlist-based music player.\n\n"
+ "(c) 2010 Tamas Marki <tmarki@gmail.com>\n\n"
+ "Please send comments and bug reports to the above e-mail address.\n\n"
+ "Icons by deleket (http://www.deleket.com)"));
}
void MainWindow::stateChanged(Phonon::State newState, Phonon::State /* oldState */)
break;
case Phonon::PlayingState:
setWindowTitle(mediaObject->metaData().value("TITLE") + " - TomAmp");
+ pauseAction->setVisible(true);
+ playAction->setVisible (false);
playAction->setEnabled(false);
pauseAction->setEnabled(true);
stopAction->setEnabled(true);
case Phonon::StoppedState:
stopAction->setEnabled(false);
playAction->setEnabled(true);
+ pauseAction->setVisible(false);
+ playAction->setVisible(true);
pauseAction->setEnabled(false);
timeLcd->display("00:00");
break;
case Phonon::PausedState:
pauseAction->setEnabled(false);
stopAction->setEnabled(true);
+ pauseAction->setVisible(false);
+ playAction->setVisible(true);
playAction->setEnabled(true);
qDebug () << "Queue size: " << mediaObject->queue().size ();
if (mediaObject->queue().size ())
}
}
+void MainWindow::next()
+{
+
+}
+
+void MainWindow::previous()
+{
+
+}
+
void MainWindow::tick(qint64 time)
{
QTime displayTime(0, (time / 60000) % 60, (time / 1000) % 60);
artistItem->setFlags(artistItem->flags() ^ Qt::ItemIsEditable);
QTableWidgetItem *albumItem = new QTableWidgetItem(metaData.value("ALBUM"));
albumItem->setFlags(albumItem->flags() ^ Qt::ItemIsEditable);
- QTableWidgetItem *yearItem = new QTableWidgetItem(metaData.value("DATE"));
- yearItem->setFlags(yearItem->flags() ^ Qt::ItemIsEditable);
int currentRow = musicTable->rowCount();
musicTable->insertRow(currentRow);
musicTable->setItem(currentRow, 0, artistItem);
musicTable->setItem(currentRow, 1, titleItem);
musicTable->setItem(currentRow, 2, albumItem);
- musicTable->setItem(currentRow, 3, yearItem);
if (musicTable->selectedItems().isEmpty())
else
{
musicTable->resizeColumnsToContents();
- if (musicTable->columnWidth(0) > 300)
- musicTable->setColumnWidth(0, 300);
+/* if (musicTable->columnWidth(0) > 300)
+ musicTable->setColumnWidth(0, 300);*/
}
}
void MainWindow::setupActions()
{
- playAction = new QAction(style()->standardIcon(QStyle::SP_MediaPlay), tr("Play"), this);
+ playAction = new QAction(QIcon (QPixmap (":images/play")), tr("Play"), this);
playAction->setShortcut(tr("Crl+P"));
playAction->setDisabled(true);
- pauseAction = new QAction(style()->standardIcon(QStyle::SP_MediaPause), tr("Pause"), this);
+ pauseAction = new QAction(QIcon (QPixmap (":images/pause")), tr("Pause"), this);
pauseAction->setShortcut(tr("Ctrl+A"));
pauseAction->setDisabled(true);
- stopAction = new QAction(style()->standardIcon(QStyle::SP_MediaStop), tr("Stop"), this);
+ pauseAction->setVisible(false);
+ stopAction = new QAction(QIcon (QPixmap (":images/stop")), tr("Stop"), this);
stopAction->setShortcut(tr("Ctrl+S"));
stopAction->setDisabled(true);
- nextAction = new QAction(style()->standardIcon(QStyle::SP_MediaSkipForward), tr("Next"), this);
+ nextAction = new QAction(QIcon (QPixmap (":images/next")), tr("Next"), this);
nextAction->setShortcut(tr("Ctrl+N"));
- previousAction = new QAction(style()->standardIcon(QStyle::SP_MediaSkipBackward), tr("Previous"), this);
+ previousAction = new QAction(QIcon (QPixmap (":images/previous")), tr("Previous"), this);
previousAction->setShortcut(tr("Ctrl+R"));
- repeatAction = new QAction(style()->standardIcon(QStyle::SP_BrowserReload), tr("Repeat"), this);
+ repeatAction = new QAction(QIcon (QPixmap (":images/repeat")), tr("Repeat"), this);
repeatAction->setCheckable(true);
repeatAction->setChecked(repeat);
repeatAction->setShortcut(tr("Ctrl+I"));
connect (savePlaylistAction, SIGNAL (triggered()), this, SLOT (savePlaylist()));
connect (loadPlaylistAction, SIGNAL (triggered()), this, SLOT (loadPlaylist()));
connect (clearPlaylistAction, SIGNAL (triggered()), this, SLOT (clearPlaylist()));
+ connect (nextAction, SIGNAL(triggered()), this, SLOT(next()));
+ connect (previousAction, SIGNAL(triggered()), this, SLOT(previous()));
connect(exitAction, SIGNAL(triggered()), this, SLOT(close()));
connect(aboutAction, SIGNAL(triggered()), this, SLOT(about()));
connect(aboutQtAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
void MainWindow::savePlaylist()
{
- QString filename = QFileDialog::getSaveFileName(this, tr("Please select file name"), "", "*.m3u");
+ QString filename = QFileDialog::getSaveFileName(this, tr("Please select file name"), "", "Playlist Files (*.m3u)");
if (filename.isEmpty())
return;
if (filename.length() < 4 || filename.right(4).toLower() != ".m3u")
f.open(QFile::WriteOnly);
for (int i = 0; i < sources.size(); ++i)
{
- if (sources[i].type() == Phonon::MediaSource::Stream)
- f.write(sources[i].url().toString().toAscii());
- else
+ if (sources[i].type() == Phonon::MediaSource::LocalFile)
f.write (sources[i].fileName().toAscii());
+ else
+ f.write(sources[i].url().toString().toAscii());
f.write ("\n");
}
f.close ();
clearPlaylist();
foreach (QString l, lines)
{
+ if (l.isEmpty() || (!QFileInfo (l).exists() && (l.indexOf("http") != 0)))
+ {
+ qDebug () << "not loadable: " << l;\
+ continue;
+ }
qDebug () << "Load " << l;
Phonon::MediaSource source(l);
sources.append(source);
fileMenu->addAction(addFilesAction);
fileMenu->addAction(addFoldersAction);
fileMenu->addAction(addUrlAction);
+ fileMenu->addSeparator();
fileMenu->addAction(savePlaylistAction);
fileMenu->addAction(loadPlaylistAction);
fileMenu->addAction(clearPlaylistAction);
- fileMenu->addSeparator();
- fileMenu->addAction(exitAction);
+// fileMenu->addAction(exitAction);
QMenu *aboutMenu = menuBar()->addMenu(tr("&Help"));
aboutMenu->addAction(aboutAction);
QToolBar *bar = new QToolBar;
bar->setOrientation(Qt::Vertical);
+ bar->setStyleSheet("padding:7px");
//bar->addAction(volumeAction);
seekSlider = new Phonon::SeekSlider(this);
volumeSlider = new Phonon::VolumeSlider(this);
volumeSlider->setAudioOutput(audioOutput);
volumeSlider->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
- volumeSlider->setOrientation(Qt::Vertical);
+ volumeSlider->setOrientation(Qt::Horizontal);
volumeSlider->setMuteVisible(false);
// volumeAddedAction = bar->addWidget(volumeSlider);
// volumeAddedAction->setVisible(false);
bar->addAction(stopAction);
bar->addAction(repeatAction);
bar->addAction(shuffleAction);
+ bar->addAction(nextAction);
+ bar->addAction(previousAction);
/* QLabel *volumeLabel = new QLabel;
volumeLabel->setPixmap(QPixmap("images/volume.png"));*/
// timeLcd->setPalette(palette);
QStringList headers;
- headers << tr("Artist") << tr("Title") << tr("Album") << tr("Year");
+ headers << tr("Artist") << tr("Title") << tr("Album");
- musicTable = new QTableWidget(0, 4);
+ musicTable = new QTableWidget(0, 3);
musicTable->setHorizontalHeaderLabels(headers);
musicTable->setSelectionMode(QAbstractItemView::SingleSelection);
musicTable->setSelectionBehavior(QAbstractItemView::SelectRows);
QToolBar* bar2 = new QToolBar;
bar2->addAction(volumeAction);
seekerLayout->addWidget(bar2);
+ seekerLayout->addWidget(volumeSlider);
seekerLayout->addWidget(seekSlider);
seekerLayout->addWidget(timeLcd);
seekAndTableLayout->addLayout(seekerLayout);
QHBoxLayout *mainLayout = new QHBoxLayout;
- mainLayout->addWidget(volumeSlider);
mainLayout->addLayout(seekAndTableLayout);
mainLayout->addLayout(playbackLayout);
setCentralWidget(widget);
setWindowTitle("TomAmp");
-// ui.setupUi(this);
+ qDebug () << "cucc: " << musicTable->columnWidth(1);
}