From 8c6a0d9a4f1b2729dd078c51d4c51697945aaf39 Mon Sep 17 00:00:00 2001 From: Marek Kochanowicz Date: Sun, 29 Jun 2014 21:12:31 +0200 Subject: [PATCH] created new files --- apps/opencs/view/world/dialoguesubview.hpp | 2 +- apps/opencs/view/world/nestedtable.cpp | 20 +++++++++++++ apps/opencs/view/world/nestedtable.hpp | 34 ++++++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 apps/opencs/view/world/nestedtable.cpp create mode 100644 apps/opencs/view/world/nestedtable.hpp diff --git a/apps/opencs/view/world/dialoguesubview.hpp b/apps/opencs/view/world/dialoguesubview.hpp index 90a3655924..a6b944d7ab 100644 --- a/apps/opencs/view/world/dialoguesubview.hpp +++ b/apps/opencs/view/world/dialoguesubview.hpp @@ -170,7 +170,7 @@ namespace CSVWorld QWidget* mMainWidget; CSMWorld::IdTable* mTable; QUndoStack& mUndoStack; - std::vector mNestedModels; //Plain, raw C pointers, deleted in the dtor + std::vector mNestedModels; //Plain, raw C pointers, deleted in the dtor public: diff --git a/apps/opencs/view/world/nestedtable.cpp b/apps/opencs/view/world/nestedtable.cpp new file mode 100644 index 0000000000..beeafed90e --- /dev/null +++ b/apps/opencs/view/world/nestedtable.cpp @@ -0,0 +1,20 @@ +#include "nestedtable.hpp" + +NestedTable::NestedTable(CSMDoc::Document& document, CSMWorld::NestedTableModel* model, const CSMWorld::UniversalId& id, QWidget* parent) + : QTableView(parent) +{ + QTableView::setModel(model); + setAcceptDrops(true); + + int columns = mModel->columnCount(); + + for(int i = 0 ; i < columns; ++i) + { + CSMWorld::ColumnBase::Display display = static_cast ( + mModel->headerData (i, Qt::Horizontal, CSMWorld::ColumnBase::Role_Display).toInt()); + + CommandDelegate *delegate = CommandDelegateFactoryCollection::get().makeDelegate(display, + document.getUndoStack(), + this); + } +} diff --git a/apps/opencs/view/world/nestedtable.hpp b/apps/opencs/view/world/nestedtable.hpp new file mode 100644 index 0000000000..200a73798e --- /dev/null +++ b/apps/opencs/view/world/nestedtable.hpp @@ -0,0 +1,34 @@ +#ifndef CSV_WORLD_NESTEDTABLE_H +#define CSV_WORLD_TABLE_H + +#include +#include + +class QUndoStack; +class QAction; + +namespace CSMWorld +{ + class NestedTableModel; +} + +namespace CSVWorld +{ + class NestedTable : public QTableView + { + Q_OBJECT + + std::vector mDelegates; + QAction *mAddNewRowAction; + QAction *mRemoveRowAction; + CSMWorld::CommandDispatcher *mDispatcher; + + public: + NestedTable(CSMDoc::Document& document, CSMWorld::NestedTableModel* model, const CSMWorld::UniversalId& id, QWidget* parent = NULL); + + protected: + void dragEnterEvent(QDragEnterEvent *event); + + void dragMoveEvent(QDragMoveEvent *event); + }; +}