-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmainwindow.cc
83 lines (69 loc) · 2.48 KB
/
mainwindow.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include "mainwindow.h"
#include "query.h"
#include "ping.h"
#include "resolvers.h"
#include "survey.h"
#include <QTabWidget>
#include <QSettings>
#include <QMenuBar>
#include <QMenu>
#include <QFileDialog>
#include <QMessageBox>
#include <QApplication>
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
resolvers = new Resolvers(this);
tabs = new QTabWidget;
setCentralWidget(tabs);
queryTab = new Query(resolvers);
tabs->addTab(queryTab, tr("Query"));
pingTab = new Ping(resolvers);
tabs->addTab(pingTab, tr("Performance"));
surveyTab = new Survey;
tabs->addTab(surveyTab, tr("Survey"));
auto fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(tr("Load Resolvers..."), [=](){
QString filename = QFileDialog::getOpenFileName(this, tr("Load Resolvers"), QString(), tr("JSON Files (*.json)"));
if (!filename.isEmpty()) {
QString err = resolvers->loadFile(filename);
if (!err.isEmpty()) {
QMessageBox::warning(this, tr("Failed to load resolvers"), err);
return;
}
}
});
fileMenu->addAction(tr("Save Resolvers..."), [=](){
QString filename = QFileDialog::getSaveFileName(this, tr("Save Resolvers"), QString("resolvers.json"));
if (!filename.isEmpty()) {
QString err = resolvers->saveFile(filename);
if (!err.isEmpty()) {
QMessageBox::warning(this, tr("Failed to load resolvers"), err);
}
}
});
fileMenu->addAction(tr("Load Survey..."), surveyTab, &Survey::load);
fileMenu->addAction(tr("Save Survey..."), surveyTab, &Survey::save);
QAction *exitAct = fileMenu->addAction(tr("E&xit"), qApp, &QApplication::closeAllWindows);
exitAct->setShortcuts(QKeySequence::Quit);
exitAct->setStatusTip(tr("Exit the application"));
fileMenu->addAction(exitAct);
QSettings s;
s.beginGroup("MainWindow");
resize(s.value("size", QSize(400, 400)).toSize());
move(s.value("pos", QPoint(200, 200)).toPoint());
tabs->setCurrentIndex(s.value("currentTab", 0).toInt());
s.endGroup();
}
void MainWindow::closeEvent(QCloseEvent * /*event*/) {
QSettings s;
s.beginGroup("MainWindow");
s.setValue("size", size());
s.setValue("pos", pos());
s.setValue("currentTab", tabs->currentIndex());
s.endGroup();
queryTab->saveState();
pingTab->saveState();
}
void MainWindow::addResolver() {
}
void MainWindow::deleteResolver(int idx) {
}