aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/core/libLumina
diff options
context:
space:
mode:
authorZackaryWelch <welch.zackary@gmail.com>2017-10-16 21:00:07 -0400
committerZackaryWelch <welch.zackary@gmail.com>2017-10-16 21:00:07 -0400
commitcd928a79ff4bf6da55689bc100168355ec962b50 (patch)
tree0c06d52e780936d1fc9bc29ead53876837b94133 /src-qt5/core/libLumina
parentClean up the session file-init routine. (diff)
downloadlumina-cd928a79ff4bf6da55689bc100168355ec962b50.tar.gz
lumina-cd928a79ff4bf6da55689bc100168355ec962b50.tar.bz2
lumina-cd928a79ff4bf6da55689bc100168355ec962b50.zip
Updated how video thumbnails are loaded. Now cached to stop crash when
resizing.
Diffstat (limited to 'src-qt5/core/libLumina')
-rw-r--r--src-qt5/core/libLumina/LVideoLabel.cpp50
-rw-r--r--src-qt5/core/libLumina/LVideoLabel.h9
-rw-r--r--src-qt5/core/libLumina/LVideoLabel.pri5
-rw-r--r--src-qt5/core/libLumina/LuminaThemes.cpp6
4 files changed, 42 insertions, 28 deletions
diff --git a/src-qt5/core/libLumina/LVideoLabel.cpp b/src-qt5/core/libLumina/LVideoLabel.cpp
index 20b2cad4..3b2ce468 100644
--- a/src-qt5/core/libLumina/LVideoLabel.cpp
+++ b/src-qt5/core/libLumina/LVideoLabel.cpp
@@ -1,40 +1,42 @@
#include "LVideoLabel.h"
-LVideoLabel::LVideoLabel(QString file, bool video) : QLabel(){
- this->setScaledContents(true);
- if(video) {
- mediaPlayer = new QMediaPlayer(this, QMediaPlayer::VideoSurface);
- thumbnail = QPixmap();
- entered = false;
- surface = new LVideoSurface(this);
- mediaPlayer->setVideoOutput(surface);
- mediaPlayer->setMedia(QUrl("file://" + file));
- mediaPlayer->setPlaybackRate(3);
- mediaPlayer->setMuted(true);
- mediaPlayer->play();
- mediaPlayer->pause();
- this->connect(surface, SIGNAL(frameReceived(QPixmap)), this, SLOT(stopVideo(QPixmap)));
- this->connect(mediaPlayer, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), this, SLOT(setDuration(QMediaPlayer::MediaStatus)));
- this->connect(this, SIGNAL(rollOver()), surface, SLOT(switchRollOver()));
- }else{
- thumbnail = QPixmap(file);
- this->setPixmap(thumbnail);
- }
+LVideoLabel::LVideoLabel(QString file, QWidget *parent) : QLabel(parent) {
+ this->setScaledContents(true);
+ mediaPlayer = new QMediaPlayer(this, QMediaPlayer::VideoSurface);
+ thumbnail = QPixmap();
+ this->setPixmap(thumbnail);
+ entered = false;
+ surface = new LVideoSurface(this);
+ mediaPlayer->setVideoOutput(surface);
+ mediaPlayer->setPlaybackRate(3);
+ mediaPlayer->setMuted(true);
+ mediaPlayer->setMedia(QUrl("file://" + file));
+ mediaPlayer->play();
+ mediaPlayer->pause();
+
+ this->connect(surface, SIGNAL(frameReceived(QPixmap)), this, SLOT(stopVideo(QPixmap)));
+ this->connect(mediaPlayer, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), this, SLOT(setDuration(QMediaPlayer::MediaStatus)));
+ this->connect(this, SIGNAL(rollOver()), surface, SLOT(switchRollOver()));
}
LVideoLabel::~LVideoLabel() {
mediaPlayer->deleteLater();
- surface->deleteLater();
+ delete surface;
+}
+
+void LVideoLabel::setShrinkPixmap(bool shrink) {
+ this->shrink = shrink;
}
void LVideoLabel::stopVideo(QPixmap pix) {
if(!entered) {
+ emit frameReceived(pix);
if(thumbnail.isNull())
- thumbnail = QPixmap(pix.scaledToHeight(64));
- this->setPixmap(thumbnail);
+ thumbnail = pix;
+ this->setPixmap((shrink) ? thumbnail.scaledToHeight(64) : thumbnail);
mediaPlayer->pause();
}else {
- this->setPixmap(QPixmap(pix.scaledToHeight(64)));
+ this->setPixmap((shrink) ? pix.scaledToHeight(64) : pix);
}
}
diff --git a/src-qt5/core/libLumina/LVideoLabel.h b/src-qt5/core/libLumina/LVideoLabel.h
index fd293200..fa590e5a 100644
--- a/src-qt5/core/libLumina/LVideoLabel.h
+++ b/src-qt5/core/libLumina/LVideoLabel.h
@@ -10,21 +10,24 @@
class LVideoLabel : public QLabel {
Q_OBJECT
public:
- LVideoLabel(QString, bool);
+ LVideoLabel(QString, QWidget* parent=NULL);
~LVideoLabel();
+ void setShrinkPixmap(bool);
+
protected:
void enterEvent(QEvent*);
void leaveEvent(QEvent*);
signals:
void rollOver();
- public slots:
+ void frameReceived(QPixmap);
+ private slots:
void stopVideo(QPixmap);
void setDuration(QMediaPlayer::MediaStatus);
private:
QMediaPlayer *mediaPlayer;
LVideoSurface *surface;
- QVideoWidget *videoPlayer;
QPixmap thumbnail;
bool entered;
+ bool shrink;
};
#endif
diff --git a/src-qt5/core/libLumina/LVideoLabel.pri b/src-qt5/core/libLumina/LVideoLabel.pri
index f609df08..384b3aae 100644
--- a/src-qt5/core/libLumina/LVideoLabel.pri
+++ b/src-qt5/core/libLumina/LVideoLabel.pri
@@ -1,8 +1,11 @@
QT *= multimedia
HEADERS *= $${PWD}/LVideoLabel.h
+HEADERS *= $${PWD}/LVideoSurface.h
SOURCES *= $${PWD}/LVideoLabel.cpp
+SOURCES *= $${PWD}/LVideoSurface.cpp
INCLUDEPATH *= ${PWD}
-include(LVideoSurface.pri)
+#Now the other dependendies of it
+#include(LUtils.pri)
diff --git a/src-qt5/core/libLumina/LuminaThemes.cpp b/src-qt5/core/libLumina/LuminaThemes.cpp
index f6868651..857e604b 100644
--- a/src-qt5/core/libLumina/LuminaThemes.cpp
+++ b/src-qt5/core/libLumina/LuminaThemes.cpp
@@ -122,6 +122,8 @@ QStringList LTHEME::availableSystemCursors(){ //returns: [name] for each item
//Save a new theme/color file
bool LTHEME::saveLocalTheme(QString name, QStringList contents){
+ Q_UNUSED(name);
+ Q_UNUSED(contents);
return false; //old format - do not use!!
//QString localdir = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/themes/";
//if(!QFile::exists(localdir)){ QDir dir; dir.mkpath(localdir); }
@@ -129,6 +131,8 @@ bool LTHEME::saveLocalTheme(QString name, QStringList contents){
}
bool LTHEME::saveLocalColors(QString name, QStringList contents){
+ Q_UNUSED(name);
+ Q_UNUSED(contents);
return false; //old format - do not use!!
// QString localdir = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/colors/";
//if(!QFile::exists(localdir)){ QDir dir; dir.mkpath(localdir); }
@@ -182,6 +186,8 @@ QString LTHEME::currentCursor(){
//Change the current Theme/Colors/Icons
bool LTHEME::setCurrentSettings(QString themepath, QString colorpath, QString iconname, QString font, QString fontsize){
+ Q_UNUSED(font);
+ Q_UNUSED(fontsize);
//QIcon::setThemeName(iconname);
//Save these settings into the theme engine settings
QSettings engineset("lthemeengine","lthemeengine");
bgstack15