diff options
-rw-r--r-- | filestreewidget.cpp | 104 | ||||
-rw-r--r-- | fileview.cpp | 128 | ||||
-rw-r--r-- | fileview.h | 2 | ||||
-rw-r--r-- | seriestreewidget.cpp | 67 | ||||
-rw-r--r-- | shemov.cpp | 12 | ||||
-rw-r--r-- | shemov.h | 3 |
6 files changed, 165 insertions, 151 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); } diff --git a/fileview.cpp b/fileview.cpp index 2da9bc6..fdd51e4 100644 --- a/fileview.cpp +++ b/fileview.cpp @@ -54,6 +54,13 @@ void FileView::createFolder(){ mCreateFolderDialog->show(); } +void FileView::readConfig(){ + QSettings s; + mHover = s.value("ui/hoverpics", true).toBool(); + mHoverWin->setWindowOpacity(s.value("ui/hoveropacity", 10).toFloat() / 10.0); +} + + void FileView::doMark(){ int rowCount = model()->rowCount(rootIndex()); QString sRegex = mMarkDialog->text(); @@ -139,83 +146,78 @@ void FileView::resizeEvent(QResizeEvent *e){ } bool FileView::event(QEvent *e){ - QSettings s; - if(!s.value("ui/hoverpics").toBool()){ - return true; - } - - if(e->type() == QEvent::HoverLeave){ - mHoverWin->setVisible(false); - mCurHover = QModelIndex(); - return true; - } - QHoverEvent *hEvent = static_cast<QHoverEvent*>(e); - QPoint hotSpot(hEvent->pos().x(), hEvent->pos().y() - SmGlobals::instance()->cursorOffset()); - QModelIndex curIdx = indexAt(hotSpot); - - if(!curIdx.isValid()){ - return true; - } - if(curIdx.column() != 0){ - mHoverWin->setVisible(false); - return true; - } - - QFileInfo fi(curIdx.data(QFileSystemModel::FilePathRole).toString()); - if(!fi.exists()){ - return true; - } - - QList<QVariant> hoverData; - if(fi.isDir()){ - hoverData << fi.fileName(); - QDir curDir(fi.absoluteFilePath()); - QStringList files = curDir.entryList(QDir::AllEntries | QDir::NoDotAndDotDot, QDir::Name); - hoverData << files; - }else if(fi.isFile()){ - QString mimeType = Helper::mimeType(fi.absoluteFilePath()); - if(mimeType.startsWith("image")){ - QPixmap pm(fi.absoluteFilePath()); - hoverData << pm; - }else{ + if((hEvent->type() == QEvent::HoverEnter) || (hEvent->type() == QEvent::HoverLeave) || (hEvent->type() == QEvent::HoverMove)){ + if(!mHover){ + return true; + } + if(e->type() == QEvent::HoverLeave){ mHoverWin->setVisible(false); + mCurHover = QModelIndex(); return true; } - }else{ - mHoverWin->setVisible(false); - return true; - } - - QPoint globalPos = mapToGlobal(hotSpot); - QPoint where = globalPos + QPoint(30, 0); - if(e->type() == QEvent::HoverEnter){ - mCurHover = curIdx; - mHoverWin->setData(hoverData); - if(mHoverWin->pixmapHeight()){ - where = QPoint(where.x(), where.y() - mHoverWin->pixmapHeight() / 2); + QPoint hotSpot(hEvent->pos().x(), hEvent->pos().y() - SmGlobals::instance()->cursorOffset()); + QModelIndex curIdx = indexAt(hotSpot); + if(!curIdx.isValid()){ + return true; } - mHoverWin->setPos(where); - mHoverWin->setVisible(true); - return true; - } - if(e->type() == QEvent::HoverMove){ - if(curIdx != mCurHover){ + if(curIdx.column() != 0){ + mHoverWin->setVisible(false); + return true; + } + QFileInfo fi(curIdx.data(QFileSystemModel::FilePathRole).toString()); + if(!fi.exists()){ + return true; + } + QList<QVariant> hoverData; + if(fi.isDir()){ + hoverData << fi.fileName(); + QDir curDir(fi.absoluteFilePath()); + QStringList files = curDir.entryList(QDir::AllEntries | QDir::NoDotAndDotDot, QDir::Name); + hoverData << files; + }else if(fi.isFile()){ + QString mimeType = Helper::mimeType(fi.absoluteFilePath()); + if(mimeType.startsWith("image")){ + QPixmap pm(fi.absoluteFilePath()); + hoverData << pm; + }else{ + mHoverWin->setVisible(false); + return true; + } + }else{ + mHoverWin->setVisible(false); + return true; + } + QPoint globalPos = mapToGlobal(hotSpot); + QPoint where = globalPos + QPoint(30, 0); + if(e->type() == QEvent::HoverEnter){ mCurHover = curIdx; mHoverWin->setData(hoverData); if(mHoverWin->pixmapHeight()){ where = QPoint(where.x(), where.y() - mHoverWin->pixmapHeight() / 2); } - mHoverWin->setVisible(false); mHoverWin->setPos(where); mHoverWin->setVisible(true); return true; - }else{ - if(mHoverWin->pixmapHeight()){ - where = QPoint(where.x(), where.y() - mHoverWin->pixmapHeight() / 2); + } + if(e->type() == QEvent::HoverMove){ + if(curIdx != mCurHover){ + mCurHover = curIdx; + mHoverWin->setData(hoverData); + if(mHoverWin->pixmapHeight()){ + where = QPoint(where.x(), where.y() - mHoverWin->pixmapHeight() / 2); + } + mHoverWin->setVisible(false); + mHoverWin->setPos(where); + mHoverWin->setVisible(true); + return true; + }else{ + if(mHoverWin->pixmapHeight()){ + where = QPoint(where.x(), where.y() - mHoverWin->pixmapHeight() / 2); + } + mHoverWin->setPos(where); + return true; } - mHoverWin->setPos(where); - return true; } } return QTreeView::event(e); @@ -35,6 +35,7 @@ class FileView : public QTreeView { void markFiles(); void unmarkFiles(); void createFolder(); + void readConfig(); private slots: void doMark(); @@ -52,6 +53,7 @@ class FileView : public QTreeView { QAction *mDeleteA; HoverWindow *mHoverWin; QModelIndex mCurHover; + bool mHover; }; #endif diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index c9abafd..5a57ec4 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -333,52 +333,51 @@ void SeriesTreeView::contextMenuEvent(QContextMenuEvent *e){ } bool SeriesTreeView::event(QEvent *e){ - QSettings s; - if(!s.value("ui/hoverarchive").toBool()){ - return true; - } - QModelIndex curIdx; QHoverEvent *hEvent = static_cast<QHoverEvent*>(e); - QPoint hotSpot(hEvent->pos().x(), hEvent->pos().y() - SmGlobals::instance()->cursorOffset()); - QPoint globalPos = mapToGlobal(hotSpot); - QPoint where = globalPos + QPoint(30, 30); - - curIdx = indexAt(hotSpot); - if((e->type() == QEvent::HoverEnter) || (e->type() == QEvent::HoverMove)){ - if(!curIdx.isValid()){ + if((hEvent->type() == QEvent::HoverEnter) || (hEvent->type() == QEvent::HoverLeave) || (hEvent->type() == QEvent::HoverMove)){ + if(!mHover){ return true; } - if(curIdx.parent() != QModelIndex()){ - mHoverWin->setVisible(false); - mCurHover = QModelIndex(); - return true; + QModelIndex curIdx; + QPoint hotSpot(hEvent->pos().x(), hEvent->pos().y() - SmGlobals::instance()->cursorOffset()); + QPoint globalPos = mapToGlobal(hotSpot); + QPoint where = globalPos + QPoint(30, 30); + curIdx = indexAt(hotSpot); + if((e->type() == QEvent::HoverEnter) || (e->type() == QEvent::HoverMove)){ + if(!curIdx.isValid()){ + return true; + } + if(curIdx.parent() != QModelIndex()){ + mHoverWin->setVisible(false); + mCurHover = QModelIndex(); + return true; + } } - } - - if(e->type() == QEvent::HoverEnter){ - mCurHover = curIdx; - mHoverWin->setContent(curIdx.data(Qt::DisplayRole).toString(), children(curIdx)); - mHoverWin->setPos(where); - mHoverWin->setVisible(true); - return true; - } - if(e->type() == QEvent::HoverMove){ - if(curIdx != mCurHover){ + if(e->type() == QEvent::HoverEnter){ mCurHover = curIdx; mHoverWin->setContent(curIdx.data(Qt::DisplayRole).toString(), children(curIdx)); - mHoverWin->setVisible(false); mHoverWin->setPos(where); mHoverWin->setVisible(true); return true; - }else{ - mHoverWin->setPos(where); + } + if(e->type() == QEvent::HoverMove){ + if(curIdx != mCurHover){ + mCurHover = curIdx; + mHoverWin->setContent(curIdx.data(Qt::DisplayRole).toString(), children(curIdx)); + 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); } @@ -61,6 +61,8 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla connect(mATree, SIGNAL(needWindowTitleChange(QString)), this, SLOT(setWindowTitle(QString))); connect(mATree->filesWidget()->filesTree()->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), this, SLOT(updateSelectionCount(const QItemSelection &, const QItemSelection &))); connect(mATree->seriesWidget()->seriesTree()->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(updateSelectionCount(QItemSelection,QItemSelection))); + connect(this, SIGNAL(configChanged()), mATree->seriesWidget()->seriesTree(), SLOT(readConfig())); + connect(this, SIGNAL(configChanged()), mATree->filesWidget()->filesTree(), SLOT(readConfig())); //newmoviewizard mNewMovieWizard = new NewMovieWizard(this); @@ -83,14 +85,15 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla connect(mFSWidget->dirModel(), SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(setFsFree())); connect(mFSWidget->dirModel(), SIGNAL(layoutChanged()), this, SLOT(setFsFree())); connect(mFSWidget->dirModel(), SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(setFsFree())); + connect(this, SIGNAL(configChanged()), mFSWidget->fileView(), SLOT(readConfig())); QWidget *centralWidget = new QWidget; centralWidget->setLayout(mainLayout); setCentralWidget(centralWidget); + show(); mATree->seriesWidget()->readSettings(); mFSWidget->readSettings(); readSettings(); - show(); mFSWidget->fileView()->setFocus(Qt::ActiveWindowFocusReason); } @@ -142,8 +145,7 @@ void SheMov::configure(){ dlg.exec(); createOpenWithMenuFS(); createOpenWithMenuAV(); - mATree->seriesWidget()->seriesTree()->readConfig(); - mATree->filesWidget()->filesTree()->readConfig(); + emit configChanged(); } void SheMov::tabChanged(int newTab){ @@ -606,6 +608,10 @@ void SheMov::readSettings(){ if(winState){ setWindowState(Qt::WindowMaximized); } + int currentTab = s.value("ui/selectedtab", 0).toInt(); + if(currentTab < mTab->count() && currentTab != mTab->currentIndex()){ + mTab->setCurrentIndex(currentTab); + } int filesMode = s.value("ui/filestreemode", FilesTreeModel::Normal).toInt(); switch(filesMode){ case FilesTreeModel::Normal: @@ -44,6 +44,9 @@ class SheMov : public QMainWindow { void newMovieWizardWithFiles(); void setSize(qint64 size); + signals: + void configChanged(); + private: void createStatusbar(); void createActions(); |