folio report: improve GUI and add unlinkcommand

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2720 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2014-01-08 19:27:38 +00:00
parent ae7e6938d1
commit 601e4faaa0
5 changed files with 142 additions and 18 deletions

View File

@@ -1143,12 +1143,16 @@ LinkElementsCommand::LinkElementsCommand(Element *elmt1, Element *elmt2, QUndoCo
QUndoCommand(parent),
diagram_(elmt1->diagram()),
elmt_1(elmt1),
elmt_2(elmt2)
elmt_2(elmt2),
previous_report(0)
{
if (elmt1->linkType() & Element::AllReport &&
elmt2->linkType() & Element::AllReport)
elmt2->linkType() & Element::AllReport) {
setText(QObject::tr("Lier deux reports de folio",
"title for undo LinkElementsCommand if two elements are folio report"));
if(!elmt1->isFree())
previous_report = elmt1->linkedElements().first();
}
else setText(QObject::tr("Lier deux éléments"));
}
@@ -1165,6 +1169,8 @@ LinkElementsCommand::~LinkElementsCommand(){}
void LinkElementsCommand::undo() {
diagram_->showMe();
elmt_1->unlinkElement(elmt_2);
if (previous_report)
elmt_1->linkToElement(previous_report);
}
/**
@@ -1175,3 +1181,44 @@ void LinkElementsCommand::redo() {
diagram_->showMe();
elmt_1->linkToElement(elmt_2);
}
/**
* @brief unlinkElementsCommand::unlinkElementsCommand
* Constructor, unlink elmt2 or all elements if elmt2 isn't specified
* @param elmt1 element to set undo command
* @param elmt2 element to be unlinked
* @param parent undo parent
*/
unlinkElementsCommand::unlinkElementsCommand(Element *elmt1, Element *elmt2, QUndoCommand *parent):
QUndoCommand(parent),
diagram_(elmt1->diagram()),
element_(elmt1)
{
if (elmt2) elmt_list << elmt2;
else elmt_list << elmt1->linkedElements();
setText(QObject::tr("D\351lier %n \351l\351ment(s)", "", elmt_list.size()));
}
/**
* @brief unlinkElementsCommand::~unlinkElementsCommand
* destructor
*/
unlinkElementsCommand::~unlinkElementsCommand(){}
/**
* @brief unlinkElementsCommand::undo
*undo command
*/
void unlinkElementsCommand::undo() {
foreach (Element *elmt, elmt_list)
element_->linkToElement(elmt);
}
/**
* @brief unlinkElementsCommand::redo
*redo command
*/
void unlinkElementsCommand::redo() {
foreach (Element *elmt, elmt_list)
element_->unlinkElement(elmt);
}