diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,8 +12,8 @@ include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) -find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Gui) -find_package(KF5 REQUIRED COMPONENTS KIO) +find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Gui) +find_package(KF5 REQUIRED COMPONENTS KIO I18n Config) find_package(FFmpeg COMPONENTS AVCODEC AVFORMAT SWSCALE) include_directories( @@ -34,10 +34,12 @@ ffmpegthumbnailer/videothumbnailer.cpp ) +kconfig_add_kcfg_files(ffmpegthumbs_PART_SRCS ffmpegthumbnailersettings5.kcfgc) add_library(ffmpegthumbs MODULE ${ffmpegthumbs_PART_SRCS}) -target_link_libraries(ffmpegthumbs Qt5::Gui KF5::KIOWidgets ${AVUTIL_LIBRARIES} ${AVFILTER_LIBRARIES} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${SWSCALE_LIBRARIES} ) +target_link_libraries(ffmpegthumbs Qt5::Core Qt5::Gui KF5::KIOWidgets KF5::KIOCore KF5::I18n KF5::ConfigCore KF5::ConfigGui ${AVUTIL_LIBRARIES} ${AVFILTER_LIBRARIES} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${SWSCALE_LIBRARIES} ) +install(FILES ffmpegthumbnailersettings5.kcfg DESTINATION ${KCFG_INSTALL_DIR}) install(TARGETS ffmpegthumbs DESTINATION ${PLUGIN_INSTALL_DIR}) ########### install files ############### diff --git a/ffmpegthumbnailer.h b/ffmpegthumbnailer.h --- a/ffmpegthumbnailer.h +++ b/ffmpegthumbnailer.h @@ -31,6 +31,8 @@ virtual ~FFMpegThumbnailer(); virtual bool create(const QString& path, int width, int height, QImage& img); virtual Flags flags() const; + virtual QWidget* createConfigurationWidget() override; + virtual void writeConfiguration(const QWidget* configurationWidget) override; private: ffmpegthumbnailer::VideoThumbnailer m_Thumbnailer; ffmpegthumbnailer::FilmStripFilter m_FilmStrip; diff --git a/ffmpegthumbnailer.cpp b/ffmpegthumbnailer.cpp --- a/ffmpegthumbnailer.cpp +++ b/ffmpegthumbnailer.cpp @@ -15,7 +15,11 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "ffmpegthumbnailer.h" +#include "ffmpegthumbnailersettings5.h" + #include +#include +#include extern "C" { @@ -28,7 +32,10 @@ FFMpegThumbnailer::FFMpegThumbnailer() { - m_Thumbnailer.addFilter(&m_FilmStrip); + FFMpegThumbnailerSettings* settings = FFMpegThumbnailerSettings::self(); + if (settings->filmstrip()) { + m_Thumbnailer.addFilter(&m_FilmStrip); + } } FFMpegThumbnailer::~FFMpegThumbnailer() @@ -53,3 +60,19 @@ return (Flags)(None); } +QWidget *FFMpegThumbnailer::createConfigurationWidget() +{ + QCheckBox *filmstripCheckBox = new QCheckBox(i18nc("@option:check", "Embed filmstrip effect")); + filmstripCheckBox->setChecked(FFMpegThumbnailerSettings::filmstrip()); + return filmstripCheckBox; +} + +void FFMpegThumbnailer::writeConfiguration(const QWidget *configurationWidget) +{ + const QCheckBox *filmstripCheckBox = qobject_cast(configurationWidget); + if (filmstripCheckBox) { + FFMpegThumbnailerSettings* settings = FFMpegThumbnailerSettings::self(); + settings->setFilmstrip(filmstripCheckBox->isChecked()); + settings->save(); + } +} diff --git a/ffmpegthumbnailersettings5.kcfg b/ffmpegthumbnailersettings5.kcfg new file mode 100644 --- /dev/null +++ b/ffmpegthumbnailersettings5.kcfg @@ -0,0 +1,11 @@ + + + + + + + + true + + + diff --git a/ffmpegthumbnailersettings5.kcfgc b/ffmpegthumbnailersettings5.kcfgc new file mode 100644 --- /dev/null +++ b/ffmpegthumbnailersettings5.kcfgc @@ -0,0 +1,4 @@ +File=ffmpegthumbnailersettings5.kcfg +ClassName=FFMpegThumbnailerSettings +Singleton=true +Mutators=true diff --git a/ffmpegthumbs.desktop b/ffmpegthumbs.desktop --- a/ffmpegthumbs.desktop +++ b/ffmpegthumbs.desktop @@ -57,3 +57,4 @@ CacheThumbnail=true ThumbnailerVersion=2 IgnoreMaximumSize=true +Configurable=true diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -16,10 +16,11 @@ ${CMAKE_CURRENT_SOURCE_DIR}/../ffmpegthumbnailer/videothumbnailer.cpp ) +kconfig_add_kcfg_files(ffmpegthumbtest_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/../ffmpegthumbnailersettings5.kcfgc) add_executable(ffmpegthumbtest ${ffmpegthumbtest_SRCS} ) -target_link_libraries(ffmpegthumbtest Qt5::Gui KF5::KIOWidgets ${AVUTIL_LIBRARIES} ${AVFILTER_LIBRARIES} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${SWSCALE_LIBRARIES}) +target_link_libraries(ffmpegthumbtest Qt5::Core Qt5::Gui KF5::KIOWidgets KF5::KIOCore KF5::I18n KF5::ConfigCore KF5::ConfigGui ${AVUTIL_LIBRARIES} ${AVFILTER_LIBRARIES} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${SWSCALE_LIBRARIES}) diff --git a/tests/ffmpegthumbtest.cpp b/tests/ffmpegthumbtest.cpp --- a/tests/ffmpegthumbtest.cpp +++ b/tests/ffmpegthumbtest.cpp @@ -15,6 +15,7 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "ffmpegthumbnailer.h" +#include "ffmpegthumbnailersettings5.h" #include #include