Remove in-place translations support.
[dcpomatic.git] / src / lib / dkdm_wrapper.cc
index 4698c159d26a97bd9dd85cac1edd153334eacc09..016c77c3f9ec4a7671c3f2e8906ea0f0fae55883 100644 (file)
 #include "compose.hpp"
 #include "dkdm_wrapper.h"
 #include "dcpomatic_assert.h"
-#include "warnings.h"
-DCPOMATIC_DISABLE_WARNINGS
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
 #include <libxml++/libxml++.h>
-DCPOMATIC_ENABLE_WARNINGS
+LIBDCP_ENABLE_WARNINGS
 
 
 using std::string;
@@ -111,3 +111,35 @@ DKDMGroup::remove (shared_ptr<DKDMBase> child)
                }
        }
 }
+
+
+bool
+DKDMGroup::contains(string dkdm_id) const
+{
+       for (auto child: _children) {
+               if (auto child_group = dynamic_pointer_cast<DKDMGroup>(child)) {
+                       if (child_group->contains(dkdm_id)) {
+                               return true;
+                       }
+               } else if (auto child_dkdm = dynamic_pointer_cast<DKDM>(child)) {
+                       if (child_dkdm->dkdm().id() == dkdm_id) {
+                               return true;
+                       }
+               }
+       }
+
+       return false;
+}
+
+
+bool
+DKDMGroup::contains_dkdm() const
+{
+       for (auto child: _children) {
+               if (child->contains_dkdm()) {
+                       return true;
+               }
+       }
+
+       return false;
+}