diff options
author | Arno <am@disconnect.de> | 2012-03-18 03:13:06 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-03-18 03:13:06 +0100 |
commit | 6c97f7d9eef744ce1da03f4d203af2307b08f6eb (patch) | |
tree | 8079a158f6a12acaa4aef4588a93b513aaa49121 | |
parent | 3e784fed0148c4ec24aa8b2b8ca53f2d9d9bc543 (diff) | |
download | SheMov-6c97f7d9eef744ce1da03f4d203af2307b08f6eb.tar.gz SheMov-6c97f7d9eef744ce1da03f4d203af2307b08f6eb.tar.bz2 SheMov-6c97f7d9eef744ce1da03f4d203af2307b08f6eb.zip |
Fix FrameCache and HoverWindow
Another commit that should be two. While fixing FrameCache to delete
invalid Pixmaps, I ventured into the depths of HoverWindow. Now it hides
when focus leaves the widget we're hovering over.
-rw-r--r-- | filestreewidget.cpp | 3 | ||||
-rw-r--r-- | fileview.cpp | 2 | ||||
-rw-r--r-- | hoverwindow.cpp | 2 | ||||
-rw-r--r-- | pictureswidget.cpp | 6 | ||||
-rw-r--r-- | seriestreewidget.cpp | 9 | ||||
-rw-r--r-- | smglobals.cpp | 5 |
6 files changed, 20 insertions, 7 deletions
diff --git a/filestreewidget.cpp b/filestreewidget.cpp index 6222d99..2fedc33 100644 --- a/filestreewidget.cpp +++ b/filestreewidget.cpp @@ -337,8 +337,9 @@ void FilesTreeWidget::itemDoubleClicked(const QModelIndex &index){ } } -FilesTreeView::FilesTreeView(QWidget *parent) : QTreeView(parent), mHoverWin(new HoverWindow), mHoverPics(false){ +FilesTreeView::FilesTreeView(QWidget *parent) : QTreeView(parent), mHoverPics(false){ setAttribute(Qt::WA_Hover); + mHoverWin = new HoverWindow(this); } void FilesTreeView::setModel(QAbstractItemModel *model){ diff --git a/fileview.cpp b/fileview.cpp index bd0492f..bedd6ef 100644 --- a/fileview.cpp +++ b/fileview.cpp @@ -33,7 +33,7 @@ FileView::FileView(QWidget *parent) : QTreeView(parent), mDeleteA(0) { setAttribute(Qt::WA_Hover); setRootIsDecorated(false); - mHoverWin = new HoverWindow; + mHoverWin = new HoverWindow(this); QSize curSize = SmGlobals::instance()->cursorSize(); mHoverWin->setHoverOffset(QPoint(curSize.width() + 30, 0)); readConfig(); diff --git a/hoverwindow.cpp b/hoverwindow.cpp index b478879..4bfdae4 100644 --- a/hoverwindow.cpp +++ b/hoverwindow.cpp @@ -61,6 +61,7 @@ void HoverWindow::setContent(const QString &parent, const QStringList &children) mLabel->setText(curText); setMinimumSize(doc.size().width() + 10, doc.size().height() + 10); setMaximumSize(doc.size().width() + 10, doc.size().height() + 10); + raise(); } void HoverWindow::setPixmap(const QPixmap &pm, bool scale){ @@ -77,6 +78,7 @@ void HoverWindow::setPixmap(const QPixmap &pm, bool scale){ mLabel->setPixmap(curPm); setMaximumSize(curPm.width() + 10, curPm.height() + 10); setMinimumSize(curPm.width() + 10, curPm.height() + 10); + raise(); } void HoverWindow::setData(const QList<QVariant> &data){ diff --git a/pictureswidget.cpp b/pictureswidget.cpp index 95e8a60..afce0e4 100644 --- a/pictureswidget.cpp +++ b/pictureswidget.cpp @@ -117,7 +117,7 @@ PictureView::PictureView(QWidget *parent) : QTreeView(parent) { } //hover window - mHoverWin = new HoverWindow; + mHoverWin = new HoverWindow(this); //misc settings setSortingEnabled(true); @@ -183,6 +183,10 @@ void PictureView::hideEvent(QHideEvent *){ } bool PictureView::event(QEvent *e){ + if(e->type() == QEvent::Leave){ + mHoverWin->setVisible(false); + return QTreeView::event(e); + } QHoverEvent *hEvent = static_cast<QHoverEvent*>(e); if(!hEvent){ return QTreeView::event(e); diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index decdfa4..d6c216d 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -404,8 +404,9 @@ void SeriesTreeWidget::setFilterMode(int mode){ mCompleterProducerThread->start(); } -SeriesTreeView::SeriesTreeView(QWidget *parent) : QTreeView(parent), mHoverWin(new HoverWindow), mHover(false) { +SeriesTreeView::SeriesTreeView(QWidget *parent) : QTreeView(parent), mHover(false) { setAttribute(Qt::WA_Hover); + mHoverWin = new HoverWindow(this); readSettings(); } @@ -450,14 +451,14 @@ bool SeriesTreeView::event(QEvent *e){ if(curIdx != mCurHover){ mCurHover = curIdx; mHoverWin->setContent(curIdx.data(Qt::DisplayRole).toString(), children(curIdx)); - mHoverWin->setVisible(false); + //mHoverWin->setVisible(false); mHoverWin->setPos(); mHoverWin->setVisible(true); return true; - }else{ + }else{ mHoverWin->setPos(); return true; - } + } } if(e->type() == QEvent::HoverLeave){ return exitHover(); diff --git a/smglobals.cpp b/smglobals.cpp index 54f352d..ee43055 100644 --- a/smglobals.cpp +++ b/smglobals.cpp @@ -243,6 +243,11 @@ void SmGlobals::FrameCache::readCache(){ while(!ds.atEnd()){ QString source, pos, cacheFile; ds >> source >> pos >> cacheFile; + QFileInfo fi(cacheFile); + if(fi.size() == 0){ + QFile::remove(fi.absoluteFilePath()); + continue; + } QPair<QString, QString> pair(source, pos); mFrameCache.insert(pair, cacheFile); } |