diff --git a/SimsWorld/BehaviorEditor.cpp b/SimsWorld/BehaviorEditor.cpp index 625cdba..ecff5a4 100644 --- a/SimsWorld/BehaviorEditor.cpp +++ b/SimsWorld/BehaviorEditor.cpp @@ -23,7 +23,7 @@ QRectF NodePresent::boundingRect() const void NodePresent::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { painter->drawRect(boundingRect()); - painter->fillRect(option->rect - QMargins(8,8,8,8), Qt::gray); + painter->fillRect(option->rect - QMargins(8, 8, 8, 8), Qt::gray); painter->translate(QPointF(15, 15)); auto rect = contentMeasure(); @@ -66,10 +66,10 @@ void BehaviorsPresent::presentAllocate(std::shared_ptr ins) if (_present_peers.contains(ins)) return; - for(auto idx=_column_aligns.size(); idx < ins->depth() + 1; ++idx) + for (auto idx = _column_aligns.size(); idx < ins->depth() + 1; ++idx) _column_aligns.append(0); - auto ¤t_width = _column_aligns[ins->depth()]; + auto& current_width = _column_aligns[ins->depth()]; _present_peers[ins] = new NodePresent(this, current_width, ins); this->_bind_scene.addItem(_present_peers[ins]); break; @@ -178,3 +178,23 @@ uint qHash(const std::shared_ptr data, uint seed) noexcept { return qHash((void*)data.get(), seed); } + +#include +BehaviorEditor::BehaviorEditor(QWidget* parent /*= nullptr*/) + : QMainWindow(parent), + _type_view(new QListView(this)), + _type_model(new QStandardItemModel(this)), + _logical_present(new BehaviorsPresent(this)), + _logs_present(new QTextBrowser(this)) +{ + auto split_h = new QSplitter(Qt::Horizontal, this); + this->setCentralWidget(split_h); + + split_h->addWidget(_type_view); + _type_view->setModel(_type_model); + auto split_v = new QSplitter(Qt::Vertical, this); + split_h->addWidget(split_v); + + split_v->addWidget(_logical_present); + split_v->addWidget(_logs_present); +} diff --git a/SimsWorld/BehaviorEditor.h b/SimsWorld/BehaviorEditor.h index d5cc54c..6e23f5f 100644 --- a/SimsWorld/BehaviorEditor.h +++ b/SimsWorld/BehaviorEditor.h @@ -86,3 +86,17 @@ public: std::shared_ptr ins, const QPointF &origin_offset); }; + +#include +#include +#include +class BehaviorEditor : public QMainWindow { +private: + QListView *const _type_view; + QStandardItemModel *const _type_model; + BehaviorsPresent *const _logical_present; + QTextBrowser *const _logs_present; + +public: + BehaviorEditor(QWidget *parent = nullptr); +}; \ No newline at end of file diff --git a/SimsWorld/main.cpp b/SimsWorld/main.cpp index 116b450..217b4e2 100644 --- a/SimsWorld/main.cpp +++ b/SimsWorld/main.cpp @@ -7,42 +7,9 @@ int main(int argc, char *argv[]) { QApplication a(argc, argv); - BehaviorsPresent w; + + BehaviorEditor w; w.show(); - auto loader = std::make_shared(); - auto kernal = std::make_shared(loader); - - auto root = std::make_shared(kernal); - root->setID(0); - - auto seqs = std::make_shared(); - seqs->setID(10); - root->insert(seqs); - - auto seqsx = std::make_shared(); - seqsx->setID(100); - seqs->insert(seqsx); - - auto selex = std::make_shared(); - selex->setID(101); - seqs->insert(selex); - - auto parallel = std::make_shared(); - parallel->setID(1000); - selex->insert(parallel); - parallel = std::make_shared(); - parallel->setID(1001); - selex->insert(parallel); - - auto item = std::make_shared(); - item->setID(10000); - parallel->insert(item); - item = std::make_shared(); - item->setID(100010000); - parallel->insert(item); - - w.setRoot(root); - return a.exec(); }