refactor: separate network class from Qgraphics

This commit is contained in:
parker
2025-06-20 01:51:28 +01:00
parent 2feb6eb5b4
commit be9f3e27ea
6 changed files with 42 additions and 12 deletions

View File

@@ -19,8 +19,9 @@ qt_add_executable(${AppExec}
src/gui/main.cpp src/gui/main.cpp
src/gui/Interface.cpp src/gui/Interface.cpp
src/gui/viewport/Viewport.cpp src/gui/viewport/Viewport.cpp
src/gui/network/NetworkView.cpp src/gui/network/NetworkGraphicsView.cpp
src/gui/network/NetworkGraphicsScene.cpp src/gui/network/NetworkGraphicsScene.cpp
src/gui/network/Network.cpp
) )
target_link_libraries(${AppExec} PRIVATE Qt6::Core Qt6::Widgets) target_link_libraries(${AppExec} PRIVATE Qt6::Core Qt6::Widgets)

View File

@@ -1,6 +1,6 @@
#include "gui/Interface.h" #include "gui/Interface.h"
#include "gui/viewport/Viewport.h" #include "gui/viewport/Viewport.h"
#include "gui/network/NetworkView.h" #include "gui/network/Network.h"
#include <qpushbutton.h> #include <qpushbutton.h>
#include <qsplitter.h> #include <qsplitter.h>
@@ -15,13 +15,13 @@ EnzoUI::EnzoUI()
setMinimumSize(1920/2, 1080/2); setMinimumSize(1920/2, 1080/2);
Viewport* viewport = new Viewport(); Viewport* viewport = new Viewport();
NetworkView* networkView = new NetworkView(this); Network* network = new Network(this);
networkView->setMinimumWidth(400); network->setMinimumWidth(400);
viewportSplitter_ = new QSplitter(this); viewportSplitter_ = new QSplitter(this);
viewportSplitter_->addWidget(viewport); viewportSplitter_->addWidget(viewport);
viewportSplitter_->addWidget(networkView); viewportSplitter_->addWidget(network);
mainLayout_->addWidget(viewportSplitter_); mainLayout_->addWidget(viewportSplitter_);
} }

View File

@@ -0,0 +1,18 @@
#include "gui/network/Network.h"
#include "gui/network/NetworkGraphicsView.h"
#include "gui/network/NetworkGraphicsScene.h"
#include <qboxlayout.h>
#include <QPushButton>
Network::Network(QWidget* parent)
{
mainLayout_ = new QVBoxLayout(parent);
this->setLayout(mainLayout_);
NetworkGraphicsScene* scene = new NetworkGraphicsScene();
NetworkGraphicsView* view = new NetworkGraphicsView(parent, scene);
mainLayout_->addWidget(view);
}

11
src/gui/network/Network.h Normal file
View File

@@ -0,0 +1,11 @@
#pragma once
#include <QWidget>
class Network
: public QWidget
{
public:
Network(QWidget* parent = nullptr);
private:
QLayout* mainLayout_;
};

View File

@@ -1,14 +1,13 @@
#include "gui/network/NetworkView.h" #include "gui/network/NetworkGraphicsView.h"
#include <QGraphicsItem> #include <QGraphicsItem>
#include "gui/network/NetworkGraphicsScene.h" #include "gui/network/NetworkGraphicsScene.h"
#include <iostream> #include <iostream>
#include <QMouseEvent> #include <QMouseEvent>
#include <QScrollBar> #include <QScrollBar>
NetworkView::NetworkView(QWidget *parent) NetworkGraphicsView::NetworkGraphicsView(QWidget *parent, QGraphicsScene* scene)
: QGraphicsView(parent) : QGraphicsView(parent)
{ {
QGraphicsScene *scene = new NetworkGraphicsScene(this);
setScene(scene); setScene(scene);
QPen greenPen = QPen(Qt::green); QPen greenPen = QPen(Qt::green);
@@ -24,7 +23,7 @@ NetworkView::NetworkView(QWidget *parent)
} }
void NetworkView::mousePressEvent(QMouseEvent *event) void NetworkGraphicsView::mousePressEvent(QMouseEvent *event)
{ {
if( if(
event->button() & Qt::MiddleButton event->button() & Qt::MiddleButton
@@ -48,7 +47,7 @@ void NetworkView::mousePressEvent(QMouseEvent *event)
// } // }
// } // }
void NetworkView::mouseMoveEvent(QMouseEvent *mouseEvent) void NetworkGraphicsView::mouseMoveEvent(QMouseEvent *mouseEvent)
{ {
if( mouseEvent->buttons() & Qt::MiddleButton) if( mouseEvent->buttons() & Qt::MiddleButton)

View File

@@ -1,12 +1,13 @@
#pragma once #pragma once
#include <qwidget.h> #include <qwidget.h>
#include <QGraphicsView> #include <QGraphicsView>
#include <QGraphicsScene>
class NetworkView class NetworkGraphicsView
: public QGraphicsView : public QGraphicsView
{ {
public: public:
NetworkView(QWidget *parent = nullptr); NetworkGraphicsView(QWidget *parent = nullptr, QGraphicsScene* scene = nullptr);
private: private:
QPointF panStartPos; QPointF panStartPos;