diff options
Diffstat (limited to 'fileview.cpp')
-rw-r--r-- | fileview.cpp | 50 |
1 files changed, 12 insertions, 38 deletions
diff --git a/fileview.cpp b/fileview.cpp index 1fa370e..a9ed678 100644 --- a/fileview.cpp +++ b/fileview.cpp @@ -63,10 +63,8 @@ void FileView::markFiles(){ return; } QRegExp re(glob, Qt::CaseInsensitive, QRegExp::WildcardUnix); - FilesystemFileProxy *proxy = qobject_cast<FilesystemFileProxy*>(model()); - SmDirModel *m = qobject_cast<SmDirModel*>(proxy->sourceModel()); for(int i = 0; i < rowCount; ++i){ - QModelIndex cur = m->rootIndex().child(i, 0); + QModelIndex cur = mProxy->mapFromSource((mModel->rootIndex().child(i, 0))); if(cur.data(SmDirModel::NameRole).toString() == ".."){ continue; } @@ -89,17 +87,12 @@ void FileView::createFolder(){ if(!ok || folderName.isEmpty()){ return; } - QSortFilterProxyModel *proxy = qobject_cast<QSortFilterProxyModel*>(model()); - SmDirModel *model = qobject_cast<SmDirModel*>(proxy->sourceModel()); - model->dir().mkdir(folderName); - model->refresh(); + mModel->dir().mkdir(folderName); } void FileView::readConfig(){ QSettings s; mHoverPics = s.value("ui/hoverpics", true).toBool(); - mHoverMovies = s.value("ui/hovermovies", true).toBool(); - mWhen = s.value("ui/grabframe", "00:00:00").toString(); mHoverWin->setWindowOpacity(s.value("ui/hoveropacity", 10).toFloat() / 10.0); mCursorOffset = s.value("ui/cursoroffset").toInt(); readHeaderConfig(); @@ -111,8 +104,7 @@ void FileView::writeConfig(){ void FileView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint){ SmTreeView::closeEditor(editor, hint); - QSortFilterProxyModel *proxy = qobject_cast<QSortFilterProxyModel*>(model()); - QModelIndex sourceIdx = proxy->mapToSource(currentIndex()); + QModelIndex sourceIdx = mProxy->mapToSource(currentIndex()); emit editorClosed(sourceIdx); mModel->refreshTimer()->start(); } @@ -163,6 +155,9 @@ bool FileView::event(QEvent *e){ if(!hEvent){ return exitHover(); } + if(e->type() == QEvent::HoverLeave){ + return exitHover(); + } QPoint hotSpot(hEvent->pos().x(), hEvent->pos().y() + mCursorOffset); QModelIndex curIdx = indexAt(hotSpot); HoverFileType ft = None; @@ -181,12 +176,7 @@ bool FileView::event(QEvent *e){ return exitHover(); } ft = Image; - }else if(mimeType.startsWith("video")){ - if(!mHoverMovies){ - return exitHover(); - } - ft = Movie; - }else{ + }else{ return exitHover(); } }else{ @@ -205,9 +195,7 @@ bool FileView::event(QEvent *e){ mHoverWin->setPos(); } return true; - }else if(e->type() == QEvent::HoverLeave){ - return exitHover(); - } + } return SmTreeView::event(e); } @@ -260,25 +248,11 @@ bool FileView::exitHover(bool exitVal){ void FileView::doHover(const QFileInfo &fi, int type){ QPixmap pm; - if(type == Movie){ - pm = SmGlobals::instance()->frameCache()->entry(fi.absoluteFilePath(), mWhen); - if(pm.isNull()){ - exitHover(); - return; - } - mHoverWin->setPixmap(pm, false); - mHoverWin->setCaption(fi.fileName()); - }else if(type == Image){ + if(type == Image){ pm.load(fi.absoluteFilePath()); mHoverWin->setPixmap(pm); mHoverWin->setCaption(fi.fileName()); - }else if(type == Dir){ - QList<QVariant> hoverList; - hoverList << fi.fileName(); - QDir curDir(fi.absoluteFilePath()); - hoverList << curDir.entryList(QDir::AllEntries | QDir::NoDotAndDotDot, QDir::Name); - mHoverWin->setData(hoverList); - } - mHoverWin->setPos(); - mHoverWin->setVisible(true); + mHoverWin->setPos(); + mHoverWin->setVisible(true); + } } |