OGS
LinearEditDialog Class Reference

Detailed Description

A dialog window for creating linear boundary conditions on polylines.

Definition at line 14 of file LinearEditDialog.h.

#include <LinearEditDialog.h>

Inheritance diagram for LinearEditDialog:
[legend]
Collaboration diagram for LinearEditDialog:
[legend]

Signals

void transmitDisValues (std::vector< std::pair< std::size_t, double > >)

Public Member Functions

 LinearEditDialog (const GeoLib::Polyline &line, const std::vector< std::size_t > &dis_nodes, const std::vector< double > &dis_values, QDialog *parent=nullptr)
 ~LinearEditDialog () override

Private Slots

void on_comboBox_currentIndexChanged (int index)
void accept () override
 Instructions if the OK-Button has been pressed.
void reject () override
 Instructions if the Cancel-Button has been pressed.

Private Member Functions

void setupDialog (const std::vector< std::size_t > &dis_nodes, const std::vector< double > &dis_values)

Private Attributes

const GeoLib::Polyline _line

Constructor & Destructor Documentation

◆ LinearEditDialog()

LinearEditDialog::LinearEditDialog ( const GeoLib::Polyline & line,
const std::vector< std::size_t > & dis_nodes,
const std::vector< double > & dis_values,
QDialog * parent = nullptr )

Definition at line 6 of file LinearEditDialog.cpp.

10 : QDialog(parent), _line(line)
11{
12 setupUi(this);
13 setupDialog(dis_nodes, dis_values);
14}
const GeoLib::Polyline _line
void setupDialog(const std::vector< std::size_t > &dis_nodes, const std::vector< double > &dis_values)

References _line, and setupDialog().

◆ ~LinearEditDialog()

LinearEditDialog::~LinearEditDialog ( )
overridedefault

Member Function Documentation

◆ accept

void LinearEditDialog::accept ( )
overrideprivateslot

Instructions if the OK-Button has been pressed.

Definition at line 55 of file LinearEditDialog.cpp.

56{
57 std::vector<std::pair<std::size_t, double>> linear_values;
58
59 std::size_t nRows = tableWidget->rowCount();
60 for (std::size_t i = 0; i < nRows; i++)
61 {
62 QString row_text(tableWidget->item(i, 0)->text());
63 if (row_text.length() > 0)
64 {
65 linear_values.emplace_back(i, row_text.toDouble());
66 }
67 }
68
69 emit transmitDisValues(linear_values);
70 this->done(QDialog::Accepted);
71}
void transmitDisValues(std::vector< std::pair< std::size_t, double > >)

References transmitDisValues().

◆ on_comboBox_currentIndexChanged

void LinearEditDialog::on_comboBox_currentIndexChanged ( int index)
privateslot

Definition at line 42 of file LinearEditDialog.cpp.

43{
44 if (index > 0) // elevation
45 {
46 std::size_t nRows = tableWidget->rowCount();
47 for (std::size_t i = 0; i < nRows; i++)
48 {
49 tableWidget->item(i, 0)->setText(
50 QString::number((*_line.getPoint(i))[2]));
51 }
52 }
53}

References _line.

◆ reject

void LinearEditDialog::reject ( )
overrideprivateslot

Instructions if the Cancel-Button has been pressed.

Definition at line 73 of file LinearEditDialog.cpp.

74{
75 this->done(QDialog::Rejected);
76}

◆ setupDialog()

void LinearEditDialog::setupDialog ( const std::vector< std::size_t > & dis_nodes,
const std::vector< double > & dis_values )
private

Definition at line 16 of file LinearEditDialog.cpp.

18{
19 std::size_t nPoints(_line.getNumberOfPoints());
20 this->tableWidget->setRowCount(nPoints);
21 QList<QString> indexlist;
22
23 for (std::size_t i = 0; i < nPoints; i++)
24 {
25 indexlist.push_back(QString::number(i));
26 QTableWidgetItem* newItem = new QTableWidgetItem("");
27 tableWidget->setItem(i, 0, newItem);
28 }
29 QStringList vHeaders(indexlist);
30 tableWidget->setVerticalHeaderLabels(vHeaders);
31
32 std::size_t nValues(dis_values.size());
33 for (std::size_t i = 0; i < nValues; i++)
34 {
35 tableWidget->item(static_cast<int>(dis_nodes[i]), 0)
36 ->setText(QString::number(dis_values[i]));
37 }
38}

References _line.

Referenced by LinearEditDialog().

◆ transmitDisValues

void LinearEditDialog::transmitDisValues ( std::vector< std::pair< std::size_t, double > > )
signal

Referenced by accept().

Member Data Documentation

◆ _line

const GeoLib::Polyline LinearEditDialog::_line
private

The documentation for this class was generated from the following files: