diff options
-rw-r--r-- | fileview.cpp | 11 | ||||
-rw-r--r-- | smdirmodel.h | 2 |
2 files changed, 7 insertions, 6 deletions
diff --git a/fileview.cpp b/fileview.cpp index f582433..8f50330 100644 --- a/fileview.cpp +++ b/fileview.cpp @@ -72,18 +72,17 @@ void FileView::unmarkFiles(){ void FileView::createFolder(){ bool ok; - QString title = QString(tr("%1 - %2")).arg(qApp->applicationName()).arg(tr("Mark files")); - QString folderName = QInputDialog::getText(this, title, tr("Enter new folder name"), QLineEdit::Normal, QString(), &ok); + QString folderName = QInputDialog::getText(this, tr("Create folder"), tr("Enter new folder name"), QLineEdit::Normal, QString(), &ok); if(!ok){ return; } if(!ok || folderName.isEmpty()){ return; } - QSortFilterProxyModel *proxy = qobject_cast<QSortFilterProxyModel*>(model()); - QFileSystemModel *fsModel = qobject_cast<QFileSystemModel*>(proxy->sourceModel()); - QModelIndex root = proxy->mapToSource(rootIndex()); - fsModel->mkdir(root, folderName); + QSortFilterProxyModel *proxy = qobject_cast<QSortFilterProxyModel*>(model()); + SmDirModel *model = qobject_cast<SmDirModel*>(proxy->sourceModel()); + model->dir().mkdir(folderName); + model->refresh(); } void FileView::readConfig(){ diff --git a/smdirmodel.h b/smdirmodel.h index d087558..620a632 100644 --- a/smdirmodel.h +++ b/smdirmodel.h @@ -15,6 +15,7 @@ #include <QFileInfo> #include <QMap> #include <QIcon> +#include <QDir> #include <smtreemodel.h> #include <smdirwatcher.h> @@ -35,6 +36,7 @@ class SmDirModel : public SmTreeModel { virtual bool setData(const QModelIndex &index, const QVariant &value, int role); bool isDir(const QModelIndex &idx) const; QFileInfo fileInfo(const QModelIndex &idx) const; + QDir dir() const { return QDir(mCur); }; public slots: void setDir(const QString &dir); |