MainWindow.cpp 2.0 KB

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