fix: bugs surfaced by new gtest coverage

- html.cpp: rgba() colors parsed with setRedF/GreenF/BlueF (0-1) while the
  writer emits 0-255 integers, so semi-transparent text colors lost their
  RGB on round-trip; parse with integer setters instead
- CLIProgressDialog: percentage padding compared normalized progress
  (0.0-1.0) against 10/100, so padding was always fully applied; compute
  the percentage first
- TimelineUndoPointer BlockTrimCommand: remove_block_from_graph_ was
  never initialized (UB on redo)
- TimelineUndoGeneral TransitionRemoveCommand: track_ was never
  initialized; GetRelevantProject() could dereference it before redo()
- ProjectLoadTask::Run(): failure path deleted project_ without
  resetting it, leaving GetLoadedProject() dangling
This commit is contained in:
2026-07-17 13:07:43 +08:00
parent a9afb2fac5
commit dd7427f51a
5 changed files with 15 additions and 6 deletions
+2
View File
@@ -25,6 +25,7 @@
#include "config/config.h"
#include "node/block/clip/clip.h"
#include "node/block/gap/gap.h"
#include "node/block/transition/transition.h"
#include "node/output/track/track.h"
#include "node/output/track/tracklist.h"
#include "node/output/viewer/viewer.h"
@@ -201,6 +202,7 @@ class TransitionRemoveCommand : public UndoCommand {
public:
TransitionRemoveCommand(TransitionBlock *block, bool remove_from_graph)
: block_(block)
, track_(block->track())
, remove_from_graph_(remove_from_graph)
, remove_command_(nullptr)
{
+1
View File
@@ -52,6 +52,7 @@ public:
, mode_(mode)
, deleted_adjacent_command_(nullptr)
, trim_is_a_roll_edit_(false)
, remove_block_from_graph_(true)
{
}