summaryrefslogtreecommitdiffstats
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
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
-rw-r--r--filesystemwidget.cpp5
-rw-r--r--fileview.cpp50
-rw-r--r--fileview.h7
-rw-r--r--shemov.cpp2
4 files changed, 18 insertions, 46 deletions
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp
index ea129ad..c2d3861 100644
--- a/filesystemwidget.cpp
+++ b/filesystemwidget.cpp
@@ -227,7 +227,6 @@ void FilesystemWidget::goBack(){
void FilesystemWidget::deleteFiles(){
TimerHandler h(mFileModel->refreshTimer());
- QSortFilterProxyModel *proxy = qobject_cast<QSortFilterProxyModel*>(mFileView->model());
QModelIndexList selected = mFileView->selectionModel()->selectedRows();
if(selected.isEmpty()){
return;
@@ -237,8 +236,8 @@ void FilesystemWidget::deleteFiles(){
int retval = QMessageBox::question(this, tr("Question"), message, QMessageBox::Yes | QMessageBox::No);
if(retval == QMessageBox::Yes){
foreach(QModelIndex idx, selected){
- QModelIndex real = proxy->mapToSource(idx);
- deleteRecursive(mFileModel->fileInfo(real));
+ QFileInfo fi(idx.data(SmDirModel::FullPathRole).toString());
+ deleteRecursive(fi);
}
}
}
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);
+ }
}
diff --git a/fileview.h b/fileview.h
index aa9244c..65097bd 100644
--- a/fileview.h
+++ b/fileview.h
@@ -51,8 +51,8 @@ class FileView : public SmTreeView {
void selectedFilesChanged();
void properties();
- protected slots:
- virtual void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint);
+ protected slots:
+ virtual void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint);
protected:
virtual void contextMenuEvent(QContextMenuEvent *e);
@@ -67,10 +67,7 @@ class FileView : public SmTreeView {
QAction *mDeleteA;
HoverWindow *mHoverWin;
QModelIndex mCurHover;
- bool mHoverDirs;
- bool mHoverMovies;
bool mHoverPics;
- QString mWhen;
qint16 mCursorOffset;
QList<QString> mMd5Sums;
FilesystemFileProxy *mProxy;
diff --git a/shemov.cpp b/shemov.cpp
index 86b54f6..9f81840 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -399,9 +399,11 @@ void SheMov::createActions(){
connect(mBackDirA, SIGNAL(triggered()), mFSWidget, SLOT(goBack()));
mMarkFilesA = new QAction(tr("Select files..."), this);
mMarkFilesA->setShortcut(tr("CTRL++"));
+ mMarkFilesA->setShortcut(QKeySequence(Qt::CTRL + Qt::KeypadModifier + Qt::Key_Plus));
connect(mMarkFilesA, SIGNAL(triggered()), mFSWidget->fileView(), SLOT(markFiles()));
mUnmarkFilesA = new QAction(tr("Deselect all files"), this);
mUnmarkFilesA->setShortcut(tr("CTRL+-"));
+ mUnmarkFilesA->setShortcut(QKeySequence(Qt::CTRL + Qt::KeypadModifier + Qt::Key_Minus));
connect(mUnmarkFilesA, SIGNAL(triggered()), mFSWidget->fileView(), SLOT(unmarkFiles()));
mCreateFolderA = new QAction(tr("Create folder..."), this);
mCreateFolderA->setShortcut(tr("CTRL+n"));