From bd68dbf330b47f4205f81dd67e68a05e831e1bdc Mon Sep 17 00:00:00 2001 From: likehomedream Date: Fri, 17 Nov 2023 09:54:59 +0800 Subject: [PATCH] add plymouth file operate --- src/fileProcess/bridge.cpp | 13 +++++++++++-- src/fileProcess/bridge.h | 1 + src/fileProcess/configfilemanager.cpp | 26 ++++++++++++++++++++++++++ src/fileProcess/configfilemanager.h | 2 ++ src/maininterface.cpp | 5 +++++ src/maininterface.h | 1 + src/mainwindow.cpp | 2 ++ src/module/plymouththemewidget.cpp | 7 +++++++ src/module/plymouththemewidget.h | 1 + 9 files changed, 56 insertions(+), 2 deletions(-) diff --git a/src/fileProcess/bridge.cpp b/src/fileProcess/bridge.cpp index 64f3e65..a60d7bd 100644 --- a/src/fileProcess/bridge.cpp +++ b/src/fileProcess/bridge.cpp @@ -89,8 +89,14 @@ void Bridge::timeCursorMapChanged(QMap *timecursormap) void Bridge::plymouthPathChanged(QString path) { m_plymouthpath = path; - m_configfilemanager->copyPictoCacheDir(m_plymouthpath,QDir::homePath()+"/.cache/theme-build/" - +m_time+"/src/plymouthTheme","plymouth"); + QFileInfo fileInfo(m_plymouthpath); + if (fileInfo.suffix().toLower() == "mp4"){ + m_configfilemanager->copyMp4toCacheDir(m_plymouthpath,QDir::homePath()+"/.cache/theme-build/" + +m_time+"/src/plymouthTheme"); + }else{ + m_configfilemanager->copyPictoCacheDir(m_plymouthpath,QDir::homePath()+"/.cache/theme-build/" + +m_time+"/src/plymouthTheme","plymouth"); + } } void Bridge::grubPathChanged(QString path) @@ -167,6 +173,9 @@ void Bridge::createFileManager(QString time) m_configfilemanager = new ConfigFileManager(); // createDir(); connect(m_configfilemanager,&ConfigFileManager::updateInfo,this,&Bridge::updateInfo); + connect(m_configfilemanager, &ConfigFileManager::updateThumbnail, this, [&](const QString& path) { + emit updateThumbnail(path); + }); } //void Bridge::createDir() diff --git a/src/fileProcess/bridge.h b/src/fileProcess/bridge.h index 78cd3bd..a37a686 100644 --- a/src/fileProcess/bridge.h +++ b/src/fileProcess/bridge.h @@ -35,6 +35,7 @@ public: void updateIconCache(QMap *iconsmaps,QString icontype); signals: void updateInfo(); + void updateThumbnail(QString thumbnailPath); private: Bridge(QObject *parent = nullptr); QString m_time; diff --git a/src/fileProcess/configfilemanager.cpp b/src/fileProcess/configfilemanager.cpp index 04cc788..7ede36d 100644 --- a/src/fileProcess/configfilemanager.cpp +++ b/src/fileProcess/configfilemanager.cpp @@ -1,5 +1,6 @@ #include "configfilemanager.h" #include "historyinfoload.h" +#include ConfigFileManager::ConfigFileManager(QObject *parent) : QObject(parent) { @@ -304,3 +305,28 @@ void ConfigFileManager::copyPictoCacheDir(const QString &destinationFilePath, QD qDebug() << "File copied successfully"; } +void ConfigFileManager::copyMp4toCacheDir(const QString &destinationFilePath, QDir cachedir) +{ + QStringList list; + //ffmpeg -i "111.mp4" "/home/.cache/theme-build/m_time/src/plymouthTheme/%d.png" + //FIX ME :限制条件 + QString cache = cachedir.absolutePath()+"/%d.png"; + list<<"-i"< *map,QDir cachedir); void copyPictoCacheDir(const QString& destinationFilePath,QDir cachedir,QString type); + void copyMp4toCacheDir(const QString& destinationFilePath,QDir cachedir); signals: void updateInfo(); + void updateThumbnail(QString thumbnailPath); private: }; diff --git a/src/maininterface.cpp b/src/maininterface.cpp index 5fd8373..465134c 100644 --- a/src/maininterface.cpp +++ b/src/maininterface.cpp @@ -296,3 +296,8 @@ void MainInterface::updateButtonGroup(bool isGlobalTheme) } +void MainInterface::updateThumbnail(QString thumbnailPath) +{ + m_plymouththemewidget->setThumbnailIcon(thumbnailPath); +} + diff --git a/src/maininterface.h b/src/maininterface.h index 0daa48b..e27d037 100644 --- a/src/maininterface.h +++ b/src/maininterface.h @@ -40,6 +40,7 @@ public: void getThemeInfo(const HistoryInfo &InfoData); void updateButtonGroup(bool isGlobalTheme); + void updateThumbnail(QString thumbnailPath); //初始化和刷新时使用 QMap* getAppIconsMap(); QMap* getSystemIconsMap(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 739db28..04a3a9a 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -37,6 +37,8 @@ MainWindow::MainWindow(QWidget *parent) connect(m_maininterface, &MainInterface::grubPathChanged, m_bridge, &Bridge::grubPathChanged); // connect(m_maininterface, &MainInterface::startCopy, m_bridge, &Bridge::startCopy); connect(m_bridge,&Bridge::updateInfo,m_historywidget,&HistoryWidget::updateInfo); + connect(m_bridge,&Bridge::updateThumbnail,m_maininterface,&MainInterface::updateThumbnail); + connect(m_maininterface, &MainInterface::gohomesignals, this, &MainWindow::onGoHomeClicked); } diff --git a/src/module/plymouththemewidget.cpp b/src/module/plymouththemewidget.cpp index 26a5335..7b450b7 100644 --- a/src/module/plymouththemewidget.cpp +++ b/src/module/plymouththemewidget.cpp @@ -96,6 +96,13 @@ void PlymouthThemeWidget::initEditWidget() m_plymouthwidget->setLayout(widgetLayout); } +void PlymouthThemeWidget::setThumbnailIcon(QString path) +{ + QPixmap pixmap(path); + pixmap = pixmap.scaled(64,64, Qt::KeepAspectRatio); + m_customLabel->setPixmap(pixmap); +} + void PlymouthThemeWidget::addspaceritem() { QSpacerItem *spacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Expanding); diff --git a/src/module/plymouththemewidget.h b/src/module/plymouththemewidget.h index 3ac4b68..63f37d0 100644 --- a/src/module/plymouththemewidget.h +++ b/src/module/plymouththemewidget.h @@ -21,6 +21,7 @@ public: void initRightWidget(); void addspaceritem(); void initEditWidget(); + void setThumbnailIcon(QString path); signals: void newPlymouthFilePath(const QString& path); private: