summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2012-03-18 03:13:06 +0100
committerArno <am@disconnect.de>2012-03-18 03:13:06 +0100
commit6c97f7d9eef744ce1da03f4d203af2307b08f6eb (patch)
tree8079a158f6a12acaa4aef4588a93b513aaa49121
parent3e784fed0148c4ec24aa8b2b8ca53f2d9d9bc543 (diff)
downloadSheMov-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.cpp3
-rw-r--r--fileview.cpp2
-rw-r--r--hoverwindow.cpp2
-rw-r--r--pictureswidget.cpp6
-rw-r--r--seriestreewidget.cpp9
-rw-r--r--smglobals.cpp5
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);
}