diff options
Diffstat (limited to 'filestreewidget.cpp')
-rw-r--r-- | filestreewidget.cpp | 104 |
1 files changed, 53 insertions, 51 deletions
diff --git a/filestreewidget.cpp b/filestreewidget.cpp index dad3724..e5ab111 100644 --- a/filestreewidget.cpp +++ b/filestreewidget.cpp @@ -289,71 +289,73 @@ void FilesTreeView::contextMenuEvent(QContextMenuEvent *event){ } bool FilesTreeView::event(QEvent *e){ - QSettings s; - if(!s.value("ui/hoverpics").toBool()){ - return true; - } - QModelIndex curIdx; QHoverEvent *hEvent = static_cast<QHoverEvent*>(e); - if(!hEvent){ - return true; - } - QPoint hotSpot(hEvent->pos().x(), hEvent->pos().y() - SmGlobals::instance()->cursorOffset()); - QPoint globalPos = mapToGlobal(hotSpot); - QPoint where = globalPos + QPoint(30, 0); - - curIdx = indexAt(hotSpot); - if((e->type() == QEvent::HoverEnter) || (e->type() == QEvent::HoverMove)){ - if(!curIdx.isValid()){ - return true; - } - if(!curIdx.column() == 0){ - mCurHover = QModelIndex(); - mHoverWin->setVisible(false); - return true; - } - if(!curIdx.isValid()){ - return true; - } - QVariant fileType = curIdx.data(FilesTreeModel::FileTypeRole); - if(!fileType.isValid()){ - mHoverWin->setVisible(false); + if((hEvent->type() == QEvent::HoverEnter) || (hEvent->type() == QEvent::HoverLeave) || (hEvent->type() == QEvent::HoverMove)){ + if(!mHover){ return true; } - if(fileType.toInt() == FilesTreeModel::Movie){ - mHoverWin->setVisible(false); + QModelIndex curIdx; + + if(!hEvent){ return true; } - } + QPoint hotSpot(hEvent->pos().x(), hEvent->pos().y() - SmGlobals::instance()->cursorOffset()); + QPoint globalPos = mapToGlobal(hotSpot); + QPoint where = globalPos + QPoint(30, 0); - if(e->type() == QEvent::HoverEnter){ - mCurHover = curIdx; - QPixmap pm = QPixmap(curIdx.data(FilesTreeModel::FullPathRole).toString()); - mHoverWin->setPixmap(pm); - mHoverWin->setPos(where); - mHoverWin->setVisible(true); - return true; - } - if(e->type() == QEvent::HoverMove){ - if(mHoverWin->pixmapHeight()){ - where = QPoint(where.x(), where.y() - mHoverWin->pixmapHeight() / 2); + curIdx = indexAt(hotSpot); + if((e->type() == QEvent::HoverEnter) || (e->type() == QEvent::HoverMove)){ + if(!curIdx.isValid()){ + return true; + } + if(!curIdx.column() == 0){ + mCurHover = QModelIndex(); + mHoverWin->setVisible(false); + return true; + } + if(!curIdx.isValid()){ + return true; + } + QVariant fileType = curIdx.data(FilesTreeModel::FileTypeRole); + if(!fileType.isValid()){ + mHoverWin->setVisible(false); + return true; + } + if(fileType.toInt() == FilesTreeModel::Movie){ + mHoverWin->setVisible(false); + return true; + } } - if(curIdx != mCurHover){ + + if(e->type() == QEvent::HoverEnter){ mCurHover = curIdx; - mHoverWin->setPixmap(QPixmap(curIdx.data(FilesTreeModel::FullPathRole).toString())); - mHoverWin->setVisible(false); + QPixmap pm = QPixmap(curIdx.data(FilesTreeModel::FullPathRole).toString()); + mHoverWin->setPixmap(pm); mHoverWin->setPos(where); mHoverWin->setVisible(true); return true; - }else{ - mHoverWin->setPos(where); + } + if(e->type() == QEvent::HoverMove){ + if(mHoverWin->pixmapHeight()){ + where = QPoint(where.x(), where.y() - mHoverWin->pixmapHeight() / 2); + } + if(curIdx != mCurHover){ + mCurHover = curIdx; + mHoverWin->setPixmap(QPixmap(curIdx.data(FilesTreeModel::FullPathRole).toString())); + mHoverWin->setVisible(false); + mHoverWin->setPos(where); + mHoverWin->setVisible(true); + return true; + }else{ + mHoverWin->setPos(where); + return true; + } + } + if(e->type() == QEvent::HoverLeave){ + mHoverWin->setVisible(false); return true; } } - if(e->type() == QEvent::HoverLeave){ - mHoverWin->setVisible(false); - return true; - } return QTreeView::event(e); } |