MainWindow.cpp 2.5 KB

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