SedSat3 1.1.6
Sediment Source Apportionment Tool - Advanced statistical methods for environmental pollution research
Loading...
Searching...
No Matches
resultswindow.cpp
Go to the documentation of this file.
1#include "resultswindow.h"
2#include "ui_resultswindow.h"
3#include "QTextBrowser"
4#include "QDebug"
5#include "QPushButton"
6#include "generalchart.h"
7#include "resultitem.h"
8#include "resulttableviewer.h"
9
10#include <QFileDialog>
11
12
14 QDialog(parent),
15 ui(new Ui::ResultsWindow)
16{
17 ui->setupUi(this);
18
19}
20
22{
23 delete ui;
24}
25
26//void ResultsWindow::AppendText(const string &text)
27//{
28// ui->textBrowser->append(QString::fromStdString(text));
29//}
30
32{
33
35 QTextBrowser *textBrowser = new QTextBrowser(ui->scrollAreaWidgetContents);
36 textBrowser->setObjectName(QString::number(result_item_counter)+":"+QString::fromStdString(resultitem.Name()));
37 //textBrowser->setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Maximum);
38 textBrowser->setTextColor(Qt::red);
39 textBrowser->append(QString::fromStdString(resultitem.Name())+":");
40 textBrowser->setTextColor(Qt::black);
41 textBrowser->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
42 QString str;
43 if (resultitem.ShowAsString())
44 str = QString::fromStdString(resultitem.Result()->ToString());
45 else
46 {
47 if (resultitem.ShowGraph() && resultitem.ShowTable())
48 str = QString::fromStdString("Push the graph or table button");
49 else if (resultitem.ShowGraph())
50 str = QString::fromStdString("Push the graph button");
51 else if (resultitem.ShowTable())
52 str = QString::fromStdString("Push the table button");
53
54 }
55
56 textBrowser->append(str);
57 int count = 0;
58 for(int i = 0;i < str.length();i++)
59 if(str.at(i).cell() == '\n')
60 count++;
61 textBrowser->setMaximumHeight(textBrowser->fontMetrics().height() * (count+3));
62 textBrowser->setMinimumHeight(textBrowser->fontMetrics().height() * (count+2));
63 ui->gridLayout->setAlignment(Qt::AlignTop);
64 ui->gridLayout->addWidget(textBrowser,ui->gridLayout->rowCount(),0);
65 if (resultitem.ShowGraph())
66 {
67 QPushButton *pushButtonGraph = new QPushButton(this);
68 QIcon iconGraph = QIcon(qApp->applicationDirPath()+"/../../resources/Icons/Graph.png");
69 pushButtonGraph->setIcon(iconGraph);
70 //pushButton->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Maximum);
71 pushButtonGraph->setMaximumWidth(20);
72
73 if (QString::fromStdString(resultitem.Name()).contains(":"))
74 pushButtonGraph->setObjectName(QString::fromStdString(resultitem.Name()));
75 else
76 pushButtonGraph->setObjectName(QString::number(result_item_counter) + ":" + QString::fromStdString(resultitem.Name()));
77
78 ui->gridLayout->addWidget(pushButtonGraph,ui->gridLayout->rowCount()-1,1,1,1,Qt::AlignTop);
79 connect(pushButtonGraph,SIGNAL(clicked()),this,SLOT(on_result_graph_clicked()));
80 }
81
82 QPushButton *pushButtonExport = new QPushButton(this);
83 QIcon iconExport = QIcon(qApp->applicationDirPath()+"/../../resources/Icons/export.png");
84 pushButtonExport->setIcon(iconExport);
85 //pushButton->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Maximum);
86 pushButtonExport->setMaximumWidth(20);
87 pushButtonExport->setObjectName(QString::number(result_item_counter)+":"+QString::fromStdString(resultitem.Name()));
88 ui->gridLayout->addWidget(pushButtonExport,ui->gridLayout->rowCount()-1,2,1,1,Qt::AlignTop);
89 connect(pushButtonExport,SIGNAL(clicked()),this,SLOT(on_result_export_clicked()));
90
91
92 if (resultitem.ShowTable())
93 { QPushButton *pushButtonTable = new QPushButton(this);
94 QIcon iconTable = QIcon(qApp->applicationDirPath()+"/../../resources/Icons/table.png");
95 pushButtonTable->setIcon(iconTable);
96 //pushButton->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Maximum);
97 pushButtonTable->setMaximumWidth(20);
98 if (QString::fromStdString(resultitem.Name()).contains(":"))
99 pushButtonTable->setObjectName(QString::fromStdString(resultitem.Name()));
100 else
101 pushButtonTable->setObjectName(QString::number(result_item_counter) + ":" + QString::fromStdString(resultitem.Name()));
102 ui->gridLayout->addWidget(pushButtonTable,ui->gridLayout->rowCount()-1,3,1,1,Qt::AlignTop);
103 connect(pushButtonTable,SIGNAL(clicked()),this,SLOT(on_result_table_clicked()));
104 }
105
106}
107
108
110{
111 qDebug()<<sender()->objectName();
112 GeneralChart *resultgraph = new GeneralChart(this);
113 resultgraph->setWindowFlag(Qt::WindowMinMaxButtonsHint);
114 resultgraph->setWindowTitle(QString::fromStdString(results->operator[](sender()->objectName().toStdString()).Name()));
115 resultgraph->Plot(&results->operator[](sender()->objectName().toStdString()));
116 resultgraph->show();
117}
118
119
121{
122 qDebug()<<sender()->objectName();
123 ResultTableViewer *tableviewer = new ResultTableViewer(this);
124 tableviewer->setWindowFlag(Qt::WindowMinMaxButtonsHint);
125 QTableWidget *tablewidget = results->operator[](sender()->objectName().toStdString()).Result()->ToTable();
126 if (results->operator[](sender()->objectName().toStdString()).TableTitle() == "")
127 tableviewer->setWindowTitle(QString::fromStdString(results->operator[](sender()->objectName().toStdString()).Name()));
128 else
129 tableviewer->setWindowTitle(QString::fromStdString(results->operator[](sender()->objectName().toStdString()).TableTitle()));
130 tableviewer->SetTable(tablewidget);
131 tableviewer->show();
132}
133
135{
136 qDebug()<<sender()->objectName();
137 QString fileName = QFileDialog::getSaveFileName(this,
138 tr("Save"), "",
139 tr("text file (*.txt)"));
140
141 if (!fileName.contains("."))
142 fileName+=".txt";
143 QFile file(fileName);
144
145 file.open(QIODevice::WriteOnly | QIODevice::Text);
146 if (!file.isOpen())
147 return;
148
149 results->operator[](sender()->objectName().toStdString()).Result()->writetofile(&file);
150
151 file.close();
152
153}
bool Plot(ResultItem *res)
virtual string ToString() const
Convert object to string representation.
Definition interface.cpp:22
bool ShowGraph() const
Definition resultitem.h:81
string Name() const
Definition resultitem.h:22
bool ShowAsString() const
Definition resultitem.h:30
bool ShowTable() const
Definition resultitem.h:79
Interface * Result() const
Definition resultitem.h:17
void SetTable(QTableWidget *tablewidget)
Results * results
void AppendResult(const ResultItem &resultitem)
void on_result_graph_clicked()
Ui::ResultsWindow * ui
ResultsWindow(QWidget *parent=nullptr)
void on_result_export_clicked()
void on_result_table_clicked()