diff options
author | Arno <am@disconnect.de> | 2010-05-12 19:58:20 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-05-12 19:58:20 +0200 |
commit | e0fcfd2bc9bee8fd5b27157acab4be8497117844 (patch) | |
tree | e38ad067636094321b99b9ce6f0647dcc0ccee3f /filesystemwidget.cpp | |
parent | 962fbe7377d47bf50cc580fcac21a98cd8a0fd85 (diff) | |
download | SheMov-e0fcfd2bc9bee8fd5b27157acab4be8497117844.tar.gz SheMov-e0fcfd2bc9bee8fd5b27157acab4be8497117844.tar.bz2 SheMov-e0fcfd2bc9bee8fd5b27157acab4be8497117844.zip |
Discard QDirModel
QDirModel is deprecated by the Nokia guys. Use QFileSystemModel instead.
Diffstat (limited to 'filesystemwidget.cpp')
-rw-r--r-- | filesystemwidget.cpp | 26 |
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(); |