forked from qt-creator/qt-creator
ModelEditor: Apply naming convention to getters
Change-Id: If9eaaf0dc54e26e4b7e2b8952efd951a9113f104 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
@@ -90,9 +90,9 @@ void ConfigController::readStereotypeDefinitions(const QString &path)
|
||||
try {
|
||||
parser.parse(&source);
|
||||
} catch (StereotypeDefinitionParserError x) {
|
||||
qDebug() << x.getErrorMsg() << "in line" << x.getSourcePos().getLineNumber();
|
||||
qDebug() << x.errorMessage() << "in line" << x.sourcePos().lineNumber();
|
||||
} catch (TextScannerError x) {
|
||||
qDebug() << x.getErrorMsg() << "in line" << x.getSourcePos().getLineNumber();
|
||||
qDebug() << x.errorMessage() << "in line" << x.sourcePos().lineNumber();
|
||||
} catch (...) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,13 +47,13 @@ public:
|
||||
|
||||
bool isValid() const { return m_sourceId >= 0 && m_lineNumber >= 0; }
|
||||
|
||||
int getSourceId() const { return m_sourceId; }
|
||||
int sourceId() const { return m_sourceId; }
|
||||
|
||||
int getLineNumber() const { return m_lineNumber; }
|
||||
int lineNumber() const { return m_lineNumber; }
|
||||
|
||||
bool hasColumnNumber() const { return m_columnNumber >= 0; }
|
||||
|
||||
int getColumnNumber() const { return m_columnNumber; }
|
||||
int columnNumber() const { return m_columnNumber; }
|
||||
|
||||
private:
|
||||
int m_sourceId;
|
||||
|
||||
@@ -202,19 +202,19 @@ void StereotypeDefinitionParser::parseFile()
|
||||
{
|
||||
for (;;) {
|
||||
Token token = readNextToken();
|
||||
if (token.getType() == Token::TOKEN_ENDOFINPUT) {
|
||||
if (token.type() == Token::TOKEN_ENDOFINPUT) {
|
||||
break;
|
||||
} else if (token.getType() != Token::TOKEN_KEYWORD || token.getSubtype() == KEYWORD_ICON) {
|
||||
} else if (token.type() != Token::TOKEN_KEYWORD || token.subtype() == KEYWORD_ICON) {
|
||||
parseIcon();
|
||||
} else if (token.getType() != Token::TOKEN_KEYWORD || token.getSubtype() == KEYWORD_TOOLBAR) {
|
||||
} else if (token.type() != Token::TOKEN_KEYWORD || token.subtype() == KEYWORD_TOOLBAR) {
|
||||
parseToolbar();
|
||||
} else {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected 'icon' or 'toolbar'."), token.getSourcePos());
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected 'icon' or 'toolbar'."), token.sourcePos());
|
||||
}
|
||||
token = d->m_scanner->read();
|
||||
if (token.getType() == Token::TOKEN_OPERATOR && token.getSubtype() == OPERATOR_PERIOD) {
|
||||
if (token.type() == Token::TOKEN_OPERATOR && token.subtype() == OPERATOR_PERIOD) {
|
||||
break;
|
||||
} else if (token.getType() != Token::TOKEN_OPERATOR || token.getSubtype() != OPERATOR_SEMICOLON) {
|
||||
} else if (token.type() != Token::TOKEN_OPERATOR || token.subtype() != OPERATOR_SEMICOLON) {
|
||||
d->m_scanner->unread(token);
|
||||
}
|
||||
}
|
||||
@@ -223,21 +223,21 @@ void StereotypeDefinitionParser::parseFile()
|
||||
void StereotypeDefinitionParser::parseIcon()
|
||||
{
|
||||
Token token = d->m_scanner->read();
|
||||
if (token.getType() != Token::TOKEN_IDENTIFIER && token.getType() != Token::TOKEN_KEYWORD) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.getSourcePos());
|
||||
if (token.type() != Token::TOKEN_IDENTIFIER && token.type() != Token::TOKEN_KEYWORD) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.sourcePos());
|
||||
}
|
||||
QString id = token.getText();
|
||||
QString id = token.text();
|
||||
StereotypeIcon stereotypeIcon;
|
||||
stereotypeIcon.setId(id);
|
||||
parseIconProperties(&stereotypeIcon);
|
||||
token = readNextToken();
|
||||
if (token.getType() != Token::TOKEN_KEYWORD || token.getSubtype() != KEYWORD_BEGIN) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'begin'."), token.getSourcePos());
|
||||
if (token.type() != Token::TOKEN_KEYWORD || token.subtype() != KEYWORD_BEGIN) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'begin'."), token.sourcePos());
|
||||
}
|
||||
parseIconCommands(&stereotypeIcon);
|
||||
token = readNextToken();
|
||||
if (token.getType() != Token::TOKEN_KEYWORD || token.getSubtype() != KEYWORD_END) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'end'."), token.getSourcePos());
|
||||
if (token.type() != Token::TOKEN_KEYWORD || token.subtype() != KEYWORD_END) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'end'."), token.sourcePos());
|
||||
}
|
||||
emit iconParsed(stereotypeIcon);
|
||||
}
|
||||
@@ -250,10 +250,10 @@ void StereotypeDefinitionParser::parseIconProperties(StereotypeIcon *stereotypeI
|
||||
QSet<QString> stereotypes;
|
||||
while (loop) {
|
||||
token = readNextToken();
|
||||
if (token.getType() != Token::TOKEN_KEYWORD) {
|
||||
if (token.type() != Token::TOKEN_KEYWORD) {
|
||||
loop = false;
|
||||
} else {
|
||||
switch (token.getSubtype()) {
|
||||
switch (token.subtype()) {
|
||||
case KEYWORD_TITLE:
|
||||
stereotypeIcon->setTitle(parseStringProperty());
|
||||
expectSemicolonOrEndOfLine();
|
||||
@@ -270,7 +270,7 @@ void StereotypeDefinitionParser::parseIconProperties(StereotypeIcon *stereotypeI
|
||||
<< qMakePair(QString(QStringLiteral("item")), StereotypeIcon::ELEMENT_ITEM);
|
||||
QString elementName = identifier.toLower();
|
||||
if (!elementNames.contains(elementName)) {
|
||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Unexpected value \"%1\" for element.")).arg(identifier), token.getSourcePos());
|
||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Unexpected value \"%1\" for element.")).arg(identifier), token.sourcePos());
|
||||
}
|
||||
elements.insert(elementNames.value(elementName));
|
||||
}
|
||||
@@ -311,7 +311,7 @@ void StereotypeDefinitionParser::parseIconProperties(StereotypeIcon *stereotypeI
|
||||
StereotypeIcon::SizeLock sizeLock = lockNames.value(lockName);
|
||||
stereotypeIcon->setSizeLock(sizeLock);
|
||||
} else {
|
||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Unexpected value \"%1\" for size lock.")).arg(lockValue), token.getSourcePos());
|
||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Unexpected value \"%1\" for size lock.")).arg(lockValue), token.sourcePos());
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -329,7 +329,7 @@ void StereotypeDefinitionParser::parseIconProperties(StereotypeIcon *stereotypeI
|
||||
StereotypeIcon::Display display = displayNames.value(displayName);
|
||||
stereotypeIcon->setDisplay(display);
|
||||
} else {
|
||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Unexpected value \"%1\" for stereotype display.")).arg(displayValue), token.getSourcePos());
|
||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Unexpected value \"%1\" for stereotype display.")).arg(displayValue), token.sourcePos());
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -345,7 +345,7 @@ void StereotypeDefinitionParser::parseIconProperties(StereotypeIcon *stereotypeI
|
||||
StereotypeIcon::TextAlignment textAlignment = alignNames.value(alignName);
|
||||
stereotypeIcon->setTextAlignment(textAlignment);
|
||||
} else {
|
||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Unexpected value \"%1\" for text alignment.")).arg(alignValue), token.getSourcePos());
|
||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Unexpected value \"%1\" for text alignment.")).arg(alignValue), token.sourcePos());
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -367,21 +367,21 @@ void StereotypeDefinitionParser::parseIconProperties(StereotypeIcon *stereotypeI
|
||||
void StereotypeDefinitionParser::parseToolbar()
|
||||
{
|
||||
Token token = d->m_scanner->read();
|
||||
if (token.getType() != Token::TOKEN_IDENTIFIER && token.getType() != Token::TOKEN_KEYWORD) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.getSourcePos());
|
||||
if (token.type() != Token::TOKEN_IDENTIFIER && token.type() != Token::TOKEN_KEYWORD) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.sourcePos());
|
||||
}
|
||||
QString id = token.getText();
|
||||
QString id = token.text();
|
||||
Toolbar toolbar;
|
||||
toolbar.setId(id);
|
||||
parseToolbarProperties(&toolbar);
|
||||
token = readNextToken();
|
||||
if (token.getType() != Token::TOKEN_KEYWORD || token.getSubtype() != KEYWORD_BEGIN) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'begin'."), token.getSourcePos());
|
||||
if (token.type() != Token::TOKEN_KEYWORD || token.subtype() != KEYWORD_BEGIN) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'begin'."), token.sourcePos());
|
||||
}
|
||||
parseToolbarCommands(&toolbar);
|
||||
token = readNextToken();
|
||||
if (token.getType() != Token::TOKEN_KEYWORD || token.getSubtype() != KEYWORD_END) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'end'."), token.getSourcePos());
|
||||
if (token.type() != Token::TOKEN_KEYWORD || token.subtype() != KEYWORD_END) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'end'."), token.sourcePos());
|
||||
}
|
||||
emit toolbarParsed(toolbar);
|
||||
}
|
||||
@@ -392,10 +392,10 @@ void StereotypeDefinitionParser::parseToolbarProperties(Toolbar *toolbar)
|
||||
bool loop = true;
|
||||
while (loop) {
|
||||
token = readNextToken();
|
||||
if (token.getType() != Token::TOKEN_KEYWORD) {
|
||||
if (token.type() != Token::TOKEN_KEYWORD) {
|
||||
loop = false;
|
||||
} else {
|
||||
switch (token.getSubtype()) {
|
||||
switch (token.subtype()) {
|
||||
case KEYWORD_PRIORITY:
|
||||
toolbar->setPriority(parseIntProperty());
|
||||
break;
|
||||
@@ -438,13 +438,13 @@ QList<QString> StereotypeDefinitionParser::parseIdentifierListProperty()
|
||||
expectColon();
|
||||
for (;;) {
|
||||
Token token = d->m_scanner->read();
|
||||
if (token.getType() != Token::TOKEN_IDENTIFIER && token.getType() != Token::TOKEN_KEYWORD) {
|
||||
qDebug() << "token" << token.getType() << token.getSubtype() << token.getText();
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.getSourcePos());
|
||||
if (token.type() != Token::TOKEN_IDENTIFIER && token.type() != Token::TOKEN_KEYWORD) {
|
||||
qDebug() << "token" << token.type() << token.subtype() << token.text();
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.sourcePos());
|
||||
}
|
||||
identifiers.append(token.getText());
|
||||
identifiers.append(token.text());
|
||||
token = d->m_scanner->read();
|
||||
if (token.getType() != Token::TOKEN_OPERATOR || token.getSubtype() != OPERATOR_COMMA) {
|
||||
if (token.type() != Token::TOKEN_OPERATOR || token.subtype() != OPERATOR_COMMA) {
|
||||
d->m_scanner->unread(token);
|
||||
break;
|
||||
}
|
||||
@@ -478,10 +478,10 @@ void StereotypeDefinitionParser::parseIconCommands(StereotypeIcon *stereotypeIco
|
||||
|
||||
while (loop) {
|
||||
token = readNextToken();
|
||||
if (token.getType() != Token::TOKEN_KEYWORD) {
|
||||
if (token.type() != Token::TOKEN_KEYWORD) {
|
||||
loop = false;
|
||||
} else {
|
||||
switch (token.getSubtype()) {
|
||||
switch (token.subtype()) {
|
||||
case KEYWORD_CIRCLE:
|
||||
parameters = parseIconCommandParameters(Parameters() << SCALED << SCALED << SCALED);
|
||||
iconShape.addCircle(ShapePointF(parameters.at(0), parameters.at(1)), parameters.at(2));
|
||||
@@ -510,8 +510,8 @@ void StereotypeDefinitionParser::parseIconCommands(StereotypeIcon *stereotypeIco
|
||||
case KEYWORD_ARC:
|
||||
{
|
||||
parameters = parseIconCommandParameters(Parameters() << SCALED << SCALED << SCALED << SCALED << ABSOLUTE << ABSOLUTE);
|
||||
qreal startAngle = expectAbsoluteValue(parameters.at(4), d->m_scanner->getSourcePos());
|
||||
qreal spanAngle = expectAbsoluteValue(parameters.at(5), d->m_scanner->getSourcePos());
|
||||
qreal startAngle = expectAbsoluteValue(parameters.at(4), d->m_scanner->sourcePos());
|
||||
qreal spanAngle = expectAbsoluteValue(parameters.at(5), d->m_scanner->sourcePos());
|
||||
iconShape.addArc(ShapePointF(parameters.at(0), parameters.at(1)), ShapeSizeF(parameters.at(2), parameters.at(3)), startAngle, spanAngle);
|
||||
expectSemicolonOrEndOfLine();
|
||||
break;
|
||||
@@ -529,7 +529,7 @@ void StereotypeDefinitionParser::parseIconCommands(StereotypeIcon *stereotypeIco
|
||||
case KEYWORD_ARCMOVETO:
|
||||
{
|
||||
parameters = parseIconCommandParameters(Parameters() << SCALED << SCALED << SCALED << SCALED << ABSOLUTE);
|
||||
qreal angle = expectAbsoluteValue(parameters.at(4), d->m_scanner->getSourcePos());
|
||||
qreal angle = expectAbsoluteValue(parameters.at(4), d->m_scanner->sourcePos());
|
||||
iconShape.arcMoveTo(ShapePointF(parameters.at(0), parameters.at(1)), ShapeSizeF(parameters.at(2), parameters.at(3)), angle);
|
||||
expectSemicolonOrEndOfLine();
|
||||
break;
|
||||
@@ -537,8 +537,8 @@ void StereotypeDefinitionParser::parseIconCommands(StereotypeIcon *stereotypeIco
|
||||
case KEYWORD_ARCTO:
|
||||
{
|
||||
parameters = parseIconCommandParameters(Parameters() << SCALED << SCALED << SCALED << SCALED << ABSOLUTE << ABSOLUTE);
|
||||
qreal startAngle = expectAbsoluteValue(parameters.at(4), d->m_scanner->getSourcePos());
|
||||
qreal sweepLength = expectAbsoluteValue(parameters.at(5), d->m_scanner->getSourcePos());
|
||||
qreal startAngle = expectAbsoluteValue(parameters.at(4), d->m_scanner->sourcePos());
|
||||
qreal sweepLength = expectAbsoluteValue(parameters.at(5), d->m_scanner->sourcePos());
|
||||
iconShape.arcTo(ShapePointF(parameters.at(0), parameters.at(1)), ShapeSizeF(parameters.at(2), parameters.at(3)), startAngle, sweepLength);
|
||||
expectSemicolonOrEndOfLine();
|
||||
break;
|
||||
@@ -568,15 +568,15 @@ QList<ShapeValueF> StereotypeDefinitionParser::parseIconCommandParameters(const
|
||||
values << ShapeValueF(parseFloatExpression());
|
||||
}
|
||||
token = d->m_scanner->read();
|
||||
if (token.getType() != Token::TOKEN_OPERATOR || token.getSubtype() != OPERATOR_COMMA) {
|
||||
if (token.type() != Token::TOKEN_OPERATOR || token.subtype() != OPERATOR_COMMA) {
|
||||
d->m_scanner->unread(token);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (values.count() < parameters.count()) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("More parameters expected."), token.getSourcePos());
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("More parameters expected."), token.sourcePos());
|
||||
} else if (values.count() > parameters.count()) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Too many parameters given."), token.getSourcePos());
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Too many parameters given."), token.sourcePos());
|
||||
}
|
||||
return values;
|
||||
}
|
||||
@@ -588,10 +588,10 @@ void StereotypeDefinitionParser::parseToolbarCommands(Toolbar *toolbar)
|
||||
bool loop = true;
|
||||
while (loop) {
|
||||
token = readNextToken();
|
||||
if (token.getType() != Token::TOKEN_KEYWORD) {
|
||||
if (token.type() != Token::TOKEN_KEYWORD) {
|
||||
loop = false;
|
||||
} else {
|
||||
switch (token.getSubtype()) {
|
||||
switch (token.subtype()) {
|
||||
case KEYWORD_TOOL:
|
||||
{
|
||||
QString toolName = parseStringExpression();
|
||||
@@ -606,7 +606,7 @@ void StereotypeDefinitionParser::parseToolbarCommands(Toolbar *toolbar)
|
||||
<< QStringLiteral("boundary");
|
||||
QString elementName = element.toLower();
|
||||
if (!elementNames.contains(elementName)) {
|
||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Unexpected value \"%1\" for element.")).arg(element), token.getSourcePos());
|
||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Unexpected value \"%1\" for element.")).arg(element), token.sourcePos());
|
||||
}
|
||||
QString stereotype;
|
||||
if (nextIsComma()) {
|
||||
@@ -633,30 +633,30 @@ void StereotypeDefinitionParser::parseToolbarCommands(Toolbar *toolbar)
|
||||
QString StereotypeDefinitionParser::parseStringExpression()
|
||||
{
|
||||
Token token = d->m_scanner->read();
|
||||
if (token.getType() != Token::TOKEN_STRING) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected string constant."), token.getSourcePos());
|
||||
if (token.type() != Token::TOKEN_STRING) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected string constant."), token.sourcePos());
|
||||
}
|
||||
return token.getText();
|
||||
return token.text();
|
||||
}
|
||||
|
||||
qreal StereotypeDefinitionParser::parseFloatExpression()
|
||||
{
|
||||
Token token;
|
||||
token = d->m_scanner->read();
|
||||
if (token.getType() == Token::TOKEN_OPERATOR && token.getSubtype() == OPERATOR_MINUS) {
|
||||
if (token.type() == Token::TOKEN_OPERATOR && token.subtype() == OPERATOR_MINUS) {
|
||||
return -parseFloatExpression();
|
||||
} else {
|
||||
bool ok = false;
|
||||
if (token.getType() == Token::TOKEN_INTEGER) {
|
||||
int value = token.getText().toInt(&ok);
|
||||
if (token.type() == Token::TOKEN_INTEGER) {
|
||||
int value = token.text().toInt(&ok);
|
||||
QMT_CHECK(ok);
|
||||
return value;
|
||||
} else if (token.getType() == Token::TOKEN_FLOAT) {
|
||||
qreal value = token.getText().toDouble(&ok);
|
||||
} else if (token.type() == Token::TOKEN_FLOAT) {
|
||||
qreal value = token.text().toDouble(&ok);
|
||||
QMT_CHECK(ok);
|
||||
return value;
|
||||
} else {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected number constant."), token.getSourcePos());
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected number constant."), token.sourcePos());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -665,16 +665,16 @@ int StereotypeDefinitionParser::parseIntExpression()
|
||||
{
|
||||
Token token;
|
||||
token = d->m_scanner->read();
|
||||
if (token.getType() == Token::TOKEN_OPERATOR && token.getSubtype() == OPERATOR_MINUS) {
|
||||
if (token.type() == Token::TOKEN_OPERATOR && token.subtype() == OPERATOR_MINUS) {
|
||||
return -parseIntExpression();
|
||||
} else {
|
||||
bool ok = false;
|
||||
if (token.getType() == Token::TOKEN_INTEGER) {
|
||||
int value = token.getText().toInt(&ok);
|
||||
if (token.type() == Token::TOKEN_INTEGER) {
|
||||
int value = token.text().toInt(&ok);
|
||||
QMT_CHECK(ok);
|
||||
return value;
|
||||
} else {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected integer constant."), token.getSourcePos());
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected integer constant."), token.sourcePos());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -682,38 +682,38 @@ int StereotypeDefinitionParser::parseIntExpression()
|
||||
QString StereotypeDefinitionParser::parseIdentifierExpression()
|
||||
{
|
||||
Token token = d->m_scanner->read();
|
||||
if (token.getType() != Token::TOKEN_IDENTIFIER && token.getType() != Token::TOKEN_KEYWORD) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.getSourcePos());
|
||||
if (token.type() != Token::TOKEN_IDENTIFIER && token.type() != Token::TOKEN_KEYWORD) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.sourcePos());
|
||||
}
|
||||
return token.getText();
|
||||
return token.text();
|
||||
}
|
||||
|
||||
bool StereotypeDefinitionParser::parseBoolExpression()
|
||||
{
|
||||
Token token = d->m_scanner->read();
|
||||
if (token.getType() == Token::TOKEN_IDENTIFIER) {
|
||||
QString value = token.getText().toLower();
|
||||
if (token.type() == Token::TOKEN_IDENTIFIER) {
|
||||
QString value = token.text().toLower();
|
||||
if (value == QStringLiteral("yes") || value == QStringLiteral("true")) {
|
||||
return true;
|
||||
} else if (value == QStringLiteral("no") || value == QStringLiteral("false")) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected 'yes', 'no', 'true' or 'false'."), token.getSourcePos());
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected 'yes', 'no', 'true' or 'false'."), token.sourcePos());
|
||||
}
|
||||
|
||||
QColor StereotypeDefinitionParser::parseColorExpression()
|
||||
{
|
||||
Token token = d->m_scanner->read();
|
||||
if (token.getType() == Token::TOKEN_IDENTIFIER || token.getType() == Token::TOKEN_COLOR) {
|
||||
QString value = token.getText().toLower();
|
||||
if (token.type() == Token::TOKEN_IDENTIFIER || token.type() == Token::TOKEN_COLOR) {
|
||||
QString value = token.text().toLower();
|
||||
QColor color;
|
||||
if (QColor::isValidColor(value)) {
|
||||
color.setNamedColor(value);
|
||||
return color;
|
||||
}
|
||||
}
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected color name."), token.getSourcePos());
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected color name."), token.sourcePos());
|
||||
}
|
||||
|
||||
Token StereotypeDefinitionParser::readNextToken()
|
||||
@@ -721,7 +721,7 @@ Token StereotypeDefinitionParser::readNextToken()
|
||||
Token token;
|
||||
for (;;) {
|
||||
token = d->m_scanner->read();
|
||||
if (token.getType() != Token::TOKEN_ENDOFLINE) {
|
||||
if (token.type() != Token::TOKEN_ENDOFLINE) {
|
||||
return token;
|
||||
}
|
||||
}
|
||||
@@ -729,24 +729,24 @@ Token StereotypeDefinitionParser::readNextToken()
|
||||
|
||||
qreal StereotypeDefinitionParser::expectAbsoluteValue(const ShapeValueF &value, const SourcePos &sourcePos)
|
||||
{
|
||||
if (value.getUnit() != ShapeValueF::UNIT_ABSOLUTE || value.getOrigin() != ShapeValueF::ORIGIN_SMART) {
|
||||
if (value.unit() != ShapeValueF::UNIT_ABSOLUTE || value.origin() != ShapeValueF::ORIGIN_SMART) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected absolute value"), sourcePos);
|
||||
}
|
||||
return value.getValue();
|
||||
return value.value();
|
||||
}
|
||||
|
||||
void StereotypeDefinitionParser::expectSemicolonOrEndOfLine()
|
||||
{
|
||||
Token token = d->m_scanner->read();
|
||||
if (token.getType() != Token::TOKEN_ENDOFLINE && (token.getType() != Token::TOKEN_OPERATOR || token.getSubtype() != OPERATOR_SEMICOLON)) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected ';' or end-of-line."), token.getSourcePos());
|
||||
if (token.type() != Token::TOKEN_ENDOFLINE && (token.type() != Token::TOKEN_OPERATOR || token.subtype() != OPERATOR_SEMICOLON)) {
|
||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected ';' or end-of-line."), token.sourcePos());
|
||||
}
|
||||
}
|
||||
|
||||
bool StereotypeDefinitionParser::nextIsComma()
|
||||
{
|
||||
Token token = d->m_scanner->read();
|
||||
if (token.getType() != Token::TOKEN_OPERATOR || token.getSubtype() != OPERATOR_COMMA) {
|
||||
if (token.type() != Token::TOKEN_OPERATOR || token.subtype() != OPERATOR_COMMA) {
|
||||
d->m_scanner->unread(token);
|
||||
return false;
|
||||
}
|
||||
@@ -756,8 +756,8 @@ bool StereotypeDefinitionParser::nextIsComma()
|
||||
void StereotypeDefinitionParser::expectOperator(int op, const QString &opName)
|
||||
{
|
||||
Token token = d->m_scanner->read();
|
||||
if (token.getType() != Token::TOKEN_OPERATOR || token.getSubtype() != op) {
|
||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Expected '%1'.")).arg(opName), token.getSourcePos());
|
||||
if (token.type() != Token::TOKEN_OPERATOR || token.subtype() != op) {
|
||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Expected '%1'.")).arg(opName), token.sourcePos());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
SourcePos getSourcePos() const { return m_sourcePos; }
|
||||
SourcePos sourcePos() const { return m_sourcePos; }
|
||||
|
||||
private:
|
||||
SourcePos m_sourcePos;
|
||||
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
|
||||
void setText(const QString &text);
|
||||
|
||||
int getSourceId() const { return m_sourceId; }
|
||||
int sourceId() const { return m_sourceId; }
|
||||
|
||||
void setSourceId(int sourceId);
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ void TextScanner::setSource(ITextSource *textSource)
|
||||
d->m_source = textSource;
|
||||
}
|
||||
|
||||
SourcePos TextScanner::getSourcePos() const
|
||||
SourcePos TextScanner::sourcePos() const
|
||||
{
|
||||
return d->m_lastSourcePos;
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
SourcePos getSourcePos() const { return m_sourcePos; }
|
||||
SourcePos sourcePos() const { return m_sourcePos; }
|
||||
|
||||
private:
|
||||
SourcePos m_sourcePos;
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
|
||||
void setSource(ITextSource *textSource);
|
||||
|
||||
SourcePos getSourcePos() const;
|
||||
SourcePos sourcePos() const;
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@@ -62,19 +62,19 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
Type getType() const { return m_type; }
|
||||
Type type() const { return m_type; }
|
||||
|
||||
void setType(Type type);
|
||||
|
||||
int getSubtype() const { return m_subtype; }
|
||||
int subtype() const { return m_subtype; }
|
||||
|
||||
void setSubtype(int subtype);
|
||||
|
||||
QString getText() const { return m_text; }
|
||||
QString text() const { return m_text; }
|
||||
|
||||
void setText(const QString &text);
|
||||
|
||||
SourcePos getSourcePos() const { return m_sourcePos; }
|
||||
SourcePos sourcePos() const { return m_sourcePos; }
|
||||
|
||||
void setSourcePos(const SourcePos &sourcePos);
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
|
||||
int size() const { return m_elements.size(); }
|
||||
|
||||
QList<T *> getElements() const { return m_elements; }
|
||||
QList<T *> elements() const { return m_elements; }
|
||||
|
||||
QList<T *> takeElements() const
|
||||
{
|
||||
|
||||
@@ -51,7 +51,7 @@ public:
|
||||
|
||||
int size() const { return m_elements.size(); }
|
||||
|
||||
QList<T *> getElements() const { return m_elements; }
|
||||
QList<T *> elements() const { return m_elements; }
|
||||
|
||||
void setElements(const QList<T *> &elements) { m_elements = elements; }
|
||||
|
||||
|
||||
@@ -50,9 +50,9 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
Uid getElementKey() const { return m_elementKey; }
|
||||
Uid elementKey() const { return m_elementKey; }
|
||||
|
||||
Uid getOwnerKey() const { return m_ownerKey; }
|
||||
Uid ownerKey() const { return m_ownerKey; }
|
||||
|
||||
private:
|
||||
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
|
||||
bool isEmpty() const { return m_indices.isEmpty(); }
|
||||
|
||||
QList<Index> getIndices() const { return m_indices; }
|
||||
QList<Index> indices() const { return m_indices; }
|
||||
|
||||
void setIndices(const QList<Index> &indices);
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ signals:
|
||||
|
||||
public:
|
||||
|
||||
QUndoStack *getUndoStack() const { return m_undoStack; }
|
||||
QUndoStack *undoStack() const { return m_undoStack; }
|
||||
|
||||
public slots:
|
||||
|
||||
|
||||
@@ -66,21 +66,21 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
Uid getModelUid() const { return Uid::getInvalidUid(); }
|
||||
Uid modelUid() const { return Uid::invalidUid(); }
|
||||
|
||||
QString getText() const { return m_text; }
|
||||
QString text() const { return m_text; }
|
||||
|
||||
void setText(const QString &text);
|
||||
|
||||
QPointF getPos() const { return m_pos; }
|
||||
QPointF pos() const { return m_pos; }
|
||||
|
||||
void setPos(const QPointF &pos);
|
||||
|
||||
QRectF getRect() const { return m_rect; }
|
||||
QRectF rect() const { return m_rect; }
|
||||
|
||||
void setRect(const QRectF &rect);
|
||||
|
||||
VisualRole getVisualRole() const { return m_visualRole; }
|
||||
VisualRole visualRole() const { return m_visualRole; }
|
||||
|
||||
void setVisualRole(VisualRole visualRole);
|
||||
|
||||
|
||||
@@ -71,9 +71,9 @@ bool operator==(const DAssociationEnd &lhs, const DAssociationEnd &rhs)
|
||||
if (&lhs == &rhs) {
|
||||
return true;
|
||||
}
|
||||
return lhs.getName() == rhs.getName()
|
||||
&& lhs.getCardinality() == rhs.getCardinality()
|
||||
&& lhs.getKind() == rhs.getKind()
|
||||
return lhs.name() == rhs.name()
|
||||
&& lhs.cardinality() == rhs.cardinality()
|
||||
&& lhs.kind() == rhs.kind()
|
||||
&& lhs.isNavigable() == rhs.isNavigable();
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ bool operator!=(const DAssociationEnd &lhs, const DAssociationEnd &rhs)
|
||||
|
||||
|
||||
DAssociation::DAssociation()
|
||||
: m_associationClassUid(Uid::getInvalidUid())
|
||||
: m_associationClassUid(Uid::invalidUid())
|
||||
{
|
||||
}
|
||||
|
||||
@@ -93,12 +93,12 @@ DAssociation::~DAssociation()
|
||||
{
|
||||
}
|
||||
|
||||
void DAssociation::setA(const DAssociationEnd &endA)
|
||||
void DAssociation::setEndA(const DAssociationEnd &endA)
|
||||
{
|
||||
m_endA = endA;
|
||||
}
|
||||
|
||||
void DAssociation::setB(const DAssociationEnd &endB)
|
||||
void DAssociation::setEndB(const DAssociationEnd &endB)
|
||||
{
|
||||
m_endB = endB;
|
||||
}
|
||||
|
||||
@@ -47,15 +47,15 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QString getName() const { return m_name; }
|
||||
QString name() const { return m_name; }
|
||||
|
||||
void setName(const QString &name);
|
||||
|
||||
QString getCardinality() const { return m_cardinality; }
|
||||
QString cardinality() const { return m_cardinality; }
|
||||
|
||||
void setCardinatlity(const QString &cardinality);
|
||||
|
||||
MAssociationEnd::Kind getKind() const { return m_kind; }
|
||||
MAssociationEnd::Kind kind() const { return m_kind; }
|
||||
|
||||
void setKind(MAssociationEnd::Kind kind);
|
||||
|
||||
@@ -90,15 +90,15 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
DAssociationEnd getA() const { return m_endA; }
|
||||
DAssociationEnd endA() const { return m_endA; }
|
||||
|
||||
void setA(const DAssociationEnd &endA);
|
||||
void setEndA(const DAssociationEnd &endA);
|
||||
|
||||
DAssociationEnd getB() const { return m_endB; }
|
||||
DAssociationEnd endB() const { return m_endB; }
|
||||
|
||||
void setB(const DAssociationEnd &endB);
|
||||
void setEndB(const DAssociationEnd &endB);
|
||||
|
||||
Uid getAssoicationClassUid() const { return m_associationClassUid; }
|
||||
Uid assoicationClassUid() const { return m_associationClassUid; }
|
||||
|
||||
void setAssociationClassUid(const Uid &uid);
|
||||
|
||||
|
||||
@@ -55,17 +55,17 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
Uid getModelUid() const { return Uid::getInvalidUid(); }
|
||||
Uid modelUid() const { return Uid::invalidUid(); }
|
||||
|
||||
QString getText() const { return m_text; }
|
||||
QString text() const { return m_text; }
|
||||
|
||||
void setText(const QString &text);
|
||||
|
||||
QPointF getPos() const { return m_pos; }
|
||||
QPointF pos() const { return m_pos; }
|
||||
|
||||
void setPos(const QPointF &pos);
|
||||
|
||||
QRectF getRect() const { return m_rect; }
|
||||
QRectF rect() const { return m_rect; }
|
||||
|
||||
void setRect(const QRectF &rect);
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ DClass::DClass()
|
||||
{
|
||||
}
|
||||
|
||||
void DClass::setNamespace(const QString &nameSpace)
|
||||
void DClass::setNameSpace(const QString &nameSpace)
|
||||
{
|
||||
m_namespace = nameSpace;
|
||||
}
|
||||
|
||||
14
src/libs/3rdparty/modeling/qmt/diagram/dclass.h
vendored
14
src/libs/3rdparty/modeling/qmt/diagram/dclass.h
vendored
@@ -55,27 +55,27 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QString getNamespace() const { return m_namespace; }
|
||||
QString nameSpace() const { return m_namespace; }
|
||||
|
||||
void setNamespace(const QString &nameSpace);
|
||||
void setNameSpace(const QString &nameSpace);
|
||||
|
||||
QList<QString> getTemplateParameters() const { return m_templateParameters; }
|
||||
QList<QString> templateParameters() const { return m_templateParameters; }
|
||||
|
||||
void setTemplateParameters(const QList<QString> &templateParameters);
|
||||
|
||||
QList<MClassMember> getMembers() const { return m_members; }
|
||||
QList<MClassMember> members() const { return m_members; }
|
||||
|
||||
void setMembers(const QList<MClassMember> &members);
|
||||
|
||||
QSet<Uid> getVisibleMembers() const { return m_visibleMembers; }
|
||||
QSet<Uid> visibleMembers() const { return m_visibleMembers; }
|
||||
|
||||
void setVisibleMembers(const QSet<Uid> &visibleMembers);
|
||||
|
||||
TemplateDisplay getTemplateDisplay() const { return m_templateDisplay; }
|
||||
TemplateDisplay templateDisplay() const { return m_templateDisplay; }
|
||||
|
||||
void setTemplateDisplay(TemplateDisplay templateDisplay);
|
||||
|
||||
bool getShowAllMembers() const { return m_showAllMembers; }
|
||||
bool showAllMembers() const { return m_showAllMembers; }
|
||||
|
||||
void setShowAllMembers(bool showAllMembers);
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
bool getPlainShape() const { return m_plainShape; }
|
||||
bool plainShape() const { return m_plainShape; }
|
||||
|
||||
void setPlainShape(bool planeShape);
|
||||
|
||||
|
||||
@@ -45,24 +45,24 @@ DDependency::~DDependency()
|
||||
{
|
||||
}
|
||||
|
||||
Uid DDependency::getSource() const
|
||||
Uid DDependency::source() const
|
||||
{
|
||||
return m_direction == MDependency::B_TO_A ? getEndB() : getEndA();
|
||||
return m_direction == MDependency::B_TO_A ? endBUid() : endAUid();
|
||||
}
|
||||
|
||||
void DDependency::setSource(const Uid &source)
|
||||
{
|
||||
m_direction == MDependency::B_TO_A ? setEndB(source) : setEndA(source);
|
||||
m_direction == MDependency::B_TO_A ? setEndBUid(source) : setEndAUid(source);
|
||||
}
|
||||
|
||||
Uid DDependency::getTarget() const
|
||||
Uid DDependency::target() const
|
||||
{
|
||||
return m_direction == MDependency::B_TO_A ? getEndA() : getEndB();
|
||||
return m_direction == MDependency::B_TO_A ? endAUid() : endBUid();
|
||||
}
|
||||
|
||||
void DDependency::setTarget(const Uid &target)
|
||||
{
|
||||
return m_direction == MDependency::B_TO_A ? setEndA(target) : setEndB(target);
|
||||
return m_direction == MDependency::B_TO_A ? setEndAUid(target) : setEndBUid(target);
|
||||
}
|
||||
|
||||
void DDependency::setDirection(MDependency::Direction direction)
|
||||
|
||||
@@ -51,15 +51,15 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
Uid getSource() const;
|
||||
Uid source() const;
|
||||
|
||||
void setSource(const Uid &source);
|
||||
|
||||
Uid getTarget() const;
|
||||
Uid target() const;
|
||||
|
||||
void setTarget(const Uid &target);
|
||||
|
||||
MDependency::Direction getDirection() const { return m_direction; }
|
||||
MDependency::Direction direction() const { return m_direction; }
|
||||
|
||||
void setDirection(MDependency::Direction direction);
|
||||
|
||||
|
||||
@@ -50,13 +50,13 @@ public:
|
||||
virtual ~DElement();
|
||||
|
||||
public:
|
||||
Uid getUid() const { return m_uid; }
|
||||
Uid uid() const { return m_uid; }
|
||||
|
||||
void setUid(const Uid &uid);
|
||||
|
||||
void renewUid();
|
||||
|
||||
virtual Uid getModelUid() const = 0;
|
||||
virtual Uid modelUid() const = 0;
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@@ -42,24 +42,24 @@ DInheritance::DInheritance()
|
||||
{
|
||||
}
|
||||
|
||||
Uid DInheritance::getDerived() const
|
||||
Uid DInheritance::derived() const
|
||||
{
|
||||
return getEndA();
|
||||
return endAUid();
|
||||
}
|
||||
|
||||
void DInheritance::setDerived(const Uid &derived)
|
||||
{
|
||||
setEndA(derived);
|
||||
setEndAUid(derived);
|
||||
}
|
||||
|
||||
Uid DInheritance::getBase() const
|
||||
Uid DInheritance::base() const
|
||||
{
|
||||
return getEndB();
|
||||
return endBUid();
|
||||
}
|
||||
|
||||
void DInheritance::setBase(const Uid &base)
|
||||
{
|
||||
setEndB(base);
|
||||
setEndBUid(base);
|
||||
}
|
||||
|
||||
void DInheritance::accept(DVisitor *visitor)
|
||||
|
||||
@@ -47,11 +47,11 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
Uid getDerived() const;
|
||||
Uid derived() const;
|
||||
|
||||
void setDerived(const Uid &derived);
|
||||
|
||||
Uid getBase() const;
|
||||
Uid base() const;
|
||||
|
||||
void setBase(const Uid &base);
|
||||
|
||||
|
||||
@@ -47,11 +47,11 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QString getVariety() const { return m_variety; }
|
||||
QString variety() const { return m_variety; }
|
||||
|
||||
void setVariety(const QString &variety);
|
||||
|
||||
QString getShape() const { return m_shape; }
|
||||
QString shape() const { return m_shape; }
|
||||
|
||||
void setShape(const QString &shape);
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace qmt {
|
||||
|
||||
DObject::DObject()
|
||||
: DElement(),
|
||||
m_modelUid(Uid::getInvalidUid()),
|
||||
m_modelUid(Uid::invalidUid()),
|
||||
m_depth(0),
|
||||
m_visualPrimaryRole(PRIMARY_ROLE_NORMAL),
|
||||
m_visualSecondaryRole(SECONDARY_ROLE_NONE),
|
||||
|
||||
20
src/libs/3rdparty/modeling/qmt/diagram/dobject.h
vendored
20
src/libs/3rdparty/modeling/qmt/diagram/dobject.h
vendored
@@ -92,43 +92,43 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
Uid getModelUid() const { return m_modelUid; }
|
||||
Uid modelUid() const { return m_modelUid; }
|
||||
|
||||
void setModelUid(const Uid &uid);
|
||||
|
||||
QList<QString> getStereotypes() const { return m_stereotypes; }
|
||||
QList<QString> stereotypes() const { return m_stereotypes; }
|
||||
|
||||
void setStereotypes(const QList<QString> &stereotypes);
|
||||
|
||||
QString getContext() const { return m_context; }
|
||||
QString context() const { return m_context; }
|
||||
|
||||
void setContext(const QString &context);
|
||||
|
||||
QString getName() const { return m_name; }
|
||||
QString name() const { return m_name; }
|
||||
|
||||
void setName(const QString &name);
|
||||
|
||||
QPointF getPos() const { return m_pos; }
|
||||
QPointF pos() const { return m_pos; }
|
||||
|
||||
void setPos(const QPointF &pos);
|
||||
|
||||
QRectF getRect() const { return m_rect; }
|
||||
QRectF rect() const { return m_rect; }
|
||||
|
||||
void setRect(const QRectF &rect);
|
||||
|
||||
int getDepth() const { return m_depth; }
|
||||
int depth() const { return m_depth; }
|
||||
|
||||
void setDepth(int depth);
|
||||
|
||||
VisualPrimaryRole getVisualPrimaryRole() const { return m_visualPrimaryRole; }
|
||||
VisualPrimaryRole visualPrimaryRole() const { return m_visualPrimaryRole; }
|
||||
|
||||
void setVisualPrimaryRole(VisualPrimaryRole visualPrimaryRole);
|
||||
|
||||
VisualSecondaryRole getVisualSecondaryRole() const { return m_visualSecondaryRole; }
|
||||
VisualSecondaryRole visualSecondaryRole() const { return m_visualSecondaryRole; }
|
||||
|
||||
void setVisualSecondaryRole(VisualSecondaryRole visualSecondaryRole);
|
||||
|
||||
StereotypeDisplay getStereotypeDisplay() const { return m_stereotypeDisplay; }
|
||||
StereotypeDisplay stereotypeDisplay() const { return m_stereotypeDisplay; }
|
||||
|
||||
void setStereotypeDisplay(StereotypeDisplay stereotypeDisplay);
|
||||
|
||||
|
||||
@@ -48,15 +48,15 @@ void DRelation::IntermediatePoint::setPos(const QPointF &pos)
|
||||
|
||||
bool operator==(const DRelation::IntermediatePoint &lhs, const DRelation::IntermediatePoint &rhs)
|
||||
{
|
||||
return lhs.getPos() == rhs.getPos();
|
||||
return lhs.pos() == rhs.pos();
|
||||
}
|
||||
|
||||
|
||||
DRelation::DRelation()
|
||||
: DElement(),
|
||||
m_modelUid(Uid::getInvalidUid()),
|
||||
m_endAUid(Uid::getInvalidUid()),
|
||||
m_endBUid(Uid::getInvalidUid())
|
||||
m_modelUid(Uid::invalidUid()),
|
||||
m_endAUid(Uid::invalidUid()),
|
||||
m_endBUid(Uid::invalidUid())
|
||||
{
|
||||
}
|
||||
|
||||
@@ -74,12 +74,12 @@ void DRelation::setStereotypes(const QList<QString> &stereotypes)
|
||||
m_stereotypes = stereotypes;
|
||||
}
|
||||
|
||||
void DRelation::setEndA(const Uid &uid)
|
||||
void DRelation::setEndAUid(const Uid &uid)
|
||||
{
|
||||
m_endAUid = uid;
|
||||
}
|
||||
|
||||
void DRelation::setEndB(const Uid &uid)
|
||||
void DRelation::setEndBUid(const Uid &uid)
|
||||
{
|
||||
m_endBUid = uid;
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ public:
|
||||
|
||||
explicit IntermediatePoint(const QPointF &pos = QPointF());
|
||||
|
||||
QPointF getPos() const { return m_pos; }
|
||||
QPointF pos() const { return m_pos; }
|
||||
|
||||
void setPos(const QPointF &pos);
|
||||
|
||||
@@ -69,27 +69,27 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
Uid getModelUid() const { return m_modelUid; }
|
||||
Uid modelUid() const { return m_modelUid; }
|
||||
|
||||
void setModelUid(const Uid &uid);
|
||||
|
||||
QList<QString> getStereotypes() const { return m_stereotypes; }
|
||||
QList<QString> stereotypes() const { return m_stereotypes; }
|
||||
|
||||
void setStereotypes(const QList<QString> &stereotypes);
|
||||
|
||||
Uid getEndA() const { return m_endAUid; }
|
||||
Uid endAUid() const { return m_endAUid; }
|
||||
|
||||
void setEndA(const Uid &uid);
|
||||
void setEndAUid(const Uid &uid);
|
||||
|
||||
Uid getEndB() const { return m_endBUid; }
|
||||
Uid endBUid() const { return m_endBUid; }
|
||||
|
||||
void setEndB(const Uid &uid);
|
||||
void setEndBUid(const Uid &uid);
|
||||
|
||||
QString getName() const { return m_name; }
|
||||
QString name() const { return m_name; }
|
||||
|
||||
void setName(const QString &name);
|
||||
|
||||
QList<IntermediatePoint> getIntermediatePoints() const { return m_intermediatePoints; }
|
||||
QList<IntermediatePoint> intermediatePoints() const { return m_intermediatePoints; }
|
||||
|
||||
void setIntermediatePoints(const QList<IntermediatePoint> &intermediatePoints);
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
DCloneVisitor();
|
||||
|
||||
public:
|
||||
DElement *getCloned() const { return m_cloned; }
|
||||
DElement *cloned() const { return m_cloned; }
|
||||
|
||||
void visitDElement(const DElement *element);
|
||||
|
||||
@@ -86,7 +86,7 @@ public:
|
||||
DCloneDeepVisitor();
|
||||
|
||||
public:
|
||||
DElement *getCloned() const { return m_cloned; }
|
||||
DElement *cloned() const { return m_cloned; }
|
||||
|
||||
void visitDElement(const DElement *element);
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ void DFactory::visitMObject(const MObject *object)
|
||||
{
|
||||
DObject *diagramObject = dynamic_cast<DObject *>(m_product);
|
||||
QMT_CHECK(diagramObject);
|
||||
diagramObject->setModelUid(object->getUid());
|
||||
diagramObject->setModelUid(object->uid());
|
||||
visitMElement(object);
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ void DFactory::visitMRelation(const MRelation *relation)
|
||||
{
|
||||
DRelation *diagramRelation = dynamic_cast<DRelation *>(m_product);
|
||||
QMT_CHECK(diagramRelation);
|
||||
diagramRelation->setModelUid(relation->getUid());
|
||||
diagramRelation->setModelUid(relation->uid());
|
||||
visitMElement(relation);
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
DElement *getProduct() const { return m_product; }
|
||||
DElement *product() const { return m_product; }
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@@ -65,16 +65,16 @@ void DFlatAssignmentVisitor::visitDObject(const DObject *object)
|
||||
visitDElement(object);
|
||||
DObject *target = dynamic_cast<DObject *>(m_target);
|
||||
QMT_CHECK(target);
|
||||
target->setStereotypes(object->getStereotypes());
|
||||
target->setName(object->getName());
|
||||
target->setPos(object->getPos());
|
||||
target->setRect(object->getRect());
|
||||
target->setStereotypes(object->stereotypes());
|
||||
target->setName(object->name());
|
||||
target->setPos(object->pos());
|
||||
target->setRect(object->rect());
|
||||
target->setAutoSize(object->hasAutoSize());
|
||||
target->setDepth(object->getDepth());
|
||||
target->setVisualPrimaryRole(object->getVisualPrimaryRole());
|
||||
target->setVisualSecondaryRole(object->getVisualSecondaryRole());
|
||||
target->setDepth(object->depth());
|
||||
target->setVisualPrimaryRole(object->visualPrimaryRole());
|
||||
target->setVisualSecondaryRole(object->visualSecondaryRole());
|
||||
target->setVisualEmphasized(object->isVisualEmphasized());
|
||||
target->setStereotypeDisplay(object->getStereotypeDisplay());
|
||||
target->setStereotypeDisplay(object->stereotypeDisplay());
|
||||
}
|
||||
|
||||
void DFlatAssignmentVisitor::visitDPackage(const DPackage *package)
|
||||
@@ -87,12 +87,12 @@ void DFlatAssignmentVisitor::visitDClass(const DClass *klass)
|
||||
visitDObject(klass);
|
||||
DClass *target = dynamic_cast<DClass *>(m_target);
|
||||
QMT_CHECK(target);
|
||||
target->setNamespace(klass->getNamespace());
|
||||
target->setTemplateParameters(klass->getTemplateParameters());
|
||||
target->setTemplateDisplay(klass->getTemplateDisplay());
|
||||
target->setMembers(klass->getMembers());
|
||||
target->setShowAllMembers(klass->getShowAllMembers());
|
||||
target->setVisibleMembers(klass->getVisibleMembers());
|
||||
target->setNameSpace(klass->nameSpace());
|
||||
target->setTemplateParameters(klass->templateParameters());
|
||||
target->setTemplateDisplay(klass->templateDisplay());
|
||||
target->setMembers(klass->members());
|
||||
target->setShowAllMembers(klass->showAllMembers());
|
||||
target->setVisibleMembers(klass->visibleMembers());
|
||||
}
|
||||
|
||||
void DFlatAssignmentVisitor::visitDComponent(const DComponent *component)
|
||||
@@ -100,7 +100,7 @@ void DFlatAssignmentVisitor::visitDComponent(const DComponent *component)
|
||||
visitDObject(component);
|
||||
DComponent *target = dynamic_cast<DComponent *>(m_target);
|
||||
QMT_CHECK(target);
|
||||
target->setPlainShape(component->getPlainShape());
|
||||
target->setPlainShape(component->plainShape());
|
||||
}
|
||||
|
||||
void DFlatAssignmentVisitor::visitDDiagram(const DDiagram *diagram)
|
||||
@@ -113,9 +113,9 @@ void DFlatAssignmentVisitor::visitDItem(const DItem *item)
|
||||
visitDObject(item);
|
||||
DItem *target = dynamic_cast<DItem *>(m_target);
|
||||
QMT_CHECK(target);
|
||||
target->setVariety(target->getVariety());
|
||||
target->setVariety(target->variety());
|
||||
target->setShapeEditable(target->isShapeEditable());
|
||||
target->setShape(target->getShape());
|
||||
target->setShape(target->shape());
|
||||
}
|
||||
|
||||
void DFlatAssignmentVisitor::visitDRelation(const DRelation *relation)
|
||||
@@ -123,8 +123,8 @@ void DFlatAssignmentVisitor::visitDRelation(const DRelation *relation)
|
||||
visitDElement(relation);
|
||||
DRelation *target = dynamic_cast<DRelation *>(m_target);
|
||||
QMT_CHECK(target);
|
||||
target->setStereotypes(relation->getStereotypes());
|
||||
target->setIntermediatePoints(relation->getIntermediatePoints());
|
||||
target->setStereotypes(relation->stereotypes());
|
||||
target->setIntermediatePoints(relation->intermediatePoints());
|
||||
}
|
||||
|
||||
void DFlatAssignmentVisitor::visitDInheritance(const DInheritance *inheritance)
|
||||
@@ -137,7 +137,7 @@ void DFlatAssignmentVisitor::visitDDependency(const DDependency *dependency)
|
||||
visitDRelation(dependency);
|
||||
DDependency *target = dynamic_cast<DDependency *>(m_target);
|
||||
QMT_CHECK(target);
|
||||
target->setDirection(dependency->getDirection());
|
||||
target->setDirection(dependency->direction());
|
||||
}
|
||||
|
||||
void DFlatAssignmentVisitor::visitDAssociation(const DAssociation *association)
|
||||
@@ -145,28 +145,28 @@ void DFlatAssignmentVisitor::visitDAssociation(const DAssociation *association)
|
||||
visitDRelation(association);
|
||||
DAssociation *target = dynamic_cast<DAssociation *>(m_target);
|
||||
QMT_CHECK(target);
|
||||
target->setA(association->getA());
|
||||
target->setB(association->getB());
|
||||
target->setEndA(association->endA());
|
||||
target->setEndB(association->endB());
|
||||
}
|
||||
|
||||
void DFlatAssignmentVisitor::visitDAnnotation(const DAnnotation *annotation)
|
||||
{
|
||||
visitDElement(annotation);
|
||||
DAnnotation *target = dynamic_cast<DAnnotation *>(m_target);
|
||||
target->setText(annotation->getText());
|
||||
target->setPos(annotation->getPos());
|
||||
target->setRect(annotation->getRect());
|
||||
target->setText(annotation->text());
|
||||
target->setPos(annotation->pos());
|
||||
target->setRect(annotation->rect());
|
||||
target->setAutoSize(annotation->hasAutoSize());
|
||||
target->setVisualRole(annotation->getVisualRole());
|
||||
target->setVisualRole(annotation->visualRole());
|
||||
}
|
||||
|
||||
void DFlatAssignmentVisitor::visitDBoundary(const DBoundary *boundary)
|
||||
{
|
||||
visitDElement(boundary);
|
||||
DBoundary *target = dynamic_cast<DBoundary *>(m_target);
|
||||
target->setText(boundary->getText());
|
||||
target->setPos(boundary->getPos());
|
||||
target->setRect(boundary->getRect());
|
||||
target->setText(boundary->text());
|
||||
target->setPos(boundary->pos());
|
||||
target->setRect(boundary->rect());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -81,14 +81,14 @@ public:
|
||||
|
||||
protected:
|
||||
|
||||
DiagramController *getDiagramController() const
|
||||
DiagramController *diagramController() const
|
||||
{
|
||||
return m_diagramController;
|
||||
}
|
||||
|
||||
Uid getDiagramKey() const { return m_diagramKey; }
|
||||
Uid diagramKey() const { return m_diagramKey; }
|
||||
|
||||
MDiagram *getDiagram() const
|
||||
MDiagram *diagram() const
|
||||
{
|
||||
MDiagram *diagram = m_diagramController->findDiagram(m_diagramKey);
|
||||
QMT_CHECK(diagram);
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
{
|
||||
DCloneVisitor visitor;
|
||||
element->accept(&visitor);
|
||||
m_clonedElements.insert(visitor.getCloned()->getUid(), visitor.getCloned());
|
||||
m_clonedElements.insert(visitor.cloned()->uid(), visitor.cloned());
|
||||
}
|
||||
|
||||
~UpdateElementCommand()
|
||||
@@ -128,7 +128,7 @@ public:
|
||||
if (!otherUpdateCommand) {
|
||||
return false;
|
||||
}
|
||||
if (getDiagramKey() != otherUpdateCommand->getDiagramKey()) {
|
||||
if (diagramKey() != otherUpdateCommand->diagramKey()) {
|
||||
return false;
|
||||
}
|
||||
if (m_updateAction == DiagramController::UPDATE_MAJOR || otherUpdateCommand->m_updateAction == DiagramController::UPDATE_MAJOR
|
||||
@@ -137,10 +137,10 @@ public:
|
||||
}
|
||||
// join other elements into this command
|
||||
foreach (const DElement *otherElement, otherUpdateCommand->m_clonedElements.values()) {
|
||||
if (!m_clonedElements.contains(otherElement->getUid())) {
|
||||
if (!m_clonedElements.contains(otherElement->uid())) {
|
||||
DCloneVisitor visitor;
|
||||
otherElement->accept(&visitor);
|
||||
m_clonedElements.insert(visitor.getCloned()->getUid(), visitor.getCloned());
|
||||
m_clonedElements.insert(visitor.cloned()->uid(), visitor.cloned());
|
||||
}
|
||||
}
|
||||
// the last update is a complete update of all changes...
|
||||
@@ -164,23 +164,23 @@ public:
|
||||
private:
|
||||
void swap()
|
||||
{
|
||||
DiagramController *diagramController = getDiagramController();
|
||||
MDiagram *diagram = getDiagram();
|
||||
DiagramController *diagramController = DiagramUndoCommand::diagramController();
|
||||
MDiagram *diagram = DiagramUndoCommand::diagram();
|
||||
foreach (DElement *clonedElement, m_clonedElements) {
|
||||
DElement *activeElement = diagramController->findElement(clonedElement->getUid(), diagram);
|
||||
DElement *activeElement = diagramController->findElement(clonedElement->uid(), diagram);
|
||||
QMT_CHECK(activeElement);
|
||||
int row = diagram->getDiagramElements().indexOf(activeElement);
|
||||
int row = diagram->diagramElements().indexOf(activeElement);
|
||||
emit diagramController->beginUpdateElement(row, diagram);
|
||||
// clone active element
|
||||
DCloneVisitor cloneVisitor;
|
||||
activeElement->accept(&cloneVisitor);
|
||||
DElement *newElement = cloneVisitor.getCloned();
|
||||
DElement *newElement = cloneVisitor.cloned();
|
||||
// reset active element to cloned element
|
||||
DFlatAssignmentVisitor visitor(activeElement);
|
||||
clonedElement->accept(&visitor);
|
||||
// replace stored element with new cloned active element
|
||||
QMT_CHECK(clonedElement->getUid() == newElement->getUid());
|
||||
m_clonedElements.insert(newElement->getUid(), newElement);
|
||||
QMT_CHECK(clonedElement->uid() == newElement->uid());
|
||||
m_clonedElements.insert(newElement->uid(), newElement);
|
||||
delete clonedElement;
|
||||
emit diagramController->endUpdateElement(row, diagram);
|
||||
}
|
||||
@@ -213,20 +213,20 @@ protected:
|
||||
|
||||
void remove()
|
||||
{
|
||||
DiagramController *diagramController = getDiagramController();
|
||||
MDiagram *diagram = getDiagram();
|
||||
DiagramController *diagramController = DiagramUndoCommand::diagramController();
|
||||
MDiagram *diagram = DiagramUndoCommand::diagram();
|
||||
bool removed = false;
|
||||
for (int i = 0; i < m_clonedElements.count(); ++i) {
|
||||
Clone &clone = m_clonedElements[i];
|
||||
QMT_CHECK(!clone.m_clonedElement);
|
||||
DElement *activeElement = diagramController->findElement(clone.m_elementKey, diagram);
|
||||
QMT_CHECK(activeElement);
|
||||
clone.m_indexOfElement = diagram->getDiagramElements().indexOf(activeElement);
|
||||
clone.m_indexOfElement = diagram->diagramElements().indexOf(activeElement);
|
||||
QMT_CHECK(clone.m_indexOfElement >= 0);
|
||||
emit diagramController->beginRemoveElement(clone.m_indexOfElement, diagram);
|
||||
DCloneDeepVisitor cloneVisitor;
|
||||
activeElement->accept(&cloneVisitor);
|
||||
clone.m_clonedElement = cloneVisitor.getCloned();
|
||||
clone.m_clonedElement = cloneVisitor.cloned();
|
||||
diagram->removeDiagramElement(activeElement);
|
||||
emit diagramController->endRemoveElement(clone.m_indexOfElement, diagram);
|
||||
removed = true;
|
||||
@@ -238,13 +238,13 @@ protected:
|
||||
|
||||
void insert()
|
||||
{
|
||||
DiagramController *diagramController = getDiagramController();
|
||||
MDiagram *diagram = getDiagram();
|
||||
DiagramController *diagramController = DiagramUndoCommand::diagramController();
|
||||
MDiagram *diagram = DiagramUndoCommand::diagram();
|
||||
bool inserted = false;
|
||||
for (int i = m_clonedElements.count() - 1; i >= 0; --i) {
|
||||
Clone &clone = m_clonedElements[i];
|
||||
QMT_CHECK(clone.m_clonedElement);
|
||||
QMT_CHECK(clone.m_clonedElement->getUid() == clone.m_elementKey);
|
||||
QMT_CHECK(clone.m_clonedElement->uid() == clone.m_elementKey);
|
||||
emit diagramController->beginInsertElement(clone.m_indexOfElement, diagram);
|
||||
diagram->insertDiagramElement(clone.m_indexOfElement, clone.m_clonedElement);
|
||||
clone.m_clonedElement = 0;
|
||||
@@ -308,13 +308,13 @@ public:
|
||||
{
|
||||
Clone clone;
|
||||
|
||||
MDiagram *diagram = getDiagram();
|
||||
clone.m_elementKey = element->getUid();
|
||||
clone.m_indexOfElement = diagram->getDiagramElements().indexOf(element);
|
||||
MDiagram *diagram = DiagramUndoCommand::diagram();
|
||||
clone.m_elementKey = element->uid();
|
||||
clone.m_indexOfElement = diagram->diagramElements().indexOf(element);
|
||||
QMT_CHECK(clone.m_indexOfElement >= 0);
|
||||
DCloneDeepVisitor visitor;
|
||||
element->accept(&visitor);
|
||||
clone.m_clonedElement = visitor.getCloned();
|
||||
clone.m_clonedElement = visitor.cloned();
|
||||
QMT_CHECK(clone.m_clonedElement);
|
||||
m_clonedElements.append(clone);
|
||||
}
|
||||
@@ -409,13 +409,13 @@ MDiagram *DiagramController::findDiagram(const Uid &diagramKey) const
|
||||
|
||||
void DiagramController::addElement(DElement *element, MDiagram *diagram)
|
||||
{
|
||||
int row = diagram->getDiagramElements().count();
|
||||
int row = diagram->diagramElements().count();
|
||||
emit beginInsertElement(row, diagram);
|
||||
updateElementFromModel(element, diagram, false);
|
||||
if (m_undoController) {
|
||||
AddElementsCommand *undoCommand = new AddElementsCommand(this, diagram->getUid(), tr("Add Object"));
|
||||
AddElementsCommand *undoCommand = new AddElementsCommand(this, diagram->uid(), tr("Add Object"));
|
||||
m_undoController->push(undoCommand);
|
||||
undoCommand->add(element->getUid());
|
||||
undoCommand->add(element->uid());
|
||||
}
|
||||
diagram->addDiagramElement(element);
|
||||
emit endInsertElement(row, diagram);
|
||||
@@ -425,10 +425,10 @@ void DiagramController::addElement(DElement *element, MDiagram *diagram)
|
||||
void DiagramController::removeElement(DElement *element, MDiagram *diagram)
|
||||
{
|
||||
removeRelations(element, diagram);
|
||||
int row = diagram->getDiagramElements().indexOf(element);
|
||||
int row = diagram->diagramElements().indexOf(element);
|
||||
emit beginRemoveElement(row, diagram);
|
||||
if (m_undoController) {
|
||||
RemoveElementsCommand *undoCommand = new RemoveElementsCommand(this, diagram->getUid(), tr("Remove Object"));
|
||||
RemoveElementsCommand *undoCommand = new RemoveElementsCommand(this, diagram->uid(), tr("Remove Object"));
|
||||
m_undoController->push(undoCommand);
|
||||
undoCommand->add(element);
|
||||
}
|
||||
@@ -454,8 +454,8 @@ DElement *DiagramController::findDelegate(const MElement *modelElement, const MD
|
||||
{
|
||||
Q_UNUSED(diagram);
|
||||
// PERFORM use map to increase performance
|
||||
foreach (DElement *diagramElement, diagram->getDiagramElements()) {
|
||||
if (diagramElement->getModelUid().isValid() && diagramElement->getModelUid() == modelElement->getUid()) {
|
||||
foreach (DElement *diagramElement, diagram->diagramElements()) {
|
||||
if (diagramElement->modelUid().isValid() && diagramElement->modelUid() == modelElement->uid()) {
|
||||
return diagramElement;
|
||||
}
|
||||
}
|
||||
@@ -464,9 +464,9 @@ DElement *DiagramController::findDelegate(const MElement *modelElement, const MD
|
||||
|
||||
void DiagramController::startUpdateElement(DElement *element, MDiagram *diagram, UpdateAction updateAction)
|
||||
{
|
||||
emit beginUpdateElement(diagram->getDiagramElements().indexOf(element), diagram);
|
||||
emit beginUpdateElement(diagram->diagramElements().indexOf(element), diagram);
|
||||
if (m_undoController) {
|
||||
m_undoController->push(new UpdateElementCommand(this, diagram->getUid(), element, updateAction));
|
||||
m_undoController->push(new UpdateElementCommand(this, diagram->uid(), element, updateAction));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -475,7 +475,7 @@ void DiagramController::finishUpdateElement(DElement *element, MDiagram *diagram
|
||||
if (!cancelled) {
|
||||
updateElementFromModel(element, diagram, false);
|
||||
}
|
||||
emit endUpdateElement(diagram->getDiagramElements().indexOf(element), diagram);
|
||||
emit endUpdateElement(diagram->diagramElements().indexOf(element), diagram);
|
||||
if (!cancelled) {
|
||||
diagramModified(diagram);
|
||||
}
|
||||
@@ -499,10 +499,10 @@ DContainer DiagramController::copyElements(const DSelection &diagramSelection, c
|
||||
|
||||
DReferences simplifiedSelection = simplify(diagramSelection, diagram);
|
||||
DContainer copiedElements;
|
||||
foreach (const DElement *element, simplifiedSelection.getElements()) {
|
||||
foreach (const DElement *element, simplifiedSelection.elements()) {
|
||||
DCloneDeepVisitor visitor;
|
||||
element->accept(&visitor);
|
||||
DElement *clonedElement = visitor.getCloned();
|
||||
DElement *clonedElement = visitor.cloned();
|
||||
copiedElements.submit(clonedElement);
|
||||
}
|
||||
return copiedElements;
|
||||
@@ -515,11 +515,11 @@ void DiagramController::pasteElements(const DContainer &diagramContainer, MDiagr
|
||||
// clone all elements and renew their keys
|
||||
QHash<Uid, Uid> renewedKeys;
|
||||
QList<DElement *> clonedElements;
|
||||
foreach (const DElement *element, diagramContainer.getElements()) {
|
||||
foreach (const DElement *element, diagramContainer.elements()) {
|
||||
if (!isDelegatedElementOnDiagram(element, diagram)) {
|
||||
DCloneDeepVisitor visitor;
|
||||
element->accept(&visitor);
|
||||
DElement *clonedElement = visitor.getCloned();
|
||||
DElement *clonedElement = visitor.cloned();
|
||||
renewElementKey(clonedElement, &renewedKeys);
|
||||
clonedElements.append(clonedElement);
|
||||
}
|
||||
@@ -538,12 +538,12 @@ void DiagramController::pasteElements(const DContainer &diagramContainer, MDiagr
|
||||
bool added = false;
|
||||
foreach (DElement *clonedElement, clonedElements) {
|
||||
if (!dynamic_cast<DRelation *>(clonedElement)) {
|
||||
int row = diagram->getDiagramElements().size();
|
||||
int row = diagram->diagramElements().size();
|
||||
emit beginInsertElement(row, diagram);
|
||||
if (m_undoController) {
|
||||
AddElementsCommand *undoCommand = new AddElementsCommand(this, diagram->getUid(), tr("Paste"));
|
||||
AddElementsCommand *undoCommand = new AddElementsCommand(this, diagram->uid(), tr("Paste"));
|
||||
m_undoController->push(undoCommand);
|
||||
undoCommand->add(clonedElement->getUid());
|
||||
undoCommand->add(clonedElement->uid());
|
||||
}
|
||||
diagram->addDiagramElement(clonedElement);
|
||||
emit endInsertElement(row, diagram);
|
||||
@@ -553,12 +553,12 @@ void DiagramController::pasteElements(const DContainer &diagramContainer, MDiagr
|
||||
foreach (DElement *clonedElement, clonedElements) {
|
||||
DRelation *clonedRelation = dynamic_cast<DRelation *>(clonedElement);
|
||||
if (clonedRelation && areRelationEndsOnDiagram(clonedRelation, diagram)) {
|
||||
int row = diagram->getDiagramElements().size();
|
||||
int row = diagram->diagramElements().size();
|
||||
emit beginInsertElement(row, diagram);
|
||||
if (m_undoController) {
|
||||
AddElementsCommand *undoCommand = new AddElementsCommand(this, diagram->getUid(), tr("Paste"));
|
||||
AddElementsCommand *undoCommand = new AddElementsCommand(this, diagram->uid(), tr("Paste"));
|
||||
m_undoController->push(undoCommand);
|
||||
undoCommand->add(clonedElement->getUid());
|
||||
undoCommand->add(clonedElement->uid());
|
||||
}
|
||||
diagram->addDiagramElement(clonedElement);
|
||||
emit endInsertElement(row, diagram);
|
||||
@@ -589,16 +589,16 @@ void DiagramController::onEndResetModel()
|
||||
updateAllDiagramsList();
|
||||
foreach (MDiagram *diagram, m_allDiagrams) {
|
||||
// remove all elements which are not longer part of the model
|
||||
foreach (DElement *element, diagram->getDiagramElements()) {
|
||||
if (element->getModelUid().isValid()) {
|
||||
MElement *modelElement = m_modelController->findElement(element->getModelUid());
|
||||
foreach (DElement *element, diagram->diagramElements()) {
|
||||
if (element->modelUid().isValid()) {
|
||||
MElement *modelElement = m_modelController->findElement(element->modelUid());
|
||||
if (!modelElement) {
|
||||
removeElement(element, diagram);
|
||||
}
|
||||
}
|
||||
}
|
||||
// update all remaining elements from model
|
||||
foreach (DElement *element, diagram->getDiagramElements()) {
|
||||
foreach (DElement *element, diagram->diagramElements()) {
|
||||
updateElementFromModel(element, diagram, false);
|
||||
}
|
||||
}
|
||||
@@ -615,7 +615,7 @@ void DiagramController::onBeginUpdateObject(int row, const MObject *parent)
|
||||
|
||||
void DiagramController::onEndUpdateObject(int row, const MObject *parent)
|
||||
{
|
||||
MObject *modelObject = m_modelController->getObject(row, parent);
|
||||
MObject *modelObject = m_modelController->object(row, parent);
|
||||
QMT_CHECK(modelObject);
|
||||
MPackage *modelPackage = dynamic_cast<MPackage *>(modelObject);
|
||||
foreach (MDiagram *diagram, m_allDiagrams) {
|
||||
@@ -625,10 +625,10 @@ void DiagramController::onEndUpdateObject(int row, const MObject *parent)
|
||||
}
|
||||
if (modelPackage) {
|
||||
// update each element that has the updated object as its owner (for context changes)
|
||||
foreach (DElement *diagramElement, diagram->getDiagramElements()) {
|
||||
if (diagramElement->getModelUid().isValid()) {
|
||||
MObject *mobject = m_modelController->findObject(diagramElement->getModelUid());
|
||||
if (mobject && mobject->getOwner() == modelPackage) {
|
||||
foreach (DElement *diagramElement, diagram->diagramElements()) {
|
||||
if (diagramElement->modelUid().isValid()) {
|
||||
MObject *mobject = m_modelController->findObject(diagramElement->modelUid());
|
||||
if (mobject && mobject->owner() == modelPackage) {
|
||||
updateElementFromModel(diagramElement, diagram, true);
|
||||
}
|
||||
}
|
||||
@@ -647,7 +647,7 @@ void DiagramController::onEndInsertObject(int row, const MObject *owner)
|
||||
{
|
||||
QMT_CHECK(owner);
|
||||
|
||||
MObject *modelObject = m_modelController->getObject(row, owner);
|
||||
MObject *modelObject = m_modelController->object(row, owner);
|
||||
if (MDiagram *modelDiagram = dynamic_cast<MDiagram *>(modelObject)) {
|
||||
QMT_CHECK(!m_allDiagrams.contains(modelDiagram));
|
||||
m_allDiagrams.append(modelDiagram);
|
||||
@@ -658,7 +658,7 @@ void DiagramController::onBeginRemoveObject(int row, const MObject *parent)
|
||||
{
|
||||
QMT_CHECK(parent);
|
||||
|
||||
MObject *modelObject = m_modelController->getObject(row, parent);
|
||||
MObject *modelObject = m_modelController->object(row, parent);
|
||||
removeObjects(modelObject);
|
||||
}
|
||||
|
||||
@@ -680,12 +680,12 @@ void DiagramController::onEndMoveObject(int row, const MObject *owner)
|
||||
onEndUpdateObject(row, owner);
|
||||
|
||||
// if diagram was moved update all elements because of changed context
|
||||
MObject *modelObject = m_modelController->getObject(row, owner);
|
||||
MObject *modelObject = m_modelController->object(row, owner);
|
||||
QMT_CHECK(modelObject);
|
||||
MDiagram *modelDiagram = dynamic_cast<MDiagram *>(modelObject);
|
||||
if (modelDiagram) {
|
||||
emit beginResetDiagram(modelDiagram);
|
||||
foreach (DElement *diagramElement, modelDiagram->getDiagramElements()) {
|
||||
foreach (DElement *diagramElement, modelDiagram->diagramElements()) {
|
||||
updateElementFromModel(diagramElement, modelDiagram, false);
|
||||
}
|
||||
emit endResetDiagram(modelDiagram);
|
||||
@@ -702,7 +702,7 @@ void DiagramController::onBeginUpdateRelation(int row, const MObject *owner)
|
||||
|
||||
void DiagramController::onEndUpdateRelation(int row, const MObject *owner)
|
||||
{
|
||||
MRelation *modelRelation = owner->getRelations().at(row);
|
||||
MRelation *modelRelation = owner->relations().at(row);
|
||||
foreach (MDiagram *diagram, m_allDiagrams) {
|
||||
DRelation *relation = findDelegate<DRelation>(modelRelation, diagram);
|
||||
if (relation) {
|
||||
@@ -715,7 +715,7 @@ void DiagramController::onBeginRemoveRelation(int row, const MObject *owner)
|
||||
{
|
||||
QMT_CHECK(owner);
|
||||
|
||||
MRelation *modelRelation = owner->getRelations().at(row);
|
||||
MRelation *modelRelation = owner->relations().at(row);
|
||||
removeRelations(modelRelation);
|
||||
}
|
||||
|
||||
@@ -743,21 +743,21 @@ void DiagramController::deleteElements(const DSelection &diagramSelection, MDiag
|
||||
QMT_CHECK(diagram);
|
||||
|
||||
DReferences simplifiedSelection = simplify(diagramSelection, diagram);
|
||||
if (simplifiedSelection.getElements().isEmpty()) {
|
||||
if (simplifiedSelection.elements().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
if (m_undoController) {
|
||||
m_undoController->beginMergeSequence(commandLabel);
|
||||
}
|
||||
bool removed = false;
|
||||
foreach (DElement *element, simplifiedSelection.getElements()) {
|
||||
foreach (DElement *element, simplifiedSelection.elements()) {
|
||||
// element may have been deleted indirectly by predecessor element in loop
|
||||
if ((element = findElement(element->getUid(), diagram))) {
|
||||
if ((element = findElement(element->uid(), diagram))) {
|
||||
removeRelations(element, diagram);
|
||||
int row = diagram->getDiagramElements().indexOf(element);
|
||||
emit beginRemoveElement(diagram->getDiagramElements().indexOf(element), diagram);
|
||||
int row = diagram->diagramElements().indexOf(element);
|
||||
emit beginRemoveElement(diagram->diagramElements().indexOf(element), diagram);
|
||||
if (m_undoController) {
|
||||
RemoveElementsCommand *cutCommand = new RemoveElementsCommand(this, diagram->getUid(), commandLabel);
|
||||
RemoveElementsCommand *cutCommand = new RemoveElementsCommand(this, diagram->uid(), commandLabel);
|
||||
m_undoController->push(cutCommand);
|
||||
cutCommand->add(element);
|
||||
}
|
||||
@@ -792,16 +792,16 @@ void DiagramController::removeObjects(MObject *modelObject)
|
||||
if (diagramElement) {
|
||||
removeElement(diagramElement, diagram);
|
||||
}
|
||||
foreach (const Handle<MRelation> &relation, modelObject->getRelations()) {
|
||||
DElement *diagramElement = findDelegate(relation.getTarget(), diagram);
|
||||
foreach (const Handle<MRelation> &relation, modelObject->relations()) {
|
||||
DElement *diagramElement = findDelegate(relation.target(), diagram);
|
||||
if (diagramElement) {
|
||||
removeElement(diagramElement, diagram);
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (const Handle<MObject> &object, modelObject->getChildren()) {
|
||||
foreach (const Handle<MObject> &object, modelObject->children()) {
|
||||
if (object.hasTarget()) {
|
||||
removeObjects(object.getTarget());
|
||||
removeObjects(object.target());
|
||||
}
|
||||
}
|
||||
if (MDiagram *diagram = dynamic_cast<MDiagram *>(modelObject)) {
|
||||
@@ -810,8 +810,8 @@ void DiagramController::removeObjects(MObject *modelObject)
|
||||
m_allDiagrams.removeOne(diagram);
|
||||
QMT_CHECK(!m_allDiagrams.contains(diagram));
|
||||
// PERFORM increase performace
|
||||
while (!diagram->getDiagramElements().isEmpty()) {
|
||||
DElement *element = diagram->getDiagramElements().first();
|
||||
while (!diagram->diagramElements().isEmpty()) {
|
||||
DElement *element = diagram->diagramElements().first();
|
||||
removeElement(element, diagram);
|
||||
}
|
||||
}
|
||||
@@ -831,9 +831,9 @@ void DiagramController::removeRelations(DElement *element, MDiagram *diagram)
|
||||
{
|
||||
DObject *diagramObject = dynamic_cast<DObject *>(element);
|
||||
if (diagramObject) {
|
||||
foreach (DElement *diagramElement, diagram->getDiagramElements()) {
|
||||
foreach (DElement *diagramElement, diagram->diagramElements()) {
|
||||
if (DRelation *diagramRelation = dynamic_cast<DRelation *>(diagramElement)) {
|
||||
if (diagramRelation->getEndA() == diagramObject->getUid() || diagramRelation->getEndB() == diagramObject->getUid()) {
|
||||
if (diagramRelation->endAUid() == diagramObject->uid() || diagramRelation->endBUid() == diagramObject->uid()) {
|
||||
removeElement(diagramRelation, diagram);
|
||||
}
|
||||
}
|
||||
@@ -846,12 +846,12 @@ void DiagramController::renewElementKey(DElement *element, QHash<Uid, Uid> *rene
|
||||
QMT_CHECK(renewedKeys);
|
||||
|
||||
if (element) {
|
||||
DElement *existingElementOnDiagram = findElementOnAnyDiagram(element->getUid());
|
||||
DElement *existingElementOnDiagram = findElementOnAnyDiagram(element->uid());
|
||||
if (existingElementOnDiagram) {
|
||||
QMT_CHECK(existingElementOnDiagram != element);
|
||||
Uid oldKey = element->getUid();
|
||||
Uid oldKey = element->uid();
|
||||
element->renewUid();
|
||||
Uid newKey = element->getUid();
|
||||
Uid newKey = element->uid();
|
||||
renewedKeys->insert(oldKey, newKey);
|
||||
}
|
||||
}
|
||||
@@ -859,32 +859,32 @@ void DiagramController::renewElementKey(DElement *element, QHash<Uid, Uid> *rene
|
||||
|
||||
void DiagramController::updateRelationKeys(DRelation *relation, const QHash<Uid, Uid> &renewedKeys)
|
||||
{
|
||||
Uid newEndAKey = renewedKeys.value(relation->getEndA(), Uid::getInvalidUid());
|
||||
Uid newEndAKey = renewedKeys.value(relation->endAUid(), Uid::invalidUid());
|
||||
if (newEndAKey.isValid()) {
|
||||
relation->setEndA(newEndAKey);
|
||||
relation->setEndAUid(newEndAKey);
|
||||
}
|
||||
Uid newEndBKey = renewedKeys.value(relation->getEndB(), Uid::getInvalidUid());
|
||||
Uid newEndBKey = renewedKeys.value(relation->endBUid(), Uid::invalidUid());
|
||||
if (newEndBKey.isValid()) {
|
||||
relation->setEndB(newEndBKey);
|
||||
relation->setEndBUid(newEndBKey);
|
||||
}
|
||||
}
|
||||
|
||||
void DiagramController::updateElementFromModel(DElement *element, const MDiagram *diagram, bool emitUpdateSignal)
|
||||
{
|
||||
if (!element->getModelUid().isValid()) {
|
||||
if (!element->modelUid().isValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
DUpdateVisitor visitor(element, diagram);
|
||||
|
||||
MElement *melement = m_modelController->findElement(element->getModelUid());
|
||||
MElement *melement = m_modelController->findElement(element->modelUid());
|
||||
QMT_CHECK(melement);
|
||||
|
||||
if (emitUpdateSignal) {
|
||||
visitor.setCheckNeedsUpdate(true);
|
||||
melement->accept(&visitor);
|
||||
if (visitor.updateNeeded()) {
|
||||
int row = diagram->getDiagramElements().indexOf(element);
|
||||
int row = diagram->diagramElements().indexOf(element);
|
||||
emit beginUpdateElement(row, diagram);
|
||||
visitor.setCheckNeedsUpdate(false);
|
||||
melement->accept(&visitor);
|
||||
@@ -905,8 +905,8 @@ void DiagramController::diagramModified(MDiagram *diagram)
|
||||
DReferences DiagramController::simplify(const DSelection &diagramSelection, const MDiagram *diagram)
|
||||
{
|
||||
DReferences references;
|
||||
foreach (const DSelection::Index &index, diagramSelection.getIndices()) {
|
||||
DElement *element = findElement(index.getElementKey(), diagram);
|
||||
foreach (const DSelection::Index &index, diagramSelection.indices()) {
|
||||
DElement *element = findElement(index.elementKey(), diagram);
|
||||
if (element) {
|
||||
references.append(element);
|
||||
}
|
||||
@@ -914,17 +914,17 @@ DReferences DiagramController::simplify(const DSelection &diagramSelection, cons
|
||||
return references;
|
||||
}
|
||||
|
||||
MElement *DiagramController::getDelegatedElement(const DElement *element) const
|
||||
MElement *DiagramController::delegatedElement(const DElement *element) const
|
||||
{
|
||||
if (!element->getModelUid().isValid()) {
|
||||
if (!element->modelUid().isValid()) {
|
||||
return 0;
|
||||
}
|
||||
return m_modelController->findElement(element->getModelUid());
|
||||
return m_modelController->findElement(element->modelUid());
|
||||
}
|
||||
|
||||
bool DiagramController::isDelegatedElementOnDiagram(const DElement *element, const MDiagram *diagram) const
|
||||
{
|
||||
MElement *modelElement = getDelegatedElement(element);
|
||||
MElement *modelElement = delegatedElement(element);
|
||||
if (!modelElement) {
|
||||
return false;
|
||||
}
|
||||
@@ -933,15 +933,15 @@ bool DiagramController::isDelegatedElementOnDiagram(const DElement *element, con
|
||||
|
||||
bool DiagramController::areRelationEndsOnDiagram(const DRelation *relation, const MDiagram *diagram) const
|
||||
{
|
||||
return findElement(relation->getEndA(), diagram) && findElement(relation->getEndB(), diagram);
|
||||
return findElement(relation->endAUid(), diagram) && findElement(relation->endBUid(), diagram);
|
||||
}
|
||||
|
||||
void DiagramController::updateAllDiagramsList()
|
||||
{
|
||||
m_allDiagrams.clear();
|
||||
if (m_modelController && m_modelController->getRootPackage()) {
|
||||
if (m_modelController && m_modelController->rootPackage()) {
|
||||
FindDiagramsVisitor visitor(&m_allDiagrams);
|
||||
m_modelController->getRootPackage()->accept(&visitor);
|
||||
m_modelController->rootPackage()->accept(&visitor);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -114,11 +114,11 @@ signals:
|
||||
|
||||
public:
|
||||
|
||||
ModelController *getModelController() const { return m_modelController; }
|
||||
ModelController *modelController() const { return m_modelController; }
|
||||
|
||||
void setModelController(ModelController *modelController);
|
||||
|
||||
UndoController *getUndoController() const { return m_undoController; }
|
||||
UndoController *undoController() const { return m_undoController; }
|
||||
|
||||
void setUndoController(UndoController *undoController);
|
||||
|
||||
@@ -219,7 +219,7 @@ private:
|
||||
|
||||
DReferences simplify(const DSelection &diagramSelection, const MDiagram *diagram);
|
||||
|
||||
MElement *getDelegatedElement(const DElement *element) const;
|
||||
MElement *delegatedElement(const DElement *element) const;
|
||||
|
||||
bool isDelegatedElementOnDiagram(const DElement *element, const MDiagram *diagram) const;
|
||||
|
||||
|
||||
@@ -79,32 +79,32 @@ void DUpdateVisitor::visitMObject(const MObject *object)
|
||||
{
|
||||
DObject *dobject = dynamic_cast<DObject *>(m_target);
|
||||
QMT_CHECK(dobject);
|
||||
if (isUpdating(object->getStereotypes() != dobject->getStereotypes())) {
|
||||
dobject->setStereotypes(object->getStereotypes());
|
||||
if (isUpdating(object->stereotypes() != dobject->stereotypes())) {
|
||||
dobject->setStereotypes(object->stereotypes());
|
||||
}
|
||||
const MObject *objectOwner = object->getOwner();
|
||||
const MObject *diagramOwner = m_diagram->getOwner();
|
||||
if (objectOwner && diagramOwner && objectOwner->getUid() != diagramOwner->getUid()) {
|
||||
if (isUpdating(objectOwner->getName() != dobject->getContext())) {
|
||||
dobject->setContext(objectOwner->getName());
|
||||
const MObject *objectOwner = object->owner();
|
||||
const MObject *diagramOwner = m_diagram->owner();
|
||||
if (objectOwner && diagramOwner && objectOwner->uid() != diagramOwner->uid()) {
|
||||
if (isUpdating(objectOwner->name() != dobject->context())) {
|
||||
dobject->setContext(objectOwner->name());
|
||||
}
|
||||
} else {
|
||||
if (isUpdating(!dobject->getContext().isEmpty())) {
|
||||
if (isUpdating(!dobject->context().isEmpty())) {
|
||||
dobject->setContext(QString());
|
||||
}
|
||||
}
|
||||
if (isUpdating(object->getName() != dobject->getName())) {
|
||||
dobject->setName(object->getName());
|
||||
if (isUpdating(object->name() != dobject->name())) {
|
||||
dobject->setName(object->name());
|
||||
}
|
||||
// TODO unlikely that this is called for all objects if hierarchy is modified
|
||||
// PERFORM remove loop
|
||||
int depth = 1;
|
||||
const MObject *owner = object->getOwner();
|
||||
const MObject *owner = object->owner();
|
||||
while (owner) {
|
||||
owner = owner->getOwner();
|
||||
owner = owner->owner();
|
||||
depth += 1;
|
||||
}
|
||||
if (isUpdating(depth != dobject->getDepth())) {
|
||||
if (isUpdating(depth != dobject->depth())) {
|
||||
dobject->setDepth(depth);
|
||||
}
|
||||
visitMElement(object);
|
||||
@@ -119,14 +119,14 @@ void DUpdateVisitor::visitMClass(const MClass *klass)
|
||||
{
|
||||
DClass *dclass = dynamic_cast<DClass *>(m_target);
|
||||
QMT_CHECK(dclass);
|
||||
if (isUpdating(klass->getNamespace() != dclass->getNamespace())) {
|
||||
dclass->setNamespace(klass->getNamespace());
|
||||
if (isUpdating(klass->nameSpace() != dclass->nameSpace())) {
|
||||
dclass->setNameSpace(klass->nameSpace());
|
||||
}
|
||||
if (isUpdating(klass->getTemplateParameters() != dclass->getTemplateParameters())) {
|
||||
dclass->setTemplateParameters(klass->getTemplateParameters());
|
||||
if (isUpdating(klass->templateParameters() != dclass->templateParameters())) {
|
||||
dclass->setTemplateParameters(klass->templateParameters());
|
||||
}
|
||||
if (isUpdating(klass->getMembers() != dclass->getMembers())) {
|
||||
dclass->setMembers(klass->getMembers());
|
||||
if (isUpdating(klass->members() != dclass->members())) {
|
||||
dclass->setMembers(klass->members());
|
||||
}
|
||||
visitMObject(klass);
|
||||
}
|
||||
@@ -153,8 +153,8 @@ void DUpdateVisitor::visitMItem(const MItem *item)
|
||||
if (isUpdating(item->isShapeEditable() != ditem->isShapeEditable())) {
|
||||
ditem->setShapeEditable(item->isShapeEditable());
|
||||
}
|
||||
if (isUpdating(item->getVariety() != ditem->getVariety())) {
|
||||
ditem->setVariety(item->getVariety());
|
||||
if (isUpdating(item->variety() != ditem->variety())) {
|
||||
ditem->setVariety(item->variety());
|
||||
}
|
||||
visitMObject(item);
|
||||
}
|
||||
@@ -163,11 +163,11 @@ void DUpdateVisitor::visitMRelation(const MRelation *relation)
|
||||
{
|
||||
DRelation *drelation = dynamic_cast<DRelation *>(m_target);
|
||||
QMT_CHECK(drelation);
|
||||
if (isUpdating(relation->getStereotypes() != drelation->getStereotypes())) {
|
||||
drelation->setStereotypes(relation->getStereotypes());
|
||||
if (isUpdating(relation->stereotypes() != drelation->stereotypes())) {
|
||||
drelation->setStereotypes(relation->stereotypes());
|
||||
}
|
||||
if (isUpdating(relation->getName() != drelation->getName())) {
|
||||
drelation->setName(relation->getName());
|
||||
if (isUpdating(relation->name() != drelation->name())) {
|
||||
drelation->setName(relation->name());
|
||||
}
|
||||
visitMElement(relation);
|
||||
}
|
||||
@@ -176,8 +176,8 @@ void DUpdateVisitor::visitMDependency(const MDependency *dependency)
|
||||
{
|
||||
DDependency *ddependency = dynamic_cast<DDependency *>(m_target);
|
||||
QMT_CHECK(ddependency);
|
||||
if (isUpdating(dependency->getDirection() != ddependency->getDirection())) {
|
||||
ddependency->setDirection(dependency->getDirection());
|
||||
if (isUpdating(dependency->direction() != ddependency->direction())) {
|
||||
ddependency->setDirection(dependency->direction());
|
||||
}
|
||||
visitMRelation(dependency);
|
||||
}
|
||||
@@ -192,20 +192,20 @@ void DUpdateVisitor::visitMAssociation(const MAssociation *association)
|
||||
DAssociation *dassociation = dynamic_cast<DAssociation *>(m_target);
|
||||
QMT_CHECK(dassociation);
|
||||
DAssociationEnd endA;
|
||||
endA.setName(association->getA().getName());
|
||||
endA.setCardinatlity(association->getA().getCardinality());
|
||||
endA.setNavigable(association->getA().isNavigable());
|
||||
endA.setKind(association->getA().getKind());
|
||||
if (isUpdating(endA != dassociation->getA())) {
|
||||
dassociation->setA(endA);
|
||||
endA.setName(association->endA().name());
|
||||
endA.setCardinatlity(association->endA().cardinality());
|
||||
endA.setNavigable(association->endA().isNavigable());
|
||||
endA.setKind(association->endA().kind());
|
||||
if (isUpdating(endA != dassociation->endA())) {
|
||||
dassociation->setEndA(endA);
|
||||
}
|
||||
DAssociationEnd endB;
|
||||
endB.setName(association->getB().getName());
|
||||
endB.setCardinatlity(association->getB().getCardinality());
|
||||
endB.setNavigable(association->getB().isNavigable());
|
||||
endB.setKind(association->getB().getKind());
|
||||
if (isUpdating(endB != dassociation->getB())) {
|
||||
dassociation->setB(endB);
|
||||
endB.setName(association->endB().name());
|
||||
endB.setCardinatlity(association->endB().cardinality());
|
||||
endB.setNavigable(association->endB().isNavigable());
|
||||
endB.setKind(association->endB().kind());
|
||||
if (isUpdating(endB != dassociation->endB())) {
|
||||
dassociation->setEndB(endB);
|
||||
}
|
||||
visitMRelation(association);
|
||||
}
|
||||
|
||||
@@ -85,9 +85,9 @@ public:
|
||||
|
||||
virtual ~ILatchable() { }
|
||||
|
||||
virtual QList<Latch> getHorizontalLatches(Action action, bool grabbedItem) const = 0;
|
||||
virtual QList<Latch> horizontalLatches(Action action, bool grabbedItem) const = 0;
|
||||
|
||||
virtual QList<Latch> getVerticalLatches(Action action, bool grabbedItem) const = 0;
|
||||
virtual QList<Latch> verticalLatches(Action action, bool grabbedItem) const = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ class IRelationable {
|
||||
public:
|
||||
virtual ~IRelationable() { }
|
||||
|
||||
virtual QPointF getRelationStartPos() const = 0;
|
||||
virtual QPointF relationStartPos() const = 0;
|
||||
|
||||
virtual void relationDrawn(const QString &id, const QPointF &toScenePos, const QList<QPointF> &intermediatePoints) = 0;
|
||||
};
|
||||
|
||||
@@ -54,11 +54,11 @@ public:
|
||||
public:
|
||||
virtual ~IResizable() { }
|
||||
|
||||
virtual QPointF getPos() const = 0;
|
||||
virtual QPointF pos() const = 0;
|
||||
|
||||
virtual QRectF getRect() const = 0;
|
||||
virtual QRectF rect() const = 0;
|
||||
|
||||
virtual QSizeF getMinimumSize() const = 0;
|
||||
virtual QSizeF minimumSize() const = 0;
|
||||
|
||||
virtual void setPosAndRect(const QPointF &originalPos, const QRectF &originalRect, const QPointF &topLeftDelta, const QPointF &bottomRightDelta) = 0;
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
|
||||
virtual ~IWindable() { }
|
||||
|
||||
virtual QPointF getHandlePos(int index) = 0;
|
||||
virtual QPointF handlePos(int index) = 0;
|
||||
|
||||
virtual void insertHandle(int beforeIndex, const QPointF &pos) = 0;
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ DiagramSceneModel::DiagramSceneModel(QObject *parent)
|
||||
m_focusItem(0)
|
||||
{
|
||||
m_latchController->setDiagramSceneModel(this);
|
||||
connect(m_graphicsScene, SIGNAL(selectionHasChanged()), this, SLOT(onSelectionChanged()));
|
||||
connect(m_graphicsScene, SIGNAL(selectionChanged()), this, SLOT(onSelectionChanged()));
|
||||
|
||||
// add one item at origin to force scene rect to include origin always
|
||||
m_graphicsScene->addItem(m_originItem);
|
||||
@@ -185,7 +185,7 @@ void DiagramSceneModel::setDiagram(MDiagram *diagram)
|
||||
}
|
||||
}
|
||||
|
||||
QGraphicsScene *DiagramSceneModel::getGraphicsScene() const
|
||||
QGraphicsScene *DiagramSceneModel::graphicsScene() const
|
||||
{
|
||||
return m_graphicsScene;
|
||||
}
|
||||
@@ -211,13 +211,13 @@ bool DiagramSceneModel::hasMultiObjectsSelection() const
|
||||
return false;
|
||||
}
|
||||
|
||||
DSelection DiagramSceneModel::getSelectedElements() const
|
||||
DSelection DiagramSceneModel::selectedElements() const
|
||||
{
|
||||
DSelection selection;
|
||||
foreach (QGraphicsItem *item, m_graphicsScene->selectedItems()) {
|
||||
DElement *element = m_itemToElementMap.value(item);
|
||||
QMT_CHECK(element);
|
||||
selection.append(element->getUid(), m_diagram->getUid());
|
||||
selection.append(element->uid(), m_diagram->uid());
|
||||
}
|
||||
return selection;
|
||||
}
|
||||
@@ -234,12 +234,12 @@ DElement *DiagramSceneModel::findTopmostElement(const QPointF &scenePos) const
|
||||
return 0;
|
||||
}
|
||||
|
||||
QGraphicsItem *DiagramSceneModel::getGraphicsItem(DElement *element) const
|
||||
QGraphicsItem *DiagramSceneModel::graphicsItem(DElement *element) const
|
||||
{
|
||||
return m_elementToItemMap.value(element);
|
||||
}
|
||||
|
||||
QGraphicsItem *DiagramSceneModel::getGraphicsItem(const Uid &uid) const
|
||||
QGraphicsItem *DiagramSceneModel::graphicsItem(const Uid &uid) const
|
||||
{
|
||||
return m_elementToItemMap.value(m_diagramController->findElement(uid, m_diagram));
|
||||
}
|
||||
@@ -249,7 +249,7 @@ bool DiagramSceneModel::isSelectedItem(QGraphicsItem *item) const
|
||||
return m_selectedItems.contains(item);
|
||||
}
|
||||
|
||||
DElement *DiagramSceneModel::getElement(QGraphicsItem *item) const
|
||||
DElement *DiagramSceneModel::element(QGraphicsItem *item) const
|
||||
{
|
||||
return m_itemToElementMap.value(item);
|
||||
}
|
||||
@@ -499,7 +499,7 @@ void DiagramSceneModel::onDoubleClickedItem(QGraphicsItem *item)
|
||||
{
|
||||
DElement *element = m_itemToElementMap.value(item);
|
||||
if (item) {
|
||||
m_diagramSceneController->getElementTasks()->openElement(element, m_diagram);
|
||||
m_diagramSceneController->elementTasks()->openElement(element, m_diagram);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -511,15 +511,15 @@ QList<QGraphicsItem *> DiagramSceneModel::collectCollidingObjectItems(const QGra
|
||||
if (!resizable) {
|
||||
return collidingItems;
|
||||
}
|
||||
QRectF rect = resizable->getRect();
|
||||
rect.translate(resizable->getPos());
|
||||
QRectF rect = resizable->rect();
|
||||
rect.translate(resizable->pos());
|
||||
|
||||
switch (collidingMode) {
|
||||
case COLLIDING_INNER_ITEMS:
|
||||
foreach (QGraphicsItem *candidate, m_graphicsItems) {
|
||||
if (const IResizable *candidateResizable = dynamic_cast<const IResizable *>(candidate)) {
|
||||
QRectF candidateRect = candidateResizable->getRect();
|
||||
candidateRect.translate(candidateResizable->getPos());
|
||||
QRectF candidateRect = candidateResizable->rect();
|
||||
candidateRect.translate(candidateResizable->pos());
|
||||
if (candidateRect.left() >= rect.left() && candidateRect.right() <= rect.right()
|
||||
&& candidateRect.top() >= rect.top() && candidateRect.bottom() <= rect.bottom()) {
|
||||
collidingItems.append(candidate);
|
||||
@@ -530,8 +530,8 @@ QList<QGraphicsItem *> DiagramSceneModel::collectCollidingObjectItems(const QGra
|
||||
case COLLIDING_ITEMS:
|
||||
foreach (QGraphicsItem *candidate, m_graphicsItems) {
|
||||
if (const IResizable *candidateResizable = dynamic_cast<const IResizable *>(candidate)) {
|
||||
QRectF candidateRect = candidateResizable->getRect();
|
||||
candidateRect.translate(candidateResizable->getPos());
|
||||
QRectF candidateRect = candidateResizable->rect();
|
||||
candidateRect.translate(candidateResizable->pos());
|
||||
if (candidateRect.left() <= rect.right() && candidateRect.right() >= rect.left()
|
||||
&& candidateRect.top() <= rect.bottom() && candidateRect.bottom() >= rect.top()) {
|
||||
collidingItems.append(candidate);
|
||||
@@ -542,8 +542,8 @@ QList<QGraphicsItem *> DiagramSceneModel::collectCollidingObjectItems(const QGra
|
||||
case COLLIDING_OUTER_ITEMS:
|
||||
foreach (QGraphicsItem *candidate, m_graphicsItems) {
|
||||
if (const IResizable *candidateResizable = dynamic_cast<const IResizable *>(candidate)) {
|
||||
QRectF candidateRect = candidateResizable->getRect();
|
||||
candidateRect.translate(candidateResizable->getPos());
|
||||
QRectF candidateRect = candidateResizable->rect();
|
||||
candidateRect.translate(candidateResizable->pos());
|
||||
if (candidateRect.left() <= rect.left() && candidateRect.right() >= rect.right()
|
||||
&& candidateRect.top() <= rect.top() && candidateRect.bottom() >= rect.bottom()) {
|
||||
collidingItems.append(candidate);
|
||||
@@ -605,7 +605,7 @@ void DiagramSceneModel::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||
void DiagramSceneModel::mouseReleaseEventReparenting(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
if (event->modifiers() & Qt::AltModifier) {
|
||||
ModelController *modelController = getDiagramController()->getModelController();
|
||||
ModelController *modelController = diagramController()->modelController();
|
||||
MPackage *newOwner = 0;
|
||||
QSet<QGraphicsItem *> selectedItemSet = m_graphicsScene->selectedItems().toSet();
|
||||
QList<QGraphicsItem *> itemsUnderMouse = m_graphicsScene->items(event->scenePos());
|
||||
@@ -613,8 +613,8 @@ void DiagramSceneModel::mouseReleaseEventReparenting(QGraphicsSceneMouseEvent *e
|
||||
if (!selectedItemSet.contains(item)) {
|
||||
// the item may be any graphics item not matching to a DElement
|
||||
DElement *element = m_itemToElementMap.value(item);
|
||||
if (element && element->getModelUid().isValid()) {
|
||||
newOwner = modelController->findElement<MPackage>(element->getModelUid());
|
||||
if (element && element->modelUid().isValid()) {
|
||||
newOwner = modelController->findElement<MPackage>(element->modelUid());
|
||||
}
|
||||
}
|
||||
if (newOwner) {
|
||||
@@ -625,10 +625,10 @@ void DiagramSceneModel::mouseReleaseEventReparenting(QGraphicsSceneMouseEvent *e
|
||||
foreach (QGraphicsItem *item, m_graphicsScene->selectedItems()) {
|
||||
DElement *element = m_itemToElementMap.value(item);
|
||||
QMT_CHECK(element);
|
||||
if (element->getModelUid().isValid()) {
|
||||
MObject *modelObject = modelController->findObject(element->getModelUid());
|
||||
if (element->modelUid().isValid()) {
|
||||
MObject *modelObject = modelController->findObject(element->modelUid());
|
||||
if (modelObject) {
|
||||
if (newOwner != modelObject->getOwner()) {
|
||||
if (newOwner != modelObject->owner()) {
|
||||
modelController->moveObject(newOwner, modelObject);
|
||||
}
|
||||
}
|
||||
@@ -666,7 +666,7 @@ void DiagramSceneModel::onEndResetDiagram(const MDiagram *diagram)
|
||||
if (diagram == m_diagram) {
|
||||
QMT_CHECK(m_graphicsItems.size() == 0);
|
||||
// create all items and update graphics item from element initially
|
||||
foreach (DElement *element, diagram->getDiagramElements()) {
|
||||
foreach (DElement *element, diagram->diagramElements()) {
|
||||
QGraphicsItem *item = createGraphicsItem(element);
|
||||
m_graphicsItems.append(item);
|
||||
updateGraphicsItem(item, element);
|
||||
@@ -674,7 +674,7 @@ void DiagramSceneModel::onEndResetDiagram(const MDiagram *diagram)
|
||||
// invalidate scene
|
||||
m_graphicsScene->invalidate();
|
||||
// update graphics items again so every item gets a correct list of colliding items
|
||||
foreach (DElement *element, diagram->getDiagramElements()) {
|
||||
foreach (DElement *element, diagram->diagramElements()) {
|
||||
updateGraphicsItem(m_elementToItemMap.value(element), element);
|
||||
}
|
||||
}
|
||||
@@ -695,7 +695,7 @@ void DiagramSceneModel::onEndUpdateElement(int row, const MDiagram *diagram)
|
||||
QMT_CHECK(m_busy == UPDATE_ELEMENT);
|
||||
if (diagram == m_diagram) {
|
||||
QGraphicsItem *item = m_graphicsItems.at(row);
|
||||
updateGraphicsItem(item, diagram->getDiagramElements().at(row));
|
||||
updateGraphicsItem(item, diagram->diagramElements().at(row));
|
||||
}
|
||||
m_busy = NOT_BUSY;
|
||||
}
|
||||
@@ -713,7 +713,7 @@ void DiagramSceneModel::onEndInsertElement(int row, const MDiagram *diagram)
|
||||
QMT_CHECK(m_busy == INSERT_ELEMENT);
|
||||
QGraphicsItem *item = 0;
|
||||
if (diagram == m_diagram) {
|
||||
DElement *element = diagram->getDiagramElements().at(row);
|
||||
DElement *element = diagram->diagramElements().at(row);
|
||||
item = createGraphicsItem(element);
|
||||
m_graphicsItems.insert(row, item);
|
||||
updateGraphicsItem(item, element);
|
||||
@@ -728,7 +728,7 @@ void DiagramSceneModel::onBeginRemoveElement(int row, const MDiagram *diagram)
|
||||
QMT_CHECK(m_busy == NOT_BUSY);
|
||||
if (diagram == m_diagram) {
|
||||
QGraphicsItem *item = m_graphicsItems.takeAt(row);
|
||||
deleteGraphicsItem(item, diagram->getDiagramElements().at(row));
|
||||
deleteGraphicsItem(item, diagram->diagramElements().at(row));
|
||||
}
|
||||
m_busy = REMOVE_ELEMENT;
|
||||
}
|
||||
@@ -780,16 +780,16 @@ void DiagramSceneModel::onSelectionChanged()
|
||||
}
|
||||
|
||||
// select all relations where both ends are primary or secondary selected
|
||||
foreach (DElement *element, m_diagram->getDiagramElements()) {
|
||||
foreach (DElement *element, m_diagram->diagramElements()) {
|
||||
DRelation *relation = dynamic_cast<DRelation *>(element);
|
||||
if (relation) {
|
||||
QGraphicsItem *relationItem = m_elementToItemMap.value(relation);
|
||||
QMT_CHECK(relationItem);
|
||||
DObject *endAObject = m_diagramController->findElement<DObject>(relation->getEndA(), m_diagram);
|
||||
DObject *endAObject = m_diagramController->findElement<DObject>(relation->endAUid(), m_diagram);
|
||||
QMT_CHECK(endAObject);
|
||||
QGraphicsItem *endAItem = m_elementToItemMap.value(endAObject);
|
||||
QMT_CHECK(endAItem);
|
||||
DObject *endBObject = m_diagramController->findElement<DObject>(relation->getEndB(), m_diagram);
|
||||
DObject *endBObject = m_diagramController->findElement<DObject>(relation->endBUid(), m_diagram);
|
||||
QMT_CHECK(endBObject);
|
||||
QGraphicsItem *endBItem = m_elementToItemMap.value(endBObject);
|
||||
QMT_CHECK(endBItem);
|
||||
@@ -861,7 +861,7 @@ QGraphicsItem *DiagramSceneModel::createGraphicsItem(DElement *element)
|
||||
|
||||
CreationVisitor visitor(this);
|
||||
element->accept(&visitor);
|
||||
QGraphicsItem *item = visitor.getCreatedGraphicsItem();
|
||||
QGraphicsItem *item = visitor.createdGraphicsItem();
|
||||
m_itemToElementMap.insert(item, element);
|
||||
m_elementToItemMap.insert(element, item);
|
||||
m_graphicsScene->addItem(item);
|
||||
|
||||
@@ -96,27 +96,27 @@ signals:
|
||||
|
||||
public:
|
||||
|
||||
DiagramController *getDiagramController() const { return m_diagramController; }
|
||||
DiagramController *diagramController() const { return m_diagramController; }
|
||||
|
||||
void setDiagramController(DiagramController *diagramController);
|
||||
|
||||
DiagramSceneController *getDiagramSceneController() const { return m_diagramSceneController; }
|
||||
DiagramSceneController *diagramSceneController() const { return m_diagramSceneController; }
|
||||
|
||||
void setDiagramSceneController(DiagramSceneController *diagramSceneController);
|
||||
|
||||
StyleController *getStyleController() const { return m_styleController; }
|
||||
StyleController *styleController() const { return m_styleController; }
|
||||
|
||||
void setStyleController(StyleController *styleController);
|
||||
|
||||
StereotypeController *getStereotypeController() const { return m_stereotypeController; }
|
||||
StereotypeController *stereotypeController() const { return m_stereotypeController; }
|
||||
|
||||
void setStereotypeController(StereotypeController *stereotypeController);
|
||||
|
||||
MDiagram *getDiagram() const { return m_diagram; }
|
||||
MDiagram *diagram() const { return m_diagram; }
|
||||
|
||||
void setDiagram(MDiagram *diagram);
|
||||
|
||||
QGraphicsScene *getGraphicsScene() const;
|
||||
QGraphicsScene *graphicsScene() const;
|
||||
|
||||
public:
|
||||
|
||||
@@ -124,25 +124,25 @@ public:
|
||||
|
||||
bool hasMultiObjectsSelection() const;
|
||||
|
||||
DSelection getSelectedElements() const;
|
||||
DSelection selectedElements() const;
|
||||
|
||||
DElement *findTopmostElement(const QPointF &scenePos) const;
|
||||
|
||||
public:
|
||||
|
||||
QList<QGraphicsItem *> getGraphicsItems() const { return m_graphicsItems; }
|
||||
QList<QGraphicsItem *> graphicsItems() const { return m_graphicsItems; }
|
||||
|
||||
QGraphicsItem *getGraphicsItem(DElement *element) const;
|
||||
QGraphicsItem *graphicsItem(DElement *element) const;
|
||||
|
||||
QGraphicsItem *getGraphicsItem(const Uid &uid) const;
|
||||
QGraphicsItem *graphicsItem(const Uid &uid) const;
|
||||
|
||||
QGraphicsItem *getFocusItem() const { return m_focusItem; }
|
||||
QGraphicsItem *focusItem() const { return m_focusItem; }
|
||||
|
||||
bool isSelectedItem(QGraphicsItem *item) const;
|
||||
|
||||
QSet<QGraphicsItem *> getSelectedItems() const { return m_selectedItems; }
|
||||
QSet<QGraphicsItem *> selectedItems() const { return m_selectedItems; }
|
||||
|
||||
DElement *getElement(QGraphicsItem *item) const;
|
||||
DElement *element(QGraphicsItem *item) const;
|
||||
|
||||
bool isElementEditable(const DElement *element) const;
|
||||
|
||||
|
||||
@@ -177,7 +177,7 @@ void DiagramSceneModel::UpdateVisitor::visitDPackage(DPackage *package)
|
||||
if (m_relatedElement == 0) {
|
||||
PackageItem *packageItem = qgraphicsitem_cast<PackageItem *>(m_graphicsItem);
|
||||
QMT_CHECK(packageItem);
|
||||
QMT_CHECK(packageItem->getObject() == package);
|
||||
QMT_CHECK(packageItem->object() == package);
|
||||
packageItem->update();
|
||||
}
|
||||
|
||||
@@ -191,7 +191,7 @@ void DiagramSceneModel::UpdateVisitor::visitDClass(DClass *klass)
|
||||
if (m_relatedElement == 0) {
|
||||
ClassItem *classItem = qgraphicsitem_cast<ClassItem *>(m_graphicsItem);
|
||||
QMT_CHECK(classItem);
|
||||
QMT_CHECK(classItem->getObject() == klass);
|
||||
QMT_CHECK(classItem->object() == klass);
|
||||
classItem->update();
|
||||
}
|
||||
|
||||
@@ -205,7 +205,7 @@ void DiagramSceneModel::UpdateVisitor::visitDComponent(DComponent *component)
|
||||
if (m_relatedElement == 0) {
|
||||
ComponentItem *componentItem = qgraphicsitem_cast<ComponentItem *>(m_graphicsItem);
|
||||
QMT_CHECK(componentItem);
|
||||
QMT_CHECK(componentItem->getObject() == component);
|
||||
QMT_CHECK(componentItem->object() == component);
|
||||
componentItem->update();
|
||||
}
|
||||
|
||||
@@ -219,7 +219,7 @@ void DiagramSceneModel::UpdateVisitor::visitDDiagram(DDiagram *diagram)
|
||||
if (m_relatedElement == 0) {
|
||||
DiagramItem *documentItem = qgraphicsitem_cast<DiagramItem *>(m_graphicsItem);
|
||||
QMT_CHECK(documentItem);
|
||||
QMT_CHECK(documentItem->getObject() == diagram);
|
||||
QMT_CHECK(documentItem->object() == diagram);
|
||||
documentItem->update();
|
||||
}
|
||||
|
||||
@@ -233,7 +233,7 @@ void DiagramSceneModel::UpdateVisitor::visitDItem(DItem *item)
|
||||
if (m_relatedElement == 0) {
|
||||
ItemItem *itemItem = qgraphicsitem_cast<ItemItem *>(m_graphicsItem);
|
||||
QMT_CHECK(itemItem);
|
||||
QMT_CHECK(itemItem->getObject() == item);
|
||||
QMT_CHECK(itemItem->object() == item);
|
||||
itemItem->update();
|
||||
}
|
||||
|
||||
@@ -244,10 +244,10 @@ void DiagramSceneModel::UpdateVisitor::visitDRelation(DRelation *relation)
|
||||
{
|
||||
QMT_CHECK(m_graphicsItem);
|
||||
|
||||
if (m_relatedElement == 0 || m_relatedElement->getUid() == relation->getEndA() || m_relatedElement->getUid() == relation->getEndB()) {
|
||||
if (m_relatedElement == 0 || m_relatedElement->uid() == relation->endAUid() || m_relatedElement->uid() == relation->endBUid()) {
|
||||
RelationItem *relationItem = qgraphicsitem_cast<RelationItem *>(m_graphicsItem);
|
||||
QMT_CHECK(relationItem);
|
||||
QMT_CHECK(relationItem->getRelation() == relation);
|
||||
QMT_CHECK(relationItem->relation() == relation);
|
||||
relationItem->update();
|
||||
}
|
||||
}
|
||||
@@ -274,7 +274,7 @@ void DiagramSceneModel::UpdateVisitor::visitDAnnotation(DAnnotation *annotation)
|
||||
|
||||
AnnotationItem *annotationItem = qgraphicsitem_cast<AnnotationItem *>(m_graphicsItem);
|
||||
QMT_CHECK(annotationItem);
|
||||
QMT_CHECK(annotationItem->getAnnotation() == annotation);
|
||||
QMT_CHECK(annotationItem->annotation() == annotation);
|
||||
annotationItem->update();
|
||||
}
|
||||
|
||||
@@ -285,7 +285,7 @@ void DiagramSceneModel::UpdateVisitor::visitDBoundary(DBoundary *boundary)
|
||||
|
||||
BoundaryItem *boundaryItem = qgraphicsitem_cast<BoundaryItem *>(m_graphicsItem);
|
||||
QMT_CHECK(boundaryItem);
|
||||
QMT_CHECK(boundaryItem->getBoundary() == boundary);
|
||||
QMT_CHECK(boundaryItem->boundary() == boundary);
|
||||
boundaryItem->update();
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QGraphicsItem *getCreatedGraphicsItem() const { return m_graphicsItem; }
|
||||
QGraphicsItem *createdGraphicsItem() const { return m_graphicsItem; }
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ void AnnotationItem::update()
|
||||
|
||||
prepareGeometryChange();
|
||||
|
||||
const Style *style = getAdaptedStyle();
|
||||
const Style *style = adaptedStyle();
|
||||
|
||||
// text
|
||||
if (!m_textItem) {
|
||||
@@ -125,10 +125,10 @@ void AnnotationItem::update()
|
||||
QObject::connect(m_textItem->document(), &QTextDocument::contentsChanged, m_textItem,
|
||||
[=]() { this->onContentsChanged(); } );
|
||||
}
|
||||
m_textItem->setFont(style->getNormalFont());
|
||||
m_textItem->setDefaultTextColor(style->getTextBrush().color());
|
||||
m_textItem->setFont(style->normalFont());
|
||||
m_textItem->setDefaultTextColor(style->textBrush().color());
|
||||
if (!m_onChanged) {
|
||||
m_textItem->setPlainText(getAnnotation()->getText());
|
||||
m_textItem->setPlainText(annotation()->text());
|
||||
}
|
||||
|
||||
// item shown if annotation has no text and is not selected
|
||||
@@ -147,17 +147,17 @@ void AnnotationItem::update()
|
||||
m_onUpdate = false;
|
||||
}
|
||||
|
||||
QPointF AnnotationItem::getPos() const
|
||||
QPointF AnnotationItem::pos() const
|
||||
{
|
||||
return m_annotation->getPos();
|
||||
return m_annotation->pos();
|
||||
}
|
||||
|
||||
QRectF AnnotationItem::getRect() const
|
||||
QRectF AnnotationItem::rect() const
|
||||
{
|
||||
return m_annotation->getRect();
|
||||
return m_annotation->rect();
|
||||
}
|
||||
|
||||
QSizeF AnnotationItem::getMinimumSize() const
|
||||
QSizeF AnnotationItem::minimumSize() const
|
||||
{
|
||||
return calcMinimumGeometry();
|
||||
}
|
||||
@@ -167,14 +167,14 @@ void AnnotationItem::setPosAndRect(const QPointF &originalPos, const QRectF &ori
|
||||
QPointF newPos = originalPos;
|
||||
QRectF newRect = originalRect;
|
||||
GeometryUtilities::adjustPosAndRect(&newPos, &newRect, topLeftDelta, bottomRightDelta, QPointF(0.0, 0.0));
|
||||
if (newPos != m_annotation->getPos() || newRect != m_annotation->getRect()) {
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_annotation, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
if (newPos != m_annotation->pos() || newRect != m_annotation->rect()) {
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_annotation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
m_annotation->setPos(newPos);
|
||||
if (newRect.size() != m_annotation->getRect().size()) {
|
||||
if (newRect.size() != m_annotation->rect().size()) {
|
||||
m_annotation->setAutoSize(false);
|
||||
}
|
||||
m_annotation->setRect(newRect);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_annotation, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_annotation, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,15 +188,15 @@ void AnnotationItem::alignItemSizeToRaster(Side adjustHorizontalSide, Side adjus
|
||||
|
||||
void AnnotationItem::moveDelta(const QPointF &delta)
|
||||
{
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_annotation, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
m_annotation->setPos(m_annotation->getPos() + delta);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_annotation, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_annotation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
m_annotation->setPos(m_annotation->pos() + delta);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_annotation, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
|
||||
void AnnotationItem::alignItemPositionToRaster(double rasterWidth, double rasterHeight)
|
||||
{
|
||||
QPointF pos = m_annotation->getPos();
|
||||
QRectF rect = m_annotation->getRect();
|
||||
QPointF pos = m_annotation->pos();
|
||||
QRectF rect = m_annotation->rect();
|
||||
QPointF topLeft = pos + rect.topLeft();
|
||||
|
||||
double leftDelta = qRound(topLeft.x() / rasterWidth) * rasterWidth - topLeft.x();
|
||||
@@ -296,9 +296,9 @@ void AnnotationItem::updateSelectionMarkerGeometry(const QRectF &annotationRect)
|
||||
}
|
||||
}
|
||||
|
||||
const Style *AnnotationItem::getAdaptedStyle()
|
||||
const Style *AnnotationItem::adaptedStyle()
|
||||
{
|
||||
return m_diagramSceneModel->getStyleController()->adaptAnnotationStyle(m_annotation);
|
||||
return m_diagramSceneModel->styleController()->adaptAnnotationStyle(m_annotation);
|
||||
}
|
||||
|
||||
bool AnnotationItem::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
|
||||
@@ -319,10 +319,10 @@ void AnnotationItem::onContentsChanged()
|
||||
|
||||
if (!m_onUpdate) {
|
||||
QString plainText = m_textItem->toPlainText();
|
||||
if (m_annotation->getText() != plainText) {
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_annotation, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_MINOR);
|
||||
if (m_annotation->text() != plainText) {
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_annotation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_MINOR);
|
||||
m_annotation->setText(plainText);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_annotation, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_annotation, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -334,7 +334,7 @@ QSizeF AnnotationItem::calcMinimumGeometry() const
|
||||
qreal width = MINIMUM_TEXT_WIDTH + 2 * CONTENTS_BORDER_HORIZONTAL;
|
||||
qreal height = 0.0; // irrelevant; cannot be modified by user and will always be overwritten
|
||||
|
||||
if (getAnnotation()->hasAutoSize()) {
|
||||
if (annotation()->hasAutoSize()) {
|
||||
if (m_textItem) {
|
||||
m_textItem->setTextWidth(-1);
|
||||
QSizeF textSize = m_textItem->document()->size();
|
||||
@@ -352,7 +352,7 @@ void AnnotationItem::updateGeometry()
|
||||
qreal width = geometry.width();
|
||||
qreal height = geometry.height();
|
||||
|
||||
if (getAnnotation()->hasAutoSize()) {
|
||||
if (annotation()->hasAutoSize()) {
|
||||
if (m_textItem) {
|
||||
m_textItem->setTextWidth(-1);
|
||||
QSizeF textSize = m_textItem->document()->size();
|
||||
@@ -360,7 +360,7 @@ void AnnotationItem::updateGeometry()
|
||||
height = textSize.height() + 2 * CONTENTS_BORDER_VERTICAL;
|
||||
}
|
||||
} else {
|
||||
QRectF rect = getAnnotation()->getRect();
|
||||
QRectF rect = annotation()->rect();
|
||||
width = rect.width();
|
||||
if (m_textItem) {
|
||||
m_textItem->setTextWidth(width - 2 * CONTENTS_BORDER_HORIZONTAL);
|
||||
@@ -372,14 +372,14 @@ void AnnotationItem::updateGeometry()
|
||||
double left = 0.0;
|
||||
double top = 0.0;
|
||||
|
||||
setPos(getAnnotation()->getPos());
|
||||
setPos(annotation()->pos());
|
||||
|
||||
QRectF rect(left, top, width, height);
|
||||
|
||||
// the object is updated without calling DiagramController intentionally.
|
||||
// attribute rect is not a real attribute stored on DObject but
|
||||
// a backup for the graphics item used for manual resized and persistency.
|
||||
getAnnotation()->setRect(rect);
|
||||
annotation()->setRect(rect);
|
||||
|
||||
if (m_noTextItem) {
|
||||
m_noTextItem->setRect(rect);
|
||||
|
||||
@@ -64,9 +64,9 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
DAnnotation *getAnnotation() const { return m_annotation; }
|
||||
DAnnotation *annotation() const { return m_annotation; }
|
||||
|
||||
DiagramSceneModel *getDiagramSceneModel() const { return m_diagramSceneModel; }
|
||||
DiagramSceneModel *diagramSceneModel() const { return m_diagramSceneModel; }
|
||||
|
||||
public:
|
||||
|
||||
@@ -80,11 +80,11 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QPointF getPos() const;
|
||||
QPointF pos() const;
|
||||
|
||||
QRectF getRect() const;
|
||||
QRectF rect() const;
|
||||
|
||||
QSizeF getMinimumSize() const;
|
||||
QSizeF minimumSize() const;
|
||||
|
||||
void setPosAndRect(const QPointF &originalPos, const QRectF &originalRect, const QPointF &topLeftDelta, const QPointF &bottomRightDelta);
|
||||
|
||||
@@ -126,7 +126,7 @@ protected:
|
||||
|
||||
void updateSelectionMarkerGeometry(const QRectF &annotationRect);
|
||||
|
||||
const Style *getAdaptedStyle();
|
||||
const Style *adaptedStyle();
|
||||
|
||||
bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
|
||||
|
||||
|
||||
@@ -68,42 +68,42 @@ void AssociationItem::update(const Style *style)
|
||||
{
|
||||
RelationItem::update(style);
|
||||
|
||||
updateEndLabels(m_association->getA(), m_association->getB(), &m_endAName, &m_endACardinality, style);
|
||||
updateEndLabels(m_association->getB(), m_association->getA(), &m_endBName, &m_endBCardinality, style);
|
||||
updateEndLabels(m_association->endA(), m_association->endB(), &m_endAName, &m_endACardinality, style);
|
||||
updateEndLabels(m_association->endB(), m_association->endA(), &m_endBName, &m_endBCardinality, style);
|
||||
|
||||
QMT_CHECK(m_arrow);
|
||||
QGraphicsItem *endAItem = m_diagramSceneModel->getGraphicsItem(m_association->getEndA());
|
||||
QGraphicsItem *endAItem = m_diagramSceneModel->graphicsItem(m_association->endAUid());
|
||||
QMT_CHECK(endAItem);
|
||||
placeEndLabels(m_arrow->getFirstLineSegment(), m_endAName, m_endACardinality, endAItem, m_arrow->getStartHeadLength());
|
||||
QGraphicsItem *endBItem = m_diagramSceneModel->getGraphicsItem(m_association->getEndB());
|
||||
placeEndLabels(m_arrow->firstLineSegment(), m_endAName, m_endACardinality, endAItem, m_arrow->startHeadLength());
|
||||
QGraphicsItem *endBItem = m_diagramSceneModel->graphicsItem(m_association->endBUid());
|
||||
QMT_CHECK(endBItem);
|
||||
placeEndLabels(m_arrow->getLastLineSegment(), m_endBName, m_endBCardinality, endBItem, m_arrow->getEndHeadLength());
|
||||
placeEndLabels(m_arrow->lastLineSegment(), m_endBName, m_endBCardinality, endBItem, m_arrow->endHeadLength());
|
||||
}
|
||||
|
||||
void AssociationItem::updateEndLabels(const DAssociationEnd &end, const DAssociationEnd &otherEnd, QGraphicsSimpleTextItem **endName, QGraphicsSimpleTextItem **endCardinality, const Style *style)
|
||||
{
|
||||
Q_UNUSED(end);
|
||||
|
||||
if (!otherEnd.getName().isEmpty()) {
|
||||
if (!otherEnd.name().isEmpty()) {
|
||||
if (!*endName) {
|
||||
*endName = new QGraphicsSimpleTextItem(this);
|
||||
}
|
||||
(*endName)->setFont(style->getSmallFont());
|
||||
(*endName)->setBrush(style->getTextBrush());
|
||||
(*endName)->setText(otherEnd.getName());
|
||||
(*endName)->setFont(style->smallFont());
|
||||
(*endName)->setBrush(style->textBrush());
|
||||
(*endName)->setText(otherEnd.name());
|
||||
} else if (*endName) {
|
||||
(*endName)->scene()->removeItem(*endName);
|
||||
delete *endName;
|
||||
*endName = 0;
|
||||
}
|
||||
|
||||
if (!otherEnd.getCardinality().isEmpty()) {
|
||||
if (!otherEnd.cardinality().isEmpty()) {
|
||||
if (!*endCardinality) {
|
||||
*endCardinality = new QGraphicsSimpleTextItem(this);
|
||||
}
|
||||
(*endCardinality)->setFont(style->getSmallFont());
|
||||
(*endCardinality)->setBrush(style->getTextBrush());
|
||||
(*endCardinality)->setText(otherEnd.getCardinality());
|
||||
(*endCardinality)->setFont(style->smallFont());
|
||||
(*endCardinality)->setBrush(style->textBrush());
|
||||
(*endCardinality)->setText(otherEnd.cardinality());
|
||||
} else if (*endCardinality) {
|
||||
(*endCardinality)->scene()->removeItem(*endCardinality);
|
||||
delete *endCardinality;
|
||||
|
||||
@@ -118,7 +118,7 @@ void BoundaryItem::update()
|
||||
|
||||
prepareGeometryChange();
|
||||
|
||||
const Style *style = getAdaptedStyle();
|
||||
const Style *style = adaptedStyle();
|
||||
|
||||
// text
|
||||
if (!m_textItem) {
|
||||
@@ -128,11 +128,11 @@ void BoundaryItem::update()
|
||||
QObject::connect(m_textItem->document(), &QTextDocument::contentsChanged, m_textItem,
|
||||
[=]() { this->onContentsChanged(); } );
|
||||
}
|
||||
m_textItem->setFont(style->getNormalFont());
|
||||
m_textItem->setDefaultTextColor(style->getTextBrush().color());
|
||||
m_textItem->setFont(style->normalFont());
|
||||
m_textItem->setDefaultTextColor(style->textBrush().color());
|
||||
if (!m_onChanged) {
|
||||
m_textItem->setTextWidth(-1);
|
||||
m_textItem->setPlainText(m_boundary->getText());
|
||||
m_textItem->setPlainText(m_boundary->text());
|
||||
}
|
||||
|
||||
// item shown if annotation has no text and is not selected
|
||||
@@ -162,17 +162,17 @@ void BoundaryItem::update()
|
||||
m_onUpdate = false;
|
||||
}
|
||||
|
||||
QPointF BoundaryItem::getPos() const
|
||||
QPointF BoundaryItem::pos() const
|
||||
{
|
||||
return m_boundary->getPos();
|
||||
return m_boundary->pos();
|
||||
}
|
||||
|
||||
QRectF BoundaryItem::getRect() const
|
||||
QRectF BoundaryItem::rect() const
|
||||
{
|
||||
return m_boundary->getRect();
|
||||
return m_boundary->rect();
|
||||
}
|
||||
|
||||
QSizeF BoundaryItem::getMinimumSize() const
|
||||
QSizeF BoundaryItem::minimumSize() const
|
||||
{
|
||||
return calcMinimumGeometry();
|
||||
}
|
||||
@@ -182,24 +182,24 @@ void BoundaryItem::setPosAndRect(const QPointF &originalPos, const QRectF &origi
|
||||
QPointF newPos = originalPos;
|
||||
QRectF newRect = originalRect;
|
||||
GeometryUtilities::adjustPosAndRect(&newPos, &newRect, topLeftDelta, bottomRightDelta, QPointF(0.5, 0.5));
|
||||
if (newPos != m_boundary->getPos() || newRect != m_boundary->getRect()) {
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_boundary, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
if (newPos != m_boundary->pos() || newRect != m_boundary->rect()) {
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_boundary, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
m_boundary->setPos(newPos);
|
||||
m_boundary->setRect(newRect);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_boundary, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_boundary, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
}
|
||||
|
||||
void BoundaryItem::alignItemSizeToRaster(IResizable::Side adjustHorizontalSide, IResizable::Side adjustVerticalSide, double rasterWidth, double rasterHeight)
|
||||
{
|
||||
QPointF pos = m_boundary->getPos();
|
||||
QRectF rect = m_boundary->getRect();
|
||||
QPointF pos = m_boundary->pos();
|
||||
QRectF rect = m_boundary->rect();
|
||||
|
||||
double horizDelta = rect.width() - qRound(rect.width() / rasterWidth) * rasterWidth;
|
||||
double vertDelta = rect.height() - qRound(rect.height() / rasterHeight) * rasterHeight;
|
||||
|
||||
// make sure the new size is at least the minimum size
|
||||
QSizeF minimumSize = getMinimumSize();
|
||||
QSizeF minimumSize = BoundaryItem::minimumSize();
|
||||
while (rect.width() + horizDelta < minimumSize.width()) {
|
||||
horizDelta += rasterWidth;
|
||||
}
|
||||
@@ -241,15 +241,15 @@ void BoundaryItem::alignItemSizeToRaster(IResizable::Side adjustHorizontalSide,
|
||||
|
||||
void BoundaryItem::moveDelta(const QPointF &delta)
|
||||
{
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_boundary, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
m_boundary->setPos(m_boundary->getPos() + delta);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_boundary, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_boundary, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
m_boundary->setPos(m_boundary->pos() + delta);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_boundary, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
|
||||
void BoundaryItem::alignItemPositionToRaster(double rasterWidth, double rasterHeight)
|
||||
{
|
||||
QPointF pos = m_boundary->getPos();
|
||||
QRectF rect = m_boundary->getRect();
|
||||
QPointF pos = m_boundary->pos();
|
||||
QRectF rect = m_boundary->rect();
|
||||
QPointF topLeft = pos + rect.topLeft();
|
||||
|
||||
double leftDelta = qRound(topLeft.x() / rasterWidth) * rasterWidth - topLeft.x();
|
||||
@@ -347,9 +347,9 @@ void BoundaryItem::updateSelectionMarkerGeometry(const QRectF &boundaryRect)
|
||||
}
|
||||
}
|
||||
|
||||
const Style *BoundaryItem::getAdaptedStyle()
|
||||
const Style *BoundaryItem::adaptedStyle()
|
||||
{
|
||||
return m_diagramSceneModel->getStyleController()->adaptBoundaryStyle(m_boundary);
|
||||
return m_diagramSceneModel->styleController()->adaptBoundaryStyle(m_boundary);
|
||||
}
|
||||
|
||||
bool BoundaryItem::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
|
||||
@@ -370,10 +370,10 @@ void BoundaryItem::onContentsChanged()
|
||||
|
||||
if (!m_onUpdate) {
|
||||
QString plainText = m_textItem->toPlainText();
|
||||
if (m_boundary->getText() != plainText) {
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_boundary, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_MINOR);
|
||||
if (m_boundary->text() != plainText) {
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_boundary, m_diagramSceneModel->diagram(), DiagramController::UPDATE_MINOR);
|
||||
m_boundary->setText(plainText);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_boundary, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_boundary, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -417,7 +417,7 @@ void BoundaryItem::updateGeometry()
|
||||
textHeight = textSize.height();
|
||||
}
|
||||
|
||||
QRectF boundaryRect = m_boundary->getRect();
|
||||
QRectF boundaryRect = m_boundary->rect();
|
||||
if (boundaryRect.width() > width) {
|
||||
width = boundaryRect.width();
|
||||
}
|
||||
@@ -429,7 +429,7 @@ void BoundaryItem::updateGeometry()
|
||||
double left = -width / 2.0;
|
||||
double top = -height / 2.0;
|
||||
|
||||
setPos(m_boundary->getPos());
|
||||
setPos(m_boundary->pos());
|
||||
|
||||
QRectF rect(left, top, width, height);
|
||||
|
||||
|
||||
@@ -63,9 +63,9 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
DBoundary *getBoundary() const { return m_boundary; }
|
||||
DBoundary *boundary() const { return m_boundary; }
|
||||
|
||||
DiagramSceneModel *getDiagramSceneModel() const { return m_diagramSceneModel; }
|
||||
DiagramSceneModel *diagramSceneModel() const { return m_diagramSceneModel; }
|
||||
|
||||
public:
|
||||
|
||||
@@ -79,11 +79,11 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QPointF getPos() const;
|
||||
QPointF pos() const;
|
||||
|
||||
QRectF getRect() const;
|
||||
QRectF rect() const;
|
||||
|
||||
QSizeF getMinimumSize() const;
|
||||
QSizeF minimumSize() const;
|
||||
|
||||
void setPosAndRect(const QPointF &originalPos, const QRectF &originalRect, const QPointF &topLeftDelta, const QPointF &bottomRightDelta);
|
||||
|
||||
@@ -125,7 +125,7 @@ protected:
|
||||
|
||||
void updateSelectionMarkerGeometry(const QRectF &boundaryRect);
|
||||
|
||||
const Style *getAdaptedStyle();
|
||||
const Style *adaptedStyle();
|
||||
|
||||
bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
|
||||
|
||||
|
||||
@@ -95,12 +95,12 @@ void ClassItem::update()
|
||||
|
||||
updateStereotypeIconDisplay();
|
||||
|
||||
DClass *diagramClass = dynamic_cast<DClass *>(getObject());
|
||||
DClass *diagramClass = dynamic_cast<DClass *>(object());
|
||||
QMT_CHECK(diagramClass);
|
||||
|
||||
const Style *style = getAdaptedStyle(getStereotypeIconId());
|
||||
const Style *style = adaptedStyle(stereotypeIconId());
|
||||
|
||||
if (diagramClass->getShowAllMembers()) {
|
||||
if (diagramClass->showAllMembers()) {
|
||||
updateMembers(style);
|
||||
} else {
|
||||
m_attributesText.clear();
|
||||
@@ -108,14 +108,14 @@ void ClassItem::update()
|
||||
}
|
||||
|
||||
// custom icon
|
||||
if (getStereotypeIconDisplay() == StereotypeIcon::DISPLAY_ICON) {
|
||||
if (stereotypeIconDisplay() == StereotypeIcon::DISPLAY_ICON) {
|
||||
if (!m_customIcon) {
|
||||
m_customIcon = new CustomIconItem(getDiagramSceneModel(), this);
|
||||
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
||||
}
|
||||
m_customIcon->setStereotypeIconId(getStereotypeIconId());
|
||||
m_customIcon->setBaseSize(getStereotypeIconMinimumSize(m_customIcon->getStereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT));
|
||||
m_customIcon->setBrush(style->getFillBrush());
|
||||
m_customIcon->setPen(style->getOuterLinePen());
|
||||
m_customIcon->setStereotypeIconId(stereotypeIconId());
|
||||
m_customIcon->setBaseSize(stereotypeIconMinimumSize(m_customIcon->stereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT));
|
||||
m_customIcon->setBrush(style->fillBrush());
|
||||
m_customIcon->setPen(style->outerLinePen());
|
||||
m_customIcon->setZValue(SHAPE_ZVALUE);
|
||||
} else if (m_customIcon) {
|
||||
m_customIcon->scene()->removeItem(m_customIcon);
|
||||
@@ -128,8 +128,8 @@ void ClassItem::update()
|
||||
if (!m_shape) {
|
||||
m_shape = new QGraphicsRectItem(this);
|
||||
}
|
||||
m_shape->setBrush(style->getFillBrush());
|
||||
m_shape->setPen(style->getOuterLinePen());
|
||||
m_shape->setBrush(style->fillBrush());
|
||||
m_shape->setPen(style->outerLinePen());
|
||||
m_shape->setZValue(SHAPE_ZVALUE);
|
||||
} else if (m_shape){
|
||||
m_shape->scene()->removeItem(m_shape);
|
||||
@@ -138,23 +138,23 @@ void ClassItem::update()
|
||||
}
|
||||
|
||||
// stereotypes
|
||||
updateStereotypes(getStereotypeIconId(), getStereotypeIconDisplay(), style);
|
||||
updateStereotypes(stereotypeIconId(), stereotypeIconDisplay(), style);
|
||||
|
||||
// namespace
|
||||
if (!diagramClass->getNamespace().isEmpty()) {
|
||||
if (!diagramClass->nameSpace().isEmpty()) {
|
||||
if (!m_namespace) {
|
||||
m_namespace = new QGraphicsSimpleTextItem(this);
|
||||
}
|
||||
m_namespace->setFont(style->getSmallFont());
|
||||
m_namespace->setBrush(style->getTextBrush());
|
||||
m_namespace->setText(diagramClass->getNamespace());
|
||||
m_namespace->setFont(style->smallFont());
|
||||
m_namespace->setBrush(style->textBrush());
|
||||
m_namespace->setText(diagramClass->nameSpace());
|
||||
} else if (m_namespace) {
|
||||
m_namespace->scene()->removeItem(m_namespace);
|
||||
delete m_namespace;
|
||||
m_namespace = 0;
|
||||
}
|
||||
|
||||
DClass::TemplateDisplay templateDisplay = diagramClass->getTemplateDisplay();
|
||||
DClass::TemplateDisplay templateDisplay = diagramClass->templateDisplay();
|
||||
if (templateDisplay == DClass::TEMPLATE_SMART) {
|
||||
if (m_customIcon) {
|
||||
templateDisplay = DClass::TEMPLATE_NAME;
|
||||
@@ -167,13 +167,13 @@ void ClassItem::update()
|
||||
if (!m_className) {
|
||||
m_className = new QGraphicsSimpleTextItem(this);
|
||||
}
|
||||
m_className->setFont(style->getHeaderFont());
|
||||
m_className->setBrush(style->getTextBrush());
|
||||
if (templateDisplay == DClass::TEMPLATE_NAME && !diagramClass->getTemplateParameters().isEmpty()) {
|
||||
QString name = getObject()->getName();
|
||||
m_className->setFont(style->headerFont());
|
||||
m_className->setBrush(style->textBrush());
|
||||
if (templateDisplay == DClass::TEMPLATE_NAME && !diagramClass->templateParameters().isEmpty()) {
|
||||
QString name = object()->name();
|
||||
name += QLatin1Char('<');
|
||||
bool first = true;
|
||||
foreach (const QString &p, diagramClass->getTemplateParameters()) {
|
||||
foreach (const QString &p, diagramClass->templateParameters()) {
|
||||
if (!first) {
|
||||
name += QLatin1Char(',');
|
||||
}
|
||||
@@ -183,7 +183,7 @@ void ClassItem::update()
|
||||
name += QLatin1Char('>');
|
||||
m_className->setText(name);
|
||||
} else {
|
||||
m_className->setText(getObject()->getName());
|
||||
m_className->setText(object()->name());
|
||||
}
|
||||
|
||||
// context
|
||||
@@ -191,9 +191,9 @@ void ClassItem::update()
|
||||
if (!m_contextLabel) {
|
||||
m_contextLabel = new ContextLabelItem(this);
|
||||
}
|
||||
m_contextLabel->setFont(style->getSmallFont());
|
||||
m_contextLabel->setBrush(style->getTextBrush());
|
||||
m_contextLabel->setContext(getObject()->getContext());
|
||||
m_contextLabel->setFont(style->smallFont());
|
||||
m_contextLabel->setBrush(style->textBrush());
|
||||
m_contextLabel->setContext(object()->context());
|
||||
} else if (m_contextLabel) {
|
||||
m_contextLabel->scene()->removeItem(m_contextLabel);
|
||||
delete m_contextLabel;
|
||||
@@ -205,7 +205,7 @@ void ClassItem::update()
|
||||
if (!m_attributesSeparator) {
|
||||
m_attributesSeparator = new QGraphicsLineItem(this);
|
||||
}
|
||||
m_attributesSeparator->setPen(style->getInnerLinePen());
|
||||
m_attributesSeparator->setPen(style->innerLinePen());
|
||||
m_attributesSeparator->setZValue(SHAPE_DETAILS_ZVALUE);
|
||||
} else if (m_attributesSeparator) {
|
||||
m_attributesSeparator->scene()->removeItem(m_attributesSeparator);
|
||||
@@ -218,9 +218,9 @@ void ClassItem::update()
|
||||
if (!m_attributes) {
|
||||
m_attributes = new QGraphicsTextItem(this);
|
||||
}
|
||||
m_attributes->setFont(style->getNormalFont());
|
||||
//m_attributes->setBrush(style->getTextBrush());
|
||||
m_attributes->setDefaultTextColor(style->getTextBrush().color());
|
||||
m_attributes->setFont(style->normalFont());
|
||||
//m_attributes->setBrush(style->textBrush());
|
||||
m_attributes->setDefaultTextColor(style->textBrush().color());
|
||||
m_attributes->setHtml(m_attributesText);
|
||||
} else if (m_attributes) {
|
||||
m_attributes->scene()->removeItem(m_attributes);
|
||||
@@ -233,7 +233,7 @@ void ClassItem::update()
|
||||
if (!m_methodsSeparator) {
|
||||
m_methodsSeparator = new QGraphicsLineItem(this);
|
||||
}
|
||||
m_methodsSeparator->setPen(style->getInnerLinePen());
|
||||
m_methodsSeparator->setPen(style->innerLinePen());
|
||||
m_methodsSeparator->setZValue(SHAPE_DETAILS_ZVALUE);
|
||||
} else if (m_methodsSeparator) {
|
||||
m_methodsSeparator->scene()->removeItem(m_methodsSeparator);
|
||||
@@ -246,9 +246,9 @@ void ClassItem::update()
|
||||
if (!m_methods) {
|
||||
m_methods = new QGraphicsTextItem(this);
|
||||
}
|
||||
m_methods->setFont(style->getNormalFont());
|
||||
//m_methods->setBrush(style->getTextBrush());
|
||||
m_methods->setDefaultTextColor(style->getTextBrush().color());
|
||||
m_methods->setFont(style->normalFont());
|
||||
//m_methods->setBrush(style->textBrush());
|
||||
m_methods->setDefaultTextColor(style->textBrush().color());
|
||||
m_methods->setHtml(m_methodsText);
|
||||
} else if (m_methods) {
|
||||
m_methods->scene()->removeItem(m_methods);
|
||||
@@ -257,17 +257,17 @@ void ClassItem::update()
|
||||
}
|
||||
|
||||
// template parameters
|
||||
if (templateDisplay == DClass::TEMPLATE_BOX && !diagramClass->getTemplateParameters().isEmpty()) {
|
||||
if (templateDisplay == DClass::TEMPLATE_BOX && !diagramClass->templateParameters().isEmpty()) {
|
||||
if (!m_templateParameterBox) {
|
||||
m_templateParameterBox = new TemplateParameterBox(this);
|
||||
}
|
||||
QPen pen = style->getOuterLinePen();
|
||||
QPen pen = style->outerLinePen();
|
||||
pen.setStyle(Qt::DashLine);
|
||||
m_templateParameterBox->setPen(pen);
|
||||
m_templateParameterBox->setBrush(QBrush(Qt::white));
|
||||
m_templateParameterBox->setFont(style->getSmallFont());
|
||||
m_templateParameterBox->setTextBrush(style->getTextBrush());
|
||||
m_templateParameterBox->setTemplateParameters(diagramClass->getTemplateParameters());
|
||||
m_templateParameterBox->setFont(style->smallFont());
|
||||
m_templateParameterBox->setTextBrush(style->textBrush());
|
||||
m_templateParameterBox->setTemplateParameters(diagramClass->templateParameters());
|
||||
} else if (m_templateParameterBox) {
|
||||
m_templateParameterBox->scene()->removeItem(m_templateParameterBox);
|
||||
delete m_templateParameterBox;
|
||||
@@ -279,7 +279,7 @@ void ClassItem::update()
|
||||
// relation starters
|
||||
if (isFocusSelected()) {
|
||||
if (!m_relationStarter) {
|
||||
m_relationStarter = new RelationStarter(this, getDiagramSceneModel(), 0);
|
||||
m_relationStarter = new RelationStarter(this, diagramSceneModel(), 0);
|
||||
scene()->addItem(m_relationStarter);
|
||||
m_relationStarter->setZValue(RELATION_STARTER_ZVALUE);
|
||||
m_relationStarter->addArrow(QLatin1String("inheritance"), ArrowItem::SHAFT_SOLID, ArrowItem::HEAD_TRIANGLE);
|
||||
@@ -301,52 +301,52 @@ bool ClassItem::intersectShapeWithLine(const QLineF &line, QPointF *intersection
|
||||
{
|
||||
QPolygonF polygon;
|
||||
if (m_customIcon) {
|
||||
QRectF rect = getObject()->getRect();
|
||||
QRectF rect = object()->rect();
|
||||
// polygon = m_customIcon->path().toFillPolygon(QTransform()
|
||||
// .scale(rect.width() / m_customIcon->getShapeWidth(), rect.height() / m_customIcon->getShapeHeight())
|
||||
// .translate(getObject()->getPos().x(), getObject()->getPos().y()));
|
||||
rect.translate(getObject()->getPos());
|
||||
// .scale(rect.width() / m_customIcon->shapeWidth(), rect.height() / m_customIcon->shapeHeight())
|
||||
// .translate(object()->pos().x(), object()->pos().y()));
|
||||
rect.translate(object()->pos());
|
||||
polygon << rect.topLeft() << rect.topRight() << rect.bottomRight() << rect.bottomLeft() << rect.topLeft();
|
||||
} else {
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
polygon << rect.topLeft() << rect.topRight() << rect.bottomRight() << rect.bottomLeft() << rect.topLeft();
|
||||
}
|
||||
return GeometryUtilities::intersect(polygon, line, intersectionPoint, intersectionLine);
|
||||
}
|
||||
|
||||
QSizeF ClassItem::getMinimumSize() const
|
||||
QSizeF ClassItem::minimumSize() const
|
||||
{
|
||||
return calcMinimumGeometry();
|
||||
}
|
||||
|
||||
QPointF ClassItem::getRelationStartPos() const
|
||||
QPointF ClassItem::relationStartPos() const
|
||||
{
|
||||
return pos();
|
||||
}
|
||||
|
||||
void ClassItem::relationDrawn(const QString &id, const QPointF &toScenePos, const QList<QPointF> &intermediatePoints)
|
||||
{
|
||||
DElement *targetElement = getDiagramSceneModel()->findTopmostElement(toScenePos);
|
||||
DElement *targetElement = diagramSceneModel()->findTopmostElement(toScenePos);
|
||||
if (targetElement) {
|
||||
if (id == QLatin1String("inheritance")) {
|
||||
DClass *baseClass = dynamic_cast<DClass *>(targetElement);
|
||||
if (baseClass) {
|
||||
DClass *derivedClass = dynamic_cast<DClass *>(getObject());
|
||||
DClass *derivedClass = dynamic_cast<DClass *>(object());
|
||||
QMT_CHECK(derivedClass);
|
||||
getDiagramSceneModel()->getDiagramSceneController()->createInheritance(derivedClass, baseClass, intermediatePoints, getDiagramSceneModel()->getDiagram());
|
||||
diagramSceneModel()->diagramSceneController()->createInheritance(derivedClass, baseClass, intermediatePoints, diagramSceneModel()->diagram());
|
||||
}
|
||||
} else if (id == QLatin1String("dependency")) {
|
||||
DObject *dependantObject = dynamic_cast<DObject *>(targetElement);
|
||||
if (dependantObject) {
|
||||
getDiagramSceneModel()->getDiagramSceneController()->createDependency(getObject(), dependantObject, intermediatePoints, getDiagramSceneModel()->getDiagram());
|
||||
diagramSceneModel()->diagramSceneController()->createDependency(object(), dependantObject, intermediatePoints, diagramSceneModel()->diagram());
|
||||
}
|
||||
} else if (id == QLatin1String("association")) {
|
||||
DClass *assoziatedClass = dynamic_cast<DClass *>(targetElement);
|
||||
if (assoziatedClass) {
|
||||
DClass *derivedClass = dynamic_cast<DClass *>(getObject());
|
||||
DClass *derivedClass = dynamic_cast<DClass *>(object());
|
||||
QMT_CHECK(derivedClass);
|
||||
getDiagramSceneModel()->getDiagramSceneController()->createAssociation(derivedClass, assoziatedClass, intermediatePoints, getDiagramSceneModel()->getDiagram());
|
||||
diagramSceneModel()->diagramSceneController()->createAssociation(derivedClass, assoziatedClass, intermediatePoints, diagramSceneModel()->diagram());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -355,7 +355,7 @@ void ClassItem::relationDrawn(const QString &id, const QPointF &toScenePos, cons
|
||||
bool ClassItem::extendContextMenu(QMenu *menu)
|
||||
{
|
||||
bool extended = false;
|
||||
if (getDiagramSceneModel()->getDiagramSceneController()->getElementTasks()->hasClassDefinition(getObject(), getDiagramSceneModel()->getDiagram())) {
|
||||
if (diagramSceneModel()->diagramSceneController()->elementTasks()->hasClassDefinition(object(), diagramSceneModel()->diagram())) {
|
||||
menu->addAction(new ContextMenuAction(QObject::tr("Show Definition"), QStringLiteral("showDefinition"), menu));
|
||||
extended = true;
|
||||
}
|
||||
@@ -366,8 +366,8 @@ bool ClassItem::handleSelectedContextMenuAction(QAction *action)
|
||||
{
|
||||
ContextMenuAction *klassAction = dynamic_cast<ContextMenuAction *>(action);
|
||||
if (klassAction) {
|
||||
if (klassAction->getId() == QStringLiteral("showDefinition")) {
|
||||
getDiagramSceneModel()->getDiagramSceneController()->getElementTasks()->openClassDefinition(getObject(), getDiagramSceneModel()->getDiagram());
|
||||
if (klassAction->id() == QStringLiteral("showDefinition")) {
|
||||
diagramSceneModel()->diagramSceneController()->elementTasks()->openClassDefinition(object(), diagramSceneModel()->diagram());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -380,15 +380,15 @@ QSizeF ClassItem::calcMinimumGeometry() const
|
||||
double height = 0.0;
|
||||
|
||||
if (m_customIcon) {
|
||||
return getStereotypeIconMinimumSize(m_customIcon->getStereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT);
|
||||
return stereotypeIconMinimumSize(m_customIcon->stereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT);
|
||||
}
|
||||
|
||||
height += BODY_VERT_BORDER;
|
||||
if (CustomIconItem *stereotypeIconItem = getStereotypeIconItem()) {
|
||||
if (CustomIconItem *stereotypeIconItem = ObjectItem::stereotypeIconItem()) {
|
||||
width = std::max(width, stereotypeIconItem->boundingRect().width() + 2 * BODY_HORIZ_BORDER);
|
||||
height += stereotypeIconItem->boundingRect().height();
|
||||
}
|
||||
if (StereotypesItem *stereotypesItem = getStereotypesItem()) {
|
||||
if (StereotypesItem *stereotypesItem = ObjectItem::stereotypesItem()) {
|
||||
width = std::max(width, stereotypesItem->boundingRect().width() + 2 * BODY_HORIZ_BORDER);
|
||||
height += stereotypesItem->boundingRect().height();
|
||||
}
|
||||
@@ -401,7 +401,7 @@ QSizeF ClassItem::calcMinimumGeometry() const
|
||||
height += m_className->boundingRect().height();
|
||||
}
|
||||
if (m_contextLabel) {
|
||||
height += m_contextLabel->getHeight();
|
||||
height += m_contextLabel->height();
|
||||
}
|
||||
if (m_attributesSeparator) {
|
||||
height += 8.0;
|
||||
@@ -434,7 +434,7 @@ void ClassItem::updateGeometry()
|
||||
width = geometry.width();
|
||||
height = geometry.height();
|
||||
|
||||
if (getObject()->hasAutoSize()) {
|
||||
if (object()->hasAutoSize()) {
|
||||
if (!m_customIcon) {
|
||||
if (width < MINIMUM_AUTO_WIDTH) {
|
||||
width = MINIMUM_AUTO_WIDTH;
|
||||
@@ -444,7 +444,7 @@ void ClassItem::updateGeometry()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
QRectF rect = getObject()->getRect();
|
||||
QRectF rect = object()->rect();
|
||||
if (rect.width() > width) {
|
||||
width = rect.width();
|
||||
}
|
||||
@@ -460,14 +460,14 @@ void ClassItem::updateGeometry()
|
||||
//double bottom = height / 2.0;
|
||||
double y = top;
|
||||
|
||||
setPos(getObject()->getPos());
|
||||
setPos(object()->pos());
|
||||
|
||||
QRectF rect(left, top, width, height);
|
||||
|
||||
// the object is updated without calling DiagramController intentionally.
|
||||
// attribute rect is not a real attribute stored on DObject but
|
||||
// a backup for the graphics item used for manual resized and persistency.
|
||||
getObject()->setRect(rect);
|
||||
object()->setRect(rect);
|
||||
|
||||
if (m_customIcon) {
|
||||
m_customIcon->setPos(left, top);
|
||||
@@ -480,11 +480,11 @@ void ClassItem::updateGeometry()
|
||||
}
|
||||
|
||||
y += BODY_VERT_BORDER;
|
||||
if (CustomIconItem *stereotypeIconItem = getStereotypeIconItem()) {
|
||||
if (CustomIconItem *stereotypeIconItem = ObjectItem::stereotypeIconItem()) {
|
||||
stereotypeIconItem->setPos(right - stereotypeIconItem->boundingRect().width() - BODY_HORIZ_BORDER, y);
|
||||
y += stereotypeIconItem->boundingRect().height();
|
||||
}
|
||||
if (StereotypesItem *stereotypesItem = getStereotypesItem()) {
|
||||
if (StereotypesItem *stereotypesItem = ObjectItem::stereotypesItem()) {
|
||||
stereotypesItem->setPos(-stereotypesItem->boundingRect().width() / 2.0, y);
|
||||
y += stereotypesItem->boundingRect().height();
|
||||
}
|
||||
@@ -573,17 +573,17 @@ void ClassItem::updateMembers(const Style *style)
|
||||
QString *currentGroup = 0;
|
||||
QString *text = 0;
|
||||
|
||||
DClass *dclass = dynamic_cast<DClass *>(getObject());
|
||||
DClass *dclass = dynamic_cast<DClass *>(object());
|
||||
QMT_CHECK(dclass);
|
||||
|
||||
// TODO move bool haveIconFonts into class Style?
|
||||
bool haveIconFonts = false; // style->getNormalFont().family() == QStringLiteral("Modelling");
|
||||
bool haveIconFonts = false; // style->normalFont().family() == QStringLiteral("Modelling");
|
||||
// TODO any reason to show visibility as group instead of per member?
|
||||
bool useGroupVisibility = false;
|
||||
|
||||
foreach (const MClassMember &member, dclass->getMembers()) {
|
||||
foreach (const MClassMember &member, dclass->members()) {
|
||||
|
||||
switch (member.getMemberType()) {
|
||||
switch (member.memberType()) {
|
||||
case MClassMember::MEMBER_UNDEFINED:
|
||||
QMT_CHECK(false);
|
||||
break;
|
||||
@@ -605,11 +605,11 @@ void ClassItem::updateMembers(const Style *style)
|
||||
|
||||
bool addNewline = false;
|
||||
bool addSpace = false;
|
||||
if (member.getVisibility() != *currentVisibility) {
|
||||
if (member.visibility() != *currentVisibility) {
|
||||
if (useGroupVisibility) {
|
||||
if (member.getVisibility() != MClassMember::VISIBILITY_UNDEFINED) {
|
||||
if (member.visibility() != MClassMember::VISIBILITY_UNDEFINED) {
|
||||
QString vis;
|
||||
switch (member.getVisibility()) {
|
||||
switch (member.visibility()) {
|
||||
case MClassMember::VISIBILITY_UNDEFINED:
|
||||
break;
|
||||
case MClassMember::VISIBILITY_PUBLIC:
|
||||
@@ -639,15 +639,15 @@ void ClassItem::updateMembers(const Style *style)
|
||||
addSpace = true;
|
||||
}
|
||||
}
|
||||
*currentVisibility = member.getVisibility();
|
||||
*currentVisibility = member.visibility();
|
||||
}
|
||||
if (member.getGroup() != currentGroup) {
|
||||
if (member.group() != currentGroup) {
|
||||
if (addSpace) {
|
||||
*text += QStringLiteral(" ");
|
||||
}
|
||||
*text += QString(QStringLiteral("[%1]")).arg(member.getGroup());
|
||||
*text += QString(QStringLiteral("[%1]")).arg(member.group());
|
||||
addNewline = true;
|
||||
*currentGroup = member.getGroup();
|
||||
*currentGroup = member.group();
|
||||
}
|
||||
if (addNewline) {
|
||||
*text += QStringLiteral("<br/>");
|
||||
@@ -657,9 +657,9 @@ void ClassItem::updateMembers(const Style *style)
|
||||
bool haveSignal = false;
|
||||
bool haveSlot = false;
|
||||
if (!useGroupVisibility) {
|
||||
if (member.getVisibility() != MClassMember::VISIBILITY_UNDEFINED) {
|
||||
if (member.visibility() != MClassMember::VISIBILITY_UNDEFINED) {
|
||||
QString vis;
|
||||
switch (member.getVisibility()) {
|
||||
switch (member.visibility()) {
|
||||
case MClassMember::VISIBILITY_UNDEFINED:
|
||||
break;
|
||||
case MClassMember::VISIBILITY_PUBLIC:
|
||||
@@ -702,38 +702,38 @@ void ClassItem::updateMembers(const Style *style)
|
||||
}
|
||||
}
|
||||
|
||||
if (member.getProperties() & MClassMember::PROPERTY_QSIGNAL && !haveSignal) {
|
||||
if (member.properties() & MClassMember::PROPERTY_QSIGNAL && !haveSignal) {
|
||||
*text += haveIconFonts ? QString(QChar(0xe994)) : QStringLiteral(">");
|
||||
addSpace = true;
|
||||
}
|
||||
if (member.getProperties() & MClassMember::PROPERTY_QSLOT && !haveSlot) {
|
||||
if (member.properties() & MClassMember::PROPERTY_QSLOT && !haveSlot) {
|
||||
*text += haveIconFonts ? QString(QChar(0xe9cb)) : QStringLiteral("$");
|
||||
addSpace = true;
|
||||
}
|
||||
if (addSpace) {
|
||||
*text += QStringLiteral(" ");
|
||||
}
|
||||
if (member.getProperties() & MClassMember::PROPERTY_QINVOKABLE) {
|
||||
if (member.properties() & MClassMember::PROPERTY_QINVOKABLE) {
|
||||
*text += QStringLiteral("invokable ");
|
||||
}
|
||||
if (!member.getStereotypes().isEmpty()) {
|
||||
*text += StereotypesItem::format(member.getStereotypes());
|
||||
if (!member.stereotypes().isEmpty()) {
|
||||
*text += StereotypesItem::format(member.stereotypes());
|
||||
*text += QStringLiteral(" ");
|
||||
}
|
||||
if (member.getProperties() & MClassMember::PROPERTY_VIRTUAL) {
|
||||
if (member.properties() & MClassMember::PROPERTY_VIRTUAL) {
|
||||
*text += QStringLiteral("virtual ");
|
||||
}
|
||||
*text += member.getDeclaration();
|
||||
if (member.getProperties() & MClassMember::PROPERTY_CONST) {
|
||||
*text += member.declaration();
|
||||
if (member.properties() & MClassMember::PROPERTY_CONST) {
|
||||
*text += QStringLiteral(" const");
|
||||
}
|
||||
if (member.getProperties() & MClassMember::PROPERTY_OVERRIDE) {
|
||||
if (member.properties() & MClassMember::PROPERTY_OVERRIDE) {
|
||||
*text += QStringLiteral(" override");
|
||||
}
|
||||
if (member.getProperties() & MClassMember::PROPERTY_FINAL) {
|
||||
if (member.properties() & MClassMember::PROPERTY_FINAL) {
|
||||
*text += QStringLiteral(" final");
|
||||
}
|
||||
if (member.getProperties() & MClassMember::PROPERTY_ABSTRACT) {
|
||||
if (member.properties() & MClassMember::PROPERTY_ABSTRACT) {
|
||||
*text += QStringLiteral(" = 0");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,11 +72,11 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QSizeF getMinimumSize() const;
|
||||
QSizeF minimumSize() const;
|
||||
|
||||
public:
|
||||
|
||||
QPointF getRelationStartPos() const;
|
||||
QPointF relationStartPos() const;
|
||||
|
||||
void relationDrawn(const QString &id, const QPointF &toScenePos, const QList<QPointF> &intermediatePoints);
|
||||
|
||||
|
||||
@@ -88,17 +88,17 @@ void ComponentItem::update()
|
||||
|
||||
updateStereotypeIconDisplay();
|
||||
|
||||
const Style *style = getAdaptedStyle(getStereotypeIconId());
|
||||
const Style *style = adaptedStyle(stereotypeIconId());
|
||||
|
||||
// custom icon
|
||||
if (getStereotypeIconDisplay() == StereotypeIcon::DISPLAY_ICON) {
|
||||
if (stereotypeIconDisplay() == StereotypeIcon::DISPLAY_ICON) {
|
||||
if (!m_customIcon) {
|
||||
m_customIcon = new CustomIconItem(getDiagramSceneModel(), this);
|
||||
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
||||
}
|
||||
m_customIcon->setStereotypeIconId(getStereotypeIconId());
|
||||
m_customIcon->setBaseSize(getStereotypeIconMinimumSize(m_customIcon->getStereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT));
|
||||
m_customIcon->setBrush(style->getFillBrush());
|
||||
m_customIcon->setPen(style->getOuterLinePen());
|
||||
m_customIcon->setStereotypeIconId(stereotypeIconId());
|
||||
m_customIcon->setBaseSize(stereotypeIconMinimumSize(m_customIcon->stereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT));
|
||||
m_customIcon->setBrush(style->fillBrush());
|
||||
m_customIcon->setPen(style->outerLinePen());
|
||||
m_customIcon->setZValue(SHAPE_ZVALUE);
|
||||
} else if (m_customIcon) {
|
||||
m_customIcon->scene()->removeItem(m_customIcon);
|
||||
@@ -112,21 +112,21 @@ void ComponentItem::update()
|
||||
if (!m_shape) {
|
||||
m_shape = new QGraphicsRectItem(this);
|
||||
}
|
||||
m_shape->setBrush(style->getFillBrush());
|
||||
m_shape->setPen(style->getOuterLinePen());
|
||||
m_shape->setBrush(style->fillBrush());
|
||||
m_shape->setPen(style->outerLinePen());
|
||||
m_shape->setZValue(SHAPE_ZVALUE);
|
||||
if (!hasPlainShape()) {
|
||||
if (!m_upperRect) {
|
||||
m_upperRect = new QGraphicsRectItem(this);
|
||||
}
|
||||
m_upperRect->setBrush(style->getFillBrush());
|
||||
m_upperRect->setPen(style->getOuterLinePen());
|
||||
m_upperRect->setBrush(style->fillBrush());
|
||||
m_upperRect->setPen(style->outerLinePen());
|
||||
m_upperRect->setZValue(SHAPE_DETAILS_ZVALUE);
|
||||
if (!m_lowerRect) {
|
||||
m_lowerRect = new QGraphicsRectItem(this);
|
||||
}
|
||||
m_lowerRect->setBrush(style->getFillBrush());
|
||||
m_lowerRect->setPen(style->getOuterLinePen());
|
||||
m_lowerRect->setBrush(style->fillBrush());
|
||||
m_lowerRect->setPen(style->outerLinePen());
|
||||
m_lowerRect->setZValue(SHAPE_DETAILS_ZVALUE);
|
||||
} else {
|
||||
deleteRects = true;
|
||||
@@ -153,24 +153,24 @@ void ComponentItem::update()
|
||||
}
|
||||
|
||||
// stereotypes
|
||||
updateStereotypes(getStereotypeIconId(), getStereotypeIconDisplay(), style);
|
||||
updateStereotypes(stereotypeIconId(), stereotypeIconDisplay(), style);
|
||||
|
||||
// component name
|
||||
if (!m_componentName) {
|
||||
m_componentName = new QGraphicsSimpleTextItem(this);
|
||||
}
|
||||
m_componentName->setFont(style->getHeaderFont());
|
||||
m_componentName->setBrush(style->getTextBrush());
|
||||
m_componentName->setText(getObject()->getName());
|
||||
m_componentName->setFont(style->headerFont());
|
||||
m_componentName->setBrush(style->textBrush());
|
||||
m_componentName->setText(object()->name());
|
||||
|
||||
// context
|
||||
if (showContext()) {
|
||||
if (!m_contextLabel) {
|
||||
m_contextLabel = new ContextLabelItem(this);
|
||||
}
|
||||
m_contextLabel->setFont(style->getSmallFont());
|
||||
m_contextLabel->setBrush(style->getTextBrush());
|
||||
m_contextLabel->setContext(getObject()->getContext());
|
||||
m_contextLabel->setFont(style->smallFont());
|
||||
m_contextLabel->setBrush(style->textBrush());
|
||||
m_contextLabel->setContext(object()->context());
|
||||
} else if (m_contextLabel) {
|
||||
m_contextLabel->scene()->removeItem(m_contextLabel);
|
||||
delete m_contextLabel;
|
||||
@@ -182,7 +182,7 @@ void ComponentItem::update()
|
||||
// relation starters
|
||||
if (isFocusSelected()) {
|
||||
if (!m_relationStarter && scene()) {
|
||||
m_relationStarter = new RelationStarter(this, getDiagramSceneModel(), 0);
|
||||
m_relationStarter = new RelationStarter(this, diagramSceneModel(), 0);
|
||||
scene()->addItem(m_relationStarter);
|
||||
m_relationStarter->setZValue(RELATION_STARTER_ZVALUE);
|
||||
m_relationStarter->addArrow(QStringLiteral("dependency"), ArrowItem::SHAFT_DASHED, ArrowItem::HEAD_OPEN);
|
||||
@@ -205,16 +205,16 @@ bool ComponentItem::intersectShapeWithLine(const QLineF &line, QPointF *intersec
|
||||
QPolygonF polygon;
|
||||
if (m_customIcon) {
|
||||
// TODO use customIcon path as shape
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
polygon << rect.topLeft() << rect.topRight() << rect.bottomRight() << rect.bottomLeft() << rect.topLeft();
|
||||
} else if (hasPlainShape()){
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
polygon << rect.topLeft() << rect.topRight() << rect.bottomRight() << rect.bottomLeft() << rect.topLeft();
|
||||
} else {
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
polygon << rect.topLeft()
|
||||
<< rect.topRight()
|
||||
<< rect.bottomRight()
|
||||
@@ -228,50 +228,50 @@ bool ComponentItem::intersectShapeWithLine(const QLineF &line, QPointF *intersec
|
||||
return GeometryUtilities::intersect(polygon, line, intersectionPoint, intersectionLine);
|
||||
}
|
||||
|
||||
QSizeF ComponentItem::getMinimumSize() const
|
||||
QSizeF ComponentItem::minimumSize() const
|
||||
{
|
||||
return calcMinimumGeometry();
|
||||
}
|
||||
|
||||
QList<ILatchable::Latch> ComponentItem::getHorizontalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
QList<ILatchable::Latch> ComponentItem::horizontalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
{
|
||||
return ObjectItem::getHorizontalLatches(action, grabbedItem);
|
||||
return ObjectItem::horizontalLatches(action, grabbedItem);
|
||||
}
|
||||
|
||||
QList<ILatchable::Latch> ComponentItem::getVerticalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
QList<ILatchable::Latch> ComponentItem::verticalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
{
|
||||
return ObjectItem::getVerticalLatches(action, grabbedItem);
|
||||
return ObjectItem::verticalLatches(action, grabbedItem);
|
||||
}
|
||||
|
||||
#if 0
|
||||
QList<qreal> ComponentItem::getHorizontalLatches() const
|
||||
QList<qreal> ComponentItem::horizontalLatches() const
|
||||
{
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
return QList<qreal>() << (rect.left() - RECT_WIDTH * 0.5) << rect.left() << rect.right();
|
||||
}
|
||||
|
||||
QList<qreal> ComponentItem::getVerticalLatches() const
|
||||
QList<qreal> ComponentItem::verticalLatches() const
|
||||
{
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
return QList<qreal>() << rect.top() << rect.bottom();
|
||||
}
|
||||
#endif
|
||||
|
||||
QPointF ComponentItem::getRelationStartPos() const
|
||||
QPointF ComponentItem::relationStartPos() const
|
||||
{
|
||||
return pos();
|
||||
}
|
||||
|
||||
void ComponentItem::relationDrawn(const QString &id, const QPointF &toScenePos, const QList<QPointF> &intermediatePoints)
|
||||
{
|
||||
DElement *targetElement = getDiagramSceneModel()->findTopmostElement(toScenePos);
|
||||
DElement *targetElement = diagramSceneModel()->findTopmostElement(toScenePos);
|
||||
if (targetElement) {
|
||||
if (id == QStringLiteral("dependency")) {
|
||||
DObject *dependantObject = dynamic_cast<DObject *>(targetElement);
|
||||
if (dependantObject) {
|
||||
getDiagramSceneModel()->getDiagramSceneController()->createDependency(getObject(), dependantObject, intermediatePoints, getDiagramSceneModel()->getDiagram());
|
||||
diagramSceneModel()->diagramSceneController()->createDependency(object(), dependantObject, intermediatePoints, diagramSceneModel()->diagram());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -279,9 +279,9 @@ void ComponentItem::relationDrawn(const QString &id, const QPointF &toScenePos,
|
||||
|
||||
bool ComponentItem::hasPlainShape() const
|
||||
{
|
||||
DComponent *diagramComponent = dynamic_cast<DComponent *>(getObject());
|
||||
DComponent *diagramComponent = dynamic_cast<DComponent *>(object());
|
||||
QMT_CHECK(diagramComponent);
|
||||
return diagramComponent->getPlainShape();
|
||||
return diagramComponent->plainShape();
|
||||
}
|
||||
|
||||
QSizeF ComponentItem::calcMinimumGeometry() const
|
||||
@@ -290,15 +290,15 @@ QSizeF ComponentItem::calcMinimumGeometry() const
|
||||
double height = 0.0;
|
||||
|
||||
if (m_customIcon) {
|
||||
return getStereotypeIconMinimumSize(m_customIcon->getStereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT);
|
||||
return stereotypeIconMinimumSize(m_customIcon->stereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT);
|
||||
}
|
||||
|
||||
height += BODY_VERT_BORDER;
|
||||
if (CustomIconItem *stereotypeIconItem = getStereotypeIconItem()) {
|
||||
if (CustomIconItem *stereotypeIconItem = ObjectItem::stereotypeIconItem()) {
|
||||
width = std::max(width, stereotypeIconItem->boundingRect().width());
|
||||
height += stereotypeIconItem->boundingRect().height();
|
||||
}
|
||||
if (StereotypesItem *stereotypesItem = getStereotypesItem()) {
|
||||
if (StereotypesItem *stereotypesItem = ObjectItem::stereotypesItem()) {
|
||||
width = std::max(width, stereotypesItem->boundingRect().width());
|
||||
height += stereotypesItem->boundingRect().height();
|
||||
}
|
||||
@@ -307,7 +307,7 @@ QSizeF ComponentItem::calcMinimumGeometry() const
|
||||
height += m_componentName->boundingRect().height();
|
||||
}
|
||||
if (m_contextLabel) {
|
||||
height += m_contextLabel->getHeight();
|
||||
height += m_contextLabel->height();
|
||||
}
|
||||
height += BODY_VERT_BORDER;
|
||||
|
||||
@@ -336,10 +336,10 @@ void ComponentItem::updateGeometry()
|
||||
width = geometry.width();
|
||||
height = geometry.height();
|
||||
|
||||
if (getObject()->hasAutoSize()) {
|
||||
if (object()->hasAutoSize()) {
|
||||
// nothing
|
||||
} else {
|
||||
QRectF rect = getObject()->getRect();
|
||||
QRectF rect = object()->rect();
|
||||
if (rect.width() > width) {
|
||||
width = rect.width();
|
||||
}
|
||||
@@ -355,14 +355,14 @@ void ComponentItem::updateGeometry()
|
||||
//double bottom = height / 2.0;
|
||||
double y = top;
|
||||
|
||||
setPos(getObject()->getPos());
|
||||
setPos(object()->pos());
|
||||
|
||||
QRectF rect(left, top, width, height);
|
||||
|
||||
// the object is updated without calling DiagramController intentionally.
|
||||
// attribute rect is not a real attribute stored on DObject but
|
||||
// a backup for the graphics item used for manual resized and persistency.
|
||||
getObject()->setRect(rect);
|
||||
object()->setRect(rect);
|
||||
|
||||
if (m_customIcon) {
|
||||
m_customIcon->setPos(left, top);
|
||||
@@ -387,11 +387,11 @@ void ComponentItem::updateGeometry()
|
||||
}
|
||||
|
||||
y += BODY_VERT_BORDER;
|
||||
if (CustomIconItem *stereotypeIconItem = getStereotypeIconItem()) {
|
||||
if (CustomIconItem *stereotypeIconItem = ObjectItem::stereotypeIconItem()) {
|
||||
stereotypeIconItem->setPos(right - stereotypeIconItem->boundingRect().width() - BODY_HORIZ_BORDER, y);
|
||||
y += stereotypeIconItem->boundingRect().height();
|
||||
}
|
||||
if (StereotypesItem *stereotypesItem = getStereotypesItem()) {
|
||||
if (StereotypesItem *stereotypesItem = ObjectItem::stereotypesItem()) {
|
||||
stereotypesItem->setPos(-stereotypesItem->boundingRect().width() / 2.0, y);
|
||||
y += stereotypesItem->boundingRect().height();
|
||||
}
|
||||
|
||||
@@ -70,17 +70,17 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QSizeF getMinimumSize() const;
|
||||
QSizeF minimumSize() const;
|
||||
|
||||
public:
|
||||
|
||||
QList<Latch> getHorizontalLatches(Action action, bool grabbedItem) const;
|
||||
QList<Latch> horizontalLatches(Action action, bool grabbedItem) const;
|
||||
|
||||
QList<Latch> getVerticalLatches(Action action, bool grabbedItem) const;
|
||||
QList<Latch> verticalLatches(Action action, bool grabbedItem) const;
|
||||
|
||||
public:
|
||||
|
||||
QPointF getRelationStartPos() const;
|
||||
QPointF relationStartPos() const;
|
||||
|
||||
void relationDrawn(const QString &id, const QPointF &toScenePos, const QList<QPointF> &intermediatePoints);
|
||||
|
||||
|
||||
@@ -78,17 +78,17 @@ void DiagramItem::update()
|
||||
|
||||
updateStereotypeIconDisplay();
|
||||
|
||||
const Style *style = getAdaptedStyle(getStereotypeIconId());
|
||||
const Style *style = adaptedStyle(stereotypeIconId());
|
||||
|
||||
// custom icon
|
||||
if (getStereotypeIconDisplay() == StereotypeIcon::DISPLAY_ICON) {
|
||||
if (stereotypeIconDisplay() == StereotypeIcon::DISPLAY_ICON) {
|
||||
if (!m_customIcon) {
|
||||
m_customIcon = new CustomIconItem(getDiagramSceneModel(), this);
|
||||
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
||||
}
|
||||
m_customIcon->setStereotypeIconId(getStereotypeIconId());
|
||||
m_customIcon->setBaseSize(getStereotypeIconMinimumSize(m_customIcon->getStereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT));
|
||||
m_customIcon->setBrush(style->getFillBrush());
|
||||
m_customIcon->setPen(style->getOuterLinePen());
|
||||
m_customIcon->setStereotypeIconId(stereotypeIconId());
|
||||
m_customIcon->setBaseSize(stereotypeIconMinimumSize(m_customIcon->stereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT));
|
||||
m_customIcon->setBrush(style->fillBrush());
|
||||
m_customIcon->setPen(style->outerLinePen());
|
||||
m_customIcon->setZValue(SHAPE_ZVALUE);
|
||||
} else if (m_customIcon) {
|
||||
m_customIcon->scene()->removeItem(m_customIcon);
|
||||
@@ -101,14 +101,14 @@ void DiagramItem::update()
|
||||
if (!m_body) {
|
||||
m_body = new QGraphicsPolygonItem(this);
|
||||
}
|
||||
m_body->setBrush(style->getFillBrush());
|
||||
m_body->setPen(style->getOuterLinePen());
|
||||
m_body->setBrush(style->fillBrush());
|
||||
m_body->setPen(style->outerLinePen());
|
||||
m_body->setZValue(SHAPE_ZVALUE);
|
||||
if (!m_fold) {
|
||||
m_fold = new QGraphicsPolygonItem(this);
|
||||
}
|
||||
m_fold->setBrush(style->getExtraFillBrush());
|
||||
m_fold->setPen(style->getOuterLinePen());
|
||||
m_fold->setBrush(style->extraFillBrush());
|
||||
m_fold->setPen(style->outerLinePen());
|
||||
m_fold->setZValue(SHAPE_DETAILS_ZVALUE);
|
||||
} else {
|
||||
if (m_fold) {
|
||||
@@ -124,15 +124,15 @@ void DiagramItem::update()
|
||||
}
|
||||
|
||||
// stereotypes
|
||||
updateStereotypes(getStereotypeIconId(), getStereotypeIconDisplay(), style);
|
||||
updateStereotypes(stereotypeIconId(), stereotypeIconDisplay(), style);
|
||||
|
||||
// diagram name
|
||||
if (!m_diagramName) {
|
||||
m_diagramName = new QGraphicsSimpleTextItem(this);
|
||||
}
|
||||
m_diagramName->setFont(style->getHeaderFont());
|
||||
m_diagramName->setBrush(style->getTextBrush());
|
||||
m_diagramName->setText(getObject()->getName());
|
||||
m_diagramName->setFont(style->headerFont());
|
||||
m_diagramName->setBrush(style->textBrush());
|
||||
m_diagramName->setText(object()->name());
|
||||
|
||||
updateSelectionMarker(m_customIcon);
|
||||
|
||||
@@ -146,18 +146,18 @@ bool DiagramItem::intersectShapeWithLine(const QLineF &line, QPointF *intersecti
|
||||
QPolygonF polygon;
|
||||
if (m_customIcon) {
|
||||
// TODO use customIcon path as shape
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
polygon << rect.topLeft() << rect.topRight() << rect.bottomRight() << rect.bottomLeft() << rect.topLeft();
|
||||
} else {
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
polygon << rect.topLeft() << rect.topRight() << rect.bottomRight() << rect.bottomLeft() << rect.topLeft();
|
||||
}
|
||||
return GeometryUtilities::intersect(polygon, line, intersectionPoint, intersectionLine);
|
||||
}
|
||||
|
||||
QSizeF DiagramItem::getMinimumSize() const
|
||||
QSizeF DiagramItem::minimumSize() const
|
||||
{
|
||||
return calcMinimumGeometry();
|
||||
}
|
||||
@@ -168,17 +168,17 @@ QSizeF DiagramItem::calcMinimumGeometry() const
|
||||
double height = 0.0;
|
||||
|
||||
if (m_customIcon) {
|
||||
return getStereotypeIconMinimumSize(m_customIcon->getStereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT);
|
||||
return stereotypeIconMinimumSize(m_customIcon->stereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT);
|
||||
}
|
||||
|
||||
height += BODY_VERT_BORDER;
|
||||
if (CustomIconItem *stereotypeIconItem = getStereotypeIconItem()) {
|
||||
if (CustomIconItem *stereotypeIconItem = ObjectItem::stereotypeIconItem()) {
|
||||
width = std::max(width, stereotypeIconItem->boundingRect().width() + 2 * BODY_HORIZ_BORDER);
|
||||
height += std::max(FOLD_HEIGHT, stereotypeIconItem->boundingRect().height());
|
||||
} else {
|
||||
height += FOLD_HEIGHT;
|
||||
}
|
||||
if (StereotypesItem *stereotypesItem = getStereotypesItem()) {
|
||||
if (StereotypesItem *stereotypesItem = ObjectItem::stereotypesItem()) {
|
||||
width = std::max(width, stereotypesItem->boundingRect().width() + 2 * BODY_HORIZ_BORDER);
|
||||
height += stereotypesItem->boundingRect().height();
|
||||
}
|
||||
@@ -203,7 +203,7 @@ void DiagramItem::updateGeometry()
|
||||
width = geometry.width();
|
||||
height = geometry.height();
|
||||
|
||||
if (getObject()->hasAutoSize()) {
|
||||
if (object()->hasAutoSize()) {
|
||||
if (!m_customIcon) {
|
||||
if (width < MINIMUM_AUTO_WIDTH) {
|
||||
width = MINIMUM_AUTO_WIDTH;
|
||||
@@ -213,7 +213,7 @@ void DiagramItem::updateGeometry()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
QRectF rect = getObject()->getRect();
|
||||
QRectF rect = object()->rect();
|
||||
if (rect.width() > width) {
|
||||
width = rect.width();
|
||||
}
|
||||
@@ -229,14 +229,14 @@ void DiagramItem::updateGeometry()
|
||||
//double bottom = height / 2.0;
|
||||
double y = top;
|
||||
|
||||
setPos(getObject()->getPos());
|
||||
setPos(object()->pos());
|
||||
|
||||
QRectF rect(left, top, width, height);
|
||||
|
||||
// the object is updated without calling DiagramController intentionally.
|
||||
// attribute rect is not a real attribute stored on DObject but
|
||||
// a backup for the graphics item used for manual resized and persistency.
|
||||
getObject()->setRect(rect);
|
||||
object()->setRect(rect);
|
||||
|
||||
if (m_customIcon) {
|
||||
m_customIcon->setPos(left, top);
|
||||
@@ -265,14 +265,14 @@ void DiagramItem::updateGeometry()
|
||||
|
||||
y += BODY_VERT_BORDER;
|
||||
if (!m_customIcon) {
|
||||
if (CustomIconItem *stereotypeIconItem = getStereotypeIconItem()) {
|
||||
if (CustomIconItem *stereotypeIconItem = ObjectItem::stereotypeIconItem()) {
|
||||
stereotypeIconItem->setPos(left + BODY_HORIZ_BORDER, y);
|
||||
y += std::max(FOLD_HEIGHT, stereotypeIconItem->boundingRect().height());
|
||||
} else {
|
||||
y += FOLD_HEIGHT;
|
||||
}
|
||||
}
|
||||
if (StereotypesItem *stereotypesItem = getStereotypesItem()) {
|
||||
if (StereotypesItem *stereotypesItem = ObjectItem::stereotypesItem()) {
|
||||
stereotypesItem->setPos(-stereotypesItem->boundingRect().width() / 2.0, y);
|
||||
y += stereotypesItem->boundingRect().height();
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QSizeF getMinimumSize() const;
|
||||
QSizeF minimumSize() const;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -81,20 +81,20 @@ void ItemItem::update()
|
||||
|
||||
updateStereotypeIconDisplay();
|
||||
|
||||
DItem *diagramItem = dynamic_cast<DItem *>(getObject());
|
||||
DItem *diagramItem = dynamic_cast<DItem *>(object());
|
||||
Q_UNUSED(diagramItem); // avoid warning about unsed variable
|
||||
QMT_CHECK(diagramItem);
|
||||
|
||||
const Style *style = getAdaptedStyle(getShapeIconId());
|
||||
const Style *style = adaptedStyle(shapeIconId());
|
||||
|
||||
if (!getShapeIconId().isEmpty()) {
|
||||
if (!shapeIconId().isEmpty()) {
|
||||
if (!m_customIcon) {
|
||||
m_customIcon = new CustomIconItem(getDiagramSceneModel(), this);
|
||||
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
||||
}
|
||||
m_customIcon->setStereotypeIconId(getShapeIconId());
|
||||
m_customIcon->setBaseSize(getStereotypeIconMinimumSize(m_customIcon->getStereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT));
|
||||
m_customIcon->setBrush(style->getFillBrush());
|
||||
m_customIcon->setPen(style->getOuterLinePen());
|
||||
m_customIcon->setStereotypeIconId(shapeIconId());
|
||||
m_customIcon->setBaseSize(stereotypeIconMinimumSize(m_customIcon->stereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT));
|
||||
m_customIcon->setBrush(style->fillBrush());
|
||||
m_customIcon->setPen(style->outerLinePen());
|
||||
m_customIcon->setZValue(SHAPE_ZVALUE);
|
||||
} else if (m_customIcon) {
|
||||
m_customIcon->scene()->removeItem(m_customIcon);
|
||||
@@ -107,8 +107,8 @@ void ItemItem::update()
|
||||
if (!m_shape) {
|
||||
m_shape = new QGraphicsRectItem(this);
|
||||
}
|
||||
m_shape->setBrush(style->getFillBrush());
|
||||
m_shape->setPen(style->getOuterLinePen());
|
||||
m_shape->setBrush(style->fillBrush());
|
||||
m_shape->setPen(style->outerLinePen());
|
||||
m_shape->setZValue(SHAPE_ZVALUE);
|
||||
} else {
|
||||
if (m_shape) {
|
||||
@@ -119,24 +119,24 @@ void ItemItem::update()
|
||||
}
|
||||
|
||||
// stereotypes
|
||||
updateStereotypes(getStereotypeIconId(), getStereotypeIconDisplay(), getAdaptedStyle(getStereotypeIconId()));
|
||||
updateStereotypes(stereotypeIconId(), stereotypeIconDisplay(), adaptedStyle(stereotypeIconId()));
|
||||
|
||||
// component name
|
||||
if (!m_itemName) {
|
||||
m_itemName = new QGraphicsSimpleTextItem(this);
|
||||
}
|
||||
m_itemName->setFont(style->getHeaderFont());
|
||||
m_itemName->setBrush(style->getTextBrush());
|
||||
m_itemName->setText(getObject()->getName());
|
||||
m_itemName->setFont(style->headerFont());
|
||||
m_itemName->setBrush(style->textBrush());
|
||||
m_itemName->setText(object()->name());
|
||||
|
||||
// context
|
||||
if (showContext()) {
|
||||
if (!m_contextLabel) {
|
||||
m_contextLabel = new ContextLabelItem(this);
|
||||
}
|
||||
m_contextLabel->setFont(style->getSmallFont());
|
||||
m_contextLabel->setBrush(style->getTextBrush());
|
||||
m_contextLabel->setContext(getObject()->getContext());
|
||||
m_contextLabel->setFont(style->smallFont());
|
||||
m_contextLabel->setBrush(style->textBrush());
|
||||
m_contextLabel->setContext(object()->context());
|
||||
} else if (m_contextLabel) {
|
||||
m_contextLabel->scene()->removeItem(m_contextLabel);
|
||||
delete m_contextLabel;
|
||||
@@ -148,7 +148,7 @@ void ItemItem::update()
|
||||
// relation starters
|
||||
if (isFocusSelected()) {
|
||||
if (!m_relationStarter && scene()) {
|
||||
m_relationStarter = new RelationStarter(this, getDiagramSceneModel(), 0);
|
||||
m_relationStarter = new RelationStarter(this, diagramSceneModel(), 0);
|
||||
scene()->addItem(m_relationStarter);
|
||||
m_relationStarter->setZValue(RELATION_STARTER_ZVALUE);
|
||||
m_relationStarter->addArrow(QStringLiteral("dependency"), ArrowItem::SHAFT_DASHED, ArrowItem::HEAD_OPEN);
|
||||
@@ -171,45 +171,45 @@ bool ItemItem::intersectShapeWithLine(const QLineF &line, QPointF *intersectionP
|
||||
QPolygonF polygon;
|
||||
if (m_customIcon) {
|
||||
// TODO use customIcon path as shape
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
polygon << rect.topLeft() << rect.topRight() << rect.bottomRight() << rect.bottomLeft() << rect.topLeft();
|
||||
} else {
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
polygon << rect.topLeft() << rect.topRight() << rect.bottomRight() << rect.bottomLeft() << rect.topLeft();
|
||||
}
|
||||
return GeometryUtilities::intersect(polygon, line, intersectionPoint, intersectionLine);
|
||||
}
|
||||
|
||||
QSizeF ItemItem::getMinimumSize() const
|
||||
QSizeF ItemItem::minimumSize() const
|
||||
{
|
||||
return calcMinimumGeometry();
|
||||
}
|
||||
|
||||
QList<ILatchable::Latch> ItemItem::getHorizontalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
QList<ILatchable::Latch> ItemItem::horizontalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
{
|
||||
return ObjectItem::getHorizontalLatches(action, grabbedItem);
|
||||
return ObjectItem::horizontalLatches(action, grabbedItem);
|
||||
}
|
||||
|
||||
QList<ILatchable::Latch> ItemItem::getVerticalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
QList<ILatchable::Latch> ItemItem::verticalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
{
|
||||
return ObjectItem::getVerticalLatches(action, grabbedItem);
|
||||
return ObjectItem::verticalLatches(action, grabbedItem);
|
||||
}
|
||||
|
||||
QPointF ItemItem::getRelationStartPos() const
|
||||
QPointF ItemItem::relationStartPos() const
|
||||
{
|
||||
return pos();
|
||||
}
|
||||
|
||||
void ItemItem::relationDrawn(const QString &id, const QPointF &toScenePos, const QList<QPointF> &intermediatePoints)
|
||||
{
|
||||
DElement *targetElement = getDiagramSceneModel()->findTopmostElement(toScenePos);
|
||||
DElement *targetElement = diagramSceneModel()->findTopmostElement(toScenePos);
|
||||
if (targetElement) {
|
||||
if (id == QStringLiteral("dependency")) {
|
||||
DObject *dependantObject = dynamic_cast<DObject *>(targetElement);
|
||||
if (dependantObject) {
|
||||
getDiagramSceneModel()->getDiagramSceneController()->createDependency(getObject(), dependantObject, intermediatePoints, getDiagramSceneModel()->getDiagram());
|
||||
diagramSceneModel()->diagramSceneController()->createDependency(object(), dependantObject, intermediatePoints, diagramSceneModel()->diagram());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -221,15 +221,15 @@ QSizeF ItemItem::calcMinimumGeometry() const
|
||||
double height = 0.0;
|
||||
|
||||
if (m_customIcon) {
|
||||
return getStereotypeIconMinimumSize(m_customIcon->getStereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT);
|
||||
return stereotypeIconMinimumSize(m_customIcon->stereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT);
|
||||
}
|
||||
|
||||
height += BODY_VERT_BORDER;
|
||||
if (CustomIconItem *stereotypeIconItem = getStereotypeIconItem()) {
|
||||
if (CustomIconItem *stereotypeIconItem = ObjectItem::stereotypeIconItem()) {
|
||||
width = std::max(width, stereotypeIconItem->boundingRect().width());
|
||||
height += stereotypeIconItem->boundingRect().height();
|
||||
}
|
||||
if (StereotypesItem *stereotypesItem = getStereotypesItem()) {
|
||||
if (StereotypesItem *stereotypesItem = ObjectItem::stereotypesItem()) {
|
||||
width = std::max(width, stereotypesItem->boundingRect().width());
|
||||
height += stereotypesItem->boundingRect().height();
|
||||
}
|
||||
@@ -238,7 +238,7 @@ QSizeF ItemItem::calcMinimumGeometry() const
|
||||
height += m_itemName->boundingRect().height();
|
||||
}
|
||||
if (m_contextLabel) {
|
||||
height += m_contextLabel->getHeight();
|
||||
height += m_contextLabel->height();
|
||||
}
|
||||
height += BODY_VERT_BORDER;
|
||||
|
||||
@@ -259,10 +259,10 @@ void ItemItem::updateGeometry()
|
||||
width = geometry.width();
|
||||
height = geometry.height();
|
||||
|
||||
if (getObject()->hasAutoSize()) {
|
||||
if (object()->hasAutoSize()) {
|
||||
// nothing
|
||||
} else {
|
||||
QRectF rect = getObject()->getRect();
|
||||
QRectF rect = object()->rect();
|
||||
if (rect.width() > width) {
|
||||
width = rect.width();
|
||||
}
|
||||
@@ -278,14 +278,14 @@ void ItemItem::updateGeometry()
|
||||
//double bottom = height / 2.0;
|
||||
double y = top;
|
||||
|
||||
setPos(getObject()->getPos());
|
||||
setPos(object()->pos());
|
||||
|
||||
QRectF rect(left, top, width, height);
|
||||
|
||||
// the object is updated without calling DiagramController intentionally.
|
||||
// attribute rect is not a real attribute stored on DObject but
|
||||
// a backup for the graphics item used for manual resized and persistency.
|
||||
getObject()->setRect(rect);
|
||||
object()->setRect(rect);
|
||||
|
||||
if (m_customIcon) {
|
||||
m_customIcon->setPos(left, top);
|
||||
@@ -298,11 +298,11 @@ void ItemItem::updateGeometry()
|
||||
}
|
||||
|
||||
y += BODY_VERT_BORDER;
|
||||
if (CustomIconItem *stereotypeIconItem = getStereotypeIconItem()) {
|
||||
if (CustomIconItem *stereotypeIconItem = ObjectItem::stereotypeIconItem()) {
|
||||
stereotypeIconItem->setPos(right - stereotypeIconItem->boundingRect().width() - BODY_HORIZ_BORDER, y);
|
||||
y += stereotypeIconItem->boundingRect().height();
|
||||
}
|
||||
if (StereotypesItem *stereotypesItem = getStereotypesItem()) {
|
||||
if (StereotypesItem *stereotypesItem = ObjectItem::stereotypesItem()) {
|
||||
stereotypesItem->setPos(-stereotypesItem->boundingRect().width() / 2.0, y);
|
||||
y += stereotypesItem->boundingRect().height();
|
||||
}
|
||||
|
||||
@@ -70,17 +70,17 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QSizeF getMinimumSize() const;
|
||||
QSizeF minimumSize() const;
|
||||
|
||||
public:
|
||||
|
||||
QList<Latch> getHorizontalLatches(Action action, bool grabbedItem) const;
|
||||
QList<Latch> horizontalLatches(Action action, bool grabbedItem) const;
|
||||
|
||||
QList<Latch> getVerticalLatches(Action action, bool grabbedItem) const;
|
||||
QList<Latch> verticalLatches(Action action, bool grabbedItem) const;
|
||||
|
||||
public:
|
||||
|
||||
QPointF getRelationStartPos() const;
|
||||
QPointF relationStartPos() const;
|
||||
|
||||
void relationDrawn(const QString &id, const QPointF &toScenePos, const QList<QPointF> &intermediatePoints);
|
||||
|
||||
|
||||
@@ -94,14 +94,14 @@ void ObjectItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option
|
||||
Q_UNUSED(widget);
|
||||
}
|
||||
|
||||
QPointF ObjectItem::getPos() const
|
||||
QPointF ObjectItem::pos() const
|
||||
{
|
||||
return m_object->getPos();
|
||||
return m_object->pos();
|
||||
}
|
||||
|
||||
QRectF ObjectItem::getRect() const
|
||||
QRectF ObjectItem::rect() const
|
||||
{
|
||||
return m_object->getRect();
|
||||
return m_object->rect();
|
||||
}
|
||||
|
||||
void ObjectItem::setPosAndRect(const QPointF &originalPos, const QRectF &originalRect, const QPointF &topLeftDelta, const QPointF &bottomRightDelta)
|
||||
@@ -109,27 +109,27 @@ void ObjectItem::setPosAndRect(const QPointF &originalPos, const QRectF &origina
|
||||
QPointF newPos = originalPos;
|
||||
QRectF newRect = originalRect;
|
||||
GeometryUtilities::adjustPosAndRect(&newPos, &newRect, topLeftDelta, bottomRightDelta, QPointF(0.5, 0.5));
|
||||
if (newPos != m_object->getPos() || newRect != m_object->getRect()) {
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_object, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
if (newPos != m_object->pos() || newRect != m_object->rect()) {
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_object, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
m_object->setPos(newPos);
|
||||
if (newRect.size() != m_object->getRect().size()) {
|
||||
if (newRect.size() != m_object->rect().size()) {
|
||||
m_object->setAutoSize(false);
|
||||
}
|
||||
m_object->setRect(newRect);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_object, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_object, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
}
|
||||
|
||||
void ObjectItem::alignItemSizeToRaster(IResizable::Side adjustHorizontalSide, IResizable::Side adjustVerticalSide, double rasterWidth, double rasterHeight)
|
||||
{
|
||||
QPointF pos = m_object->getPos();
|
||||
QRectF rect = m_object->getRect();
|
||||
QPointF pos = m_object->pos();
|
||||
QRectF rect = m_object->rect();
|
||||
|
||||
double horizDelta = rect.width() - qRound(rect.width() / rasterWidth) * rasterWidth;
|
||||
double vertDelta = rect.height() - qRound(rect.height() / rasterHeight) * rasterHeight;
|
||||
|
||||
// make sure the new size is at least the minimum size
|
||||
QSizeF minimumSize = getMinimumSize();
|
||||
QSizeF minimumSize = ObjectItem::minimumSize();
|
||||
while (rect.width() + horizDelta < minimumSize.width()) {
|
||||
horizDelta += rasterWidth;
|
||||
}
|
||||
@@ -171,15 +171,15 @@ void ObjectItem::alignItemSizeToRaster(IResizable::Side adjustHorizontalSide, IR
|
||||
|
||||
void ObjectItem::moveDelta(const QPointF &delta)
|
||||
{
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_object, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
m_object->setPos(m_object->getPos() + delta);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_object, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_object, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
m_object->setPos(m_object->pos() + delta);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_object, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
|
||||
void ObjectItem::alignItemPositionToRaster(double rasterWidth, double rasterHeight)
|
||||
{
|
||||
QPointF pos = m_object->getPos();
|
||||
QRectF rect = m_object->getRect();
|
||||
QPointF pos = m_object->pos();
|
||||
QRectF rect = m_object->rect();
|
||||
QPointF topLeft = pos + rect.topLeft();
|
||||
|
||||
double leftDelta = qRound(topLeft.x() / rasterWidth) * rasterWidth - topLeft.x();
|
||||
@@ -215,12 +215,12 @@ void ObjectItem::setFocusSelected(bool focusSelected)
|
||||
}
|
||||
}
|
||||
|
||||
QList<ILatchable::Latch> ObjectItem::getHorizontalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
QList<ILatchable::Latch> ObjectItem::horizontalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
{
|
||||
Q_UNUSED(grabbedItem);
|
||||
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
QList<ILatchable::Latch> result;
|
||||
switch (action) {
|
||||
case ILatchable::MOVE:
|
||||
@@ -244,12 +244,12 @@ QList<ILatchable::Latch> ObjectItem::getHorizontalLatches(ILatchable::Action act
|
||||
return result;
|
||||
}
|
||||
|
||||
QList<ILatchable::Latch> ObjectItem::getVerticalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
QList<ILatchable::Latch> ObjectItem::verticalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
{
|
||||
Q_UNUSED(grabbedItem);
|
||||
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
QList<ILatchable::Latch> result;
|
||||
switch (action) {
|
||||
case ILatchable::MOVE:
|
||||
@@ -282,42 +282,42 @@ void ObjectItem::align(IAlignable::AlignType alignType, const QString &identifie
|
||||
switch (alignType) {
|
||||
case IAlignable::ALIGN_LEFT:
|
||||
QMT_CHECK(identifier == QStringLiteral("left"));
|
||||
m_diagramSceneModel->getDiagramSceneController()->alignLeft(m_object, m_diagramSceneModel->getSelectedElements(), m_diagramSceneModel->getDiagram());
|
||||
m_diagramSceneModel->diagramSceneController()->alignLeft(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
||||
break;
|
||||
case IAlignable::ALIGN_RIGHT:
|
||||
QMT_CHECK(identifier == QStringLiteral("right"));
|
||||
m_diagramSceneModel->getDiagramSceneController()->alignRight(m_object, m_diagramSceneModel->getSelectedElements(), m_diagramSceneModel->getDiagram());
|
||||
m_diagramSceneModel->diagramSceneController()->alignRight(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
||||
break;
|
||||
case IAlignable::ALIGN_TOP:
|
||||
QMT_CHECK(identifier == QStringLiteral("top"));
|
||||
m_diagramSceneModel->getDiagramSceneController()->alignTop(m_object, m_diagramSceneModel->getSelectedElements(), m_diagramSceneModel->getDiagram());
|
||||
m_diagramSceneModel->diagramSceneController()->alignTop(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
||||
break;
|
||||
case IAlignable::ALIGN_BOTTOM:
|
||||
QMT_CHECK(identifier == QStringLiteral("bottom"));
|
||||
m_diagramSceneModel->getDiagramSceneController()->alignBottom(m_object, m_diagramSceneModel->getSelectedElements(), m_diagramSceneModel->getDiagram());
|
||||
m_diagramSceneModel->diagramSceneController()->alignBottom(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
||||
break;
|
||||
case IAlignable::ALIGN_HCENTER:
|
||||
QMT_CHECK(identifier == QStringLiteral("center"));
|
||||
m_diagramSceneModel->getDiagramSceneController()->alignHCenter(m_object, m_diagramSceneModel->getSelectedElements(), m_diagramSceneModel->getDiagram());
|
||||
m_diagramSceneModel->diagramSceneController()->alignHCenter(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
||||
break;
|
||||
case IAlignable::ALIGN_VCENTER:
|
||||
QMT_CHECK(identifier == QStringLiteral("center"));
|
||||
m_diagramSceneModel->getDiagramSceneController()->alignVCenter(m_object, m_diagramSceneModel->getSelectedElements(), m_diagramSceneModel->getDiagram());
|
||||
m_diagramSceneModel->diagramSceneController()->alignVCenter(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
||||
break;
|
||||
case IAlignable::ALIGN_WIDTH:
|
||||
QMT_CHECK(identifier == QStringLiteral("width"));
|
||||
m_diagramSceneModel->getDiagramSceneController()->alignWidth(m_object, m_diagramSceneModel->getSelectedElements(),
|
||||
getMinimumSize(m_diagramSceneModel->getSelectedItems()), m_diagramSceneModel->getDiagram());
|
||||
m_diagramSceneModel->diagramSceneController()->alignWidth(m_object, m_diagramSceneModel->selectedElements(),
|
||||
minimumSize(m_diagramSceneModel->selectedItems()), m_diagramSceneModel->diagram());
|
||||
break;
|
||||
case IAlignable::ALIGN_HEIGHT:
|
||||
QMT_CHECK(identifier == QStringLiteral("height"));
|
||||
m_diagramSceneModel->getDiagramSceneController()->alignHeight(m_object, m_diagramSceneModel->getSelectedElements(),
|
||||
getMinimumSize(m_diagramSceneModel->getSelectedItems()), m_diagramSceneModel->getDiagram());
|
||||
m_diagramSceneModel->diagramSceneController()->alignHeight(m_object, m_diagramSceneModel->selectedElements(),
|
||||
minimumSize(m_diagramSceneModel->selectedItems()), m_diagramSceneModel->diagram());
|
||||
break;
|
||||
case IAlignable::ALIGN_SIZE:
|
||||
QMT_CHECK(identifier == QStringLiteral("size"));
|
||||
m_diagramSceneModel->getDiagramSceneController()->alignSize(m_object, m_diagramSceneModel->getSelectedElements(),
|
||||
getMinimumSize(m_diagramSceneModel->getSelectedItems()), m_diagramSceneModel->getDiagram());
|
||||
m_diagramSceneModel->diagramSceneController()->alignSize(m_object, m_diagramSceneModel->selectedElements(),
|
||||
minimumSize(m_diagramSceneModel->selectedItems()), m_diagramSceneModel->diagram());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -325,29 +325,29 @@ void ObjectItem::align(IAlignable::AlignType alignType, const QString &identifie
|
||||
void ObjectItem::updateStereotypeIconDisplay()
|
||||
{
|
||||
StereotypeDisplayVisitor stereotypeDisplayVisitor;
|
||||
stereotypeDisplayVisitor.setModelController(m_diagramSceneModel->getDiagramSceneController()->getModelController());
|
||||
stereotypeDisplayVisitor.setStereotypeController(m_diagramSceneModel->getStereotypeController());
|
||||
stereotypeDisplayVisitor.setModelController(m_diagramSceneModel->diagramSceneController()->modelController());
|
||||
stereotypeDisplayVisitor.setStereotypeController(m_diagramSceneModel->stereotypeController());
|
||||
m_object->accept(&stereotypeDisplayVisitor);
|
||||
m_stereotypeIconId = stereotypeDisplayVisitor.getStereotypeIconId();
|
||||
m_shapeIconId = stereotypeDisplayVisitor.getShapeIconId();
|
||||
m_stereotypeIconDisplay = stereotypeDisplayVisitor.getStereotypeIconDisplay();
|
||||
m_stereotypeIconId = stereotypeDisplayVisitor.stereotypeIconId();
|
||||
m_shapeIconId = stereotypeDisplayVisitor.shapeIconId();
|
||||
m_stereotypeIconDisplay = stereotypeDisplayVisitor.stereotypeIconDisplay();
|
||||
}
|
||||
|
||||
void ObjectItem::updateStereotypes(const QString &stereotypeIconId, StereotypeIcon::Display stereotypeDisplay, const Style *style)
|
||||
{
|
||||
QList<QString> stereotypes = m_object->getStereotypes();
|
||||
QList<QString> stereotypes = m_object->stereotypes();
|
||||
if (!stereotypeIconId.isEmpty()
|
||||
&& (stereotypeDisplay == StereotypeIcon::DISPLAY_DECORATION || stereotypeDisplay == StereotypeIcon::DISPLAY_ICON)) {
|
||||
stereotypes = m_diagramSceneModel->getStereotypeController()->filterStereotypesByIconId(stereotypeIconId, stereotypes);
|
||||
stereotypes = m_diagramSceneModel->stereotypeController()->filterStereotypesByIconId(stereotypeIconId, stereotypes);
|
||||
}
|
||||
if (!stereotypeIconId.isEmpty() && stereotypeDisplay == StereotypeIcon::DISPLAY_DECORATION) {
|
||||
if (!m_stereotypeIcon) {
|
||||
m_stereotypeIcon = new CustomIconItem(m_diagramSceneModel, this);
|
||||
}
|
||||
m_stereotypeIcon->setStereotypeIconId(stereotypeIconId);
|
||||
m_stereotypeIcon->setBaseSize(QSizeF(m_stereotypeIcon->getShapeWidth(), m_stereotypeIcon->getShapeHeight()));
|
||||
m_stereotypeIcon->setBrush(style->getFillBrush());
|
||||
m_stereotypeIcon->setPen(style->getInnerLinePen());
|
||||
m_stereotypeIcon->setBaseSize(QSizeF(m_stereotypeIcon->shapeWidth(), m_stereotypeIcon->shapeHeight()));
|
||||
m_stereotypeIcon->setBrush(style->fillBrush());
|
||||
m_stereotypeIcon->setPen(style->innerLinePen());
|
||||
} else if (m_stereotypeIcon) {
|
||||
m_stereotypeIcon->scene()->removeItem(m_stereotypeIcon);
|
||||
delete m_stereotypeIcon;
|
||||
@@ -357,8 +357,8 @@ void ObjectItem::updateStereotypes(const QString &stereotypeIconId, StereotypeIc
|
||||
if (!m_stereotypes) {
|
||||
m_stereotypes = new StereotypesItem(this);
|
||||
}
|
||||
m_stereotypes->setFont(style->getSmallFont());
|
||||
m_stereotypes->setBrush(style->getTextBrush());
|
||||
m_stereotypes->setFont(style->smallFont());
|
||||
m_stereotypes->setBrush(style->textBrush());
|
||||
m_stereotypes->setStereotypes(stereotypes);
|
||||
} else if (m_stereotypes) {
|
||||
m_stereotypes->scene()->removeItem(m_stereotypes);
|
||||
@@ -367,57 +367,57 @@ void ObjectItem::updateStereotypes(const QString &stereotypeIconId, StereotypeIc
|
||||
}
|
||||
}
|
||||
|
||||
QSizeF ObjectItem::getStereotypeIconMinimumSize(const StereotypeIcon &stereotypeIcon, qreal minimumWidth, qreal minimumHeight) const
|
||||
QSizeF ObjectItem::stereotypeIconMinimumSize(const StereotypeIcon &stereotypeIcon, qreal minimumWidth, qreal minimumHeight) const
|
||||
{
|
||||
Q_UNUSED(minimumWidth);
|
||||
|
||||
qreal width = 0.0;
|
||||
qreal height = 0.0;
|
||||
if (stereotypeIcon.hasMinWidth() && !stereotypeIcon.hasMinHeight()) {
|
||||
width = stereotypeIcon.getMinWidth();
|
||||
if (stereotypeIcon.getSizeLock() == StereotypeIcon::LOCK_HEIGHT || stereotypeIcon.getSizeLock() == StereotypeIcon::LOCK_SIZE) {
|
||||
height = stereotypeIcon.getMinHeight();
|
||||
width = stereotypeIcon.minWidth();
|
||||
if (stereotypeIcon.sizeLock() == StereotypeIcon::LOCK_HEIGHT || stereotypeIcon.sizeLock() == StereotypeIcon::LOCK_SIZE) {
|
||||
height = stereotypeIcon.minHeight();
|
||||
} else {
|
||||
height = width * stereotypeIcon.getHeight() / stereotypeIcon.getWidth();
|
||||
height = width * stereotypeIcon.height() / stereotypeIcon.width();
|
||||
}
|
||||
} else if (!stereotypeIcon.hasMinWidth() && stereotypeIcon.hasMinHeight()) {
|
||||
height = stereotypeIcon.getMinHeight();
|
||||
if (stereotypeIcon.getSizeLock() == StereotypeIcon::LOCK_WIDTH || stereotypeIcon.getSizeLock() == StereotypeIcon::LOCK_SIZE) {
|
||||
width = stereotypeIcon.getMinWidth();
|
||||
height = stereotypeIcon.minHeight();
|
||||
if (stereotypeIcon.sizeLock() == StereotypeIcon::LOCK_WIDTH || stereotypeIcon.sizeLock() == StereotypeIcon::LOCK_SIZE) {
|
||||
width = stereotypeIcon.minWidth();
|
||||
} else {
|
||||
width = height * stereotypeIcon.getWidth() / stereotypeIcon.getHeight();
|
||||
width = height * stereotypeIcon.width() / stereotypeIcon.height();
|
||||
}
|
||||
} else if (stereotypeIcon.hasMinWidth() && stereotypeIcon.hasMinHeight()) {
|
||||
if (stereotypeIcon.getSizeLock() == StereotypeIcon::LOCK_RATIO) {
|
||||
width = stereotypeIcon.getMinWidth();
|
||||
height = width * stereotypeIcon.getHeight() / stereotypeIcon.getWidth();
|
||||
if (height < stereotypeIcon.getMinHeight()) {
|
||||
height = stereotypeIcon.getMinHeight();
|
||||
width = height * stereotypeIcon.getWidth() / stereotypeIcon.getHeight();
|
||||
QMT_CHECK(width <= stereotypeIcon.getMinWidth());
|
||||
if (stereotypeIcon.sizeLock() == StereotypeIcon::LOCK_RATIO) {
|
||||
width = stereotypeIcon.minWidth();
|
||||
height = width * stereotypeIcon.height() / stereotypeIcon.width();
|
||||
if (height < stereotypeIcon.minHeight()) {
|
||||
height = stereotypeIcon.minHeight();
|
||||
width = height * stereotypeIcon.width() / stereotypeIcon.height();
|
||||
QMT_CHECK(width <= stereotypeIcon.minWidth());
|
||||
}
|
||||
} else {
|
||||
width = stereotypeIcon.getMinWidth();
|
||||
height = stereotypeIcon.getMinHeight();
|
||||
width = stereotypeIcon.minWidth();
|
||||
height = stereotypeIcon.minHeight();
|
||||
}
|
||||
} else {
|
||||
height = minimumHeight;
|
||||
width = height * stereotypeIcon.getWidth() / stereotypeIcon.getHeight();
|
||||
width = height * stereotypeIcon.width() / stereotypeIcon.height();
|
||||
}
|
||||
return QSizeF(width, height);
|
||||
}
|
||||
|
||||
void ObjectItem::updateDepth()
|
||||
{
|
||||
setZValue(m_object->getDepth());
|
||||
setZValue(m_object->depth());
|
||||
}
|
||||
|
||||
void ObjectItem::updateSelectionMarker(CustomIconItem *customIconItem)
|
||||
{
|
||||
if (customIconItem) {
|
||||
StereotypeIcon stereotypeIcon = customIconItem->getStereotypeIcon();
|
||||
StereotypeIcon stereotypeIcon = customIconItem->stereotypeIcon();
|
||||
ResizeFlags resizeFlags = RESIZE_UNLOCKED;
|
||||
switch (stereotypeIcon.getSizeLock()) {
|
||||
switch (stereotypeIcon.sizeLock()) {
|
||||
case StereotypeIcon::LOCK_NONE:
|
||||
resizeFlags = RESIZE_UNLOCKED;
|
||||
break;
|
||||
@@ -518,14 +518,14 @@ void ObjectItem::updateAlignmentButtonsGeometry(const QRectF &objectRect)
|
||||
if (m_horizontalAlignButtons) {
|
||||
m_horizontalAlignButtons->clear();
|
||||
m_horizontalAlignButtons->setPos(mapToScene(QPointF(0.0, objectRect.top() - AlignButtonsItem::NORMAL_BUTTON_HEIGHT - AlignButtonsItem::VERTICAL_DISTANCE_TO_OBEJCT)));
|
||||
foreach (const ILatchable::Latch &latch, getHorizontalLatches(ILatchable::MOVE, true)) {
|
||||
foreach (const ILatchable::Latch &latch, horizontalLatches(ILatchable::MOVE, true)) {
|
||||
m_horizontalAlignButtons->addButton(translateLatchTypeToAlignType(latch.m_latchType), latch.m_identifier, mapFromScene(QPointF(latch.m_pos, 0.0)).x());
|
||||
}
|
||||
}
|
||||
if (m_verticalAlignButtons) {
|
||||
m_verticalAlignButtons->clear();
|
||||
m_verticalAlignButtons->setPos(mapToScene(QPointF(objectRect.left() - AlignButtonsItem::NORMAL_BUTTON_WIDTH - AlignButtonsItem::HORIZONTAL_DISTANCE_TO_OBJECT, 0.0)));
|
||||
foreach (const ILatchable::Latch &latch, getVerticalLatches(ILatchable::MOVE, true)) {
|
||||
foreach (const ILatchable::Latch &latch, verticalLatches(ILatchable::MOVE, true)) {
|
||||
m_verticalAlignButtons->addButton(translateLatchTypeToAlignType(latch.m_latchType), latch.m_identifier, mapFromScene(QPointF(0.0, latch.m_pos)).y());
|
||||
}
|
||||
}
|
||||
@@ -560,43 +560,43 @@ IAlignable::AlignType ObjectItem::translateLatchTypeToAlignType(ILatchable::Latc
|
||||
return alignType;
|
||||
}
|
||||
|
||||
const Style *ObjectItem::getAdaptedStyle(const QString &stereotypeIconId)
|
||||
const Style *ObjectItem::adaptedStyle(const QString &stereotypeIconId)
|
||||
{
|
||||
QList<const DObject *> collidingObjects;
|
||||
foreach (const QGraphicsItem *item, m_diagramSceneModel->collectCollidingObjectItems(this, DiagramSceneModel::COLLIDING_ITEMS)) {
|
||||
if (const ObjectItem *objectItem = dynamic_cast<const ObjectItem *>(item)) {
|
||||
collidingObjects.append(objectItem->getObject());
|
||||
collidingObjects.append(objectItem->object());
|
||||
}
|
||||
}
|
||||
QColor baseColor;
|
||||
if (!stereotypeIconId.isEmpty()) {
|
||||
StereotypeIcon stereotypeIcon = m_diagramSceneModel->getStereotypeController()->findStereotypeIcon(stereotypeIconId);
|
||||
baseColor = stereotypeIcon.getBaseColor();
|
||||
StereotypeIcon stereotypeIcon = m_diagramSceneModel->stereotypeController()->findStereotypeIcon(stereotypeIconId);
|
||||
baseColor = stereotypeIcon.baseColor();
|
||||
}
|
||||
return m_diagramSceneModel->getStyleController()->adaptObjectStyle(
|
||||
StyledObject(getObject(),
|
||||
return m_diagramSceneModel->styleController()->adaptObjectStyle(
|
||||
StyledObject(object(),
|
||||
ObjectVisuals(
|
||||
getObject()->getVisualPrimaryRole(),
|
||||
getObject()->getVisualSecondaryRole(),
|
||||
getObject()->isVisualEmphasized(),
|
||||
object()->visualPrimaryRole(),
|
||||
object()->visualSecondaryRole(),
|
||||
object()->isVisualEmphasized(),
|
||||
baseColor,
|
||||
getObject()->getDepth()),
|
||||
object()->depth()),
|
||||
collidingObjects));
|
||||
}
|
||||
|
||||
bool ObjectItem::showContext() const
|
||||
{
|
||||
bool showContext = !m_object->getContext().isEmpty();
|
||||
bool showContext = !m_object->context().isEmpty();
|
||||
if (showContext) {
|
||||
// TODO Because of this algorithm adding, moving, removing of one item need to update() all colliding items as well
|
||||
QMT_CHECK(getObject()->getModelUid().isValid());
|
||||
MObject *mobject = m_diagramSceneModel->getDiagramController()->getModelController()->findObject(getObject()->getModelUid());
|
||||
QMT_CHECK(object()->modelUid().isValid());
|
||||
MObject *mobject = m_diagramSceneModel->diagramController()->modelController()->findObject(object()->modelUid());
|
||||
QMT_CHECK(mobject);
|
||||
MObject *owner = mobject->getOwner();
|
||||
MObject *owner = mobject->owner();
|
||||
if (owner) {
|
||||
foreach (QGraphicsItem *item, m_diagramSceneModel->collectCollidingObjectItems(this, DiagramSceneModel::COLLIDING_OUTER_ITEMS)) {
|
||||
if (ObjectItem *objectItem = dynamic_cast<ObjectItem *>(item)) {
|
||||
if (objectItem->getObject()->getModelUid().isValid() && objectItem->getObject()->getModelUid() == owner->getUid()) {
|
||||
if (objectItem->object()->modelUid().isValid() && objectItem->object()->modelUid() == owner->uid()) {
|
||||
showContext = false;
|
||||
break;
|
||||
}
|
||||
@@ -660,10 +660,10 @@ void ObjectItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
|
||||
QMenu menu;
|
||||
|
||||
bool addSeparator = false;
|
||||
if (getDiagramSceneModel()->getDiagramSceneController()->getElementTasks()->hasDiagram(m_object, m_diagramSceneModel->getDiagram())) {
|
||||
if (diagramSceneModel()->diagramSceneController()->elementTasks()->hasDiagram(m_object, m_diagramSceneModel->diagram())) {
|
||||
menu.addAction(new ContextMenuAction(QObject::tr("Open Diagram"), QStringLiteral("openDiagram"), &menu));
|
||||
addSeparator = true;
|
||||
} else if (getDiagramSceneModel()->getDiagramSceneController()->getElementTasks()->mayCreateDiagram(m_object, m_diagramSceneModel->getDiagram())) {
|
||||
} else if (diagramSceneModel()->diagramSceneController()->elementTasks()->mayCreateDiagram(m_object, m_diagramSceneModel->diagram())) {
|
||||
menu.addAction(new ContextMenuAction(QObject::tr("Create Diagram"), QStringLiteral("createDiagram"), &menu));
|
||||
addSeparator = true;
|
||||
}
|
||||
@@ -697,53 +697,53 @@ void ObjectItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
|
||||
if (!handleSelectedContextMenuAction(selectedAction)) {
|
||||
ContextMenuAction *action = dynamic_cast<ContextMenuAction *>(selectedAction);
|
||||
QMT_CHECK(action);
|
||||
if (action->getId() == QStringLiteral("openDiagram")) {
|
||||
m_diagramSceneModel->getDiagramSceneController()->getElementTasks()->openDiagram(m_object, m_diagramSceneModel->getDiagram());
|
||||
} else if (action->getId() == QStringLiteral("createDiagram")) {
|
||||
m_diagramSceneModel->getDiagramSceneController()->getElementTasks()->createAndOpenDiagram(m_object, m_diagramSceneModel->getDiagram());
|
||||
} else if (action->getId() == QStringLiteral("remove")) {
|
||||
DSelection selection = m_diagramSceneModel->getSelectedElements();
|
||||
if (action->id() == QStringLiteral("openDiagram")) {
|
||||
m_diagramSceneModel->diagramSceneController()->elementTasks()->openDiagram(m_object, m_diagramSceneModel->diagram());
|
||||
} else if (action->id() == QStringLiteral("createDiagram")) {
|
||||
m_diagramSceneModel->diagramSceneController()->elementTasks()->createAndOpenDiagram(m_object, m_diagramSceneModel->diagram());
|
||||
} else if (action->id() == QStringLiteral("remove")) {
|
||||
DSelection selection = m_diagramSceneModel->selectedElements();
|
||||
if (selection.isEmpty()) {
|
||||
selection.append(m_object->getUid(), m_diagramSceneModel->getDiagram()->getUid());
|
||||
selection.append(m_object->uid(), m_diagramSceneModel->diagram()->uid());
|
||||
}
|
||||
m_diagramSceneModel->getDiagramController()->deleteElements(selection, m_diagramSceneModel->getDiagram());
|
||||
} else if (action->getId() == QStringLiteral("delete")) {
|
||||
DSelection selection = m_diagramSceneModel->getSelectedElements();
|
||||
m_diagramSceneModel->diagramController()->deleteElements(selection, m_diagramSceneModel->diagram());
|
||||
} else if (action->id() == QStringLiteral("delete")) {
|
||||
DSelection selection = m_diagramSceneModel->selectedElements();
|
||||
if (selection.isEmpty()) {
|
||||
selection.append(m_object->getUid(), m_diagramSceneModel->getDiagram()->getUid());
|
||||
selection.append(m_object->uid(), m_diagramSceneModel->diagram()->uid());
|
||||
}
|
||||
m_diagramSceneModel->getDiagramSceneController()->deleteFromDiagram(selection, m_diagramSceneModel->getDiagram());
|
||||
} else if (action->getId() == QStringLiteral("selectInModelTree")) {
|
||||
m_diagramSceneModel->diagramSceneController()->deleteFromDiagram(selection, m_diagramSceneModel->diagram());
|
||||
} else if (action->id() == QStringLiteral("selectInModelTree")) {
|
||||
// TODO implement
|
||||
} else if (action->getId() == QStringLiteral("alignLeft")) {
|
||||
} else if (action->id() == QStringLiteral("alignLeft")) {
|
||||
align(IAlignable::ALIGN_LEFT, QStringLiteral("left"));
|
||||
} else if (action->getId() == QStringLiteral("centerVertically")) {
|
||||
} else if (action->id() == QStringLiteral("centerVertically")) {
|
||||
align(IAlignable::ALIGN_VCENTER, QStringLiteral("center"));
|
||||
} else if (action->getId() == QStringLiteral("alignRight")) {
|
||||
} else if (action->id() == QStringLiteral("alignRight")) {
|
||||
align(IAlignable::ALIGN_RIGHT, QStringLiteral("right"));
|
||||
} else if (action->getId() == QStringLiteral("alignTop")) {
|
||||
} else if (action->id() == QStringLiteral("alignTop")) {
|
||||
align(IAlignable::ALIGN_TOP, QStringLiteral("top"));
|
||||
} else if (action->getId() == QStringLiteral("centerHorizontally")) {
|
||||
} else if (action->id() == QStringLiteral("centerHorizontally")) {
|
||||
align(IAlignable::ALIGN_HCENTER, QStringLiteral("center"));
|
||||
} else if (action->getId() == QStringLiteral("alignBottom")) {
|
||||
} else if (action->id() == QStringLiteral("alignBottom")) {
|
||||
align(IAlignable::ALIGN_BOTTOM, QStringLiteral("bottom"));
|
||||
} else if (action->getId() == QStringLiteral("sameWidth")) {
|
||||
} else if (action->id() == QStringLiteral("sameWidth")) {
|
||||
align(IAlignable::ALIGN_WIDTH, QStringLiteral("width"));
|
||||
} else if (action->getId() == QStringLiteral("sameHeight")) {
|
||||
} else if (action->id() == QStringLiteral("sameHeight")) {
|
||||
align(IAlignable::ALIGN_HEIGHT, QStringLiteral("height"));
|
||||
} else if (action->getId() == QStringLiteral("sameSize")) {
|
||||
} else if (action->id() == QStringLiteral("sameSize")) {
|
||||
align(IAlignable::ALIGN_SIZE, QStringLiteral("size"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QSizeF ObjectItem::getMinimumSize(const QSet<QGraphicsItem *> &items) const
|
||||
QSizeF ObjectItem::minimumSize(const QSet<QGraphicsItem *> &items) const
|
||||
{
|
||||
QSizeF minimumSize(0.0, 0.0);
|
||||
foreach (QGraphicsItem *item, items) {
|
||||
if (IResizable *resizable = dynamic_cast<IResizable *>(item)) {
|
||||
QSizeF size = resizable->getMinimumSize();
|
||||
QSizeF size = resizable->minimumSize();
|
||||
if (size.width() > minimumSize.width()) {
|
||||
minimumSize.setWidth(size.width());
|
||||
}
|
||||
|
||||
@@ -90,9 +90,9 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
DObject *getObject() const { return m_object; }
|
||||
DObject *object() const { return m_object; }
|
||||
|
||||
DiagramSceneModel *getDiagramSceneModel() const { return m_diagramSceneModel; }
|
||||
DiagramSceneModel *diagramSceneModel() const { return m_diagramSceneModel; }
|
||||
|
||||
public:
|
||||
|
||||
@@ -110,11 +110,11 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QPointF getPos() const;
|
||||
QPointF pos() const;
|
||||
|
||||
QRectF getRect() const;
|
||||
QRectF rect() const;
|
||||
|
||||
QSizeF getMinimumSize() const = 0;
|
||||
QSizeF minimumSize() const = 0;
|
||||
|
||||
void setPosAndRect(const QPointF &originalPos, const QRectF &originalRect, const QPointF &topLeftDelta, const QPointF &bottomRightDelta);
|
||||
|
||||
@@ -138,9 +138,9 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QList<Latch> getHorizontalLatches(Action action, bool grabbedItem) const;
|
||||
QList<Latch> horizontalLatches(Action action, bool grabbedItem) const;
|
||||
|
||||
QList<Latch> getVerticalLatches(Action action, bool grabbedItem) const;
|
||||
QList<Latch> verticalLatches(Action action, bool grabbedItem) const;
|
||||
|
||||
public:
|
||||
|
||||
@@ -150,19 +150,19 @@ protected:
|
||||
|
||||
void updateStereotypeIconDisplay();
|
||||
|
||||
QString getStereotypeIconId() const { return m_stereotypeIconId; }
|
||||
QString stereotypeIconId() const { return m_stereotypeIconId; }
|
||||
|
||||
QString getShapeIconId() const { return m_shapeIconId; }
|
||||
QString shapeIconId() const { return m_shapeIconId; }
|
||||
|
||||
StereotypeIcon::Display getStereotypeIconDisplay() const { return m_stereotypeIconDisplay; }
|
||||
StereotypeIcon::Display stereotypeIconDisplay() const { return m_stereotypeIconDisplay; }
|
||||
|
||||
void updateStereotypes(const QString &stereotypeIconId, StereotypeIcon::Display stereotypeDisplay, const Style *style);
|
||||
|
||||
StereotypesItem *getStereotypesItem() const { return m_stereotypes; }
|
||||
StereotypesItem *stereotypesItem() const { return m_stereotypes; }
|
||||
|
||||
CustomIconItem *getStereotypeIconItem() const { return m_stereotypeIcon; }
|
||||
CustomIconItem *stereotypeIconItem() const { return m_stereotypeIcon; }
|
||||
|
||||
QSizeF getStereotypeIconMinimumSize(const StereotypeIcon &stereotypeIcon, qreal minimumWidth, qreal minimumHeight) const;
|
||||
QSizeF stereotypeIconMinimumSize(const StereotypeIcon &stereotypeIcon, qreal minimumWidth, qreal minimumHeight) const;
|
||||
|
||||
void updateDepth();
|
||||
|
||||
@@ -178,7 +178,7 @@ protected:
|
||||
|
||||
IAlignable::AlignType translateLatchTypeToAlignType(ILatchable::LatchType latchType);
|
||||
|
||||
const Style *getAdaptedStyle(const QString &stereotypeIconId);
|
||||
const Style *adaptedStyle(const QString &stereotypeIconId);
|
||||
|
||||
bool showContext() const;
|
||||
|
||||
@@ -200,7 +200,7 @@ protected:
|
||||
|
||||
private:
|
||||
|
||||
QSizeF getMinimumSize(const QSet<QGraphicsItem *> &items) const;
|
||||
QSizeF minimumSize(const QSet<QGraphicsItem *> &items) const;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -96,17 +96,17 @@ void PackageItem::update()
|
||||
|
||||
updateStereotypeIconDisplay();
|
||||
|
||||
const Style *style = getAdaptedStyle(getStereotypeIconId());
|
||||
const Style *style = adaptedStyle(stereotypeIconId());
|
||||
|
||||
// custom icon
|
||||
if (getStereotypeIconDisplay() == StereotypeIcon::DISPLAY_ICON) {
|
||||
if (stereotypeIconDisplay() == StereotypeIcon::DISPLAY_ICON) {
|
||||
if (!m_customIcon) {
|
||||
m_customIcon = new CustomIconItem(getDiagramSceneModel(), this);
|
||||
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
||||
}
|
||||
m_customIcon->setStereotypeIconId(getStereotypeIconId());
|
||||
m_customIcon->setBaseSize(getStereotypeIconMinimumSize(m_customIcon->getStereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT));
|
||||
m_customIcon->setBrush(style->getFillBrush());
|
||||
m_customIcon->setPen(style->getOuterLinePen());
|
||||
m_customIcon->setStereotypeIconId(stereotypeIconId());
|
||||
m_customIcon->setBaseSize(stereotypeIconMinimumSize(m_customIcon->stereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT));
|
||||
m_customIcon->setBrush(style->fillBrush());
|
||||
m_customIcon->setPen(style->outerLinePen());
|
||||
m_customIcon->setZValue(SHAPE_ZVALUE);
|
||||
} else if (m_customIcon) {
|
||||
m_customIcon->scene()->removeItem(m_customIcon);
|
||||
@@ -119,8 +119,8 @@ void PackageItem::update()
|
||||
if (!m_shape) {
|
||||
m_shape = new QGraphicsPolygonItem(this);
|
||||
}
|
||||
m_shape->setBrush(style->getFillBrush());
|
||||
m_shape->setPen(style->getOuterLinePen());
|
||||
m_shape->setBrush(style->fillBrush());
|
||||
m_shape->setPen(style->outerLinePen());
|
||||
m_shape->setZValue(SHAPE_ZVALUE);
|
||||
} else if (m_shape) {
|
||||
m_shape->scene()->removeItem(m_shape);
|
||||
@@ -129,24 +129,24 @@ void PackageItem::update()
|
||||
}
|
||||
|
||||
// stereotypes
|
||||
updateStereotypes(getStereotypeIconId(), getStereotypeIconDisplay(), style);
|
||||
updateStereotypes(stereotypeIconId(), stereotypeIconDisplay(), style);
|
||||
|
||||
// package name
|
||||
if (!m_packageName) {
|
||||
m_packageName = new QGraphicsSimpleTextItem(this);
|
||||
}
|
||||
m_packageName->setBrush(style->getTextBrush());
|
||||
m_packageName->setFont(style->getHeaderFont());
|
||||
m_packageName->setText(getObject()->getName());
|
||||
m_packageName->setBrush(style->textBrush());
|
||||
m_packageName->setFont(style->headerFont());
|
||||
m_packageName->setText(object()->name());
|
||||
|
||||
// context
|
||||
if (showContext()) {
|
||||
if (!m_contextLabel) {
|
||||
m_contextLabel = new ContextLabelItem(this);
|
||||
}
|
||||
m_contextLabel->setFont(style->getSmallFont());
|
||||
m_contextLabel->setBrush(style->getTextBrush());
|
||||
m_contextLabel->setContext(getObject()->getContext());
|
||||
m_contextLabel->setFont(style->smallFont());
|
||||
m_contextLabel->setBrush(style->textBrush());
|
||||
m_contextLabel->setContext(object()->context());
|
||||
} else if (m_contextLabel) {
|
||||
m_contextLabel->scene()->removeItem(m_contextLabel);
|
||||
delete m_contextLabel;
|
||||
@@ -158,7 +158,7 @@ void PackageItem::update()
|
||||
// relation starters
|
||||
if (isFocusSelected()) {
|
||||
if (!m_relationStarter) {
|
||||
m_relationStarter = new RelationStarter(this, getDiagramSceneModel(), 0);
|
||||
m_relationStarter = new RelationStarter(this, diagramSceneModel(), 0);
|
||||
scene()->addItem(m_relationStarter);
|
||||
m_relationStarter->setZValue(RELATION_STARTER_ZVALUE);
|
||||
m_relationStarter->addArrow(QStringLiteral("dependency"), ArrowItem::SHAFT_DASHED, ArrowItem::HEAD_OPEN);
|
||||
@@ -179,12 +179,12 @@ bool PackageItem::intersectShapeWithLine(const QLineF &line, QPointF *intersecti
|
||||
QPolygonF polygon;
|
||||
if (m_customIcon) {
|
||||
// TODO use customIcon path as shape
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
polygon << rect.topLeft() << rect.topRight() << rect.bottomRight() << rect.bottomLeft() << rect.topLeft();
|
||||
} else {
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
ShapeGeometry shape = calcMinimumGeometry();
|
||||
polygon << rect.topLeft() << (rect.topLeft() + QPointF(shape.m_minimumTabSize.width(), 0.0))
|
||||
<< (rect.topLeft() + QPointF(shape.m_minimumTabSize.width(), shape.m_minimumTabSize.height()))
|
||||
@@ -194,52 +194,52 @@ bool PackageItem::intersectShapeWithLine(const QLineF &line, QPointF *intersecti
|
||||
return GeometryUtilities::intersect(polygon, line, intersectionPoint, intersectionLine);
|
||||
}
|
||||
|
||||
QSizeF PackageItem::getMinimumSize() const
|
||||
QSizeF PackageItem::minimumSize() const
|
||||
{
|
||||
ShapeGeometry geometry = calcMinimumGeometry();
|
||||
return geometry.m_minimumSize;
|
||||
}
|
||||
|
||||
QList<ILatchable::Latch> PackageItem::getHorizontalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
QList<ILatchable::Latch> PackageItem::horizontalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
{
|
||||
return ObjectItem::getHorizontalLatches(action, grabbedItem);
|
||||
return ObjectItem::horizontalLatches(action, grabbedItem);
|
||||
}
|
||||
|
||||
QList<ILatchable::Latch> PackageItem::getVerticalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
QList<ILatchable::Latch> PackageItem::verticalLatches(ILatchable::Action action, bool grabbedItem) const
|
||||
{
|
||||
return ObjectItem::getVerticalLatches(action, grabbedItem);
|
||||
return ObjectItem::verticalLatches(action, grabbedItem);
|
||||
}
|
||||
|
||||
#if 0
|
||||
QList<qreal> PackageItem::getHorizontalLatches() const
|
||||
QList<qreal> PackageItem::horizontalLatches() const
|
||||
{
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
return QList<qreal>() << rect.left() << rect.center().x() << rect.right();
|
||||
}
|
||||
|
||||
QList<qreal> PackageItem::getVerticalLatches() const
|
||||
QList<qreal> PackageItem::verticalLatches() const
|
||||
{
|
||||
QRectF rect = getObject()->getRect();
|
||||
rect.translate(getObject()->getPos());
|
||||
QRectF rect = object()->rect();
|
||||
rect.translate(object()->pos());
|
||||
ShapeGeometry shape = calcMinimumGeometry();
|
||||
return QList<qreal>() << rect.topLeft().y() << (rect.topLeft() + QPointF(0.0, shape.m_minimumTabSize.height())).y() << rect.center().y() << rect.bottomRight().y();
|
||||
}
|
||||
#endif
|
||||
|
||||
QPointF PackageItem::getRelationStartPos() const
|
||||
QPointF PackageItem::relationStartPos() const
|
||||
{
|
||||
return pos();
|
||||
}
|
||||
|
||||
void PackageItem::relationDrawn(const QString &id, const QPointF &toScenePos, const QList<QPointF> &intermediatePoints)
|
||||
{
|
||||
DElement *targetElement = getDiagramSceneModel()->findTopmostElement(toScenePos);
|
||||
DElement *targetElement = diagramSceneModel()->findTopmostElement(toScenePos);
|
||||
if (targetElement) {
|
||||
if (id == QStringLiteral("dependency")) {
|
||||
DObject *dependantObject = dynamic_cast<DObject *>(targetElement);
|
||||
if (dependantObject) {
|
||||
getDiagramSceneModel()->getDiagramSceneController()->createDependency(getObject(), dependantObject, intermediatePoints, getDiagramSceneModel()->getDiagram());
|
||||
diagramSceneModel()->diagramSceneController()->createDependency(object(), dependantObject, intermediatePoints, diagramSceneModel()->diagram());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -253,14 +253,14 @@ PackageItem::ShapeGeometry PackageItem::calcMinimumGeometry() const
|
||||
double tabWidth = 0.0;
|
||||
|
||||
if (m_customIcon) {
|
||||
return ShapeGeometry(getStereotypeIconMinimumSize(m_customIcon->getStereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT), QSizeF(tabWidth, tabHeight));
|
||||
return ShapeGeometry(stereotypeIconMinimumSize(m_customIcon->stereotypeIcon(), CUSTOM_ICON_MINIMUM_AUTO_WIDTH, CUSTOM_ICON_MINIMUM_AUTO_HEIGHT), QSizeF(tabWidth, tabHeight));
|
||||
}
|
||||
|
||||
double bodyHeight = 0.0;
|
||||
double bodyWidth = 0.0;
|
||||
|
||||
tabHeight += TAB_VERT_BORDER;
|
||||
if (StereotypesItem *stereotypesItem = getStereotypesItem()) {
|
||||
if (StereotypesItem *stereotypesItem = ObjectItem::stereotypesItem()) {
|
||||
tabWidth = std::max(tabWidth, stereotypesItem->boundingRect().width() + 2 * TAB_HORIZ_BORDER);
|
||||
tabHeight += stereotypesItem->boundingRect().height();
|
||||
}
|
||||
@@ -273,12 +273,12 @@ PackageItem::ShapeGeometry PackageItem::calcMinimumGeometry() const
|
||||
height += tabHeight;
|
||||
|
||||
bodyHeight = BODY_VERT_BORDER;
|
||||
if (CustomIconItem *stereotypeIconItem = getStereotypeIconItem()) {
|
||||
if (CustomIconItem *stereotypeIconItem = ObjectItem::stereotypeIconItem()) {
|
||||
bodyWidth = std::max(bodyWidth, stereotypeIconItem->boundingRect().width() + 2 * BODY_HORIZ_BORDER);
|
||||
bodyHeight += stereotypeIconItem->boundingRect().height();
|
||||
}
|
||||
if (m_contextLabel) {
|
||||
bodyHeight += m_contextLabel->getHeight();
|
||||
bodyHeight += m_contextLabel->height();
|
||||
}
|
||||
bodyHeight += BODY_VERT_BORDER;
|
||||
bodyHeight = std::max(bodyHeight, BODY_MIN_HEIGHT);
|
||||
@@ -300,7 +300,7 @@ void PackageItem::updateGeometry()
|
||||
double tabHeight = geometry.m_minimumTabSize.height();
|
||||
|
||||
// calc width and height
|
||||
if (getObject()->hasAutoSize()) {
|
||||
if (object()->hasAutoSize()) {
|
||||
if (!m_customIcon) {
|
||||
if (width < MINIMUM_AUTO_WIDTH) {
|
||||
width = MINIMUM_AUTO_WIDTH;
|
||||
@@ -310,7 +310,7 @@ void PackageItem::updateGeometry()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
QRectF rect = getObject()->getRect();
|
||||
QRectF rect = object()->rect();
|
||||
if (rect.width() > width) {
|
||||
width = rect.width();
|
||||
}
|
||||
@@ -325,14 +325,14 @@ void PackageItem::updateGeometry()
|
||||
double top = -height / 2.0;
|
||||
double y = top;
|
||||
|
||||
setPos(getObject()->getPos());
|
||||
setPos(object()->pos());
|
||||
|
||||
QRectF rect(left, top, width, height);
|
||||
|
||||
// the object is updated without calling DiagramController intentionally.
|
||||
// attribute rect is not a real attribute stored on DObject but
|
||||
// a backup for the graphics item used for manual resized and persistency.
|
||||
getObject()->setRect(rect);
|
||||
object()->setRect(rect);
|
||||
|
||||
if (m_customIcon) {
|
||||
m_customIcon->setPos(left, top);
|
||||
@@ -340,7 +340,7 @@ void PackageItem::updateGeometry()
|
||||
y += height;
|
||||
|
||||
y += BODY_VERT_BORDER;
|
||||
if (StereotypesItem *stereotypesItem = getStereotypesItem()) {
|
||||
if (StereotypesItem *stereotypesItem = ObjectItem::stereotypesItem()) {
|
||||
stereotypesItem->setPos(-stereotypesItem->boundingRect().width() / 2.0, y);
|
||||
y += stereotypesItem->boundingRect().height();
|
||||
}
|
||||
@@ -364,7 +364,7 @@ void PackageItem::updateGeometry()
|
||||
m_shape->setPolygon(polygon);
|
||||
|
||||
y += TAB_VERT_BORDER;
|
||||
if (StereotypesItem *stereotypesItem = getStereotypesItem()) {
|
||||
if (StereotypesItem *stereotypesItem = ObjectItem::stereotypesItem()) {
|
||||
stereotypesItem->setPos(left + TAB_HORIZ_BORDER, y);
|
||||
y += stereotypesItem->boundingRect().height();
|
||||
}
|
||||
@@ -374,7 +374,7 @@ void PackageItem::updateGeometry()
|
||||
}
|
||||
y += TAB_VERT_BORDER;
|
||||
y += BODY_VERT_BORDER;
|
||||
if (CustomIconItem *stereotypeIconItem = getStereotypeIconItem()) {
|
||||
if (CustomIconItem *stereotypeIconItem = ObjectItem::stereotypeIconItem()) {
|
||||
stereotypeIconItem->setPos(right - stereotypeIconItem->boundingRect().width() - BODY_HORIZ_BORDER, y);
|
||||
y += stereotypeIconItem->boundingRect().height();
|
||||
}
|
||||
|
||||
@@ -72,17 +72,17 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
virtual QSizeF getMinimumSize() const;
|
||||
virtual QSizeF minimumSize() const;
|
||||
|
||||
public:
|
||||
|
||||
QList<Latch> getHorizontalLatches(Action action, bool grabbedItem) const;
|
||||
QList<Latch> horizontalLatches(Action action, bool grabbedItem) const;
|
||||
|
||||
QList<Latch> getVerticalLatches(Action action, bool grabbedItem) const;
|
||||
QList<Latch> verticalLatches(Action action, bool grabbedItem) const;
|
||||
|
||||
public:
|
||||
|
||||
QPointF getRelationStartPos() const;
|
||||
QPointF relationStartPos() const;
|
||||
|
||||
void relationDrawn(const QString &id, const QPointF &toScenePos, const QList<QPointF> &intermediatePoints);
|
||||
|
||||
|
||||
@@ -75,21 +75,21 @@ public:
|
||||
{
|
||||
Q_UNUSED(inheritance);
|
||||
|
||||
DObject *baseObject = m_diagramSceneModel->getDiagramController()->findElement<DObject>(inheritance->getBase(), m_diagramSceneModel->getDiagram());
|
||||
DObject *baseObject = m_diagramSceneModel->diagramController()->findElement<DObject>(inheritance->base(), m_diagramSceneModel->diagram());
|
||||
QMT_CHECK(baseObject);
|
||||
bool baseIsInterface = baseObject->getStereotypes().contains(QStringLiteral("interface"));
|
||||
bool baseIsInterface = baseObject->stereotypes().contains(QStringLiteral("interface"));
|
||||
bool lollipopDisplay = false;
|
||||
if (baseIsInterface) {
|
||||
StereotypeDisplayVisitor stereotypeDisplayVisitor;
|
||||
stereotypeDisplayVisitor.setModelController(m_diagramSceneModel->getDiagramSceneController()->getModelController());
|
||||
stereotypeDisplayVisitor.setStereotypeController(m_diagramSceneModel->getStereotypeController());
|
||||
stereotypeDisplayVisitor.setModelController(m_diagramSceneModel->diagramSceneController()->modelController());
|
||||
stereotypeDisplayVisitor.setStereotypeController(m_diagramSceneModel->stereotypeController());
|
||||
baseObject->accept(&stereotypeDisplayVisitor);
|
||||
lollipopDisplay = stereotypeDisplayVisitor.getStereotypeDisplay() == DObject::STEREOTYPE_ICON;
|
||||
lollipopDisplay = stereotypeDisplayVisitor.stereotypeDisplay() == DObject::STEREOTYPE_ICON;
|
||||
}
|
||||
if (lollipopDisplay) {
|
||||
m_arrow->setShaft(ArrowItem::SHAFT_SOLID);
|
||||
m_arrow->setEndHead(ArrowItem::HEAD_NONE);
|
||||
} else if (baseIsInterface || inheritance->getStereotypes().contains(QStringLiteral("realize"))) {
|
||||
} else if (baseIsInterface || inheritance->stereotypes().contains(QStringLiteral("realize"))) {
|
||||
m_arrow->setShaft(ArrowItem::SHAFT_DASHED);
|
||||
m_arrow->setEndHead(ArrowItem::HEAD_TRIANGLE);
|
||||
} else {
|
||||
@@ -107,8 +107,8 @@ public:
|
||||
|
||||
ArrowItem::Head endAHead = ArrowItem::HEAD_NONE;
|
||||
ArrowItem::Head endBHead = ArrowItem::HEAD_NONE;
|
||||
bool isRealization = dependency->getStereotypes().contains(QStringLiteral("realize"));
|
||||
switch (dependency->getDirection()) {
|
||||
bool isRealization = dependency->stereotypes().contains(QStringLiteral("realize"));
|
||||
switch (dependency->direction()) {
|
||||
case MDependency::A_TO_B:
|
||||
endBHead = isRealization ? ArrowItem::HEAD_TRIANGLE : ArrowItem::HEAD_OPEN;
|
||||
break;
|
||||
@@ -141,33 +141,33 @@ public:
|
||||
ArrowItem::Head endAHead = ArrowItem::HEAD_NONE;
|
||||
ArrowItem::Head endBHead = ArrowItem::HEAD_NONE;
|
||||
|
||||
bool aNav = association->getA().isNavigable();
|
||||
bool bNav = association->getB().isNavigable();
|
||||
bool aNav = association->endA().isNavigable();
|
||||
bool bNav = association->endB().isNavigable();
|
||||
|
||||
bool aFlat = association->getA().getKind() == MAssociationEnd::ASSOCIATION;
|
||||
bool bFlat = association->getB().getKind() == MAssociationEnd::ASSOCIATION;
|
||||
bool aFlat = association->endA().kind() == MAssociationEnd::ASSOCIATION;
|
||||
bool bFlat = association->endB().kind() == MAssociationEnd::ASSOCIATION;
|
||||
|
||||
switch (association->getA().getKind()) {
|
||||
switch (association->endA().kind()) {
|
||||
case MAssociationEnd::ASSOCIATION:
|
||||
endAHead = ((bNav && !aNav && bFlat) || (aNav && bNav && !bFlat)) ? ArrowItem::HEAD_FILLED_TRIANGLE : ArrowItem::HEAD_NONE;
|
||||
break;
|
||||
case MAssociationEnd::AGGREGATION:
|
||||
endAHead = association->getB().isNavigable() ? ArrowItem::HEAD_DIAMOND_FILLED_TRIANGLE : ArrowItem::HEAD_DIAMOND;
|
||||
endAHead = association->endB().isNavigable() ? ArrowItem::HEAD_DIAMOND_FILLED_TRIANGLE : ArrowItem::HEAD_DIAMOND;
|
||||
break;
|
||||
case MAssociationEnd::COMPOSITION:
|
||||
endAHead = association->getB().isNavigable() ? ArrowItem::HEAD_FILLED_DIAMOND_FILLED_TRIANGLE : ArrowItem::HEAD_FILLED_DIAMOND;
|
||||
endAHead = association->endB().isNavigable() ? ArrowItem::HEAD_FILLED_DIAMOND_FILLED_TRIANGLE : ArrowItem::HEAD_FILLED_DIAMOND;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (association->getB().getKind()) {
|
||||
switch (association->endB().kind()) {
|
||||
case MAssociationEnd::ASSOCIATION:
|
||||
endBHead = ((aNav && !bNav && aFlat) || (aNav && bNav && !aFlat)) ? ArrowItem::HEAD_FILLED_TRIANGLE : ArrowItem::HEAD_NONE;
|
||||
break;
|
||||
case MAssociationEnd::AGGREGATION:
|
||||
endBHead = association->getA().isNavigable() ? ArrowItem::HEAD_DIAMOND_FILLED_TRIANGLE : ArrowItem::HEAD_DIAMOND;
|
||||
endBHead = association->endA().isNavigable() ? ArrowItem::HEAD_DIAMOND_FILLED_TRIANGLE : ArrowItem::HEAD_DIAMOND;
|
||||
break;
|
||||
case MAssociationEnd::COMPOSITION:
|
||||
endBHead = association->getA().isNavigable() ? ArrowItem::HEAD_FILLED_DIAMOND_FILLED_TRIANGLE : ArrowItem::HEAD_FILLED_DIAMOND;
|
||||
endBHead = association->endA().isNavigable() ? ArrowItem::HEAD_FILLED_DIAMOND_FILLED_TRIANGLE : ArrowItem::HEAD_FILLED_DIAMOND;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -245,27 +245,27 @@ QPainterPath RelationItem::shape() const
|
||||
|
||||
void RelationItem::moveDelta(const QPointF &delta)
|
||||
{
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_relation, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
QList<DRelation::IntermediatePoint> points;
|
||||
foreach (const DRelation::IntermediatePoint &point, m_relation->getIntermediatePoints()) {
|
||||
points << DRelation::IntermediatePoint(point.getPos() + delta);
|
||||
foreach (const DRelation::IntermediatePoint &point, m_relation->intermediatePoints()) {
|
||||
points << DRelation::IntermediatePoint(point.pos() + delta);
|
||||
}
|
||||
m_relation->setIntermediatePoints(points);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
|
||||
void RelationItem::alignItemPositionToRaster(double rasterWidth, double rasterHeight)
|
||||
{
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_relation, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
QList<DRelation::IntermediatePoint> points;
|
||||
foreach (const DRelation::IntermediatePoint &point, m_relation->getIntermediatePoints()) {
|
||||
QPointF pos = point.getPos();
|
||||
foreach (const DRelation::IntermediatePoint &point, m_relation->intermediatePoints()) {
|
||||
QPointF pos = point.pos();
|
||||
double x = qRound(pos.x() / rasterWidth) * rasterWidth;
|
||||
double y = qRound(pos.y() / rasterHeight) * rasterHeight;
|
||||
points << DRelation::IntermediatePoint(QPointF(x,y));
|
||||
}
|
||||
m_relation->setIntermediatePoints(points);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
|
||||
bool RelationItem::isSecondarySelected() const
|
||||
@@ -294,43 +294,43 @@ void RelationItem::setFocusSelected(bool focusSelected)
|
||||
}
|
||||
}
|
||||
|
||||
QPointF RelationItem::getHandlePos(int index)
|
||||
QPointF RelationItem::handlePos(int index)
|
||||
{
|
||||
if (index == 0) {
|
||||
// TODO implement
|
||||
return QPointF(0,0);
|
||||
} else if (index == m_relation->getIntermediatePoints().size() + 1) {
|
||||
} else if (index == m_relation->intermediatePoints().size() + 1) {
|
||||
// TODO implement
|
||||
return QPointF(0,0);
|
||||
} else {
|
||||
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->getIntermediatePoints();
|
||||
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->intermediatePoints();
|
||||
--index;
|
||||
QMT_CHECK(index >= 0 && index < intermediatePoints.size());
|
||||
return intermediatePoints.at(index).getPos();
|
||||
return intermediatePoints.at(index).pos();
|
||||
}
|
||||
}
|
||||
|
||||
void RelationItem::insertHandle(int beforeIndex, const QPointF &pos)
|
||||
{
|
||||
if (beforeIndex >= 1 && beforeIndex <= m_relation->getIntermediatePoints().size() + 1) {
|
||||
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->getIntermediatePoints();
|
||||
if (beforeIndex >= 1 && beforeIndex <= m_relation->intermediatePoints().size() + 1) {
|
||||
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->intermediatePoints();
|
||||
intermediatePoints.insert(beforeIndex - 1, DRelation::IntermediatePoint(pos));
|
||||
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_relation, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_MAJOR);
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_MAJOR);
|
||||
m_relation->setIntermediatePoints(intermediatePoints);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
}
|
||||
|
||||
void RelationItem::deleteHandle(int index)
|
||||
{
|
||||
if (index >= 1 && index <= m_relation->getIntermediatePoints().size()) {
|
||||
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->getIntermediatePoints();
|
||||
if (index >= 1 && index <= m_relation->intermediatePoints().size()) {
|
||||
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->intermediatePoints();
|
||||
intermediatePoints.removeAt(index - 1);
|
||||
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_relation, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_MAJOR);
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_MAJOR);
|
||||
m_relation->setIntermediatePoints(intermediatePoints);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -338,17 +338,17 @@ void RelationItem::setHandlePos(int index, const QPointF &pos)
|
||||
{
|
||||
if (index == 0) {
|
||||
// TODO implement
|
||||
} else if (index == m_relation->getIntermediatePoints().size() + 1) {
|
||||
} else if (index == m_relation->intermediatePoints().size() + 1) {
|
||||
// TODO implement
|
||||
} else {
|
||||
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->getIntermediatePoints();
|
||||
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->intermediatePoints();
|
||||
--index;
|
||||
QMT_CHECK(index >= 0 && index < intermediatePoints.size());
|
||||
intermediatePoints[index].setPos(pos);
|
||||
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_relation, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_MINOR);
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_MINOR);
|
||||
m_relation->setIntermediatePoints(intermediatePoints);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -356,21 +356,21 @@ void RelationItem::alignHandleToRaster(int index, double rasterWidth, double ras
|
||||
{
|
||||
if (index == 0) {
|
||||
// TODO implement
|
||||
} else if (index ==m_relation->getIntermediatePoints().size() + 1) {
|
||||
} else if (index ==m_relation->intermediatePoints().size() + 1) {
|
||||
// TODO implement
|
||||
} else {
|
||||
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->getIntermediatePoints();
|
||||
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->intermediatePoints();
|
||||
--index;
|
||||
QMT_CHECK(index >= 0 && index < intermediatePoints.size());
|
||||
|
||||
QPointF pos = intermediatePoints.at(index).getPos();
|
||||
QPointF pos = intermediatePoints.at(index).pos();
|
||||
double x = qRound(pos.x() / rasterWidth) * rasterWidth;
|
||||
double y = qRound(pos.y() / rasterHeight) * rasterHeight;
|
||||
intermediatePoints[index].setPos(QPointF(x, y));
|
||||
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(m_relation, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_MINOR);
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_MINOR);
|
||||
m_relation->setIntermediatePoints(intermediatePoints);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -378,7 +378,7 @@ void RelationItem::update()
|
||||
{
|
||||
prepareGeometryChange();
|
||||
|
||||
const Style *style = getAdaptedStyle();
|
||||
const Style *style = adaptedStyle();
|
||||
|
||||
if (!m_arrow) {
|
||||
m_arrow = new ArrowItem(this);
|
||||
@@ -389,15 +389,15 @@ void RelationItem::update()
|
||||
|
||||
void RelationItem::update(const Style *style)
|
||||
{
|
||||
QPointF endBPos = calcEndPoint(m_relation->getEndB(), m_relation->getEndA(), m_relation->getIntermediatePoints().size() - 1);
|
||||
QPointF endAPos = calcEndPoint(m_relation->getEndA(), endBPos, 0);
|
||||
QPointF endBPos = calcEndPoint(m_relation->endBUid(), m_relation->endAUid(), m_relation->intermediatePoints().size() - 1);
|
||||
QPointF endAPos = calcEndPoint(m_relation->endAUid(), endBPos, 0);
|
||||
|
||||
setPos(endAPos);
|
||||
|
||||
QList<QPointF> points;
|
||||
points << (endAPos - endAPos);
|
||||
foreach (const DRelation::IntermediatePoint &point, m_relation->getIntermediatePoints()) {
|
||||
points << (point.getPos() - endAPos);
|
||||
foreach (const DRelation::IntermediatePoint &point, m_relation->intermediatePoints()) {
|
||||
points << (point.pos() - endAPos);
|
||||
}
|
||||
points << (endBPos - endAPos);
|
||||
|
||||
@@ -405,13 +405,13 @@ void RelationItem::update(const Style *style)
|
||||
m_relation->accept(&visitor);
|
||||
m_arrow->update(style);
|
||||
|
||||
if (!m_relation->getName().isEmpty()) {
|
||||
if (!m_relation->name().isEmpty()) {
|
||||
if (!m_name) {
|
||||
m_name = new QGraphicsSimpleTextItem(this);
|
||||
}
|
||||
m_name->setFont(style->getSmallFont());
|
||||
m_name->setBrush(style->getTextBrush());
|
||||
m_name->setText(m_relation->getName());
|
||||
m_name->setFont(style->smallFont());
|
||||
m_name->setBrush(style->textBrush());
|
||||
m_name->setText(m_relation->name());
|
||||
m_name->setPos(m_arrow->calcPointAtPercent(0.5) + QPointF(-m_name->boundingRect().width() * 0.5, 4.0));
|
||||
} else if (m_name) {
|
||||
m_name->scene()->removeItem(m_name);
|
||||
@@ -419,13 +419,13 @@ void RelationItem::update(const Style *style)
|
||||
m_name = 0;
|
||||
}
|
||||
|
||||
if (!m_relation->getStereotypes().isEmpty()) {
|
||||
if (!m_relation->stereotypes().isEmpty()) {
|
||||
if (!m_stereotypes) {
|
||||
m_stereotypes = new StereotypesItem(this);
|
||||
}
|
||||
m_stereotypes->setFont(style->getSmallFont());
|
||||
m_stereotypes->setBrush(style->getTextBrush());
|
||||
m_stereotypes->setStereotypes(m_relation->getStereotypes());
|
||||
m_stereotypes->setFont(style->smallFont());
|
||||
m_stereotypes->setBrush(style->textBrush());
|
||||
m_stereotypes->setStereotypes(m_relation->stereotypes());
|
||||
m_stereotypes->setPos(m_arrow->calcPointAtPercent(0.5) + QPointF(-m_stereotypes->boundingRect().width() * 0.5, -m_stereotypes->boundingRect().height() - 4.0));
|
||||
} else if (m_stereotypes) {
|
||||
m_stereotypes->scene()->removeItem(m_stereotypes);
|
||||
@@ -467,59 +467,59 @@ void RelationItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||
Q_UNUSED(event);
|
||||
}
|
||||
|
||||
const Style *RelationItem::getAdaptedStyle()
|
||||
const Style *RelationItem::adaptedStyle()
|
||||
{
|
||||
DObject *endAObject = m_diagramSceneModel->getDiagramController()->findElement<DObject>(m_relation->getEndA(), m_diagramSceneModel->getDiagram());
|
||||
DObject *endBObject = m_diagramSceneModel->getDiagramController()->findElement<DObject>(m_relation->getEndB(), m_diagramSceneModel->getDiagram());
|
||||
DObject *endAObject = m_diagramSceneModel->diagramController()->findElement<DObject>(m_relation->endAUid(), m_diagramSceneModel->diagram());
|
||||
DObject *endBObject = m_diagramSceneModel->diagramController()->findElement<DObject>(m_relation->endBUid(), m_diagramSceneModel->diagram());
|
||||
StyledRelation styledRelation(m_relation, endAObject, endBObject);
|
||||
return m_diagramSceneModel->getStyleController()->adaptRelationStyle(styledRelation);
|
||||
return m_diagramSceneModel->styleController()->adaptRelationStyle(styledRelation);
|
||||
}
|
||||
|
||||
QPointF RelationItem::calcEndPoint(const Uid &end, const Uid &otherEnd, int nearestIntermediatePointIndex)
|
||||
{
|
||||
QPointF otherEndPos;
|
||||
if (nearestIntermediatePointIndex >= 0 && nearestIntermediatePointIndex < m_relation->getIntermediatePoints().size()) {
|
||||
if (nearestIntermediatePointIndex >= 0 && nearestIntermediatePointIndex < m_relation->intermediatePoints().size()) {
|
||||
// otherEndPos will not be used
|
||||
} else {
|
||||
DObject *endOtherObject = m_diagramSceneModel->getDiagramController()->findElement<DObject>(otherEnd, m_diagramSceneModel->getDiagram());
|
||||
DObject *endOtherObject = m_diagramSceneModel->diagramController()->findElement<DObject>(otherEnd, m_diagramSceneModel->diagram());
|
||||
QMT_CHECK(endOtherObject);
|
||||
otherEndPos = endOtherObject->getPos();
|
||||
otherEndPos = endOtherObject->pos();
|
||||
}
|
||||
return calcEndPoint(end, otherEndPos, nearestIntermediatePointIndex);
|
||||
}
|
||||
|
||||
QPointF RelationItem::calcEndPoint(const Uid &end, const QPointF &otherEndPos, int nearestIntermediatePointIndex)
|
||||
{
|
||||
QGraphicsItem *endItem = m_diagramSceneModel->getGraphicsItem(end);
|
||||
QGraphicsItem *endItem = m_diagramSceneModel->graphicsItem(end);
|
||||
QMT_CHECK(endItem);
|
||||
IIntersectionable *endObjectItem = dynamic_cast<IIntersectionable *>(endItem);
|
||||
QPointF endPos;
|
||||
if (endObjectItem) {
|
||||
DObject *endObject = m_diagramSceneModel->getDiagramController()->findElement<DObject>(end, m_diagramSceneModel->getDiagram());
|
||||
DObject *endObject = m_diagramSceneModel->diagramController()->findElement<DObject>(end, m_diagramSceneModel->diagram());
|
||||
QMT_CHECK(endObject);
|
||||
bool preferAxis = false;
|
||||
QPointF otherPos;
|
||||
if (nearestIntermediatePointIndex >= 0 && nearestIntermediatePointIndex < m_relation->getIntermediatePoints().size()) {
|
||||
otherPos = m_relation->getIntermediatePoints().at(nearestIntermediatePointIndex).getPos();
|
||||
if (nearestIntermediatePointIndex >= 0 && nearestIntermediatePointIndex < m_relation->intermediatePoints().size()) {
|
||||
otherPos = m_relation->intermediatePoints().at(nearestIntermediatePointIndex).pos();
|
||||
preferAxis = true;
|
||||
} else {
|
||||
otherPos = otherEndPos;
|
||||
}
|
||||
|
||||
bool ok = false;
|
||||
QLineF directLine(endObject->getPos(), otherPos);
|
||||
QLineF directLine(endObject->pos(), otherPos);
|
||||
if (preferAxis) {
|
||||
{
|
||||
QPointF axisDirection = GeometryUtilities::calcPrimaryAxisDirection(directLine);
|
||||
QLineF axis(otherPos, otherPos + axisDirection);
|
||||
QPointF projection = GeometryUtilities::calcProjection(axis, endObject->getPos());
|
||||
QPointF projection = GeometryUtilities::calcProjection(axis, endObject->pos());
|
||||
QLineF projectedLine(projection, otherPos);
|
||||
ok = endObjectItem->intersectShapeWithLine(projectedLine, &endPos);
|
||||
}
|
||||
if (!ok) {
|
||||
QPointF axisDirection = GeometryUtilities::calcSecondaryAxisDirection(directLine);
|
||||
QLineF axis(otherPos, otherPos + axisDirection);
|
||||
QPointF projection = GeometryUtilities::calcProjection(axis, endObject->getPos());
|
||||
QPointF projection = GeometryUtilities::calcProjection(axis, endObject->pos());
|
||||
QLineF projectedLine(projection, otherPos);
|
||||
ok = endObjectItem->intersectShapeWithLine(projectedLine, &endPos);
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
DRelation *getRelation() const { return m_relation; }
|
||||
DRelation *relation() const { return m_relation; }
|
||||
|
||||
public:
|
||||
|
||||
@@ -95,7 +95,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QPointF getHandlePos(int index);
|
||||
QPointF handlePos(int index);
|
||||
|
||||
void insertHandle(int beforeIndex, const QPointF &pos);
|
||||
|
||||
@@ -123,7 +123,7 @@ protected:
|
||||
|
||||
private:
|
||||
|
||||
const Style *getAdaptedStyle();
|
||||
const Style *adaptedStyle();
|
||||
|
||||
QPointF calcEndPoint(const Uid &end, const Uid &otherEnd, int nearestIntermediatePointIndex);
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ void StereotypeDisplayVisitor::setStereotypeController(StereotypeController *ste
|
||||
m_stereotypeController = stereotypeController;
|
||||
}
|
||||
|
||||
StereotypeIcon::Display StereotypeDisplayVisitor::getStereotypeIconDisplay() const
|
||||
StereotypeIcon::Display StereotypeDisplayVisitor::stereotypeIconDisplay() const
|
||||
{
|
||||
switch (m_stereotypeDisplay) {
|
||||
case DObject::STEREOTYPE_NONE:
|
||||
@@ -87,14 +87,14 @@ StereotypeIcon::Display StereotypeDisplayVisitor::getStereotypeIconDisplay() con
|
||||
|
||||
void StereotypeDisplayVisitor::visitDObject(const DObject *object)
|
||||
{
|
||||
DObject::StereotypeDisplay stereotypeDisplay = object->getStereotypeDisplay();
|
||||
m_stereotypeIconId = m_stereotypeController->findStereotypeIconId(m_stereotypeIconElement, object->getStereotypes());
|
||||
DObject::StereotypeDisplay stereotypeDisplay = object->stereotypeDisplay();
|
||||
m_stereotypeIconId = m_stereotypeController->findStereotypeIconId(m_stereotypeIconElement, object->stereotypes());
|
||||
|
||||
if (m_stereotypeIconId.isEmpty() && stereotypeDisplay == DObject::STEREOTYPE_ICON) {
|
||||
stereotypeDisplay = DObject::STEREOTYPE_LABEL;
|
||||
} else if (!m_stereotypeIconId.isEmpty() && stereotypeDisplay == DObject::STEREOTYPE_SMART) {
|
||||
StereotypeIcon stereotypeIcon = m_stereotypeController->findStereotypeIcon(m_stereotypeIconId);
|
||||
StereotypeIcon::Display iconDisplay = stereotypeIcon.getDisplay();
|
||||
StereotypeIcon::Display iconDisplay = stereotypeIcon.display();
|
||||
switch (iconDisplay) {
|
||||
case StereotypeIcon::DISPLAY_NONE:
|
||||
stereotypeDisplay = DObject::STEREOTYPE_NONE;
|
||||
@@ -132,9 +132,9 @@ void StereotypeDisplayVisitor::visitDPackage(const DPackage *package)
|
||||
void StereotypeDisplayVisitor::visitDClass(const DClass *klass)
|
||||
{
|
||||
m_stereotypeIconElement = StereotypeIcon::ELEMENT_CLASS;
|
||||
MClass *modelKlass = m_modelController->findObject<MClass>(klass->getModelUid());
|
||||
MClass *modelKlass = m_modelController->findObject<MClass>(klass->modelUid());
|
||||
bool hasMembers = false;
|
||||
if (!modelKlass->getMembers().isEmpty() && klass->getShowAllMembers()) {
|
||||
if (!modelKlass->members().isEmpty() && klass->showAllMembers()) {
|
||||
hasMembers = true;
|
||||
}
|
||||
m_stereotypeSmartDisplay = hasMembers ? DObject::STEREOTYPE_DECORATION : DObject::STEREOTYPE_ICON;
|
||||
@@ -160,11 +160,11 @@ void StereotypeDisplayVisitor::visitDItem(const DItem *item)
|
||||
m_stereotypeIconElement = StereotypeIcon::ELEMENT_ITEM;
|
||||
m_stereotypeSmartDisplay = DObject::STEREOTYPE_ICON;
|
||||
visitDObject(item);
|
||||
if (m_stereotypeIconId.isEmpty() && !item->getShape().isEmpty()) {
|
||||
m_shapeIconId = m_stereotypeController->findStereotypeIconId(StereotypeIcon::ELEMENT_ITEM, QStringList() << item->getShape());
|
||||
if (m_stereotypeIconId.isEmpty() && !item->shape().isEmpty()) {
|
||||
m_shapeIconId = m_stereotypeController->findStereotypeIconId(StereotypeIcon::ELEMENT_ITEM, QStringList() << item->shape());
|
||||
}
|
||||
if (m_shapeIconId.isEmpty() && !item->getVariety().isEmpty()) {
|
||||
m_shapeIconId = m_stereotypeController->findStereotypeIconId(StereotypeIcon::ELEMENT_ITEM, QStringList() << item->getVariety());
|
||||
if (m_shapeIconId.isEmpty() && !item->variety().isEmpty()) {
|
||||
m_shapeIconId = m_stereotypeController->findStereotypeIconId(StereotypeIcon::ELEMENT_ITEM, QStringList() << item->variety());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -56,13 +56,13 @@ public:
|
||||
|
||||
void setStereotypeController(StereotypeController *stereotypeController);
|
||||
|
||||
DObject::StereotypeDisplay getStereotypeDisplay() const { return m_stereotypeDisplay; }
|
||||
DObject::StereotypeDisplay stereotypeDisplay() const { return m_stereotypeDisplay; }
|
||||
|
||||
StereotypeIcon::Display getStereotypeIconDisplay() const;
|
||||
StereotypeIcon::Display stereotypeIconDisplay() const;
|
||||
|
||||
QString getStereotypeIconId() const { return m_stereotypeIconId; }
|
||||
QString stereotypeIconId() const { return m_stereotypeIconId; }
|
||||
|
||||
QString getShapeIconId() const { return m_shapeIconId; }
|
||||
QString shapeIconId() const { return m_shapeIconId; }
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@@ -115,11 +115,11 @@ void LatchController::mouseMoveEventLatching(QGraphicsSceneMouseEvent *event)
|
||||
return;
|
||||
}
|
||||
|
||||
if (!m_diagramSceneModel->getFocusItem()) {
|
||||
if (!m_diagramSceneModel->focusItem()) {
|
||||
return;
|
||||
}
|
||||
|
||||
ILatchable *palpedLatchable = dynamic_cast<ILatchable *>(m_diagramSceneModel->getFocusItem());
|
||||
ILatchable *palpedLatchable = dynamic_cast<ILatchable *>(m_diagramSceneModel->focusItem());
|
||||
if (!palpedLatchable) {
|
||||
return;
|
||||
}
|
||||
@@ -127,8 +127,8 @@ void LatchController::mouseMoveEventLatching(QGraphicsSceneMouseEvent *event)
|
||||
ILatchable::Action horizAction = ILatchable::MOVE;
|
||||
ILatchable::Action vertAction = ILatchable::MOVE;
|
||||
|
||||
QList<ILatchable::Latch> palpedHorizontals = palpedLatchable->getHorizontalLatches(horizAction, true);
|
||||
QList<ILatchable::Latch> palpedVerticals = palpedLatchable->getVerticalLatches(vertAction, true);
|
||||
QList<ILatchable::Latch> palpedHorizontals = palpedLatchable->horizontalLatches(horizAction, true);
|
||||
QList<ILatchable::Latch> palpedVerticals = palpedLatchable->verticalLatches(vertAction, true);
|
||||
|
||||
qreal horizMinDist = 10.0;
|
||||
ILatchable::Latch bestHorizLatch;
|
||||
@@ -137,10 +137,10 @@ void LatchController::mouseMoveEventLatching(QGraphicsSceneMouseEvent *event)
|
||||
ILatchable::Latch bestVertLatch;
|
||||
bool foundBestVert = false;
|
||||
|
||||
foreach (QGraphicsItem *item, m_diagramSceneModel->getGraphicsItems()) {
|
||||
if (item != m_diagramSceneModel->getFocusItem() && !m_diagramSceneModel->isSelectedItem(item)) {
|
||||
foreach (QGraphicsItem *item, m_diagramSceneModel->graphicsItems()) {
|
||||
if (item != m_diagramSceneModel->focusItem() && !m_diagramSceneModel->isSelectedItem(item)) {
|
||||
if (ILatchable *latchable = dynamic_cast<ILatchable *>(item)) {
|
||||
QList<ILatchable::Latch> horizontals = latchable->getHorizontalLatches(horizAction, false);
|
||||
QList<ILatchable::Latch> horizontals = latchable->horizontalLatches(horizAction, false);
|
||||
foreach (const ILatchable::Latch &palpedLatch, palpedHorizontals) {
|
||||
foreach (const ILatchable::Latch &latch, horizontals) {
|
||||
if (palpedLatch.m_latchType == latch.m_latchType) {
|
||||
@@ -154,7 +154,7 @@ void LatchController::mouseMoveEventLatching(QGraphicsSceneMouseEvent *event)
|
||||
}
|
||||
}
|
||||
}
|
||||
QList<ILatchable::Latch> verticals = latchable->getVerticalLatches(vertAction, false);
|
||||
QList<ILatchable::Latch> verticals = latchable->verticalLatches(vertAction, false);
|
||||
foreach (const ILatchable::Latch &palpedLatch, palpedVerticals) {
|
||||
foreach (const ILatchable::Latch &latch, verticals) {
|
||||
if (palpedLatch.m_latchType == latch.m_latchType) {
|
||||
@@ -226,14 +226,14 @@ void LatchController::mouseReleaseEventLatching(QGraphicsSceneMouseEvent *event)
|
||||
case ILatchable::LEFT:
|
||||
case ILatchable::RIGHT:
|
||||
case ILatchable::HCENTER:
|
||||
foreach (QGraphicsItem *item, m_diagramSceneModel->getSelectedItems()) {
|
||||
DElement *element = m_diagramSceneModel->getElement(item);
|
||||
foreach (QGraphicsItem *item, m_diagramSceneModel->selectedItems()) {
|
||||
DElement *element = m_diagramSceneModel->element(item);
|
||||
if (DObject *selectedObject = dynamic_cast<DObject *>(element)) {
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(selectedObject, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
QPointF newPos = selectedObject->getPos();
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(selectedObject, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
QPointF newPos = selectedObject->pos();
|
||||
newPos.setX(newPos.x() + m_horizontalDist);
|
||||
selectedObject->setPos(newPos);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(selectedObject, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(selectedObject, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -251,14 +251,14 @@ void LatchController::mouseReleaseEventLatching(QGraphicsSceneMouseEvent *event)
|
||||
case ILatchable::TOP:
|
||||
case ILatchable::BOTTOM:
|
||||
case ILatchable::VCENTER:
|
||||
foreach (QGraphicsItem *item, m_diagramSceneModel->getSelectedItems()) {
|
||||
DElement *element = m_diagramSceneModel->getElement(item);
|
||||
foreach (QGraphicsItem *item, m_diagramSceneModel->selectedItems()) {
|
||||
DElement *element = m_diagramSceneModel->element(item);
|
||||
if (DObject *selectedObject = dynamic_cast<DObject *>(element)) {
|
||||
m_diagramSceneModel->getDiagramController()->startUpdateElement(selectedObject, m_diagramSceneModel->getDiagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
QPointF newPos = selectedObject->getPos();
|
||||
m_diagramSceneModel->diagramController()->startUpdateElement(selectedObject, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
||||
QPointF newPos = selectedObject->pos();
|
||||
newPos.setY(newPos.y() + m_verticalDist);
|
||||
selectedObject->setPos(newPos);
|
||||
m_diagramSceneModel->getDiagramController()->finishUpdateElement(selectedObject, m_diagramSceneModel->getDiagram(), false);
|
||||
m_diagramSceneModel->diagramController()->finishUpdateElement(selectedObject, m_diagramSceneModel->diagram(), false);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -58,7 +58,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QString getIdentifier() const { return m_identifier; }
|
||||
QString identifier() const { return m_identifier; }
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@@ -214,11 +214,11 @@ public:
|
||||
}
|
||||
|
||||
if (m_head == ArrowItem::HEAD_OPEN || m_head == ArrowItem::HEAD_TRIANGLE) {
|
||||
m_arrowItem->setPen(style->getLinePen());
|
||||
m_arrowItem->setPen(style->linePen());
|
||||
m_arrowItem->setBrush(QBrush());
|
||||
} else {
|
||||
m_arrowItem->setPen(style->getLinePen());
|
||||
m_arrowItem->setBrush(style->getFillBrush());
|
||||
m_arrowItem->setPen(style->linePen());
|
||||
m_arrowItem->setBrush(style->fillBrush());
|
||||
}
|
||||
|
||||
QPainterPath path;
|
||||
@@ -245,11 +245,11 @@ public:
|
||||
}
|
||||
|
||||
if (m_head == ArrowItem::HEAD_DIAMOND || m_head == ArrowItem::HEAD_DIAMOND_FILLED_TRIANGLE) {
|
||||
m_diamondItem->setPen(style->getLinePen());
|
||||
m_diamondItem->setPen(style->linePen());
|
||||
m_diamondItem->setBrush(QBrush());
|
||||
} else {
|
||||
m_diamondItem->setPen(style->getLinePen());
|
||||
m_diamondItem->setBrush(style->getFillBrush());
|
||||
m_diamondItem->setPen(style->linePen());
|
||||
m_diamondItem->setBrush(style->fillBrush());
|
||||
}
|
||||
|
||||
QPainterPath path;
|
||||
@@ -417,19 +417,19 @@ QPointF ArrowItem::calcPointAtPercent(double percentage) const
|
||||
return m_shaftItem->path().pointAtPercent(percentage);
|
||||
}
|
||||
|
||||
QLineF ArrowItem::getFirstLineSegment() const
|
||||
QLineF ArrowItem::firstLineSegment() const
|
||||
{
|
||||
QMT_CHECK(m_points.size() >= 2);
|
||||
return QLineF(m_points[0], m_points[1]);
|
||||
}
|
||||
|
||||
QLineF ArrowItem::getLastLineSegment() const
|
||||
QLineF ArrowItem::lastLineSegment() const
|
||||
{
|
||||
QMT_CHECK(m_points.size() >= 2);
|
||||
return QLineF(m_points[m_points.size() - 1], m_points[m_points.size() - 2]);
|
||||
}
|
||||
|
||||
double ArrowItem::getStartHeadLength() const
|
||||
double ArrowItem::startHeadLength() const
|
||||
{
|
||||
if (m_startHeadItem) {
|
||||
return m_startHeadItem->calcHeadLength();
|
||||
@@ -437,7 +437,7 @@ double ArrowItem::getStartHeadLength() const
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
double ArrowItem::getEndHeadLength() const
|
||||
double ArrowItem::endHeadLength() const
|
||||
{
|
||||
if (m_endHeadItem) {
|
||||
return m_endHeadItem->calcHeadLength();
|
||||
@@ -457,7 +457,7 @@ void ArrowItem::updateShaft(const Style *style)
|
||||
{
|
||||
QMT_CHECK(m_shaftItem);
|
||||
|
||||
QPen pen(style->getLinePen());
|
||||
QPen pen(style->linePen());
|
||||
if (m_shaft == SHAFT_DASHED) {
|
||||
pen.setDashPattern(QVector<qreal>() << (4.0 / pen.widthF()) << (4.0 / pen.widthF()));
|
||||
}
|
||||
|
||||
@@ -101,13 +101,13 @@ public:
|
||||
|
||||
QPointF calcPointAtPercent(double percentage) const;
|
||||
|
||||
QLineF getFirstLineSegment() const;
|
||||
QLineF firstLineSegment() const;
|
||||
|
||||
QLineF getLastLineSegment() const;
|
||||
QLineF lastLineSegment() const;
|
||||
|
||||
double getStartHeadLength() const;
|
||||
double startHeadLength() const;
|
||||
|
||||
double getEndHeadLength() const;
|
||||
double endHeadLength() const;
|
||||
|
||||
void update(const Style *style);
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ void ContextLabelItem::setContext(const QString &context)
|
||||
}
|
||||
}
|
||||
|
||||
double ContextLabelItem::getHeight() const
|
||||
double ContextLabelItem::height() const
|
||||
{
|
||||
return QFontMetricsF(font()).height();
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
|
||||
void setContext(const QString &context);
|
||||
|
||||
double getHeight() const;
|
||||
double height() const;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -56,8 +56,8 @@ void CustomIconItem::setStereotypeIconId(const QString &stereotypeIconId)
|
||||
{
|
||||
if (m_stereotypeIconId != stereotypeIconId) {
|
||||
m_stereotypeIconId = stereotypeIconId;
|
||||
m_stereotypeIcon = m_diagramSceneModel->getStereotypeController()->findStereotypeIcon(m_stereotypeIconId);
|
||||
m_baseSize = QSizeF(m_stereotypeIcon.getWidth(), m_stereotypeIcon.getHeight());
|
||||
m_stereotypeIcon = m_diagramSceneModel->stereotypeController()->findStereotypeIcon(m_stereotypeIconId);
|
||||
m_baseSize = QSizeF(m_stereotypeIcon.width(), m_stereotypeIcon.height());
|
||||
m_actualSize = m_baseSize;
|
||||
}
|
||||
}
|
||||
@@ -82,21 +82,21 @@ void CustomIconItem::setPen(const QPen &pen)
|
||||
m_pen = pen;
|
||||
}
|
||||
|
||||
double CustomIconItem::getShapeWidth() const
|
||||
double CustomIconItem::shapeWidth() const
|
||||
{
|
||||
return m_stereotypeIcon.getWidth();
|
||||
return m_stereotypeIcon.width();
|
||||
}
|
||||
|
||||
double CustomIconItem::getShapeHeight() const
|
||||
double CustomIconItem::shapeHeight() const
|
||||
{
|
||||
return m_stereotypeIcon.getHeight();
|
||||
return m_stereotypeIcon.height();
|
||||
}
|
||||
|
||||
QRectF CustomIconItem::boundingRect() const
|
||||
{
|
||||
ShapeSizeVisitor visitor(QPointF(0.0, 0.0), QSizeF(m_stereotypeIcon.getWidth(), m_stereotypeIcon.getHeight()), m_baseSize, m_actualSize);
|
||||
m_stereotypeIcon.getIconShape().visitShapes(&visitor);
|
||||
return visitor.getBoundingRect() | childrenBoundingRect();
|
||||
ShapeSizeVisitor visitor(QPointF(0.0, 0.0), QSizeF(m_stereotypeIcon.width(), m_stereotypeIcon.height()), m_baseSize, m_actualSize);
|
||||
m_stereotypeIcon.iconShape().visitShapes(&visitor);
|
||||
return visitor.boundingRect() | childrenBoundingRect();
|
||||
}
|
||||
|
||||
void CustomIconItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
|
||||
@@ -107,8 +107,8 @@ void CustomIconItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *op
|
||||
painter->save();
|
||||
painter->setBrush(m_brush);
|
||||
painter->setPen(m_pen);
|
||||
ShapePaintVisitor visitor(painter, QPointF(0.0, 0.0), QSizeF(m_stereotypeIcon.getWidth(), m_stereotypeIcon.getHeight()), m_baseSize, m_actualSize);
|
||||
m_stereotypeIcon.getIconShape().visitShapes(&visitor);
|
||||
ShapePaintVisitor visitor(painter, QPointF(0.0, 0.0), QSizeF(m_stereotypeIcon.width(), m_stereotypeIcon.height()), m_baseSize, m_actualSize);
|
||||
m_stereotypeIcon.iconShape().visitShapes(&visitor);
|
||||
//painter->setBrush(Qt::NoBrush);
|
||||
//painter->setPen(Qt::red);
|
||||
//painter->drawRect(boundingRect());
|
||||
|
||||
@@ -67,11 +67,11 @@ public:
|
||||
|
||||
void setPen(const QPen &pen);
|
||||
|
||||
StereotypeIcon getStereotypeIcon() const { return m_stereotypeIcon; }
|
||||
StereotypeIcon stereotypeIcon() const { return m_stereotypeIcon; }
|
||||
|
||||
double getShapeWidth() const;
|
||||
double shapeWidth() const;
|
||||
|
||||
double getShapeHeight() const;
|
||||
double shapeHeight() const;
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@@ -209,7 +209,7 @@ void PathSelectionItem::setPointSize(const QSizeF &size)
|
||||
}
|
||||
}
|
||||
|
||||
QList<QPointF> PathSelectionItem::getPoints() const
|
||||
QList<QPointF> PathSelectionItem::points() const
|
||||
{
|
||||
QList<QPointF> points;
|
||||
foreach (GraphicsHandleItem *handle, m_handles) {
|
||||
@@ -288,7 +288,7 @@ void PathSelectionItem::moveHandle(int pointIndex, const QPointF &deltaMove, Han
|
||||
case NONE:
|
||||
{
|
||||
if (handleStatus == PRESS) {
|
||||
m_originalHandlePos = m_windable->getHandlePos(pointIndex);
|
||||
m_originalHandlePos = m_windable->handlePos(pointIndex);
|
||||
}
|
||||
QPointF newPos = m_originalHandlePos + deltaMove;
|
||||
m_windable->setHandlePos(pointIndex, newPos);
|
||||
|
||||
@@ -73,11 +73,11 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QSizeF getPointSize() const { return m_pointSize; }
|
||||
QSizeF pointSize() const { return m_pointSize; }
|
||||
|
||||
void setPointSize(const QSizeF &size);
|
||||
|
||||
QList<QPointF> getPoints() const;
|
||||
QList<QPointF> points() const;
|
||||
|
||||
void setPoints(const QList<QPointF> &points);
|
||||
|
||||
|
||||
@@ -254,8 +254,8 @@ void RectangularSelectionItem::moveHandle(Handle handle, const QPointF &deltaMov
|
||||
Q_UNUSED(handleQualifier);
|
||||
|
||||
if (handleStatus == PRESS) {
|
||||
m_originalResizePos = m_itemResizer->getPos();
|
||||
m_originalResizeRect = m_itemResizer->getRect();
|
||||
m_originalResizePos = m_itemResizer->pos();
|
||||
m_originalResizeRect = m_itemResizer->rect();
|
||||
}
|
||||
|
||||
bool moveable = false;
|
||||
@@ -289,7 +289,7 @@ void RectangularSelectionItem::moveHandle(Handle handle, const QPointF &deltaMov
|
||||
return;
|
||||
}
|
||||
|
||||
QSizeF minimumSize = m_itemResizer->getMinimumSize();
|
||||
QSizeF minimumSize = m_itemResizer->minimumSize();
|
||||
|
||||
QPointF topLeftDelta;
|
||||
QPointF bottomRightDelta;
|
||||
|
||||
@@ -98,21 +98,21 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QRectF getRect() const { return m_rect; }
|
||||
QRectF rect() const { return m_rect; }
|
||||
|
||||
void setRect(const QRectF &rectangle);
|
||||
|
||||
void setRect(qreal x, qreal y, qreal width, qreal height);
|
||||
|
||||
QSizeF getPointSize() const { return m_pointSize; }
|
||||
QSizeF pointSize() const { return m_pointSize; }
|
||||
|
||||
void setPointSize(const QSizeF &size);
|
||||
|
||||
bool getShowBorder() const { return m_showBorder; }
|
||||
bool showBorder() const { return m_showBorder; }
|
||||
|
||||
void setShowBorder(bool showBorder);
|
||||
|
||||
Freedom getFreedom() const { return m_freedom; }
|
||||
Freedom freedom() const { return m_freedom; }
|
||||
|
||||
void setFreedom(Freedom freedom);
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ void RelationStarter::addArrow(const QString &id, ArrowItem::Shaft shaft, ArrowI
|
||||
arrow->setEndHead(endHead);
|
||||
arrow->setPoints(QList<QPointF>() << QPointF(0.0, 10.0) << QPointF(15.0, 0.0));
|
||||
arrow->setPos(6.0, m_arrows.size() * 20.0 + 8.0);
|
||||
arrow->update(m_diagramSceneModel->getStyleController()->getRelationStarterStyle());
|
||||
arrow->update(m_diagramSceneModel->styleController()->relationStarterStyle());
|
||||
m_arrows.append(arrow);
|
||||
m_arrowIds.insert(arrow, id);
|
||||
setRect(0.0, 0.0, 26.0, m_arrows.size() * 20.0 + 6.0);
|
||||
@@ -106,8 +106,8 @@ void RelationStarter::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
||||
m_currentPreviewArrowId = m_arrowIds.value(item);
|
||||
QMT_CHECK(!m_currentPreviewArrowId.isEmpty());
|
||||
m_currentPreviewArrow = new ArrowItem(*item);
|
||||
m_currentPreviewArrow->setPoints(QList<QPointF>() << m_owner->getRelationStartPos() << mapToScene(event->pos()));
|
||||
m_currentPreviewArrow->update(m_diagramSceneModel->getStyleController()->getRelationStarterStyle());
|
||||
m_currentPreviewArrow->setPoints(QList<QPointF>() << m_owner->relationStartPos() << mapToScene(event->pos()));
|
||||
m_currentPreviewArrow->update(m_diagramSceneModel->styleController()->relationStarterStyle());
|
||||
m_currentPreviewArrow->setZValue(PREVIEW_RELATION_ZVALUE);
|
||||
scene()->addItem(m_currentPreviewArrow);
|
||||
setFocus(); // receive keyboard events
|
||||
@@ -141,7 +141,7 @@ void RelationStarter::keyPressEvent(QKeyEvent *event)
|
||||
return;
|
||||
}
|
||||
if (event->key() == Qt::Key_Shift) {
|
||||
QPointF p = m_currentPreviewArrow->getLastLineSegment().p1();
|
||||
QPointF p = m_currentPreviewArrow->lastLineSegment().p1();
|
||||
if (m_currentPreviewArrowIntermediatePoints.isEmpty() || m_currentPreviewArrowIntermediatePoints.last() != p) {
|
||||
m_currentPreviewArrowIntermediatePoints.append(p);
|
||||
// Do not update the preview arrow here because last two points are now identical which looks wired
|
||||
@@ -149,7 +149,7 @@ void RelationStarter::keyPressEvent(QKeyEvent *event)
|
||||
} else if (event->key() == Qt::Key_Control) {
|
||||
if (!m_currentPreviewArrowIntermediatePoints.isEmpty()) {
|
||||
m_currentPreviewArrowIntermediatePoints.removeLast();
|
||||
updateCurrentPreviewArrow(m_currentPreviewArrow->getLastLineSegment().p1());
|
||||
updateCurrentPreviewArrow(m_currentPreviewArrow->lastLineSegment().p1());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -157,9 +157,9 @@ void RelationStarter::keyPressEvent(QKeyEvent *event)
|
||||
void RelationStarter::updateCurrentPreviewArrow(const QPointF &headPoint)
|
||||
{
|
||||
prepareGeometryChange();
|
||||
m_currentPreviewArrow->setPoints(QList<QPointF>() << m_owner->getRelationStartPos()
|
||||
m_currentPreviewArrow->setPoints(QList<QPointF>() << m_owner->relationStartPos()
|
||||
<< m_currentPreviewArrowIntermediatePoints << headPoint);
|
||||
m_currentPreviewArrow->update(m_diagramSceneModel->getStyleController()->getRelationStarterStyle());
|
||||
m_currentPreviewArrow->update(m_diagramSceneModel->styleController()->relationStarterStyle());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -51,9 +51,9 @@ public:
|
||||
~ManagedDiagram();
|
||||
|
||||
public:
|
||||
DiagramSceneModel *getDiagramSceneModel() const { return m_diagramSceneModel.data(); }
|
||||
DiagramSceneModel *diagramSceneModel() const { return m_diagramSceneModel.data(); }
|
||||
|
||||
QString getDiagramName() const { return m_diagramName; }
|
||||
QString diagramName() const { return m_diagramName; }
|
||||
|
||||
void setDiagramName(const QString &name) { m_diagramName = name; }
|
||||
|
||||
@@ -133,7 +133,7 @@ void DiagramsManager::setStereotypeController(StereotypeController *stereotypeCo
|
||||
|
||||
DiagramSceneModel *DiagramsManager::bindDiagramSceneModel(MDiagram *diagram)
|
||||
{
|
||||
if (!m_diagramUidToManagedDiagramMap.contains(diagram->getUid())) {
|
||||
if (!m_diagramUidToManagedDiagramMap.contains(diagram->uid())) {
|
||||
DiagramSceneModel *diagramSceneModel = new DiagramSceneModel();
|
||||
diagramSceneModel->setDiagramController(m_diagramController);
|
||||
diagramSceneModel->setDiagramSceneController(m_diagramSceneController);
|
||||
@@ -141,24 +141,24 @@ DiagramSceneModel *DiagramsManager::bindDiagramSceneModel(MDiagram *diagram)
|
||||
diagramSceneModel->setStereotypeController(m_stereotypeController);
|
||||
diagramSceneModel->setDiagram(diagram);
|
||||
connect(diagramSceneModel, SIGNAL(diagramSceneActivated(const MDiagram*)), this, SIGNAL(diagramActivated(const MDiagram*)));
|
||||
connect(diagramSceneModel, SIGNAL(selectionChanged(const MDiagram*)), this, SIGNAL(diagramSelectionChanged(const MDiagram*)));
|
||||
ManagedDiagram *managedDiagram = new ManagedDiagram(diagramSceneModel, diagram->getName());
|
||||
m_diagramUidToManagedDiagramMap.insert(diagram->getUid(), managedDiagram);
|
||||
connect(diagramSceneModel, SIGNAL(selectionHasChanged(const MDiagram*)), this, SIGNAL(diagramSelectionChanged(const MDiagram*)));
|
||||
ManagedDiagram *managedDiagram = new ManagedDiagram(diagramSceneModel, diagram->name());
|
||||
m_diagramUidToManagedDiagramMap.insert(diagram->uid(), managedDiagram);
|
||||
}
|
||||
return getDiagramSceneModel(diagram);
|
||||
return diagramSceneModel(diagram);
|
||||
}
|
||||
|
||||
DiagramSceneModel *DiagramsManager::getDiagramSceneModel(const MDiagram *diagram) const
|
||||
DiagramSceneModel *DiagramsManager::diagramSceneModel(const MDiagram *diagram) const
|
||||
{
|
||||
const ManagedDiagram *managedDiagram = m_diagramUidToManagedDiagramMap.value(diagram->getUid());
|
||||
const ManagedDiagram *managedDiagram = m_diagramUidToManagedDiagramMap.value(diagram->uid());
|
||||
QMT_CHECK(managedDiagram);
|
||||
return managedDiagram->getDiagramSceneModel();
|
||||
return managedDiagram->diagramSceneModel();
|
||||
}
|
||||
|
||||
void DiagramsManager::unbindDiagramSceneModel(const MDiagram *diagram)
|
||||
{
|
||||
QMT_CHECK(diagram);
|
||||
ManagedDiagram *managedDiagram = m_diagramUidToManagedDiagramMap.take(diagram->getUid());
|
||||
ManagedDiagram *managedDiagram = m_diagramUidToManagedDiagramMap.take(diagram->uid());
|
||||
QMT_CHECK(managedDiagram);
|
||||
delete managedDiagram;
|
||||
}
|
||||
@@ -173,7 +173,7 @@ void DiagramsManager::openDiagram(MDiagram *diagram)
|
||||
void DiagramsManager::removeDiagram(const MDiagram *diagram)
|
||||
{
|
||||
if (diagram) {
|
||||
ManagedDiagram *managedDiagram = m_diagramUidToManagedDiagramMap.value(diagram->getUid());
|
||||
ManagedDiagram *managedDiagram = m_diagramUidToManagedDiagramMap.value(diagram->uid());
|
||||
if (managedDiagram) {
|
||||
if (m_diagramsView) {
|
||||
// closeDiagram() must call unbindDiagramSceneModel()
|
||||
@@ -196,12 +196,12 @@ void DiagramsManager::removeAllDiagrams()
|
||||
void DiagramsManager::onDataChanged(const QModelIndex &topleft, const QModelIndex &bottomright)
|
||||
{
|
||||
for (int row = topleft.row(); row <= bottomright.row(); ++row) {
|
||||
QModelIndex index = m_model->index(row, 0, topleft.parent());
|
||||
MDiagram *diagram = dynamic_cast<MDiagram *>(m_model->getElement(index));
|
||||
QModelIndex index = m_model->QStandardItemModel::index(row, 0, topleft.parent());
|
||||
MDiagram *diagram = dynamic_cast<MDiagram *>(m_model->element(index));
|
||||
if (diagram) {
|
||||
ManagedDiagram *managedDiagram = m_diagramUidToManagedDiagramMap.value(diagram->getUid());
|
||||
if (managedDiagram && managedDiagram->getDiagramName() != diagram->getName()) {
|
||||
managedDiagram->setDiagramName(diagram->getName());
|
||||
ManagedDiagram *managedDiagram = m_diagramUidToManagedDiagramMap.value(diagram->uid());
|
||||
if (managedDiagram && managedDiagram->diagramName() != diagram->name()) {
|
||||
managedDiagram->setDiagramName(diagram->name());
|
||||
if (m_diagramsView) {
|
||||
m_diagramsView->onDiagramRenamed(diagram);
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ public:
|
||||
|
||||
DiagramSceneModel *bindDiagramSceneModel(MDiagram *diagram);
|
||||
|
||||
DiagramSceneModel *getDiagramSceneModel(const MDiagram *diagram) const;
|
||||
DiagramSceneModel *diagramSceneModel(const MDiagram *diagram) const;
|
||||
|
||||
void unbindDiagramSceneModel(const MDiagram *diagram);
|
||||
|
||||
|
||||
@@ -57,21 +57,21 @@ void SceneInspector::setDiagramsManager(DiagramsManager *diagramsManager)
|
||||
m_diagramsManager = diagramsManager;
|
||||
}
|
||||
|
||||
QSizeF SceneInspector::getRasterSize() const
|
||||
QSizeF SceneInspector::rasterSize() const
|
||||
{
|
||||
return QSizeF(RASTER_WIDTH, RASTER_HEIGHT);
|
||||
}
|
||||
|
||||
QSizeF SceneInspector::getMinimalSize(const DElement *element, const MDiagram *diagram) const
|
||||
QSizeF SceneInspector::minimalSize(const DElement *element, const MDiagram *diagram) const
|
||||
{
|
||||
DiagramSceneModel *diagramSceneModel = m_diagramsManager->getDiagramSceneModel(diagram);
|
||||
DiagramSceneModel *diagramSceneModel = m_diagramsManager->diagramSceneModel(diagram);
|
||||
QMT_CHECK(diagramSceneModel);
|
||||
if (diagramSceneModel) {
|
||||
const QGraphicsItem *item = diagramSceneModel->getGraphicsItem(const_cast<DElement *>(element));
|
||||
const QGraphicsItem *item = diagramSceneModel->graphicsItem(const_cast<DElement *>(element));
|
||||
QMT_CHECK(item);
|
||||
if (item) {
|
||||
if (const IResizable *resizable = dynamic_cast<const IResizable *>(item)) {
|
||||
return resizable->getMinimumSize();
|
||||
return resizable->minimumSize();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -79,12 +79,12 @@ QSizeF SceneInspector::getMinimalSize(const DElement *element, const MDiagram *d
|
||||
return QSizeF();
|
||||
}
|
||||
|
||||
IMoveable *SceneInspector::getMoveable(const DElement *element, const MDiagram *diagram) const
|
||||
IMoveable *SceneInspector::moveable(const DElement *element, const MDiagram *diagram) const
|
||||
{
|
||||
DiagramSceneModel *diagramSceneModel = m_diagramsManager->getDiagramSceneModel(diagram);
|
||||
DiagramSceneModel *diagramSceneModel = m_diagramsManager->diagramSceneModel(diagram);
|
||||
QMT_CHECK(diagramSceneModel);
|
||||
if (diagramSceneModel) {
|
||||
QGraphicsItem *item = diagramSceneModel->getGraphicsItem(const_cast<DElement *>(element));
|
||||
QGraphicsItem *item = diagramSceneModel->graphicsItem(const_cast<DElement *>(element));
|
||||
QMT_CHECK(item);
|
||||
if (item) {
|
||||
if (IMoveable *moveable = dynamic_cast<IMoveable *>(item)) {
|
||||
@@ -96,12 +96,12 @@ IMoveable *SceneInspector::getMoveable(const DElement *element, const MDiagram *
|
||||
return 0;
|
||||
}
|
||||
|
||||
IResizable *SceneInspector::getResizable(const DElement *element, const MDiagram *diagram) const
|
||||
IResizable *SceneInspector::resizable(const DElement *element, const MDiagram *diagram) const
|
||||
{
|
||||
DiagramSceneModel *diagramSceneModel = m_diagramsManager->getDiagramSceneModel(diagram);
|
||||
DiagramSceneModel *diagramSceneModel = m_diagramsManager->diagramSceneModel(diagram);
|
||||
QMT_CHECK(diagramSceneModel);
|
||||
if (diagramSceneModel) {
|
||||
QGraphicsItem *item = diagramSceneModel->getGraphicsItem(const_cast<DElement *>(element));
|
||||
QGraphicsItem *item = diagramSceneModel->graphicsItem(const_cast<DElement *>(element));
|
||||
QMT_CHECK(item);
|
||||
if (item) {
|
||||
if (IResizable *resizeable = dynamic_cast<IResizable *>(item)) {
|
||||
|
||||
@@ -53,13 +53,13 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QSizeF getRasterSize() const;
|
||||
QSizeF rasterSize() const;
|
||||
|
||||
QSizeF getMinimalSize(const DElement *element, const MDiagram *diagram) const;
|
||||
QSizeF minimalSize(const DElement *element, const MDiagram *diagram) const;
|
||||
|
||||
IMoveable *getMoveable(const DElement *element, const MDiagram *diagram) const;
|
||||
IMoveable *moveable(const DElement *element, const MDiagram *diagram) const;
|
||||
|
||||
IResizable *getResizable(const DElement *element, const MDiagram *diagram) const;
|
||||
IResizable *resizable(const DElement *element, const MDiagram *diagram) const;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -64,14 +64,14 @@ void DiagramsView::setDiagramsManager(DiagramsManager *diagramsManager)
|
||||
void DiagramsView::openDiagram(MDiagram *diagram)
|
||||
{
|
||||
QMT_CHECK(diagram);
|
||||
DiagramView *diagramView = m_diagramViews.value(diagram->getUid());
|
||||
DiagramView *diagramView = m_diagramViews.value(diagram->uid());
|
||||
if (!diagramView) {
|
||||
DiagramSceneModel *diagramSceneModel = m_diagramsManager->bindDiagramSceneModel(diagram);
|
||||
DiagramView *diagramView = new DiagramView(this);
|
||||
diagramView->setDiagramSceneModel(diagramSceneModel);
|
||||
int tabIndex = addTab(diagramView, diagram->getName());
|
||||
int tabIndex = addTab(diagramView, diagram->name());
|
||||
setCurrentIndex(tabIndex);
|
||||
m_diagramViews.insert(diagram->getUid(), diagramView);
|
||||
m_diagramViews.insert(diagram->uid(), diagramView);
|
||||
} else {
|
||||
setCurrentWidget(diagramView);
|
||||
}
|
||||
@@ -84,11 +84,11 @@ void DiagramsView::closeDiagram(const MDiagram *diagram)
|
||||
return;
|
||||
}
|
||||
|
||||
DiagramView *diagramView = m_diagramViews.value(diagram->getUid());
|
||||
DiagramView *diagramView = m_diagramViews.value(diagram->uid());
|
||||
if (diagramView) {
|
||||
removeTab(indexOf(diagramView));
|
||||
delete diagramView;
|
||||
m_diagramViews.remove(diagram->getUid());
|
||||
m_diagramViews.remove(diagram->uid());
|
||||
}
|
||||
emit someDiagramOpened(!m_diagramViews.isEmpty());
|
||||
}
|
||||
@@ -108,12 +108,12 @@ void DiagramsView::closeAllDiagrams()
|
||||
|
||||
void DiagramsView::onCurrentChanged(int tabIndex)
|
||||
{
|
||||
emit currentDiagramChanged(getDiagram(tabIndex));
|
||||
emit currentDiagramChanged(diagram(tabIndex));
|
||||
}
|
||||
|
||||
void DiagramsView::onTabCloseRequested(int tabIndex)
|
||||
{
|
||||
emit diagramCloseRequested(getDiagram(tabIndex));
|
||||
emit diagramCloseRequested(diagram(tabIndex));
|
||||
}
|
||||
|
||||
void DiagramsView::onDiagramRenamed(const MDiagram *diagram)
|
||||
@@ -121,24 +121,24 @@ void DiagramsView::onDiagramRenamed(const MDiagram *diagram)
|
||||
if (!diagram) {
|
||||
return;
|
||||
}
|
||||
DiagramView *diagramView = m_diagramViews.value(diagram->getUid());
|
||||
DiagramView *diagramView = m_diagramViews.value(diagram->uid());
|
||||
if (diagramView) {
|
||||
setTabText(indexOf(diagramView), diagram->getName());
|
||||
setTabText(indexOf(diagramView), diagram->name());
|
||||
}
|
||||
}
|
||||
|
||||
MDiagram *DiagramsView::getDiagram(int tabIndex) const
|
||||
MDiagram *DiagramsView::diagram(int tabIndex) const
|
||||
{
|
||||
DiagramView *diagramView = dynamic_cast<DiagramView *>(widget(tabIndex));
|
||||
return getDiagram(diagramView);
|
||||
return diagram(diagramView);
|
||||
}
|
||||
|
||||
MDiagram *DiagramsView::getDiagram(DiagramView *diagramView) const
|
||||
MDiagram *DiagramsView::diagram(DiagramView *diagramView) const
|
||||
{
|
||||
if (!diagramView || diagramView->getDiagramSceneModel()) {
|
||||
if (!diagramView || diagramView->diagramSceneModel()) {
|
||||
return 0;
|
||||
}
|
||||
return diagramView->getDiagramSceneModel()->getDiagram();
|
||||
return diagramView->diagramSceneModel()->diagram();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -90,9 +90,9 @@ private slots:
|
||||
|
||||
private:
|
||||
|
||||
MDiagram *getDiagram(int tabIndex) const;
|
||||
MDiagram *diagram(int tabIndex) const;
|
||||
|
||||
MDiagram *getDiagram(DiagramView * diagramView) const;
|
||||
MDiagram *diagram(DiagramView * diagramView) const;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ DiagramView::~DiagramView()
|
||||
{
|
||||
}
|
||||
|
||||
DiagramSceneModel *DiagramView::getDiagramSceneModel() const
|
||||
DiagramSceneModel *DiagramView::diagramSceneModel() const
|
||||
{
|
||||
return m_diagramSceneModel;
|
||||
}
|
||||
@@ -68,7 +68,7 @@ void DiagramView::setDiagramSceneModel(DiagramSceneModel *diagramSceneModel)
|
||||
setScene(0);
|
||||
m_diagramSceneModel = diagramSceneModel;
|
||||
if (diagramSceneModel)
|
||||
setScene(m_diagramSceneModel->getGraphicsScene());
|
||||
setScene(m_diagramSceneModel->graphicsScene());
|
||||
}
|
||||
|
||||
void DiagramView::dragEnterEvent(QDragEnterEvent *event)
|
||||
@@ -80,7 +80,7 @@ void DiagramView::dragEnterEvent(QDragEnterEvent *event)
|
||||
QString key;
|
||||
dataStream >> key;
|
||||
if (!key.isEmpty()) {
|
||||
if (m_diagramSceneModel->getDiagramSceneController()->isAddingAllowed(Uid(key), m_diagramSceneModel->getDiagram())) {
|
||||
if (m_diagramSceneModel->diagramSceneController()->isAddingAllowed(Uid(key), m_diagramSceneModel->diagram())) {
|
||||
accept = true;
|
||||
}
|
||||
}
|
||||
@@ -122,8 +122,8 @@ void DiagramView::dropEvent(QDropEvent *event)
|
||||
QString key;
|
||||
dataStream >> key;
|
||||
if (!key.isEmpty()) {
|
||||
if (m_diagramSceneModel->getDiagramSceneController()->isAddingAllowed(Uid(key), m_diagramSceneModel->getDiagram())) {
|
||||
m_diagramSceneModel->getDiagramSceneController()->addExistingModelElement(Uid(key), mapToScene(event->pos()), m_diagramSceneModel->getDiagram());
|
||||
if (m_diagramSceneModel->diagramSceneController()->isAddingAllowed(Uid(key), m_diagramSceneModel->diagram())) {
|
||||
m_diagramSceneModel->diagramSceneController()->addExistingModelElement(Uid(key), mapToScene(event->pos()), m_diagramSceneModel->diagram());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -137,7 +137,7 @@ void DiagramView::dropEvent(QDropEvent *event)
|
||||
dataStream >> newElementId >> name >> stereotype;
|
||||
if (!newElementId.isEmpty()) {
|
||||
QPointF pos = mapToScene(event->pos());
|
||||
m_diagramSceneModel->getDiagramSceneController()->dropNewElement(newElementId, name, stereotype, m_diagramSceneModel->findTopmostElement(pos), pos, m_diagramSceneModel->getDiagram());
|
||||
m_diagramSceneModel->diagramSceneController()->dropNewElement(newElementId, name, stereotype, m_diagramSceneModel->findTopmostElement(pos), pos, m_diagramSceneModel->diagram());
|
||||
}
|
||||
}
|
||||
event->accept();
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
DiagramSceneModel *getDiagramSceneModel() const;
|
||||
DiagramSceneModel *diagramSceneModel() const;
|
||||
|
||||
void setDiagramSceneModel(DiagramSceneModel *diagramSceneModel);
|
||||
|
||||
|
||||
@@ -60,14 +60,14 @@ void StackedDiagramsView::setDiagramsManager(DiagramsManager *diagramsManager)
|
||||
void StackedDiagramsView::openDiagram(MDiagram *diagram)
|
||||
{
|
||||
QMT_CHECK(diagram);
|
||||
DiagramView *diagramView = m_diagramViews.value(diagram->getUid());
|
||||
DiagramView *diagramView = m_diagramViews.value(diagram->uid());
|
||||
if (!diagramView) {
|
||||
DiagramSceneModel *diagramSceneModel = m_diagramsManager->bindDiagramSceneModel(diagram);
|
||||
DiagramView *diagramView = new DiagramView(this);
|
||||
diagramView->setDiagramSceneModel(diagramSceneModel);
|
||||
int tabIndex = addWidget(diagramView);
|
||||
setCurrentIndex(tabIndex);
|
||||
m_diagramViews.insert(diagram->getUid(), diagramView);
|
||||
m_diagramViews.insert(diagram->uid(), diagramView);
|
||||
} else {
|
||||
setCurrentWidget(diagramView);
|
||||
}
|
||||
@@ -80,11 +80,11 @@ void StackedDiagramsView::closeDiagram(const MDiagram *diagram)
|
||||
return;
|
||||
}
|
||||
|
||||
DiagramView *diagramView = m_diagramViews.value(diagram->getUid());
|
||||
DiagramView *diagramView = m_diagramViews.value(diagram->uid());
|
||||
if (diagramView) {
|
||||
removeWidget(diagramView);
|
||||
delete diagramView;
|
||||
m_diagramViews.remove(diagram->getUid());
|
||||
m_diagramViews.remove(diagram->uid());
|
||||
}
|
||||
emit someDiagramOpened(!m_diagramViews.isEmpty());
|
||||
}
|
||||
@@ -104,7 +104,7 @@ void StackedDiagramsView::closeAllDiagrams()
|
||||
|
||||
void StackedDiagramsView::onCurrentChanged(int tabIndex)
|
||||
{
|
||||
emit currentDiagramChanged(getDiagram(tabIndex));
|
||||
emit currentDiagramChanged(diagram(tabIndex));
|
||||
}
|
||||
|
||||
void StackedDiagramsView::onDiagramRenamed(const MDiagram *diagram)
|
||||
@@ -114,18 +114,18 @@ void StackedDiagramsView::onDiagramRenamed(const MDiagram *diagram)
|
||||
// nothing to do!
|
||||
}
|
||||
|
||||
MDiagram *StackedDiagramsView::getDiagram(int tabIndex) const
|
||||
MDiagram *StackedDiagramsView::diagram(int tabIndex) const
|
||||
{
|
||||
DiagramView *diagramView = dynamic_cast<DiagramView *>(widget(tabIndex));
|
||||
return getDiagram(diagramView);
|
||||
return diagram(diagramView);
|
||||
}
|
||||
|
||||
MDiagram *StackedDiagramsView::getDiagram(DiagramView *diagramView) const
|
||||
MDiagram *StackedDiagramsView::diagram(DiagramView *diagramView) const
|
||||
{
|
||||
if (!diagramView || !diagramView->getDiagramSceneModel()) {
|
||||
if (!diagramView || !diagramView->diagramSceneModel()) {
|
||||
return 0;
|
||||
}
|
||||
return diagramView->getDiagramSceneModel()->getDiagram();
|
||||
return diagramView->diagramSceneModel()->diagram();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -88,9 +88,9 @@ private slots:
|
||||
|
||||
private:
|
||||
|
||||
MDiagram *getDiagram(int tabIndex) const;
|
||||
MDiagram *diagram(int tabIndex) const;
|
||||
|
||||
MDiagram *getDiagram(DiagramView * diagramView) const;
|
||||
MDiagram *diagram(DiagramView * diagramView) const;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -149,7 +149,7 @@ bool DocumentController::isDiagramClipboardEmpty() const
|
||||
|
||||
bool DocumentController::hasDiagramSelection(const MDiagram *diagram) const
|
||||
{
|
||||
return m_diagramsManager->getDiagramSceneModel(diagram)->hasSelection();
|
||||
return m_diagramsManager->diagramSceneModel(diagram)->hasSelection();
|
||||
}
|
||||
|
||||
void DocumentController::cutFromModel(const MSelection &selection)
|
||||
@@ -160,7 +160,7 @@ void DocumentController::cutFromModel(const MSelection &selection)
|
||||
|
||||
void DocumentController::cutFromDiagram(MDiagram *diagram)
|
||||
{
|
||||
*m_diagramClipboard = m_diagramController->cutElements(m_diagramsManager->getDiagramSceneModel(diagram)->getSelectedElements(), diagram);
|
||||
*m_diagramClipboard = m_diagramController->cutElements(m_diagramsManager->diagramSceneModel(diagram)->selectedElements(), diagram);
|
||||
emit diagramClipboardChanged(isDiagramClipboardEmpty());
|
||||
}
|
||||
|
||||
@@ -172,13 +172,13 @@ void DocumentController::copyFromModel(const MSelection &selection)
|
||||
|
||||
void DocumentController::copyFromDiagram(const qmt::MDiagram *diagram)
|
||||
{
|
||||
*m_diagramClipboard = m_diagramController->copyElements(m_diagramsManager->getDiagramSceneModel(diagram)->getSelectedElements(), diagram);
|
||||
*m_diagramClipboard = m_diagramController->copyElements(m_diagramsManager->diagramSceneModel(diagram)->selectedElements(), diagram);
|
||||
emit diagramClipboardChanged(isDiagramClipboardEmpty());
|
||||
}
|
||||
|
||||
void DocumentController::copyDiagram(const MDiagram *diagram)
|
||||
{
|
||||
m_diagramsManager->getDiagramSceneModel(diagram)->copyToClipboard();
|
||||
m_diagramsManager->diagramSceneModel(diagram)->copyToClipboard();
|
||||
}
|
||||
|
||||
void DocumentController::pasteIntoModel(MObject *modelObject)
|
||||
@@ -200,20 +200,20 @@ void DocumentController::deleteFromModel(const MSelection &selection)
|
||||
|
||||
void DocumentController::deleteFromDiagram(MDiagram *diagram)
|
||||
{
|
||||
if (m_diagramsManager->getDiagramSceneModel(diagram)->hasSelection()) {
|
||||
DSelection dselection = m_diagramsManager->getDiagramSceneModel(diagram)->getSelectedElements();
|
||||
if (m_diagramsManager->diagramSceneModel(diagram)->hasSelection()) {
|
||||
DSelection dselection = m_diagramsManager->diagramSceneModel(diagram)->selectedElements();
|
||||
m_diagramSceneController->deleteFromDiagram(dselection, diagram);
|
||||
}
|
||||
}
|
||||
|
||||
void DocumentController::removeFromDiagram(MDiagram *diagram)
|
||||
{
|
||||
m_diagramController->deleteElements(m_diagramsManager->getDiagramSceneModel(diagram)->getSelectedElements(), diagram);
|
||||
m_diagramController->deleteElements(m_diagramsManager->diagramSceneModel(diagram)->selectedElements(), diagram);
|
||||
}
|
||||
|
||||
void DocumentController::selectAllOnDiagram(MDiagram *diagram)
|
||||
{
|
||||
m_diagramsManager->getDiagramSceneModel(diagram)->selectAllElements();
|
||||
m_diagramsManager->diagramSceneModel(diagram)->selectAllElements();
|
||||
}
|
||||
|
||||
MPackage *DocumentController::createNewPackage(MPackage *parent)
|
||||
@@ -243,8 +243,8 @@ MComponent *DocumentController::createNewComponent(MPackage *parent)
|
||||
MCanvasDiagram *DocumentController::createNewCanvasDiagram(MPackage *parent)
|
||||
{
|
||||
MCanvasDiagram *newDiagram = new MCanvasDiagram();
|
||||
if (!m_diagramSceneController->findDiagramBySearchId(parent, parent->getName())) {
|
||||
newDiagram->setName(parent->getName());
|
||||
if (!m_diagramSceneController->findDiagramBySearchId(parent, parent->name())) {
|
||||
newDiagram->setName(parent->name());
|
||||
} else {
|
||||
newDiagram->setName(tr("New Diagram"));
|
||||
}
|
||||
@@ -255,8 +255,8 @@ MCanvasDiagram *DocumentController::createNewCanvasDiagram(MPackage *parent)
|
||||
MDiagram *DocumentController::findRootDiagram()
|
||||
{
|
||||
FindRootDiagramVisitor visitor;
|
||||
m_modelController->getRootPackage()->accept(&visitor);
|
||||
MDiagram *rootDiagram = visitor.getDiagram();
|
||||
m_modelController->rootPackage()->accept(&visitor);
|
||||
MDiagram *rootDiagram = visitor.diagram();
|
||||
return rootDiagram;
|
||||
}
|
||||
|
||||
@@ -264,10 +264,10 @@ MDiagram *DocumentController::findOrCreateRootDiagram()
|
||||
{
|
||||
MDiagram *rootDiagram = findRootDiagram();
|
||||
if (!rootDiagram) {
|
||||
rootDiagram = createNewCanvasDiagram(m_modelController->getRootPackage());
|
||||
rootDiagram = createNewCanvasDiagram(m_modelController->rootPackage());
|
||||
m_modelController->startUpdateObject(rootDiagram);
|
||||
if (m_projectController->getProject()->hasFileName()) {
|
||||
rootDiagram->setName(NameController::convertFileNameToElementName(m_projectController->getProject()->getFileName()));
|
||||
if (m_projectController->project()->hasFileName()) {
|
||||
rootDiagram->setName(NameController::convertFileNameToElementName(m_projectController->project()->fileName()));
|
||||
}
|
||||
m_modelController->finishUpdateObject(rootDiagram, false);
|
||||
}
|
||||
@@ -284,7 +284,7 @@ void DocumentController::createNewProject(const QString &fileName)
|
||||
m_projectController->newProject(fileName);
|
||||
|
||||
m_treeModel->setModelController(m_modelController);
|
||||
m_modelController->setRootPackage(m_projectController->getProject()->getRootPackage());
|
||||
m_modelController->setRootPackage(m_projectController->project()->rootPackage());
|
||||
}
|
||||
|
||||
void DocumentController::loadProject(const QString &fileName)
|
||||
@@ -298,7 +298,7 @@ void DocumentController::loadProject(const QString &fileName)
|
||||
m_projectController->load();
|
||||
|
||||
m_treeModel->setModelController(m_modelController);
|
||||
m_modelController->setRootPackage(m_projectController->getProject()->getRootPackage());
|
||||
m_modelController->setRootPackage(m_projectController->project()->rootPackage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -78,29 +78,29 @@ signals:
|
||||
|
||||
public:
|
||||
|
||||
ProjectController *getProjectController() const { return m_projectController; }
|
||||
ProjectController *projectController() const { return m_projectController; }
|
||||
|
||||
UndoController *getUndoController() const { return m_undoController; }
|
||||
UndoController *undoController() const { return m_undoController; }
|
||||
|
||||
ModelController *getModelController() const { return m_modelController; }
|
||||
ModelController *modelController() const { return m_modelController; }
|
||||
|
||||
DiagramController *getDiagramController() const { return m_diagramController; }
|
||||
DiagramController *diagramController() const { return m_diagramController; }
|
||||
|
||||
DiagramSceneController *getDiagramSceneController() const { return m_diagramSceneController; }
|
||||
DiagramSceneController *diagramSceneController() const { return m_diagramSceneController; }
|
||||
|
||||
StyleController *getStyleController() const { return m_styleController; }
|
||||
StyleController *styleController() const { return m_styleController; }
|
||||
|
||||
StereotypeController *getStereotypeController() const { return m_stereotypeController; }
|
||||
StereotypeController *stereotypeController() const { return m_stereotypeController; }
|
||||
|
||||
ConfigController *getConfigController() const { return m_configController; }
|
||||
ConfigController *configController() const { return m_configController; }
|
||||
|
||||
TreeModel *getTreeModel() const { return m_treeModel; }
|
||||
TreeModel *treeModel() const { return m_treeModel; }
|
||||
|
||||
SortedTreeModel *getSortedTreeModel() const { return m_sortedTreeModel; }
|
||||
SortedTreeModel *sortedTreeModel() const { return m_sortedTreeModel; }
|
||||
|
||||
DiagramsManager *getDiagramsManager() const { return m_diagramsManager; }
|
||||
DiagramsManager *diagramsManager() const { return m_diagramsManager; }
|
||||
|
||||
SceneInspector *getSceneInspector() const { return m_sceneInspector; }
|
||||
SceneInspector *sceneInspector() const { return m_sceneInspector; }
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QString getId() const { return m_id; }
|
||||
QString id() const { return m_id; }
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -33,8 +33,8 @@
|
||||
|
||||
namespace qmt {
|
||||
|
||||
Exception::Exception(const QString &errMsg)
|
||||
: m_errorMessage(errMsg)
|
||||
Exception::Exception(const QString &errorMessage)
|
||||
: m_errorMessage(errorMessage)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -39,11 +39,11 @@ namespace qmt {
|
||||
class Exception
|
||||
{
|
||||
public:
|
||||
Exception(const QString &errMsg);
|
||||
Exception(const QString &errorMessage);
|
||||
|
||||
QString getErrorMsg() const { return m_errorMessage; }
|
||||
QString errorMessage() const { return m_errorMessage; }
|
||||
|
||||
void setErrorMsg(const QString &errMsg) { m_errorMessage = errMsg; }
|
||||
void setErrorMessage(const QString &errorMessage) { m_errorMessage = errorMessage; }
|
||||
|
||||
private:
|
||||
QString m_errorMessage;
|
||||
|
||||
@@ -45,12 +45,12 @@ public:
|
||||
|
||||
explicit Handle(const Uid &uid) : m_uid(uid), m_target(0) { }
|
||||
|
||||
explicit Handle(T *t) : m_uid(t ? t->getUid() : Uid()), m_target(t) { }
|
||||
explicit Handle(T *t) : m_uid(t ? t->uid() : Uid()), m_target(t) { }
|
||||
|
||||
Handle(const Handle &rhs) : m_uid(rhs.m_uid), m_target(rhs.m_target) { }
|
||||
|
||||
template<class U>
|
||||
Handle(const Handle<U> &rhs) : m_uid(rhs.getUid()), m_target(rhs.getTarget()) { }
|
||||
Handle(const Handle<U> &rhs) : m_uid(rhs.uid()), m_target(rhs.target()) { }
|
||||
|
||||
public:
|
||||
|
||||
@@ -58,13 +58,13 @@ public:
|
||||
|
||||
bool hasTarget() const { return m_target != 0; }
|
||||
|
||||
Uid getUid() const { return m_uid; }
|
||||
Uid uid() const { return m_uid; }
|
||||
|
||||
T *getTarget() const { return m_target; }
|
||||
T *target() const { return m_target; }
|
||||
|
||||
void setUid(const Uid &uid) { QMT_CHECK(m_target != 0 ? (m_target->getUid() == uid) : true); m_uid = uid; }
|
||||
void setUid(const Uid &uid) { QMT_CHECK(m_target != 0 ? (m_target->uid() == uid) : true); m_uid = uid; }
|
||||
|
||||
void setTarget(T *t) { m_uid = t ? t->getUid() : Uid(); m_target = t; }
|
||||
void setTarget(T *t) { m_uid = t ? t->uid() : Uid(); m_target = t; }
|
||||
|
||||
void clear() { m_uid = Uid(); m_target = 0; }
|
||||
|
||||
@@ -78,13 +78,13 @@ private:
|
||||
template<class T>
|
||||
inline int qHash(const Handle<T> &handle)
|
||||
{
|
||||
return qHash(handle.getUid());
|
||||
return qHash(handle.uid());
|
||||
}
|
||||
|
||||
template<class T, class U>
|
||||
bool operator==(const Handle<T> &lhs, const Handle<U> &rhs)
|
||||
{
|
||||
return lhs.getUid() == rhs.getUid();
|
||||
return lhs.uid() == rhs.uid();
|
||||
}
|
||||
|
||||
template<class T>
|
||||
@@ -97,9 +97,9 @@ template<class T, class U>
|
||||
Handle<T> handle_dynamic_cast(const Handle<U> &handle)
|
||||
{
|
||||
if (!handle.hasTarget()) {
|
||||
return Handle<T>(handle.getUid());
|
||||
return Handle<T>(handle.uid());
|
||||
}
|
||||
return Handle<T>(dynamic_cast<T *>(handle.getTarget()));
|
||||
return Handle<T>(dynamic_cast<T *>(handle.target()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ public:
|
||||
bool contains(const Uid &uid) const
|
||||
{
|
||||
foreach (const Handle<T> &handle, m_handleList) {
|
||||
if (handle.getUid() == uid) {
|
||||
if (handle.uid() == uid) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -109,14 +109,14 @@ public:
|
||||
bool contains(const T *t) const
|
||||
{
|
||||
QMT_CHECK(t);
|
||||
return contains(t->getUid());
|
||||
return contains(t->uid());
|
||||
}
|
||||
|
||||
T *find(const Uid &uid) const
|
||||
{
|
||||
foreach (const Handle<T> &handle, m_handleList) {
|
||||
if (handle.getUid() == uid) {
|
||||
return handle.getTarget();
|
||||
if (handle.uid() == uid) {
|
||||
return handle.target();
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
@@ -125,7 +125,7 @@ public:
|
||||
T *at(int index) const
|
||||
{
|
||||
QMT_CHECK(index >= 0 && index < m_handleList.size());
|
||||
return m_handleList.at(index).getTarget();
|
||||
return m_handleList.at(index).target();
|
||||
}
|
||||
|
||||
T *at(int index)
|
||||
@@ -138,7 +138,7 @@ public:
|
||||
{
|
||||
int index = 0;
|
||||
foreach (const Handle<T> &handle, m_handleList) {
|
||||
if (handle.getUid() == uid) {
|
||||
if (handle.uid() == uid) {
|
||||
return index;
|
||||
}
|
||||
++index;
|
||||
@@ -149,7 +149,7 @@ public:
|
||||
int indexOf(const T *t) const
|
||||
{
|
||||
QMT_CHECK(t);
|
||||
return indexOf(t->getUid());
|
||||
return indexOf(t->uid());
|
||||
}
|
||||
|
||||
public:
|
||||
@@ -172,7 +172,7 @@ public:
|
||||
{
|
||||
if (m_takeOwnership) {
|
||||
foreach (const Handle<T> &handle, m_handleList) {
|
||||
delete handle.getTarget();
|
||||
delete handle.target();
|
||||
}
|
||||
}
|
||||
m_handleList.clear();
|
||||
@@ -219,7 +219,7 @@ public:
|
||||
{
|
||||
QMT_CHECK(index >= 0 && index < size());
|
||||
if (m_takeOwnership) {
|
||||
T *t = m_handleList.at(index).getTarget();
|
||||
T *t = m_handleList.at(index).target();
|
||||
m_handleList.removeAt(index);
|
||||
delete t;
|
||||
} else {
|
||||
@@ -241,7 +241,7 @@ public:
|
||||
T * take(int index)
|
||||
{
|
||||
QMT_CHECK(index >= 0 && index < size());
|
||||
T *t = m_handleList.at(index).getTarget();
|
||||
T *t = m_handleList.at(index).target();
|
||||
m_handleList.removeAt(index);
|
||||
return t;
|
||||
}
|
||||
|
||||
@@ -49,9 +49,9 @@ class FileIOException :
|
||||
public:
|
||||
explicit FileIOException(const QString &errorMsg, const QString &fileName = QString::null, int lineNumber = -1);
|
||||
|
||||
QString getFileName() const { return m_fileName; }
|
||||
QString fileName() const { return m_fileName; }
|
||||
|
||||
int getLineNumber() const { return m_lineNumber; }
|
||||
int lineNumber() const { return m_lineNumber; }
|
||||
|
||||
private:
|
||||
QString m_fileName;
|
||||
|
||||
@@ -44,7 +44,7 @@ class QMT_EXPORT Uid
|
||||
{
|
||||
public:
|
||||
|
||||
static const Uid getInvalidUid() { return Uid(QUuid()); }
|
||||
static const Uid invalidUid() { return Uid(QUuid()); }
|
||||
|
||||
public:
|
||||
Uid() : m_uuid(QUuid::createUuid()) { }
|
||||
|
||||
@@ -87,16 +87,16 @@ void MAssociationEnd::setNavigable(bool navigable)
|
||||
|
||||
bool operator==(const MAssociationEnd &lhs, const MAssociationEnd &rhs)
|
||||
{
|
||||
return lhs.getName() == rhs.getName()
|
||||
&& lhs.getCardinality() == rhs.getCardinality()
|
||||
&& lhs.getKind() == rhs.getKind()
|
||||
return lhs.name() == rhs.name()
|
||||
&& lhs.cardinality() == rhs.cardinality()
|
||||
&& lhs.kind() == rhs.kind()
|
||||
&& lhs.isNavigable() == rhs.isNavigable();
|
||||
}
|
||||
|
||||
|
||||
MAssociation::MAssociation()
|
||||
: MRelation(),
|
||||
m_associationClassUid(Uid::getInvalidUid())
|
||||
m_associationClassUid(Uid::invalidUid())
|
||||
{
|
||||
}
|
||||
|
||||
@@ -104,14 +104,14 @@ MAssociation::~MAssociation()
|
||||
{
|
||||
}
|
||||
|
||||
void MAssociation::setA(const MAssociationEnd &end)
|
||||
void MAssociation::setEndA(const MAssociationEnd &end)
|
||||
{
|
||||
m_a = end;
|
||||
m_endA = end;
|
||||
}
|
||||
|
||||
void MAssociation::setB(const MAssociationEnd &end)
|
||||
void MAssociation::setEndB(const MAssociationEnd &end)
|
||||
{
|
||||
m_b = end;
|
||||
m_endB = end;
|
||||
}
|
||||
|
||||
void MAssociation::setAssociationClassUid(const Uid &uid)
|
||||
|
||||
@@ -66,15 +66,15 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
QString getName() const { return m_name; }
|
||||
QString name() const { return m_name; }
|
||||
|
||||
void setName(const QString &name);
|
||||
|
||||
QString getCardinality() const { return m_cardinality; }
|
||||
QString cardinality() const { return m_cardinality; }
|
||||
|
||||
void setCardinality(const QString &cardinality);
|
||||
|
||||
Kind getKind() const { return m_kind; }
|
||||
Kind kind() const { return m_kind; }
|
||||
|
||||
void setKind(Kind kind);
|
||||
|
||||
@@ -109,15 +109,15 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
MAssociationEnd getA() const { return m_a; }
|
||||
MAssociationEnd endA() const { return m_endA; }
|
||||
|
||||
void setA(const MAssociationEnd &end);
|
||||
void setEndA(const MAssociationEnd &end);
|
||||
|
||||
MAssociationEnd getB() const { return m_b; }
|
||||
MAssociationEnd endB() const { return m_endB; }
|
||||
|
||||
void setB(const MAssociationEnd &end);
|
||||
void setEndB(const MAssociationEnd &end);
|
||||
|
||||
Uid getAssoicationClassUid() const { return m_associationClassUid; }
|
||||
Uid assoicationClassUid() const { return m_associationClassUid; }
|
||||
|
||||
void setAssociationClassUid(const Uid &uid);
|
||||
|
||||
@@ -129,9 +129,9 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
MAssociationEnd m_a;
|
||||
MAssociationEnd m_endA;
|
||||
|
||||
MAssociationEnd m_b;
|
||||
MAssociationEnd m_endB;
|
||||
|
||||
Uid m_associationClassUid;
|
||||
};
|
||||
|
||||
@@ -65,7 +65,7 @@ MClass &MClass::operator=(const MClass &rhs)
|
||||
return *this;
|
||||
}
|
||||
|
||||
void MClass::setNamespace(const QString &nameSpace)
|
||||
void MClass::setNameSpace(const QString &nameSpace)
|
||||
{
|
||||
m_namespace = nameSpace;
|
||||
}
|
||||
@@ -94,7 +94,7 @@ void MClass::removeMember(const Uid &uid)
|
||||
{
|
||||
QMT_CHECK(uid.isValid());
|
||||
for (int i = 0; i < m_members.count(); ++i) {
|
||||
if (m_members.at(i).getUid() == uid) {
|
||||
if (m_members.at(i).uid() == uid) {
|
||||
m_members.removeAt(i);
|
||||
return;
|
||||
}
|
||||
@@ -104,7 +104,7 @@ void MClass::removeMember(const Uid &uid)
|
||||
|
||||
void MClass::removeMember(const MClassMember &member)
|
||||
{
|
||||
removeMember(member.getUid());
|
||||
removeMember(member.uid());
|
||||
}
|
||||
|
||||
void MClass::accept(MVisitor *visitor)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user