summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukáš Lalinský <lalinsky@gmail.com>2008-12-12 16:24:55 +0100
committerLukáš Lalinský <lalinsky@gmail.com>2008-12-12 16:24:55 +0100
commit64e4e7d43e64d1a731db4b10c4391524d32d7cbf (patch)
tree2c5456af1777e55ec962d5ea8b196bffd57d710f
parente6e60c63f6e96a7ca14ae732846113de717e73a9 (diff)
downloaddbmodel-64e4e7d43e64d1a731db4b10c4391524d32d7cbf.tar.gz
dbmodel-64e4e7d43e64d1a731db4b10c4391524d32d7cbf.tar.bz2
Use unique initial name for new tables
-rw-r--r--src/diagramdocument.cpp3
-rw-r--r--src/items/database/databasetable.cpp7
-rw-r--r--src/items/database/databasetable.h1
3 files changed, 10 insertions, 1 deletions
diff --git a/src/diagramdocument.cpp b/src/diagramdocument.cpp
index ced24bc..e5caf13 100644
--- a/src/diagramdocument.cpp
+++ b/src/diagramdocument.cpp
@@ -45,6 +45,8 @@ public:
QPen gridPen;
bool printing;
Notation notation;
+
+ QMap<QString, int> counters;
};
DiagramDocument::DiagramDocument(QObject *parent)
@@ -195,6 +197,7 @@ DiagramDocument::mousePressEvent(QGraphicsSceneMouseEvent *event)
if (m_mode == AddTable && event->button() == Qt::LeftButton) {
DatabaseTable *table = new DatabaseTable();
table->createId();
+ table->setInitialName(1 + d->counters[table->typeName()]++);
table->setPos(event->scenePos());
undoStack()->push(new AddItemCommand(this, table));
clearSelection();
diff --git a/src/items/database/databasetable.cpp b/src/items/database/databasetable.cpp
index 5c80629..3a2387b 100644
--- a/src/items/database/databasetable.cpp
+++ b/src/items/database/databasetable.cpp
@@ -28,7 +28,6 @@ DatabaseTable::DatabaseTable(DiagramItem *parent)
{
setFlag(ItemIsMovable);
setFlag(ItemIsSelectable);
- m_name = "Table";
m_columnList = new ColumnList(this);
connect(m_columnList, SIGNAL(columnInserted(int)), this, SLOT(updateLayout()));
connect(m_columnList, SIGNAL(columnRemoved(int)), this, SLOT(updateLayout()));
@@ -104,6 +103,12 @@ DatabaseTable::setName(const QString &name)
emit propertyChanged("name", name);
}
+void
+DatabaseTable::setInitialName(int counter)
+{
+ setName(counter > 1 ? QString("table_%1").arg(counter) : "table");
+}
+
QVariant
DatabaseTable::itemChange(GraphicsItemChange change, const QVariant &value)
{
diff --git a/src/items/database/databasetable.h b/src/items/database/databasetable.h
index 11d6005..b66eb91 100644
--- a/src/items/database/databasetable.h
+++ b/src/items/database/databasetable.h
@@ -38,6 +38,7 @@ public:
QString name() const { return m_name; }
void setName(const QString &name);
+ void setInitialName(int counter);
ColumnList *columnList() { return m_columnList; }