summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-09-13 18:13:54 +0200
committerArno <arno@disconnect.de>2018-09-13 18:13:54 +0200
commit0e37c0939bfd6740e86ce0f9f568e36ac8494f6a (patch)
treea47857e625c133e91891848957135ec7dc05f300
parent569b929186ace8399d41344d2218ad4de96d65b7 (diff)
downloadSheMov-0e37c0939bfd6740e86ce0f9f568e36ac8494f6a.tar.gz
SheMov-0e37c0939bfd6740e86ce0f9f568e36ac8494f6a.tar.bz2
SheMov-0e37c0939bfd6740e86ce0f9f568e36ac8494f6a.zip
Remember full screen status for VideoViewer
And don't crash on close. Remove deleteLater()!
-rw-r--r--fswidget.cpp4
-rw-r--r--videoviewer.cpp9
-rw-r--r--videoviewer.h3
3 files changed, 12 insertions, 4 deletions
diff --git a/fswidget.cpp b/fswidget.cpp
index a55b635..52dca10 100644
--- a/fswidget.cpp
+++ b/fswidget.cpp
@@ -237,6 +237,8 @@ void FSWidget::readSettings(){
connect(a, &QAction::triggered, [=] { playSelected(1, p); });
pMenu->addAction(a);
}
+ bool fullScreen = s.value("vw/fullscreen").toBool();
+ mVideoViewer->setLastFullScreen(fullScreen);
}
void FSWidget::writeSettings(){
@@ -256,6 +258,7 @@ void FSWidget::writeSettings(){
s.setValue("fs/filters", filters);
s.setValue("fs/curfilter", curFilter);
s.setValue("fs/headerdata", mFileView->header()->saveState());
+ s.setValue("vw/fullscreen", mVideoViewer->lastFullScreen());
}
void FSWidget::insertItem(QComboBox *cb, const QString &text){
@@ -588,6 +591,7 @@ void FSWidget::playSelected(int count, QString player){
}
pl->setCurrentIndex(0);
mVideoViewer->setVisible(true);
+ mVideoViewer->setFullScreen(mVideoViewer->lastFullScreen());
mVideoViewer->player()->play();
}else{
if(mPlayer->state() != QProcess::NotRunning){
diff --git a/videoviewer.cpp b/videoviewer.cpp
index dbc6421..8c7c233 100644
--- a/videoviewer.cpp
+++ b/videoviewer.cpp
@@ -46,7 +46,9 @@ void VideoViewer::keyPressEvent(QKeyEvent *e){
player()->stop();
setHidden(true);
}else if(keyNum == Qt::Key_F){
- setFullScreen(isFullScreen() ? false : true);
+ bool fs = isFullScreen();
+ mLastFullScreen = !fs;
+ setFullScreen(mLastFullScreen);
}else if(keyNum == Qt::Key_Right){
mPlayer->setPosition(mPlayer->position() + 5000);
}else if(keyNum == Qt::Key_Left){
@@ -98,7 +100,6 @@ void VideoViewer::keyPressEvent(QKeyEvent *e){
void VideoViewer::closeEvent(QCloseEvent *e){
mPlayer->stop();
writeSettings();
- SmGlobals::instance()->removeGlobalWidget(this);
- deleteLater();
- e->accept();
+ hide();
+ e->ignore();
}
diff --git a/videoviewer.h b/videoviewer.h
index 2bbb8db..ff5bae6 100644
--- a/videoviewer.h
+++ b/videoviewer.h
@@ -16,6 +16,8 @@ class VideoViewer : public QVideoWidget {
public:
VideoViewer(QWidget *parent = nullptr);
QMediaPlayer* player() { return mPlayer; }
+ bool lastFullScreen() { return mLastFullScreen; }
+ void setLastFullScreen(bool last) { mLastFullScreen = last; }
public slots:
void readSettings();
@@ -27,6 +29,7 @@ class VideoViewer : public QVideoWidget {
private:
QMediaPlayer *mPlayer;
+ bool mLastFullScreen;
};
#endif // VIDEOVIEWER_H