diff --git a/CMakeLists.txt b/CMakeLists.txt index 296b10a91..8af8fc9f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,6 +81,12 @@ endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") +# OFX HostSupport requires expat::expat +find_package(EXPAT REQUIRED) +if (TARGET EXPAT::EXPAT AND NOT TARGET expat::expat) + add_library(expat::expat ALIAS EXPAT::EXPAT) +endif() + # Link OpenGL if(UNIX AND NOT APPLE AND NOT DEFINED OpenGL_GL_PREFERENCE) set(OpenGL_GL_PREFERENCE LEGACY) @@ -262,6 +268,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) list(APPEND OLIVE_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/ext) add_subdirectory(ext) +add_subdirectory(third_party/openfx/HostSupport) add_subdirectory(app) if (BUILD_TESTS) diff --git a/app/node/factory.cpp b/app/node/factory.cpp index 4ef8b72f2..5debfb3f1 100644 --- a/app/node/factory.cpp +++ b/app/node/factory.cpp @@ -91,7 +91,25 @@ void NodeFactory::Initialize() olive::plugin::loadPlugins(QString()); for (auto plugin : OFX::Host::PluginCache::getPluginCache()->getPlugins()) { - plugin::PluginNode *plugin_node=new plugin::PluginNode(dynamic_cast(plugin)); + auto *image_effect = + dynamic_cast(plugin); + if (!image_effect) { + continue; + } + + const auto &contexts = image_effect->getContexts(); + std::string context = kOfxImageEffectContextFilter; + if (!contexts.empty() && + contexts.find(kOfxImageEffectContextFilter) == contexts.end()) { + context = *contexts.begin(); + } + + auto *instance = image_effect->createInstance(context, nullptr); + if (!instance) { + continue; + } + + plugin::PluginNode *plugin_node = new plugin::PluginNode(instance); library_.append(plugin_node); } diff --git a/app/node/plugins/Plugin.cpp b/app/node/plugins/Plugin.cpp index cd28fa5ba..b36e24535 100644 --- a/app/node/plugins/Plugin.cpp +++ b/app/node/plugins/Plugin.cpp @@ -149,6 +149,8 @@ olive::plugin::PluginNode::PluginNode( SetInputName(kTextureInput, tr("Texture")); } } + +olive::plugin::PluginNode::~PluginNode() = default; QString olive::plugin::PluginNode::Name() const { const auto *plugin = plugin_instance_->getPlugin(); @@ -159,6 +161,11 @@ QString olive::plugin::PluginNode::Name() const } +QVector olive::plugin::PluginNode::Category() const +{ + return { olive::Node::kCategoryUnknown }; +} + QString olive::plugin::PluginNode::Description() const { const auto *plugin = plugin_instance_->getPlugin(); @@ -168,6 +175,23 @@ QString olive::plugin::PluginNode::Description() const .data(); } +void olive::plugin::PluginNode::ProcessSamples(const NodeValueRow &values, + const SampleBuffer &input, + SampleBuffer &output, + int index) const +{ + (void)values; + (void)input; + (void)output; + (void)index; +} + +void olive::plugin::PluginNode::GenerateFrame(FramePtr frame, + const GenerateJob &job) const +{ + (void)frame; + (void)job; +} void olive::plugin::PluginNode::Value(const NodeValueRow &value, const NodeGlobals &globals, NodeValueTable *table) const diff --git a/app/node/traverser.cpp b/app/node/traverser.cpp index e2253276a..2fff76e0e 100644 --- a/app/node/traverser.cpp +++ b/app/node/traverser.cpp @@ -382,9 +382,12 @@ TexturePtr NodeTraverser::ProcessVideoCacheJob(const CacheJob *val) return nullptr; } -TexturePtr NodeTraverser::ProcessPluginJob(TexturePtr texture, TexturePtr destination, const Node *node,) +TexturePtr NodeTraverser::ProcessPluginJob(TexturePtr texture, + TexturePtr destination, + const Node *node) { // TODO + return nullptr; } QVector2D NodeTraverser::GenerateResolution() const { diff --git a/app/pluginSupport/OliveHost.cpp b/app/pluginSupport/OliveHost.cpp index 89f521651..a13a9f603 100644 --- a/app/pluginSupport/OliveHost.cpp +++ b/app/pluginSupport/OliveHost.cpp @@ -161,14 +161,16 @@ OliveHost::makeDescriptor(const std::string &bundlePath, return desc; } -ImageEffect::Instance* OliveHost::newInstance(std::shared_ptr clientData, +ImageEffect::Instance* OliveHost::newInstance(void *clientData, ImageEffect::ImageEffectPlugin* plugin, ImageEffect::Descriptor& desc, const std::string& context){ auto* instance = new OlivePluginInstance( plugin, desc, context, Current::getInstance().interactive()); if (clientData) { - instance->setNode(clientData); + auto *node = static_cast(clientData); + instance->setNode( + std::shared_ptr(node, [](PluginNode *) {})); } instances_.append(instance); return instance; diff --git a/app/pluginSupport/OliveHost.h b/app/pluginSupport/OliveHost.h index f07bfaa76..2e83ee243 100644 --- a/app/pluginSupport/OliveHost.h +++ b/app/pluginSupport/OliveHost.h @@ -57,7 +57,7 @@ public: return true; }; - OFX::Host::ImageEffect::Instance* newInstance(std::shared_ptr ptr, + OFX::Host::ImageEffect::Instance* newInstance(void *clientData, OFX::Host::ImageEffect::ImageEffectPlugin* plugin, OFX::Host::ImageEffect::Descriptor& desc, const std::string& context) override; diff --git a/app/pluginSupport/OlivePluginInstance.cpp b/app/pluginSupport/OlivePluginInstance.cpp index 5306ad548..6b7212188 100644 --- a/app/pluginSupport/OlivePluginInstance.cpp +++ b/app/pluginSupport/OlivePluginInstance.cpp @@ -377,11 +377,12 @@ void OlivePluginInstance::progressStart(const std::string &message, ? QStringLiteral("Processing...") : QString::fromStdString(message); - progress_dialog_ = new ProgressDialog( - dialog_message, QStringLiteral("OpenFX"), Core::instance()->main_window()); + progress_dialog_ = new ::olive::ProgressDialog( + dialog_message, QStringLiteral("OpenFX"), nullptr); progress_dialog_->setAttribute(Qt::WA_DeleteOnClose); - connect(progress_dialog_, &ProgressDialog::Cancelled, this, - [this]() { progress_cancelled_ = true; }); + QObject::connect(progress_dialog_, &::olive::ProgressDialog::Cancelled, + progress_dialog_, + [this]() { progress_cancelled_ = true; }); progress_dialog_->show(); } @@ -440,7 +441,7 @@ double OlivePluginInstance::timeLineGetTime() void OlivePluginInstance::timeLineGotoTime(double t) { if (ViewerOutput *viewer = GetActiveViewerOutput()) { - viewer->SetPlayhead(core::rational::fromDouble(t)); + viewer->SetPlayhead(olive::core::rational::fromDouble(t)); } } diff --git a/app/pluginSupport/OlivePluginInstance.h b/app/pluginSupport/OlivePluginInstance.h index 908638eed..b999b62fd 100644 --- a/app/pluginSupport/OlivePluginInstance.h +++ b/app/pluginSupport/OlivePluginInstance.h @@ -30,9 +30,9 @@ #include #include namespace olive { +class ProgressDialog; namespace plugin{ class PluginNode; -class ProgressDialog; enum class ErrorType{ Error, Warning, @@ -202,7 +202,7 @@ private: QString edit_label_; QString edit_first_label_; int edit_param_count_ = 0; - QPointer progress_dialog_; + QPointer progress_dialog_; bool progress_cancelled_ = false; bool progress_active_ = false; bool open_gl_enabled_ = false; diff --git a/app/render/opengl/openglrenderer.h b/app/render/opengl/openglrenderer.h index 22908b404..73fc653ae 100644 --- a/app/render/opengl/openglrenderer.h +++ b/app/render/opengl/openglrenderer.h @@ -83,6 +83,10 @@ protected: virtual void DestroyInternal() override; + void AttachTextureAsDestination(const QVariant &texture); + + void DetachTextureAsDestination(); + private: static GLint GetInternalFormat(PixelFormat format, int channel_layout); @@ -90,10 +94,6 @@ private: static GLenum GetPixelFormat(int channel_count); - void AttachTextureAsDestination(const QVariant &texture); - - void DetachTextureAsDestination(); - void PrepareInputTexture(GLenum target, Texture::Interpolation interp); void ClearDestinationInternal(double r = 0.0, double g = 0.0, diff --git a/app/render/plugin/pluginrenderer.cpp b/app/render/plugin/pluginrenderer.cpp index 8397ea0a6..21428374c 100644 --- a/app/render/plugin/pluginrenderer.cpp +++ b/app/render/plugin/pluginrenderer.cpp @@ -350,10 +350,12 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: OliveClipInstance *clip=dynamic_cast(instance->getClip("Output")); if (!clip) { +#ifdef OFX_SUPPORTS_OPENGLRENDER if (use_opengl) { DetachOutputTexture(); instance->contextDetachedAction(); } +#endif instance->endRenderAction(0, numFramesToRender, 1.0, interactive, renderScale, true,interactive ); return; diff --git a/app/render/videoparams.cpp b/app/render/videoparams.cpp index 911c1c71e..b6d095729 100644 --- a/app/render/videoparams.cpp +++ b/app/render/videoparams.cpp @@ -232,8 +232,8 @@ QString VideoParams::GetFormatName(PixelFormat format) break; } - return QCoreApplication::translate("VideoParams", "Unknown (0x%1)") - .arg(format, 0, 16); + return QCoreApplication::translate("VideoParams", "Unknown (0x%1)") + .arg(static_cast(format), 0, 16); } int VideoParams::GetDividerForTargetResolution(int src_width, int src_height, diff --git a/app/ts/ar_AR.ts b/app/ts/ar_AR.ts index 1275ea7e7..d878b0198 100644 --- a/app/ts/ar_AR.ts +++ b/app/ts/ar_AR.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/bs_BA.ts b/app/ts/bs_BA.ts index 0affd3c19..915375581 100644 --- a/app/ts/bs_BA.ts +++ b/app/ts/bs_BA.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/cs_CZ.ts b/app/ts/cs_CZ.ts index eb1678d38..dbc0a7307 100644 --- a/app/ts/cs_CZ.ts +++ b/app/ts/cs_CZ.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/de_DE.ts b/app/ts/de_DE.ts index 6aa426134..69e98407a 100644 --- a/app/ts/de_DE.ts +++ b/app/ts/de_DE.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/en_US.ts b/app/ts/en_US.ts index 28c6edd12..2b3b09659 100644 --- a/app/ts/en_US.ts +++ b/app/ts/en_US.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/es_ES.ts b/app/ts/es_ES.ts index 0108eef2d..3d8bd9eb6 100644 --- a/app/ts/es_ES.ts +++ b/app/ts/es_ES.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/fr_FR.ts b/app/ts/fr_FR.ts index 793b9f7fe..d98998396 100644 --- a/app/ts/fr_FR.ts +++ b/app/ts/fr_FR.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/hr_HR.ts b/app/ts/hr_HR.ts index 3adea2ad4..e5eaa9465 100644 --- a/app/ts/hr_HR.ts +++ b/app/ts/hr_HR.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/id_ID.ts b/app/ts/id_ID.ts index ac9903529..d66727c9e 100644 --- a/app/ts/id_ID.ts +++ b/app/ts/id_ID.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/it_IT.ts b/app/ts/it_IT.ts index 54fa8b0f1..abb1deeab 100644 --- a/app/ts/it_IT.ts +++ b/app/ts/it_IT.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/ja_JP.ts b/app/ts/ja_JP.ts index f20cb6915..400e9595e 100644 --- a/app/ts/ja_JP.ts +++ b/app/ts/ja_JP.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/pt_BR.ts b/app/ts/pt_BR.ts index 8faa48fcc..ad15eb9fc 100644 --- a/app/ts/pt_BR.ts +++ b/app/ts/pt_BR.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/ru_RU.ts b/app/ts/ru_RU.ts index bc2e12b5f..f7c92a873 100644 --- a/app/ts/ru_RU.ts +++ b/app/ts/ru_RU.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/sr_RS.ts b/app/ts/sr_RS.ts index 0fc7df503..a6e88b13a 100644 --- a/app/ts/sr_RS.ts +++ b/app/ts/sr_RS.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/tr_TR.ts b/app/ts/tr_TR.ts index d9687be20..af5dc00e9 100644 --- a/app/ts/tr_TR.ts +++ b/app/ts/tr_TR.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/uk_UK.ts b/app/ts/uk_UK.ts index dcd5ac69a..994e86b2c 100644 --- a/app/ts/uk_UK.ts +++ b/app/ts/uk_UK.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/zh_CN.ts b/app/ts/zh_CN.ts index 7584e6cd8..8c2cbf567 100644 --- a/app/ts/zh_CN.ts +++ b/app/ts/zh_CN.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ts/zh_TW.ts b/app/ts/zh_TW.ts index 8bd2adbe7..303a9dfcb 100644 --- a/app/ts/zh_TW.ts +++ b/app/ts/zh_TW.ts @@ -1,21 +1,3 @@ -/* - * Olive Community Edition - Non-Linear Video Editor - * Copyright (C) 2025 Olive CE Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - diff --git a/app/ui/humanstrings.cpp b/app/ui/humanstrings.cpp index 3474ec7bb..5ac0fc6fc 100644 --- a/app/ui/humanstrings.cpp +++ b/app/ui/humanstrings.cpp @@ -92,8 +92,8 @@ QString HumanStrings::FormatToString(const SampleFormat &f) break; } - return QCoreApplication::translate("AudioParams", "Unknown (0x%1)") - .arg(f, 1, 16); + return QCoreApplication::translate("AudioParams", "Unknown (0x%1)") + .arg(static_cast(f), 1, 16); } } diff --git a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp index 23138693d..4bc95b7ab 100644 --- a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp +++ b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp @@ -263,14 +263,6 @@ void NodeParamViewWidgetBridge::WidgetCallback() case NodeValue::kSubtitleParams: case NodeValue::kDataTypeCount: break; - case NodeValue::kBinary: { - NodeParamViewTextEdit *line_edit = - new NodeParamViewTextEdit(parent); - widgets_.append(line_edit); - connect(line_edit, &NodeParamViewTextEdit::textEdited, this, - &NodeParamViewWidgetBridge::WidgetCallback); - break; - } case NodeValue::kInt: { // Widget is a IntegerSlider IntegerSlider *slider = static_cast(sender()); diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index 8c5763b91..38fae6b91 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -646,7 +646,7 @@ void NodeView::mouseDoubleClickEvent(QMouseEvent *event) QStringLiteral("ParamPanel"))) { panel->show(); panel->raise(); - panel->setFocus(); + panel->setFocus(Qt::OtherFocusReason); } } } diff --git a/third_party/openfx/HostSupport/include/ofxhImageEffect.h b/third_party/openfx/HostSupport/include/ofxhImageEffect.h index bf0f7b980..f94b1e2f1 100755 --- a/third_party/openfx/HostSupport/include/ofxhImageEffect.h +++ b/third_party/openfx/HostSupport/include/ofxhImageEffect.h @@ -61,7 +61,7 @@ namespace OFX { /// \arg plugin - the plugin being created /// \arg desc - the descriptor for that plugin /// \arg context - the context to be created in - virtual Instance* newInstance(std::shared_ptr clientData, + virtual Instance* newInstance(void *clientData, ImageEffectPlugin* plugin, Descriptor& desc, const std::string& context) = 0;