summaryrefslogtreecommitdiff
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index cd29586..863af82 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -26,6 +26,7 @@
#include <QImage>
#include <QSettings>
#include <QPrinter>
+#include <QPrintDialog>
#include <QMessageBox>
#include <QDebug>
#include <QDockWidget>
@@ -52,6 +53,8 @@ public:
QStackedWidget *propertyEditorsStack;
QMap<QString, int> propertyEditorsIndexes;
+ QAction *printAction;
+
QActionGroup *notationActionGroup;
QMenu *notationMenu;
@@ -215,9 +218,14 @@ MainWindow::setupActions()
//connect(m_undoGroup, SIGNAL(cleanChanged(bool)), m_actionSaveAs, SLOT(setDisabled(bool)));
m_actionExportPNG = new QAction(this);
- m_actionExportPNG->setText(tr("Export..."));
+ m_actionExportPNG->setText(tr("E&xport..."));
connect(m_actionExportPNG, SIGNAL(triggered(bool)), SLOT(exportPNG()));
+ d->printAction = new QAction(this);
+ d->printAction->setText(tr("&Print..."));
+ d->printAction->setIcon(loadIcon("document-print"));
+ connect(d->printAction, SIGNAL(triggered(bool)), SLOT(print()));
+
for (int i = 0; i < MaxRecentFiles; i++) {
m_actionRecentFile[i] = new QAction(this);
m_actionRecentFile[i]->setVisible(false);
@@ -378,6 +386,7 @@ MainWindow::setupMenuBar()
menu->addSeparator();
menu->addAction(m_actionExportPNG);
+ menu->addAction(d->printAction);
m_actionRecentFilesSeparator = menu->addSeparator();
for (int i = 0; i < MaxRecentFiles; i++)
menu->addAction(m_actionRecentFile[i]);
@@ -494,6 +503,19 @@ MainWindow::exportPNG()
}
void
+MainWindow::print()
+{
+ QPrinter printer;
+ QPrintDialog printDialog(&printer, this);
+ if (printDialog.exec() == QDialog::Accepted) {
+ QPainter painter(&printer);
+ m_model->setPrinting(true);
+ m_model->render(&painter);
+ m_model->setPrinting(false);
+ }
+}
+
+void
MainWindow::newModel(DiagramDocument *newModel)
{
if (!newModel) {