summaryrefslogtreecommitdiffstats
path: root/fileview.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-09-14 07:00:38 +0200
committerArno <am@disconnect.de>2013-09-14 07:00:38 +0200
commitc277eca79a3fbdbfe07d940369d687bafb84eef6 (patch)
tree66cfda6760d931ef054b37752767104b8577e36e /fileview.cpp
parent2796bd55f76739b96131db40f7dfa2a578afeb21 (diff)
downloadSheMov-c277eca79a3fbdbfe07d940369d687bafb84eef6.tar.gz
SheMov-c277eca79a3fbdbfe07d940369d687bafb84eef6.tar.bz2
SheMov-c277eca79a3fbdbfe07d940369d687bafb84eef6.zip
Code cleanup
Fix FileView + FilesystemWidget. * Get rid of useless qobject_casts * Remove hover over movies and directories * Fix shortcut for (de-)selecting files
Diffstat (limited to 'fileview.cpp')
-rw-r--r--fileview.cpp50
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);
+ }
}