#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); lastUsedFile = NULL; } MainWindow::~MainWindow() { delete ui; } /** * @brief MainWindow::on_actionPreferences_triggered * Creates a DlgPreferences Dialog and sets hight and width of the MainWindow. */ void MainWindow::on_actionPreferences_triggered() { qDebug() << "Preferences called"; DlgPreferences *tmp = new DlgPreferences(this); tmp->setHeight(size().height()); tmp->setWidth(size().width()); if (tmp->exec()) { qDebug() << "DlgPreferences okay clicked."; int width = tmp->Width(); int height = tmp->Height(); if (width >= 100 && width <= 800 && height >= 100 && height <= 800) { qDebug() << "Resizing QMainWindow."; resize(width, height); } } delete tmp; } void MainWindow::on_actionLoad_triggered() { QString fileName = QFileDialog::getOpenFileName(this, tr("Load an XML file"), QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0), tr("XML File (*.xml *.Xml *.XML)")); if(lastUsedFile) { delete lastUsedFile; lastUsedFile = NULL; } lastUsedFile = new QFile(fileName); if (lastUsedFile->exists()) { ui->interactionCanvasPlaceholder->read(lastUsedFile); } lastUsedFile->close(); } void MainWindow::on_actionSave_triggered() { if (!lastUsedFile) { on_actionSave_As_triggered(); } lastUsedFile->open(QFile::ReadWrite | QFile::Truncate); ui->interactionCanvasPlaceholder->write(lastUsedFile); lastUsedFile->close(); } void MainWindow::on_actionSave_As_triggered() { QString fileName = QFileDialog::getSaveFileName(this, tr("Load an XML file"), QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0), tr("XML File (*.xml *.Xml *.XML)")); if (lastUsedFile) { delete lastUsedFile; lastUsedFile = NULL; } lastUsedFile = new QFile(fileName); on_actionSave_triggered(); } void MainWindow::on_actionLanguage_triggered() { LanguageDialog *tmp = new LanguageDialog(this); if (QLocale::system().language() == QLocale::German) { tmp->setLanguage(1); } else { tmp->setLanguage(0); } if (tmp->exec()) { switch (tmp->language()) { case 0: qDebug() << "English"; loadLanguage(":/english.qm"); break; case 1: qDebug() << "German"; loadLanguage(":/german.qm"); break; } } } void MainWindow::on_actionDraw_Line_triggered() { ui->interactionCanvasPlaceholder->addLine(); } void MainWindow::on_actionDraw_Rectangle_triggered() { ui->interactionCanvasPlaceholder->addRectangle(); } void MainWindow::on_actionDraw_Ellipse_triggered() { ui->interactionCanvasPlaceholder->addEllipse(); } void MainWindow::on_actionDraw_Polygon_triggered() { ui->interactionCanvasPlaceholder->addPolygon(); } void MainWindow::mouseMoveEvent(QMouseEvent *mouseEvent) { qDebug() << "MainWindow:" << mouseEvent->pos(); } void MainWindow::loadLanguage(const QString &rLanguageFile) { // remove the old translator qApp->removeTranslator(&m_translator); // load the new translator if (m_translator.load(rLanguageFile)) { qApp->installTranslator(&m_translator); } } void MainWindow::changeEvent(QEvent *event) { if (event != 0 && event->type() == QEvent::LanguageChange) { ui->retranslateUi(this); } QMainWindow::changeEvent(event); }