Properly check if clone is deleted.

actorid
Marek Kochanowicz 11 years ago
parent 5a52715701
commit d82f272e05

@ -310,7 +310,7 @@ void CSVWorld::Table::cloneRecord()
QModelIndexList selectedRows = selectionModel()->selectedRows();
if (selectedRows.size()==1)
{
emit cloneRequest (selectedRows.begin()->row());
emit cloneRequest (selectedRows.begin()->row(), mModel);
}
}
}

@ -74,7 +74,7 @@ namespace CSVWorld
/// \param modified Number of added and modified records
void createRequest();
void cloneRequest(int row);
void cloneRequest(int row, const CSMWorld::IdTable* table);
private slots:

@ -6,7 +6,7 @@
#include "../../model/doc/document.hpp"
#include "../filter/filterbox.hpp"
#include "../../model/world/idtable.hpp"
#include "table.hpp"
#include "tablebottombox.hpp"
#include "creator.hpp"
@ -49,7 +49,7 @@ CSVWorld::TableSubView::TableSubView (const CSMWorld::UniversalId& id, CSMDoc::D
{
connect (mTable, SIGNAL (createRequest()), mBottom, SLOT (createRequest()));
connect (mTable, SIGNAL (cloneRequest(int)), this, SLOT(cloneRequest(int)));
connect (mTable, SIGNAL (cloneRequest(int, CSMWorld::IdTable*)), this, SLOT(cloneRequest(int, CSMWorld::IdTable*)));
connect (this, SIGNAL(cloneRequest(const std::string&, const CSMWorld::UniversalId::Type, const CSMWorld::UniversalId::ArgumentType)),
mBottom, SLOT(cloneRequest(const std::string&, const CSMWorld::UniversalId::Type, const CSMWorld::UniversalId::ArgumentType)));
}
@ -82,8 +82,11 @@ void CSVWorld::TableSubView::setStatusBar (bool show)
mBottom->setStatusBar (show);
}
void CSVWorld::TableSubView::cloneRequest(int row)
void CSVWorld::TableSubView::cloneRequest(int row, const CSMWorld::IdTable* table)
{
const CSMWorld::UniversalId& toClone(mTable->getUniversalId(row));
emit cloneRequest(toClone.getId(), toClone.getType(), toClone.getArgumentType());
if (!(table->getRecord(toClone.getId()).isDeleted()))
{
emit cloneRequest(toClone.getId(), toClone.getType(), toClone.getArgumentType());
}
}

@ -5,6 +5,11 @@
class QModelIndex;
namespace CSMWorld
{
class IdTable;
}
namespace CSMDoc
{
class Document;
@ -42,7 +47,7 @@ namespace CSVWorld
private slots:
void editRequest (int row);
void cloneRequest (int row);
void cloneRequest (int row, const CSMWorld::IdTable* table);
};
}

Loading…
Cancel
Save