123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- #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 "LineGraph.h"
- 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: 2px solid #C2C7CB;}");
-
-
- /*CustomLineGraph* random = createCustomWidget(QString("Random"));
- random->generateAndAddRandomLine();
- random->generateAndAddRandomLine();
- random->generateAndAddRandomLine();*/
- /*createCustomWidget();
- createCustomWidget();
- createCustomWidget();*/
- readMainWindowSettings();
- }
- void metavis::openSetting() {
- SettingDialog settingDialog(settings, this);
- /* Blocking operation */
- settingDialog.exec();
- }
- metavis::~metavis()
- {
- writeActualMainWindowSettings();
- }
- void metavis::createChartWidget()
- {
- QDockWidget* dock = new QDockWidget("Customers", this);
- dock->setObjectName("TestWidget");
- dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- LineGraph* widget = new LineGraph(dock);
-
- widget->setMinimumSize(100, 100);
- dock->setBaseSize(300, 300);
- QPalette pal;
- pal.setColor(QPalette::Background, Qt::lightGray);
- dock->setPalette(pal);
- //widget->setPalette(pal);
- dock->setWidget(widget);
- addDockWidget(Qt::RightDockWidgetArea, dock);
- }
- void metavis::createWebEngineWidget()
- {
- QDockWidget* dock = new QDockWidget("Customers", this);
- dock->setObjectName("TestWidget");
- dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- QWebEngineView* view = new QWebEngineView(dock);
- view->load(QUrl("file:///web.html"));
- //view->load(QUrl("http://youtube.de/"));
- view->show();
- view->setMinimumSize(200, 200);
- dock->setBaseSize(300, 300);
- QPalette pal;
- pal.setColor(QPalette::Background, Qt::lightGray);
- dock->setPalette(pal);
- view->setPalette(pal);
- dock->setWidget(view);
- addDockWidget(Qt::LeftDockWidgetArea, dock);
- }
- CustomLineGraph* metavis::createCustomWidget(QString titleString)
- {
- QDockWidget* dock = new QDockWidget(titleString, this);
- dock->setObjectName(titleString);
- dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- CustomLineGraph* bestGraph = new CustomLineGraph(dock, titleString);
- bestGraph->setMinimumSize(200, 200);
- bestGraph->show();
- bestGraph->repaint();
- dock->setBaseSize(300, 300);
- dock->repaint();
- QPalette pal;
- pal.setColor(QPalette::Background, Qt::lightGray);
- //dock->setPalette(pal);
- //widget->setPalette(pal);
- dock->setWidget(bestGraph);
- addDockWidget(Qt::LeftDockWidgetArea, dock);
- return bestGraph;
- }
- 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->endGroup();
- }
- void metavis::readMainWindowSettings()
- {
- settings->beginGroup("MainWindow");
- if (settings->value("maximized", false).toBool()) {
- showMaximized();
- }
- else {
- /* Position and size of the window if not maximized*/
- resize(settings->value("size", QSize(600, 400)).toSize());
- move(settings->value("pos", QPoint(200, 200)).toPoint());
- }
- 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);
- }
- }
|