123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- #include "pch.h"
- #include "metavis.h"
- #include "SettingDialog.h"
- #include <QStandardPaths>
- #include <QDockwidget>
- #include <QLabel>
- #include <QLayout>
- #include <QDebug>
- #include <QStyleFactory>
- #include <QtWebChannel/QtWebChannel>
- #include <QtWebEngineWidgets/QWebEngineView>
- #include <QFileDialog>
- #include <QDir>
- #include <map>
- #include <boost/multiprecision/cpp_int.hpp>
- #include <QDesktopWidget>
- metavis::metavis(QWidget* parent)
- : QMainWindow(parent), bestGraph(createCustomWidget("Best vs Avg")), particleGraph(createCustomWidget("Particle")), minMaxGraph(createCustomWidget("MinMaxGraph"))
- {
- ui.setupUi(this);
- /* create settings object*/
- settings = new QSettings(QSettings::IniFormat, QSettings::UserScope, "TK", "metavis", this);
- setStyleSheet(styleSheet() + "QMainWindow::separator {background: rgb(200, 200, 200);width: 1px;height: 1px;}");
- setStyleSheet(styleSheet() + "QTabBar::tab:selected {color: rgb(0, 122, 204);}");
- setStyleSheet(styleSheet() + "QTabWidget::pane {border-top: 0px solid #C2C7CB;margin: -9px -9px -13px -9px;}");
- readMainWindowSettings();
-
- qDebug() << "Test Boost";
- boost::multiprecision::cpp_int bla = 1;
- createBitField();
- }
- void metavis::openSetting() {
- SettingDialog settingDialog(settings, this);
- /* Blocking operation */
- settingDialog.exec();
- }
- metavis::~metavis()
- {
- writeActualMainWindowSettings();
- }
- GraphView* metavis::createCustomWidget(QString titleString)
- {
- QDockWidget* dock = new QDockWidget(titleString, this);
- dock->setObjectName(titleString);
- dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- GraphView* graph = new GraphView(dock, titleString, Bound(10, 20, 40.0, 50.0));
- graph->setUseFixedBound(true);
- graph->setMinimumSize(200, 200);
- graph->show();
- graph->repaint();
- dock->setWidget(graph);
- addDockWidget(Qt::LeftDockWidgetArea, dock);
- return graph;
- }
- void metavis::createBitField()
- {
- bitField = new GraphView(this, "BitField", Bound(0.0, 1.0, 0.0, 1600.0));
- bitField->setUseFixedBound(true);
- bitField->setMinimumSize(200, 200);
- //this->setCentralWidget(bitField);
- QHBoxLayout* layout = new QHBoxLayout;
- layout->addWidget(bitField);
- ui.BitFieldWidget->setLayout(layout);
- }
- void metavis::writeActualMainWindowSettings()
- {
- settings->beginGroup("MainWindow");
- settings->setValue("maximized", isMaximized());
- if (!isMaximized()) {
- /* position and size of the window if not maximized */
- settings->setValue("pos", pos());
- settings->setValue("size", size());
- settings->setValue("screenCount", QApplication::desktop()->screenCount());
- }
- settings->endGroup();
- }
- void metavis::readMainWindowSettings()
- {
- settings->beginGroup("MainWindow");
- if (QApplication::desktop()->screenCount() == settings->value("screenCount", 1)) {
- //Only when same screeenCount move the window;
- move(settings->value("pos", QPoint(200, 200)).toPoint());
- }
- resize(settings->value("size", QSize(600, 400)).toSize());
- if (settings->value("maximized", false).toBool()) {
- showMaximized();
- }
- settings->endGroup();
- }
- void metavis::openFile()
- {
- qDebug() << "openFile";
- QString fileName = QFileDialog::getOpenFileName(this, tr("Open LogFile"), QStandardPaths::displayName(QStandardPaths::DesktopLocation), tr("Metavis Logfile (*.metalog)"));
- if (fileName == ("")) {
- qDebug() << "No file selected";
- return;
- }
- qDebug() << "file:" << fileName;
- runVec.push_back(RunData(fileName.toStdString()));
- bestGraph->addLine(runVec[0].bestSolutionPerIteration, QColor(255, 0, 0));
- bestGraph->addLine(runVec[0].averageSolutionPerItertion, QColor(0, 0, 255));
-
- minMaxGraph->addLine(runVec[0].minSolutionPerItertion, QColor(255, 0, 0));
- minMaxGraph->addLine(runVec[0].maxSolutionPerItertion, QColor(0, 0, 255));
- minMaxGraph->addDots(runVec[0].dotsForDistribution, QColor(255, 165, 0, 100));
- for (auto iter = runVec[0].particleMap.begin(); iter != runVec[0].particleMap.end(); iter++) {
- particleGraph->addLine(iter->second);
- }
- //Test
- bitField->addDots(runVec[0].testForBitField, QColor(255, 165, 0, 100));
- }
|