summaryrefslogtreecommitdiff
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
authorLukáš Lalinský <lalinsky@gmail.com>2008-12-12 16:01:05 +0100
committerLukáš Lalinský <lalinsky@gmail.com>2008-12-12 16:01:05 +0100
commit94d6d634c08870614cc1ce22e0f635aa8f3ab881 (patch)
tree481f6ba9d1d6f99fa20e3fe95ff46212940688e0 /src/mainwindow.cpp
parent1772e08823194ee25b3ebf444ef05290b6b33c68 (diff)
downloaddbmodel-94d6d634c08870614cc1ce22e0f635aa8f3ab881.tar.gz
dbmodel-94d6d634c08870614cc1ce22e0f635aa8f3ab881.tar.bz2
Make diagram notation configurable
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp36
1 files changed, 35 insertions, 1 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 80cae48..5edff05 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -51,6 +51,9 @@ public:
QDockWidget *itemPropsDock;
QStackedWidget *propertyEditorsStack;
QMap<QString, int> propertyEditorsIndexes;
+
+ QActionGroup *notationActionGroup;
+ QMenu *notationMenu;
};
MainWindow::MainWindow()
@@ -277,6 +280,19 @@ MainWindow::setupActions()
m_actionShowGrid->setText(tr("Show &Grid"));
m_actionShowGrid->setCheckable(true);
connect(m_actionShowGrid, SIGNAL(triggered(bool)), SLOT(showGrid(bool)));
+
+ d->notationMenu = new QMenu(tr("&Notation"), this);
+ d->notationActionGroup = new QActionGroup(this);
+ QAction *action;
+ action = d->notationActionGroup->addAction(tr("&Relational"));
+ action->setCheckable(true);
+ action->setData(DiagramDocument::Relational);
+ d->notationMenu->addAction(action);
+ action = d->notationActionGroup->addAction(tr("&Crow's Foot"));
+ action->setCheckable(true);
+ action->setData(DiagramDocument::CrowsFoot);
+ d->notationMenu->addAction(action);
+ connect(d->notationActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(setDiagramNotation(QAction*)));
}
void
@@ -370,6 +386,10 @@ MainWindow::setupMenuBar()
viewMenu->addSeparator();
viewMenu->addAction(m_actionShowGrid);
+ QMenu *diagramMenu = menuBar()->addMenu(tr("&Diagram"));
+ diagramMenu->addMenu(d->notationMenu);
+ diagramMenu->addSeparator();
+
menu = menuBar()->addMenu(tr("&Help"));
menu->addAction(m_actionAbout);
}
@@ -510,6 +530,13 @@ MainWindow::newModel(DiagramDocument *newModel)
m_actionShowGrid->setChecked(m_model->isGridVisible());
+ foreach (QAction *action, d->notationActionGroup->actions()) {
+ if (action->data() == m_model->notation()) {
+ action->setChecked(true);
+ break;
+ }
+ }
+
QUndoStack *undoStack = m_model->undoStack();
connect(undoStack, SIGNAL(cleanChanged(bool)), this, SLOT(updateWindowTitle()));
connect(undoStack, SIGNAL(canUndoChanged(bool)), m_actionUndo, SLOT(setEnabled(bool)));
@@ -698,7 +725,7 @@ MainWindow::about()
"<p>\n"
"<b>Database Modeller</b><br />\n"
"<a href=\"http://oxygene.sk/lukas/dbmodel/\">http://oxygene.sk/lukas/dbmodel/</a><br />\n"
- "Copyright (C) 2008 Lukáš Lalinský\n"
+ "Copyright (C) 2008 Lukas Lalinsky\n"
"</p>\n"
));
}
@@ -720,3 +747,10 @@ MainWindow::updateWindowTitle()
setWindowTitle(qApp->applicationName());
}
}
+
+void
+MainWindow::setDiagramNotation(QAction *action)
+{
+ m_model->undoStack()->push(
+ new SetObjectPropertyCommand(m_model, "notation", action->data()));
+}