diff options
author | Lukáš Lalinský <lalinsky@gmail.com> | 2008-12-12 16:01:05 +0100 |
---|---|---|
committer | Lukáš Lalinský <lalinsky@gmail.com> | 2008-12-12 16:01:05 +0100 |
commit | 94d6d634c08870614cc1ce22e0f635aa8f3ab881 (patch) | |
tree | 481f6ba9d1d6f99fa20e3fe95ff46212940688e0 /src/mainwindow.cpp | |
parent | 1772e08823194ee25b3ebf444ef05290b6b33c68 (diff) | |
download | dbmodel-94d6d634c08870614cc1ce22e0f635aa8f3ab881.tar.gz dbmodel-94d6d634c08870614cc1ce22e0f635aa8f3ab881.tar.bz2 |
Make diagram notation configurable
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r-- | src/mainwindow.cpp | 36 |
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())); +} |