refactor: cut engine-to-UI include violations ahead of the liboakengine split

- slider DisplayType enums sink to node/sliderdisplaytype.h (canonical
  engine home); FloatSlider/RationalSlider alias them for compatibility
- DropWithoutSequenceBehavior enum sinks to common/dropworkflowbehavior.h
- Config errors now go through a registered ErrorHandler hook instead of
  QMessageBox with a MainWindow parent; the style default no longer
  depends on the UI style manager
- MainWindowLayoutInfo moves to node/project/serializer/ and its panel
  dependency is reduced to a plain std::map alias (PanelLayoutInfo),
  breaking the engine -> PanelWidget -> KDDockWidgets chain
- ProjectImportErrorDialog moves from task/ to dialog/projectimport/
- remove confirmed-redundant UI includes and give project.h/import.h/
  project.cpp the direct includes they were borrowing transitively
- project.h includes folder/sequence headers directly (it used both
  types in its own API all along)
This commit is contained in:
2026-07-20 00:52:12 +08:00
parent 98f2f3e224
commit 03d4087124
71 changed files with 321 additions and 163 deletions
+1 -1
View File
@@ -161,7 +161,7 @@ TimelineWidget::TimelineWidget(QWidget *parent)
timecode_label_ = new RationalSlider();
timecode_label_->set_alignment(Qt::AlignCenter);
timecode_label_->set_display_type(RationalSlider::k_time);
timecode_label_->set_display_type(slider::k_time);
timecode_label_->setVisible(false);
timecode_label_->set_minimum(0);
ruler_and_time_layout->addWidget(timecode_label_);
+7 -6
View File
@@ -22,6 +22,7 @@
#ifndef OAK_IMPORTTIMELINETOOL_H
#define OAK_IMPORTTIMELINETOOL_H
#include "common/dropworkflowbehavior.h"
#include "tool.h"
namespace olive
@@ -46,12 +47,12 @@ public:
bool insert, MultiUndoCommand *command, int track_offset = 0,
bool jump_to_end = false);
enum DropWithoutSequenceBehavior {
k_dws_ask,
k_dws_auto,
k_dws_manual,
k_dws_disable
};
// The canonical definition lives in the engine layer
// (common/dropworkflowbehavior.h); this alias keeps existing call
// sites source-compatible. Use olive::k_dws_ask etc. for the
// enumerators (visible unqualified inside namespace olive).
using DropWithoutSequenceBehavior =
olive::DropWithoutSequenceBehavior;
private:
void footage_to_ghosts(Rational ghost_start,