diff --git a/apps/opencs/CMakeLists.txt b/apps/opencs/CMakeLists.txt index e76e64610..eec1b653d 100644 --- a/apps/opencs/CMakeLists.txt +++ b/apps/opencs/CMakeLists.txt @@ -61,7 +61,7 @@ opencs_hdrs_noqt (view/doc opencs_units (view/world table tablesubview scriptsubview util regionmapsubview tablebottombox creator genericcreator cellcreator referenceablecreator referencecreator scenesubview scenetoolbar scenetool - scenetoolmode infocreator scriptedit dialoguesubview previewsubview regionmap dragrecordtable + scenetoolmode infocreator scriptedit dialoguesubview previewsubview regionmap dragrecordtable nestedtable ) opencs_units (view/render diff --git a/apps/opencs/view/world/dialoguesubview.cpp b/apps/opencs/view/world/dialoguesubview.cpp index 109f0c3fa..122b173e6 100644 --- a/apps/opencs/view/world/dialoguesubview.cpp +++ b/apps/opencs/view/world/dialoguesubview.cpp @@ -19,7 +19,6 @@ #include #include #include -#include #include #include "../../model/world/nestedtablemodel.hpp" @@ -34,6 +33,7 @@ #include "recordstatusdelegate.hpp" #include "util.hpp" #include "tablebottombox.hpp" +#include "nestedtable.hpp" /* ==============================NotEditableSubDelegate========================================== */ @@ -406,9 +406,7 @@ void CSVWorld::EditWidget::remake(int row) { mNestedModels.push_back(new CSMWorld::NestedTableModel (mTable->index(row, i), display, mTable)); - QTableView* table = new QTableView(); - - table->setModel(*(mNestedModels.rbegin())); + NestedTable* table = new NestedTable(mUndoStack, *(mNestedModels.rbegin()), this); tablesLayout->addWidget(table); } else diff --git a/apps/opencs/view/world/nestedtable.cpp b/apps/opencs/view/world/nestedtable.cpp index beeafed90..bfadfc08c 100644 --- a/apps/opencs/view/world/nestedtable.cpp +++ b/apps/opencs/view/world/nestedtable.cpp @@ -1,20 +1,35 @@ #include "nestedtable.hpp" +#include "../../model/world/nestedtablemodel.hpp" +#include "../../model/world/universalid.hpp" +#include "util.hpp" -NestedTable::NestedTable(CSMDoc::Document& document, CSMWorld::NestedTableModel* model, const CSMWorld::UniversalId& id, QWidget* parent) +CSVWorld::NestedTable::NestedTable(QUndoStack& undoStack, + CSMWorld::NestedTableModel* model, + QWidget* parent) : QTableView(parent) { - QTableView::setModel(model); + setModel(model); setAcceptDrops(true); - int columns = mModel->columnCount(); + int columns = model->columnCount(QModelIndex()); for(int i = 0 ; i < columns; ++i) { CSMWorld::ColumnBase::Display display = static_cast ( - mModel->headerData (i, Qt::Horizontal, CSMWorld::ColumnBase::Role_Display).toInt()); + model->headerData (i, Qt::Horizontal, CSMWorld::ColumnBase::Role_Display).toInt()); CommandDelegate *delegate = CommandDelegateFactoryCollection::get().makeDelegate(display, - document.getUndoStack(), + undoStack, this); + + setItemDelegateForColumn(i, delegate); } } + +void CSVWorld::NestedTable::dragEnterEvent(QDragEnterEvent *event) +{ +} + +void CSVWorld::NestedTable::dragMoveEvent(QDragMoveEvent *event) +{ +} diff --git a/apps/opencs/view/world/nestedtable.hpp b/apps/opencs/view/world/nestedtable.hpp index 200a73798..fe6214151 100644 --- a/apps/opencs/view/world/nestedtable.hpp +++ b/apps/opencs/view/world/nestedtable.hpp @@ -1,5 +1,5 @@ #ifndef CSV_WORLD_NESTEDTABLE_H -#define CSV_WORLD_TABLE_H +#define CSV_WORLD_NESTEDTABLE_H #include #include @@ -10,6 +10,12 @@ class QAction; namespace CSMWorld { class NestedTableModel; + class UniversalId; +} + +namespace CSMDoc +{ + class Document; } namespace CSVWorld @@ -18,13 +24,13 @@ namespace CSVWorld { 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); + NestedTable(QUndoStack& undoStack, + CSMWorld::NestedTableModel* model, + QWidget* parent = NULL); protected: void dragEnterEvent(QDragEnterEvent *event); @@ -32,3 +38,5 @@ namespace CSVWorld void dragMoveEvent(QDragMoveEvent *event); }; } + +#endif