Methods AddEmpty, AddEmptyAfter.
--HG-- branch : feature
This commit is contained in:
parent
f6ec3ecb95
commit
b79807a8ef
|
@ -360,8 +360,6 @@ void TMainWindow::AddCustom()
|
||||||
{
|
{
|
||||||
ui->tableWidget->setFocus(Qt::OtherFocusReason);
|
ui->tableWidget->setFocus(Qt::OtherFocusReason);
|
||||||
ui->tableWidget->blockSignals(true);
|
ui->tableWidget->blockSignals(true);
|
||||||
const qint32 currentRow = ui->tableWidget->rowCount();
|
|
||||||
ui->tableWidget->insertRow( currentRow );
|
|
||||||
|
|
||||||
qint32 num = 1;
|
qint32 num = 1;
|
||||||
QString name;
|
QString name;
|
||||||
|
@ -371,7 +369,21 @@ void TMainWindow::AddCustom()
|
||||||
num++;
|
num++;
|
||||||
} while (data->IsUnique(name) == false);
|
} while (data->IsUnique(name) == false);
|
||||||
|
|
||||||
const int id = m->AddEmptyMeasurement(name);
|
qint32 currentRow;
|
||||||
|
|
||||||
|
if (ui->tableWidget->currentRow() == -1)
|
||||||
|
{
|
||||||
|
currentRow = ui->tableWidget->rowCount();
|
||||||
|
ui->tableWidget->insertRow( currentRow );
|
||||||
|
m->AddEmpty(name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
currentRow = ui->tableWidget->currentRow()+1;
|
||||||
|
ui->tableWidget->insertRow( currentRow );
|
||||||
|
QTableWidgetItem *nameField = ui->tableWidget->item(ui->tableWidget->currentRow(), 0);
|
||||||
|
m->AddEmptyAfter(nameField->text(), name);
|
||||||
|
}
|
||||||
|
|
||||||
VMeasurement *meash;
|
VMeasurement *meash;
|
||||||
if (mType == MeasurementsType::Standard)
|
if (mType == MeasurementsType::Standard)
|
||||||
|
@ -380,13 +392,13 @@ void TMainWindow::AddCustom()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
meash = new VMeasurement(data, id, name, 0, "0");
|
meash = new VMeasurement(data, currentRow, name, 0, "0");
|
||||||
}
|
}
|
||||||
data->AddVariable(name, meash);
|
data->AddVariable(name, meash);
|
||||||
|
|
||||||
if (mType == MeasurementsType::Individual)
|
if (mType == MeasurementsType::Individual)
|
||||||
{
|
{
|
||||||
AddCell(name, currentRow, 0, id); // name
|
AddCell(name, currentRow, 0); // name
|
||||||
AddCell("0", currentRow, 1); // calculated value
|
AddCell("0", currentRow, 1); // calculated value
|
||||||
AddCell("0", currentRow, 2); // formula
|
AddCell("0", currentRow, 2); // formula
|
||||||
}
|
}
|
||||||
|
@ -758,20 +770,16 @@ bool TMainWindow::MaybeSave()
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void TMainWindow::AddCell(const QString &text, int row, int column, int id)
|
void TMainWindow::AddCell(const QString &text, int row, int column)
|
||||||
{
|
{
|
||||||
QTableWidgetItem *item = new QTableWidgetItem(text);
|
QTableWidgetItem *item = new QTableWidgetItem(text);
|
||||||
item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||||
|
|
||||||
// set the item non-editable (view only), and non-selectable
|
// set the item non-editable (view only), and non-selectable
|
||||||
Qt::ItemFlags flags = item->flags();
|
Qt::ItemFlags flags = item->flags();
|
||||||
flags &= ~(Qt::ItemIsEditable); // reset/clear the flag
|
flags &= ~(Qt::ItemIsEditable); // reset/clear the flag
|
||||||
item->setFlags(flags);
|
item->setFlags(flags);
|
||||||
|
|
||||||
if (mType == MeasurementsType::Individual && id >= 0)
|
|
||||||
{
|
|
||||||
item->setData(Qt::UserRole, id);
|
|
||||||
}
|
|
||||||
|
|
||||||
ui->tableWidget->setItem(row, column, item);
|
ui->tableWidget->setItem(row, column, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,6 +70,7 @@ private slots:
|
||||||
void SaveBirthDate(const QDate & date);
|
void SaveBirthDate(const QDate & date);
|
||||||
void SaveNotes();
|
void SaveNotes();
|
||||||
void ReadOnly(bool ro);
|
void ReadOnly(bool ro);
|
||||||
|
|
||||||
void AddCustom();
|
void AddCustom();
|
||||||
void AddKnown();
|
void AddKnown();
|
||||||
|
|
||||||
|
@ -105,7 +106,7 @@ private:
|
||||||
|
|
||||||
bool MaybeSave();
|
bool MaybeSave();
|
||||||
|
|
||||||
void AddCell(const QString &text, int row, int column, int id = -1);
|
void AddCell(const QString &text, int row, int column);
|
||||||
|
|
||||||
QComboBox *SetGradationList(const QString &label, const QStringList &list);
|
QComboBox *SetGradationList(const QString &label, const QStringList &list);
|
||||||
void SetDefaultHeight(int value);
|
void SetDefaultHeight(int value);
|
||||||
|
|
|
@ -61,8 +61,7 @@ const QString VMeasurements::SexUnknown = QStringLiteral("unknown");
|
||||||
VMeasurements::VMeasurements(VContainer *data)
|
VMeasurements::VMeasurements(VContainer *data)
|
||||||
:VDomDocument(),
|
:VDomDocument(),
|
||||||
data(data),
|
data(data),
|
||||||
type(MeasurementsType::Unknown),
|
type(MeasurementsType::Unknown)
|
||||||
id(-1)
|
|
||||||
{
|
{
|
||||||
SCASSERT(data != nullptr)
|
SCASSERT(data != nullptr)
|
||||||
}
|
}
|
||||||
|
@ -71,8 +70,7 @@ VMeasurements::VMeasurements(VContainer *data)
|
||||||
VMeasurements::VMeasurements(Unit unit, VContainer *data)
|
VMeasurements::VMeasurements(Unit unit, VContainer *data)
|
||||||
:VDomDocument(),
|
:VDomDocument(),
|
||||||
data(data),
|
data(data),
|
||||||
type(MeasurementsType::Individual),
|
type(MeasurementsType::Individual)
|
||||||
id(-1)
|
|
||||||
{
|
{
|
||||||
SCASSERT(data != nullptr);
|
SCASSERT(data != nullptr);
|
||||||
|
|
||||||
|
@ -83,8 +81,7 @@ VMeasurements::VMeasurements(Unit unit, VContainer *data)
|
||||||
VMeasurements::VMeasurements(Unit unit, int baseSize, int baseHeight, VContainer *data)
|
VMeasurements::VMeasurements(Unit unit, int baseSize, int baseHeight, VContainer *data)
|
||||||
:VDomDocument(),
|
:VDomDocument(),
|
||||||
data(data),
|
data(data),
|
||||||
type(MeasurementsType::Standard),
|
type(MeasurementsType::Standard)
|
||||||
id(-1)
|
|
||||||
{
|
{
|
||||||
SCASSERT(data != nullptr);
|
SCASSERT(data != nullptr);
|
||||||
|
|
||||||
|
@ -97,29 +94,30 @@ VMeasurements::~VMeasurements()
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
int VMeasurements::AddEmptyMeasurement(QString &name)
|
void VMeasurements::AddEmpty(const QString &name)
|
||||||
{
|
{
|
||||||
QDomElement element = createElement(TagMeasurement);
|
const QDomElement element = MakeEmpty(name);
|
||||||
|
|
||||||
SetAttribute(element, AttrName, name);
|
const QDomNodeList list = elementsByTagName(TagBodyMeasurements);
|
||||||
SetAttribute(element, AttrValue, QString("0"));
|
list.at(0).appendChild(element);
|
||||||
|
}
|
||||||
|
|
||||||
if (type == MeasurementsType::Standard)
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VMeasurements::AddEmptyAfter(const QString &after, const QString &name)
|
||||||
|
{
|
||||||
|
const QDomElement element = MakeEmpty(name);
|
||||||
|
const QDomElement sibling = FindM(after);
|
||||||
|
|
||||||
|
const QDomNodeList list = elementsByTagName(TagBodyMeasurements);
|
||||||
|
|
||||||
|
if (sibling.isNull())
|
||||||
{
|
{
|
||||||
SetAttribute(element, AttrSizeIncrease, QString("0"));
|
list.at(0).appendChild(element);
|
||||||
SetAttribute(element, AttrHeightIncrease, QString("0"));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
++id;
|
list.at(0).insertAfter(element, sibling);
|
||||||
SetAttribute(element, AttrId, id);
|
|
||||||
SetAttribute(element, AttrDescription, QString(""));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QDomNodeList list = elementsByTagName(TagBodyMeasurements);
|
|
||||||
list.at(0).appendChild(element);
|
|
||||||
|
|
||||||
return id;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -411,3 +409,45 @@ qreal VMeasurements::UniqueTagAttr(const QString &tag, const QString &attr, qrea
|
||||||
}
|
}
|
||||||
return defVal;
|
return defVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QDomElement VMeasurements::MakeEmpty(const QString &name)
|
||||||
|
{
|
||||||
|
QDomElement element = createElement(TagMeasurement);
|
||||||
|
|
||||||
|
SetAttribute(element, AttrName, name);
|
||||||
|
SetAttribute(element, AttrValue, QString("0"));
|
||||||
|
|
||||||
|
if (type == MeasurementsType::Standard)
|
||||||
|
{
|
||||||
|
SetAttribute(element, AttrSizeIncrease, QString("0"));
|
||||||
|
SetAttribute(element, AttrHeightIncrease, QString("0"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetAttribute(element, AttrDescription, QString(""));
|
||||||
|
}
|
||||||
|
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QDomElement VMeasurements::FindM(const QString &name) const
|
||||||
|
{
|
||||||
|
QDomNodeList list = elementsByTagName(TagMeasurement);
|
||||||
|
|
||||||
|
for (int i=0; i < list.size(); ++i)
|
||||||
|
{
|
||||||
|
const QDomElement domElement = list.at(i).toElement();
|
||||||
|
if (domElement.isNull() == false)
|
||||||
|
{
|
||||||
|
const QString parameter = domElement.attribute(AttrName);
|
||||||
|
if (parameter == name)
|
||||||
|
{
|
||||||
|
return domElement;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return QDomElement();
|
||||||
|
}
|
||||||
|
|
|
@ -43,7 +43,8 @@ public:
|
||||||
VMeasurements(Unit unit, int baseSize, int baseHeight, VContainer *data);
|
VMeasurements(Unit unit, int baseSize, int baseHeight, VContainer *data);
|
||||||
virtual ~VMeasurements() Q_DECL_OVERRIDE;
|
virtual ~VMeasurements() Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
int AddEmptyMeasurement(QString &name);
|
void AddEmpty(const QString &name);
|
||||||
|
void AddEmptyAfter(const QString &after, const QString &name);
|
||||||
|
|
||||||
MeasurementsType Type() const;
|
MeasurementsType Type() const;
|
||||||
Unit MUnit() const;
|
Unit MUnit() const;
|
||||||
|
@ -107,12 +108,14 @@ private:
|
||||||
/** @brief data container with data. */
|
/** @brief data container with data. */
|
||||||
VContainer *data;
|
VContainer *data;
|
||||||
MeasurementsType type;
|
MeasurementsType type;
|
||||||
int id;
|
|
||||||
|
|
||||||
void CreateEmptyStandardFile(Unit unit, int baseSize, int baseHeight);
|
void CreateEmptyStandardFile(Unit unit, int baseSize, int baseHeight);
|
||||||
void CreateEmptyIndividualFile(Unit unit);
|
void CreateEmptyIndividualFile(Unit unit);
|
||||||
|
|
||||||
qreal UniqueTagAttr(const QString &tag, const QString &attr, qreal defValue) const;
|
qreal UniqueTagAttr(const QString &tag, const QString &attr, qreal defValue) const;
|
||||||
|
|
||||||
|
QDomElement MakeEmpty(const QString &name);
|
||||||
|
QDomElement FindM(const QString &name) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VMEASUREMENTS_H
|
#endif // VMEASUREMENTS_H
|
||||||
|
|
Loading…
Reference in New Issue
Block a user