Vera++.
--HG-- branch : XML Editor
This commit is contained in:
parent
1489dc6a1c
commit
b28bd29092
|
@ -30,7 +30,8 @@
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VIncrement::VIncrement()
|
VIncrement::VIncrement()
|
||||||
:id(0), base(0), ksize(50.0), kheight(176.0), description(QString()){}
|
:id(0), base(0), ksize(50.0), kheight(176.0), description(QString())
|
||||||
|
{}
|
||||||
|
|
||||||
VIncrement::VIncrement(quint32 id, qreal base, qreal ksize, qreal kheight, QString description)
|
VIncrement::VIncrement(quint32 id, qreal base, qreal ksize, qreal kheight, QString description)
|
||||||
:id(id), base(base), ksize(ksize), kheight(kheight), description(description)
|
:id(id), base(base), ksize(ksize), kheight(kheight), description(description)
|
||||||
|
|
|
@ -30,6 +30,10 @@
|
||||||
#include "ui_dialogaboutapp.h"
|
#include "ui_dialogaboutapp.h"
|
||||||
#include "../../version.h"
|
#include "../../version.h"
|
||||||
|
|
||||||
|
#include <QDesktopServices>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
DialogAboutApp::DialogAboutApp(QWidget *parent) :
|
DialogAboutApp::DialogAboutApp(QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::DialogAboutApp)
|
ui(new Ui::DialogAboutApp)
|
||||||
|
@ -50,16 +54,18 @@ DialogAboutApp::DialogAboutApp(QWidget *parent) :
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
DialogAboutApp::~DialogAboutApp()
|
DialogAboutApp::~DialogAboutApp()
|
||||||
{
|
{
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogAboutApp::webButtonClicked() {
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
if ( ! QDesktopServices::openUrl(QUrl(VER_COMPANYDOMAIN_STR))) {
|
void DialogAboutApp::webButtonClicked()
|
||||||
QMessageBox::warning(this,
|
{
|
||||||
tr("Warning"),
|
if ( QDesktopServices::openUrl(QUrl(VER_COMPANYDOMAIN_STR)) == false)
|
||||||
tr("Cannot open your default browser"));
|
{
|
||||||
|
QMessageBox::warning(this, tr("Warning"), tr("Cannot open your default browser"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,8 +31,9 @@
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui
|
||||||
class DialogAboutApp;
|
{
|
||||||
|
class DialogAboutApp;
|
||||||
}
|
}
|
||||||
|
|
||||||
class DialogAboutApp : public QDialog
|
class DialogAboutApp : public QDialog
|
||||||
|
|
|
@ -26,24 +26,24 @@
|
||||||
**
|
**
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "dialogpatternxmledit.h"
|
#include "dialogpatternxmledit.h"
|
||||||
#include "ui_dialogpatternxmledit.h"
|
#include "ui_dialogpatternxmledit.h"
|
||||||
|
|
||||||
|
|
||||||
const short int DialogPatternXmlEdit::ChangeTypeDelete=1;
|
const short int DialogPatternXmlEdit::ChangeTypeDelete=1;
|
||||||
const short int DialogPatternXmlEdit::ChangeTypeAdd=2;
|
const short int DialogPatternXmlEdit::ChangeTypeAdd=2;
|
||||||
const short int DialogPatternXmlEdit::ChangeTypeModify=3;
|
const short int DialogPatternXmlEdit::ChangeTypeModify=3;
|
||||||
|
|
||||||
DialogPatternXmlEdit::DialogPatternXmlEdit(QWidget *parent,VPattern *xmldoc):QDialog(parent),
|
|
||||||
ui(new Ui::DialogPatternXmlEdit)
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
DialogPatternXmlEdit::DialogPatternXmlEdit(QWidget *parent, VPattern *xmldoc)
|
||||||
|
:QDialog(parent), ui(new Ui::DialogPatternXmlEdit)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
xmlmodel = new VXMLTreeView();
|
xmlmodel = new VXMLTreeView();
|
||||||
currentNodeEdited=nullptr;
|
currentNodeEdited=nullptr;
|
||||||
treeChange=false;
|
treeChange=false;
|
||||||
this->changeStackRoot = this->changeStackLast =nullptr ;
|
this->changeStackRoot = this->changeStackLast = nullptr;
|
||||||
|
|
||||||
doc=xmldoc;
|
doc=xmldoc;
|
||||||
root = doc->documentElement();
|
root = doc->documentElement();
|
||||||
|
@ -59,37 +59,40 @@ DialogPatternXmlEdit::DialogPatternXmlEdit(QWidget *parent,VPattern *xmldoc):QDi
|
||||||
qint16 drawnum=xmldoc->elementsByTagName("draw").size();
|
qint16 drawnum=xmldoc->elementsByTagName("draw").size();
|
||||||
rootBases = new VXMLTreeElement*[drawnum+1];
|
rootBases = new VXMLTreeElement*[drawnum+1];
|
||||||
rootBasesNum=1;
|
rootBasesNum=1;
|
||||||
rootBases[0]=new VXMLTreeElement("Valentina",VXMLTreeElement::TypeRoot,root,false);
|
rootBases[0]=new VXMLTreeElement("Valentina", VXMLTreeElement::TypeRoot, root, false);
|
||||||
// TODO : OOM exception.
|
// TODO : OOM exception.
|
||||||
|
|
||||||
|
|
||||||
VXMLTreeElement* standard_base = new VXMLTreeElement("Valentina",VXMLTreeElement::TypeRoot,root,false);
|
VXMLTreeElement* standard_base = new VXMLTreeElement("Valentina", VXMLTreeElement::TypeRoot, root, false);
|
||||||
ui->comboBox_Base_Selection->addItem(tr("All drawings"),QVariant(0));
|
ui->comboBox_Base_Selection->addItem(tr("All drawings"), QVariant(0));
|
||||||
|
|
||||||
//rootBases[0]=(QDomNode) doc->DocumentNode;
|
//rootBases[0]=(QDomNode) doc->DocumentNode;
|
||||||
rootNode->appendRow(standard_base);
|
rootNode->appendRow(standard_base);
|
||||||
|
|
||||||
ReadNodes(root,standard_base,xmlmodel,false);
|
ReadNodes(root, standard_base, xmlmodel, false);
|
||||||
|
|
||||||
ui->treeView_main->setModel(xmlmodel);
|
ui->treeView_main->setModel(xmlmodel);
|
||||||
|
|
||||||
//ui->treeView_main->expandAll();
|
//ui->treeView_main->expandAll();
|
||||||
|
|
||||||
// connectors
|
// connectors
|
||||||
connect(ui->comboBox_Base_Selection,static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
connect(ui->comboBox_Base_Selection, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
||||||
this,&DialogPatternXmlEdit::BaseSelectionChanged);
|
this, &DialogPatternXmlEdit::BaseSelectionChanged);
|
||||||
connect(ui->treeView_main,&QTreeView::clicked,this,&DialogPatternXmlEdit::ElementClicked);
|
connect(ui->treeView_main, &QTreeView::clicked, this, &DialogPatternXmlEdit::ElementClicked);
|
||||||
connect(ui->lineEdit_Name,&QLineEdit::textEdited,this,&DialogPatternXmlEdit::NameTextEdited);
|
connect(ui->lineEdit_Name, &QLineEdit::textEdited, this, &DialogPatternXmlEdit::NameTextEdited);
|
||||||
connect(ui->lineEdit_Value,&QLineEdit::textEdited,this,&DialogPatternXmlEdit::ValueTextEdited);
|
connect(ui->lineEdit_Value, &QLineEdit::textEdited, this, &DialogPatternXmlEdit::ValueTextEdited);
|
||||||
connect(ui->pushButton_Set_Values,&QPushButton::clicked,this,&DialogPatternXmlEdit::ButtonSetClicked);
|
connect(ui->pushButton_Set_Values, &QPushButton::clicked, this, &DialogPatternXmlEdit::ButtonSetClicked);
|
||||||
connect(ui->pushButton_Cancel_Values,&QPushButton::clicked,this,&DialogPatternXmlEdit::ButtonCancelClicked);
|
connect(ui->pushButton_Cancel_Values, &QPushButton::clicked, this, &DialogPatternXmlEdit::ButtonCancelClicked);
|
||||||
connect(ui->pushButton_Remove_attribute,&QPushButton::clicked,
|
connect(ui->pushButton_Remove_attribute, &QPushButton::clicked,
|
||||||
this,&DialogPatternXmlEdit::ButtonDeleteAttributeClicked);
|
this, &DialogPatternXmlEdit::ButtonDeleteAttributeClicked);
|
||||||
connect(ui->pushButton_Add_son,&QPushButton::clicked,this,&DialogPatternXmlEdit::ButtonAddSonClicked);
|
connect(ui->pushButton_Add_son, &QPushButton::clicked, this, &DialogPatternXmlEdit::ButtonAddSonClicked);
|
||||||
connect(ui->pushButton_Add_attribute,&QPushButton::clicked,this,&DialogPatternXmlEdit::ButtonAddAttributeClicked);
|
connect(ui->pushButton_Add_attribute, &QPushButton::clicked, this,
|
||||||
connect(ui->pushButton_Apply_Changes,&QPushButton::clicked,this,&DialogPatternXmlEdit::ButtonApplyChangesClicked);
|
&DialogPatternXmlEdit::ButtonAddAttributeClicked);
|
||||||
|
connect(ui->pushButton_Apply_Changes, &QPushButton::clicked, this,
|
||||||
|
&DialogPatternXmlEdit::ButtonApplyChangesClicked);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
DialogPatternXmlEdit::ChangesStackElement* DialogPatternXmlEdit::CreateStackElement(short int typechange)
|
DialogPatternXmlEdit::ChangesStackElement* DialogPatternXmlEdit::CreateStackElement(short int typechange)
|
||||||
{
|
{
|
||||||
ChangesStackElement* tmp;
|
ChangesStackElement* tmp;
|
||||||
|
@ -113,6 +116,7 @@ DialogPatternXmlEdit::ChangesStackElement* DialogPatternXmlEdit::CreateStackElem
|
||||||
return changeStackLast;
|
return changeStackLast;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::ButtonApplyChangesClicked()
|
void DialogPatternXmlEdit::ButtonApplyChangesClicked()
|
||||||
{
|
{
|
||||||
QString Changes="";
|
QString Changes="";
|
||||||
|
@ -155,7 +159,7 @@ void DialogPatternXmlEdit::ButtonApplyChangesClicked()
|
||||||
Changes += (currentChange->element->gettreeNodeValueSet()) ?
|
Changes += (currentChange->element->gettreeNodeValueSet()) ?
|
||||||
currentChange->element->gettreeNodeValue(): QString(tr("<no value>"));
|
currentChange->element->gettreeNodeValue(): QString(tr("<no value>"));
|
||||||
Changes += "\n";
|
Changes += "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
currentChange=currentChange->next;
|
currentChange=currentChange->next;
|
||||||
|
@ -165,6 +169,7 @@ void DialogPatternXmlEdit::ButtonApplyChangesClicked()
|
||||||
// TODO : clear stack and apply
|
// TODO : clear stack and apply
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::ButtonCancelClicked()
|
void DialogPatternXmlEdit::ButtonCancelClicked()
|
||||||
{
|
{
|
||||||
this->ClearEditData();
|
this->ClearEditData();
|
||||||
|
@ -185,6 +190,7 @@ void DialogPatternXmlEdit::ButtonCancelClicked()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::RemoveChangeStackElement(ChangesStackElement* elmt)
|
void DialogPatternXmlEdit::RemoveChangeStackElement(ChangesStackElement* elmt)
|
||||||
{
|
{
|
||||||
ChangesStackElement* index = this->changeStackRoot;
|
ChangesStackElement* index = this->changeStackRoot;
|
||||||
|
@ -207,7 +213,8 @@ void DialogPatternXmlEdit::RemoveChangeStackElement(ChangesStackElement* elmt)
|
||||||
delete elmt;
|
delete elmt;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
while (index->next!=nullptr) {
|
while (index->next!=nullptr)
|
||||||
|
{
|
||||||
if (index->next == elmt)
|
if (index->next == elmt)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
|
@ -235,6 +242,7 @@ void DialogPatternXmlEdit::RemoveChangeStackElement(ChangesStackElement* elmt)
|
||||||
delete elmt;
|
delete elmt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::ButtonDeleteAttributeClicked()
|
void DialogPatternXmlEdit::ButtonDeleteAttributeClicked()
|
||||||
{
|
{
|
||||||
ChangesStackElement* newstack;
|
ChangesStackElement* newstack;
|
||||||
|
@ -262,6 +270,7 @@ void DialogPatternXmlEdit::ButtonDeleteAttributeClicked()
|
||||||
this->ClearEditData();
|
this->ClearEditData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::ButtonAddSonClicked()
|
void DialogPatternXmlEdit::ButtonAddSonClicked()
|
||||||
{
|
{
|
||||||
ChangesStackElement* newstack;
|
ChangesStackElement* newstack;
|
||||||
|
@ -295,12 +304,9 @@ void DialogPatternXmlEdit::ButtonAddSonClicked()
|
||||||
|
|
||||||
// create element tree but do not add attribute in DOM (will be done in apply).
|
// create element tree but do not add attribute in DOM (will be done in apply).
|
||||||
QDomNode empty;
|
QDomNode empty;
|
||||||
VXMLTreeElement* tElement = new VXMLTreeElement(
|
VXMLTreeElement* tElement = new VXMLTreeElement(name, VXMLTreeElement::TypeNode, empty, true);
|
||||||
name,
|
|
||||||
VXMLTreeElement::TypeNode,
|
|
||||||
empty,true);
|
|
||||||
|
|
||||||
if (!value.isEmpty())
|
if (value.isEmpty() == false)
|
||||||
{
|
{
|
||||||
tElement->setTreeNodeValue(value);
|
tElement->setTreeNodeValue(value);
|
||||||
}
|
}
|
||||||
|
@ -323,6 +329,7 @@ void DialogPatternXmlEdit::ButtonAddSonClicked()
|
||||||
ui->pushButton_Apply_Changes->setEnabled(true);
|
ui->pushButton_Apply_Changes->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::ButtonAddAttributeClicked()
|
void DialogPatternXmlEdit::ButtonAddAttributeClicked()
|
||||||
{
|
{
|
||||||
ChangesStackElement* newstack;
|
ChangesStackElement* newstack;
|
||||||
|
@ -355,10 +362,7 @@ void DialogPatternXmlEdit::ButtonAddAttributeClicked()
|
||||||
}
|
}
|
||||||
|
|
||||||
// create element tree but do not add attribute in DOM (will be done in apply).
|
// create element tree but do not add attribute in DOM (will be done in apply).
|
||||||
VXMLTreeElement* tElement = new VXMLTreeElement(
|
VXMLTreeElement* tElement = new VXMLTreeElement(name, VXMLTreeElement::TypeAttr, empty, true);
|
||||||
name,
|
|
||||||
VXMLTreeElement::TypeAttr,
|
|
||||||
empty,true);
|
|
||||||
|
|
||||||
tElement->setTreeNodeValue(value);
|
tElement->setTreeNodeValue(value);
|
||||||
currentNodeEdited->appendRow(tElement);
|
currentNodeEdited->appendRow(tElement);
|
||||||
|
@ -377,16 +381,20 @@ void DialogPatternXmlEdit::ButtonAddAttributeClicked()
|
||||||
ui->pushButton_Apply_Changes->setEnabled(true);
|
ui->pushButton_Apply_Changes->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::ButtonSetClicked()
|
void DialogPatternXmlEdit::ButtonSetClicked()
|
||||||
{
|
{
|
||||||
QString name,value;
|
QString name, value;
|
||||||
ChangesStackElement* newstack;
|
ChangesStackElement* newstack;
|
||||||
|
|
||||||
// TODO : check if a change has already been done
|
// TODO : check if a change has already been done
|
||||||
if (this->currentNodeEdited == nullptr) return;
|
if (this->currentNodeEdited == nullptr)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
name=ui->lineEdit_Name->text();
|
name=ui->lineEdit_Name->text();
|
||||||
value=ui->lineEdit_Value->text();
|
value=ui->lineEdit_Value->text();
|
||||||
bool nameedit,valueedit;
|
bool nameedit, valueedit;
|
||||||
|
|
||||||
nameedit = (name != currentNodeEdited->gettreeNodeName()) ? true : false;
|
nameedit = (name != currentNodeEdited->gettreeNodeName()) ? true : false;
|
||||||
valueedit= (value != currentNodeEdited->gettreeNodeValue()) ? true : false;
|
valueedit= (value != currentNodeEdited->gettreeNodeValue()) ? true : false;
|
||||||
|
@ -418,6 +426,7 @@ void DialogPatternXmlEdit::ButtonSetClicked()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::NameTextEdited(QString newtext)
|
void DialogPatternXmlEdit::NameTextEdited(QString newtext)
|
||||||
{
|
{
|
||||||
//QMessageBox::information(this, "nameTextEdited", QString("%1").arg(newtext));
|
//QMessageBox::information(this, "nameTextEdited", QString("%1").arg(newtext));
|
||||||
|
@ -425,6 +434,7 @@ void DialogPatternXmlEdit::NameTextEdited(QString newtext)
|
||||||
ui->pushButton_Cancel_Values->setEnabled(true);
|
ui->pushButton_Cancel_Values->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::ValueTextEdited(QString newtext)
|
void DialogPatternXmlEdit::ValueTextEdited(QString newtext)
|
||||||
{
|
{
|
||||||
//QMessageBox::information(this, "valueTextEdited", QString("%1").arg(newtext));
|
//QMessageBox::information(this, "valueTextEdited", QString("%1").arg(newtext));
|
||||||
|
@ -432,6 +442,7 @@ void DialogPatternXmlEdit::ValueTextEdited(QString newtext)
|
||||||
ui->pushButton_Cancel_Values->setEnabled(true);
|
ui->pushButton_Cancel_Values->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::ClearEditData()
|
void DialogPatternXmlEdit::ClearEditData()
|
||||||
{
|
{
|
||||||
ui->lineEdit_Name->setText("");
|
ui->lineEdit_Name->setText("");
|
||||||
|
@ -447,6 +458,7 @@ void DialogPatternXmlEdit::ClearEditData()
|
||||||
ui->pushButton_Cancel_Values->setEnabled(false);
|
ui->pushButton_Cancel_Values->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::ClearStack()
|
void DialogPatternXmlEdit::ClearStack()
|
||||||
{
|
{
|
||||||
ChangesStackElement * tmp;
|
ChangesStackElement * tmp;
|
||||||
|
@ -467,6 +479,7 @@ void DialogPatternXmlEdit::ClearStack()
|
||||||
changeStackLast=nullptr;
|
changeStackLast=nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::BaseSelectionChanged(int value)
|
void DialogPatternXmlEdit::BaseSelectionChanged(int value)
|
||||||
{
|
{
|
||||||
QDomNode newbase;
|
QDomNode newbase;
|
||||||
|
@ -497,7 +510,7 @@ void DialogPatternXmlEdit::BaseSelectionChanged(int value)
|
||||||
rootBases[index]->getDocNode(),
|
rootBases[index]->getDocNode(),
|
||||||
false);
|
false);
|
||||||
rootNode->appendRow(standard_base);
|
rootNode->appendRow(standard_base);
|
||||||
ReadNodes(rootBases[index]->getDocNode(),standard_base,xmlmodel,true);
|
ReadNodes(rootBases[index]->getDocNode(), standard_base, xmlmodel, true);
|
||||||
|
|
||||||
ui->treeView_main->setModel(xmlmodel);
|
ui->treeView_main->setModel(xmlmodel);
|
||||||
this->ClearEditData();
|
this->ClearEditData();
|
||||||
|
@ -506,6 +519,7 @@ void DialogPatternXmlEdit::BaseSelectionChanged(int value)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogPatternXmlEdit::ElementClicked ( const QModelIndex & index )
|
void DialogPatternXmlEdit::ElementClicked ( const QModelIndex & index )
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -513,7 +527,7 @@ void DialogPatternXmlEdit::ElementClicked ( const QModelIndex & index )
|
||||||
VXMLTreeElement *item = (VXMLTreeElement *)index.internalPointer();
|
VXMLTreeElement *item = (VXMLTreeElement *)index.internalPointer();
|
||||||
|
|
||||||
// Get child specified by index row/column
|
// Get child specified by index row/column
|
||||||
VXMLTreeElement * item2 = (VXMLTreeElement *) item->child(index.row(),index.column());
|
VXMLTreeElement * item2 = (VXMLTreeElement *) item->child(index.row(), index.column());
|
||||||
|
|
||||||
// Clear all data and disable buttons
|
// Clear all data and disable buttons
|
||||||
this->ClearEditData();
|
this->ClearEditData();
|
||||||
|
@ -550,7 +564,7 @@ void DialogPatternXmlEdit::ElementClicked ( const QModelIndex & index )
|
||||||
ui->label_type_value->setText(tr("Root node"));;
|
ui->label_type_value->setText(tr("Root node"));;
|
||||||
ui->pushButton_Add_son->setEnabled(true);
|
ui->pushButton_Add_son->setEnabled(true);
|
||||||
}
|
}
|
||||||
else if (item2->getelementType() == VXMLTreeElement::TypeNode)
|
else if (item2->getelementType() == VXMLTreeElement::TypeNode)
|
||||||
{
|
{
|
||||||
ui->label_type_value->setText(tr("Node"));
|
ui->label_type_value->setText(tr("Node"));
|
||||||
ui->pushButton_Add_attribute->setEnabled(true);
|
ui->pushButton_Add_attribute->setEnabled(true);
|
||||||
|
@ -563,6 +577,7 @@ void DialogPatternXmlEdit::ElementClicked ( const QModelIndex & index )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
DialogPatternXmlEdit::~DialogPatternXmlEdit()
|
DialogPatternXmlEdit::~DialogPatternXmlEdit()
|
||||||
{
|
{
|
||||||
//xmlmodel->clearTree();
|
//xmlmodel->clearTree();
|
||||||
|
@ -576,11 +591,12 @@ DialogPatternXmlEdit::~DialogPatternXmlEdit()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogPatternXmlEdit::ReadNodes(QDomNode dNode, VXMLTreeElement* root,VXMLTreeView* xmlmodel, bool refresh)
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogPatternXmlEdit::ReadNodes(QDomNode dNode, VXMLTreeElement* root, VXMLTreeView* xmlmodel, bool refresh)
|
||||||
{
|
{
|
||||||
|
|
||||||
QDomNode tNode,tNode2;
|
QDomNode tNode, tNode2;
|
||||||
VXMLTreeElement* tElement,*tElement2;
|
VXMLTreeElement* tElement, *tElement2;
|
||||||
int totalOfChilds = dNode.childNodes().size();
|
int totalOfChilds = dNode.childNodes().size();
|
||||||
if (totalOfChilds == 0)
|
if (totalOfChilds == 0)
|
||||||
{
|
{
|
||||||
|
@ -591,7 +607,7 @@ void DialogPatternXmlEdit::ReadNodes(QDomNode dNode, VXMLTreeElement* root,VXMLT
|
||||||
tNode = dNode.childNodes().at(i);
|
tNode = dNode.childNodes().at(i);
|
||||||
if (tNode.nodeType() != QDomNode::CommentNode)
|
if (tNode.nodeType() != QDomNode::CommentNode)
|
||||||
{
|
{
|
||||||
tElement = new VXMLTreeElement(tNode.nodeName(),VXMLTreeElement::TypeNode,tNode,false);
|
tElement = new VXMLTreeElement(tNode.nodeName(), VXMLTreeElement::TypeNode, tNode, false);
|
||||||
xmlmodel->appendchain(tElement);
|
xmlmodel->appendchain(tElement);
|
||||||
root->appendRow(tElement);
|
root->appendRow(tElement);
|
||||||
if (tNode.nodeName() == "draw")
|
if (tNode.nodeName() == "draw")
|
||||||
|
@ -605,7 +621,7 @@ void DialogPatternXmlEdit::ReadNodes(QDomNode dNode, VXMLTreeElement* root,VXMLT
|
||||||
QVariant(rootBasesNum));
|
QVariant(rootBasesNum));
|
||||||
rootBases[rootBasesNum]=new VXMLTreeElement(
|
rootBases[rootBasesNum]=new VXMLTreeElement(
|
||||||
QString("Drawing %1").arg(tNode.attributes().item(i).nodeValue()),
|
QString("Drawing %1").arg(tNode.attributes().item(i).nodeValue()),
|
||||||
VXMLTreeElement::TypeRoot,tNode,false);;
|
VXMLTreeElement::TypeRoot, tNode, false);
|
||||||
rootBasesNum++;
|
rootBasesNum++;
|
||||||
//QStandardItem* rootNode = (QStandardItem*) rootBases[rootBasesNum]->invisibleRootItem();
|
//QStandardItem* rootNode = (QStandardItem*) rootBases[rootBasesNum]->invisibleRootItem();
|
||||||
//rootNode->appendRow(tElement);
|
//rootNode->appendRow(tElement);
|
||||||
|
@ -627,7 +643,7 @@ void DialogPatternXmlEdit::ReadNodes(QDomNode dNode, VXMLTreeElement* root,VXMLT
|
||||||
tNode2 = tNode.childNodes().at(i);
|
tNode2 = tNode.childNodes().at(i);
|
||||||
if (tNode2.nodeType() != QDomNode::CommentNode)
|
if (tNode2.nodeType() != QDomNode::CommentNode)
|
||||||
{
|
{
|
||||||
tElement2 = new VXMLTreeElement(tNode2.nodeName(),VXMLTreeElement::TypeNode,tNode2,false);
|
tElement2 = new VXMLTreeElement(tNode2.nodeName(), VXMLTreeElement::TypeNode, tNode2, false);
|
||||||
xmlmodel->appendchain(tElement2);
|
xmlmodel->appendchain(tElement2);
|
||||||
tElement->appendRow(tElement2);
|
tElement->appendRow(tElement2);
|
||||||
}
|
}
|
||||||
|
@ -640,10 +656,8 @@ void DialogPatternXmlEdit::ReadNodes(QDomNode dNode, VXMLTreeElement* root,VXMLT
|
||||||
|
|
||||||
for (int i = 0; i < tNode.attributes().size(); i++)
|
for (int i = 0; i < tNode.attributes().size(); i++)
|
||||||
{
|
{
|
||||||
tElement2 = new VXMLTreeElement(
|
tElement2 = new VXMLTreeElement(tNode.attributes().item(i).nodeName(), VXMLTreeElement::TypeAttr,
|
||||||
tNode.attributes().item(i).nodeName(),
|
tNode, false);
|
||||||
VXMLTreeElement::TypeAttr,
|
|
||||||
tNode,false);
|
|
||||||
tElement2->setTreeNodeValue(tNode.attributes().item(i).nodeValue());
|
tElement2->setTreeNodeValue(tNode.attributes().item(i).nodeValue());
|
||||||
tElement->appendRow(tElement2);
|
tElement->appendRow(tElement2);
|
||||||
xmlmodel->appendchain(tElement2);
|
xmlmodel->appendchain(tElement2);
|
||||||
|
@ -655,13 +669,15 @@ void DialogPatternXmlEdit::ReadNodes(QDomNode dNode, VXMLTreeElement* root,VXMLT
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// vXMLTreeView Code -----------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VXMLTreeView::VXMLTreeView(QObject *parent) : QStandardItemModel(parent)
|
VXMLTreeView::VXMLTreeView(QObject *parent) : QStandardItemModel(parent)
|
||||||
{
|
{
|
||||||
current=last=items=nullptr;
|
current=last=items=nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void VXMLTreeView::ClearTree() {
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VXMLTreeView::ClearTree()
|
||||||
|
{
|
||||||
|
|
||||||
// TODO check if treeitems are deleted with the delete row command of QDom
|
// TODO check if treeitems are deleted with the delete row command of QDom
|
||||||
|
|
||||||
|
@ -675,14 +691,13 @@ void VXMLTreeView::ClearTree() {
|
||||||
}
|
}
|
||||||
// reset chain counters
|
// reset chain counters
|
||||||
current=last=items=nullptr;
|
current=last=items=nullptr;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VXMLTreeView::~VXMLTreeView()
|
VXMLTreeView::~VXMLTreeView()
|
||||||
{
|
{}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VXMLTreeView::appendchain(VXMLTreeElement* elmt)
|
void VXMLTreeView::appendchain(VXMLTreeElement* elmt)
|
||||||
{
|
{
|
||||||
if (last == nullptr)
|
if (last == nullptr)
|
||||||
|
@ -710,43 +725,40 @@ void VXMLTreeView::appendchain(VXMLTreeElement* elmt)
|
||||||
last=temp;
|
last=temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// vXMLTreeElement code -----------------------------------------------------------------
|
|
||||||
|
|
||||||
const short int VXMLTreeElement::TypeNode=1;
|
const short int VXMLTreeElement::TypeNode=1;
|
||||||
const short int VXMLTreeElement::TypeAttr=2;
|
const short int VXMLTreeElement::TypeAttr=2;
|
||||||
const short int VXMLTreeElement::TypeRoot=3;
|
const short int VXMLTreeElement::TypeRoot=3;
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VXMLTreeElement::VXMLTreeElement(QString name, int nodetype, QDomNode source,bool editor): QStandardItem(name)
|
VXMLTreeElement::VXMLTreeElement(QString name, int nodetype, QDomNode source, bool editor)
|
||||||
|
: QStandardItem(name)
|
||||||
{
|
{
|
||||||
this->elementType=nodetype;
|
this->elementType=nodetype;
|
||||||
this->DocNode=source;
|
this->DocNode=source;
|
||||||
this->addedNode=editor;
|
this->addedNode=editor;
|
||||||
if (!editor)
|
if (editor == false)
|
||||||
{
|
{
|
||||||
this->DocNode=source;
|
this->DocNode=source;
|
||||||
}
|
}
|
||||||
this->treeNodeName=name;
|
this->treeNodeName=name;
|
||||||
this->treeNodeValue="<empty>"; // TODO : translation ?
|
this->treeNodeValue="<empty>"; // TODO : translation ?
|
||||||
this->treeNodeValueSet=false,
|
this->treeNodeValueSet=false,
|
||||||
this->setText(this->displayText());
|
this->setText(this->displayText());
|
||||||
switch (this->elementType)
|
switch (this->elementType)
|
||||||
{
|
{
|
||||||
case VXMLTreeElement::TypeAttr:
|
case VXMLTreeElement::TypeAttr:
|
||||||
this->setBackground(BACKGROUND_COLOR_ATTRIBUTE);
|
this->setBackground(BACKGROUND_COLOR_ATTRIBUTE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VXMLTreeElement::~VXMLTreeElement()
|
VXMLTreeElement::~VXMLTreeElement()
|
||||||
{
|
{}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VXMLTreeElement::setTreeNodeValue(QString value)
|
void VXMLTreeElement::setTreeNodeValue(QString value)
|
||||||
{
|
{
|
||||||
this->treeNodeValue=value;
|
this->treeNodeValue=value;
|
||||||
|
@ -754,24 +766,33 @@ void VXMLTreeElement::setTreeNodeValue(QString value)
|
||||||
this->setText(this->displayText());
|
this->setText(this->displayText());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VXMLTreeElement::setTreeNodeName(QString value)
|
void VXMLTreeElement::setTreeNodeName(QString value)
|
||||||
{
|
{
|
||||||
this->treeNodeName=value;
|
this->treeNodeName=value;
|
||||||
this->setText(this->displayText());
|
this->setText(this->displayText());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QString VXMLTreeElement::displayText()
|
QString VXMLTreeElement::displayText()
|
||||||
{
|
{
|
||||||
if (this->elementType == VXMLTreeElement::TypeRoot)
|
if (this->elementType == VXMLTreeElement::TypeRoot)
|
||||||
|
{
|
||||||
return this->treeNodeName;
|
return this->treeNodeName;
|
||||||
|
}
|
||||||
return QString("%1 : %2").arg((this->treeNodeName)).arg(this->treeNodeValue);
|
return QString("%1 : %2").arg((this->treeNodeName)).arg(this->treeNodeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString VXMLTreeElement::gettreeNodeValue() {
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QString VXMLTreeElement::gettreeNodeValue()
|
||||||
|
{
|
||||||
// Only return value if it's really set.
|
// Only return value if it's really set.
|
||||||
if (this->treeNodeValueSet)
|
if (this->treeNodeValueSet)
|
||||||
|
{
|
||||||
return this->treeNodeValue;
|
return this->treeNodeValue;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return "";
|
{
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,21 +37,20 @@
|
||||||
/**
|
/**
|
||||||
* @brief The vXMLTreeElement class : node/attribute of xml pattern. Used by vXMLTreeView
|
* @brief The vXMLTreeElement class : node/attribute of xml pattern. Used by vXMLTreeView
|
||||||
*
|
*
|
||||||
**********************************************************************************************
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define BACKGROUND_COLOR_ATTRIBUTE QBrush(Qt::GlobalColor::cyan)
|
#define BACKGROUND_COLOR_ATTRIBUTE QBrush(Qt::GlobalColor::cyan)
|
||||||
class VXMLTreeElement : public QStandardItem
|
class VXMLTreeElement : public QStandardItem
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief vXMLTreeElement
|
* @brief vXMLTreeElement
|
||||||
* @param name : display name
|
* @param name : display name
|
||||||
* @param nodetype : node type (node, attribute, root)
|
* @param nodetype : node type (node, attribute, root)
|
||||||
* @param source : the source dom node
|
* @param source : the source dom node
|
||||||
*/
|
*/
|
||||||
explicit VXMLTreeElement (QString name, int nodetype, QDomNode source,bool editor);
|
explicit VXMLTreeElement (QString name, int nodetype, QDomNode source, bool editor);
|
||||||
|
|
||||||
explicit VXMLTreeElement (QString name, int nodetype);
|
explicit VXMLTreeElement (QString name, int nodetype);
|
||||||
|
|
||||||
|
@ -146,7 +145,8 @@ public:
|
||||||
/**
|
/**
|
||||||
* @brief The TreeElement struct : chained list of vXMLTreeElement
|
* @brief The TreeElement struct : chained list of vXMLTreeElement
|
||||||
*/
|
*/
|
||||||
typedef struct TreeElementchain {
|
typedef struct TreeElementchain
|
||||||
|
{
|
||||||
VXMLTreeElement* elmt;
|
VXMLTreeElement* elmt;
|
||||||
TreeElementchain* next;
|
TreeElementchain* next;
|
||||||
} TreeElementchain;
|
} TreeElementchain;
|
||||||
|
@ -197,8 +197,9 @@ inline VXMLTreeView::TreeElementchain * VXMLTreeView::GetItems()
|
||||||
|
|
||||||
//********************************************************************************************
|
//********************************************************************************************
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui
|
||||||
class DialogPatternXmlEdit;
|
{
|
||||||
|
class DialogPatternXmlEdit;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @brief The DialogPatternXmlEdit class : ui dialog for XML editing of pattern
|
* @brief The DialogPatternXmlEdit class : ui dialog for XML editing of pattern
|
||||||
|
@ -223,11 +224,12 @@ public:
|
||||||
void ButtonDeleteAttributeClicked();
|
void ButtonDeleteAttributeClicked();
|
||||||
void ButtonAddSonClicked();
|
void ButtonAddSonClicked();
|
||||||
void ButtonAddAttributeClicked();
|
void ButtonAddAttributeClicked();
|
||||||
void ButtonApplyChangesClicked() ;
|
void ButtonApplyChangesClicked();
|
||||||
|
|
||||||
|
|
||||||
// Stack of changes definition
|
// Stack of changes definition
|
||||||
typedef struct ChangesStackElement {
|
typedef struct ChangesStackElement
|
||||||
|
{
|
||||||
short int type;
|
short int type;
|
||||||
VXMLTreeElement *element;
|
VXMLTreeElement *element;
|
||||||
QString *newText;
|
QString *newText;
|
||||||
|
@ -277,6 +279,4 @@ private:
|
||||||
ChangesStackElement* changeStackLast;
|
ChangesStackElement* changeStackLast;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif // DIALOGPATTERNXMLEDIT_H
|
#endif // DIALOGPATTERNXMLEDIT_H
|
||||||
|
|
|
@ -503,7 +503,7 @@ void MainWindow::ClosedDialogCutArc(int result)
|
||||||
void MainWindow::About()
|
void MainWindow::About()
|
||||||
{
|
{
|
||||||
DialogAboutApp * about_dialog = new DialogAboutApp(this);
|
DialogAboutApp * about_dialog = new DialogAboutApp(this);
|
||||||
about_dialog->setAttribute(Qt::WA_DeleteOnClose,true);
|
about_dialog->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||||
about_dialog->show();
|
about_dialog->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -546,8 +546,8 @@ void MainWindow::PatternProperties()
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void MainWindow::EditPatternCode()
|
void MainWindow::EditPatternCode()
|
||||||
{
|
{
|
||||||
DialogPatternXmlEdit *Pattern = new DialogPatternXmlEdit (this,doc);
|
DialogPatternXmlEdit *Pattern = new DialogPatternXmlEdit (this, doc);
|
||||||
Pattern->setAttribute(Qt::WA_DeleteOnClose,true);
|
Pattern->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||||
Pattern->show();
|
Pattern->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1367,7 +1367,7 @@ void MainWindow::CreateActions()
|
||||||
connect(ui->actionOptions, &QAction::triggered, this, &MainWindow::Options);
|
connect(ui->actionOptions, &QAction::triggered, this, &MainWindow::Options);
|
||||||
connect(ui->actionPattern_properties, &QAction::triggered, this, &MainWindow::PatternProperties);
|
connect(ui->actionPattern_properties, &QAction::triggered, this, &MainWindow::PatternProperties);
|
||||||
ui->actionPattern_properties->setEnabled(false);
|
ui->actionPattern_properties->setEnabled(false);
|
||||||
connect(ui->actionEdit_pattern_code,&QAction::triggered,this,&MainWindow::EditPatternCode);
|
connect(ui->actionEdit_pattern_code, &QAction::triggered, this, &MainWindow::EditPatternCode);
|
||||||
//ui->actionEdit_pattern_code->setEnabled(false);
|
//ui->actionEdit_pattern_code->setEnabled(false);
|
||||||
|
|
||||||
//Actions for recent files loaded by a main window application.
|
//Actions for recent files loaded by a main window application.
|
||||||
|
|
|
@ -148,7 +148,7 @@ QString VApplication::pathToTables() const
|
||||||
return QApplication::applicationDirPath() + QStringLiteral("/tables/individual");
|
return QApplication::applicationDirPath() + QStringLiteral("/tables/individual");
|
||||||
#else
|
#else
|
||||||
QDir dir(QApplication::applicationDirPath() + QStringLiteral("/tables/individual"));
|
QDir dir(QApplication::applicationDirPath() + QStringLiteral("/tables/individual"));
|
||||||
if(dir.exist())
|
if (dir.exist())
|
||||||
{
|
{
|
||||||
return dir.absolutePath();
|
return dir.absolutePath();
|
||||||
}
|
}
|
||||||
|
@ -168,7 +168,7 @@ QString VApplication::pathToTables() const
|
||||||
return QApplication::applicationDirPath() + QStringLiteral("/tables/standard");
|
return QApplication::applicationDirPath() + QStringLiteral("/tables/standard");
|
||||||
#else
|
#else
|
||||||
QDir dir(QApplication::applicationDirPath() + QStringLiteral("/tables/standard"));
|
QDir dir(QApplication::applicationDirPath() + QStringLiteral("/tables/standard"));
|
||||||
if(dir.exist())
|
if (dir.exist())
|
||||||
{
|
{
|
||||||
return dir.absolutePath();
|
return dir.absolutePath();
|
||||||
}
|
}
|
||||||
|
@ -191,7 +191,7 @@ QString VApplication::translationsPath() const
|
||||||
return QApplication::applicationDirPath() + QStringLiteral("/translations");
|
return QApplication::applicationDirPath() + QStringLiteral("/translations");
|
||||||
#else
|
#else
|
||||||
QDir dir(QApplication::applicationDirPath() + QStringLiteral("/translations"));
|
QDir dir(QApplication::applicationDirPath() + QStringLiteral("/translations"));
|
||||||
if(dir.exist())
|
if (dir.exist())
|
||||||
{
|
{
|
||||||
return dir.absolutePath();
|
return dir.absolutePath();
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,7 @@ namespace qmu
|
||||||
static qreal Avg(const qreal*, int); // mean value
|
static qreal Avg(const qreal*, int); // mean value
|
||||||
static qreal Min(const qreal*, int); // minimum
|
static qreal Min(const qreal*, int); // minimum
|
||||||
static qreal Max(const qreal*, int); // maximum
|
static qreal Max(const qreal*, int); // maximum
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue
Block a user