working again on npc, finally
This commit is contained in:
parent
8bc8b8f44e
commit
65faf27963
|
@ -0,0 +1,7 @@
|
||||||
|
#include "abstractguidededitormodel.h"
|
||||||
|
|
||||||
|
AbstractGuidedEditorModel::AbstractGuidedEditorModel(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
#ifndef ABSTRACTGUIDEDEDITORMODEL_H
|
||||||
|
#define ABSTRACTGUIDEDEDITORMODEL_H
|
||||||
|
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <QObject>
|
||||||
|
#include "guidededitorelement.h"
|
||||||
|
|
||||||
|
class AbstractGuidedEditorModel : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit AbstractGuidedEditorModel(QObject *parent = 0);
|
||||||
|
virtual ~AbstractGuidedEditorModel();
|
||||||
|
|
||||||
|
virtual uint getCount()=0;
|
||||||
|
virtual GuidedEditorElement& getElement(uint index) = 0;
|
||||||
|
virtual void setElementValue(const uint index, const QString value)= 0;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void dataChanged();
|
||||||
|
void dataChanged(uint index);
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // ABSTRACTGUIDEDEDITORMODEL_H
|
|
@ -1,26 +0,0 @@
|
||||||
#ifndef GUIDEDEDITOR_H
|
|
||||||
#define GUIDEDEDITOR_H
|
|
||||||
|
|
||||||
#include <QWidget>
|
|
||||||
#include "flowlayout.h"
|
|
||||||
#include "guidededitorelement.h"
|
|
||||||
|
|
||||||
class GuidedEditor : public QWidget
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
explicit GuidedEditor(QWidget *parent = 0);
|
|
||||||
~GuidedEditor();
|
|
||||||
|
|
||||||
signals:
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
void addElement();
|
|
||||||
|
|
||||||
private:
|
|
||||||
FlowLayout* editorLayout;
|
|
||||||
QList<EditorElement*>* list;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // GUIDEDEDITOR_H
|
|
|
@ -1,27 +1,75 @@
|
||||||
#include "guidededitorelement.h"
|
#include "guidededitorelement.h"
|
||||||
#include <QBoxLayout>
|
#include <QString>
|
||||||
|
|
||||||
EditorElement::EditorElement(QWidget *parent) : QWidget(parent)
|
GuidedEditorElement::GuidedEditorElement(QObject *parent) : QObject(parent)
|
||||||
{
|
|
||||||
this->layout = new QBoxLayout(QBoxLayout::TopToBottom, this);
|
|
||||||
this->setLayout(layout);
|
|
||||||
label = new QLabel(this);
|
|
||||||
hint = new QLabel(this);
|
|
||||||
edit = new QLineEdit(this);
|
|
||||||
layout->addWidget(label);
|
|
||||||
layout->addWidget(hint);
|
|
||||||
layout->addWidget(edit);
|
|
||||||
|
|
||||||
label->setText("test");
|
|
||||||
hint->setText("another test");
|
|
||||||
edit->setText("content test");
|
|
||||||
this->setStyleSheet("QWidget {border: 2px dashed red}");
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorElement::~EditorElement()
|
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
GuidedEditorElement::~GuidedEditorElement()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QString GuidedEditorElement::getTitle() const
|
||||||
|
{
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuidedEditorElement::setTitle(const QString &value)
|
||||||
|
{
|
||||||
|
title = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString GuidedEditorElement::getDescription() const
|
||||||
|
{
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuidedEditorElement::setDescription(const QString &value)
|
||||||
|
{
|
||||||
|
description = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString GuidedEditorElement::getExample() const
|
||||||
|
{
|
||||||
|
return example;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuidedEditorElement::setExample(const QString &value)
|
||||||
|
{
|
||||||
|
example = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString GuidedEditorElement::getSyntaxregex() const
|
||||||
|
{
|
||||||
|
return syntaxregex;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuidedEditorElement::setSyntaxregex(const QString &value)
|
||||||
|
{
|
||||||
|
syntaxregex = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
ElementType GuidedEditorElement::getType() const
|
||||||
|
{
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuidedEditorElement::setType(const ElementType &value)
|
||||||
|
{
|
||||||
|
type = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString GuidedEditorElement::getValue() const
|
||||||
|
{
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuidedEditorElement::setValue(const QString &value)
|
||||||
|
{
|
||||||
|
this->value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,28 +1,48 @@
|
||||||
#ifndef EDITORELEMENT_H
|
#ifndef EDITORELEMENT_H
|
||||||
#define EDITORELEMENT_H
|
#define EDITORELEMENT_H
|
||||||
#include <QBoxLayout>
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QWidget>
|
#include <QString>
|
||||||
#include <QtGui>
|
|
||||||
#include <QLineEdit>
|
|
||||||
#include <QLabel>
|
|
||||||
|
|
||||||
class EditorElement : public QWidget
|
|
||||||
|
enum class ElementType {
|
||||||
|
INPUT, CHOOSER, STATIC
|
||||||
|
};
|
||||||
|
|
||||||
|
class GuidedEditorElement : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit EditorElement(QWidget *parent = 0);
|
|
||||||
~EditorElement();
|
|
||||||
|
explicit GuidedEditorElement(QObject *parent = 0);
|
||||||
|
~GuidedEditorElement();
|
||||||
|
|
||||||
|
QString getTitle() const;
|
||||||
|
void setTitle(const QString &value);
|
||||||
|
|
||||||
|
QString getDescription() const;
|
||||||
|
void setDescription(const QString &value);
|
||||||
|
|
||||||
|
QString getExample() const;
|
||||||
|
void setExample(const QString &value);
|
||||||
|
|
||||||
|
QString getSyntaxregex() const;
|
||||||
|
void setSyntaxregex(const QString &value);
|
||||||
|
|
||||||
|
ElementType getType() const;
|
||||||
|
void setType(const ElementType &value);
|
||||||
|
|
||||||
|
QString getValue() const;
|
||||||
|
void setValue(const QString &value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QBoxLayout*layout;
|
QString title;
|
||||||
QLabel * label;
|
QString description;
|
||||||
QLabel * hint;
|
QString example;
|
||||||
QLineEdit* edit;
|
QString syntaxregex;
|
||||||
|
ElementType type;
|
||||||
|
QString value;
|
||||||
|
|
||||||
|
|
||||||
signals:
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // EDITORELEMENT_H
|
#endif // EDITORELEMENT_H
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
#include "guidededitorelementview.h"
|
||||||
|
|
||||||
|
GuidedEditorElementView::GuidedEditorElementView(GuidedEditorElement *element, QWidget *parent) : QWidget(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
#ifndef GUIDEDEDITORELEMENTVIEW_H
|
||||||
|
#define GUIDEDEDITORELEMENTVIEW_H
|
||||||
|
|
||||||
|
#include "guidededitorelement.h"
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
|
||||||
|
class GuidedEditorElementView : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit GuidedEditorElementView(GuidedEditorElement* element, QWidget *parent = 0);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
|
||||||
|
private:
|
||||||
|
// widget container
|
||||||
|
// title label
|
||||||
|
// example/regex label
|
||||||
|
// mouseover description?
|
||||||
|
// input field based on element type
|
||||||
|
// layer information
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // GUIDEDEDITORELEMENTVIEW_H
|
|
@ -0,0 +1,27 @@
|
||||||
|
#include "guidededitorlayer.h"
|
||||||
|
|
||||||
|
GuidedEditorLayer::GuidedEditorLayer(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QString GuidedEditorLayer::getTitle() const
|
||||||
|
{
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuidedEditorLayer::setTitle(const QString &value)
|
||||||
|
{
|
||||||
|
title = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
QColor GuidedEditorLayer::getColor() const
|
||||||
|
{
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuidedEditorLayer::setColor(const QColor &value)
|
||||||
|
{
|
||||||
|
color = value;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
#ifndef GUIDEDEDITORLAYER_H
|
||||||
|
#define GUIDEDEDITORLAYER_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QString>
|
||||||
|
#include <QColor>
|
||||||
|
|
||||||
|
class GuidedEditorLayer : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit GuidedEditorLayer(QObject *parent = 0);
|
||||||
|
GuidedEditorLayer(QString title, QObject *parent = 0);
|
||||||
|
|
||||||
|
QString getTitle() const;
|
||||||
|
void setTitle(const QString &value);
|
||||||
|
|
||||||
|
QColor getColor() const;
|
||||||
|
void setColor(const QColor &value);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString title;
|
||||||
|
QColor color;
|
||||||
|
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // GUIDEDEDITORLAYER_H
|
|
@ -1,12 +1,9 @@
|
||||||
#include "guidededitor.h"
|
#include "guidededitorview.h"
|
||||||
|
|
||||||
GuidedEditor::GuidedEditor(QWidget *parent) : QWidget(parent)
|
GuidedEditorView::GuidedEditorView(QWidget * parent): QWidget(parent) {
|
||||||
{
|
|
||||||
editorLayout = new FlowLayout(this);
|
editorLayout = new FlowLayout(this);
|
||||||
this->setLayout(editorLayout);
|
this->setLayout(editorLayout);
|
||||||
//tests
|
//tests
|
||||||
this->editorLayout->addWidget(new EditorElement(this));
|
|
||||||
this->editorLayout->addWidget(new EditorElement(this));
|
|
||||||
QString style = QString(
|
QString style = QString(
|
||||||
"QWidget {"
|
"QWidget {"
|
||||||
"border-radius: 5px;"
|
"border-radius: 5px;"
|
||||||
|
@ -17,14 +14,16 @@ GuidedEditor::GuidedEditor(QWidget *parent) : QWidget(parent)
|
||||||
"border-radius: 5px;}"
|
"border-radius: 5px;}"
|
||||||
);
|
);
|
||||||
this->setStyleSheet(style);
|
this->setStyleSheet(style);
|
||||||
|
}
|
||||||
|
|
||||||
|
GuidedEditorView::GuidedEditorView(std::shared_ptr<AbstractGuidedEditorModel> model,QWidget *parent) :GuidedEditorView(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuidedEditor::addElement() {
|
|
||||||
this->editorLayout->addWidget(new EditorElement(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
GuidedEditor::~GuidedEditor()
|
GuidedEditorView::~GuidedEditorView()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
#ifndef GUIDEDEDITOR_H
|
||||||
|
#define GUIDEDEDITOR_H
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <QWidget>
|
||||||
|
#include "flowlayout.h"
|
||||||
|
#include "guidededitorelement.h"
|
||||||
|
#include "abstractguidededitormodel.h"
|
||||||
|
|
||||||
|
class GuidedEditorView : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit GuidedEditorView(QWidget *parent = 0);
|
||||||
|
explicit GuidedEditorView(std::shared_ptr<AbstractGuidedEditorModel> model, QWidget *parent);
|
||||||
|
~GuidedEditorView();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
|
||||||
|
private:
|
||||||
|
FlowLayout* editorLayout;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // GUIDEDEDITOR_H
|
|
@ -4,7 +4,7 @@
|
||||||
MainWindow::MainWindow(QWidget *parent)
|
MainWindow::MainWindow(QWidget *parent)
|
||||||
: QMainWindow(parent)
|
: QMainWindow(parent)
|
||||||
{
|
{
|
||||||
editor = new GuidedEditor(this);
|
editor = new GuidedEditorView(this);
|
||||||
this->setCentralWidget(editor);
|
this->setCentralWidget(editor);
|
||||||
dockWidget = new QDockWidget(this);
|
dockWidget = new QDockWidget(this);
|
||||||
this->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
|
this->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
|
||||||
|
@ -15,7 +15,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
QPushButton* button = new QPushButton(dockWidget);
|
QPushButton* button = new QPushButton(dockWidget);
|
||||||
button->setText("add");
|
button->setText("add");
|
||||||
dockLayout->addWidget(button);
|
dockLayout->addWidget(button);
|
||||||
this->connect(button, &QPushButton::pressed,editor, &GuidedEditor::addElement);
|
// this->connect(button, &QPushButton::pressed,editor, &GuidedEditorView::addElement);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
#include <QList>
|
#include <QList>
|
||||||
#include "flowlayout.h"
|
#include "flowlayout.h"
|
||||||
#include "guidededitor.h"
|
#include "guidededitorview.h"
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
#include <QDockWidget>
|
#include <QDockWidget>
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ class MainWindow : public QMainWindow
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
private:
|
private:
|
||||||
GuidedEditor* editor;
|
GuidedEditorView* editor;
|
||||||
QDockWidget* dockWidget;
|
QDockWidget* dockWidget;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -8,6 +8,8 @@ QT += core gui
|
||||||
|
|
||||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||||
|
|
||||||
|
QMAKE_CXXFLAGS += -std=c++14
|
||||||
|
|
||||||
TARGET = networkpacketcomposer
|
TARGET = networkpacketcomposer
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
|
|
||||||
|
@ -16,12 +18,18 @@ SOURCES += main.cpp\
|
||||||
mainwindow.cpp \
|
mainwindow.cpp \
|
||||||
flowlayout.cpp \
|
flowlayout.cpp \
|
||||||
guidededitorelement.cpp \
|
guidededitorelement.cpp \
|
||||||
guidededitor.cpp
|
abstractguidededitormodel.cpp \
|
||||||
|
guidededitorview.cpp \
|
||||||
|
guidededitorlayer.cpp \
|
||||||
|
guidededitorelementview.cpp
|
||||||
|
|
||||||
HEADERS += mainwindow.h \
|
HEADERS += mainwindow.h \
|
||||||
flowlayout.h \
|
flowlayout.h \
|
||||||
guidededitorelement.h \
|
guidededitorelement.h \
|
||||||
guidededitor.h
|
abstractguidededitormodel.h \
|
||||||
|
guidededitorview.h \
|
||||||
|
guidededitorlayer.h \
|
||||||
|
guidededitorelementview.h
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD/../QtGuidedEditor
|
INCLUDEPATH += $$PWD/../QtGuidedEditor
|
||||||
DEPENDPATH += $$PWD/../QtGuidedEditor
|
DEPENDPATH += $$PWD/../QtGuidedEditor
|
||||||
|
|
Reference in New Issue