effect UIs ported to nodes
This commit is contained in:
@@ -190,7 +190,6 @@ SOURCES += \
|
|||||||
nodes/medianode.cpp \
|
nodes/medianode.cpp \
|
||||||
nodes/node.cpp \
|
nodes/node.cpp \
|
||||||
ui/nodeui.cpp \
|
ui/nodeui.cpp \
|
||||||
ui/nodewidget.cpp \
|
|
||||||
panels/effectspanel.cpp
|
panels/effectspanel.cpp
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
@@ -338,7 +337,6 @@ HEADERS += \
|
|||||||
nodes/medianode.h \
|
nodes/medianode.h \
|
||||||
nodes/node.h \
|
nodes/node.h \
|
||||||
ui/nodeui.h \
|
ui/nodeui.h \
|
||||||
ui/nodewidget.h \
|
|
||||||
panels/effectspanel.h
|
panels/effectspanel.h
|
||||||
|
|
||||||
FORMS +=
|
FORMS +=
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ void EffectsPanel::deselect_all_effects(QWidget* sender) {
|
|||||||
|
|
||||||
for (int i=0;i<open_effects_.size();i++) {
|
for (int i=0;i<open_effects_.size();i++) {
|
||||||
if (open_effects_.at(i) != sender) {
|
if (open_effects_.at(i) != sender) {
|
||||||
open_effects_.at(i)->header_click(false, false);
|
open_effects_.at(i)->Deselect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+24
-1
@@ -30,14 +30,37 @@ void NodeEditor::Retranslate()
|
|||||||
|
|
||||||
void NodeEditor::LoadEvent()
|
void NodeEditor::LoadEvent()
|
||||||
{
|
{
|
||||||
|
nodes_.resize(open_effects_.size());
|
||||||
for (int i=0;i<open_effects_.size();i++) {
|
for (int i=0;i<open_effects_.size();i++) {
|
||||||
scene_.addWidget(open_effects_.at(i));
|
EffectUI* effect_ui = open_effects_.at(i);
|
||||||
|
|
||||||
|
NodeUI* node_ui = new NodeUI();
|
||||||
|
|
||||||
|
effect_ui->SetNodeParent(node_ui);
|
||||||
|
effect_ui->SetSelectable(false);
|
||||||
|
|
||||||
|
node_ui->SetWidget(effect_ui);
|
||||||
|
node_ui->AddToScene(&scene_);
|
||||||
|
|
||||||
|
nodes_[i] = node_ui;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NodeEditor::ClearEvent()
|
||||||
|
{
|
||||||
|
NodeUI* node;
|
||||||
|
|
||||||
|
foreach (node, nodes_) {
|
||||||
|
delete node;
|
||||||
|
}
|
||||||
|
|
||||||
|
nodes_.clear();
|
||||||
|
}
|
||||||
|
|
||||||
void NodeEditor::Scroll(qreal x, qreal y)
|
void NodeEditor::Scroll(qreal x, qreal y)
|
||||||
{
|
{
|
||||||
NodeUI* node;
|
NodeUI* node;
|
||||||
|
|
||||||
foreach (node, nodes_) {
|
foreach (node, nodes_) {
|
||||||
node->moveBy(x, y);
|
node->moveBy(x, y);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void LoadEvent() override;
|
virtual void LoadEvent() override;
|
||||||
|
virtual void ClearEvent() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QGraphicsScene scene_;
|
QGraphicsScene scene_;
|
||||||
|
|||||||
+73
-25
@@ -29,13 +29,16 @@
|
|||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
#include <QStyle>
|
||||||
|
#include <QApplication>
|
||||||
|
|
||||||
#include "ui/icons.h"
|
#include "ui/icons.h"
|
||||||
#include "global/debug.h"
|
#include "global/debug.h"
|
||||||
|
|
||||||
CollapsibleWidget::CollapsibleWidget(QWidget* parent) : QWidget(parent) {
|
CollapsibleWidget::CollapsibleWidget(QWidget* parent) :
|
||||||
selected = false;
|
QWidget(parent),
|
||||||
|
contents(nullptr)
|
||||||
|
{
|
||||||
layout = new QVBoxLayout(this);
|
layout = new QVBoxLayout(this);
|
||||||
layout->setMargin(0);
|
layout->setMargin(0);
|
||||||
layout->setSpacing(0);
|
layout->setSpacing(0);
|
||||||
@@ -58,24 +61,13 @@ CollapsibleWidget::CollapsibleWidget(QWidget* parent) : QWidget(parent) {
|
|||||||
title_bar_layout->addStretch();
|
title_bar_layout->addStretch();
|
||||||
layout->addWidget(title_bar);
|
layout->addWidget(title_bar);
|
||||||
|
|
||||||
connect(title_bar, SIGNAL(select(bool, bool)), this, SLOT(header_click(bool, bool)));
|
connect(title_bar, SIGNAL(select()), this, SLOT(Selected()));
|
||||||
|
|
||||||
set_button_icon(true);
|
set_button_icon(true);
|
||||||
|
|
||||||
contents = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CollapsibleWidget::header_click(bool s, bool deselect) {
|
void CollapsibleWidget::Selected() {
|
||||||
selected = s;
|
emit deselect_others(this);
|
||||||
title_bar->selected = s;
|
|
||||||
if (s) {
|
|
||||||
QPalette p = title_bar->palette();
|
|
||||||
p.setColor(QPalette::Background, QColor(255, 255, 255, 64));
|
|
||||||
title_bar->setPalette(p);
|
|
||||||
} else {
|
|
||||||
title_bar->setPalette(palette());
|
|
||||||
}
|
|
||||||
if (deselect) emit deselect_others(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CollapsibleWidget::IsFocused() {
|
bool CollapsibleWidget::IsFocused() {
|
||||||
@@ -96,7 +88,17 @@ void CollapsibleWidget::SetExpanded(bool s)
|
|||||||
|
|
||||||
bool CollapsibleWidget::IsSelected()
|
bool CollapsibleWidget::IsSelected()
|
||||||
{
|
{
|
||||||
return selected;
|
return title_bar->IsSelected();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CollapsibleWidget::Deselect()
|
||||||
|
{
|
||||||
|
title_bar->SetSelected(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CollapsibleWidget::SetSelectable(bool s)
|
||||||
|
{
|
||||||
|
title_bar->SetSelectable(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CollapsibleWidget::set_button_icon(bool open) {
|
void CollapsibleWidget::set_button_icon(bool open) {
|
||||||
@@ -125,19 +127,65 @@ void CollapsibleWidget::on_visible_change() {
|
|||||||
SetExpanded(!IsExpanded());
|
SetExpanded(!IsExpanded());
|
||||||
}
|
}
|
||||||
|
|
||||||
CollapsibleWidgetHeader::CollapsibleWidgetHeader(QWidget* parent) : QWidget(parent), selected(false) {
|
CollapsibleWidgetHeader::CollapsibleWidgetHeader(QWidget* parent) :
|
||||||
|
QWidget(parent),
|
||||||
|
selected_(false),
|
||||||
|
selectable_(true)
|
||||||
|
{
|
||||||
setContextMenuPolicy(Qt::CustomContextMenu);
|
setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CollapsibleWidgetHeader::IsSelected()
|
||||||
|
{
|
||||||
|
return selected_;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CollapsibleWidgetHeader::SetSelected(bool s, bool deselect_others)
|
||||||
|
{
|
||||||
|
selected_ = s;
|
||||||
|
|
||||||
|
if (s) {
|
||||||
|
QPalette p = palette();
|
||||||
|
p.setColor(QPalette::Background, QColor(255, 255, 255, 64));
|
||||||
|
setPalette(p);
|
||||||
|
} else {
|
||||||
|
setPalette(qApp->palette());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deselect_others) {
|
||||||
|
emit select();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CollapsibleWidgetHeader::SetSelectable(bool s)
|
||||||
|
{
|
||||||
|
selectable_ = s;
|
||||||
|
|
||||||
|
if (!selectable_ && selected_) {
|
||||||
|
SetSelected(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CollapsibleWidgetHeader::event(QEvent *event)
|
||||||
|
{
|
||||||
|
if (!selectable_
|
||||||
|
&& (event->type() == QEvent::MouseButtonPress
|
||||||
|
|| event->type() == QEvent::MouseButtonRelease
|
||||||
|
|| event->type() == QEvent::MouseMove
|
||||||
|
|| event->type() == QEvent::MouseButtonDblClick)
|
||||||
|
&& QApplication::sendEvent(parent(), event)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return QWidget::event(event);
|
||||||
|
}
|
||||||
|
|
||||||
void CollapsibleWidgetHeader::mousePressEvent(QMouseEvent* event) {
|
void CollapsibleWidgetHeader::mousePressEvent(QMouseEvent* event) {
|
||||||
if (selected) {
|
if (selected_) {
|
||||||
if ((event->modifiers() & Qt::ShiftModifier)) {
|
if (event->modifiers() & Qt::ShiftModifier) {
|
||||||
selected = false;
|
SetSelected(false);
|
||||||
emit select(selected, false);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
selected = true;
|
SetSelected(true, !(event->modifiers() & Qt::ShiftModifier));
|
||||||
emit select(selected, !(event->modifiers() & Qt::ShiftModifier));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+16
-6
@@ -34,12 +34,20 @@ class CollapsibleWidgetHeader : public QWidget {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
CollapsibleWidgetHeader(QWidget* parent = nullptr);
|
CollapsibleWidgetHeader(QWidget* parent = nullptr);
|
||||||
bool selected;
|
|
||||||
|
bool IsSelected();
|
||||||
|
void SetSelected(bool s, bool deselect_others = false);
|
||||||
|
|
||||||
|
void SetSelectable(bool s);
|
||||||
protected:
|
protected:
|
||||||
void mousePressEvent(QMouseEvent* event);
|
virtual bool event(QEvent *event) override;
|
||||||
void paintEvent(QPaintEvent *event);
|
virtual void mousePressEvent(QMouseEvent* event) override;
|
||||||
|
virtual void paintEvent(QPaintEvent *event) override;
|
||||||
signals:
|
signals:
|
||||||
void select(bool, bool);
|
void select();
|
||||||
|
private:
|
||||||
|
bool selected_;
|
||||||
|
bool selectable_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class CollapsibleWidget : public QWidget
|
class CollapsibleWidget : public QWidget
|
||||||
@@ -53,13 +61,15 @@ public:
|
|||||||
bool IsFocused();
|
bool IsFocused();
|
||||||
bool IsExpanded();
|
bool IsExpanded();
|
||||||
void SetExpanded(bool s);
|
void SetExpanded(bool s);
|
||||||
|
|
||||||
bool IsSelected();
|
bool IsSelected();
|
||||||
|
void Deselect();
|
||||||
|
void SetSelectable(bool s);
|
||||||
protected:
|
protected:
|
||||||
QCheckBox* enabled_check;
|
QCheckBox* enabled_check;
|
||||||
CollapsibleWidgetHeader* title_bar;
|
CollapsibleWidgetHeader* title_bar;
|
||||||
QWidget* contents;
|
QWidget* contents;
|
||||||
private:
|
private:
|
||||||
bool selected;
|
|
||||||
QLabel* header;
|
QLabel* header;
|
||||||
QVBoxLayout* layout;
|
QVBoxLayout* layout;
|
||||||
QPushButton* collapse_button;
|
QPushButton* collapse_button;
|
||||||
@@ -75,7 +85,7 @@ private slots:
|
|||||||
void on_visible_change();
|
void on_visible_change();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void header_click(bool s, bool deselect);
|
void Selected();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // COLLAPSIBLEWIDGET_H
|
#endif // COLLAPSIBLEWIDGET_H
|
||||||
|
|||||||
+29
-1
@@ -30,7 +30,8 @@
|
|||||||
#include "panels/panels.h"
|
#include "panels/panels.h"
|
||||||
|
|
||||||
EffectUI::EffectUI(Effect* e) :
|
EffectUI::EffectUI(Effect* e) :
|
||||||
effect_(e)
|
effect_(e),
|
||||||
|
node_parent_(nullptr)
|
||||||
{
|
{
|
||||||
Q_ASSERT(e != nullptr);
|
Q_ASSERT(e != nullptr);
|
||||||
|
|
||||||
@@ -89,6 +90,8 @@ EffectUI::EffectUI(Effect* e) :
|
|||||||
ui->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
|
ui->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
|
||||||
SetContents(ui);
|
SetContents(ui);
|
||||||
|
|
||||||
|
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
|
||||||
|
|
||||||
SetExpanded(e->IsExpanded());
|
SetExpanded(e->IsExpanded());
|
||||||
connect(this, SIGNAL(visibleChanged(bool)), e, SLOT(SetExpanded(bool)));
|
connect(this, SIGNAL(visibleChanged(bool)), e, SLOT(SetExpanded(bool)));
|
||||||
|
|
||||||
@@ -276,6 +279,31 @@ bool EffectUI::IsAttachedToClip(Clip *c)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EffectUI::SetNodeParent(NodeUI *parent)
|
||||||
|
{
|
||||||
|
node_parent_ = parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
void EffectUI::resizeEvent(QResizeEvent *event)
|
||||||
|
{
|
||||||
|
if (node_parent_ != nullptr) {
|
||||||
|
node_parent_->Resize(event->size());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool EffectUI::event(QEvent *event)
|
||||||
|
{
|
||||||
|
if (node_parent_ != nullptr
|
||||||
|
&& (event->type() == QEvent::MouseButtonPress
|
||||||
|
|| event->type() == QEvent::MouseButtonRelease
|
||||||
|
|| event->type() == QEvent::MouseMove
|
||||||
|
|| event->type() == QEvent::MouseButtonDblClick)
|
||||||
|
&& node_parent_->scene()->sendEvent(node_parent_, event)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return CollapsibleWidget::event(event);
|
||||||
|
}
|
||||||
|
|
||||||
QWidget *EffectUI::Widget(int row, int field)
|
QWidget *EffectUI::Widget(int row, int field)
|
||||||
{
|
{
|
||||||
return widgets_.at(row).at(field);
|
return widgets_.at(row).at(field);
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "collapsiblewidget.h"
|
#include "collapsiblewidget.h"
|
||||||
#include "effects/effect.h"
|
#include "effects/effect.h"
|
||||||
|
#include "ui/nodeui.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The EffectUI class
|
* @brief The EffectUI class
|
||||||
@@ -131,6 +132,12 @@ public:
|
|||||||
*/
|
*/
|
||||||
bool IsAttachedToClip(Clip* c);
|
bool IsAttachedToClip(Clip* c);
|
||||||
|
|
||||||
|
void SetNodeParent(NodeUI* parent);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void resizeEvent(QResizeEvent* event) override;
|
||||||
|
virtual bool event(QEvent* event) override;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
/**
|
/**
|
||||||
* @brief Cut signal
|
* @brief Cut signal
|
||||||
@@ -195,6 +202,11 @@ private:
|
|||||||
*/
|
*/
|
||||||
QVector<KeyframeNavigator*> keyframe_navigators_;
|
QVector<KeyframeNavigator*> keyframe_navigators_;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Internal reference to node parent
|
||||||
|
*/
|
||||||
|
NodeUI* node_parent_;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Attach a KeyframeNavigator object to an EffectRow.
|
* @brief Attach a KeyframeNavigator object to an EffectRow.
|
||||||
*
|
*
|
||||||
|
|||||||
+28
-12
@@ -10,33 +10,55 @@
|
|||||||
#include <QStyleOptionGraphicsItem>
|
#include <QStyleOptionGraphicsItem>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
|
||||||
|
const int kRoundedRectRadius = 5;
|
||||||
|
|
||||||
NodeUI::NodeUI() :
|
NodeUI::NodeUI() :
|
||||||
central_widget_(this)
|
central_widget_(nullptr)
|
||||||
{
|
{
|
||||||
setFlag(QGraphicsItem::ItemIsMovable, true);
|
setFlag(QGraphicsItem::ItemIsMovable, true);
|
||||||
setFlag(QGraphicsItem::ItemIsSelectable, true);
|
setFlag(QGraphicsItem::ItemIsSelectable, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NodeUI::~NodeUI()
|
||||||
|
{
|
||||||
|
if (scene() != nullptr) {
|
||||||
|
scene()->removeItem(proxy_);
|
||||||
|
scene()->removeItem(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void NodeUI::AddToScene(QGraphicsScene *scene)
|
void NodeUI::AddToScene(QGraphicsScene *scene)
|
||||||
{
|
{
|
||||||
scene->addItem(this);
|
scene->addItem(this);
|
||||||
|
|
||||||
QGraphicsProxyWidget* proxy = scene->addWidget(¢ral_widget_);
|
if (central_widget_ != nullptr) {
|
||||||
proxy->setPos(pos());
|
proxy_ = scene->addWidget(central_widget_);
|
||||||
proxy->setParentItem(this);
|
proxy_->setPos(pos() + QPoint(kRoundedRectRadius, kRoundedRectRadius));
|
||||||
|
proxy_->setParentItem(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void NodeUI::Resize(const QSize &s)
|
void NodeUI::Resize(const QSize &s)
|
||||||
{
|
{
|
||||||
QRectF rectangle = rect();
|
QRectF rectangle = rect();
|
||||||
|
|
||||||
rectangle.setSize(s);
|
rectangle.setSize(s + 2 * QSize(kRoundedRectRadius, kRoundedRectRadius));
|
||||||
|
|
||||||
|
path_ = QPainterPath();
|
||||||
|
path_.addRoundedRect(rectangle, kRoundedRectRadius, kRoundedRectRadius);
|
||||||
|
|
||||||
setRect(rectangle);
|
setRect(rectangle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NodeUI::SetWidget(QWidget *widget)
|
||||||
|
{
|
||||||
|
central_widget_ = widget;
|
||||||
|
}
|
||||||
|
|
||||||
void NodeUI::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
|
void NodeUI::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(widget)
|
||||||
|
|
||||||
QPalette palette = qApp->palette();
|
QPalette palette = qApp->palette();
|
||||||
|
|
||||||
if (option->state & QStyle::State_Selected) {
|
if (option->state & QStyle::State_Selected) {
|
||||||
@@ -45,11 +67,5 @@ void NodeUI::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QW
|
|||||||
painter->setPen(palette.base().color());
|
painter->setPen(palette.base().color());
|
||||||
}
|
}
|
||||||
painter->setBrush(palette.window());
|
painter->setBrush(palette.window());
|
||||||
|
painter->drawPath(path_);
|
||||||
QRectF r = rect();
|
|
||||||
r.setX(r.x() - 1);
|
|
||||||
r.setY(r.y() - 1);
|
|
||||||
r.setRight(r.right() + 1);
|
|
||||||
r.setBottom(r.bottom() + 1);
|
|
||||||
painter->drawRect(r);
|
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-4
@@ -4,18 +4,20 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QGraphicsItem>
|
#include <QGraphicsItem>
|
||||||
|
|
||||||
#include "ui/nodewidget.h"
|
|
||||||
|
|
||||||
class NodeUI : public QGraphicsRectItem {
|
class NodeUI : public QGraphicsRectItem {
|
||||||
public:
|
public:
|
||||||
NodeUI();
|
NodeUI();
|
||||||
|
virtual ~NodeUI() override;
|
||||||
|
|
||||||
void AddToScene(QGraphicsScene* scene);
|
void AddToScene(QGraphicsScene* scene);
|
||||||
void Resize(const QSize& s);
|
void Resize(const QSize& s);
|
||||||
|
void SetWidget(QWidget* widget);
|
||||||
protected:
|
protected:
|
||||||
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override;
|
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NodeWidget central_widget_;
|
QWidget* central_widget_;
|
||||||
|
QGraphicsProxyWidget* proxy_;
|
||||||
|
QPainterPath path_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // NODEUI_H
|
#endif // NODEUI_H
|
||||||
|
|||||||
+2
-2
@@ -10,8 +10,8 @@ NodeView::NodeView(QGraphicsScene *scene, QWidget *parent) :
|
|||||||
setMouseTracking(true);
|
setMouseTracking(true);
|
||||||
setWindowTitle(tr("Node Editor"));
|
setWindowTitle(tr("Node Editor"));
|
||||||
|
|
||||||
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
||||||
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NodeView::mousePressEvent(QMouseEvent *event)
|
void NodeView::mousePressEvent(QMouseEvent *event)
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
#include "nodewidget.h"
|
|
||||||
|
|
||||||
#include <QVBoxLayout>
|
|
||||||
#include <QGridLayout>
|
|
||||||
#include <QLabel>
|
|
||||||
#include <QLineEdit>
|
|
||||||
#include <QResizeEvent>
|
|
||||||
#include <QGraphicsScene>
|
|
||||||
|
|
||||||
#include "ui/nodeui.h"
|
|
||||||
|
|
||||||
NodeWidget::NodeWidget(NodeUI *parent) :
|
|
||||||
parent_(parent)
|
|
||||||
{
|
|
||||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
|
||||||
|
|
||||||
QLabel* title = new QLabel("Node");
|
|
||||||
layout->addWidget(title);
|
|
||||||
|
|
||||||
QGridLayout* grid_layout = new QGridLayout();
|
|
||||||
|
|
||||||
grid_layout->addWidget(new QLabel("Option 1"), 0, 0);
|
|
||||||
grid_layout->addWidget(new QLineEdit("Value 1"), 0, 1);
|
|
||||||
|
|
||||||
grid_layout->addWidget(new QLabel("Option 2"), 1, 0);
|
|
||||||
grid_layout->addWidget(new QLineEdit("Value 2"), 1, 1);
|
|
||||||
|
|
||||||
layout->addLayout(grid_layout);
|
|
||||||
}
|
|
||||||
|
|
||||||
void NodeWidget::resizeEvent(QResizeEvent *event)
|
|
||||||
{
|
|
||||||
parent_->Resize(event->size());
|
|
||||||
}
|
|
||||||
|
|
||||||
bool NodeWidget::event(QEvent *event)
|
|
||||||
{
|
|
||||||
if ((event->type() == QEvent::MouseButtonPress
|
|
||||||
|| event->type() == QEvent::MouseButtonRelease
|
|
||||||
|| event->type() == QEvent::MouseMove
|
|
||||||
|| event->type() == QEvent::MouseButtonDblClick)
|
|
||||||
&& parent_->scene()->sendEvent(parent_, event)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return QWidget::event(event);
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
#ifndef NODEWIDGET_H
|
|
||||||
#define NODEWIDGET_H
|
|
||||||
|
|
||||||
#include <QWidget>
|
|
||||||
|
|
||||||
class NodeUI;
|
|
||||||
|
|
||||||
class NodeWidget : public QWidget
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
NodeWidget(NodeUI *parent);
|
|
||||||
protected:
|
|
||||||
virtual void resizeEvent(QResizeEvent *event) override;
|
|
||||||
virtual bool event(QEvent *event) override;
|
|
||||||
private:
|
|
||||||
NodeUI* parent_;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // NODEWIDGET_H
|
|
||||||
Reference in New Issue
Block a user