ui->setupUi(this);
Config config;
_icons_theme = config.getValue("ui/iconstheme").toString();
- REGISTERED_FILE_EXTENSIONS << "mp3" << "flac" << "wma" << "aac" << "ogg";
+ REGISTERED_FILE_EXTENSIONS << "mp3" << "flac" << "wma" << "aac" << "ogg" << "asf" << "ape" << "wav" << "m4a";
setWindowFlags(windowFlags() | Qt::Window);
setAttribute(Qt::WA_Maemo5StackedWindow);
_model = new QStandardItemModel(0, 2, this);
ui->addButton->setEnabled(false);
ui->addButton->setIcon(QIcon());
+ ui->useButton->setEnabled(false);
+ ui->useButton->setIcon(QIcon());
ui->progressBar->hide();
connect(ui->homeButton, SIGNAL(clicked()), this, SLOT(_home()));
connect(ui->selectToggleButton, SIGNAL(clicked()), this, SLOT(_toggle_selection()));
connect(ui->addButton, SIGNAL(clicked()), this, SLOT(_add()));
+ connect(ui->useButton, SIGNAL(clicked()), this, SLOT(_use()));
connect(_tagresolver, SIGNAL(decoded(Track)), this, SLOT(_add_track(Track)));
connect(_tagresolver, SIGNAL(done()), this, SLOT(_done()));
+ connect(ui->playerButton, SIGNAL(clicked()), this, SLOT(hide()));
_top_gradient = ui->topWidget->styleSheet();
_bottom_gradient = ui->bottomWidget->styleSheet();
}
delete ui;
}
-void DirectoryView::readDir(QString path) {
+void DirectoryView::readDir(QString path, QString pathToScroll) {
QDir dir(path);
_current_dir = dir.absoluteFilePath(path);
_directories.clear();
ui->dirView->setColumnWidth(0, 70);
ui->addButton->setEnabled(false);
ui->addButton->setIcon(QIcon());
- ui->dirView->scrollToTop();
+ ui->useButton->setEnabled(false);
+ ui->useButton->setIcon(QIcon());
+ if (pathToScroll.isEmpty()) {
+ ui->dirView->scrollToTop();
+ return;
+ }
+ int row = _directories.indexOf(pathToScroll);
+ if (row >= 0 && row < _model->rowCount()) {
+ QModelIndex id = _model->index(row, 1);
+ ui->dirView->scrollTo(id, QAbstractItemView::PositionAtCenter);
+ }
}
void DirectoryView::_back() {
QDir current(_current_dir);
current.cdUp();
- readDir(current.path());
+ QString dir_to_center = "";
+ if (_nav_history.size() > 0) {
+ dir_to_center = _nav_history.pop();
+ }
+ readDir(current.path(), dir_to_center);
}
void DirectoryView::_process_click(QModelIndex index) {
if (index.row() < _directories.count()) {
_current_dir = _directories.at(index.row());
readDir(_current_dir);
+ _nav_history.push(_current_dir);
return;
}
}
if (ui->dirView->selectionModel()->selectedRows().count() > 0) {
ui->addButton->setEnabled(true);
ui->addButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png"));
+ ui->useButton->setEnabled(true);
+ ui->useButton->setIcon(QIcon(":/icons/"+_icons_theme+"/use.png"));
} else {
ui->addButton->setEnabled(false);
ui->addButton->setIcon(QIcon());
+ ui->useButton->setEnabled(false);
+ ui->useButton->setIcon(QIcon());
}
}
void DirectoryView::_home() {
_current_dir = QDir::homePath();
homeScreen();
+ _nav_history.clear();
}
void DirectoryView::_toggle_selection() {
_icons_theme = config.getValue("ui/iconstheme").toString();
if (!ui->addButton->icon().isNull())
ui->addButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png"));
+ if (!ui->useButton->icon().isNull())
+ ui->useButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png"));
ui->homeButton->setIcon(QIcon(":/icons/"+_icons_theme+"/home.png"));
ui->backButton->setIcon(QIcon(":/icons/"+_icons_theme+"/back.png"));
if (ui->dirView->selectionModel()->selectedRows().count() == _model->rowCount()) {
_home();
}
-void DirectoryView::updateGradient() {
+void DirectoryView::checkGradient() {
Config config;
if (config.getValue("ui/gradient").toString() == "yes") {
ui->bottomWidget->setStyleSheet(_bottom_gradient);
ui->lverticalLayout->addWidget(ui->homeButton);
ui->lverticalLayout->addItem(ui->lverticalSpacer_1);
ui->lverticalLayout->addWidget(ui->playerButton);
- ui->rverticalLayout->removeItem(ui->rverticalSpacer);
+ ui->rverticalLayout->removeItem(ui->rverticalSpacer_0);
+ ui->rverticalLayout->removeItem(ui->rverticalSpacer_1);
ui->rverticalLayout->addWidget(ui->addButton);
- ui->rverticalLayout->addItem(ui->rverticalSpacer);
+ ui->rverticalLayout->addItem(ui->rverticalSpacer_0);
+ ui->rverticalLayout->addWidget(ui->useButton);
+ ui->rverticalLayout->addItem(ui->rverticalSpacer_1);
ui->rverticalLayout->addWidget(ui->selectToggleButton);
+ ui->lverticalWidget->show();
+ ui->rverticalWidget->show();
}
void DirectoryView::portraitMode() {
+ ui->lverticalWidget->hide();
+ ui->rverticalWidget->hide();
ui->lverticalLayout->removeItem(ui->lverticalSpacer_0);
ui->lverticalLayout->removeItem(ui->lverticalSpacer_1);
- ui->rverticalLayout->removeItem(ui->rverticalSpacer);
+ ui->rverticalLayout->removeItem(ui->rverticalSpacer_0);
ui->topWidget->layout()->removeItem(ui->thorizontalSpacer_0);
ui->topWidget->layout()->removeItem(ui->thorizontalSpacer_1);
ui->topWidget->layout()->addWidget(ui->backButton);
ui->topWidget->layout()->addWidget(ui->homeButton);
ui->topWidget->layout()->addItem(ui->thorizontalSpacer_1);
ui->topWidget->layout()->addWidget(ui->addButton);
- ui->bottomWidget->layout()->removeItem(ui->bhorizontalSpacer);
+ ui->bottomWidget->layout()->removeItem(ui->bhorizontalSpacer_0);
+ ui->bottomWidget->layout()->removeItem(ui->bhorizontalSpacer_1);
ui->bottomWidget->layout()->addWidget(ui->playerButton);
- ui->bottomWidget->layout()->addItem(ui->bhorizontalSpacer);
+ ui->bottomWidget->layout()->addItem(ui->bhorizontalSpacer_0);
+ ui->bottomWidget->layout()->addWidget(ui->useButton);
+ ui->bottomWidget->layout()->addItem(ui->bhorizontalSpacer_1);
ui->bottomWidget->layout()->addWidget(ui->selectToggleButton);
ui->topWidget->show();
ui->bottomWidget->show();
void DirectoryView::updateTranslations() {
ui->retranslateUi(this);
+ homeScreen();
}
void DirectoryView::homeScreen() {
_model->setRowCount(2);
_model->setColumnCount(2);
_model->setItem(0, 0, new QStandardItem(QIcon(":/icons/"+_icons_theme+"/deselect_all.png"), ""));
- _model->setItem(0, 1, new QStandardItem(tr("Inner memory")));
+ _model->setItem(0, 1, new QStandardItem(tr("Internal memory")));
_model->setItem(1, 0, new QStandardItem(QIcon(":/icons/"+_icons_theme+"/deselect_all.png"), ""));
_model->setItem(1, 1, new QStandardItem(tr("Memory card")));
_directories << QDir::homePath()+"/MyDocs/";
ui->dirView->setColumnWidth(0, 70);
ui->addButton->setEnabled(false);
ui->addButton->setIcon(QIcon());
+ ui->useButton->setEnabled(false);
+ ui->useButton->setIcon(QIcon());
+}
+
+void DirectoryView::_use() {
+ emit clearCurrent();
+ _add();
}