hivemind 1.0.0
Loading...
Searching...
No Matches
menu_bar.cpp
Go to the documentation of this file.
1#include "gui/menu_bar.h"
2
3#include "gui/action.h"
4#include "gui/main_content.h"
5
6#include <QFileDialog>
7
8extern void quitApp(void);
9
10namespace Gui
11{
12
13 MenuBar::MenuBar(QWidget* parent) : QMenuBar(parent)
14 {
15 QMenu* menu = new QMenu(this);
16 menu->setTitle("File");
17
18 Action* newFile = new Action(
19 this, QString::fromUtf8("New"), [] {}, QKeySequence::New);
20 menu->addAction(newFile);
21
22 auto open = new QAction(this);
23 open->setText("Open...");
24 open->setShortcut(QKeySequence::Open);
25 connect(open, &QAction::triggered, [this]() {
26 QString filename = QFileDialog::getOpenFileName(
27 this->window(), "Open scenario", QDir::currentPath(),
28 "Hivemind Scenario Files (*.hmsc)");
29 if (filename != "") {
30 emit this->LoadScenario(filename.toStdString());
31 }
32 });
33 menu->addAction(open);
34
35 auto saveAs = new QAction(this);
36 saveAs->setText("Save as...");
37 saveAs->setShortcut(QKeySequence::SaveAs);
38 QObject::connect(saveAs, &QAction::triggered, [this]() {
39 QString fileName = QFileDialog::getSaveFileName(
40 this->window(), QString::fromUtf8("Save scenario"),
41 QDir::currentPath(),
42 QString::fromUtf8("Hivemind Scenario Files (*.hmsc)"));
43 if (fileName != "") {
44 emit this->SaveScenario(fileName.toStdString());
45 }
46 });
47 menu->addAction(saveAs);
48
49 Action* save = new Action(
50 this, QString::fromUtf8("Save"), [] {}, QKeySequence::Save);
51 menu->addAction(save);
52
53 addAction(menu->menuAction());
54 }
55
56} // namespace Gui
Small wrapper around QAction.
Definition: action.h:13
void LoadScenario(const std::string &filename)
void SaveScenario(const std::string &filename)
MenuBar(QWidget *parent=nullptr)
Constructs the menu bar.
Definition: menu_bar.cpp:13
void quitApp(void)
Definition: action.h:6