pixelsampler: added pixel sampler panel

When visible, this panel will show the current reference and display transformed
color under the cursor of any viewer.
This commit is contained in:
itsmattkc
2020-04-01 16:57:10 +11:00
parent 76f260cb3a
commit 6ea6dd810e
25 changed files with 390 additions and 48 deletions
+1
View File
@@ -19,6 +19,7 @@ add_subdirectory(curve)
add_subdirectory(footageviewer)
add_subdirectory(node)
add_subdirectory(param)
add_subdirectory(pixelsampler)
add_subdirectory(project)
add_subdirectory(sequenceviewer)
add_subdirectory(taskmanager)
+22
View File
@@ -0,0 +1,22 @@
# Olive - Non-Linear Video Editor
# Copyright (C) 2019 Olive 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 <http://www.gnu.org/licenses/>.
set(OLIVE_SOURCES
${OLIVE_SOURCES}
panel/pixelsampler/pixelsamplerpanel.h
panel/pixelsampler/pixelsamplerpanel.cpp
PARENT_SCOPE
)
@@ -0,0 +1,23 @@
#include "pixelsamplerpanel.h"
PixelSamplerPanel::PixelSamplerPanel(QWidget *parent) :
PanelWidget(parent)
{
// FIXME: This won't work if there's ever more than one of this panel
setObjectName("ProjectPanel");
sampler_widget_ = new ManagedPixelSamplerWidget();
setWidget(sampler_widget_);
Retranslate();
}
void PixelSamplerPanel::SetValues(const Color &reference, const Color &display)
{
sampler_widget_->SetValues(reference, display);
}
void PixelSamplerPanel::Retranslate()
{
SetTitle(tr("Pixel Sampler"));
}
@@ -0,0 +1,23 @@
#ifndef PIXELSAMPLERPANEL_H
#define PIXELSAMPLERPANEL_H
#include "widget/panel/panel.h"
#include "widget/viewer/pixelsamplerwidget.h"
class PixelSamplerPanel : public PanelWidget
{
Q_OBJECT
public:
PixelSamplerPanel(QWidget* parent = nullptr);
public slots:
void SetValues(const Color& reference, const Color& display);
private:
virtual void Retranslate() override;
ManagedPixelSamplerWidget* sampler_widget_;
};
#endif // PIXELSAMPLERPANEL_H
+8
View File
@@ -45,3 +45,11 @@ VideoRenderBackend *ViewerPanelBase::video_renderer() const
{
return static_cast<ViewerWidget*>(GetTimeBasedWidget())->video_renderer();
}
void ViewerPanelBase::ConnectPixelSamplerPanel(PixelSamplerPanel *psp)
{
ViewerWidget* vw = static_cast<ViewerWidget*>(GetTimeBasedWidget());
connect(psp, &PixelSamplerPanel::visibilityChanged, vw, &ViewerWidget::SetSignalCursorColorEnabled);
connect(vw, &ViewerWidget::CursorColor, psp, &PixelSamplerPanel::SetValues);
}
+3
View File
@@ -1,6 +1,7 @@
#ifndef VIEWERPANELBASE_H
#define VIEWERPANELBASE_H
#include "panel/pixelsampler/pixelsamplerpanel.h"
#include "panel/timebased/timebased.h"
#include "widget/viewer/viewer.h"
@@ -24,6 +25,8 @@ public:
VideoRenderBackend* video_renderer() const;
void ConnectPixelSamplerPanel(PixelSamplerPanel *psp);
};
#endif // VIEWERPANELBASE_H