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";
setWindowFlags(windowFlags() | Qt::Window);
setAttribute(Qt::WA_Maemo5StackedWindow);
_model = new QStandardItemModel(0, 2, this);
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();
+ 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;
}
}
void DirectoryView::_home() {
_current_dir = QDir::homePath();
homeScreen();
+ _nav_history.clear();
}
void DirectoryView::_toggle_selection() {
_home();
}
-void DirectoryView::updateGradient() {
+void DirectoryView::checkGradient() {
Config config;
if (config.getValue("ui/gradient").toString() == "yes") {
ui->bottomWidget->setStyleSheet(_bottom_gradient);