]> git.sesse.net Git - kdenlive/commitdiff
rotoscoping: do only enable if qjson is found
authorTill Theato <root@ttill.de>
Tue, 1 Feb 2011 17:09:32 +0000 (17:09 +0000)
committerTill Theato <root@ttill.de>
Tue, 1 Feb 2011 17:09:32 +0000 (17:09 +0000)
svn path=/trunk/kdenlive/; revision=5373

src/CMakeLists.txt
src/effectstackedit.cpp

index c70e30d490fd58c164a4ac612eec4f9964acd22e..ef477b7ed9ccc85451e95dec47519b8322ff7385 100644 (file)
@@ -7,9 +7,9 @@ add_subdirectory(rotoscoping)
 add_subdirectory(widgets)
 
 macro_optional_find_package(Nepomuk)
+macro_optional_find_package(QJSON)
 include(FindQImageBlitz)
 
-find_package(QJSON)
 
 include_directories(
   ${KDE4_INCLUDE_DIR}
@@ -17,7 +17,6 @@ include_directories(
   ${QT_INCLUDES}
   ${LIBMLT_INCLUDE_DIR}
   ${LIBMLTPLUS_INCLUDE_DIR}
-  ${QJSON_INCLUDE_DIR}
   ${QDBUS_INCLUDE_DIRS}
   ${CMAKE_SOURCE_DIR}
   ${CMAKE_BINARY_DIR}
@@ -46,6 +45,14 @@ else(QIMAGEBLITZ_FOUND)
   message(STATUS "Install QImageBlitz devel package for improved stopmotion features")
 endif(QIMAGEBLITZ_FOUND)
 
+if(QJSON_FOUND)
+  include_directories(QJSON_INCLUDE_DIR)
+  set(optional_libs ${optional_libs} ${QJSON_LIBRARIES})
+  add_definitions(-DQJSON)
+else(QJSON_FOUND)
+  message(STATUS "Install QJson to use the rotoscoping filter")
+endif(QJSON_FOUND)
+
 if(Q_WS_X11)
   include_directories(${X11_Xlib_INCLUDE_PATH})
 endif(Q_WS_X11)
@@ -261,9 +268,6 @@ set(kdenlive_SRCS
   blackmagic/devices.cpp
   onmonitoritems/onmonitorrectitem.cpp
   onmonitoritems/onmonitorcornersitem.cpp
-  onmonitoritems/rotoscoping/bpointitem.cpp
-  onmonitoritems/rotoscoping/nearestpoint.cpp
-  onmonitoritems/rotoscoping/splineitem.cpp
   cornerswidget.cpp
   kiss_fft/_kiss_fft_guts.h
   kiss_fft/kiss_fft.c
@@ -274,7 +278,6 @@ set(kdenlive_SRCS
   beziercurve/cubicbezierspline.cpp
   dragvalue.cpp
   monitoreditwidget.cpp
-  rotoscoping/rotowidget.cpp
 )
 
 add_definitions(${KDE4_DEFINITIONS})
@@ -305,6 +308,16 @@ if(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
   )
 endif(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
 
+if(QJSON_FOUND)
+  set(kdenlive_SRCS
+    ${kdenlive_SRCS}
+    onmonitoritems/rotoscoping/bpointitem.cpp
+    onmonitoritems/rotoscoping/nearestpoint.cpp
+    onmonitoritems/rotoscoping/splineitem.cpp
+    rotoscoping/rotowidget.cpp
+  )
+endif(QJSON_FOUND)
+
 # Add libdl
 find_library(DL_LIB NAMES ${CMAKE_DL_LIBS})
 message(STATUS "using dl library: ${DL_LIB}")
@@ -330,7 +343,6 @@ target_link_libraries(kdenlive
   ${KDE4_KROSSUI_LIBS}
   ${CMAKE_DL_LIBS}
   ${CMAKE_THREAD_LIBS_INIT}
-  ${QJSON_LIBRARIES}
 )
 
 if(Q_WS_X11)
index 892dd8511a3c6fd7e8fba8e69879049839c801a4..d156ff709710f45b6882691cd06e66ea06d48ef2 100644 (file)
@@ -35,7 +35,9 @@
 #include "doubleparameterwidget.h"
 #include "cornerswidget.h"
 #include "beziercurve/beziersplinewidget.h"
+#ifdef QJSON
 #include "rotoscoping/rotowidget.h"
+#endif
 
 #include <KDebug>
 #include <KLocale>
@@ -408,6 +410,7 @@ void EffectStackEdit::transferParamDesc(const QDomElement d, int pos, int in, in
             QString depends = pa.attribute("depends");
             if (!depends.isEmpty())
                 meetDependency(paramName, type, EffectsList::parameter(e, depends));
+#ifdef QJSON
         } else if (type == "roto-spline") {
             RotoWidget *roto = new RotoWidget(value, m_monitor, m_in, m_out, this);
             roto->slotShowScene(!disable);
@@ -417,6 +420,7 @@ void EffectStackEdit::transferParamDesc(const QDomElement d, int pos, int in, in
             connect(this, SIGNAL(effectStateChanged(bool)), roto, SLOT(slotShowScene(bool)));
             m_vbox->addWidget(roto);
             m_valueItems[paramName] = roto;
+#endif
         } else if (type == "wipe") {
             Wipeval *wpval = new Wipeval;
             wpval->setupUi(toFillin);
@@ -682,9 +686,11 @@ void EffectStackEdit::collectAllParameters()
             QString depends = pa.attributes().namedItem("depends").nodeValue();
             if (!depends.isEmpty())
                 meetDependency(paramName, type, EffectsList::parameter(newparam, depends));
+#ifdef QJSON
         } else if (type == "roto-spline") {
             RotoWidget *widget = static_cast<RotoWidget *>(m_valueItems.value(paramName));
             setValue = widget->getSpline();
+#endif
         } else if (type == "wipe") {
             Wipeval *wp = (Wipeval*)m_valueItems.value(paramName);
             wipeInfo info;