1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
5 #include <QInputDialog>
8 #include "player/player.h"
12 using namespace SomePlayer::DataObjects;
14 MainWindow::MainWindow(QWidget *parent) :
16 ui(new Ui::MainWindow)
18 _library = new Library(_DATABASE_PATH_, _PLAYLISTS_PATH_);
20 connect(ui->actionOpen, SIGNAL(triggered()), this, SLOT(openMedia()));
21 connect(ui->actionAbout_Qt, SIGNAL(triggered()), this, SLOT(aboutQt()));
22 connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(about()));
23 connect(ui->actionPlayer, SIGNAL(triggered()), this, SLOT(player()));
24 connect(ui->actionLibrary, SIGNAL(triggered()), this, SLOT(library()));
26 _player_form = new PlayerForm(_library, ui->stackedWidget);
27 _library_form = new LibraryForm(_library, ui->stackedWidget);
28 _busy_widget = new BusyWidget(ui->stackedWidget);
29 ui->stackedWidget->insertWidget(0, _player_form);
30 ui->stackedWidget->insertWidget(1, _library_form);
31 ui->stackedWidget->insertWidget(2, _busy_widget);
32 _library_menu = new QMenu("Lirary");
33 QAction *add_directory = _library_menu->addAction("Add directory");
34 QAction *save_playlist = _library_menu->addAction("Save playlist");
35 QAction *clear_playlist = _library_menu->addAction("Clear current playlist");
36 _player_menu = new QMenu("Player");
37 connect(_player_form, SIGNAL(library()), this, SLOT(library()));
38 connect(_library_form, SIGNAL(player()), this, SLOT(player()));
39 connect(add_directory, SIGNAL(triggered()), this, SLOT(_add_directory()));
40 connect(save_playlist, SIGNAL(triggered()), this, SLOT(_save_playlist()));
41 connect(clear_playlist, SIGNAL(triggered()), this, SLOT(_clear_current_playlist()));
42 connect(_library, SIGNAL(done()), this, SLOT(library()));
43 connect(_library_form, SIGNAL(done()), this, SLOT(library()));
44 connect(_library_form, SIGNAL(busy(QString)), this, SLOT(showBusyWidget(QString)));
48 MainWindow::~MainWindow()
55 void MainWindow::openMedia()
57 // SomePlayer::DataObjects::Library *l = new SomePlayer::DataObjects::Library("/tmp", "/tmp");
58 // l->addDirectory("/mnt/music/Three Days Grace");
61 void MainWindow::aboutQt() {
62 QMessageBox::aboutQt(this, "About Qt");
65 void MainWindow::about() {
66 QMessageBox::about(this, "About SomePlayer", "Alternate music player for Maemo 5 "
67 "written in C++ with Qt4\n\n"
68 "Author: Nikolay Tischenko aka \"somebody\" <niktischenko@gmail.com>");
71 void MainWindow::player() {
72 ui->stackedWidget->setCurrentIndex(0);
73 _player_form->reload();
74 setWindowTitle("SomePlayer");
77 void MainWindow::library() {
78 ui->menuBar->setEnabled(true);
79 ui->stackedWidget->setCurrentIndex(1);
80 setWindowTitle("SomePlayer Library");
81 ui->menuBar->addMenu(_library_menu);
84 void MainWindow::_add_directory() {
85 QString directory = QFileDialog::getExistingDirectory (this, "Select directory", "/home/user/MyDocs", QFileDialog::ShowDirsOnly );
86 if (!directory.isEmpty()) {
87 showBusyWidget("<H1>Scanning... Please wait</H1>");
88 _library->addDirectory(directory);
92 void MainWindow::_save_playlist() {
93 QString name = QInputDialog::getText(this, "Playlist name", "Name:");
94 Playlist playlist = _library->getCurrentPlaylist();
95 playlist.setName(name);
96 _library->savePlaylist(playlist);
99 void MainWindow::_clear_current_playlist() {
100 Playlist playlist = _library->getCurrentPlaylist();
102 _library->saveCurrentPlaylist(playlist);
103 _player_form->reload();
106 void MainWindow::showBusyWidget(QString caption) {
107 _busy_widget->setText(caption);
108 ui->menuBar->setEnabled(false);
109 ui->stackedWidget->setCurrentIndex(2);