Refactor file opening
[Skavegra.git] / mainwindow.cpp
blob58d37a06444e8d959f52bcb8e3cd23b37e8ec859
1 #include "mainwindow.h"
3 MainWindow::MainWindow(QWidget *parent)
4 : QMainWindow(parent)
6 /* Main window properties */
7 setWindowTitle("Skavegra");
9 /* Menu bar */
10 programMenu = new QMenu("&Program", this);
11 actionQuit = programMenu->addAction("&Quit");
12 actionQuit->setIcon(QIcon::fromTheme("application-exit"));
13 menuBar()->addMenu(programMenu);
15 fileMenu = new QMenu("&File", this);
16 actionOpen = fileMenu->addAction("&Open");
17 actionOpen->setIcon(QIcon::fromTheme("document-open"));
18 actionClose = fileMenu->addAction("&Close");
19 actionClose->setEnabled(false);
20 menuBar()->addMenu(fileMenu);
22 viewMenu = new QMenu("&View", this);
23 actionZoomIn = viewMenu->addAction("Zoom &in");
24 actionZoomIn->setIcon(QIcon::fromTheme("zoom-in"));
25 actionZoomOut = viewMenu->addAction("Zoom &out");
26 actionZoomOut->setIcon(QIcon::fromTheme("zoom-out"));
27 actionZoomReset = viewMenu->addAction("&Reset zoom");
28 actionZoomReset->setIcon(QIcon::fromTheme("zoom-original"));
29 actionZoomBestFit = viewMenu->addAction("&Best fit");
30 actionZoomBestFit->setIcon(QIcon::fromTheme("zoom-fit-best"));
31 menuBar()->addMenu(viewMenu);
33 aboutMenu = new QMenu("&About", this);
34 actionAbout = aboutMenu->addAction("A&bout");
35 actionAbout->setIcon(QIcon::fromTheme("help-about"));
36 menuBar()->addMenu(aboutMenu);
38 /* Error messages and other dialogs */
39 errorFileOpen = new QErrorMessage(this);
41 /* Signals and slots */
42 connect(actionQuit, SIGNAL(triggered()), this, SLOT(close()));
43 connect(actionOpen, SIGNAL(triggered()), this, SLOT(openFileDialog()));
46 void MainWindow::openFile(QFile* file) {
47 if (!file->open(QFile::ReadOnly)) {
48 errorFileOpen->showMessage("Error opening the file.");
49 return;
53 void MainWindow::openFileDialog() {
54 QString fileName;
55 fileName = QFileDialog::getOpenFileName(this, "Load file …", ".", "Scalable Vector Graphics (*.svg)");
56 if (fileName == NULL) {
57 return;
59 QFile file(fileName);
61 openFile(&file);
64 MainWindow::~MainWindow()