mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-21 08:40:53 +01:00
style editor : use QPropertyUndoCommand instead of ChangePartCommand.
Remove ChangePartCommand class. git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4073 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -45,68 +45,6 @@ QUndoStack &ElementItemEditor::undoStack() const {
|
||||
return(elementScene() -> undoStack());
|
||||
}
|
||||
|
||||
/**
|
||||
Ajoute une ChangePartCommand a l'UndoStack. L'ancienne valeur sera
|
||||
automatiquement recuperee. A noter que cette methode ne fait rien si
|
||||
l'ancienne valeur et la nouvelle sont egales ou encore si part vaut 0
|
||||
@param desc nom de la propriete modifiee
|
||||
@param part partie modifiee
|
||||
@param prop propriete modifiee
|
||||
@param new_v nouvelle valeur
|
||||
*/
|
||||
void ElementItemEditor::addChangePartCommand(const QString &desc, CustomElementPart *part, const char *prop, const QVariant &new_v) {
|
||||
// ne fait rien si part vaut 0
|
||||
if (!part) return;
|
||||
|
||||
// recupere l'ancienne valeur
|
||||
QVariant old_v = part -> property(prop);
|
||||
|
||||
// ne fait rien si l'ancienne valeur et la nouvelle sont egales
|
||||
if (old_v == new_v) return;
|
||||
|
||||
undoStack().push(
|
||||
new ChangePartCommand(
|
||||
desc + " " + element_type_name,
|
||||
part,
|
||||
prop,
|
||||
old_v,
|
||||
new_v
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ElementItemEditor::addChangePartCommand
|
||||
* Add a ChangePartCommand with child for each part of part_list to the undo stack
|
||||
* @param undo_text : text of undo command to display
|
||||
* @param part_list : list of parts to modify
|
||||
* @param property : QProperty (of CustomElementPart) to modify
|
||||
* @param new_value : the new value of the QProperty
|
||||
*/
|
||||
void ElementItemEditor::addChangePartCommand(const QString &undo_text, QList<CustomElementPart *> part_list, const char *property, const QVariant &new_value)
|
||||
{
|
||||
if (part_list.isEmpty()) return;
|
||||
|
||||
//Get only the parts concerned by modification
|
||||
QList <CustomElementPart *> updated_part;
|
||||
foreach (CustomElementPart *cep, part_list)
|
||||
if (cep->property(property) != new_value)
|
||||
updated_part << cep;
|
||||
|
||||
//There is not part to modify
|
||||
if(updated_part.isEmpty()) return;
|
||||
|
||||
//Set the first part has parent undo
|
||||
CustomElementPart *p_cep = updated_part.takeFirst();
|
||||
QUndoCommand *parent_undo = new ChangePartCommand (undo_text, p_cep, property, p_cep->property(property), new_value);
|
||||
|
||||
//And other parts are just child of parent
|
||||
foreach (CustomElementPart *cep, updated_part)
|
||||
new ChangePartCommand (undo_text, cep, property, cep->property(property), new_value, parent_undo);
|
||||
|
||||
undoStack().push(parent_undo);
|
||||
}
|
||||
|
||||
/// @return Le nom du type d'element edite
|
||||
QString ElementItemEditor::elementTypeName() const {
|
||||
return(element_type_name);
|
||||
|
||||
Reference in New Issue
Block a user