summaryrefslogtreecommitdiffstats
path: root/filesystemwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filesystemwidget.cpp')
-rw-r--r--filesystemwidget.cpp26
1 files changed, 8 insertions, 18 deletions
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp
index 63bef46..29a8e6e 100644
--- a/filesystemwidget.cpp
+++ b/filesystemwidget.cpp
@@ -5,7 +5,7 @@
2 of the License, or (at your option) any later version.
*/
-#include <QDirModel>
+#include <QFileSystemModel>
#include <QTreeView>
#include <QSettings>
#include <QDir>
@@ -33,9 +33,9 @@
#include "archiveeditdialog.h"
FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent) {
- mModel = new QDirModel;
+ mModel = new QFileSystemModel;
+ mModel->setRootPath("/");
mModel->setFilter(QDir::AllEntries | QDir::NoDotAndDotDot);
- mModel->setSorting(QDir::DirsFirst | QDir::IgnoreCase);
mModel->setReadOnly(false);
SheMovIconProvider *p = new SheMovIconProvider;
mModel->setIconProvider(p);
@@ -50,6 +50,8 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent) {
mDirView->setRootIsDecorated(false);
mDirView->setSelectionMode(QAbstractItemView::SingleSelection);
mDirView->setEditTriggers(QAbstractItemView::NoEditTriggers);
+ mDirView->setSortingEnabled(true);
+ mDirView->sortByColumn(0, Qt::AscendingOrder);
mFileView = new FileView;
mFileProxy = new FilesystemFileProxy;
@@ -105,7 +107,6 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent) {
void FilesystemWidget::setArchiveDialog(ArchiveEditDialog *dlg){
mAEDialog = dlg;
- mAEDialog->setDirModel(mModel);
}
void FilesystemWidget::directoryChanged(const QModelIndex &selected, const QModelIndex & /* deselected */){
@@ -113,6 +114,7 @@ void FilesystemWidget::directoryChanged(const QModelIndex &selected, const QMode
if(!real.isValid()){
return;
}
+ mModel->setRootPath(mModel->filePath(real));
mDirEdit->setText(mModel->filePath(real));
setWindowTitle(mModel->filePath(real));
mFileView->selectionModel()->clear();
@@ -177,7 +179,6 @@ void FilesystemWidget::deleteFiles(){
int count(0);
if(!selected.isEmpty()){
count = selected.count();
- mRefreshAction->setEnabled(false);
QString message = QString(tr("Really delete %1 files?")).arg(QString::number(selected.count()));
int retval = QMessageBox::question(this, tr("Question"), message, QMessageBox::Yes | QMessageBox::No);
if(retval == QMessageBox::Yes){
@@ -187,8 +188,6 @@ void FilesystemWidget::deleteFiles(){
}
}
mFileView->selectionModel()->clearSelection();
- mModel->refresh(QModelIndex());
- mRefreshAction->setEnabled(true);
}else{
count = 1;
QModelIndex cur = mFileView->currentIndex();
@@ -197,7 +196,6 @@ void FilesystemWidget::deleteFiles(){
int retval = QMessageBox::question(this, tr("Question"), message, QMessageBox::Yes | QMessageBox::No);
if(retval == QMessageBox::Yes){
deleteRecursive(mModel->fileInfo(real));
- mModel->refresh(real.parent());
}
}
QString message = QString(tr("Deleted %1 file(s)")).arg(count);
@@ -216,7 +214,6 @@ void FilesystemWidget::copyFiles(){
QString message = QString(tr("Really copy %1 files to %2?")).arg(selected.count()).arg(root.absoluteFilePath());
int retval = QMessageBox::question(this, tr("Question"), message, QMessageBox::Yes | QMessageBox::No);
if(retval == QMessageBox::Yes){
- mRefreshAction->setEnabled(false);
int files(0), dirs(0), failed(0);
foreach(QModelIndex idx, selected){
QModelIndex real = proxy->mapToSource(idx);
@@ -236,8 +233,6 @@ void FilesystemWidget::copyFiles(){
QString message = QString(tr("Successfully copied %1 files and %2 directories, %3 errors")).arg(files).arg(dirs).arg(failed);
statusbarMessage(message);
mFileView->selectionModel()->clearSelection();
- mModel->refresh(rootIndex);
- mRefreshAction->setEnabled(true);
}
}
@@ -253,7 +248,6 @@ void FilesystemWidget::moveFiles(){
QString message = QString(tr("Really move %1 file(s) to %2?")).arg(selected.count()).arg(root.absoluteFilePath());
int retval = QMessageBox::question(this, tr("Question"), message, QMessageBox::Yes | QMessageBox::No);
if(retval == QMessageBox::Yes){
- mRefreshAction->setEnabled(false);
int success(0), failed(0);
foreach(QModelIndex cur, selected){
QModelIndex real = proxy->mapToSource(cur);
@@ -267,9 +261,7 @@ void FilesystemWidget::moveFiles(){
}
QString message = QString(tr("Successfully moved %1 file(s), %2 errors")).arg(success).arg(failed);
emit statusbarMessage(message);
- mRefreshAction->setEnabled(true);
mFileView->selectionModel()->clearSelection();
- mModel->refresh(QModelIndex());
}
}
@@ -316,7 +308,6 @@ void FilesystemWidget::renameCover(const QString &infix){
if(QFile::rename(info.absoluteFilePath(), newFilename)){
QString message = QString(tr("Successfully renamed %1 to %2")).arg(info.fileName()).arg(nf.fileName());
emit statusbarMessage(message);
- mModel->refresh(real.parent());
}else{
QString message = QString(tr("Failed to rename %1 to %2")).arg(info.fileName()).arg(nf.fileName());
emit statusbarMessage(message);
@@ -367,10 +358,10 @@ void FilesystemWidget::archiveFiles(){
mAEDialog->activateWindow();
}
-void FilesystemWidget::refreshDir(const QString &dir){
+/*void FilesystemWidget::refreshDir(const QString &dir){
QModelIndex idx = mModel->index(dir);
mModel->refresh(idx);
-}
+}*/
void FilesystemWidget::playSelected(const QString &player){
QStringList files = selectedFiles();
@@ -504,7 +495,6 @@ void FilesystemWidget::doRenameFile(){
if(QFile::rename(info.absoluteFilePath(), newName)){
QString message = QString(tr("Renamed %1 to %2")).arg(info.absoluteFilePath()).arg(newName);
emit statusbarMessage(message);
- mModel->refresh(real.parent());
}
QFileInfo n(newName);
mTemplate = n.completeBaseName();