Improve code style, Wrap code for better readability

This commit is contained in:
Simon De Backer
2020-08-16 14:23:59 +02:00
parent 8144e9b21b
commit 928b56f2bf
22 changed files with 656 additions and 363 deletions

View File

@@ -61,12 +61,12 @@ DynamicElementTextModel::DynamicElementTextModel(Element *element, QObject *pare
QStandardItemModel(parent),
m_element(element)
{
setColumnCount(2);
setHeaderData(0, Qt::Horizontal, tr("Propriété"), Qt::DisplayRole);
setHeaderData(1, Qt::Horizontal, tr("Valeur"), Qt::DisplayRole);
setColumnCount(2);
setHeaderData(0, Qt::Horizontal, tr("Propriété"), Qt::DisplayRole);
setHeaderData(1, Qt::Horizontal, tr("Valeur"), Qt::DisplayRole);
connect(this, &DynamicElementTextModel::itemChanged, this, &DynamicElementTextModel::itemDataChanged);
connect(m_element.data(), &Element::textsGroupAdded, this, &DynamicElementTextModel::addGroup, Qt::DirectConnection);
connect(m_element.data(), &Element::textsGroupAboutToBeRemoved, this, &DynamicElementTextModel::removeGroup, Qt::DirectConnection);
connect(m_element.data(), &Element::textRemoved, this, &DynamicElementTextModel::removeText, Qt::DirectConnection);
@@ -77,7 +77,7 @@ DynamicElementTextModel::DynamicElementTextModel(Element *element, QObject *pare
for (ElementTextItemGroup *grp : m_element.data()->textGroups())
addGroup(grp);
for (DynamicElementTextItem *deti : m_element.data()->dynamicTextItems())
for (DynamicElementTextItem *deti : m_element.data()->dynamicTextItems())
this->appendRow(itemsForText(deti));
}
@@ -115,61 +115,79 @@ bool DynamicElementTextModel::indexIsInGroup(const QModelIndex &index) const
/**
@brief DynamicElementTextModel::itemsForText
@param deti
@return The items for the text @deti, if the text @deti is already managed by this model
@return The items for the text deti,
if the text deti is already managed by this model
the returned list is empty
The returned items haven't got the same number of childs if the text is in a group or not.
The returned items haven't got the same number
of childs if the text is in a group or not.
*/
QList<QStandardItem *> DynamicElementTextModel::itemsForText(DynamicElementTextItem *deti)
QList<QStandardItem *> DynamicElementTextModel::itemsForText(
DynamicElementTextItem *deti)
{
QList <QStandardItem *> qsi_list;
if(m_texts_list.keys().contains(deti))
return qsi_list;
return qsi_list;
QStandardItem *qsi = new QStandardItem(deti->toPlainText());
qsi->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled |Qt::ItemIsDragEnabled);
qsi->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
|Qt::ItemIsDragEnabled);
qsi->setIcon(QET::Icons::PartText);
//Source of text
QStandardItem *src = new QStandardItem(tr("Source du texte"));
src->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
//Source of text
QStandardItem *src = new QStandardItem(tr("Source du texte"));
src->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QString title;
if (deti->textFrom() == DynamicElementTextItem::UserText) title = tr("Texte utilisateur");
else if (deti->textFrom() == DynamicElementTextItem::ElementInfo) title = tr("Information de l'élément");
if (deti->textFrom() == DynamicElementTextItem::UserText)
title = tr("Texte utilisateur");
else if (deti->textFrom() == DynamicElementTextItem::ElementInfo)
title = tr("Information de l'élément");
else title = tr("Texte composé");
QStandardItem *srca = new QStandardItem(title);
srca->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
srca->setData(textFrom, Qt::UserRole+1);
qsi_list << src << srca;
qsi->appendRow(qsi_list);
//User text
QStandardItem *srca = new QStandardItem(title);
srca->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
srca->setData(textFrom, Qt::UserRole+1);
qsi_list << src << srca;
qsi->appendRow(qsi_list);
//User text
QStandardItem *usr = new QStandardItem(tr("Texte"));
usr->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *usra = new QStandardItem(deti->toPlainText());
usra->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
usra->setData(DynamicElementTextModel::userText, Qt::UserRole+1);
usr->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *usra = new QStandardItem(deti->toPlainText());
usra->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
usra->setData(DynamicElementTextModel::userText, Qt::UserRole+1);
qsi_list.clear();
qsi_list << usr << usra;
qsi->appendRow(qsi_list);
qsi_list << usr << usra;
qsi->appendRow(qsi_list);
//Info text
QStandardItem *info = new QStandardItem(tr("Information"));
info->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *infoa = new QStandardItem(QETApp::elementTranslatedInfoKey(deti->infoName()));
infoa->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
infoa->setData(DynamicElementTextModel::infoText, Qt::UserRole+1); //Use to know the edited thing
infoa->setData(deti->infoName(), Qt::UserRole+2); //Use to know to element info name
info->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *infoa =
new QStandardItem(
QETApp::elementTranslatedInfoKey(
deti->infoName()));
infoa->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
//Use to know the edited thing
infoa->setData(DynamicElementTextModel::infoText, Qt::UserRole+1);
//Use to know to element info name
infoa->setData(deti->infoName(), Qt::UserRole+2);
qsi_list.clear();
qsi_list << info << infoa;
qsi->appendRow(qsi_list);
qsi_list << info << infoa;
qsi->appendRow(qsi_list);
//Composite text
QStandardItem *composite = new QStandardItem(tr("Texte composé"));
@@ -178,28 +196,36 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(DynamicElementTextI
DiagramContext dc;
if(deti->elementUseForInfo())
dc = deti->elementUseForInfo()->elementInformations();
QStandardItem *compositea = new QStandardItem(deti->compositeText().isEmpty() ?
tr("Mon texte composé") :
autonum::AssignVariables::replaceVariable(deti->compositeText(), dc));
compositea->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
compositea->setData(DynamicElementTextModel::compositeText, Qt::UserRole+1); //Use to know the edited thing
compositea->setData(deti->compositeText(), Qt::UserRole+2); //Use to know to element composite formula
QStandardItem *compositea = new QStandardItem(deti->compositeText().isEmpty()
? tr("Mon texte composé")
: autonum::AssignVariables::replaceVariable(
deti->compositeText(), dc));
compositea->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
//Use to know the edited thing
compositea->setData(DynamicElementTextModel::compositeText,
Qt::UserRole+1);
//Use to know to element composite formula
compositea->setData(deti->compositeText(), Qt::UserRole+2);
qsi_list.clear();
qsi_list << composite << compositea;
qsi->appendRow(qsi_list);
//Size
//Size
QStandardItem *size = new QStandardItem(tr("Taille"));
size->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *siza = new QStandardItem();
size->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *siza = new QStandardItem();
siza->setData(deti->font().pointSize(), Qt::EditRole);
siza->setData(DynamicElementTextModel::size, Qt::UserRole+1);
siza->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
qsi_list.clear();
qsi_list << size << siza;
siza->setData(DynamicElementTextModel::size, Qt::UserRole+1);
siza->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi_list.clear();
qsi_list << size << siza;
qsi->appendRow(qsi_list);
//Font
@@ -216,18 +242,20 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(DynamicElementTextI
qsi_list << font << fonta;
qsi->appendRow(qsi_list);
//Color
QStandardItem *color = new QStandardItem(tr("Couleur"));
color->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *colora = new QStandardItem;
colora->setData(deti->color(), Qt::ForegroundRole);
colora->setData(deti->color(), Qt::EditRole);
colora->setData(DynamicElementTextModel::color, Qt::UserRole+1);
colora->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
qsi_list.clear();
qsi_list << color << colora;
//Color
QStandardItem *color = new QStandardItem(tr("Couleur"));
color->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *colora = new QStandardItem;
colora->setData(deti->color(), Qt::ForegroundRole);
colora->setData(deti->color(), Qt::EditRole);
colora->setData(DynamicElementTextModel::color, Qt::UserRole+1);
colora->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi_list.clear();
qsi_list << color << colora;
qsi->appendRow(qsi_list);
//Frame
@@ -238,7 +266,9 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(DynamicElementTextI
frame_a->setCheckable(true);
frame_a->setCheckState(deti->frame()? Qt::Checked : Qt::Unchecked);
frame_a->setData(DynamicElementTextModel::frame, Qt::UserRole+1);
frame_a->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable);
frame_a->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsUserCheckable);
qsi_list.clear();
qsi_list << frame << frame_a;
@@ -251,7 +281,9 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(DynamicElementTextI
QStandardItem *width_a = new QStandardItem;
width_a->setData(deti->textWidth(), Qt::EditRole);
width_a->setData(DynamicElementTextModel::textWidth, Qt::UserRole+1);
width_a->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
width_a->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi_list.clear();
qsi_list << width << width_a;
@@ -266,7 +298,9 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(DynamicElementTextI
QStandardItem *x_pos_a = new QStandardItem;
x_pos_a->setData(deti->pos().x(), Qt::EditRole);
x_pos_a->setData(DynamicElementTextModel::pos, Qt::UserRole+1);
x_pos_a->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
x_pos_a->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi_list.clear();
qsi_list << x_pos << x_pos_a;
@@ -279,7 +313,9 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(DynamicElementTextI
QStandardItem *y_pos_a = new QStandardItem;
y_pos_a->setData(deti->pos().y(), Qt::EditRole);
y_pos_a->setData(DynamicElementTextModel::pos, Qt::UserRole+1);
y_pos_a->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
y_pos_a->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi_list.clear();
qsi_list << y_pos << y_pos_a;
@@ -291,8 +327,11 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(DynamicElementTextI
QStandardItem *rot_a = new QStandardItem;
rot_a->setData(deti->rotation(), Qt::EditRole);
rot_a->setData(DynamicElementTextModel::rotation, Qt::UserRole+1);
rot_a->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
rot_a->setData(DynamicElementTextModel::rotation,
Qt::UserRole+1);
rot_a->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi_list.clear();;
qsi_list << rot << rot_a;
@@ -303,9 +342,13 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(DynamicElementTextI
alignment->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *alignmenta = new QStandardItem(tr("Éditer"));
alignmenta->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
alignmenta->setData(DynamicElementTextModel::txtAlignment, Qt::UserRole+1);
alignmenta->setData(QVariant::fromValue(deti->alignment()), Qt::UserRole+2);
alignmenta->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
alignmenta->setData(DynamicElementTextModel::txtAlignment,
Qt::UserRole+1);
alignmenta->setData(QVariant::fromValue(deti->alignment()),
Qt::UserRole+2);
qsi_list.clear();
qsi_list << alignment << alignmenta;
@@ -318,7 +361,7 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(DynamicElementTextI
empty_qsi->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
qsi_list << qsi << empty_qsi;
m_texts_list.insert(deti, qsi);
m_texts_list.insert(deti, qsi);
blockSignals(true);
enableSourceText(deti, deti->textFrom());
blockSignals(false);
@@ -343,41 +386,45 @@ void DynamicElementTextModel::addText(DynamicElementTextItem *deti)
void DynamicElementTextModel::removeText(DynamicElementTextItem *deti)
{
if (!m_texts_list.contains(deti))
return;
QModelIndex text_index = m_texts_list.value(deti)->index();
this->removeRow(text_index.row(), text_index.parent());
m_texts_list.remove(deti);
return;
QModelIndex text_index = m_texts_list.value(deti)->index();
this->removeRow(text_index.row(), text_index.parent());
m_texts_list.remove(deti);
setConnection(deti, false);
}
/**
@brief DynamicElementTextModel::textFromIndex
@param index
@return the text associated with @index. Returned value can be nullptr
@Index can be a child of an index associated with a text and can be the column 0 or 1.
@return the text associated with index. Returned value can be nullptr
Index can be a child of an index associated with a text
and can be the column 0 or 1.
*/
DynamicElementTextItem *DynamicElementTextModel::textFromIndex(const QModelIndex &index) const
DynamicElementTextItem *DynamicElementTextModel::textFromIndex(
const QModelIndex &index) const
{
if(!index.isValid())
return nullptr;
if (QStandardItem *item = itemFromIndex(index))
return textFromItem(item);
else
return nullptr;
if(!index.isValid())
return nullptr;
if (QStandardItem *item = itemFromIndex(index))
return textFromItem(item);
else
return nullptr;
}
/**
@brief DynamicElementTextModel::textFromItem
@param item
@return the text associated with @item. Return value can be nullptr
@item can be a child of an item associated with a text and can be the column 0 or 1.
@return the text associated with item. Return value can be nullptr
item can be a child of an item associated with a text
and can be the column 0 or 1.
Note can return nullptr
*/
DynamicElementTextItem *DynamicElementTextModel::textFromItem(QStandardItem *item) const
DynamicElementTextItem *DynamicElementTextModel::textFromItem(
QStandardItem *item) const
{
//Get the item of the column 0
//Get the item of the column 0
if(item->column() == 1)
{
if(item->parent())
@@ -385,7 +432,7 @@ DynamicElementTextItem *DynamicElementTextModel::textFromItem(QStandardItem *ite
else
item = itemFromIndex(index(item->row(),0));
}
//Item haven't got parent, so they can be only a text or a group
//Item haven't got parent, so they can be only a text or a group
if(!item->parent())
{
if(m_texts_list.values().contains(item))
@@ -426,9 +473,10 @@ DynamicElementTextItem *DynamicElementTextModel::textFromItem(QStandardItem *ite
/**
@brief DynamicElementTextModel::indexFromText
@param text
@return the QModelIndex for @text, or a default QModelIndex if not match
@return the QModelIndex for text, or a default QModelIndex if not match
*/
QModelIndex DynamicElementTextModel::indexFromText(DynamicElementTextItem *text) const
QModelIndex DynamicElementTextModel::indexFromText(
DynamicElementTextItem *text) const
{
if(m_texts_list.contains(text))
return m_texts_list.value(text)->index();
@@ -439,11 +487,14 @@ QModelIndex DynamicElementTextModel::indexFromText(DynamicElementTextItem *text)
/**
@brief DynamicElementTextModel::undoForEditedText
@param deti
@return A QUndoCommand that describe all changes made for @deti.
Each change made for @deti is append as a child of the returned QUndoCommand.
In other word, if the returned QUndoCommand have no child, that mean there is no change.
@return A QUndoCommand that describe all changes made for deti.
Each change made for deti is append as a child of the returned QUndoCommand.
In other word, if the returned QUndoCommand have no child,
that mean there is no change.
*/
QUndoCommand *DynamicElementTextModel::undoForEditedText(DynamicElementTextItem *deti, QUndoCommand *parent_undo) const
QUndoCommand *DynamicElementTextModel::undoForEditedText(
DynamicElementTextItem *deti,
QUndoCommand *parent_undo) const
{
QUndoCommand *undo = nullptr;
@@ -565,11 +616,14 @@ QUndoCommand *DynamicElementTextModel::undoForEditedText(DynamicElementTextItem
@brief DynamicElementTextModel::undoForEditedGroup
@param group
@param parent_undo
@return A QUndoCommand that describe all changes made for @group.
Each change made for @group is append as a child of the returned QUndoCommand.
In other word, if the returned QUndoCommand have no child, that mean there is no change.
@return A QUndoCommand that describe all changes made for group.
Each change made for group is append as a child of the returned QUndoCommand.
In other word, if the returned QUndoCommand have no child,
that mean there is no change.
*/
QUndoCommand *DynamicElementTextModel::undoForEditedGroup(ElementTextItemGroup *group, QUndoCommand *parent_undo) const
QUndoCommand *DynamicElementTextModel::undoForEditedGroup(
ElementTextItemGroup *group,
QUndoCommand *parent_undo) const
{
QUndoCommand *undo = nullptr;
if(parent_undo)
@@ -640,7 +694,10 @@ void DynamicElementTextModel::addGroup(ElementTextItemGroup *group)
//Group
QStandardItem *grp = new QStandardItem(group->name());
grp->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDropEnabled | Qt::ItemIsEditable);
grp->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsDropEnabled
| Qt::ItemIsEditable);
grp->setIcon(QET::Icons::textGroup);
QStandardItem *empty_qsi = new QStandardItem(0);
@@ -664,8 +721,11 @@ void DynamicElementTextModel::addGroup(ElementTextItemGroup *group)
default: break;}
QStandardItem *alignment_a = new QStandardItem(text);
alignment_a->setData(DynamicElementTextModel::grpAlignment, Qt::UserRole+1);
alignment_a->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
alignment_a->setData(DynamicElementTextModel::grpAlignment,
Qt::UserRole+1);
alignment_a->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi_list.clear();
qsi_list << alignment << alignment_a;
grp->appendRow(qsi_list);
@@ -677,7 +737,9 @@ void DynamicElementTextModel::addGroup(ElementTextItemGroup *group)
QStandardItem *x_pos_a = new QStandardItem;
x_pos_a->setData(group->pos().x(), Qt::EditRole);
x_pos_a->setData(DynamicElementTextModel::grpPos, Qt::UserRole+1);
x_pos_a->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
x_pos_a->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi_list.clear();
qsi_list << x_pos << x_pos_a;
@@ -690,7 +752,9 @@ void DynamicElementTextModel::addGroup(ElementTextItemGroup *group)
QStandardItem *y_pos_a = new QStandardItem;
y_pos_a->setData(group->pos().y(), Qt::EditRole);
y_pos_a->setData(DynamicElementTextModel::grpPos, Qt::UserRole+1);
y_pos_a->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
y_pos_a->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi_list.clear();
qsi_list << y_pos << y_pos_a;
@@ -703,7 +767,9 @@ void DynamicElementTextModel::addGroup(ElementTextItemGroup *group)
QStandardItem *rot_a = new QStandardItem;
rot_a->setData(group->rotation(), Qt::EditRole);
rot_a->setData(DynamicElementTextModel::grpRotation, Qt::UserRole+1);
rot_a->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
rot_a->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi_list.clear();
qsi_list << rot << rot_a;
grp->appendRow(qsi_list);
@@ -715,7 +781,9 @@ void DynamicElementTextModel::addGroup(ElementTextItemGroup *group)
QStandardItem *v_adj_a = new QStandardItem;
v_adj_a->setData(group->verticalAdjustment(), Qt::EditRole);
v_adj_a->setData(DynamicElementTextModel::grpVAdjust, Qt::UserRole+1);
v_adj_a->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
v_adj_a->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi_list.clear();
qsi_list << v_adj << v_adj_a;
grp->appendRow(qsi_list);
@@ -728,7 +796,9 @@ void DynamicElementTextModel::addGroup(ElementTextItemGroup *group)
frame_a->setCheckable(true);
frame_a->setCheckState(group->frame()? Qt::Checked : Qt::Unchecked);
frame_a->setData(DynamicElementTextModel::grpFrame, Qt::UserRole+1);
frame_a->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable);
frame_a->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsUserCheckable);
qsi_list.clear();
qsi_list << frame_ << frame_a;
grp->appendRow(qsi_list);
@@ -740,9 +810,14 @@ void DynamicElementTextModel::addGroup(ElementTextItemGroup *group)
QStandardItem *hold_bottom_a = new QStandardItem();
hold_bottom_a->setCheckable(true);
hold_bottom_a->setCheckState(group->holdToBottomPage() ? Qt::Checked : Qt::Unchecked);
hold_bottom_a->setData(DynamicElementTextModel::grpHoldBottom, Qt::UserRole+1);
hold_bottom_a->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable);
hold_bottom_a->setCheckState(group->holdToBottomPage()
? Qt::Checked
: Qt::Unchecked);
hold_bottom_a->setData(DynamicElementTextModel::grpHoldBottom,
Qt::UserRole+1);
hold_bottom_a->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsUserCheckable);
qsi_list.clear();
qsi_list << hold_bottom << hold_bottom_a;
grp->appendRow(qsi_list);
@@ -780,13 +855,15 @@ void DynamicElementTextModel::removeGroup(ElementTextItemGroup *group)
@param deti
@param group
*/
void DynamicElementTextModel::addTextToGroup(DynamicElementTextItem *deti, ElementTextItemGroup *group)
void DynamicElementTextModel::addTextToGroup(DynamicElementTextItem *deti,
ElementTextItemGroup *group)
{
QStandardItem *group_item = m_groups_list.value(group);
group_item->appendRow(itemsForText(deti));
}
void DynamicElementTextModel::removeTextFromGroup(DynamicElementTextItem *deti, ElementTextItemGroup *group)
void DynamicElementTextModel::removeTextFromGroup(DynamicElementTextItem *deti,
ElementTextItemGroup *group)
{
Q_UNUSED(group)
@@ -802,29 +879,33 @@ void DynamicElementTextModel::removeTextFromGroup(DynamicElementTextItem *deti,
/**
@brief DynamicElementTextModel::groupFromIndex
@param index
@return the group associated with @index. Return value can be nullptr
@Index can be a child of an index associated with a group and can be the column 0 or 1.
@return the group associated with index. Return value can be nullptr
@Index can be a child of an index associated with a group
and can be the column 0 or 1.
*/
ElementTextItemGroup *DynamicElementTextModel::groupFromIndex(const QModelIndex &index) const
ElementTextItemGroup *DynamicElementTextModel::groupFromIndex(
const QModelIndex &index) const
{
if(!index.isValid())
return nullptr;
if (QStandardItem *item = itemFromIndex(index))
return groupFromItem(item);
else
return nullptr;
return nullptr;
if (QStandardItem *item = itemFromIndex(index))
return groupFromItem(item);
else
return nullptr;
}
/**
@brief DynamicElementTextModel::groupFromItem
@param item
@return the group associated with @item. Return value can be nullptr
@item can be a child of an item associated with a group and can be the column 0 or 1.
@return the group associated with item. Return value can be nullptr
item can be a child of an item associated with a group
and can be the column 0 or 1.
*/
ElementTextItemGroup *DynamicElementTextModel::groupFromItem(QStandardItem *item) const
ElementTextItemGroup *DynamicElementTextModel::groupFromItem(
QStandardItem *item) const
{
//Get the item of the column 0
//Get the item of the column 0
if(item->column() == 1)
{
if(item->parent())
@@ -845,10 +926,11 @@ ElementTextItemGroup *DynamicElementTextModel::groupFromItem(QStandardItem *item
/**
@brief DynamicElementTextModel::indexFromGroup
@param group
@return The index associated to the group @group
@return The index associated to the group group
or a default QModelIndex if not match
*/
QModelIndex DynamicElementTextModel::indexFromGroup(ElementTextItemGroup *group) const
QModelIndex DynamicElementTextModel::indexFromGroup(
ElementTextItemGroup *group) const
{
if(m_groups_list.keys().contains(group))
return m_groups_list.value(group)->index();
@@ -870,7 +952,10 @@ bool DynamicElementTextModel::indexIsText(const QModelIndex &index) const
if(index.column() == 1)
{
if(index.parent().isValid())
item = itemFromIndex(index.parent().QModelIndex::model()->index(index.row(),0));
item = itemFromIndex(index.parent()
.QModelIndex::model()->index(
index.row(),
0));
else
item = itemFromIndex(this->index(index.row(),0));
}
@@ -886,8 +971,8 @@ bool DynamicElementTextModel::indexIsText(const QModelIndex &index) const
/**
@brief DynamicElementTextModel::indexIsGroup
@param index
@return True if @index represente a group, both for the column 0 and 1.
Return false if @index is a child of an index associated to a group.
@return True if index represente a group, both for the column 0 and 1.
Return false if index is a child of an index associated to a group.
*/
bool DynamicElementTextModel::indexIsGroup(const QModelIndex &index) const
{
@@ -897,7 +982,9 @@ bool DynamicElementTextModel::indexIsGroup(const QModelIndex &index) const
if(index.column() == 1)
{
if(index.parent().isValid())
item = itemFromIndex(index.parent().QModelIndex::model()->index(index.row(),0));
item = itemFromIndex(index.parent()
.QModelIndex::model()->index(
index.row(),0));
else
item = itemFromIndex(this->index(index.row(),0));
}
@@ -910,7 +997,12 @@ bool DynamicElementTextModel::indexIsGroup(const QModelIndex &index) const
return false;
}
bool DynamicElementTextModel::canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const
bool DynamicElementTextModel::canDropMimeData(
const QMimeData *data,
Qt::DropAction action,
int row,
int column,
const QModelIndex &parent) const
{
Q_UNUSED(action);
@@ -963,9 +1055,14 @@ bool DynamicElementTextModel::canDropMimeData(const QMimeData *data, Qt::DropAct
@param row
@param column
@param parent
@return In any case return false, for overwrite the default behavior of model.
@return In any case return false,
for overwrite the default behavior of model.
*/
bool DynamicElementTextModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
bool DynamicElementTextModel::dropMimeData(const QMimeData *data,
Qt::DropAction action,
int row,
int column,
const QModelIndex &parent)
{
Q_UNUSED(action)
@@ -1093,11 +1190,14 @@ QStringList DynamicElementTextModel::mimeTypes() const
/**
@brief DynamicElementTextModel::enableSourceText
Enable the good field, according to the current source of text, for the edited text @deti
Enable the good field, according to the current source of text,
for the edited text @deti
@param deti
@param tf
*/
void DynamicElementTextModel::enableSourceText(DynamicElementTextItem *deti, DynamicElementTextItem::TextFrom tf)
void DynamicElementTextModel::enableSourceText(
DynamicElementTextItem *deti,
DynamicElementTextItem::TextFrom tf)
{
if (!m_texts_list.contains(deti))
return;
@@ -1128,7 +1228,8 @@ void DynamicElementTextModel::enableSourceText(DynamicElementTextItem *deti, Dyn
Enable/disable the item "group rotation" according the option hold to bottom
@param group
*/
void DynamicElementTextModel::enableGroupRotationAndPos(ElementTextItemGroup *group)
void DynamicElementTextModel::enableGroupRotationAndPos(
ElementTextItemGroup *group)
{
if(!m_groups_list.contains(group))
return;
@@ -1146,12 +1247,21 @@ void DynamicElementTextModel::enableGroupRotationAndPos(ElementTextItemGroup *gr
}
else
{
qsi->child(x_grp_row, 0)->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
qsi->child(x_grp_row, 1)->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
qsi->child(y_grp_row, 0)->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
qsi->child(y_grp_row, 1)->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
qsi->child(rot_grp_row, 0)->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
qsi->child(rot_grp_row, 1)->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
qsi->child(x_grp_row, 0)->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled);
qsi->child(x_grp_row, 1)->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi->child(y_grp_row, 0)->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled);
qsi->child(y_grp_row, 1)->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
qsi->child(rot_grp_row, 0)->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled);
qsi->child(rot_grp_row, 1)->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
}
}
@@ -1210,11 +1320,14 @@ void DynamicElementTextModel::itemDataChanged(QStandardItem *qsi)
}
}
//We emit the signal only if @qsi is in the second column, because the data are stored on this column
//the first column is use only for display the title of the property, except for the name of texts group
if((m_groups_list.values().contains(qsi) || qsi->column() == 1) && !m_block_dataChanged)
//We emit the signal only if @qsi is in the second column,
//because the data are stored on this column
//the first column is use only for display the title of the property,
//except for the name of texts group
if((m_groups_list.values().contains(qsi) || qsi->column() == 1)
&& !m_block_dataChanged)
emit dataChanged();
if(deti) deti->updateXref();
if(deti) deti->updateXref();
}
/**
@@ -1295,7 +1408,8 @@ void DynamicElementTextModel::setConnection(ElementTextItemGroup *group, bool se
}
}
void DynamicElementTextModel::updateDataFromText(DynamicElementTextItem *deti, ValueType type)
void DynamicElementTextModel::updateDataFromText(DynamicElementTextItem *deti,
ValueType type)
{
QStandardItem *qsi = m_texts_list.value(deti);
if (!qsi)
@@ -1387,7 +1501,9 @@ void DynamicElementTextModel::updateDataFromText(DynamicElementTextItem *deti, V
m_block_dataChanged = false;
}
void DynamicElementTextModel::updateDataFromGroup(ElementTextItemGroup *group, DynamicElementTextModel::ValueType type)
void DynamicElementTextModel::updateDataFromGroup(
ElementTextItemGroup *group,
DynamicElementTextModel::ValueType type)
{
QStandardItem *qsi = m_groups_list.value(group);
if (!qsi)
@@ -1445,10 +1561,13 @@ void DynamicElementTextModel::updateDataFromGroup(ElementTextItemGroup *group, D
***************************************************/
DynamicTextItemDelegate::DynamicTextItemDelegate(QObject *parent) :
QStyledItemDelegate(parent)
QStyledItemDelegate(parent)
{}
QWidget *DynamicTextItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
QWidget *DynamicTextItemDelegate::createEditor(
QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
switch (index.data(Qt::UserRole+1).toInt())
{
@@ -1615,7 +1734,10 @@ QWidget *DynamicTextItemDelegate::createEditor(QWidget *parent, const QStyleOpti
return QStyledItemDelegate::createEditor(parent, option, index);
}
void DynamicTextItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
void DynamicTextItemDelegate::setModelData(
QWidget *editor,
QAbstractItemModel *model,
const QModelIndex &index) const
{
if (index.isValid())
{
@@ -1725,10 +1847,11 @@ void DynamicTextItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *
bool DynamicTextItemDelegate::eventFilter(QObject *object, QEvent *event)
{
//This is a bad hack, for change the normal behavior :
//in normal behavior, the value is commited when the spinbox lose focus or enter key is pressed
//With this hack the value is commited each time the value change without the need to validate.
//then the change is apply in live
//This is a bad hack, for change the normal behavior :
//in normal behavior,
//the value is commited when the spinbox lose focus or enter key is pressed
//With this hack the value is commited each time the value change without the need to validate.
//then the change is apply in live
if(object->objectName() == "pos_dialog" || object->objectName() == "font_size" || object->objectName() == "rot_spinbox" || \
object->objectName() == "group_rotation" || object->objectName() == "group_v_adjustment" || object->objectName() == "width_spinbox" ||\
object->objectName() == "group_pos")
@@ -1752,7 +1875,8 @@ bool DynamicTextItemDelegate::eventFilter(QObject *object, QEvent *event)
return true;
}
//Like the hack above, change the current index of the combobox, apply the change immediately, no need to lose focus or press enter.
//Like the hack above, change the current index of the combobox,
// apply the change immediately, no need to lose focus or press enter.
if((object->objectName() == "text_from" || object->objectName() == "info_text" || object->objectName() == "group_alignment") && event->type() == QEvent::FocusIn)
{
QComboBox *qcb = static_cast<QComboBox *>(object);
@@ -1767,7 +1891,8 @@ bool DynamicTextItemDelegate::eventFilter(QObject *object, QEvent *event)
@param deti
@return A list of available info of element
*/
QStringList DynamicTextItemDelegate::availableInfo(DynamicElementTextItem *deti) const
QStringList DynamicTextItemDelegate::availableInfo(
DynamicElementTextItem *deti) const
{
QStringList qstrl;