diff options
Diffstat (limited to 'filesystemwidget.cpp')
-rw-r--r-- | filesystemwidget.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index aafcd6d..edb842c 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -306,6 +306,46 @@ void FilesystemWidget::renameFile(){ mRenameDialog->exec(); } +void FilesystemWidget::renameCover(const QString &infix){ + if(mTemplate.isEmpty()){ + emit statusbarMessage(tr("No template set!")); + return; + } + QModelIndex idx = mFileView->currentIndex(); + QSortFilterProxyModel *proxy = static_cast<QSortFilterProxyModel*>(mFileView->model()); + QModelIndex real = proxy->mapToSource(idx); + QFileInfo info = mModel->fileInfo(real); + QString newFilename = QString("%1/%2.%3.%4").arg(info.absolutePath()).arg(mTemplate).arg(infix).arg(info.suffix()); + QFileInfo nf(newFilename); + if(nf.exists()){ + QString message = QString(tr("New file %1 already exists!")).arg(newFilename); + statusbarMessage(message); + return; + } + QString question = QString(tr("Really rename %1 to %2?")).arg(info.absoluteFilePath()).arg(nf.fileName()); + int retval = QMessageBox::question(this, tr("Question"), question, QMessageBox::Yes | QMessageBox::No); + if(retval == QMessageBox::Yes){ + 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); + } + } +} + +void FilesystemWidget::setTemplate(){ + QModelIndex idx = mFileView->currentIndex(); + if(idx.column() != 0){ + idx = mFileView->model()->index(idx.row(), 0); + } + QFileInfo info(idx.data().toString()); + mTemplate = info.completeBaseName().toLower(); + emit newTemplate(mTemplate); +} + void FilesystemWidget::setWindowTitle(const QString &dir){ mWindowTitle = QString("%1 - %2").arg(qApp->applicationName()).arg(dir); emit windowTitle(mWindowTitle); |