From 4d80044d6da8461479dd7dc6f4e7bdba2965b2de Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Fri, 28 Oct 2022 19:42:04 -0700 Subject: [PATCH] upgrade to qt 6 compliance --- CMakeLists.txt | 29 ++++++++++++------- app/CMakeLists.txt | 6 ++-- app/common/html.cpp | 21 ++------------ app/common/memorypool.h | 1 - app/common/ratiodialog.cpp | 3 +- app/common/timecodefunctions.cpp | 3 +- app/crashhandler/CMakeLists.txt | 8 ++--- app/dialog/about/about.cpp | 6 ++-- app/dialog/export/codec/cineformsection.cpp | 2 +- app/dialog/export/codec/h264section.cpp | 8 ++--- app/dialog/export/codec/imagesection.cpp | 2 +- app/dialog/export/export.cpp | 6 ++-- .../videostreamproperties.cpp | 2 +- .../preferences/tabs/preferencesaudiotab.cpp | 2 +- app/dialog/progress/progress.cpp | 2 +- .../sequence/sequencedialogpresettab.cpp | 2 +- app/dialog/task/task.cpp | 2 +- .../transform/transformdistortnode.cpp | 6 ++-- app/node/generator/matrix/matrix.cpp | 4 +-- app/node/math/math/mathbase.cpp | 4 +-- .../project/serializer/serializer220403.cpp | 8 ++--- app/panel/project/project.cpp | 2 +- app/panel/scope/scope.cpp | 2 +- app/panel/timebased/timebased.cpp | 5 ++++ app/panel/timebased/timebased.h | 2 ++ app/render/texture.h | 1 + app/task/project/import/import.cpp | 2 +- app/task/taskmanager.cpp | 2 +- app/ui/style/style.cpp | 5 ---- app/ui/style/style.h | 2 -- app/widget/colorwheel/colorvalueswidget.cpp | 2 +- app/widget/curvewidget/curvewidget.cpp | 4 +-- app/widget/filefield/filefield.cpp | 2 +- app/widget/flowlayout/flowlayout.cpp | 2 +- app/widget/manageddisplay/manageddisplay.cpp | 6 ++-- app/widget/manageddisplay/manageddisplay.h | 9 ++++++ app/widget/menu/menushared.cpp | 2 ++ app/widget/nodeparamview/nodeparamview.cpp | 4 +-- .../nodeparamviewconnectedlabel.cpp | 4 +-- .../nodeparamviewkeyframecontrol.cpp | 2 +- .../nodeparamview/nodeparamviewtextedit.cpp | 2 +- .../nodeparamviewwidgetbridge.cpp | 4 +-- app/widget/nodetableview/nodetablewidget.cpp | 2 +- app/widget/nodeview/nodeviewtoolbar.cpp | 2 +- app/widget/nodeview/nodewidget.cpp | 2 +- app/widget/panel/panel.cpp | 2 +- app/widget/path/pathwidget.cpp | 2 +- app/widget/pixelsampler/pixelsampler.cpp | 2 +- .../playbackcontrols/playbackcontrols.cpp | 10 +++---- .../projectexplorer/projectexplorer.cpp | 2 +- .../projectexplorernavigation.cpp | 2 +- app/widget/projecttoolbar/projecttoolbar.cpp | 2 +- app/widget/slider/base/sliderbase.cpp | 16 ++++++++-- app/widget/slider/base/sliderbase.h | 6 ++-- app/widget/slider/base/sliderladder.cpp | 2 +- app/widget/standardcombos/frameratecombobox.h | 2 +- app/widget/taskview/elapsedcounterwidget.cpp | 2 +- app/widget/taskview/taskview.cpp | 2 +- .../timelinewidget/timelineandtrackview.cpp | 2 +- app/widget/timelinewidget/timelinewidget.cpp | 2 +- .../timelinewidget/trackview/trackview.cpp | 2 +- .../trackview/trackviewitem.cpp | 2 +- app/widget/toolbar/toolbar.cpp | 2 +- app/widget/viewer/viewer.cpp | 7 +++-- app/widget/viewer/viewerdisplay.cpp | 8 ++--- app/widget/viewer/viewerqueue.h | 2 -- app/widget/viewer/viewerwindow.cpp | 2 +- app/window/mainwindow/mainmenu.cpp | 1 + app/window/mainwindow/mainwindow.cpp | 1 - 69 files changed, 152 insertions(+), 130 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 61f4adef4..9c15a6b67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,7 +94,7 @@ find_package(OpenEXR REQUIRED) list(APPEND OLIVE_LIBRARIES ${OPENEXR_LIBRARIES}) list(APPEND OLIVE_INCLUDE_DIRS ${OPENEXR_INCLUDES}) -# Link Qt 5 +# Link Qt set(QT_LIBRARIES Core Gui @@ -102,25 +102,34 @@ set(QT_LIBRARIES OpenGL LinguistTools Concurrent + OpenGLWidgets ) if (UNIX AND NOT APPLE) list(APPEND QT_LIBRARIES DBus) endif() -find_package(Qt5 5.6 REQUIRED +find_package(QT NAMES Qt6 REQUIRED COMPONENTS ${QT_LIBRARIES} OPTIONAL_COMPONENTS Network ) -if (NOT Qt5Network_FOUND) - message(" Qt5::Network module not found, crash reporting will be disabled.") +find_package(Qt${QT_VERSION_MAJOR} REQUIRED + COMPONENTS + ${QT_LIBRARIES} + OPTIONAL_COMPONENTS + Network +) +message("Qt version: " ${QT_VERSION_MAJOR}) +if (NOT Qt${QT_VERSION_MAJOR}Network_FOUND) + message(" Qt${QT_VERSION_MAJOR}::Network module not found, crash reporting will be disabled.") endif() list(APPEND OLIVE_LIBRARIES - Qt5::Core - Qt5::Gui - Qt5::Widgets - Qt5::OpenGL - Qt5::Concurrent + Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::Widgets + Qt${QT_VERSION_MAJOR}::OpenGL + Qt${QT_VERSION_MAJOR}::Concurrent + Qt${QT_VERSION_MAJOR}::OpenGLWidgets ) # Link FFmpeg @@ -186,7 +195,7 @@ if (WIN32) elseif (APPLE) list(APPEND OLIVE_LIBRARIES "-framework IOKit") elseif(UNIX) - list(APPEND OLIVE_LIBRARIES Qt5::DBus) + list(APPEND OLIVE_LIBRARIES Qt${QT_VERSION_MAJOR}::DBus) endif() # Generate Git hash diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 35a818bc0..e8cf1ec2c 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -44,7 +44,7 @@ add_subdirectory(widget) add_subdirectory(window) # Add translations -qt5_add_translation(OLIVE_QM_FILES ${OLIVE_TS_FILES}) +qt_add_translation(OLIVE_QM_FILES ${OLIVE_TS_FILES}) set(QRC_BODY "") foreach(QM_FILE ${OLIVE_QM_FILES}) @@ -64,7 +64,7 @@ add_library(olive-version-obj version.cpp version.h ) -target_link_libraries(olive-version-obj PRIVATE Qt5::Core) +target_link_libraries(olive-version-obj PRIVATE Qt${QT_VERSION_MAJOR}::Core) target_compile_options(olive-version-obj PRIVATE -DAPPVERSION="${PROJECT_VERSION}" -DAPPVERSIONLONG="${PROJECT_LONG_VERSION}" ) # Add main library @@ -142,6 +142,6 @@ target_include_directories(olive-editor PRIVATE ${OLIVE_INCLUDE_DIRS}) target_include_directories(libolive-editor PRIVATE ${OLIVE_INCLUDE_DIRS}) # Add crash handler -if (GoogleCrashpad_FOUND AND Qt5Network_FOUND) +if (GoogleCrashpad_FOUND AND Qt${QT_VERSION_MAJOR}Network_FOUND) add_subdirectory(crashhandler) endif() diff --git a/app/common/html.cpp b/app/common/html.cpp index d9ad84a28..143d76544 100644 --- a/app/common/html.cpp +++ b/app/common/html.cpp @@ -12,22 +12,7 @@ const QVector Html::kBlockTags = { QStringLiteral("div") }; -inline bool StrEquals(const QString &a, const QStringRef &b) -{ - return !a.compare(b, Qt::CaseInsensitive); -} - -inline bool StrEquals(const QString &a, const QString &b) -{ - return !a.compare(b, Qt::CaseInsensitive); -} - -inline bool StrEquals(const QStringRef &a, const QString &b) -{ - return !a.compare(b, Qt::CaseInsensitive); -} - -inline bool StrEquals(const QStringRef &a, const QStringRef &b) +inline bool StrEquals(const QStringView &a, const QStringView &b) { return !a.compare(b, Qt::CaseInsensitive); } @@ -421,7 +406,7 @@ QMap Html::GetCSSFromStyle(const QString &s) // match. Also commas should be filtered out. QStringList values; const QString &val = kv.at(1); - QChar in_quote = 0; + QChar in_quote(0); QString current_str; for (int i=0; i Html::GetCSSFromStyle(const QString &s) if (!in_quote.isNull()) { // If inside quotes and character isn't quote, indiscriminately append char if (current_char == in_quote) { - in_quote = 0; + in_quote = QChar(0); } else { current_str.append(current_char); } diff --git a/app/common/memorypool.h b/app/common/memorypool.h index a932ad5f3..270e3a0a0 100644 --- a/app/common/memorypool.h +++ b/app/common/memorypool.h @@ -25,7 +25,6 @@ #include #include #include -#include #include #include #include diff --git a/app/common/ratiodialog.cpp b/app/common/ratiodialog.cpp index fd216b6a1..ee85582fa 100644 --- a/app/common/ratiodialog.cpp +++ b/app/common/ratiodialog.cpp @@ -22,6 +22,7 @@ #include #include +#include namespace olive { @@ -49,7 +50,7 @@ double GetFloatRatioFromUser(QWidget* parent, return qSNaN(); } - QStringList ratio_components = s.split(QRegExp(QStringLiteral(":|;|\\/"))); + QStringList ratio_components = s.split(QRegularExpression(QStringLiteral(":|;|\\/"))); if (ratio_components.size() == 1) { bool float_ok; diff --git a/app/common/timecodefunctions.cpp b/app/common/timecodefunctions.cpp index cbd9d4074..1397a4dc7 100644 --- a/app/common/timecodefunctions.cpp +++ b/app/common/timecodefunctions.cpp @@ -24,6 +24,7 @@ extern "C" { #include } +#include #include #include "config/config.h" @@ -149,7 +150,7 @@ int64_t Timecode::timecode_to_timestamp(const QString &timecode, const rational case kTimecodeSeconds: { const int kTimecodeElementCount = 4; - QStringList timecode_split = timecode.split(QRegExp("(:)|(;)|(\\.)")); + QStringList timecode_split = timecode.split(QRegularExpression("(:)|(;)|(\\.)")); bool valid; diff --git a/app/crashhandler/CMakeLists.txt b/app/crashhandler/CMakeLists.txt index 0a023275b..f835c73ae 100644 --- a/app/crashhandler/CMakeLists.txt +++ b/app/crashhandler/CMakeLists.txt @@ -39,10 +39,10 @@ target_include_directories( target_link_libraries( olive-crashhandler PRIVATE - Qt5::Core - Qt5::Gui - Qt5::Widgets - Qt5::Network + Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::Widgets + Qt${QT_VERSION_MAJOR}::Network ${CRASHPAD_LIBRARIES} ) diff --git a/app/dialog/about/about.cpp b/app/dialog/about/about.cpp index bb584af42..4fb526944 100644 --- a/app/dialog/about/about.cpp +++ b/app/dialog/about/about.cpp @@ -44,10 +44,10 @@ AboutDialog::AboutDialog(bool welcome_dialog, QWidget *parent) : QFontMetrics fm = fontMetrics(); QVBoxLayout* layout = new QVBoxLayout(this); - layout->setMargin(fm.height()); + layout->setContentsMargins(fm.height(), fm.height(), fm.height(), fm.height()); QHBoxLayout *horiz_layout = new QHBoxLayout(); - horiz_layout->setMargin(fm.height()); + horiz_layout->setContentsMargins(fm.height(), fm.height(), fm.height(), fm.height()); horiz_layout->setSpacing(fm.height()*2); QLabel* icon = new QLabel(QStringLiteral("")); @@ -108,7 +108,7 @@ AboutDialog::AboutDialog(bool welcome_dialog, QWidget *parent) : layout->addWidget(new QLabel()); QHBoxLayout *btn_layout = new QHBoxLayout(); - btn_layout->setMargin(0); + btn_layout->setContentsMargins(0, 0, 0, 0); btn_layout->setSpacing(0); if (welcome_dialog) { diff --git a/app/dialog/export/codec/cineformsection.cpp b/app/dialog/export/codec/cineformsection.cpp index da83eabed..9cae58409 100644 --- a/app/dialog/export/codec/cineformsection.cpp +++ b/app/dialog/export/codec/cineformsection.cpp @@ -30,7 +30,7 @@ CineformSection::CineformSection(QWidget *parent) : { QGridLayout *layout = new QGridLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); int row = 0; diff --git a/app/dialog/export/codec/h264section.cpp b/app/dialog/export/codec/h264section.cpp index 732aef346..0d50312e4 100644 --- a/app/dialog/export/codec/h264section.cpp +++ b/app/dialog/export/codec/h264section.cpp @@ -39,7 +39,7 @@ H264Section::H264Section(int default_crf, QWidget *parent) : CodecSection(parent) { QGridLayout* layout = new QGridLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); int row = 0; layout->addWidget(new QLabel(tr("Encode Speed:")), row, 0); @@ -173,7 +173,7 @@ H264CRFSection::H264CRFSection(int default_crf, QWidget *parent) : QWidget(parent) { QHBoxLayout* layout = new QHBoxLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); crf_slider_ = new QSlider(Qt::Horizontal); crf_slider_->setMinimum(kMinimumCRF); @@ -207,7 +207,7 @@ H264BitRateSection::H264BitRateSection(QWidget *parent) : QWidget(parent) { QGridLayout* layout = new QGridLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); int row = 0; @@ -261,7 +261,7 @@ H264FileSizeSection::H264FileSizeSection(QWidget *parent) : QWidget(parent) { QGridLayout* layout = new QGridLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); int row = 0; diff --git a/app/dialog/export/codec/imagesection.cpp b/app/dialog/export/codec/imagesection.cpp index b2bf50fd8..e459a0db9 100644 --- a/app/dialog/export/codec/imagesection.cpp +++ b/app/dialog/export/codec/imagesection.cpp @@ -29,7 +29,7 @@ ImageSection::ImageSection(QWidget* parent) : CodecSection(parent) { QGridLayout* layout = new QGridLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); int row = 0; diff --git a/app/dialog/export/export.cpp b/app/dialog/export/export.cpp index 386fa2e1b..b7205c6a9 100644 --- a/app/dialog/export/export.cpp +++ b/app/dialog/export/export.cpp @@ -58,7 +58,7 @@ ExportDialog::ExportDialog(ViewerOutput *viewer_node, bool stills_only_mode, QWi preferences_area_ = new QWidget(); QGridLayout* preferences_layout = new QGridLayout(preferences_area_); - preferences_layout->setMargin(0); + preferences_layout->setContentsMargins(0, 0, 0, 0); int row = 0; @@ -183,7 +183,7 @@ ExportDialog::ExportDialog(ViewerOutput *viewer_node, bool stills_only_mode, QWi row++; QHBoxLayout *btn_layout = new QHBoxLayout(); - btn_layout->setMargin(0); + btn_layout->setContentsMargins(0, 0, 0, 0); preferences_layout->addLayout(btn_layout, row, 0, 1, 4); btn_layout->addStretch(); @@ -437,7 +437,7 @@ void ExportDialog::PresetComboBoxChanged() if (loading_presets_) { return; } - + QComboBox *c = static_cast(sender()); int preset_number = c->currentData().toInt(); diff --git a/app/dialog/footageproperties/streamproperties/videostreamproperties.cpp b/app/dialog/footageproperties/streamproperties/videostreamproperties.cpp index 6ed1e486f..e2b223621 100644 --- a/app/dialog/footageproperties/streamproperties/videostreamproperties.cpp +++ b/app/dialog/footageproperties/streamproperties/videostreamproperties.cpp @@ -38,7 +38,7 @@ VideoStreamProperties::VideoStreamProperties(Footage *footage, int video_index) video_premultiply_alpha_(nullptr) { QGridLayout* video_layout = new QGridLayout(this); - video_layout->setMargin(0); + video_layout->setContentsMargins(0, 0, 0, 0); int row = 0; diff --git a/app/dialog/preferences/tabs/preferencesaudiotab.cpp b/app/dialog/preferences/tabs/preferencesaudiotab.cpp index 6f73dbedc..b498e53ae 100644 --- a/app/dialog/preferences/tabs/preferencesaudiotab.cpp +++ b/app/dialog/preferences/tabs/preferencesaudiotab.cpp @@ -36,7 +36,7 @@ PreferencesAudioTab::PreferencesAudioTab() { // Backend Layout QGridLayout* main_layout = new QGridLayout(); - main_layout->setMargin(0); + main_layout->setContentsMargins(0, 0, 0, 0); int row = 0; diff --git a/app/dialog/progress/progress.cpp b/app/dialog/progress/progress.cpp index c63372f94..45d374498 100644 --- a/app/dialog/progress/progress.cpp +++ b/app/dialog/progress/progress.cpp @@ -55,7 +55,7 @@ ProgressDialog::ProgressDialog(const QString& message, const QString& title, QWi QHBoxLayout* cancel_layout = new QHBoxLayout(); layout->addLayout(cancel_layout); - cancel_layout->setMargin(0); + cancel_layout->setContentsMargins(0, 0, 0, 0); cancel_layout->setSpacing(0); cancel_layout->addStretch(); diff --git a/app/dialog/sequence/sequencedialogpresettab.cpp b/app/dialog/sequence/sequencedialogpresettab.cpp index eb3942068..68446fd16 100644 --- a/app/dialog/sequence/sequencedialogpresettab.cpp +++ b/app/dialog/sequence/sequencedialogpresettab.cpp @@ -47,7 +47,7 @@ SequenceDialogPresetTab::SequenceDialogPresetTab(QWidget* parent) : PresetManager(this, QStringLiteral("sequencepresets")) { QVBoxLayout* outer_layout = new QVBoxLayout(this); - outer_layout->setMargin(0); + outer_layout->setContentsMargins(0, 0, 0, 0); preset_tree_ = new QTreeWidget(); preset_tree_->setColumnCount(1); diff --git a/app/dialog/task/task.cpp b/app/dialog/task/task.cpp index 41cfc55a4..2cc6fc063 100644 --- a/app/dialog/task/task.cpp +++ b/app/dialog/task/task.cpp @@ -56,7 +56,7 @@ void TaskDialog::showEvent(QShowEvent *e) this, &TaskDialog::TaskFinished, Qt::QueuedConnection); // Run task in another thread with QtConcurrent - task_watcher->setFuture(QtConcurrent::run(task_, &Task::Start)); + task_watcher->setFuture(QtConcurrent::run(&Task::Start, task_)); already_shown_ = true; } diff --git a/app/node/distort/transform/transformdistortnode.cpp b/app/node/distort/transform/transformdistortnode.cpp index b19934615..26e1e3577 100644 --- a/app/node/distort/transform/transformdistortnode.cpp +++ b/app/node/distort/transform/transformdistortnode.cpp @@ -297,7 +297,7 @@ QMatrix4x4 TransformDistortNode::AdjustMatrixByResolutions(const QMatrix4x4 &mat adjusted_matrix.scale(2.0 / sequence_res.x(), 2.0 / sequence_res.y(), 1.0); // Apply offset if applicable - adjusted_matrix.translate(offset); + adjusted_matrix.translate(offset.x(), offset.y()); // Adjust by the matrix we generated earlier adjusted_matrix *= mat; @@ -358,7 +358,7 @@ void TransformDistortNode::UpdateGizmoPositions(const NodeValueRow &row, const N // Fold values into a matrix for the rectangle QMatrix4x4 rectangle_matrix; - rectangle_matrix.scale(sequence_half_res); + rectangle_matrix.scale(sequence_half_res.x(), sequence_half_res.y()); rectangle_matrix *= AdjustMatrixByResolutions(GenerateMatrix(row, false, false, false, row[kParentInput].toMatrix()), sequence_res, tex_sz, @@ -378,7 +378,7 @@ void TransformDistortNode::UpdateGizmoPositions(const NodeValueRow &row, const N // Draw anchor point QMatrix4x4 anchor_matrix; - anchor_matrix.scale(sequence_half_res); + anchor_matrix.scale(sequence_half_res.x(), sequence_half_res.y()); anchor_matrix *= AdjustMatrixByResolutions(GenerateMatrix(row, true, false, false, row[kParentInput].toMatrix()), sequence_res, tex_sz, diff --git a/app/node/generator/matrix/matrix.cpp b/app/node/generator/matrix/matrix.cpp index 81dbdb8f6..0d8a112d4 100644 --- a/app/node/generator/matrix/matrix.cpp +++ b/app/node/generator/matrix/matrix.cpp @@ -128,7 +128,7 @@ QMatrix4x4 MatrixGenerator::GenerateMatrix(const QVector2D& pos, QMatrix4x4 mat) { // Position - mat.translate(pos); + mat.translate(pos.x(), pos.y()); // Rotation mat.rotate(rot, 0, 0, 1); @@ -143,7 +143,7 @@ QMatrix4x4 MatrixGenerator::GenerateMatrix(const QVector2D& pos, mat.scale(full_scale); // Anchor Point - mat.translate(-anchor); + mat.translate(-anchor.x(), -anchor.y()); return mat; } diff --git a/app/node/math/math/mathbase.cpp b/app/node/math/math/mathbase.cpp index 7063c2691..2ae9594ae 100644 --- a/app/node/math/math/mathbase.cpp +++ b/app/node/math/math/mathbase.cpp @@ -141,9 +141,9 @@ QVector4D MathNodeBase::RetrieveVector(const NodeValue &val) // QVariant doesn't know that QVector*D can convert themselves so we do it here switch (val.type()) { case NodeValue::kVec2: - return val.toVec2(); + return QVector4D(val.toVec2()); case NodeValue::kVec3: - return val.toVec3(); + return QVector4D(val.toVec3()); case NodeValue::kVec4: default: return val.toVec4(); diff --git a/app/node/project/serializer/serializer220403.cpp b/app/node/project/serializer/serializer220403.cpp index 513990302..6708911df 100644 --- a/app/node/project/serializer/serializer220403.cpp +++ b/app/node/project/serializer/serializer220403.cpp @@ -570,13 +570,13 @@ void ProjectSerializer220403::LoadNode(Node *node, XMLNodeData &xml_node_data, Q } else if (reader->name() == QStringLiteral("caches")) { while (XMLReadNextStartElement(reader)) { if (reader->name() == QStringLiteral("audio")) { - node->audio_playback_cache()->SetUuid(reader->readElementText()); + node->audio_playback_cache()->SetUuid(QUuid::fromString(reader->readElementText())); } else if (reader->name() == QStringLiteral("video")) { - node->video_frame_cache()->SetUuid(reader->readElementText()); + node->video_frame_cache()->SetUuid(QUuid::fromString(reader->readElementText())); } else if (reader->name() == QStringLiteral("thumb")) { - node->thumbnail_cache()->SetUuid(reader->readElementText()); + node->thumbnail_cache()->SetUuid(QUuid::fromString(reader->readElementText())); } else if (reader->name() == QStringLiteral("waveform")) { - node->waveform_cache()->SetUuid(reader->readElementText()); + node->waveform_cache()->SetUuid(QUuid::fromString(reader->readElementText())); } else { reader->skipCurrentElement(); } diff --git a/app/panel/project/project.cpp b/app/panel/project/project.cpp index dcbb72fe3..1b1bf5167 100644 --- a/app/panel/project/project.cpp +++ b/app/panel/project/project.cpp @@ -40,7 +40,7 @@ ProjectPanel::ProjectPanel(QWidget *parent) : // Create main widget and its layout QWidget* central_widget = new QWidget(this); QVBoxLayout* layout = new QVBoxLayout(central_widget); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); SetWidgetWithPadding(central_widget); diff --git a/app/panel/scope/scope.cpp b/app/panel/scope/scope.cpp index 27700bb5c..9117734d3 100644 --- a/app/panel/scope/scope.cpp +++ b/app/panel/scope/scope.cpp @@ -36,7 +36,7 @@ ScopePanel::ScopePanel(QWidget* parent) : QVBoxLayout* layout = new QVBoxLayout(central); QHBoxLayout* toolbar_layout = new QHBoxLayout(); - toolbar_layout->setMargin(0); + toolbar_layout->setContentsMargins(0, 0, 0, 0); scope_type_combobox_ = new QComboBox(); diff --git a/app/panel/timebased/timebased.cpp b/app/panel/timebased/timebased.cpp index b10220dab..27733d569 100644 --- a/app/panel/timebased/timebased.cpp +++ b/app/panel/timebased/timebased.cpp @@ -29,6 +29,11 @@ TimeBasedPanel::TimeBasedPanel(const QString &object_name, QWidget *parent) : { } +TimeBasedPanel::~TimeBasedPanel() +{ + delete widget_; +} + rational TimeBasedPanel::GetTime() { return widget_->GetTime(); diff --git a/app/panel/timebased/timebased.h b/app/panel/timebased/timebased.h index 4101e6b09..184c69dd8 100644 --- a/app/panel/timebased/timebased.h +++ b/app/panel/timebased/timebased.h @@ -32,6 +32,8 @@ class TimeBasedPanel : public PanelWidget public: TimeBasedPanel(const QString& object_name, QWidget *parent = nullptr); + virtual ~TimeBasedPanel() override; + void ConnectViewerNode(ViewerOutput *node); void DisconnectViewerNode() diff --git a/app/render/texture.h b/app/render/texture.h index 942c0c4f6..a184edb15 100644 --- a/app/render/texture.h +++ b/app/render/texture.h @@ -22,6 +22,7 @@ #define RENDERTEXTURE_H #include +#include #include "render/videoparams.h" diff --git a/app/task/project/import/import.cpp b/app/task/project/import/import.cpp index db2fd434f..b13be24fb 100644 --- a/app/task/project/import/import.cpp +++ b/app/task/project/import/import.cpp @@ -35,7 +35,7 @@ ProjectImportTask::ProjectImportTask(Folder *folder, const QStringList &filename folder_(folder) { foreach (const QString& f, filenames) { - filenames_.append(f); + filenames_.append(QFileInfo(f)); } file_count_ = Core::CountFilesInFileList(filenames_); diff --git a/app/task/taskmanager.cpp b/app/task/taskmanager.cpp index 26730a0f8..d961a7b5a 100644 --- a/app/task/taskmanager.cpp +++ b/app/task/taskmanager.cpp @@ -93,7 +93,7 @@ void TaskManager::AddTask(Task* t) tasks_.insert(watcher, t); // Run task concurrently - watcher->setFuture(QtConcurrent::run(t, &Task::Start)); + watcher->setFuture(QtConcurrent::run(&Task::Start, t)); // Emit signal that a Task was added emit TaskAdded(t); diff --git a/app/ui/style/style.cpp b/app/ui/style/style.cpp index a8038c4c3..3cf32e4bf 100644 --- a/app/ui/style/style.cpp +++ b/app/ui/style/style.cpp @@ -36,7 +36,6 @@ namespace olive { const char* StyleManager::kDefaultStyle = "olive-dark"; QString StyleManager::current_style_; QMap StyleManager::available_themes_; -QPalette StyleManager::platform_palette_; QPalette StyleManager::ParsePalette(const QString& ini_path) { @@ -127,10 +126,6 @@ void StyleManager::ParsePaletteColor(QSettings *ini, QPalette *palette, QPalette void StyleManager::Init() { - // Store standard palette before replacing it with our own - platform_palette_ = qApp->palette(); - platform_palette_.resolve(-1); - qApp->setStyle(QStyleFactory::create("Fusion")); available_themes_.insert(QStringLiteral("olive-dark"), QStringLiteral("Olive Dark")); diff --git a/app/ui/style/style.h b/app/ui/style/style.h index 0ae18332d..860693914 100644 --- a/app/ui/style/style.h +++ b/app/ui/style/style.h @@ -54,8 +54,6 @@ private: static QMap available_themes_; - static QPalette platform_palette_; - }; } diff --git a/app/widget/colorwheel/colorvalueswidget.cpp b/app/widget/colorwheel/colorvalueswidget.cpp index 4ba54df49..bfdaf7d1e 100644 --- a/app/widget/colorwheel/colorvalueswidget.cpp +++ b/app/widget/colorwheel/colorvalueswidget.cpp @@ -44,7 +44,7 @@ ColorValuesWidget::ColorValuesWidget(ColorManager *manager, QWidget *parent) : { QHBoxLayout* preview_layout = new QHBoxLayout(); - preview_layout->setMargin(0); + preview_layout->setContentsMargins(0, 0, 0, 0); preview_layout->addWidget(new QLabel(tr("Preview"))); diff --git a/app/widget/curvewidget/curvewidget.cpp b/app/widget/curvewidget/curvewidget.cpp index 25f2d83a2..44ea426ec 100644 --- a/app/widget/curvewidget/curvewidget.cpp +++ b/app/widget/curvewidget/curvewidget.cpp @@ -53,7 +53,7 @@ CurveWidget::CurveWidget(QWidget *parent) : QWidget* workarea = new QWidget(); QVBoxLayout* layout = new QVBoxLayout(workarea); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); splitter->addWidget(workarea); QHBoxLayout* top_controls = new QHBoxLayout(); @@ -86,7 +86,7 @@ CurveWidget::CurveWidget(QWidget *parent) : // We use a separate layout for the ruler+view combination so that there's no spacing between them QVBoxLayout* ruler_view_layout = new QVBoxLayout(); - ruler_view_layout->setMargin(0); + ruler_view_layout->setContentsMargins(0, 0, 0, 0); ruler_view_layout->setSpacing(0); ruler_view_layout->addWidget(ruler()); diff --git a/app/widget/filefield/filefield.cpp b/app/widget/filefield/filefield.cpp index dde16dd36..4d40eae7c 100644 --- a/app/widget/filefield/filefield.cpp +++ b/app/widget/filefield/filefield.cpp @@ -34,7 +34,7 @@ FileField::FileField(QWidget* parent) : { QHBoxLayout* layout = new QHBoxLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); line_edit_ = new QLineEdit(); connect(line_edit_, &QLineEdit::textChanged, this, &FileField::LineEditChanged); diff --git a/app/widget/flowlayout/flowlayout.cpp b/app/widget/flowlayout/flowlayout.cpp index 2c9aed8ac..c226a2f2f 100644 --- a/app/widget/flowlayout/flowlayout.cpp +++ b/app/widget/flowlayout/flowlayout.cpp @@ -146,7 +146,7 @@ QSize FlowLayout::minimumSize() const foreach (item, itemList) size = size.expandedTo(item->minimumSize()); - size += QSize(2*margin(), 2*margin()); + size += QSize(2*contentsMargins().left(), 2*contentsMargins().top()); return size; } diff --git a/app/widget/manageddisplay/manageddisplay.cpp b/app/widget/manageddisplay/manageddisplay.cpp index a5446162a..2e26be7c8 100644 --- a/app/widget/manageddisplay/manageddisplay.cpp +++ b/app/widget/manageddisplay/manageddisplay.cpp @@ -38,7 +38,7 @@ ManagedDisplayWidget::ManagedDisplayWidget(QWidget *parent) : { QHBoxLayout* layout = new QHBoxLayout(this); layout->setSpacing(0); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); if (RenderManager::instance()->backend() == RenderManager::kOpenGL) { // Create OpenGL widget @@ -312,11 +312,11 @@ bool ManagedDisplayWidget::eventFilter(QObject *o, QEvent *e) { // HACK: QWindows don't seem to receive ContextMenu events on right click (only when pressing // the menu button on the keyboard) so we handle it manually here - QMouseEvent *ev = static_cast(e); + /*QMouseEvent *ev = static_cast(e); if (ev->button() == Qt::RightButton) { emit customContextMenuRequested(ev->pos()); return true; - } + }*/ break; } default: diff --git a/app/widget/manageddisplay/manageddisplay.h b/app/widget/manageddisplay/manageddisplay.h index c26008e77..5dceb3fc1 100644 --- a/app/widget/manageddisplay/manageddisplay.h +++ b/app/widget/manageddisplay/manageddisplay.h @@ -48,6 +48,15 @@ class ManagedDisplayWidgetOpenGL public: ManagedDisplayWidgetOpenGL() = default; + virtual ~ManagedDisplayWidgetOpenGL() override + { + if (context()) { + DestroyListener(); + disconnect(context(), &QOpenGLContext::aboutToBeDestroyed, + this, &ManagedDisplayWidgetOpenGL::DestroyListener); + } + } + signals: // Render signals void OnInit(); diff --git a/app/widget/menu/menushared.cpp b/app/widget/menu/menushared.cpp index 1ff70f954..7e6ee594f 100644 --- a/app/widget/menu/menushared.cpp +++ b/app/widget/menu/menushared.cpp @@ -20,6 +20,8 @@ #include "menushared.h" +#include + #include "core.h" #include "common/timecodefunctions.h" #include "panel/panelmanager.h" diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 15fd86e67..7cd492b7b 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -46,7 +46,7 @@ NodeParamView::NodeParamView(bool create_keyframe_view, QWidget *parent) : // Create horizontal layout to place scroll area in (and keyframe editing eventually) QHBoxLayout* layout = new QHBoxLayout(this); layout->setSpacing(0); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); QSplitter* splitter = new QSplitter(Qt::Horizontal); layout->addWidget(splitter); @@ -113,7 +113,7 @@ NodeParamView::NodeParamView(bool create_keyframe_view, QWidget *parent) : QWidget* keyframe_area = new QWidget(); QVBoxLayout* keyframe_area_layout = new QVBoxLayout(keyframe_area); keyframe_area_layout->setSpacing(0); - keyframe_area_layout->setMargin(0); + keyframe_area_layout->setContentsMargins(0, 0, 0, 0); // Create ruler object keyframe_area_layout->addWidget(ruler()); diff --git a/app/widget/nodeparamview/nodeparamviewconnectedlabel.cpp b/app/widget/nodeparamview/nodeparamviewconnectedlabel.cpp index 937037219..a94d8e9c2 100644 --- a/app/widget/nodeparamview/nodeparamviewconnectedlabel.cpp +++ b/app/widget/nodeparamview/nodeparamviewconnectedlabel.cpp @@ -37,7 +37,7 @@ NodeParamViewConnectedLabel::NodeParamViewConnectedLabel(const NodeInput &input, connected_node_(nullptr) { QVBoxLayout *layout = new QVBoxLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); QSizePolicy p = sizePolicy(); p.setHorizontalStretch(1); @@ -47,7 +47,7 @@ NodeParamViewConnectedLabel::NodeParamViewConnectedLabel(const NodeInput &input, // Set up label area QHBoxLayout *label_layout = new QHBoxLayout(); label_layout->setSpacing(QtUtils::QFontMetricsWidth(fontMetrics(), QStringLiteral(" "))); - label_layout->setMargin(0); + label_layout->setContentsMargins(0, 0, 0, 0); layout->addLayout(label_layout); CollapseButton *collapse_btn = new CollapseButton(this); diff --git a/app/widget/nodeparamview/nodeparamviewkeyframecontrol.cpp b/app/widget/nodeparamview/nodeparamviewkeyframecontrol.cpp index ea29b036e..7208e5fc7 100644 --- a/app/widget/nodeparamview/nodeparamviewkeyframecontrol.cpp +++ b/app/widget/nodeparamview/nodeparamviewkeyframecontrol.cpp @@ -33,7 +33,7 @@ NodeParamViewKeyframeControl::NodeParamViewKeyframeControl(bool right_align, QWi QWidget(parent) { QHBoxLayout* layout = new QHBoxLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); if (right_align) { diff --git a/app/widget/nodeparamview/nodeparamviewtextedit.cpp b/app/widget/nodeparamview/nodeparamviewtextedit.cpp index 6e3b291cc..95c533bd5 100644 --- a/app/widget/nodeparamview/nodeparamviewtextedit.cpp +++ b/app/widget/nodeparamview/nodeparamviewtextedit.cpp @@ -31,7 +31,7 @@ NodeParamViewTextEdit::NodeParamViewTextEdit(QWidget *parent) : QWidget(parent) { QHBoxLayout* layout = new QHBoxLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); line_edit_ = new QPlainTextEdit(); line_edit_->setUndoRedoEnabled(true); diff --git a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp index b5b4db823..4df011b58 100644 --- a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp +++ b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp @@ -567,7 +567,7 @@ void NodeParamViewWidgetBridge::SetProperty(const QString &key, const QVariant & } } else { // set specific track/widget bool ok; - int element = key.midRef(7).toInt(&ok); + int element = key.mid(7).toInt(&ok); int tracks = NodeValue::get_number_of_keyframe_tracks(data_type); if (ok && element >= 0 && element < tracks) { @@ -686,7 +686,7 @@ void NodeParamViewWidgetBridge::SetProperty(const QString &key, const QVariant & } } else { bool ok; - int element = key.midRef(5).toInt(&ok); + int element = key.mid(5).toInt(&ok); if (ok && element >= 0 && element < tracks) { static_cast(widgets_.at(element))->SetColor(c); } diff --git a/app/widget/nodetableview/nodetablewidget.cpp b/app/widget/nodetableview/nodetablewidget.cpp index 48091357f..2ebb1eac8 100644 --- a/app/widget/nodetableview/nodetablewidget.cpp +++ b/app/widget/nodetableview/nodetablewidget.cpp @@ -29,7 +29,7 @@ NodeTableWidget::NodeTableWidget(QWidget* parent) : { QVBoxLayout* layout = new QVBoxLayout(this); layout->setSpacing(0); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); view_ = new NodeTableView(); layout->addWidget(view_); diff --git a/app/widget/nodeview/nodeviewtoolbar.cpp b/app/widget/nodeview/nodeviewtoolbar.cpp index 6ffaa6d35..7f3712a5b 100644 --- a/app/widget/nodeview/nodeviewtoolbar.cpp +++ b/app/widget/nodeview/nodeviewtoolbar.cpp @@ -13,7 +13,7 @@ NodeViewToolBar::NodeViewToolBar(QWidget *parent) : QWidget(parent) { QHBoxLayout *layout = new QHBoxLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); add_node_btn_ = new QPushButton(); connect(add_node_btn_, &QPushButton::clicked, this, &NodeViewToolBar::AddNodeClicked); diff --git a/app/widget/nodeview/nodewidget.cpp b/app/widget/nodeview/nodewidget.cpp index 7ee2d4097..7fe526a8e 100644 --- a/app/widget/nodeview/nodewidget.cpp +++ b/app/widget/nodeview/nodewidget.cpp @@ -28,7 +28,7 @@ NodeWidget::NodeWidget(QWidget *parent) : QWidget(parent) { QVBoxLayout *outer_layout = new QVBoxLayout(this); - outer_layout->setMargin(0); + outer_layout->setContentsMargins(0, 0, 0, 0); toolbar_ = new NodeViewToolBar(); outer_layout->addWidget(toolbar_); diff --git a/app/widget/panel/panel.cpp b/app/widget/panel/panel.cpp index f3840fc06..bcc3365e2 100644 --- a/app/widget/panel/panel.cpp +++ b/app/widget/panel/panel.cpp @@ -158,7 +158,7 @@ void PanelWidget::SetWidgetWithPadding(QWidget *widget) { QWidget* wrapper = new QWidget(); QHBoxLayout* layout = new QHBoxLayout(wrapper); - layout->setMargin(layout->margin() / 2); + layout->setContentsMargins(layout->contentsMargins() / 2); layout->addWidget(widget); setWidget(wrapper); } diff --git a/app/widget/path/pathwidget.cpp b/app/widget/path/pathwidget.cpp index 79504273f..3035822ac 100644 --- a/app/widget/path/pathwidget.cpp +++ b/app/widget/path/pathwidget.cpp @@ -32,7 +32,7 @@ PathWidget::PathWidget(const QString &path, QWidget *parent) : QWidget(parent) { QHBoxLayout* layout = new QHBoxLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); path_edit_ = new QLineEdit(); path_edit_->setText(path); diff --git a/app/widget/pixelsampler/pixelsampler.cpp b/app/widget/pixelsampler/pixelsampler.cpp index 81ee86d6c..5a3128e1a 100644 --- a/app/widget/pixelsampler/pixelsampler.cpp +++ b/app/widget/pixelsampler/pixelsampler.cpp @@ -68,7 +68,7 @@ ManagedPixelSamplerWidget::ManagedPixelSamplerWidget(QWidget *parent) : QWidget(parent) { QVBoxLayout* layout = new QVBoxLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); display_view_ = new PixelSamplerWidget(); display_view_->setTitle(tr("Display")); diff --git a/app/widget/playbackcontrols/playbackcontrols.cpp b/app/widget/playbackcontrols/playbackcontrols.cpp index ea598b734..a87904e9e 100644 --- a/app/widget/playbackcontrols/playbackcontrols.cpp +++ b/app/widget/playbackcontrols/playbackcontrols.cpp @@ -37,7 +37,7 @@ PlaybackControls::PlaybackControls(QWidget *parent) : // Create lower controls QHBoxLayout* lower_control_layout = new QHBoxLayout(this); lower_control_layout->setSpacing(0); - lower_control_layout->setMargin(0); + lower_control_layout->setContentsMargins(0, 0, 0, 0); QSizePolicy lower_container_size_policy(QSizePolicy::Maximum, QSizePolicy::Expanding); lower_container_size_policy.setHorizontalStretch(1); @@ -51,7 +51,7 @@ PlaybackControls::PlaybackControls(QWidget *parent) : QHBoxLayout* lower_left_layout = new QHBoxLayout(lower_left_container_); lower_left_layout->setSpacing(0); - lower_left_layout->setMargin(0); + lower_left_layout->setContentsMargins(0, 0, 0, 0); cur_tc_lbl_ = new RationalSlider(); cur_tc_lbl_->SetDisplayType(RationalSlider::kTime); @@ -73,7 +73,7 @@ PlaybackControls::PlaybackControls(QWidget *parent) : QHBoxLayout* lower_middle_layout = new QHBoxLayout(lower_middle_container); lower_middle_layout->setSpacing(0); - lower_middle_layout->setMargin(0); + lower_middle_layout->setContentsMargins(0, 0, 0, 0); lower_middle_layout->addStretch(); QSizePolicy btn_sz_policy(QSizePolicy::Maximum, QSizePolicy::Preferred); @@ -124,7 +124,7 @@ PlaybackControls::PlaybackControls(QWidget *parent) : av_btn_widget->setSizePolicy(lower_container_size_policy); QHBoxLayout* av_btn_layout = new QHBoxLayout(av_btn_widget); av_btn_layout->setSpacing(0); - av_btn_layout->setMargin(0); + av_btn_layout->setContentsMargins(0, 0, 0, 0); video_drag_btn_ = new DragButton(); connect(video_drag_btn_, &QPushButton::clicked, this, &PlaybackControls::VideoClicked); connect(video_drag_btn_, &DragButton::MousePressed, this, &PlaybackControls::VideoPressed); @@ -143,7 +143,7 @@ PlaybackControls::PlaybackControls(QWidget *parent) : QHBoxLayout* lower_right_layout = new QHBoxLayout(lower_right_container_); lower_right_layout->setSpacing(0); - lower_right_layout->setMargin(0); + lower_right_layout->setContentsMargins(0, 0, 0, 0); lower_right_layout->addStretch(); end_tc_lbl_ = new QLabel(); diff --git a/app/widget/projectexplorer/projectexplorer.cpp b/app/widget/projectexplorer/projectexplorer.cpp index 48cc8e3aa..e6089e1c1 100644 --- a/app/widget/projectexplorer/projectexplorer.cpp +++ b/app/widget/projectexplorer/projectexplorer.cpp @@ -53,7 +53,7 @@ ProjectExplorer::ProjectExplorer(QWidget *parent) : // Create layout QVBoxLayout* layout = new QVBoxLayout(this); layout->setSpacing(0); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); // Set up navigation bar nav_bar_ = new ProjectExplorerNavigation(this); diff --git a/app/widget/projectexplorer/projectexplorernavigation.cpp b/app/widget/projectexplorer/projectexplorernavigation.cpp index ed635f19a..35c5e2210 100644 --- a/app/widget/projectexplorer/projectexplorernavigation.cpp +++ b/app/widget/projectexplorer/projectexplorernavigation.cpp @@ -33,7 +33,7 @@ ProjectExplorerNavigation::ProjectExplorerNavigation(QWidget *parent) : { // Create widget layout QHBoxLayout* layout = new QHBoxLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); // Create "directory up" button dir_up_btn_ = new QPushButton(this); diff --git a/app/widget/projecttoolbar/projecttoolbar.cpp b/app/widget/projecttoolbar/projecttoolbar.cpp index a99a7340c..47c61a69a 100644 --- a/app/widget/projecttoolbar/projecttoolbar.cpp +++ b/app/widget/projecttoolbar/projecttoolbar.cpp @@ -33,7 +33,7 @@ ProjectToolbar::ProjectToolbar(QWidget *parent) : { QHBoxLayout* layout = new QHBoxLayout(this); layout->setSpacing(0); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); new_button_ = new QPushButton(); connect(new_button_, &QPushButton::clicked, this, &ProjectToolbar::NewClicked); diff --git a/app/widget/slider/base/sliderbase.cpp b/app/widget/slider/base/sliderbase.cpp index 1f132e3e6..ef58ce8ed 100644 --- a/app/widget/slider/base/sliderbase.cpp +++ b/app/widget/slider/base/sliderbase.cpp @@ -103,14 +103,26 @@ void SliderBase::changeEvent(QEvent *e) super::changeEvent(e); } +bool SliderBase::GetLabelSubstitution(const QVariant &v, QString *out) const +{ + for (auto it=label_substitutions_.constBegin(); it!=label_substitutions_.constEnd(); it++) { + if (it->first == v) { + *out = it->second; + return true; + } + } + + return false; +} + void SliderBase::UpdateLabel() { QString s; if (tristate_) { s = tr("---"); - } else if (label_substitutions_.contains(GetValueInternal())) { - s = label_substitutions_.value(GetValueInternal()); + } else if (GetLabelSubstitution(GetValueInternal(), &s)) { + // String will already be set, just pass through } else { s = GetFormattedValueToString(); } diff --git a/app/widget/slider/base/sliderbase.h b/app/widget/slider/base/sliderbase.h index 3bf9eb901..9828bb848 100644 --- a/app/widget/slider/base/sliderbase.h +++ b/app/widget/slider/base/sliderbase.h @@ -51,7 +51,7 @@ public: void InsertLabelSubstitution(const QVariant &value, const QString &label) { - label_substitutions_.insert(value, label); + label_substitutions_.append({value, label}); UpdateLabel(); } @@ -90,6 +90,8 @@ protected: virtual void changeEvent(QEvent* e) override; private: + bool GetLabelSubstitution(const QVariant &v, QString *out) const; + SliderLabel* label_; FocusableLineEdit* editor_; @@ -103,7 +105,7 @@ private: bool format_plural_; - QMap label_substitutions_; + QVector > label_substitutions_; private slots: void LineEditConfirmed(); diff --git a/app/widget/slider/base/sliderladder.cpp b/app/widget/slider/base/sliderladder.cpp index 5c927f61a..0ad993039 100644 --- a/app/widget/slider/base/sliderladder.cpp +++ b/app/widget/slider/base/sliderladder.cpp @@ -42,7 +42,7 @@ SliderLadder::SliderLadder(double drag_multiplier, int nb_outer_values, QString QFrame(parent, Qt::Popup) { QVBoxLayout* layout = new QVBoxLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); setFrameShape(QFrame::Box); diff --git a/app/widget/standardcombos/frameratecombobox.h b/app/widget/standardcombos/frameratecombobox.h index d5ed19c05..ddd12d47a 100644 --- a/app/widget/standardcombos/frameratecombobox.h +++ b/app/widget/standardcombos/frameratecombobox.h @@ -43,7 +43,7 @@ public: QHBoxLayout* layout = new QHBoxLayout(this); layout->setSpacing(0); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); layout->addWidget(inner_); RepopulateList(); diff --git a/app/widget/taskview/elapsedcounterwidget.cpp b/app/widget/taskview/elapsedcounterwidget.cpp index cc191239b..288bae977 100644 --- a/app/widget/taskview/elapsedcounterwidget.cpp +++ b/app/widget/taskview/elapsedcounterwidget.cpp @@ -34,7 +34,7 @@ ElapsedCounterWidget::ElapsedCounterWidget(QWidget* parent) : { QHBoxLayout* layout = new QHBoxLayout(this); layout->setSpacing(layout->spacing() * 8); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); elapsed_lbl_ = new QLabel(); layout->addWidget(elapsed_lbl_); diff --git a/app/widget/taskview/taskview.cpp b/app/widget/taskview/taskview.cpp index ff0cd0e54..92a414191 100644 --- a/app/widget/taskview/taskview.cpp +++ b/app/widget/taskview/taskview.cpp @@ -37,7 +37,7 @@ TaskView::TaskView(QWidget* parent) : // Create layout for central widget layout_ = new QVBoxLayout(central_widget_); layout_->setSpacing(0); - layout_->setMargin(0); + layout_->setContentsMargins(0, 0, 0, 0); // Add a "stretch" so that TaskViewItems don't try to expand all the way to the bottom layout_->addStretch(); diff --git a/app/widget/timelinewidget/timelineandtrackview.cpp b/app/widget/timelinewidget/timelineandtrackview.cpp index a9ce5bbcd..d5fb5cbb8 100644 --- a/app/widget/timelinewidget/timelineandtrackview.cpp +++ b/app/widget/timelinewidget/timelineandtrackview.cpp @@ -30,7 +30,7 @@ TimelineAndTrackView::TimelineAndTrackView(Qt::Alignment vertical_alignment, QWi { QHBoxLayout* layout = new QHBoxLayout(this); layout->setSpacing(0); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); splitter_ = new QSplitter(Qt::Horizontal); splitter_->setChildrenCollapsible(false); diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index 50fc57a5c..562faa7e8 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -73,7 +73,7 @@ TimelineWidget::TimelineWidget(QWidget *parent) : { QVBoxLayout* vert_layout = new QVBoxLayout(this); vert_layout->setSpacing(0); - vert_layout->setMargin(0); + vert_layout->setContentsMargins(0, 0, 0, 0); QHBoxLayout* ruler_and_time_layout = new QHBoxLayout(); vert_layout->addLayout(ruler_and_time_layout); diff --git a/app/widget/timelinewidget/trackview/trackview.cpp b/app/widget/timelinewidget/trackview/trackview.cpp index 562c68d55..65bf429ec 100644 --- a/app/widget/timelinewidget/trackview/trackview.cpp +++ b/app/widget/timelinewidget/trackview/trackview.cpp @@ -42,7 +42,7 @@ TrackView::TrackView(Qt::Alignment vertical_alignment, QWidget *parent) : setWidgetResizable(true); QVBoxLayout* layout = new QVBoxLayout(central); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); if (alignment_ == Qt::AlignBottom) { diff --git a/app/widget/timelinewidget/trackview/trackviewitem.cpp b/app/widget/timelinewidget/trackview/trackviewitem.cpp index 6a5ba698e..e0b1eab5d 100644 --- a/app/widget/timelinewidget/trackview/trackviewitem.cpp +++ b/app/widget/timelinewidget/trackview/trackviewitem.cpp @@ -40,7 +40,7 @@ TrackViewItem::TrackViewItem(Track* track, QWidget *parent) : { QHBoxLayout* layout = new QHBoxLayout(this); layout->setSpacing(0); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); stack_ = new QStackedWidget(); layout->addWidget(stack_); diff --git a/app/widget/toolbar/toolbar.cpp b/app/widget/toolbar/toolbar.cpp index 900e6532b..50989d68e 100644 --- a/app/widget/toolbar/toolbar.cpp +++ b/app/widget/toolbar/toolbar.cpp @@ -38,7 +38,7 @@ Toolbar::Toolbar(QWidget *parent) : super(parent) { layout_ = new FlowLayout(this); - layout_->setMargin(0); + layout_->setContentsMargins(0, 0, 0, 0); // Create standard tool buttons btn_pointer_tool_ = CreateToolButton(Tool::kPointer); diff --git a/app/widget/viewer/viewer.cpp b/app/widget/viewer/viewer.cpp index 8447734af..8cb4681b5 100644 --- a/app/widget/viewer/viewer.cpp +++ b/app/widget/viewer/viewer.cpp @@ -82,7 +82,7 @@ ViewerWidget::ViewerWidget(ViewerDisplayWidget *display, QWidget *parent) : { // Set up main layout QVBoxLayout* layout = new QVBoxLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); // Create main OpenGL-based view and sizer sizer_ = new ViewerSizer(); @@ -166,6 +166,9 @@ ViewerWidget::~ViewerWidget() foreach (ViewerWindow* window, windows) { delete window; } + + delete display_widget_; + display_widget_ = nullptr; } void ViewerWidget::TimeChangedEvent(const rational &time) @@ -1146,7 +1149,7 @@ RenderTicketPtr ViewerWidget::GetFrame(const rational &t) // Frame has been cached, grab the frame RenderTicketPtr ticket = std::make_shared(); ticket->setProperty("time", QVariant::fromValue(t)); - QtConcurrent::run(ViewerWidget::DecodeCachedImage, ticket, GetConnectedNode()->video_frame_cache()->GetCacheDirectory(), GetConnectedNode()->video_frame_cache()->GetUuid(), Timecode::time_to_timestamp(t, timebase(), Timecode::kFloor)); + QtConcurrent::run(static_cast(ViewerWidget::DecodeCachedImage), ticket, GetConnectedNode()->video_frame_cache()->GetCacheDirectory(), GetConnectedNode()->video_frame_cache()->GetUuid(), Timecode::time_to_timestamp(t, timebase(), Timecode::kFloor)); return ticket; } } diff --git a/app/widget/viewer/viewerdisplay.cpp b/app/widget/viewer/viewerdisplay.cpp index aea700d51..6e42addde 100644 --- a/app/widget/viewer/viewerdisplay.cpp +++ b/app/widget/viewer/viewerdisplay.cpp @@ -1051,7 +1051,7 @@ void ViewerDisplayWidget::DrawSubtitleTracks() f.setFamily(family); } - f.setWeight(OLIVE_CONFIG("DefaultSubtitleWeight").toInt()); + f.setWeight(static_cast(OLIVE_CONFIG("DefaultSubtitleWeight").toInt())); bounding_box.adjust(bounding_box.width()/10, bounding_box.height()/10, -bounding_box.width()/10, -bounding_box.height()/10); @@ -1145,7 +1145,7 @@ void ViewerDisplayWidget::ForwardDragEventToTextEdit(T *e) bool ViewerDisplayWidget::ForwardMouseEventToTextEdit(QMouseEvent *event, bool check_if_outside) { // Transform screen mouse coords to world mouse coords - QPointF local_pos = GetVirtualPosForTextEdit(event->localPos()); + QPointF local_pos = GetVirtualPosForTextEdit(event->position()); if (check_if_outside) { if (local_pos.x() < 0 || local_pos.x() >= text_edit_->width() || local_pos.y() < 0 || local_pos.y() >= text_edit_->height()) { @@ -1156,8 +1156,8 @@ bool ViewerDisplayWidget::ForwardMouseEventToTextEdit(QMouseEvent *event, bool c local_pos = AdjustPosByVAlign(local_pos); - event->setLocalPos(local_pos); - return ForwardEventToTextEdit(event); + QMouseEvent derived(event->type(), local_pos, event->scenePosition(), event->globalPosition(), event->button(), event->buttons(), event->modifiers(), event->source(), event->pointingDevice()); + return ForwardEventToTextEdit(&derived); } bool ViewerDisplayWidget::ForwardEventToTextEdit(QEvent *event) diff --git a/app/widget/viewer/viewerqueue.h b/app/widget/viewer/viewerqueue.h index 053d8f013..1f529bf55 100644 --- a/app/widget/viewer/viewerqueue.h +++ b/app/widget/viewer/viewerqueue.h @@ -21,8 +21,6 @@ #ifndef VIEWERQUEUE_H #define VIEWERQUEUE_H -#include - #include "codec/frame.h" namespace olive { diff --git a/app/widget/viewer/viewerwindow.cpp b/app/widget/viewer/viewerwindow.cpp index be582b139..41e43462f 100644 --- a/app/widget/viewer/viewerwindow.cpp +++ b/app/widget/viewer/viewerwindow.cpp @@ -32,7 +32,7 @@ ViewerWindow::ViewerWindow(QWidget *parent) : pixel_aspect_(1) { QVBoxLayout* layout = new QVBoxLayout(this); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); display_widget_ = new ViewerDisplayWidget(); diff --git a/app/window/mainwindow/mainmenu.cpp b/app/window/mainwindow/mainmenu.cpp index 22ae0e70d..873c746d7 100644 --- a/app/window/mainwindow/mainmenu.cpp +++ b/app/window/mainwindow/mainmenu.cpp @@ -20,6 +20,7 @@ #include "mainmenu.h" +#include #include #include #include diff --git a/app/window/mainwindow/mainwindow.cpp b/app/window/mainwindow/mainwindow.cpp index 20adf7800..8c766e444 100644 --- a/app/window/mainwindow/mainwindow.cpp +++ b/app/window/mainwindow/mainwindow.cpp @@ -22,7 +22,6 @@ #include #include -#include #include #include