MainWindow.cpp 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #include <QGuiApplication>
  2. #include <QScreen>
  3. #include <QWidget>
  4. #include <QMenuBar>
  5. #include <QFileDialog>
  6. #include <QDebug>
  7. #include "MainWindow.hpp"
  8. MainWindow::MainWindow ()
  9. {
  10. createActions ();
  11. createMenus ();
  12. setWindowTitle (tr ("DSL - Draw Strength Line"));
  13. QScreen *screen = QGuiApplication::primaryScreen ();
  14. QRect screenGeometry = screen->geometry ();
  15. int screenWidth = screenGeometry.width () - 200;
  16. int screenHeight = screenGeometry.height () - 200;
  17. wa = new WorkArea (screenWidth, screenHeight, this);
  18. setCentralWidget (wa);
  19. setFixedSize (screenWidth, screenHeight);
  20. }
  21. void
  22. MainWindow::open ()
  23. {
  24. QString filename = QFileDialog::getOpenFileName (this,
  25. QObject::
  26. tr ("Open image file"),
  27. QDir::currentPath (),
  28. QObject::
  29. tr
  30. ("Images files (*.jpg *.png);;All files (*.*)"));
  31. wa->loadImage (filename.toStdString ());
  32. setFixedSize (wa->geometry().width(), wa->geometry().height()+wa->geometry().y());
  33. }
  34. void
  35. MainWindow::save ()
  36. {
  37. QString filename = QFileDialog::getSaveFileName (this,
  38. QObject::tr ("Save file"),
  39. QDir::currentPath (),
  40. QObject::
  41. tr
  42. ("JSON file (*.json);;All files (*.*)"));
  43. if(!filename.endsWith(".json"))
  44. filename.append(".json");
  45. wa->saveStrengthLine (filename.toStdString ());
  46. }
  47. void
  48. MainWindow::createActions ()
  49. {
  50. openAct = new QAction (tr ("&Open image"), this);
  51. openAct->setShortcuts (QKeySequence::Open);
  52. connect (openAct, &QAction::triggered, this, &MainWindow::open);
  53. saveAct = new QAction (tr ("&Save"), this);
  54. saveAct->setShortcuts (QKeySequence::Save);
  55. connect (saveAct, &QAction::triggered, this, &MainWindow::save);
  56. exitAct = new QAction (tr ("E&xit"), this);
  57. exitAct->setShortcuts (QKeySequence::Quit);
  58. connect (exitAct, &QAction::triggered, this, &QWidget::close);
  59. }
  60. void
  61. MainWindow::createMenus ()
  62. {
  63. fileMenu = menuBar ()->addMenu (tr ("&File"));
  64. fileMenu->addAction (openAct);
  65. fileMenu->addAction (saveAct);
  66. fileMenu->addSeparator ();
  67. fileMenu->addAction (exitAct);
  68. }