forked from qt-creator/qt-creator
ModelEditor: Apply naming convention to enums
Change-Id: I215214965d4f6196d805b9001cf59d8cbf2c7c64 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
@@ -121,7 +121,7 @@ struct StereotypeDefinitionParser::StereotypeDefinitionParserPrivate
|
|||||||
|
|
||||||
struct StereotypeDefinitionParser::IconCommandParameter
|
struct StereotypeDefinitionParser::IconCommandParameter
|
||||||
{
|
{
|
||||||
IconCommandParameter(ShapeValueF::Unit unit, ShapeValueF::Origin origin = ShapeValueF::ORIGIN_SMART)
|
IconCommandParameter(ShapeValueF::Unit unit, ShapeValueF::Origin origin = ShapeValueF::OriginSmart)
|
||||||
: m_unit(unit),
|
: m_unit(unit),
|
||||||
m_origin(origin)
|
m_origin(origin)
|
||||||
{
|
{
|
||||||
@@ -202,19 +202,19 @@ void StereotypeDefinitionParser::parseFile()
|
|||||||
{
|
{
|
||||||
for (;;) {
|
for (;;) {
|
||||||
Token token = readNextToken();
|
Token token = readNextToken();
|
||||||
if (token.type() == Token::TOKEN_ENDOFINPUT) {
|
if (token.type() == Token::TokenEndOfInput) {
|
||||||
break;
|
break;
|
||||||
} else if (token.type() != Token::TOKEN_KEYWORD || token.subtype() == KEYWORD_ICON) {
|
} else if (token.type() != Token::TokenKeyword || token.subtype() == KEYWORD_ICON) {
|
||||||
parseIcon();
|
parseIcon();
|
||||||
} else if (token.type() != Token::TOKEN_KEYWORD || token.subtype() == KEYWORD_TOOLBAR) {
|
} else if (token.type() != Token::TokenKeyword || token.subtype() == KEYWORD_TOOLBAR) {
|
||||||
parseToolbar();
|
parseToolbar();
|
||||||
} else {
|
} else {
|
||||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected 'icon' or 'toolbar'."), token.sourcePos());
|
throw StereotypeDefinitionParserError(QStringLiteral("Expected 'icon' or 'toolbar'."), token.sourcePos());
|
||||||
}
|
}
|
||||||
token = d->m_scanner->read();
|
token = d->m_scanner->read();
|
||||||
if (token.type() == Token::TOKEN_OPERATOR && token.subtype() == OPERATOR_PERIOD) {
|
if (token.type() == Token::TokenOperator && token.subtype() == OPERATOR_PERIOD) {
|
||||||
break;
|
break;
|
||||||
} else if (token.type() != Token::TOKEN_OPERATOR || token.subtype() != OPERATOR_SEMICOLON) {
|
} else if (token.type() != Token::TokenOperator || token.subtype() != OPERATOR_SEMICOLON) {
|
||||||
d->m_scanner->unread(token);
|
d->m_scanner->unread(token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -223,7 +223,7 @@ void StereotypeDefinitionParser::parseFile()
|
|||||||
void StereotypeDefinitionParser::parseIcon()
|
void StereotypeDefinitionParser::parseIcon()
|
||||||
{
|
{
|
||||||
Token token = d->m_scanner->read();
|
Token token = d->m_scanner->read();
|
||||||
if (token.type() != Token::TOKEN_IDENTIFIER && token.type() != Token::TOKEN_KEYWORD) {
|
if (token.type() != Token::TokenIdentifier && token.type() != Token::TokenKeyword) {
|
||||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.sourcePos());
|
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.sourcePos());
|
||||||
}
|
}
|
||||||
QString id = token.text();
|
QString id = token.text();
|
||||||
@@ -231,12 +231,12 @@ void StereotypeDefinitionParser::parseIcon()
|
|||||||
stereotypeIcon.setId(id);
|
stereotypeIcon.setId(id);
|
||||||
parseIconProperties(&stereotypeIcon);
|
parseIconProperties(&stereotypeIcon);
|
||||||
token = readNextToken();
|
token = readNextToken();
|
||||||
if (token.type() != Token::TOKEN_KEYWORD || token.subtype() != KEYWORD_BEGIN) {
|
if (token.type() != Token::TokenKeyword || token.subtype() != KEYWORD_BEGIN) {
|
||||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'begin'."), token.sourcePos());
|
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'begin'."), token.sourcePos());
|
||||||
}
|
}
|
||||||
parseIconCommands(&stereotypeIcon);
|
parseIconCommands(&stereotypeIcon);
|
||||||
token = readNextToken();
|
token = readNextToken();
|
||||||
if (token.type() != Token::TOKEN_KEYWORD || token.subtype() != KEYWORD_END) {
|
if (token.type() != Token::TokenKeyword || token.subtype() != KEYWORD_END) {
|
||||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'end'."), token.sourcePos());
|
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'end'."), token.sourcePos());
|
||||||
}
|
}
|
||||||
emit iconParsed(stereotypeIcon);
|
emit iconParsed(stereotypeIcon);
|
||||||
@@ -250,7 +250,7 @@ void StereotypeDefinitionParser::parseIconProperties(StereotypeIcon *stereotypeI
|
|||||||
QSet<QString> stereotypes;
|
QSet<QString> stereotypes;
|
||||||
while (loop) {
|
while (loop) {
|
||||||
token = readNextToken();
|
token = readNextToken();
|
||||||
if (token.type() != Token::TOKEN_KEYWORD) {
|
if (token.type() != Token::TokenKeyword) {
|
||||||
loop = false;
|
loop = false;
|
||||||
} else {
|
} else {
|
||||||
switch (token.subtype()) {
|
switch (token.subtype()) {
|
||||||
@@ -263,11 +263,11 @@ void StereotypeDefinitionParser::parseIconProperties(StereotypeIcon *stereotypeI
|
|||||||
QList<QString> identifiers = parseIdentifierListProperty();
|
QList<QString> identifiers = parseIdentifierListProperty();
|
||||||
foreach (const QString &identifier, identifiers) {
|
foreach (const QString &identifier, identifiers) {
|
||||||
static QHash<QString, StereotypeIcon::Element> elementNames = QHash<QString, StereotypeIcon::Element>()
|
static QHash<QString, StereotypeIcon::Element> elementNames = QHash<QString, StereotypeIcon::Element>()
|
||||||
<< qMakePair(QString(QStringLiteral("package")), StereotypeIcon::ELEMENT_PACKAGE)
|
<< qMakePair(QString(QStringLiteral("package")), StereotypeIcon::ElementPackage)
|
||||||
<< qMakePair(QString(QStringLiteral("component")), StereotypeIcon::ELEMENT_COMPONENT)
|
<< qMakePair(QString(QStringLiteral("component")), StereotypeIcon::ElementComponent)
|
||||||
<< qMakePair(QString(QStringLiteral("class")), StereotypeIcon::ELEMENT_CLASS)
|
<< qMakePair(QString(QStringLiteral("class")), StereotypeIcon::ElementClass)
|
||||||
<< qMakePair(QString(QStringLiteral("diagram")), StereotypeIcon::ELEMENT_DIAGRAM)
|
<< qMakePair(QString(QStringLiteral("diagram")), StereotypeIcon::ElementDiagram)
|
||||||
<< qMakePair(QString(QStringLiteral("item")), StereotypeIcon::ELEMENT_ITEM);
|
<< qMakePair(QString(QStringLiteral("item")), StereotypeIcon::ElementItem);
|
||||||
QString elementName = identifier.toLower();
|
QString elementName = identifier.toLower();
|
||||||
if (!elementNames.contains(elementName)) {
|
if (!elementNames.contains(elementName)) {
|
||||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Unexpected value \"%1\" for element.")).arg(identifier), token.sourcePos());
|
throw StereotypeDefinitionParserError(QString(QStringLiteral("Unexpected value \"%1\" for element.")).arg(identifier), token.sourcePos());
|
||||||
@@ -302,11 +302,11 @@ void StereotypeDefinitionParser::parseIconProperties(StereotypeIcon *stereotypeI
|
|||||||
QString lockValue = parseIdentifierProperty();
|
QString lockValue = parseIdentifierProperty();
|
||||||
QString lockName = lockValue.toLower();
|
QString lockName = lockValue.toLower();
|
||||||
static QHash<QString, StereotypeIcon::SizeLock> lockNames = QHash<QString, StereotypeIcon::SizeLock>()
|
static QHash<QString, StereotypeIcon::SizeLock> lockNames = QHash<QString, StereotypeIcon::SizeLock>()
|
||||||
<< qMakePair(QString(QStringLiteral("none")), StereotypeIcon::LOCK_NONE)
|
<< qMakePair(QString(QStringLiteral("none")), StereotypeIcon::LockNone)
|
||||||
<< qMakePair(QString(QStringLiteral("width")), StereotypeIcon::LOCK_WIDTH)
|
<< qMakePair(QString(QStringLiteral("width")), StereotypeIcon::LockWidth)
|
||||||
<< qMakePair(QString(QStringLiteral("height")), StereotypeIcon::LOCK_HEIGHT)
|
<< qMakePair(QString(QStringLiteral("height")), StereotypeIcon::LockHeight)
|
||||||
<< qMakePair(QString(QStringLiteral("size")), StereotypeIcon::LOCK_SIZE)
|
<< qMakePair(QString(QStringLiteral("size")), StereotypeIcon::LockSize)
|
||||||
<< qMakePair(QString(QStringLiteral("ratio")), StereotypeIcon::LOCK_RATIO);
|
<< qMakePair(QString(QStringLiteral("ratio")), StereotypeIcon::LockRatio);
|
||||||
if (lockNames.contains(lockName)) {
|
if (lockNames.contains(lockName)) {
|
||||||
StereotypeIcon::SizeLock sizeLock = lockNames.value(lockName);
|
StereotypeIcon::SizeLock sizeLock = lockNames.value(lockName);
|
||||||
stereotypeIcon->setSizeLock(sizeLock);
|
stereotypeIcon->setSizeLock(sizeLock);
|
||||||
@@ -320,11 +320,11 @@ void StereotypeDefinitionParser::parseIconProperties(StereotypeIcon *stereotypeI
|
|||||||
QString displayValue = parseIdentifierProperty();
|
QString displayValue = parseIdentifierProperty();
|
||||||
QString displayName = displayValue.toLower();
|
QString displayName = displayValue.toLower();
|
||||||
static QHash<QString, StereotypeIcon::Display> displayNames = QHash<QString, StereotypeIcon::Display>()
|
static QHash<QString, StereotypeIcon::Display> displayNames = QHash<QString, StereotypeIcon::Display>()
|
||||||
<< qMakePair(QString(QStringLiteral("none")), StereotypeIcon::DISPLAY_NONE)
|
<< qMakePair(QString(QStringLiteral("none")), StereotypeIcon::DisplayNone)
|
||||||
<< qMakePair(QString(QStringLiteral("label")), StereotypeIcon::DISPLAY_LABEL)
|
<< qMakePair(QString(QStringLiteral("label")), StereotypeIcon::DisplayLabel)
|
||||||
<< qMakePair(QString(QStringLiteral("decoration")), StereotypeIcon::DISPLAY_DECORATION)
|
<< qMakePair(QString(QStringLiteral("decoration")), StereotypeIcon::DisplayDecoration)
|
||||||
<< qMakePair(QString(QStringLiteral("icon")), StereotypeIcon::DISPLAY_ICON)
|
<< qMakePair(QString(QStringLiteral("icon")), StereotypeIcon::DisplayIcon)
|
||||||
<< qMakePair(QString(QStringLiteral("smart")), StereotypeIcon::DISPLAY_SMART);
|
<< qMakePair(QString(QStringLiteral("smart")), StereotypeIcon::DisplaySmart);
|
||||||
if (displayNames.contains(displayName)) {
|
if (displayNames.contains(displayName)) {
|
||||||
StereotypeIcon::Display display = displayNames.value(displayName);
|
StereotypeIcon::Display display = displayNames.value(displayName);
|
||||||
stereotypeIcon->setDisplay(display);
|
stereotypeIcon->setDisplay(display);
|
||||||
@@ -338,9 +338,9 @@ void StereotypeDefinitionParser::parseIconProperties(StereotypeIcon *stereotypeI
|
|||||||
QString alignValue = parseIdentifierProperty();
|
QString alignValue = parseIdentifierProperty();
|
||||||
QString alignName = alignValue.toLower();
|
QString alignName = alignValue.toLower();
|
||||||
static QHash<QString, StereotypeIcon::TextAlignment> alignNames = QHash<QString, StereotypeIcon::TextAlignment>()
|
static QHash<QString, StereotypeIcon::TextAlignment> alignNames = QHash<QString, StereotypeIcon::TextAlignment>()
|
||||||
<< qMakePair(QString(QStringLiteral("below")), StereotypeIcon::TEXTALIGN_BELOW)
|
<< qMakePair(QString(QStringLiteral("below")), StereotypeIcon::TextalignBelow)
|
||||||
<< qMakePair(QString(QStringLiteral("center")), StereotypeIcon::TEXTALIGN_CENTER)
|
<< qMakePair(QString(QStringLiteral("center")), StereotypeIcon::TextalignCenter)
|
||||||
<< qMakePair(QString(QStringLiteral("none")), StereotypeIcon::TEXTALIGN_NONE);
|
<< qMakePair(QString(QStringLiteral("none")), StereotypeIcon::TextalignNone);
|
||||||
if (alignNames.contains(alignName)) {
|
if (alignNames.contains(alignName)) {
|
||||||
StereotypeIcon::TextAlignment textAlignment = alignNames.value(alignName);
|
StereotypeIcon::TextAlignment textAlignment = alignNames.value(alignName);
|
||||||
stereotypeIcon->setTextAlignment(textAlignment);
|
stereotypeIcon->setTextAlignment(textAlignment);
|
||||||
@@ -367,7 +367,7 @@ void StereotypeDefinitionParser::parseIconProperties(StereotypeIcon *stereotypeI
|
|||||||
void StereotypeDefinitionParser::parseToolbar()
|
void StereotypeDefinitionParser::parseToolbar()
|
||||||
{
|
{
|
||||||
Token token = d->m_scanner->read();
|
Token token = d->m_scanner->read();
|
||||||
if (token.type() != Token::TOKEN_IDENTIFIER && token.type() != Token::TOKEN_KEYWORD) {
|
if (token.type() != Token::TokenIdentifier && token.type() != Token::TokenKeyword) {
|
||||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.sourcePos());
|
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.sourcePos());
|
||||||
}
|
}
|
||||||
QString id = token.text();
|
QString id = token.text();
|
||||||
@@ -375,12 +375,12 @@ void StereotypeDefinitionParser::parseToolbar()
|
|||||||
toolbar.setId(id);
|
toolbar.setId(id);
|
||||||
parseToolbarProperties(&toolbar);
|
parseToolbarProperties(&toolbar);
|
||||||
token = readNextToken();
|
token = readNextToken();
|
||||||
if (token.type() != Token::TOKEN_KEYWORD || token.subtype() != KEYWORD_BEGIN) {
|
if (token.type() != Token::TokenKeyword || token.subtype() != KEYWORD_BEGIN) {
|
||||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'begin'."), token.sourcePos());
|
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'begin'."), token.sourcePos());
|
||||||
}
|
}
|
||||||
parseToolbarCommands(&toolbar);
|
parseToolbarCommands(&toolbar);
|
||||||
token = readNextToken();
|
token = readNextToken();
|
||||||
if (token.type() != Token::TOKEN_KEYWORD || token.subtype() != KEYWORD_END) {
|
if (token.type() != Token::TokenKeyword || token.subtype() != KEYWORD_END) {
|
||||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'end'."), token.sourcePos());
|
throw StereotypeDefinitionParserError(QStringLiteral("Expected token 'end'."), token.sourcePos());
|
||||||
}
|
}
|
||||||
emit toolbarParsed(toolbar);
|
emit toolbarParsed(toolbar);
|
||||||
@@ -392,7 +392,7 @@ void StereotypeDefinitionParser::parseToolbarProperties(Toolbar *toolbar)
|
|||||||
bool loop = true;
|
bool loop = true;
|
||||||
while (loop) {
|
while (loop) {
|
||||||
token = readNextToken();
|
token = readNextToken();
|
||||||
if (token.type() != Token::TOKEN_KEYWORD) {
|
if (token.type() != Token::TokenKeyword) {
|
||||||
loop = false;
|
loop = false;
|
||||||
} else {
|
} else {
|
||||||
switch (token.subtype()) {
|
switch (token.subtype()) {
|
||||||
@@ -438,13 +438,13 @@ QList<QString> StereotypeDefinitionParser::parseIdentifierListProperty()
|
|||||||
expectColon();
|
expectColon();
|
||||||
for (;;) {
|
for (;;) {
|
||||||
Token token = d->m_scanner->read();
|
Token token = d->m_scanner->read();
|
||||||
if (token.type() != Token::TOKEN_IDENTIFIER && token.type() != Token::TOKEN_KEYWORD) {
|
if (token.type() != Token::TokenIdentifier && token.type() != Token::TokenKeyword) {
|
||||||
qDebug() << "token" << token.type() << token.subtype() << token.text();
|
qDebug() << "token" << token.type() << token.subtype() << token.text();
|
||||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.sourcePos());
|
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.sourcePos());
|
||||||
}
|
}
|
||||||
identifiers.append(token.text());
|
identifiers.append(token.text());
|
||||||
token = d->m_scanner->read();
|
token = d->m_scanner->read();
|
||||||
if (token.type() != Token::TOKEN_OPERATOR || token.subtype() != OPERATOR_COMMA) {
|
if (token.type() != Token::TokenOperator || token.subtype() != OPERATOR_COMMA) {
|
||||||
d->m_scanner->unread(token);
|
d->m_scanner->unread(token);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -472,13 +472,13 @@ void StereotypeDefinitionParser::parseIconCommands(StereotypeIcon *stereotypeIco
|
|||||||
QList<ShapeValueF> parameters;
|
QList<ShapeValueF> parameters;
|
||||||
|
|
||||||
typedef QList<IconCommandParameter> Parameters;
|
typedef QList<IconCommandParameter> Parameters;
|
||||||
static const IconCommandParameter SCALED(ShapeValueF::UNIT_SCALED);
|
static const IconCommandParameter SCALED(ShapeValueF::UnitScaled);
|
||||||
static const IconCommandParameter FIX(ShapeValueF::UNIT_RELATIVE);
|
static const IconCommandParameter FIX(ShapeValueF::UnitRelative);
|
||||||
static const IconCommandParameter ABSOLUTE(ShapeValueF::UNIT_ABSOLUTE);
|
static const IconCommandParameter ABSOLUTE(ShapeValueF::UnitAbsolute);
|
||||||
|
|
||||||
while (loop) {
|
while (loop) {
|
||||||
token = readNextToken();
|
token = readNextToken();
|
||||||
if (token.type() != Token::TOKEN_KEYWORD) {
|
if (token.type() != Token::TokenKeyword) {
|
||||||
loop = false;
|
loop = false;
|
||||||
} else {
|
} else {
|
||||||
switch (token.subtype()) {
|
switch (token.subtype()) {
|
||||||
@@ -568,7 +568,7 @@ QList<ShapeValueF> StereotypeDefinitionParser::parseIconCommandParameters(const
|
|||||||
values << ShapeValueF(parseFloatExpression());
|
values << ShapeValueF(parseFloatExpression());
|
||||||
}
|
}
|
||||||
token = d->m_scanner->read();
|
token = d->m_scanner->read();
|
||||||
if (token.type() != Token::TOKEN_OPERATOR || token.subtype() != OPERATOR_COMMA) {
|
if (token.type() != Token::TokenOperator || token.subtype() != OPERATOR_COMMA) {
|
||||||
d->m_scanner->unread(token);
|
d->m_scanner->unread(token);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -588,7 +588,7 @@ void StereotypeDefinitionParser::parseToolbarCommands(Toolbar *toolbar)
|
|||||||
bool loop = true;
|
bool loop = true;
|
||||||
while (loop) {
|
while (loop) {
|
||||||
token = readNextToken();
|
token = readNextToken();
|
||||||
if (token.type() != Token::TOKEN_KEYWORD) {
|
if (token.type() != Token::TokenKeyword) {
|
||||||
loop = false;
|
loop = false;
|
||||||
} else {
|
} else {
|
||||||
switch (token.subtype()) {
|
switch (token.subtype()) {
|
||||||
@@ -633,7 +633,7 @@ void StereotypeDefinitionParser::parseToolbarCommands(Toolbar *toolbar)
|
|||||||
QString StereotypeDefinitionParser::parseStringExpression()
|
QString StereotypeDefinitionParser::parseStringExpression()
|
||||||
{
|
{
|
||||||
Token token = d->m_scanner->read();
|
Token token = d->m_scanner->read();
|
||||||
if (token.type() != Token::TOKEN_STRING) {
|
if (token.type() != Token::TokenString) {
|
||||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected string constant."), token.sourcePos());
|
throw StereotypeDefinitionParserError(QStringLiteral("Expected string constant."), token.sourcePos());
|
||||||
}
|
}
|
||||||
return token.text();
|
return token.text();
|
||||||
@@ -643,15 +643,15 @@ qreal StereotypeDefinitionParser::parseFloatExpression()
|
|||||||
{
|
{
|
||||||
Token token;
|
Token token;
|
||||||
token = d->m_scanner->read();
|
token = d->m_scanner->read();
|
||||||
if (token.type() == Token::TOKEN_OPERATOR && token.subtype() == OPERATOR_MINUS) {
|
if (token.type() == Token::TokenOperator && token.subtype() == OPERATOR_MINUS) {
|
||||||
return -parseFloatExpression();
|
return -parseFloatExpression();
|
||||||
} else {
|
} else {
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
if (token.type() == Token::TOKEN_INTEGER) {
|
if (token.type() == Token::TokenInteger) {
|
||||||
int value = token.text().toInt(&ok);
|
int value = token.text().toInt(&ok);
|
||||||
QMT_CHECK(ok);
|
QMT_CHECK(ok);
|
||||||
return value;
|
return value;
|
||||||
} else if (token.type() == Token::TOKEN_FLOAT) {
|
} else if (token.type() == Token::TokenFloat) {
|
||||||
qreal value = token.text().toDouble(&ok);
|
qreal value = token.text().toDouble(&ok);
|
||||||
QMT_CHECK(ok);
|
QMT_CHECK(ok);
|
||||||
return value;
|
return value;
|
||||||
@@ -665,11 +665,11 @@ int StereotypeDefinitionParser::parseIntExpression()
|
|||||||
{
|
{
|
||||||
Token token;
|
Token token;
|
||||||
token = d->m_scanner->read();
|
token = d->m_scanner->read();
|
||||||
if (token.type() == Token::TOKEN_OPERATOR && token.subtype() == OPERATOR_MINUS) {
|
if (token.type() == Token::TokenOperator && token.subtype() == OPERATOR_MINUS) {
|
||||||
return -parseIntExpression();
|
return -parseIntExpression();
|
||||||
} else {
|
} else {
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
if (token.type() == Token::TOKEN_INTEGER) {
|
if (token.type() == Token::TokenInteger) {
|
||||||
int value = token.text().toInt(&ok);
|
int value = token.text().toInt(&ok);
|
||||||
QMT_CHECK(ok);
|
QMT_CHECK(ok);
|
||||||
return value;
|
return value;
|
||||||
@@ -682,7 +682,7 @@ int StereotypeDefinitionParser::parseIntExpression()
|
|||||||
QString StereotypeDefinitionParser::parseIdentifierExpression()
|
QString StereotypeDefinitionParser::parseIdentifierExpression()
|
||||||
{
|
{
|
||||||
Token token = d->m_scanner->read();
|
Token token = d->m_scanner->read();
|
||||||
if (token.type() != Token::TOKEN_IDENTIFIER && token.type() != Token::TOKEN_KEYWORD) {
|
if (token.type() != Token::TokenIdentifier && token.type() != Token::TokenKeyword) {
|
||||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.sourcePos());
|
throw StereotypeDefinitionParserError(QStringLiteral("Expected identifier."), token.sourcePos());
|
||||||
}
|
}
|
||||||
return token.text();
|
return token.text();
|
||||||
@@ -691,7 +691,7 @@ QString StereotypeDefinitionParser::parseIdentifierExpression()
|
|||||||
bool StereotypeDefinitionParser::parseBoolExpression()
|
bool StereotypeDefinitionParser::parseBoolExpression()
|
||||||
{
|
{
|
||||||
Token token = d->m_scanner->read();
|
Token token = d->m_scanner->read();
|
||||||
if (token.type() == Token::TOKEN_IDENTIFIER) {
|
if (token.type() == Token::TokenIdentifier) {
|
||||||
QString value = token.text().toLower();
|
QString value = token.text().toLower();
|
||||||
if (value == QStringLiteral("yes") || value == QStringLiteral("true")) {
|
if (value == QStringLiteral("yes") || value == QStringLiteral("true")) {
|
||||||
return true;
|
return true;
|
||||||
@@ -705,7 +705,7 @@ bool StereotypeDefinitionParser::parseBoolExpression()
|
|||||||
QColor StereotypeDefinitionParser::parseColorExpression()
|
QColor StereotypeDefinitionParser::parseColorExpression()
|
||||||
{
|
{
|
||||||
Token token = d->m_scanner->read();
|
Token token = d->m_scanner->read();
|
||||||
if (token.type() == Token::TOKEN_IDENTIFIER || token.type() == Token::TOKEN_COLOR) {
|
if (token.type() == Token::TokenIdentifier || token.type() == Token::TokenColor) {
|
||||||
QString value = token.text().toLower();
|
QString value = token.text().toLower();
|
||||||
QColor color;
|
QColor color;
|
||||||
if (QColor::isValidColor(value)) {
|
if (QColor::isValidColor(value)) {
|
||||||
@@ -721,7 +721,7 @@ Token StereotypeDefinitionParser::readNextToken()
|
|||||||
Token token;
|
Token token;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
token = d->m_scanner->read();
|
token = d->m_scanner->read();
|
||||||
if (token.type() != Token::TOKEN_ENDOFLINE) {
|
if (token.type() != Token::TokenEndOfLine) {
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -729,7 +729,7 @@ Token StereotypeDefinitionParser::readNextToken()
|
|||||||
|
|
||||||
qreal StereotypeDefinitionParser::expectAbsoluteValue(const ShapeValueF &value, const SourcePos &sourcePos)
|
qreal StereotypeDefinitionParser::expectAbsoluteValue(const ShapeValueF &value, const SourcePos &sourcePos)
|
||||||
{
|
{
|
||||||
if (value.unit() != ShapeValueF::UNIT_ABSOLUTE || value.origin() != ShapeValueF::ORIGIN_SMART) {
|
if (value.unit() != ShapeValueF::UnitAbsolute || value.origin() != ShapeValueF::OriginSmart) {
|
||||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected absolute value"), sourcePos);
|
throw StereotypeDefinitionParserError(QStringLiteral("Expected absolute value"), sourcePos);
|
||||||
}
|
}
|
||||||
return value.value();
|
return value.value();
|
||||||
@@ -738,7 +738,7 @@ qreal StereotypeDefinitionParser::expectAbsoluteValue(const ShapeValueF &value,
|
|||||||
void StereotypeDefinitionParser::expectSemicolonOrEndOfLine()
|
void StereotypeDefinitionParser::expectSemicolonOrEndOfLine()
|
||||||
{
|
{
|
||||||
Token token = d->m_scanner->read();
|
Token token = d->m_scanner->read();
|
||||||
if (token.type() != Token::TOKEN_ENDOFLINE && (token.type() != Token::TOKEN_OPERATOR || token.subtype() != OPERATOR_SEMICOLON)) {
|
if (token.type() != Token::TokenEndOfLine && (token.type() != Token::TokenOperator || token.subtype() != OPERATOR_SEMICOLON)) {
|
||||||
throw StereotypeDefinitionParserError(QStringLiteral("Expected ';' or end-of-line."), token.sourcePos());
|
throw StereotypeDefinitionParserError(QStringLiteral("Expected ';' or end-of-line."), token.sourcePos());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -746,7 +746,7 @@ void StereotypeDefinitionParser::expectSemicolonOrEndOfLine()
|
|||||||
bool StereotypeDefinitionParser::nextIsComma()
|
bool StereotypeDefinitionParser::nextIsComma()
|
||||||
{
|
{
|
||||||
Token token = d->m_scanner->read();
|
Token token = d->m_scanner->read();
|
||||||
if (token.type() != Token::TOKEN_OPERATOR || token.subtype() != OPERATOR_COMMA) {
|
if (token.type() != Token::TokenOperator || token.subtype() != OPERATOR_COMMA) {
|
||||||
d->m_scanner->unread(token);
|
d->m_scanner->unread(token);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -756,7 +756,7 @@ bool StereotypeDefinitionParser::nextIsComma()
|
|||||||
void StereotypeDefinitionParser::expectOperator(int op, const QString &opName)
|
void StereotypeDefinitionParser::expectOperator(int op, const QString &opName)
|
||||||
{
|
{
|
||||||
Token token = d->m_scanner->read();
|
Token token = d->m_scanner->read();
|
||||||
if (token.type() != Token::TOKEN_OPERATOR || token.subtype() != op) {
|
if (token.type() != Token::TokenOperator || token.subtype() != op) {
|
||||||
throw StereotypeDefinitionParserError(QString(QStringLiteral("Expected '%1'.")).arg(opName), token.sourcePos());
|
throw StereotypeDefinitionParserError(QString(QStringLiteral("Expected '%1'.")).arg(opName), token.sourcePos());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,9 +136,9 @@ Token TextScanner::read()
|
|||||||
} else if (sourceChar.ch == QLatin1Char('#')) {
|
} else if (sourceChar.ch == QLatin1Char('#')) {
|
||||||
return scanColorIdentifier(sourceChar);
|
return scanColorIdentifier(sourceChar);
|
||||||
} else if (sourceChar.ch == QChar::LineFeed || sourceChar.ch == QChar::CarriageReturn) {
|
} else if (sourceChar.ch == QChar::LineFeed || sourceChar.ch == QChar::CarriageReturn) {
|
||||||
return Token(Token::TOKEN_ENDOFLINE, QString(), sourceChar.pos);
|
return Token(Token::TokenEndOfLine, QString(), sourceChar.pos);
|
||||||
} else if (sourceChar.ch.isNull()) {
|
} else if (sourceChar.ch.isNull()) {
|
||||||
return Token(Token::TOKEN_ENDOFINPUT, QString(), sourceChar.pos);
|
return Token(Token::TokenEndOfInput, QString(), sourceChar.pos);
|
||||||
} else if (d->m_operatorFirstCharsSet.contains(sourceChar.ch)) {
|
} else if (d->m_operatorFirstCharsSet.contains(sourceChar.ch)) {
|
||||||
return scanOperator(sourceChar);
|
return scanOperator(sourceChar);
|
||||||
} else {
|
} else {
|
||||||
@@ -198,7 +198,7 @@ Token TextScanner::scanString(const SourceChar &delimiterChar)
|
|||||||
for (;;) {
|
for (;;) {
|
||||||
SourceChar sourceChar = readChar();
|
SourceChar sourceChar = readChar();
|
||||||
if (sourceChar.ch == delimiterChar.ch) {
|
if (sourceChar.ch == delimiterChar.ch) {
|
||||||
return Token(Token::TOKEN_STRING, text, delimiterChar.pos);
|
return Token(Token::TokenString, text, delimiterChar.pos);
|
||||||
} else if (sourceChar.ch == QLatin1Char('\\')) {
|
} else if (sourceChar.ch == QLatin1Char('\\')) {
|
||||||
sourceChar = readChar();
|
sourceChar = readChar();
|
||||||
if (sourceChar.ch == QLatin1Char('n')) {
|
if (sourceChar.ch == QLatin1Char('n')) {
|
||||||
@@ -243,10 +243,10 @@ Token TextScanner::scanNumber(const SourceChar &firstDigit)
|
|||||||
text += sourceChar.ch;
|
text += sourceChar.ch;
|
||||||
}
|
}
|
||||||
unreadChar(sourceChar);
|
unreadChar(sourceChar);
|
||||||
return Token(Token::TOKEN_FLOAT, text, firstDigit.pos);
|
return Token(Token::TokenFloat, text, firstDigit.pos);
|
||||||
} else {
|
} else {
|
||||||
unreadChar(sourceChar);
|
unreadChar(sourceChar);
|
||||||
return Token(Token::TOKEN_INTEGER, text, firstDigit.pos);
|
return Token(Token::TokenInteger, text, firstDigit.pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,9 +260,9 @@ Token TextScanner::scanIdentifier(const SourceChar &firstChar)
|
|||||||
unreadChar(sourceChar);
|
unreadChar(sourceChar);
|
||||||
QString keyword = text.toLower();
|
QString keyword = text.toLower();
|
||||||
if (d->m_keywordToSubtypeMap.contains(keyword)) {
|
if (d->m_keywordToSubtypeMap.contains(keyword)) {
|
||||||
return Token(Token::TOKEN_KEYWORD, d->m_keywordToSubtypeMap.value(keyword), text, firstChar.pos);
|
return Token(Token::TokenKeyword, d->m_keywordToSubtypeMap.value(keyword), text, firstChar.pos);
|
||||||
}
|
}
|
||||||
return Token(Token::TOKEN_IDENTIFIER, text, firstChar.pos);
|
return Token(Token::TokenIdentifier, text, firstChar.pos);
|
||||||
}
|
}
|
||||||
text += sourceChar.ch;
|
text += sourceChar.ch;
|
||||||
}
|
}
|
||||||
@@ -277,7 +277,7 @@ Token TextScanner::scanColorIdentifier(const SourceChar &firstChar)
|
|||||||
QChar ch = sourceChar.ch.toLower();
|
QChar ch = sourceChar.ch.toLower();
|
||||||
if (!(ch.isDigit() || (ch >= QLatin1Char('a') && ch <= QLatin1Char('f')))) {
|
if (!(ch.isDigit() || (ch >= QLatin1Char('a') && ch <= QLatin1Char('f')))) {
|
||||||
unreadChar(sourceChar);
|
unreadChar(sourceChar);
|
||||||
return Token(Token::TOKEN_COLOR, text, firstChar.pos);
|
return Token(Token::TokenColor, text, firstChar.pos);
|
||||||
}
|
}
|
||||||
text += sourceChar.ch;
|
text += sourceChar.ch;
|
||||||
}
|
}
|
||||||
@@ -311,7 +311,7 @@ Token TextScanner::scanOperator(const SourceChar &firstChar)
|
|||||||
}
|
}
|
||||||
QMT_CHECK(haveOperator);
|
QMT_CHECK(haveOperator);
|
||||||
Q_UNUSED(haveOperator); // avoid warning in release mode
|
Q_UNUSED(haveOperator); // avoid warning in release mode
|
||||||
return Token(Token::TOKEN_OPERATOR, subtype, op, firstChar.pos);
|
return Token(Token::TokenOperator, subtype, op, firstChar.pos);
|
||||||
}
|
}
|
||||||
text += sourceChar.ch;
|
text += sourceChar.ch;
|
||||||
extraChars.push(sourceChar);
|
extraChars.push(sourceChar);
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
namespace qmt {
|
namespace qmt {
|
||||||
|
|
||||||
Token::Token()
|
Token::Token()
|
||||||
: m_type(TOKEN_UNDEFINED),
|
: m_type(TokenUndefined),
|
||||||
m_subtype(0)
|
m_subtype(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
20
src/libs/3rdparty/modeling/qmt/config/token.h
vendored
20
src/libs/3rdparty/modeling/qmt/config/token.h
vendored
@@ -42,16 +42,16 @@ class Token
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Type {
|
enum Type {
|
||||||
TOKEN_UNDEFINED,
|
TokenUndefined,
|
||||||
TOKEN_ENDOFINPUT,
|
TokenEndOfInput,
|
||||||
TOKEN_ENDOFLINE,
|
TokenEndOfLine,
|
||||||
TOKEN_STRING,
|
TokenString,
|
||||||
TOKEN_INTEGER,
|
TokenInteger,
|
||||||
TOKEN_FLOAT,
|
TokenFloat,
|
||||||
TOKEN_IDENTIFIER,
|
TokenIdentifier,
|
||||||
TOKEN_KEYWORD,
|
TokenKeyword,
|
||||||
TOKEN_OPERATOR,
|
TokenOperator,
|
||||||
TOKEN_COLOR
|
TokenColor
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace qmt {
|
|||||||
|
|
||||||
DAnnotation::DAnnotation()
|
DAnnotation::DAnnotation()
|
||||||
: DElement(),
|
: DElement(),
|
||||||
m_visualRole(ROLE_NORMAL),
|
m_visualRole(RoleNormal),
|
||||||
m_autoSized(true)
|
m_autoSized(true)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,12 +44,12 @@ class QMT_EXPORT DAnnotation :
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum VisualRole {
|
enum VisualRole {
|
||||||
ROLE_NORMAL,
|
RoleNormal,
|
||||||
ROLE_TITLE,
|
RoleTitle,
|
||||||
ROLE_SUBTITLE,
|
RoleSubtitle,
|
||||||
ROLE_EMPHASIZED,
|
RoleEmphasized,
|
||||||
ROLE_SOFTEN,
|
RoleSoften,
|
||||||
ROLE_FOOTNOTE
|
RoleFootnote
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
namespace qmt {
|
namespace qmt {
|
||||||
|
|
||||||
DAssociationEnd::DAssociationEnd()
|
DAssociationEnd::DAssociationEnd()
|
||||||
: m_kind(MAssociationEnd::ASSOCIATION),
|
: m_kind(MAssociationEnd::Association),
|
||||||
m_navigable(false)
|
m_navigable(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
namespace qmt {
|
namespace qmt {
|
||||||
|
|
||||||
DClass::DClass()
|
DClass::DClass()
|
||||||
: m_templateDisplay(TEMPLATE_SMART),
|
: m_templateDisplay(TemplateSmart),
|
||||||
m_showAllMembers(false)
|
m_showAllMembers(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,9 +45,9 @@ class QMT_EXPORT DClass :
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum TemplateDisplay {
|
enum TemplateDisplay {
|
||||||
TEMPLATE_SMART,
|
TemplateSmart,
|
||||||
TEMPLATE_BOX,
|
TemplateBox,
|
||||||
TEMPLATE_NAME
|
TemplateName
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
namespace qmt {
|
namespace qmt {
|
||||||
|
|
||||||
DDependency::DDependency()
|
DDependency::DDependency()
|
||||||
: m_direction(MDependency::A_TO_B)
|
: m_direction(MDependency::AToB)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,22 +47,22 @@ DDependency::~DDependency()
|
|||||||
|
|
||||||
Uid DDependency::source() const
|
Uid DDependency::source() const
|
||||||
{
|
{
|
||||||
return m_direction == MDependency::B_TO_A ? endBUid() : endAUid();
|
return m_direction == MDependency::BToA ? endBUid() : endAUid();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DDependency::setSource(const Uid &source)
|
void DDependency::setSource(const Uid &source)
|
||||||
{
|
{
|
||||||
m_direction == MDependency::B_TO_A ? setEndBUid(source) : setEndAUid(source);
|
m_direction == MDependency::BToA ? setEndBUid(source) : setEndAUid(source);
|
||||||
}
|
}
|
||||||
|
|
||||||
Uid DDependency::target() const
|
Uid DDependency::target() const
|
||||||
{
|
{
|
||||||
return m_direction == MDependency::B_TO_A ? endAUid() : endBUid();
|
return m_direction == MDependency::BToA ? endAUid() : endBUid();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DDependency::setTarget(const Uid &target)
|
void DDependency::setTarget(const Uid &target)
|
||||||
{
|
{
|
||||||
return m_direction == MDependency::B_TO_A ? setEndAUid(target) : setEndBUid(target);
|
return m_direction == MDependency::BToA ? setEndAUid(target) : setEndBUid(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DDependency::setDirection(MDependency::Direction direction)
|
void DDependency::setDirection(MDependency::Direction direction)
|
||||||
|
|||||||
@@ -39,9 +39,9 @@ DObject::DObject()
|
|||||||
: DElement(),
|
: DElement(),
|
||||||
m_modelUid(Uid::invalidUid()),
|
m_modelUid(Uid::invalidUid()),
|
||||||
m_depth(0),
|
m_depth(0),
|
||||||
m_visualPrimaryRole(PRIMARY_ROLE_NORMAL),
|
m_visualPrimaryRole(PrimaryRoleNormal),
|
||||||
m_visualSecondaryRole(SECONDARY_ROLE_NONE),
|
m_visualSecondaryRole(SecondaryRoleNone),
|
||||||
m_stereotypeDisplay(STEREOTYPE_SMART),
|
m_stereotypeDisplay(StereotypeSmart),
|
||||||
m_autoSized(true),
|
m_autoSized(true),
|
||||||
m_visualEmphasized(false)
|
m_visualEmphasized(false)
|
||||||
{
|
{
|
||||||
|
|||||||
40
src/libs/3rdparty/modeling/qmt/diagram/dobject.h
vendored
40
src/libs/3rdparty/modeling/qmt/diagram/dobject.h
vendored
@@ -51,32 +51,32 @@ class QMT_EXPORT DObject :
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum VisualPrimaryRole {
|
enum VisualPrimaryRole {
|
||||||
PRIMARY_ROLE_NORMAL,
|
PrimaryRoleNormal,
|
||||||
DEPRECATED_PRIMARY_ROLE_LIGHTER,
|
DeprecatedPrimaryRoleLighter,
|
||||||
DEPRECATED_PRIMARY_ROLE_DARKER,
|
DeprecatedPrimaryRoleDarker,
|
||||||
DEPRECATED_PRIMARY_ROLE_SOFTEN,
|
DeprecatedPrimaryRoleSoften,
|
||||||
DEPRECATED_PRIMARY_ROLE_OUTLINE,
|
DeprecatedPrimaryRoleOutline,
|
||||||
PRIMARY_ROLE_CUSTOM1,
|
PrimaryRoleCustom1,
|
||||||
PRIMARY_ROLE_CUSTOM2,
|
PrimaryRoleCustom2,
|
||||||
PRIMARY_ROLE_CUSTOM3,
|
PrimaryRoleCustom3,
|
||||||
PRIMARY_ROLE_CUSTOM4,
|
PrimaryRoleCustom4,
|
||||||
PRIMARY_ROLE_CUSTOM5
|
PrimaryRoleCustom5
|
||||||
};
|
};
|
||||||
|
|
||||||
enum VisualSecondaryRole {
|
enum VisualSecondaryRole {
|
||||||
SECONDARY_ROLE_NONE,
|
SecondaryRoleNone,
|
||||||
SECONDARY_ROLE_LIGHTER,
|
SecondaryRoleLighter,
|
||||||
SECONDARY_ROLE_DARKER,
|
SecondaryRoleDarker,
|
||||||
SECONDARY_ROLE_SOFTEN,
|
SecondaryRoleSoften,
|
||||||
SECONDARY_ROLE_OUTLINE
|
SecondaryRoleOutline
|
||||||
};
|
};
|
||||||
|
|
||||||
enum StereotypeDisplay {
|
enum StereotypeDisplay {
|
||||||
STEREOTYPE_NONE,
|
StereotypeNone,
|
||||||
STEREOTYPE_LABEL,
|
StereotypeLabel,
|
||||||
STEREOTYPE_DECORATION,
|
StereotypeDecoration,
|
||||||
STEREOTYPE_ICON,
|
StereotypeIcon,
|
||||||
STEREOTYPE_SMART
|
StereotypeSmart
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ public:
|
|||||||
if (diagramKey() != otherUpdateCommand->diagramKey()) {
|
if (diagramKey() != otherUpdateCommand->diagramKey()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (m_updateAction == DiagramController::UPDATE_MAJOR || otherUpdateCommand->m_updateAction == DiagramController::UPDATE_MAJOR
|
if (m_updateAction == DiagramController::UpdateMajor || otherUpdateCommand->m_updateAction == DiagramController::UpdateMajor
|
||||||
|| m_updateAction != otherUpdateCommand->m_updateAction) {
|
|| m_updateAction != otherUpdateCommand->m_updateAction) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,9 +64,9 @@ class QMT_EXPORT DiagramController :
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum UpdateAction {
|
enum UpdateAction {
|
||||||
UPDATE_GEOMETRY, // update only position and size of element
|
UpdateGeometry, // update only position and size of element
|
||||||
UPDATE_MAJOR, // a major update of the element which will create a separate undo command
|
UpdateMajor, // a major update of the element which will create a separate undo command
|
||||||
UPDATE_MINOR // a minor update of the element which may be merged with other minor updates in one undo command
|
UpdateMinor // a minor update of the element which may be merged with other minor updates in one undo command
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -40,15 +40,15 @@ class IAlignable {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
enum AlignType {
|
enum AlignType {
|
||||||
ALIGN_LEFT,
|
AlignLeft,
|
||||||
ALIGN_RIGHT,
|
AlignRight,
|
||||||
ALIGN_TOP,
|
AlignTop,
|
||||||
ALIGN_BOTTOM,
|
AlignBottom,
|
||||||
ALIGN_HCENTER,
|
AlignHcenter,
|
||||||
ALIGN_VCENTER,
|
AlignVcenter,
|
||||||
ALIGN_WIDTH,
|
AlignWidth,
|
||||||
ALIGN_HEIGHT,
|
AlignHeight,
|
||||||
ALIGN_SIZE
|
AlignSize
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -39,26 +39,26 @@ class ILatchable {
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Action {
|
enum Action {
|
||||||
MOVE,
|
Move,
|
||||||
RESIZE_LEFT,
|
ResizeLeft,
|
||||||
RESIZE_TOP,
|
ResizeTop,
|
||||||
RESIZE_RIGHT,
|
ResizeRight,
|
||||||
RESIZE_BOTTOM
|
ResizeBottom
|
||||||
};
|
};
|
||||||
|
|
||||||
enum LatchType {
|
enum LatchType {
|
||||||
NONE,
|
None,
|
||||||
LEFT,
|
Left,
|
||||||
TOP,
|
Top,
|
||||||
RIGHT,
|
Right,
|
||||||
BOTTOM,
|
Bottom,
|
||||||
HCENTER,
|
Hcenter,
|
||||||
VCENTER
|
Vcenter
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Latch {
|
struct Latch {
|
||||||
Latch()
|
Latch()
|
||||||
: m_latchType(NONE),
|
: m_latchType(None),
|
||||||
m_pos(0.0),
|
m_pos(0.0),
|
||||||
m_otherPos1(0.0),
|
m_otherPos1(0.0),
|
||||||
m_otherPos2(0.0),
|
m_otherPos2(0.0),
|
||||||
|
|||||||
@@ -46,9 +46,9 @@ class IResizable {
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Side {
|
enum Side {
|
||||||
SIDE_NONE,
|
SideNone,
|
||||||
SIDE_LEFT_OR_TOP,
|
SideLeftOrTop,
|
||||||
SIDE_RIGHT_OR_BOTTOM
|
SideRightOrBottom
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ DiagramSceneModel::DiagramSceneModel(QObject *parent)
|
|||||||
m_diagram(0),
|
m_diagram(0),
|
||||||
m_graphicsScene(new DiagramGraphicsScene(this)),
|
m_graphicsScene(new DiagramGraphicsScene(this)),
|
||||||
m_latchController(new LatchController(this)),
|
m_latchController(new LatchController(this)),
|
||||||
m_busy(NOT_BUSY),
|
m_busy(NotBusy),
|
||||||
m_originItem(new OriginItem()),
|
m_originItem(new OriginItem()),
|
||||||
m_focusItem(0)
|
m_focusItem(0)
|
||||||
{
|
{
|
||||||
@@ -128,7 +128,7 @@ DiagramSceneModel::DiagramSceneModel(QObject *parent)
|
|||||||
|
|
||||||
DiagramSceneModel::~DiagramSceneModel()
|
DiagramSceneModel::~DiagramSceneModel()
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_latchController->removeFromGraphicsScene(m_graphicsScene);
|
m_latchController->removeFromGraphicsScene(m_graphicsScene);
|
||||||
disconnect();
|
disconnect();
|
||||||
if (m_diagramController) {
|
if (m_diagramController) {
|
||||||
@@ -515,7 +515,7 @@ QList<QGraphicsItem *> DiagramSceneModel::collectCollidingObjectItems(const QGra
|
|||||||
rect.translate(resizable->pos());
|
rect.translate(resizable->pos());
|
||||||
|
|
||||||
switch (collidingMode) {
|
switch (collidingMode) {
|
||||||
case COLLIDING_INNER_ITEMS:
|
case CollidingInnerItems:
|
||||||
foreach (QGraphicsItem *candidate, m_graphicsItems) {
|
foreach (QGraphicsItem *candidate, m_graphicsItems) {
|
||||||
if (const IResizable *candidateResizable = dynamic_cast<const IResizable *>(candidate)) {
|
if (const IResizable *candidateResizable = dynamic_cast<const IResizable *>(candidate)) {
|
||||||
QRectF candidateRect = candidateResizable->rect();
|
QRectF candidateRect = candidateResizable->rect();
|
||||||
@@ -527,7 +527,7 @@ QList<QGraphicsItem *> DiagramSceneModel::collectCollidingObjectItems(const QGra
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case COLLIDING_ITEMS:
|
case CollidingItems:
|
||||||
foreach (QGraphicsItem *candidate, m_graphicsItems) {
|
foreach (QGraphicsItem *candidate, m_graphicsItems) {
|
||||||
if (const IResizable *candidateResizable = dynamic_cast<const IResizable *>(candidate)) {
|
if (const IResizable *candidateResizable = dynamic_cast<const IResizable *>(candidate)) {
|
||||||
QRectF candidateRect = candidateResizable->rect();
|
QRectF candidateRect = candidateResizable->rect();
|
||||||
@@ -539,7 +539,7 @@ QList<QGraphicsItem *> DiagramSceneModel::collectCollidingObjectItems(const QGra
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case COLLIDING_OUTER_ITEMS:
|
case CollidingOuterItems:
|
||||||
foreach (QGraphicsItem *candidate, m_graphicsItems) {
|
foreach (QGraphicsItem *candidate, m_graphicsItems) {
|
||||||
if (const IResizable *candidateResizable = dynamic_cast<const IResizable *>(candidate)) {
|
if (const IResizable *candidateResizable = dynamic_cast<const IResizable *>(candidate)) {
|
||||||
QRectF candidateRect = candidateResizable->rect();
|
QRectF candidateRect = candidateResizable->rect();
|
||||||
@@ -653,8 +653,8 @@ void DiagramSceneModel::onEndResetAllDiagrams()
|
|||||||
|
|
||||||
void DiagramSceneModel::onBeginResetDiagram(const MDiagram *diagram)
|
void DiagramSceneModel::onBeginResetDiagram(const MDiagram *diagram)
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_busy = RESET_DIAGRAM;
|
m_busy = ResetDiagram;
|
||||||
if (diagram == m_diagram) {
|
if (diagram == m_diagram) {
|
||||||
clearGraphicsScene();
|
clearGraphicsScene();
|
||||||
}
|
}
|
||||||
@@ -662,7 +662,7 @@ void DiagramSceneModel::onBeginResetDiagram(const MDiagram *diagram)
|
|||||||
|
|
||||||
void DiagramSceneModel::onEndResetDiagram(const MDiagram *diagram)
|
void DiagramSceneModel::onEndResetDiagram(const MDiagram *diagram)
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == RESET_DIAGRAM);
|
QMT_CHECK(m_busy == ResetDiagram);
|
||||||
if (diagram == m_diagram) {
|
if (diagram == m_diagram) {
|
||||||
QMT_CHECK(m_graphicsItems.size() == 0);
|
QMT_CHECK(m_graphicsItems.size() == 0);
|
||||||
// create all items and update graphics item from element initially
|
// create all items and update graphics item from element initially
|
||||||
@@ -678,39 +678,39 @@ void DiagramSceneModel::onEndResetDiagram(const MDiagram *diagram)
|
|||||||
updateGraphicsItem(m_elementToItemMap.value(element), element);
|
updateGraphicsItem(m_elementToItemMap.value(element), element);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramSceneModel::onBeginUpdateElement(int row, const MDiagram *diagram)
|
void DiagramSceneModel::onBeginUpdateElement(int row, const MDiagram *diagram)
|
||||||
{
|
{
|
||||||
Q_UNUSED(row);
|
Q_UNUSED(row);
|
||||||
Q_UNUSED(diagram);
|
Q_UNUSED(diagram);
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_busy = UPDATE_ELEMENT;
|
m_busy = UpdateElement;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramSceneModel::onEndUpdateElement(int row, const MDiagram *diagram)
|
void DiagramSceneModel::onEndUpdateElement(int row, const MDiagram *diagram)
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == UPDATE_ELEMENT);
|
QMT_CHECK(m_busy == UpdateElement);
|
||||||
if (diagram == m_diagram) {
|
if (diagram == m_diagram) {
|
||||||
QGraphicsItem *item = m_graphicsItems.at(row);
|
QGraphicsItem *item = m_graphicsItems.at(row);
|
||||||
updateGraphicsItem(item, diagram->diagramElements().at(row));
|
updateGraphicsItem(item, diagram->diagramElements().at(row));
|
||||||
}
|
}
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramSceneModel::onBeginInsertElement(int row, const MDiagram *diagram)
|
void DiagramSceneModel::onBeginInsertElement(int row, const MDiagram *diagram)
|
||||||
{
|
{
|
||||||
Q_UNUSED(row);
|
Q_UNUSED(row);
|
||||||
Q_UNUSED(diagram);
|
Q_UNUSED(diagram);
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_busy = INSERT_ELEMENT;
|
m_busy = InsertElement;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramSceneModel::onEndInsertElement(int row, const MDiagram *diagram)
|
void DiagramSceneModel::onEndInsertElement(int row, const MDiagram *diagram)
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == INSERT_ELEMENT);
|
QMT_CHECK(m_busy == InsertElement);
|
||||||
QGraphicsItem *item = 0;
|
QGraphicsItem *item = 0;
|
||||||
if (diagram == m_diagram) {
|
if (diagram == m_diagram) {
|
||||||
DElement *element = diagram->diagramElements().at(row);
|
DElement *element = diagram->diagramElements().at(row);
|
||||||
@@ -720,25 +720,25 @@ void DiagramSceneModel::onEndInsertElement(int row, const MDiagram *diagram)
|
|||||||
m_graphicsScene->invalidate();
|
m_graphicsScene->invalidate();
|
||||||
updateGraphicsItem(item, element);
|
updateGraphicsItem(item, element);
|
||||||
}
|
}
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramSceneModel::onBeginRemoveElement(int row, const MDiagram *diagram)
|
void DiagramSceneModel::onBeginRemoveElement(int row, const MDiagram *diagram)
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
if (diagram == m_diagram) {
|
if (diagram == m_diagram) {
|
||||||
QGraphicsItem *item = m_graphicsItems.takeAt(row);
|
QGraphicsItem *item = m_graphicsItems.takeAt(row);
|
||||||
deleteGraphicsItem(item, diagram->diagramElements().at(row));
|
deleteGraphicsItem(item, diagram->diagramElements().at(row));
|
||||||
}
|
}
|
||||||
m_busy = REMOVE_ELEMENT;
|
m_busy = RemoveElement;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramSceneModel::onEndRemoveElement(int row, const MDiagram *diagram)
|
void DiagramSceneModel::onEndRemoveElement(int row, const MDiagram *diagram)
|
||||||
{
|
{
|
||||||
Q_UNUSED(row);
|
Q_UNUSED(row);
|
||||||
Q_UNUSED(diagram);
|
Q_UNUSED(diagram);
|
||||||
QMT_CHECK(m_busy == REMOVE_ELEMENT);
|
QMT_CHECK(m_busy == RemoveElement);
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramSceneModel::onSelectionChanged()
|
void DiagramSceneModel::onSelectionChanged()
|
||||||
@@ -769,7 +769,7 @@ void DiagramSceneModel::onSelectionChanged()
|
|||||||
|
|
||||||
// select all contained objects secondarily
|
// select all contained objects secondarily
|
||||||
foreach (QGraphicsItem *selectedItem, m_selectedItems) {
|
foreach (QGraphicsItem *selectedItem, m_selectedItems) {
|
||||||
foreach (QGraphicsItem *item, collectCollidingObjectItems(selectedItem, COLLIDING_INNER_ITEMS)) {
|
foreach (QGraphicsItem *item, collectCollidingObjectItems(selectedItem, CollidingInnerItems)) {
|
||||||
if (!item->isSelected() && dynamic_cast<ISelectable *>(item) != 0
|
if (!item->isSelected() && dynamic_cast<ISelectable *>(item) != 0
|
||||||
&& item->collidesWithItem(selectedItem, Qt::ContainsItemBoundingRect)
|
&& item->collidesWithItem(selectedItem, Qt::ContainsItemBoundingRect)
|
||||||
&& isInFrontOf(item, selectedItem)) {
|
&& isInFrontOf(item, selectedItem)) {
|
||||||
|
|||||||
@@ -76,9 +76,9 @@ class QMT_EXPORT DiagramSceneModel :
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum CollidingMode {
|
enum CollidingMode {
|
||||||
COLLIDING_INNER_ITEMS,
|
CollidingInnerItems,
|
||||||
COLLIDING_ITEMS,
|
CollidingItems,
|
||||||
COLLIDING_OUTER_ITEMS
|
CollidingOuterItems
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -237,11 +237,11 @@ private:
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
enum Busy {
|
enum Busy {
|
||||||
NOT_BUSY,
|
NotBusy,
|
||||||
RESET_DIAGRAM,
|
ResetDiagram,
|
||||||
UPDATE_ELEMENT,
|
UpdateElement,
|
||||||
INSERT_ELEMENT,
|
InsertElement,
|
||||||
REMOVE_ELEMENT
|
RemoveElement
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ void AnnotationItem::setPosAndRect(const QPointF &originalPos, const QRectF &ori
|
|||||||
QRectF newRect = originalRect;
|
QRectF newRect = originalRect;
|
||||||
GeometryUtilities::adjustPosAndRect(&newPos, &newRect, topLeftDelta, bottomRightDelta, QPointF(0.0, 0.0));
|
GeometryUtilities::adjustPosAndRect(&newPos, &newRect, topLeftDelta, bottomRightDelta, QPointF(0.0, 0.0));
|
||||||
if (newPos != m_annotation->pos() || newRect != m_annotation->rect()) {
|
if (newPos != m_annotation->pos() || newRect != m_annotation->rect()) {
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_annotation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_annotation, m_diagramSceneModel->diagram(), DiagramController::UpdateGeometry);
|
||||||
m_annotation->setPos(newPos);
|
m_annotation->setPos(newPos);
|
||||||
if (newRect.size() != m_annotation->rect().size()) {
|
if (newRect.size() != m_annotation->rect().size()) {
|
||||||
m_annotation->setAutoSize(false);
|
m_annotation->setAutoSize(false);
|
||||||
@@ -188,7 +188,7 @@ void AnnotationItem::alignItemSizeToRaster(Side adjustHorizontalSide, Side adjus
|
|||||||
|
|
||||||
void AnnotationItem::moveDelta(const QPointF &delta)
|
void AnnotationItem::moveDelta(const QPointF &delta)
|
||||||
{
|
{
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_annotation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_annotation, m_diagramSceneModel->diagram(), DiagramController::UpdateGeometry);
|
||||||
m_annotation->setPos(m_annotation->pos() + delta);
|
m_annotation->setPos(m_annotation->pos() + delta);
|
||||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_annotation, m_diagramSceneModel->diagram(), false);
|
m_diagramSceneModel->diagramController()->finishUpdateElement(m_annotation, m_diagramSceneModel->diagram(), false);
|
||||||
}
|
}
|
||||||
@@ -277,7 +277,7 @@ void AnnotationItem::updateSelectionMarker()
|
|||||||
if (!m_selectionMarker) {
|
if (!m_selectionMarker) {
|
||||||
m_selectionMarker = new RectangularSelectionItem(this, this);
|
m_selectionMarker = new RectangularSelectionItem(this, this);
|
||||||
m_selectionMarker->setShowBorder(true);
|
m_selectionMarker->setShowBorder(true);
|
||||||
m_selectionMarker->setFreedom(RectangularSelectionItem::FREEDOM_HORIZONTAL_ONLY);
|
m_selectionMarker->setFreedom(RectangularSelectionItem::FreedomHorizontalOnly);
|
||||||
}
|
}
|
||||||
m_selectionMarker->setSecondarySelected(isSelected() ? false : m_secondarySelected);
|
m_selectionMarker->setSecondarySelected(isSelected() ? false : m_secondarySelected);
|
||||||
} else if (m_selectionMarker) {
|
} else if (m_selectionMarker) {
|
||||||
@@ -320,7 +320,7 @@ void AnnotationItem::onContentsChanged()
|
|||||||
if (!m_onUpdate) {
|
if (!m_onUpdate) {
|
||||||
QString plainText = m_textItem->toPlainText();
|
QString plainText = m_textItem->toPlainText();
|
||||||
if (m_annotation->text() != plainText) {
|
if (m_annotation->text() != plainText) {
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_annotation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_MINOR);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_annotation, m_diagramSceneModel->diagram(), DiagramController::UpdateMinor);
|
||||||
m_annotation->setText(plainText);
|
m_annotation->setText(plainText);
|
||||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_annotation, m_diagramSceneModel->diagram(), false);
|
m_diagramSceneModel->diagramController()->finishUpdateElement(m_annotation, m_diagramSceneModel->diagram(), false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ void AssociationItem::placeEndLabels(const QLineF &lineSegment, QGraphicsItem *e
|
|||||||
}
|
}
|
||||||
|
|
||||||
QPointF rectPlacement;
|
QPointF rectPlacement;
|
||||||
GeometryUtilities::Side alignedSide = GeometryUtilities::SIDE_UNSPECIFIED;
|
GeometryUtilities::Side alignedSide = GeometryUtilities::SideUnspecified;
|
||||||
|
|
||||||
if (IIntersectionable *objectItem = dynamic_cast<IIntersectionable *>(endItem)) {
|
if (IIntersectionable *objectItem = dynamic_cast<IIntersectionable *>(endItem)) {
|
||||||
QPointF intersectionPoint;
|
QPointF intersectionPoint;
|
||||||
@@ -161,7 +161,7 @@ void AssociationItem::placeEndLabels(const QLineF &lineSegment, QGraphicsItem *e
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (endCardinality) {
|
if (endCardinality) {
|
||||||
if (alignedSide == GeometryUtilities::SIDE_RIGHT) {
|
if (alignedSide == GeometryUtilities::SideRight) {
|
||||||
endCardinality->setPos(rectPlacement + QPointF(rect.width() - endCardinality->boundingRect().width(), 0.0));
|
endCardinality->setPos(rectPlacement + QPointF(rect.width() - endCardinality->boundingRect().width(), 0.0));
|
||||||
} else {
|
} else {
|
||||||
endCardinality->setPos(rectPlacement);
|
endCardinality->setPos(rectPlacement);
|
||||||
@@ -169,7 +169,7 @@ void AssociationItem::placeEndLabels(const QLineF &lineSegment, QGraphicsItem *e
|
|||||||
rectPlacement += endCardinality->boundingRect().bottomLeft();
|
rectPlacement += endCardinality->boundingRect().bottomLeft();
|
||||||
}
|
}
|
||||||
if (endName) {
|
if (endName) {
|
||||||
if (alignedSide == GeometryUtilities::SIDE_RIGHT) {
|
if (alignedSide == GeometryUtilities::SideRight) {
|
||||||
endName->setPos(rectPlacement + QPointF(rect.width() - endName->boundingRect().width(), 0.0));
|
endName->setPos(rectPlacement + QPointF(rect.width() - endName->boundingRect().width(), 0.0));
|
||||||
} else {
|
} else {
|
||||||
endName->setPos(rectPlacement);
|
endName->setPos(rectPlacement);
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ void BoundaryItem::setPosAndRect(const QPointF &originalPos, const QRectF &origi
|
|||||||
QRectF newRect = originalRect;
|
QRectF newRect = originalRect;
|
||||||
GeometryUtilities::adjustPosAndRect(&newPos, &newRect, topLeftDelta, bottomRightDelta, QPointF(0.5, 0.5));
|
GeometryUtilities::adjustPosAndRect(&newPos, &newRect, topLeftDelta, bottomRightDelta, QPointF(0.5, 0.5));
|
||||||
if (newPos != m_boundary->pos() || newRect != m_boundary->rect()) {
|
if (newPos != m_boundary->pos() || newRect != m_boundary->rect()) {
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_boundary, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_boundary, m_diagramSceneModel->diagram(), DiagramController::UpdateGeometry);
|
||||||
m_boundary->setPos(newPos);
|
m_boundary->setPos(newPos);
|
||||||
m_boundary->setRect(newRect);
|
m_boundary->setRect(newRect);
|
||||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_boundary, m_diagramSceneModel->diagram(), false);
|
m_diagramSceneModel->diagramController()->finishUpdateElement(m_boundary, m_diagramSceneModel->diagram(), false);
|
||||||
@@ -213,23 +213,23 @@ void BoundaryItem::alignItemSizeToRaster(IResizable::Side adjustHorizontalSide,
|
|||||||
double bottomDelta = 0.0;
|
double bottomDelta = 0.0;
|
||||||
|
|
||||||
switch (adjustHorizontalSide) {
|
switch (adjustHorizontalSide) {
|
||||||
case IResizable::SIDE_NONE:
|
case IResizable::SideNone:
|
||||||
break;
|
break;
|
||||||
case IResizable::SIDE_LEFT_OR_TOP:
|
case IResizable::SideLeftOrTop:
|
||||||
leftDelta = horizDelta;
|
leftDelta = horizDelta;
|
||||||
break;
|
break;
|
||||||
case IResizable::SIDE_RIGHT_OR_BOTTOM:
|
case IResizable::SideRightOrBottom:
|
||||||
rightDelta = -horizDelta;
|
rightDelta = -horizDelta;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (adjustVerticalSide) {
|
switch (adjustVerticalSide) {
|
||||||
case IResizable::SIDE_NONE:
|
case IResizable::SideNone:
|
||||||
break;
|
break;
|
||||||
case IResizable::SIDE_LEFT_OR_TOP:
|
case IResizable::SideLeftOrTop:
|
||||||
topDelta = vertDelta;
|
topDelta = vertDelta;
|
||||||
break;
|
break;
|
||||||
case IResizable::SIDE_RIGHT_OR_BOTTOM:
|
case IResizable::SideRightOrBottom:
|
||||||
bottomDelta = -vertDelta;
|
bottomDelta = -vertDelta;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -241,7 +241,7 @@ void BoundaryItem::alignItemSizeToRaster(IResizable::Side adjustHorizontalSide,
|
|||||||
|
|
||||||
void BoundaryItem::moveDelta(const QPointF &delta)
|
void BoundaryItem::moveDelta(const QPointF &delta)
|
||||||
{
|
{
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_boundary, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_boundary, m_diagramSceneModel->diagram(), DiagramController::UpdateGeometry);
|
||||||
m_boundary->setPos(m_boundary->pos() + delta);
|
m_boundary->setPos(m_boundary->pos() + delta);
|
||||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_boundary, m_diagramSceneModel->diagram(), false);
|
m_diagramSceneModel->diagramController()->finishUpdateElement(m_boundary, m_diagramSceneModel->diagram(), false);
|
||||||
}
|
}
|
||||||
@@ -371,7 +371,7 @@ void BoundaryItem::onContentsChanged()
|
|||||||
if (!m_onUpdate) {
|
if (!m_onUpdate) {
|
||||||
QString plainText = m_textItem->toPlainText();
|
QString plainText = m_textItem->toPlainText();
|
||||||
if (m_boundary->text() != plainText) {
|
if (m_boundary->text() != plainText) {
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_boundary, m_diagramSceneModel->diagram(), DiagramController::UPDATE_MINOR);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_boundary, m_diagramSceneModel->diagram(), DiagramController::UpdateMinor);
|
||||||
m_boundary->setText(plainText);
|
m_boundary->setText(plainText);
|
||||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_boundary, m_diagramSceneModel->diagram(), false);
|
m_diagramSceneModel->diagramController()->finishUpdateElement(m_boundary, m_diagramSceneModel->diagram(), false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ void ClassItem::update()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// custom icon
|
// custom icon
|
||||||
if (stereotypeIconDisplay() == StereotypeIcon::DISPLAY_ICON) {
|
if (stereotypeIconDisplay() == StereotypeIcon::DisplayIcon) {
|
||||||
if (!m_customIcon) {
|
if (!m_customIcon) {
|
||||||
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
||||||
}
|
}
|
||||||
@@ -155,11 +155,11 @@ void ClassItem::update()
|
|||||||
}
|
}
|
||||||
|
|
||||||
DClass::TemplateDisplay templateDisplay = diagramClass->templateDisplay();
|
DClass::TemplateDisplay templateDisplay = diagramClass->templateDisplay();
|
||||||
if (templateDisplay == DClass::TEMPLATE_SMART) {
|
if (templateDisplay == DClass::TemplateSmart) {
|
||||||
if (m_customIcon) {
|
if (m_customIcon) {
|
||||||
templateDisplay = DClass::TEMPLATE_NAME;
|
templateDisplay = DClass::TemplateName;
|
||||||
} else {
|
} else {
|
||||||
templateDisplay = DClass::TEMPLATE_BOX;
|
templateDisplay = DClass::TemplateBox;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,7 +169,7 @@ void ClassItem::update()
|
|||||||
}
|
}
|
||||||
m_className->setFont(style->headerFont());
|
m_className->setFont(style->headerFont());
|
||||||
m_className->setBrush(style->textBrush());
|
m_className->setBrush(style->textBrush());
|
||||||
if (templateDisplay == DClass::TEMPLATE_NAME && !diagramClass->templateParameters().isEmpty()) {
|
if (templateDisplay == DClass::TemplateName && !diagramClass->templateParameters().isEmpty()) {
|
||||||
QString name = object()->name();
|
QString name = object()->name();
|
||||||
name += QLatin1Char('<');
|
name += QLatin1Char('<');
|
||||||
bool first = true;
|
bool first = true;
|
||||||
@@ -257,7 +257,7 @@ void ClassItem::update()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// template parameters
|
// template parameters
|
||||||
if (templateDisplay == DClass::TEMPLATE_BOX && !diagramClass->templateParameters().isEmpty()) {
|
if (templateDisplay == DClass::TemplateBox && !diagramClass->templateParameters().isEmpty()) {
|
||||||
if (!m_templateParameterBox) {
|
if (!m_templateParameterBox) {
|
||||||
m_templateParameterBox = new TemplateParameterBox(this);
|
m_templateParameterBox = new TemplateParameterBox(this);
|
||||||
}
|
}
|
||||||
@@ -282,9 +282,9 @@ void ClassItem::update()
|
|||||||
m_relationStarter = new RelationStarter(this, diagramSceneModel(), 0);
|
m_relationStarter = new RelationStarter(this, diagramSceneModel(), 0);
|
||||||
scene()->addItem(m_relationStarter);
|
scene()->addItem(m_relationStarter);
|
||||||
m_relationStarter->setZValue(RELATION_STARTER_ZVALUE);
|
m_relationStarter->setZValue(RELATION_STARTER_ZVALUE);
|
||||||
m_relationStarter->addArrow(QLatin1String("inheritance"), ArrowItem::SHAFT_SOLID, ArrowItem::HEAD_TRIANGLE);
|
m_relationStarter->addArrow(QLatin1String("inheritance"), ArrowItem::ShaftSolid, ArrowItem::HeadTriangle);
|
||||||
m_relationStarter->addArrow(QLatin1String("dependency"), ArrowItem::SHAFT_DASHED, ArrowItem::HEAD_OPEN);
|
m_relationStarter->addArrow(QLatin1String("dependency"), ArrowItem::ShaftDashed, ArrowItem::HeadOpen);
|
||||||
m_relationStarter->addArrow(QLatin1String("association"), ArrowItem::SHAFT_SOLID, ArrowItem::HEAD_FILLED_TRIANGLE);
|
m_relationStarter->addArrow(QLatin1String("association"), ArrowItem::ShaftSolid, ArrowItem::HeadFilledTriangle);
|
||||||
}
|
}
|
||||||
} else if (m_relationStarter) {
|
} else if (m_relationStarter) {
|
||||||
scene()->removeItem(m_relationStarter);
|
scene()->removeItem(m_relationStarter);
|
||||||
@@ -564,8 +564,8 @@ void ClassItem::updateMembers(const Style *style)
|
|||||||
m_attributesText.clear();
|
m_attributesText.clear();
|
||||||
m_methodsText.clear();
|
m_methodsText.clear();
|
||||||
|
|
||||||
MClassMember::Visibility attributesVisibility = MClassMember::VISIBILITY_UNDEFINED;
|
MClassMember::Visibility attributesVisibility = MClassMember::VisibilityUndefined;
|
||||||
MClassMember::Visibility methodsVisibility = MClassMember::VISIBILITY_UNDEFINED;
|
MClassMember::Visibility methodsVisibility = MClassMember::VisibilityUndefined;
|
||||||
QString attributesGroup;
|
QString attributesGroup;
|
||||||
QString methodsGroup;
|
QString methodsGroup;
|
||||||
|
|
||||||
@@ -584,15 +584,15 @@ void ClassItem::updateMembers(const Style *style)
|
|||||||
foreach (const MClassMember &member, dclass->members()) {
|
foreach (const MClassMember &member, dclass->members()) {
|
||||||
|
|
||||||
switch (member.memberType()) {
|
switch (member.memberType()) {
|
||||||
case MClassMember::MEMBER_UNDEFINED:
|
case MClassMember::MemberUndefined:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
case MClassMember::MEMBER_ATTRIBUTE:
|
case MClassMember::MemberAttribute:
|
||||||
currentVisibility = &attributesVisibility;
|
currentVisibility = &attributesVisibility;
|
||||||
currentGroup = &attributesGroup;
|
currentGroup = &attributesGroup;
|
||||||
text = &m_attributesText;
|
text = &m_attributesText;
|
||||||
break;
|
break;
|
||||||
case MClassMember::MEMBER_METHOD:
|
case MClassMember::MemberMethod:
|
||||||
currentVisibility = &methodsVisibility;
|
currentVisibility = &methodsVisibility;
|
||||||
currentGroup = &methodsGroup;
|
currentGroup = &methodsGroup;
|
||||||
text = &m_methodsText;
|
text = &m_methodsText;
|
||||||
@@ -607,30 +607,30 @@ void ClassItem::updateMembers(const Style *style)
|
|||||||
bool addSpace = false;
|
bool addSpace = false;
|
||||||
if (member.visibility() != *currentVisibility) {
|
if (member.visibility() != *currentVisibility) {
|
||||||
if (useGroupVisibility) {
|
if (useGroupVisibility) {
|
||||||
if (member.visibility() != MClassMember::VISIBILITY_UNDEFINED) {
|
if (member.visibility() != MClassMember::VisibilityUndefined) {
|
||||||
QString vis;
|
QString vis;
|
||||||
switch (member.visibility()) {
|
switch (member.visibility()) {
|
||||||
case MClassMember::VISIBILITY_UNDEFINED:
|
case MClassMember::VisibilityUndefined:
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PUBLIC:
|
case MClassMember::VisibilityPublic:
|
||||||
vis = QStringLiteral("public:");
|
vis = QStringLiteral("public:");
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PROTECTED:
|
case MClassMember::VisibilityProtected:
|
||||||
vis = QStringLiteral("protected:");
|
vis = QStringLiteral("protected:");
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PRIVATE:
|
case MClassMember::VisibilityPrivate:
|
||||||
vis = QStringLiteral("private:");
|
vis = QStringLiteral("private:");
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_SIGNALS:
|
case MClassMember::VisibilitySignals:
|
||||||
vis = QStringLiteral("signals:");
|
vis = QStringLiteral("signals:");
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PRIVATE_SLOTS:
|
case MClassMember::VisibilityPrivateSlots:
|
||||||
vis = QStringLiteral("private slots:");
|
vis = QStringLiteral("private slots:");
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PROTECTED_SLOTS:
|
case MClassMember::VisibilityProtectedSlots:
|
||||||
vis = QStringLiteral("protected slots:");
|
vis = QStringLiteral("protected slots:");
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PUBLIC_SLOTS:
|
case MClassMember::VisibilityPublicSlots:
|
||||||
vis = QStringLiteral("public slots:");
|
vis = QStringLiteral("public slots:");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -657,41 +657,41 @@ void ClassItem::updateMembers(const Style *style)
|
|||||||
bool haveSignal = false;
|
bool haveSignal = false;
|
||||||
bool haveSlot = false;
|
bool haveSlot = false;
|
||||||
if (!useGroupVisibility) {
|
if (!useGroupVisibility) {
|
||||||
if (member.visibility() != MClassMember::VISIBILITY_UNDEFINED) {
|
if (member.visibility() != MClassMember::VisibilityUndefined) {
|
||||||
QString vis;
|
QString vis;
|
||||||
switch (member.visibility()) {
|
switch (member.visibility()) {
|
||||||
case MClassMember::VISIBILITY_UNDEFINED:
|
case MClassMember::VisibilityUndefined:
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PUBLIC:
|
case MClassMember::VisibilityPublic:
|
||||||
vis = haveIconFonts ? QString(QChar(0xe990)) : QStringLiteral("+");
|
vis = haveIconFonts ? QString(QChar(0xe990)) : QStringLiteral("+");
|
||||||
addSpace = true;
|
addSpace = true;
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PROTECTED:
|
case MClassMember::VisibilityProtected:
|
||||||
vis = haveIconFonts ? QString(QChar(0xe98e)) : QStringLiteral("#");
|
vis = haveIconFonts ? QString(QChar(0xe98e)) : QStringLiteral("#");
|
||||||
addSpace = true;
|
addSpace = true;
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PRIVATE:
|
case MClassMember::VisibilityPrivate:
|
||||||
vis = haveIconFonts ? QString(QChar(0xe98f)) : QStringLiteral("-");
|
vis = haveIconFonts ? QString(QChar(0xe98f)) : QStringLiteral("-");
|
||||||
addSpace = true;
|
addSpace = true;
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_SIGNALS:
|
case MClassMember::VisibilitySignals:
|
||||||
vis = haveIconFonts ? QString(QChar(0xe994)) : QStringLiteral(">");
|
vis = haveIconFonts ? QString(QChar(0xe994)) : QStringLiteral(">");
|
||||||
haveSignal = true;
|
haveSignal = true;
|
||||||
addSpace = true;
|
addSpace = true;
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PRIVATE_SLOTS:
|
case MClassMember::VisibilityPrivateSlots:
|
||||||
vis = haveIconFonts ? QString(QChar(0xe98f)) + QChar(0xe9cb)
|
vis = haveIconFonts ? QString(QChar(0xe98f)) + QChar(0xe9cb)
|
||||||
: QStringLiteral("-$");
|
: QStringLiteral("-$");
|
||||||
haveSlot = true;
|
haveSlot = true;
|
||||||
addSpace = true;
|
addSpace = true;
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PROTECTED_SLOTS:
|
case MClassMember::VisibilityProtectedSlots:
|
||||||
vis = haveIconFonts ? QString(QChar(0xe98e)) + QChar(0xe9cb)
|
vis = haveIconFonts ? QString(QChar(0xe98e)) + QChar(0xe9cb)
|
||||||
: QStringLiteral("#$");
|
: QStringLiteral("#$");
|
||||||
haveSlot = true;
|
haveSlot = true;
|
||||||
addSpace = true;
|
addSpace = true;
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PUBLIC_SLOTS:
|
case MClassMember::VisibilityPublicSlots:
|
||||||
vis = haveIconFonts ? QString(QChar(0xe990)) + QChar(0xe9cb)
|
vis = haveIconFonts ? QString(QChar(0xe990)) + QChar(0xe9cb)
|
||||||
: QStringLiteral("+$");
|
: QStringLiteral("+$");
|
||||||
haveSlot = true;
|
haveSlot = true;
|
||||||
@@ -702,38 +702,38 @@ void ClassItem::updateMembers(const Style *style)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (member.properties() & MClassMember::PROPERTY_QSIGNAL && !haveSignal) {
|
if (member.properties() & MClassMember::PropertyQsignal && !haveSignal) {
|
||||||
*text += haveIconFonts ? QString(QChar(0xe994)) : QStringLiteral(">");
|
*text += haveIconFonts ? QString(QChar(0xe994)) : QStringLiteral(">");
|
||||||
addSpace = true;
|
addSpace = true;
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_QSLOT && !haveSlot) {
|
if (member.properties() & MClassMember::PropertyQslot && !haveSlot) {
|
||||||
*text += haveIconFonts ? QString(QChar(0xe9cb)) : QStringLiteral("$");
|
*text += haveIconFonts ? QString(QChar(0xe9cb)) : QStringLiteral("$");
|
||||||
addSpace = true;
|
addSpace = true;
|
||||||
}
|
}
|
||||||
if (addSpace) {
|
if (addSpace) {
|
||||||
*text += QStringLiteral(" ");
|
*text += QStringLiteral(" ");
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_QINVOKABLE) {
|
if (member.properties() & MClassMember::PropertyQinvokable) {
|
||||||
*text += QStringLiteral("invokable ");
|
*text += QStringLiteral("invokable ");
|
||||||
}
|
}
|
||||||
if (!member.stereotypes().isEmpty()) {
|
if (!member.stereotypes().isEmpty()) {
|
||||||
*text += StereotypesItem::format(member.stereotypes());
|
*text += StereotypesItem::format(member.stereotypes());
|
||||||
*text += QStringLiteral(" ");
|
*text += QStringLiteral(" ");
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_VIRTUAL) {
|
if (member.properties() & MClassMember::PropertyVirtual) {
|
||||||
*text += QStringLiteral("virtual ");
|
*text += QStringLiteral("virtual ");
|
||||||
}
|
}
|
||||||
*text += member.declaration();
|
*text += member.declaration();
|
||||||
if (member.properties() & MClassMember::PROPERTY_CONST) {
|
if (member.properties() & MClassMember::PropertyConst) {
|
||||||
*text += QStringLiteral(" const");
|
*text += QStringLiteral(" const");
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_OVERRIDE) {
|
if (member.properties() & MClassMember::PropertyOverride) {
|
||||||
*text += QStringLiteral(" override");
|
*text += QStringLiteral(" override");
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_FINAL) {
|
if (member.properties() & MClassMember::PropertyFinal) {
|
||||||
*text += QStringLiteral(" final");
|
*text += QStringLiteral(" final");
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_ABSTRACT) {
|
if (member.properties() & MClassMember::PropertyAbstract) {
|
||||||
*text += QStringLiteral(" = 0");
|
*text += QStringLiteral(" = 0");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ void ComponentItem::update()
|
|||||||
const Style *style = adaptedStyle(stereotypeIconId());
|
const Style *style = adaptedStyle(stereotypeIconId());
|
||||||
|
|
||||||
// custom icon
|
// custom icon
|
||||||
if (stereotypeIconDisplay() == StereotypeIcon::DISPLAY_ICON) {
|
if (stereotypeIconDisplay() == StereotypeIcon::DisplayIcon) {
|
||||||
if (!m_customIcon) {
|
if (!m_customIcon) {
|
||||||
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
||||||
}
|
}
|
||||||
@@ -185,7 +185,7 @@ void ComponentItem::update()
|
|||||||
m_relationStarter = new RelationStarter(this, diagramSceneModel(), 0);
|
m_relationStarter = new RelationStarter(this, diagramSceneModel(), 0);
|
||||||
scene()->addItem(m_relationStarter);
|
scene()->addItem(m_relationStarter);
|
||||||
m_relationStarter->setZValue(RELATION_STARTER_ZVALUE);
|
m_relationStarter->setZValue(RELATION_STARTER_ZVALUE);
|
||||||
m_relationStarter->addArrow(QStringLiteral("dependency"), ArrowItem::SHAFT_DASHED, ArrowItem::HEAD_OPEN);
|
m_relationStarter->addArrow(QStringLiteral("dependency"), ArrowItem::ShaftDashed, ArrowItem::HeadOpen);
|
||||||
}
|
}
|
||||||
} else if (m_relationStarter) {
|
} else if (m_relationStarter) {
|
||||||
if (m_relationStarter->scene()) {
|
if (m_relationStarter->scene()) {
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ void DiagramItem::update()
|
|||||||
const Style *style = adaptedStyle(stereotypeIconId());
|
const Style *style = adaptedStyle(stereotypeIconId());
|
||||||
|
|
||||||
// custom icon
|
// custom icon
|
||||||
if (stereotypeIconDisplay() == StereotypeIcon::DISPLAY_ICON) {
|
if (stereotypeIconDisplay() == StereotypeIcon::DisplayIcon) {
|
||||||
if (!m_customIcon) {
|
if (!m_customIcon) {
|
||||||
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ void ItemItem::update()
|
|||||||
m_relationStarter = new RelationStarter(this, diagramSceneModel(), 0);
|
m_relationStarter = new RelationStarter(this, diagramSceneModel(), 0);
|
||||||
scene()->addItem(m_relationStarter);
|
scene()->addItem(m_relationStarter);
|
||||||
m_relationStarter->setZValue(RELATION_STARTER_ZVALUE);
|
m_relationStarter->setZValue(RELATION_STARTER_ZVALUE);
|
||||||
m_relationStarter->addArrow(QStringLiteral("dependency"), ArrowItem::SHAFT_DASHED, ArrowItem::HEAD_OPEN);
|
m_relationStarter->addArrow(QStringLiteral("dependency"), ArrowItem::ShaftDashed, ArrowItem::HeadOpen);
|
||||||
}
|
}
|
||||||
} else if (m_relationStarter) {
|
} else if (m_relationStarter) {
|
||||||
if (m_relationStarter->scene()) {
|
if (m_relationStarter->scene()) {
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ ObjectItem::ObjectItem(DObject *object, DiagramSceneModel *diagramSceneModel, QG
|
|||||||
m_diagramSceneModel(diagramSceneModel),
|
m_diagramSceneModel(diagramSceneModel),
|
||||||
m_secondarySelected(false),
|
m_secondarySelected(false),
|
||||||
m_focusSelected(false),
|
m_focusSelected(false),
|
||||||
m_stereotypeIconDisplay(StereotypeIcon::DISPLAY_LABEL),
|
m_stereotypeIconDisplay(StereotypeIcon::DisplayLabel),
|
||||||
m_stereotypes(0),
|
m_stereotypes(0),
|
||||||
m_stereotypeIcon(0),
|
m_stereotypeIcon(0),
|
||||||
m_selectionMarker(0),
|
m_selectionMarker(0),
|
||||||
@@ -110,7 +110,7 @@ void ObjectItem::setPosAndRect(const QPointF &originalPos, const QRectF &origina
|
|||||||
QRectF newRect = originalRect;
|
QRectF newRect = originalRect;
|
||||||
GeometryUtilities::adjustPosAndRect(&newPos, &newRect, topLeftDelta, bottomRightDelta, QPointF(0.5, 0.5));
|
GeometryUtilities::adjustPosAndRect(&newPos, &newRect, topLeftDelta, bottomRightDelta, QPointF(0.5, 0.5));
|
||||||
if (newPos != m_object->pos() || newRect != m_object->rect()) {
|
if (newPos != m_object->pos() || newRect != m_object->rect()) {
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_object, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_object, m_diagramSceneModel->diagram(), DiagramController::UpdateGeometry);
|
||||||
m_object->setPos(newPos);
|
m_object->setPos(newPos);
|
||||||
if (newRect.size() != m_object->rect().size()) {
|
if (newRect.size() != m_object->rect().size()) {
|
||||||
m_object->setAutoSize(false);
|
m_object->setAutoSize(false);
|
||||||
@@ -143,23 +143,23 @@ void ObjectItem::alignItemSizeToRaster(IResizable::Side adjustHorizontalSide, IR
|
|||||||
double bottomDelta = 0.0;
|
double bottomDelta = 0.0;
|
||||||
|
|
||||||
switch (adjustHorizontalSide) {
|
switch (adjustHorizontalSide) {
|
||||||
case IResizable::SIDE_NONE:
|
case IResizable::SideNone:
|
||||||
break;
|
break;
|
||||||
case IResizable::SIDE_LEFT_OR_TOP:
|
case IResizable::SideLeftOrTop:
|
||||||
leftDelta = horizDelta;
|
leftDelta = horizDelta;
|
||||||
break;
|
break;
|
||||||
case IResizable::SIDE_RIGHT_OR_BOTTOM:
|
case IResizable::SideRightOrBottom:
|
||||||
rightDelta = -horizDelta;
|
rightDelta = -horizDelta;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (adjustVerticalSide) {
|
switch (adjustVerticalSide) {
|
||||||
case IResizable::SIDE_NONE:
|
case IResizable::SideNone:
|
||||||
break;
|
break;
|
||||||
case IResizable::SIDE_LEFT_OR_TOP:
|
case IResizable::SideLeftOrTop:
|
||||||
topDelta = vertDelta;
|
topDelta = vertDelta;
|
||||||
break;
|
break;
|
||||||
case IResizable::SIDE_RIGHT_OR_BOTTOM:
|
case IResizable::SideRightOrBottom:
|
||||||
bottomDelta = -vertDelta;
|
bottomDelta = -vertDelta;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -171,7 +171,7 @@ void ObjectItem::alignItemSizeToRaster(IResizable::Side adjustHorizontalSide, IR
|
|||||||
|
|
||||||
void ObjectItem::moveDelta(const QPointF &delta)
|
void ObjectItem::moveDelta(const QPointF &delta)
|
||||||
{
|
{
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_object, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_object, m_diagramSceneModel->diagram(), DiagramController::UpdateGeometry);
|
||||||
m_object->setPos(m_object->pos() + delta);
|
m_object->setPos(m_object->pos() + delta);
|
||||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_object, m_diagramSceneModel->diagram(), false);
|
m_diagramSceneModel->diagramController()->finishUpdateElement(m_object, m_diagramSceneModel->diagram(), false);
|
||||||
}
|
}
|
||||||
@@ -223,21 +223,21 @@ QList<ILatchable::Latch> ObjectItem::horizontalLatches(ILatchable::Action action
|
|||||||
rect.translate(object()->pos());
|
rect.translate(object()->pos());
|
||||||
QList<ILatchable::Latch> result;
|
QList<ILatchable::Latch> result;
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case ILatchable::MOVE:
|
case ILatchable::Move:
|
||||||
result << ILatchable::Latch(ILatchable::LEFT, rect.left(), rect.top(), rect.bottom(), QStringLiteral("left"))
|
result << ILatchable::Latch(ILatchable::Left, rect.left(), rect.top(), rect.bottom(), QStringLiteral("left"))
|
||||||
<< ILatchable::Latch(ILatchable::HCENTER, rect.center().x(), rect.top(), rect.bottom(), QStringLiteral("center"))
|
<< ILatchable::Latch(ILatchable::Hcenter, rect.center().x(), rect.top(), rect.bottom(), QStringLiteral("center"))
|
||||||
<< ILatchable::Latch(ILatchable::RIGHT, rect.right(), rect.top(), rect.bottom(), QStringLiteral("right"));
|
<< ILatchable::Latch(ILatchable::Right, rect.right(), rect.top(), rect.bottom(), QStringLiteral("right"));
|
||||||
break;
|
break;
|
||||||
case ILatchable::RESIZE_LEFT:
|
case ILatchable::ResizeLeft:
|
||||||
result << ILatchable::Latch(ILatchable::LEFT, rect.left(), rect.top(), rect.bottom(), QStringLiteral("left"));
|
result << ILatchable::Latch(ILatchable::Left, rect.left(), rect.top(), rect.bottom(), QStringLiteral("left"));
|
||||||
break;
|
break;
|
||||||
case ILatchable::RESIZE_TOP:
|
case ILatchable::ResizeTop:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
case ILatchable::RESIZE_RIGHT:
|
case ILatchable::ResizeRight:
|
||||||
result << ILatchable::Latch(ILatchable::RIGHT, rect.right(), rect.top(), rect.bottom(), QStringLiteral("right"));
|
result << ILatchable::Latch(ILatchable::Right, rect.right(), rect.top(), rect.bottom(), QStringLiteral("right"));
|
||||||
break;
|
break;
|
||||||
case ILatchable::RESIZE_BOTTOM:
|
case ILatchable::ResizeBottom:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -252,22 +252,22 @@ QList<ILatchable::Latch> ObjectItem::verticalLatches(ILatchable::Action action,
|
|||||||
rect.translate(object()->pos());
|
rect.translate(object()->pos());
|
||||||
QList<ILatchable::Latch> result;
|
QList<ILatchable::Latch> result;
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case ILatchable::MOVE:
|
case ILatchable::Move:
|
||||||
result << ILatchable::Latch(ILatchable::TOP, rect.top(), rect.left(), rect.right(), QStringLiteral("top"))
|
result << ILatchable::Latch(ILatchable::Top, rect.top(), rect.left(), rect.right(), QStringLiteral("top"))
|
||||||
<< ILatchable::Latch(ILatchable::VCENTER, rect.center().y(), rect.left(), rect.right(), QStringLiteral("center"))
|
<< ILatchable::Latch(ILatchable::Vcenter, rect.center().y(), rect.left(), rect.right(), QStringLiteral("center"))
|
||||||
<< ILatchable::Latch(ILatchable::BOTTOM, rect.bottom(), rect.left(), rect.right(), QStringLiteral("bottom"));
|
<< ILatchable::Latch(ILatchable::Bottom, rect.bottom(), rect.left(), rect.right(), QStringLiteral("bottom"));
|
||||||
break;
|
break;
|
||||||
case ILatchable::RESIZE_LEFT:
|
case ILatchable::ResizeLeft:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
case ILatchable::RESIZE_TOP:
|
case ILatchable::ResizeTop:
|
||||||
result << ILatchable::Latch(ILatchable::TOP, rect.top(), rect.left(), rect.right(), QStringLiteral("top"));
|
result << ILatchable::Latch(ILatchable::Top, rect.top(), rect.left(), rect.right(), QStringLiteral("top"));
|
||||||
break;
|
break;
|
||||||
case ILatchable::RESIZE_RIGHT:
|
case ILatchable::ResizeRight:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
case ILatchable::RESIZE_BOTTOM:
|
case ILatchable::ResizeBottom:
|
||||||
result << ILatchable::Latch(ILatchable::BOTTOM, rect.bottom(), rect.left(), rect.right(), QStringLiteral("bottom"));
|
result << ILatchable::Latch(ILatchable::Bottom, rect.bottom(), rect.left(), rect.right(), QStringLiteral("bottom"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@@ -280,41 +280,41 @@ void ObjectItem::align(IAlignable::AlignType alignType, const QString &identifie
|
|||||||
// subclasses may support other identifiers than the standard ones.
|
// subclasses may support other identifiers than the standard ones.
|
||||||
// but this implementation does not. So assert the names.
|
// but this implementation does not. So assert the names.
|
||||||
switch (alignType) {
|
switch (alignType) {
|
||||||
case IAlignable::ALIGN_LEFT:
|
case IAlignable::AlignLeft:
|
||||||
QMT_CHECK(identifier == QStringLiteral("left"));
|
QMT_CHECK(identifier == QStringLiteral("left"));
|
||||||
m_diagramSceneModel->diagramSceneController()->alignLeft(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
m_diagramSceneModel->diagramSceneController()->alignLeft(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
||||||
break;
|
break;
|
||||||
case IAlignable::ALIGN_RIGHT:
|
case IAlignable::AlignRight:
|
||||||
QMT_CHECK(identifier == QStringLiteral("right"));
|
QMT_CHECK(identifier == QStringLiteral("right"));
|
||||||
m_diagramSceneModel->diagramSceneController()->alignRight(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
m_diagramSceneModel->diagramSceneController()->alignRight(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
||||||
break;
|
break;
|
||||||
case IAlignable::ALIGN_TOP:
|
case IAlignable::AlignTop:
|
||||||
QMT_CHECK(identifier == QStringLiteral("top"));
|
QMT_CHECK(identifier == QStringLiteral("top"));
|
||||||
m_diagramSceneModel->diagramSceneController()->alignTop(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
m_diagramSceneModel->diagramSceneController()->alignTop(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
||||||
break;
|
break;
|
||||||
case IAlignable::ALIGN_BOTTOM:
|
case IAlignable::AlignBottom:
|
||||||
QMT_CHECK(identifier == QStringLiteral("bottom"));
|
QMT_CHECK(identifier == QStringLiteral("bottom"));
|
||||||
m_diagramSceneModel->diagramSceneController()->alignBottom(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
m_diagramSceneModel->diagramSceneController()->alignBottom(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
||||||
break;
|
break;
|
||||||
case IAlignable::ALIGN_HCENTER:
|
case IAlignable::AlignHcenter:
|
||||||
QMT_CHECK(identifier == QStringLiteral("center"));
|
QMT_CHECK(identifier == QStringLiteral("center"));
|
||||||
m_diagramSceneModel->diagramSceneController()->alignHCenter(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
m_diagramSceneModel->diagramSceneController()->alignHCenter(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
||||||
break;
|
break;
|
||||||
case IAlignable::ALIGN_VCENTER:
|
case IAlignable::AlignVcenter:
|
||||||
QMT_CHECK(identifier == QStringLiteral("center"));
|
QMT_CHECK(identifier == QStringLiteral("center"));
|
||||||
m_diagramSceneModel->diagramSceneController()->alignVCenter(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
m_diagramSceneModel->diagramSceneController()->alignVCenter(m_object, m_diagramSceneModel->selectedElements(), m_diagramSceneModel->diagram());
|
||||||
break;
|
break;
|
||||||
case IAlignable::ALIGN_WIDTH:
|
case IAlignable::AlignWidth:
|
||||||
QMT_CHECK(identifier == QStringLiteral("width"));
|
QMT_CHECK(identifier == QStringLiteral("width"));
|
||||||
m_diagramSceneModel->diagramSceneController()->alignWidth(m_object, m_diagramSceneModel->selectedElements(),
|
m_diagramSceneModel->diagramSceneController()->alignWidth(m_object, m_diagramSceneModel->selectedElements(),
|
||||||
minimumSize(m_diagramSceneModel->selectedItems()), m_diagramSceneModel->diagram());
|
minimumSize(m_diagramSceneModel->selectedItems()), m_diagramSceneModel->diagram());
|
||||||
break;
|
break;
|
||||||
case IAlignable::ALIGN_HEIGHT:
|
case IAlignable::AlignHeight:
|
||||||
QMT_CHECK(identifier == QStringLiteral("height"));
|
QMT_CHECK(identifier == QStringLiteral("height"));
|
||||||
m_diagramSceneModel->diagramSceneController()->alignHeight(m_object, m_diagramSceneModel->selectedElements(),
|
m_diagramSceneModel->diagramSceneController()->alignHeight(m_object, m_diagramSceneModel->selectedElements(),
|
||||||
minimumSize(m_diagramSceneModel->selectedItems()), m_diagramSceneModel->diagram());
|
minimumSize(m_diagramSceneModel->selectedItems()), m_diagramSceneModel->diagram());
|
||||||
break;
|
break;
|
||||||
case IAlignable::ALIGN_SIZE:
|
case IAlignable::AlignSize:
|
||||||
QMT_CHECK(identifier == QStringLiteral("size"));
|
QMT_CHECK(identifier == QStringLiteral("size"));
|
||||||
m_diagramSceneModel->diagramSceneController()->alignSize(m_object, m_diagramSceneModel->selectedElements(),
|
m_diagramSceneModel->diagramSceneController()->alignSize(m_object, m_diagramSceneModel->selectedElements(),
|
||||||
minimumSize(m_diagramSceneModel->selectedItems()), m_diagramSceneModel->diagram());
|
minimumSize(m_diagramSceneModel->selectedItems()), m_diagramSceneModel->diagram());
|
||||||
@@ -337,10 +337,10 @@ void ObjectItem::updateStereotypes(const QString &stereotypeIconId, StereotypeIc
|
|||||||
{
|
{
|
||||||
QList<QString> stereotypes = m_object->stereotypes();
|
QList<QString> stereotypes = m_object->stereotypes();
|
||||||
if (!stereotypeIconId.isEmpty()
|
if (!stereotypeIconId.isEmpty()
|
||||||
&& (stereotypeDisplay == StereotypeIcon::DISPLAY_DECORATION || stereotypeDisplay == StereotypeIcon::DISPLAY_ICON)) {
|
&& (stereotypeDisplay == StereotypeIcon::DisplayDecoration || stereotypeDisplay == StereotypeIcon::DisplayIcon)) {
|
||||||
stereotypes = m_diagramSceneModel->stereotypeController()->filterStereotypesByIconId(stereotypeIconId, stereotypes);
|
stereotypes = m_diagramSceneModel->stereotypeController()->filterStereotypesByIconId(stereotypeIconId, stereotypes);
|
||||||
}
|
}
|
||||||
if (!stereotypeIconId.isEmpty() && stereotypeDisplay == StereotypeIcon::DISPLAY_DECORATION) {
|
if (!stereotypeIconId.isEmpty() && stereotypeDisplay == StereotypeIcon::DisplayDecoration) {
|
||||||
if (!m_stereotypeIcon) {
|
if (!m_stereotypeIcon) {
|
||||||
m_stereotypeIcon = new CustomIconItem(m_diagramSceneModel, this);
|
m_stereotypeIcon = new CustomIconItem(m_diagramSceneModel, this);
|
||||||
}
|
}
|
||||||
@@ -353,7 +353,7 @@ void ObjectItem::updateStereotypes(const QString &stereotypeIconId, StereotypeIc
|
|||||||
delete m_stereotypeIcon;
|
delete m_stereotypeIcon;
|
||||||
m_stereotypeIcon = 0;
|
m_stereotypeIcon = 0;
|
||||||
}
|
}
|
||||||
if (stereotypeDisplay != StereotypeIcon::DISPLAY_NONE && !stereotypes.isEmpty()) {
|
if (stereotypeDisplay != StereotypeIcon::DisplayNone && !stereotypes.isEmpty()) {
|
||||||
if (!m_stereotypes) {
|
if (!m_stereotypes) {
|
||||||
m_stereotypes = new StereotypesItem(this);
|
m_stereotypes = new StereotypesItem(this);
|
||||||
}
|
}
|
||||||
@@ -375,20 +375,20 @@ QSizeF ObjectItem::stereotypeIconMinimumSize(const StereotypeIcon &stereotypeIco
|
|||||||
qreal height = 0.0;
|
qreal height = 0.0;
|
||||||
if (stereotypeIcon.hasMinWidth() && !stereotypeIcon.hasMinHeight()) {
|
if (stereotypeIcon.hasMinWidth() && !stereotypeIcon.hasMinHeight()) {
|
||||||
width = stereotypeIcon.minWidth();
|
width = stereotypeIcon.minWidth();
|
||||||
if (stereotypeIcon.sizeLock() == StereotypeIcon::LOCK_HEIGHT || stereotypeIcon.sizeLock() == StereotypeIcon::LOCK_SIZE) {
|
if (stereotypeIcon.sizeLock() == StereotypeIcon::LockHeight || stereotypeIcon.sizeLock() == StereotypeIcon::LockSize) {
|
||||||
height = stereotypeIcon.minHeight();
|
height = stereotypeIcon.minHeight();
|
||||||
} else {
|
} else {
|
||||||
height = width * stereotypeIcon.height() / stereotypeIcon.width();
|
height = width * stereotypeIcon.height() / stereotypeIcon.width();
|
||||||
}
|
}
|
||||||
} else if (!stereotypeIcon.hasMinWidth() && stereotypeIcon.hasMinHeight()) {
|
} else if (!stereotypeIcon.hasMinWidth() && stereotypeIcon.hasMinHeight()) {
|
||||||
height = stereotypeIcon.minHeight();
|
height = stereotypeIcon.minHeight();
|
||||||
if (stereotypeIcon.sizeLock() == StereotypeIcon::LOCK_WIDTH || stereotypeIcon.sizeLock() == StereotypeIcon::LOCK_SIZE) {
|
if (stereotypeIcon.sizeLock() == StereotypeIcon::LockWidth || stereotypeIcon.sizeLock() == StereotypeIcon::LockSize) {
|
||||||
width = stereotypeIcon.minWidth();
|
width = stereotypeIcon.minWidth();
|
||||||
} else {
|
} else {
|
||||||
width = height * stereotypeIcon.width() / stereotypeIcon.height();
|
width = height * stereotypeIcon.width() / stereotypeIcon.height();
|
||||||
}
|
}
|
||||||
} else if (stereotypeIcon.hasMinWidth() && stereotypeIcon.hasMinHeight()) {
|
} else if (stereotypeIcon.hasMinWidth() && stereotypeIcon.hasMinHeight()) {
|
||||||
if (stereotypeIcon.sizeLock() == StereotypeIcon::LOCK_RATIO) {
|
if (stereotypeIcon.sizeLock() == StereotypeIcon::LockRatio) {
|
||||||
width = stereotypeIcon.minWidth();
|
width = stereotypeIcon.minWidth();
|
||||||
height = width * stereotypeIcon.height() / stereotypeIcon.width();
|
height = width * stereotypeIcon.height() / stereotypeIcon.width();
|
||||||
if (height < stereotypeIcon.minHeight()) {
|
if (height < stereotypeIcon.minHeight()) {
|
||||||
@@ -416,51 +416,51 @@ void ObjectItem::updateSelectionMarker(CustomIconItem *customIconItem)
|
|||||||
{
|
{
|
||||||
if (customIconItem) {
|
if (customIconItem) {
|
||||||
StereotypeIcon stereotypeIcon = customIconItem->stereotypeIcon();
|
StereotypeIcon stereotypeIcon = customIconItem->stereotypeIcon();
|
||||||
ResizeFlags resizeFlags = RESIZE_UNLOCKED;
|
ResizeFlags resizeFlags = ResizeUnlocked;
|
||||||
switch (stereotypeIcon.sizeLock()) {
|
switch (stereotypeIcon.sizeLock()) {
|
||||||
case StereotypeIcon::LOCK_NONE:
|
case StereotypeIcon::LockNone:
|
||||||
resizeFlags = RESIZE_UNLOCKED;
|
resizeFlags = ResizeUnlocked;
|
||||||
break;
|
break;
|
||||||
case StereotypeIcon::LOCK_WIDTH:
|
case StereotypeIcon::LockWidth:
|
||||||
resizeFlags = RESIZE_LOCKED_WIDTH;
|
resizeFlags = ResizeLockedWidth;
|
||||||
break;
|
break;
|
||||||
case StereotypeIcon::LOCK_HEIGHT:
|
case StereotypeIcon::LockHeight:
|
||||||
resizeFlags = RESIZE_LOCKED_HEIGHT;
|
resizeFlags = ResizeLockedHeight;
|
||||||
break;
|
break;
|
||||||
case StereotypeIcon::LOCK_SIZE:
|
case StereotypeIcon::LockSize:
|
||||||
resizeFlags = RESIZE_LOCKED_SIZE;
|
resizeFlags = ResizeLockedSize;
|
||||||
break;
|
break;
|
||||||
case StereotypeIcon::LOCK_RATIO:
|
case StereotypeIcon::LockRatio:
|
||||||
resizeFlags = RESIZE_LOCKED_RATIO;
|
resizeFlags = ResizeLockedRatio;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
updateSelectionMarker(resizeFlags);
|
updateSelectionMarker(resizeFlags);
|
||||||
} else {
|
} else {
|
||||||
updateSelectionMarker(RESIZE_UNLOCKED);
|
updateSelectionMarker(ResizeUnlocked);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectItem::updateSelectionMarker(ResizeFlags resizeFlags)
|
void ObjectItem::updateSelectionMarker(ResizeFlags resizeFlags)
|
||||||
{
|
{
|
||||||
if ((isSelected() || isSecondarySelected()) && resizeFlags != RESIZE_LOCKED_SIZE) {
|
if ((isSelected() || isSecondarySelected()) && resizeFlags != ResizeLockedSize) {
|
||||||
if (!m_selectionMarker) {
|
if (!m_selectionMarker) {
|
||||||
m_selectionMarker = new RectangularSelectionItem(this, this);
|
m_selectionMarker = new RectangularSelectionItem(this, this);
|
||||||
}
|
}
|
||||||
switch (resizeFlags) {
|
switch (resizeFlags) {
|
||||||
case RESIZE_UNLOCKED:
|
case ResizeUnlocked:
|
||||||
m_selectionMarker->setFreedom(RectangularSelectionItem::FREEDOM_ANY);
|
m_selectionMarker->setFreedom(RectangularSelectionItem::FreedomAny);
|
||||||
break;
|
break;
|
||||||
case RESIZE_LOCKED_SIZE:
|
case ResizeLockedSize:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
case RESIZE_LOCKED_WIDTH:
|
case ResizeLockedWidth:
|
||||||
m_selectionMarker->setFreedom(RectangularSelectionItem::FREEDOM_VERTICAL_ONLY);
|
m_selectionMarker->setFreedom(RectangularSelectionItem::FreedomVerticalOnly);
|
||||||
break;
|
break;
|
||||||
case RESIZE_LOCKED_HEIGHT:
|
case ResizeLockedHeight:
|
||||||
m_selectionMarker->setFreedom(RectangularSelectionItem::FREEDOM_HORIZONTAL_ONLY);
|
m_selectionMarker->setFreedom(RectangularSelectionItem::FreedomHorizontalOnly);
|
||||||
break;
|
break;
|
||||||
case RESIZE_LOCKED_RATIO:
|
case ResizeLockedRatio:
|
||||||
m_selectionMarker->setFreedom(RectangularSelectionItem::FREEDOM_KEEP_RATIO);
|
m_selectionMarker->setFreedom(RectangularSelectionItem::FreedomKeepRatio);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
m_selectionMarker->setSecondarySelected(isSelected() ? false : isSecondarySelected());
|
m_selectionMarker->setSecondarySelected(isSelected() ? false : isSecondarySelected());
|
||||||
@@ -517,15 +517,15 @@ void ObjectItem::updateAlignmentButtonsGeometry(const QRectF &objectRect)
|
|||||||
{
|
{
|
||||||
if (m_horizontalAlignButtons) {
|
if (m_horizontalAlignButtons) {
|
||||||
m_horizontalAlignButtons->clear();
|
m_horizontalAlignButtons->clear();
|
||||||
m_horizontalAlignButtons->setPos(mapToScene(QPointF(0.0, objectRect.top() - AlignButtonsItem::NORMAL_BUTTON_HEIGHT - AlignButtonsItem::VERTICAL_DISTANCE_TO_OBEJCT)));
|
m_horizontalAlignButtons->setPos(mapToScene(QPointF(0.0, objectRect.top() - AlignButtonsItem::NormalButtonHeight - AlignButtonsItem::VerticalDistanceToObejct)));
|
||||||
foreach (const ILatchable::Latch &latch, horizontalLatches(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());
|
m_horizontalAlignButtons->addButton(translateLatchTypeToAlignType(latch.m_latchType), latch.m_identifier, mapFromScene(QPointF(latch.m_pos, 0.0)).x());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (m_verticalAlignButtons) {
|
if (m_verticalAlignButtons) {
|
||||||
m_verticalAlignButtons->clear();
|
m_verticalAlignButtons->clear();
|
||||||
m_verticalAlignButtons->setPos(mapToScene(QPointF(objectRect.left() - AlignButtonsItem::NORMAL_BUTTON_WIDTH - AlignButtonsItem::HORIZONTAL_DISTANCE_TO_OBJECT, 0.0)));
|
m_verticalAlignButtons->setPos(mapToScene(QPointF(objectRect.left() - AlignButtonsItem::NormalButtonWidth - AlignButtonsItem::HorizontalDistanceToObject, 0.0)));
|
||||||
foreach (const ILatchable::Latch &latch, verticalLatches(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());
|
m_verticalAlignButtons->addButton(translateLatchTypeToAlignType(latch.m_latchType), latch.m_identifier, mapFromScene(QPointF(0.0, latch.m_pos)).y());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -533,27 +533,27 @@ void ObjectItem::updateAlignmentButtonsGeometry(const QRectF &objectRect)
|
|||||||
|
|
||||||
IAlignable::AlignType ObjectItem::translateLatchTypeToAlignType(ILatchable::LatchType latchType)
|
IAlignable::AlignType ObjectItem::translateLatchTypeToAlignType(ILatchable::LatchType latchType)
|
||||||
{
|
{
|
||||||
IAlignable::AlignType alignType = IAlignable::ALIGN_LEFT;
|
IAlignable::AlignType alignType = IAlignable::AlignLeft;
|
||||||
switch (latchType) {
|
switch (latchType) {
|
||||||
case ILatchable::LEFT:
|
case ILatchable::Left:
|
||||||
alignType = IAlignable::ALIGN_LEFT;
|
alignType = IAlignable::AlignLeft;
|
||||||
break;
|
break;
|
||||||
case ILatchable::TOP:
|
case ILatchable::Top:
|
||||||
alignType = IAlignable::ALIGN_TOP;
|
alignType = IAlignable::AlignTop;
|
||||||
break;
|
break;
|
||||||
case ILatchable::RIGHT:
|
case ILatchable::Right:
|
||||||
alignType = IAlignable::ALIGN_RIGHT;
|
alignType = IAlignable::AlignRight;
|
||||||
break;
|
break;
|
||||||
case ILatchable::BOTTOM:
|
case ILatchable::Bottom:
|
||||||
alignType = IAlignable::ALIGN_BOTTOM;
|
alignType = IAlignable::AlignBottom;
|
||||||
break;
|
break;
|
||||||
case ILatchable::HCENTER:
|
case ILatchable::Hcenter:
|
||||||
alignType = IAlignable::ALIGN_HCENTER;
|
alignType = IAlignable::AlignHcenter;
|
||||||
break;
|
break;
|
||||||
case ILatchable::VCENTER:
|
case ILatchable::Vcenter:
|
||||||
alignType = IAlignable::ALIGN_VCENTER;
|
alignType = IAlignable::AlignVcenter;
|
||||||
break;
|
break;
|
||||||
case ILatchable::NONE:
|
case ILatchable::None:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -563,7 +563,7 @@ IAlignable::AlignType ObjectItem::translateLatchTypeToAlignType(ILatchable::Latc
|
|||||||
const Style *ObjectItem::adaptedStyle(const QString &stereotypeIconId)
|
const Style *ObjectItem::adaptedStyle(const QString &stereotypeIconId)
|
||||||
{
|
{
|
||||||
QList<const DObject *> collidingObjects;
|
QList<const DObject *> collidingObjects;
|
||||||
foreach (const QGraphicsItem *item, m_diagramSceneModel->collectCollidingObjectItems(this, DiagramSceneModel::COLLIDING_ITEMS)) {
|
foreach (const QGraphicsItem *item, m_diagramSceneModel->collectCollidingObjectItems(this, DiagramSceneModel::CollidingItems)) {
|
||||||
if (const ObjectItem *objectItem = dynamic_cast<const ObjectItem *>(item)) {
|
if (const ObjectItem *objectItem = dynamic_cast<const ObjectItem *>(item)) {
|
||||||
collidingObjects.append(objectItem->object());
|
collidingObjects.append(objectItem->object());
|
||||||
}
|
}
|
||||||
@@ -594,7 +594,7 @@ bool ObjectItem::showContext() const
|
|||||||
QMT_CHECK(mobject);
|
QMT_CHECK(mobject);
|
||||||
MObject *owner = mobject->owner();
|
MObject *owner = mobject->owner();
|
||||||
if (owner) {
|
if (owner) {
|
||||||
foreach (QGraphicsItem *item, m_diagramSceneModel->collectCollidingObjectItems(this, DiagramSceneModel::COLLIDING_OUTER_ITEMS)) {
|
foreach (QGraphicsItem *item, m_diagramSceneModel->collectCollidingObjectItems(this, DiagramSceneModel::CollidingOuterItems)) {
|
||||||
if (ObjectItem *objectItem = dynamic_cast<ObjectItem *>(item)) {
|
if (ObjectItem *objectItem = dynamic_cast<ObjectItem *>(item)) {
|
||||||
if (objectItem->object()->modelUid().isValid() && objectItem->object()->modelUid() == owner->uid()) {
|
if (objectItem->object()->modelUid().isValid() && objectItem->object()->modelUid() == owner->uid()) {
|
||||||
showContext = false;
|
showContext = false;
|
||||||
@@ -716,23 +716,23 @@ void ObjectItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
|
|||||||
} else if (action->id() == QStringLiteral("selectInModelTree")) {
|
} else if (action->id() == QStringLiteral("selectInModelTree")) {
|
||||||
// TODO implement
|
// TODO implement
|
||||||
} else if (action->id() == QStringLiteral("alignLeft")) {
|
} else if (action->id() == QStringLiteral("alignLeft")) {
|
||||||
align(IAlignable::ALIGN_LEFT, QStringLiteral("left"));
|
align(IAlignable::AlignLeft, QStringLiteral("left"));
|
||||||
} else if (action->id() == QStringLiteral("centerVertically")) {
|
} else if (action->id() == QStringLiteral("centerVertically")) {
|
||||||
align(IAlignable::ALIGN_VCENTER, QStringLiteral("center"));
|
align(IAlignable::AlignVcenter, QStringLiteral("center"));
|
||||||
} else if (action->id() == QStringLiteral("alignRight")) {
|
} else if (action->id() == QStringLiteral("alignRight")) {
|
||||||
align(IAlignable::ALIGN_RIGHT, QStringLiteral("right"));
|
align(IAlignable::AlignRight, QStringLiteral("right"));
|
||||||
} else if (action->id() == QStringLiteral("alignTop")) {
|
} else if (action->id() == QStringLiteral("alignTop")) {
|
||||||
align(IAlignable::ALIGN_TOP, QStringLiteral("top"));
|
align(IAlignable::AlignTop, QStringLiteral("top"));
|
||||||
} else if (action->id() == QStringLiteral("centerHorizontally")) {
|
} else if (action->id() == QStringLiteral("centerHorizontally")) {
|
||||||
align(IAlignable::ALIGN_HCENTER, QStringLiteral("center"));
|
align(IAlignable::AlignHcenter, QStringLiteral("center"));
|
||||||
} else if (action->id() == QStringLiteral("alignBottom")) {
|
} else if (action->id() == QStringLiteral("alignBottom")) {
|
||||||
align(IAlignable::ALIGN_BOTTOM, QStringLiteral("bottom"));
|
align(IAlignable::AlignBottom, QStringLiteral("bottom"));
|
||||||
} else if (action->id() == QStringLiteral("sameWidth")) {
|
} else if (action->id() == QStringLiteral("sameWidth")) {
|
||||||
align(IAlignable::ALIGN_WIDTH, QStringLiteral("width"));
|
align(IAlignable::AlignWidth, QStringLiteral("width"));
|
||||||
} else if (action->id() == QStringLiteral("sameHeight")) {
|
} else if (action->id() == QStringLiteral("sameHeight")) {
|
||||||
align(IAlignable::ALIGN_HEIGHT, QStringLiteral("height"));
|
align(IAlignable::AlignHeight, QStringLiteral("height"));
|
||||||
} else if (action->id() == QStringLiteral("sameSize")) {
|
} else if (action->id() == QStringLiteral("sameSize")) {
|
||||||
align(IAlignable::ALIGN_SIZE, QStringLiteral("size"));
|
align(IAlignable::AlignSize, QStringLiteral("size"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,11 +75,11 @@ class ObjectItem :
|
|||||||
protected:
|
protected:
|
||||||
|
|
||||||
enum ResizeFlags {
|
enum ResizeFlags {
|
||||||
RESIZE_UNLOCKED,
|
ResizeUnlocked,
|
||||||
RESIZE_LOCKED_SIZE,
|
ResizeLockedSize,
|
||||||
RESIZE_LOCKED_WIDTH,
|
ResizeLockedWidth,
|
||||||
RESIZE_LOCKED_HEIGHT,
|
ResizeLockedHeight,
|
||||||
RESIZE_LOCKED_RATIO
|
ResizeLockedRatio
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ void PackageItem::update()
|
|||||||
const Style *style = adaptedStyle(stereotypeIconId());
|
const Style *style = adaptedStyle(stereotypeIconId());
|
||||||
|
|
||||||
// custom icon
|
// custom icon
|
||||||
if (stereotypeIconDisplay() == StereotypeIcon::DISPLAY_ICON) {
|
if (stereotypeIconDisplay() == StereotypeIcon::DisplayIcon) {
|
||||||
if (!m_customIcon) {
|
if (!m_customIcon) {
|
||||||
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
m_customIcon = new CustomIconItem(diagramSceneModel(), this);
|
||||||
}
|
}
|
||||||
@@ -161,7 +161,7 @@ void PackageItem::update()
|
|||||||
m_relationStarter = new RelationStarter(this, diagramSceneModel(), 0);
|
m_relationStarter = new RelationStarter(this, diagramSceneModel(), 0);
|
||||||
scene()->addItem(m_relationStarter);
|
scene()->addItem(m_relationStarter);
|
||||||
m_relationStarter->setZValue(RELATION_STARTER_ZVALUE);
|
m_relationStarter->setZValue(RELATION_STARTER_ZVALUE);
|
||||||
m_relationStarter->addArrow(QStringLiteral("dependency"), ArrowItem::SHAFT_DASHED, ArrowItem::HEAD_OPEN);
|
m_relationStarter->addArrow(QStringLiteral("dependency"), ArrowItem::ShaftDashed, ArrowItem::HeadOpen);
|
||||||
}
|
}
|
||||||
} else if (m_relationStarter) {
|
} else if (m_relationStarter) {
|
||||||
scene()->removeItem(m_relationStarter);
|
scene()->removeItem(m_relationStarter);
|
||||||
|
|||||||
@@ -84,20 +84,20 @@ public:
|
|||||||
stereotypeDisplayVisitor.setModelController(m_diagramSceneModel->diagramSceneController()->modelController());
|
stereotypeDisplayVisitor.setModelController(m_diagramSceneModel->diagramSceneController()->modelController());
|
||||||
stereotypeDisplayVisitor.setStereotypeController(m_diagramSceneModel->stereotypeController());
|
stereotypeDisplayVisitor.setStereotypeController(m_diagramSceneModel->stereotypeController());
|
||||||
baseObject->accept(&stereotypeDisplayVisitor);
|
baseObject->accept(&stereotypeDisplayVisitor);
|
||||||
lollipopDisplay = stereotypeDisplayVisitor.stereotypeDisplay() == DObject::STEREOTYPE_ICON;
|
lollipopDisplay = stereotypeDisplayVisitor.stereotypeDisplay() == DObject::StereotypeIcon;
|
||||||
}
|
}
|
||||||
if (lollipopDisplay) {
|
if (lollipopDisplay) {
|
||||||
m_arrow->setShaft(ArrowItem::SHAFT_SOLID);
|
m_arrow->setShaft(ArrowItem::ShaftSolid);
|
||||||
m_arrow->setEndHead(ArrowItem::HEAD_NONE);
|
m_arrow->setEndHead(ArrowItem::HeadNone);
|
||||||
} else if (baseIsInterface || inheritance->stereotypes().contains(QStringLiteral("realize"))) {
|
} else if (baseIsInterface || inheritance->stereotypes().contains(QStringLiteral("realize"))) {
|
||||||
m_arrow->setShaft(ArrowItem::SHAFT_DASHED);
|
m_arrow->setShaft(ArrowItem::ShaftDashed);
|
||||||
m_arrow->setEndHead(ArrowItem::HEAD_TRIANGLE);
|
m_arrow->setEndHead(ArrowItem::HeadTriangle);
|
||||||
} else {
|
} else {
|
||||||
m_arrow->setShaft(ArrowItem::SHAFT_SOLID);
|
m_arrow->setShaft(ArrowItem::ShaftSolid);
|
||||||
m_arrow->setEndHead(ArrowItem::HEAD_TRIANGLE);
|
m_arrow->setEndHead(ArrowItem::HeadTriangle);
|
||||||
}
|
}
|
||||||
m_arrow->setArrowSize(16.0);
|
m_arrow->setArrowSize(16.0);
|
||||||
m_arrow->setStartHead(ArrowItem::HEAD_NONE);
|
m_arrow->setStartHead(ArrowItem::HeadNone);
|
||||||
m_arrow->setPoints(m_points);
|
m_arrow->setPoints(m_points);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,25 +105,25 @@ public:
|
|||||||
{
|
{
|
||||||
Q_UNUSED(dependency);
|
Q_UNUSED(dependency);
|
||||||
|
|
||||||
ArrowItem::Head endAHead = ArrowItem::HEAD_NONE;
|
ArrowItem::Head endAHead = ArrowItem::HeadNone;
|
||||||
ArrowItem::Head endBHead = ArrowItem::HEAD_NONE;
|
ArrowItem::Head endBHead = ArrowItem::HeadNone;
|
||||||
bool isRealization = dependency->stereotypes().contains(QStringLiteral("realize"));
|
bool isRealization = dependency->stereotypes().contains(QStringLiteral("realize"));
|
||||||
switch (dependency->direction()) {
|
switch (dependency->direction()) {
|
||||||
case MDependency::A_TO_B:
|
case MDependency::AToB:
|
||||||
endBHead = isRealization ? ArrowItem::HEAD_TRIANGLE : ArrowItem::HEAD_OPEN;
|
endBHead = isRealization ? ArrowItem::HeadTriangle : ArrowItem::HeadOpen;
|
||||||
break;
|
break;
|
||||||
case MDependency::B_TO_A:
|
case MDependency::BToA:
|
||||||
endAHead = isRealization ? ArrowItem::HEAD_TRIANGLE : ArrowItem::HEAD_OPEN;
|
endAHead = isRealization ? ArrowItem::HeadTriangle : ArrowItem::HeadOpen;
|
||||||
break;
|
break;
|
||||||
case MDependency::BIDIRECTIONAL:
|
case MDependency::Bidirectional:
|
||||||
endAHead = ArrowItem::HEAD_OPEN;
|
endAHead = ArrowItem::HeadOpen;
|
||||||
endBHead = ArrowItem::HEAD_OPEN;
|
endBHead = ArrowItem::HeadOpen;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_arrow->setShaft(ArrowItem::SHAFT_DASHED);
|
m_arrow->setShaft(ArrowItem::ShaftDashed);
|
||||||
m_arrow->setArrowSize(12.0);
|
m_arrow->setArrowSize(12.0);
|
||||||
m_arrow->setStartHead(endAHead);
|
m_arrow->setStartHead(endAHead);
|
||||||
m_arrow->setEndHead(endBHead);
|
m_arrow->setEndHead(endBHead);
|
||||||
@@ -134,40 +134,40 @@ public:
|
|||||||
{
|
{
|
||||||
Q_UNUSED(association);
|
Q_UNUSED(association);
|
||||||
|
|
||||||
m_arrow->setShaft(ArrowItem::SHAFT_SOLID);
|
m_arrow->setShaft(ArrowItem::ShaftSolid);
|
||||||
m_arrow->setArrowSize(12.0);
|
m_arrow->setArrowSize(12.0);
|
||||||
m_arrow->setDiamondSize(12.0);
|
m_arrow->setDiamondSize(12.0);
|
||||||
|
|
||||||
ArrowItem::Head endAHead = ArrowItem::HEAD_NONE;
|
ArrowItem::Head endAHead = ArrowItem::HeadNone;
|
||||||
ArrowItem::Head endBHead = ArrowItem::HEAD_NONE;
|
ArrowItem::Head endBHead = ArrowItem::HeadNone;
|
||||||
|
|
||||||
bool aNav = association->endA().isNavigable();
|
bool aNav = association->endA().isNavigable();
|
||||||
bool bNav = association->endB().isNavigable();
|
bool bNav = association->endB().isNavigable();
|
||||||
|
|
||||||
bool aFlat = association->endA().kind() == MAssociationEnd::ASSOCIATION;
|
bool aFlat = association->endA().kind() == MAssociationEnd::Association;
|
||||||
bool bFlat = association->endB().kind() == MAssociationEnd::ASSOCIATION;
|
bool bFlat = association->endB().kind() == MAssociationEnd::Association;
|
||||||
|
|
||||||
switch (association->endA().kind()) {
|
switch (association->endA().kind()) {
|
||||||
case MAssociationEnd::ASSOCIATION:
|
case MAssociationEnd::Association:
|
||||||
endAHead = ((bNav && !aNav && bFlat) || (aNav && bNav && !bFlat)) ? ArrowItem::HEAD_FILLED_TRIANGLE : ArrowItem::HEAD_NONE;
|
endAHead = ((bNav && !aNav && bFlat) || (aNav && bNav && !bFlat)) ? ArrowItem::HeadFilledTriangle : ArrowItem::HeadNone;
|
||||||
break;
|
break;
|
||||||
case MAssociationEnd::AGGREGATION:
|
case MAssociationEnd::Aggregation:
|
||||||
endAHead = association->endB().isNavigable() ? ArrowItem::HEAD_DIAMOND_FILLED_TRIANGLE : ArrowItem::HEAD_DIAMOND;
|
endAHead = association->endB().isNavigable() ? ArrowItem::HeadDiamondFilledTriangle : ArrowItem::HeadDiamond;
|
||||||
break;
|
break;
|
||||||
case MAssociationEnd::COMPOSITION:
|
case MAssociationEnd::Composition:
|
||||||
endAHead = association->endB().isNavigable() ? ArrowItem::HEAD_FILLED_DIAMOND_FILLED_TRIANGLE : ArrowItem::HEAD_FILLED_DIAMOND;
|
endAHead = association->endB().isNavigable() ? ArrowItem::HeadFilledDiamondFilledTriangle : ArrowItem::HeadFilledDiamond;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (association->endB().kind()) {
|
switch (association->endB().kind()) {
|
||||||
case MAssociationEnd::ASSOCIATION:
|
case MAssociationEnd::Association:
|
||||||
endBHead = ((aNav && !bNav && aFlat) || (aNav && bNav && !aFlat)) ? ArrowItem::HEAD_FILLED_TRIANGLE : ArrowItem::HEAD_NONE;
|
endBHead = ((aNav && !bNav && aFlat) || (aNav && bNav && !aFlat)) ? ArrowItem::HeadFilledTriangle : ArrowItem::HeadNone;
|
||||||
break;
|
break;
|
||||||
case MAssociationEnd::AGGREGATION:
|
case MAssociationEnd::Aggregation:
|
||||||
endBHead = association->endA().isNavigable() ? ArrowItem::HEAD_DIAMOND_FILLED_TRIANGLE : ArrowItem::HEAD_DIAMOND;
|
endBHead = association->endA().isNavigable() ? ArrowItem::HeadDiamondFilledTriangle : ArrowItem::HeadDiamond;
|
||||||
break;
|
break;
|
||||||
case MAssociationEnd::COMPOSITION:
|
case MAssociationEnd::Composition:
|
||||||
endBHead = association->endA().isNavigable() ? ArrowItem::HEAD_FILLED_DIAMOND_FILLED_TRIANGLE : ArrowItem::HEAD_FILLED_DIAMOND;
|
endBHead = association->endA().isNavigable() ? ArrowItem::HeadFilledDiamondFilledTriangle : ArrowItem::HeadFilledDiamond;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -245,7 +245,7 @@ QPainterPath RelationItem::shape() const
|
|||||||
|
|
||||||
void RelationItem::moveDelta(const QPointF &delta)
|
void RelationItem::moveDelta(const QPointF &delta)
|
||||||
{
|
{
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UpdateGeometry);
|
||||||
QList<DRelation::IntermediatePoint> points;
|
QList<DRelation::IntermediatePoint> points;
|
||||||
foreach (const DRelation::IntermediatePoint &point, m_relation->intermediatePoints()) {
|
foreach (const DRelation::IntermediatePoint &point, m_relation->intermediatePoints()) {
|
||||||
points << DRelation::IntermediatePoint(point.pos() + delta);
|
points << DRelation::IntermediatePoint(point.pos() + delta);
|
||||||
@@ -256,7 +256,7 @@ void RelationItem::moveDelta(const QPointF &delta)
|
|||||||
|
|
||||||
void RelationItem::alignItemPositionToRaster(double rasterWidth, double rasterHeight)
|
void RelationItem::alignItemPositionToRaster(double rasterWidth, double rasterHeight)
|
||||||
{
|
{
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UpdateGeometry);
|
||||||
QList<DRelation::IntermediatePoint> points;
|
QList<DRelation::IntermediatePoint> points;
|
||||||
foreach (const DRelation::IntermediatePoint &point, m_relation->intermediatePoints()) {
|
foreach (const DRelation::IntermediatePoint &point, m_relation->intermediatePoints()) {
|
||||||
QPointF pos = point.pos();
|
QPointF pos = point.pos();
|
||||||
@@ -316,7 +316,7 @@ void RelationItem::insertHandle(int beforeIndex, const QPointF &pos)
|
|||||||
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->intermediatePoints();
|
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->intermediatePoints();
|
||||||
intermediatePoints.insert(beforeIndex - 1, DRelation::IntermediatePoint(pos));
|
intermediatePoints.insert(beforeIndex - 1, DRelation::IntermediatePoint(pos));
|
||||||
|
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_MAJOR);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UpdateMajor);
|
||||||
m_relation->setIntermediatePoints(intermediatePoints);
|
m_relation->setIntermediatePoints(intermediatePoints);
|
||||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
||||||
}
|
}
|
||||||
@@ -328,7 +328,7 @@ void RelationItem::deleteHandle(int index)
|
|||||||
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->intermediatePoints();
|
QList<DRelation::IntermediatePoint> intermediatePoints = m_relation->intermediatePoints();
|
||||||
intermediatePoints.removeAt(index - 1);
|
intermediatePoints.removeAt(index - 1);
|
||||||
|
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_MAJOR);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UpdateMajor);
|
||||||
m_relation->setIntermediatePoints(intermediatePoints);
|
m_relation->setIntermediatePoints(intermediatePoints);
|
||||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
||||||
}
|
}
|
||||||
@@ -346,7 +346,7 @@ void RelationItem::setHandlePos(int index, const QPointF &pos)
|
|||||||
QMT_CHECK(index >= 0 && index < intermediatePoints.size());
|
QMT_CHECK(index >= 0 && index < intermediatePoints.size());
|
||||||
intermediatePoints[index].setPos(pos);
|
intermediatePoints[index].setPos(pos);
|
||||||
|
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_MINOR);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UpdateMinor);
|
||||||
m_relation->setIntermediatePoints(intermediatePoints);
|
m_relation->setIntermediatePoints(intermediatePoints);
|
||||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
||||||
}
|
}
|
||||||
@@ -368,7 +368,7 @@ void RelationItem::alignHandleToRaster(int index, double rasterWidth, double ras
|
|||||||
double y = qRound(pos.y() / rasterHeight) * rasterHeight;
|
double y = qRound(pos.y() / rasterHeight) * rasterHeight;
|
||||||
intermediatePoints[index].setPos(QPointF(x, y));
|
intermediatePoints[index].setPos(QPointF(x, y));
|
||||||
|
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UPDATE_MINOR);
|
m_diagramSceneModel->diagramController()->startUpdateElement(m_relation, m_diagramSceneModel->diagram(), DiagramController::UpdateMinor);
|
||||||
m_relation->setIntermediatePoints(intermediatePoints);
|
m_relation->setIntermediatePoints(intermediatePoints);
|
||||||
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
m_diagramSceneModel->diagramController()->finishUpdateElement(m_relation, m_diagramSceneModel->diagram(), false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,9 +46,9 @@ StereotypeDisplayVisitor::StereotypeDisplayVisitor()
|
|||||||
: DConstVoidVisitor(),
|
: DConstVoidVisitor(),
|
||||||
m_modelController(0),
|
m_modelController(0),
|
||||||
m_stereotypeController(0),
|
m_stereotypeController(0),
|
||||||
m_stereotypeDisplay(DObject::STEREOTYPE_NONE),
|
m_stereotypeDisplay(DObject::StereotypeNone),
|
||||||
m_stereotypeIconElement(StereotypeIcon::ELEMENT_ANY),
|
m_stereotypeIconElement(StereotypeIcon::ElementAny),
|
||||||
m_stereotypeSmartDisplay(DObject::STEREOTYPE_DECORATION)
|
m_stereotypeSmartDisplay(DObject::StereotypeDecoration)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,19 +70,19 @@ void StereotypeDisplayVisitor::setStereotypeController(StereotypeController *ste
|
|||||||
StereotypeIcon::Display StereotypeDisplayVisitor::stereotypeIconDisplay() const
|
StereotypeIcon::Display StereotypeDisplayVisitor::stereotypeIconDisplay() const
|
||||||
{
|
{
|
||||||
switch (m_stereotypeDisplay) {
|
switch (m_stereotypeDisplay) {
|
||||||
case DObject::STEREOTYPE_NONE:
|
case DObject::StereotypeNone:
|
||||||
return StereotypeIcon::DISPLAY_NONE;
|
return StereotypeIcon::DisplayNone;
|
||||||
case DObject::STEREOTYPE_LABEL:
|
case DObject::StereotypeLabel:
|
||||||
return StereotypeIcon::DISPLAY_LABEL;
|
return StereotypeIcon::DisplayLabel;
|
||||||
case DObject::STEREOTYPE_DECORATION:
|
case DObject::StereotypeDecoration:
|
||||||
return StereotypeIcon::DISPLAY_DECORATION;
|
return StereotypeIcon::DisplayDecoration;
|
||||||
case DObject::STEREOTYPE_ICON:
|
case DObject::StereotypeIcon:
|
||||||
return StereotypeIcon::DISPLAY_ICON;
|
return StereotypeIcon::DisplayIcon;
|
||||||
case DObject::STEREOTYPE_SMART:
|
case DObject::StereotypeSmart:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
return StereotypeIcon::DISPLAY_SMART;
|
return StereotypeIcon::DisplaySmart;
|
||||||
}
|
}
|
||||||
return StereotypeIcon::DISPLAY_LABEL;
|
return StereotypeIcon::DisplayLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StereotypeDisplayVisitor::visitDObject(const DObject *object)
|
void StereotypeDisplayVisitor::visitDObject(const DObject *object)
|
||||||
@@ -90,33 +90,33 @@ void StereotypeDisplayVisitor::visitDObject(const DObject *object)
|
|||||||
DObject::StereotypeDisplay stereotypeDisplay = object->stereotypeDisplay();
|
DObject::StereotypeDisplay stereotypeDisplay = object->stereotypeDisplay();
|
||||||
m_stereotypeIconId = m_stereotypeController->findStereotypeIconId(m_stereotypeIconElement, object->stereotypes());
|
m_stereotypeIconId = m_stereotypeController->findStereotypeIconId(m_stereotypeIconElement, object->stereotypes());
|
||||||
|
|
||||||
if (m_stereotypeIconId.isEmpty() && stereotypeDisplay == DObject::STEREOTYPE_ICON) {
|
if (m_stereotypeIconId.isEmpty() && stereotypeDisplay == DObject::StereotypeIcon) {
|
||||||
stereotypeDisplay = DObject::STEREOTYPE_LABEL;
|
stereotypeDisplay = DObject::StereotypeLabel;
|
||||||
} else if (!m_stereotypeIconId.isEmpty() && stereotypeDisplay == DObject::STEREOTYPE_SMART) {
|
} else if (!m_stereotypeIconId.isEmpty() && stereotypeDisplay == DObject::StereotypeSmart) {
|
||||||
StereotypeIcon stereotypeIcon = m_stereotypeController->findStereotypeIcon(m_stereotypeIconId);
|
StereotypeIcon stereotypeIcon = m_stereotypeController->findStereotypeIcon(m_stereotypeIconId);
|
||||||
StereotypeIcon::Display iconDisplay = stereotypeIcon.display();
|
StereotypeIcon::Display iconDisplay = stereotypeIcon.display();
|
||||||
switch (iconDisplay) {
|
switch (iconDisplay) {
|
||||||
case StereotypeIcon::DISPLAY_NONE:
|
case StereotypeIcon::DisplayNone:
|
||||||
stereotypeDisplay = DObject::STEREOTYPE_NONE;
|
stereotypeDisplay = DObject::StereotypeNone;
|
||||||
break;
|
break;
|
||||||
case StereotypeIcon::DISPLAY_LABEL:
|
case StereotypeIcon::DisplayLabel:
|
||||||
stereotypeDisplay = DObject::STEREOTYPE_LABEL;
|
stereotypeDisplay = DObject::StereotypeLabel;
|
||||||
break;
|
break;
|
||||||
case StereotypeIcon::DISPLAY_DECORATION:
|
case StereotypeIcon::DisplayDecoration:
|
||||||
stereotypeDisplay = DObject::STEREOTYPE_DECORATION;
|
stereotypeDisplay = DObject::StereotypeDecoration;
|
||||||
break;
|
break;
|
||||||
case StereotypeIcon::DISPLAY_ICON:
|
case StereotypeIcon::DisplayIcon:
|
||||||
stereotypeDisplay = DObject::STEREOTYPE_ICON;
|
stereotypeDisplay = DObject::StereotypeIcon;
|
||||||
break;
|
break;
|
||||||
case StereotypeIcon::DISPLAY_SMART:
|
case StereotypeIcon::DisplaySmart:
|
||||||
stereotypeDisplay = m_stereotypeSmartDisplay;
|
stereotypeDisplay = m_stereotypeSmartDisplay;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (stereotypeDisplay == DObject::STEREOTYPE_SMART) {
|
if (stereotypeDisplay == DObject::StereotypeSmart) {
|
||||||
stereotypeDisplay = DObject::STEREOTYPE_LABEL;
|
stereotypeDisplay = DObject::StereotypeLabel;
|
||||||
}
|
}
|
||||||
if (stereotypeDisplay == DObject::STEREOTYPE_ICON && m_shapeIconId.isEmpty()) {
|
if (stereotypeDisplay == DObject::StereotypeIcon && m_shapeIconId.isEmpty()) {
|
||||||
m_shapeIconId = m_stereotypeIconId;
|
m_shapeIconId = m_stereotypeIconId;
|
||||||
}
|
}
|
||||||
m_stereotypeDisplay = stereotypeDisplay;
|
m_stereotypeDisplay = stereotypeDisplay;
|
||||||
@@ -124,47 +124,47 @@ void StereotypeDisplayVisitor::visitDObject(const DObject *object)
|
|||||||
|
|
||||||
void StereotypeDisplayVisitor::visitDPackage(const DPackage *package)
|
void StereotypeDisplayVisitor::visitDPackage(const DPackage *package)
|
||||||
{
|
{
|
||||||
m_stereotypeIconElement = StereotypeIcon::ELEMENT_PACKAGE;
|
m_stereotypeIconElement = StereotypeIcon::ElementPackage;
|
||||||
m_stereotypeSmartDisplay = DObject::STEREOTYPE_DECORATION;
|
m_stereotypeSmartDisplay = DObject::StereotypeDecoration;
|
||||||
visitDObject(package);
|
visitDObject(package);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StereotypeDisplayVisitor::visitDClass(const DClass *klass)
|
void StereotypeDisplayVisitor::visitDClass(const DClass *klass)
|
||||||
{
|
{
|
||||||
m_stereotypeIconElement = StereotypeIcon::ELEMENT_CLASS;
|
m_stereotypeIconElement = StereotypeIcon::ElementClass;
|
||||||
MClass *modelKlass = m_modelController->findObject<MClass>(klass->modelUid());
|
MClass *modelKlass = m_modelController->findObject<MClass>(klass->modelUid());
|
||||||
bool hasMembers = false;
|
bool hasMembers = false;
|
||||||
if (!modelKlass->members().isEmpty() && klass->showAllMembers()) {
|
if (!modelKlass->members().isEmpty() && klass->showAllMembers()) {
|
||||||
hasMembers = true;
|
hasMembers = true;
|
||||||
}
|
}
|
||||||
m_stereotypeSmartDisplay = hasMembers ? DObject::STEREOTYPE_DECORATION : DObject::STEREOTYPE_ICON;
|
m_stereotypeSmartDisplay = hasMembers ? DObject::StereotypeDecoration : DObject::StereotypeIcon;
|
||||||
visitDObject(klass);
|
visitDObject(klass);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StereotypeDisplayVisitor::visitDComponent(const DComponent *component)
|
void StereotypeDisplayVisitor::visitDComponent(const DComponent *component)
|
||||||
{
|
{
|
||||||
m_stereotypeIconElement = StereotypeIcon::ELEMENT_COMPONENT;
|
m_stereotypeIconElement = StereotypeIcon::ElementComponent;
|
||||||
m_stereotypeSmartDisplay = DObject::STEREOTYPE_ICON;
|
m_stereotypeSmartDisplay = DObject::StereotypeIcon;
|
||||||
visitDObject(component);
|
visitDObject(component);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StereotypeDisplayVisitor::visitDDiagram(const DDiagram *diagram)
|
void StereotypeDisplayVisitor::visitDDiagram(const DDiagram *diagram)
|
||||||
{
|
{
|
||||||
m_stereotypeIconElement = StereotypeIcon::ELEMENT_DIAGRAM;
|
m_stereotypeIconElement = StereotypeIcon::ElementDiagram;
|
||||||
m_stereotypeSmartDisplay = DObject::STEREOTYPE_DECORATION;
|
m_stereotypeSmartDisplay = DObject::StereotypeDecoration;
|
||||||
visitDObject(diagram);
|
visitDObject(diagram);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StereotypeDisplayVisitor::visitDItem(const DItem *item)
|
void StereotypeDisplayVisitor::visitDItem(const DItem *item)
|
||||||
{
|
{
|
||||||
m_stereotypeIconElement = StereotypeIcon::ELEMENT_ITEM;
|
m_stereotypeIconElement = StereotypeIcon::ElementItem;
|
||||||
m_stereotypeSmartDisplay = DObject::STEREOTYPE_ICON;
|
m_stereotypeSmartDisplay = DObject::StereotypeIcon;
|
||||||
visitDObject(item);
|
visitDObject(item);
|
||||||
if (m_stereotypeIconId.isEmpty() && !item->shape().isEmpty()) {
|
if (m_stereotypeIconId.isEmpty() && !item->shape().isEmpty()) {
|
||||||
m_shapeIconId = m_stereotypeController->findStereotypeIconId(StereotypeIcon::ELEMENT_ITEM, QStringList() << item->shape());
|
m_shapeIconId = m_stereotypeController->findStereotypeIconId(StereotypeIcon::ElementItem, QStringList() << item->shape());
|
||||||
}
|
}
|
||||||
if (m_shapeIconId.isEmpty() && !item->variety().isEmpty()) {
|
if (m_shapeIconId.isEmpty() && !item->variety().isEmpty()) {
|
||||||
m_shapeIconId = m_stereotypeController->findStereotypeIconId(StereotypeIcon::ELEMENT_ITEM, QStringList() << item->variety());
|
m_shapeIconId = m_stereotypeController->findStereotypeIconId(StereotypeIcon::ElementItem, QStringList() << item->variety());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ namespace qmt {
|
|||||||
LatchController::LatchController(QObject *parent)
|
LatchController::LatchController(QObject *parent)
|
||||||
: QObject(parent),
|
: QObject(parent),
|
||||||
m_diagramSceneModel(0),
|
m_diagramSceneModel(0),
|
||||||
m_horizontalAlignLine(new AlignLineItem(AlignLineItem::HORIZONTAL, 0)),
|
m_horizontalAlignLine(new AlignLineItem(AlignLineItem::Horizontal, 0)),
|
||||||
m_verticalAlignLine(new AlignLineItem(AlignLineItem::VERTICAL, 0)),
|
m_verticalAlignLine(new AlignLineItem(AlignLineItem::Vertical, 0)),
|
||||||
m_foundHorizontalLatch(false),
|
m_foundHorizontalLatch(false),
|
||||||
m_horizontalDist(0.0),
|
m_horizontalDist(0.0),
|
||||||
m_foundVerticalLatch(false),
|
m_foundVerticalLatch(false),
|
||||||
@@ -124,8 +124,8 @@ void LatchController::mouseMoveEventLatching(QGraphicsSceneMouseEvent *event)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ILatchable::Action horizAction = ILatchable::MOVE;
|
ILatchable::Action horizAction = ILatchable::Move;
|
||||||
ILatchable::Action vertAction = ILatchable::MOVE;
|
ILatchable::Action vertAction = ILatchable::Move;
|
||||||
|
|
||||||
QList<ILatchable::Latch> palpedHorizontals = palpedLatchable->horizontalLatches(horizAction, true);
|
QList<ILatchable::Latch> palpedHorizontals = palpedLatchable->horizontalLatches(horizAction, true);
|
||||||
QList<ILatchable::Latch> palpedVerticals = palpedLatchable->verticalLatches(vertAction, true);
|
QList<ILatchable::Latch> palpedVerticals = palpedLatchable->verticalLatches(vertAction, true);
|
||||||
@@ -174,19 +174,19 @@ void LatchController::mouseMoveEventLatching(QGraphicsSceneMouseEvent *event)
|
|||||||
|
|
||||||
if (foundBestHoriz) {
|
if (foundBestHoriz) {
|
||||||
switch (bestHorizLatch.m_latchType) {
|
switch (bestHorizLatch.m_latchType) {
|
||||||
case ILatchable::LEFT:
|
case ILatchable::Left:
|
||||||
case ILatchable::RIGHT:
|
case ILatchable::Right:
|
||||||
case ILatchable::HCENTER:
|
case ILatchable::Hcenter:
|
||||||
m_verticalAlignLine->setLine(bestHorizLatch.m_pos, bestHorizLatch.m_otherPos1, bestHorizLatch.m_otherPos2);
|
m_verticalAlignLine->setLine(bestHorizLatch.m_pos, bestHorizLatch.m_otherPos1, bestHorizLatch.m_otherPos2);
|
||||||
m_verticalAlignLine->setVisible(true);
|
m_verticalAlignLine->setVisible(true);
|
||||||
m_foundHorizontalLatch = true;
|
m_foundHorizontalLatch = true;
|
||||||
m_horizontalLatch = bestHorizLatch;
|
m_horizontalLatch = bestHorizLatch;
|
||||||
m_horizontalDist = horizMinDist;
|
m_horizontalDist = horizMinDist;
|
||||||
break;
|
break;
|
||||||
case ILatchable::NONE:
|
case ILatchable::None:
|
||||||
case ILatchable::TOP:
|
case ILatchable::Top:
|
||||||
case ILatchable::BOTTOM:
|
case ILatchable::Bottom:
|
||||||
case ILatchable::VCENTER:
|
case ILatchable::Vcenter:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -196,19 +196,19 @@ void LatchController::mouseMoveEventLatching(QGraphicsSceneMouseEvent *event)
|
|||||||
|
|
||||||
if (foundBestVert) {
|
if (foundBestVert) {
|
||||||
switch (bestVertLatch.m_latchType) {
|
switch (bestVertLatch.m_latchType) {
|
||||||
case ILatchable::TOP:
|
case ILatchable::Top:
|
||||||
case ILatchable::BOTTOM:
|
case ILatchable::Bottom:
|
||||||
case ILatchable::VCENTER:
|
case ILatchable::Vcenter:
|
||||||
m_horizontalAlignLine->setLine(bestVertLatch.m_pos, bestVertLatch.m_otherPos1, bestVertLatch.m_otherPos2);
|
m_horizontalAlignLine->setLine(bestVertLatch.m_pos, bestVertLatch.m_otherPos1, bestVertLatch.m_otherPos2);
|
||||||
m_horizontalAlignLine->setVisible(true);
|
m_horizontalAlignLine->setVisible(true);
|
||||||
m_foundVerticalLatch = true;
|
m_foundVerticalLatch = true;
|
||||||
m_verticalLatch = bestVertLatch;
|
m_verticalLatch = bestVertLatch;
|
||||||
m_verticalDist = vertMinDist;
|
m_verticalDist = vertMinDist;
|
||||||
break;
|
break;
|
||||||
case ILatchable::NONE:
|
case ILatchable::None:
|
||||||
case ILatchable::LEFT:
|
case ILatchable::Left:
|
||||||
case ILatchable::RIGHT:
|
case ILatchable::Right:
|
||||||
case ILatchable::HCENTER:
|
case ILatchable::Hcenter:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -223,13 +223,13 @@ void LatchController::mouseReleaseEventLatching(QGraphicsSceneMouseEvent *event)
|
|||||||
|
|
||||||
if (m_foundHorizontalLatch) {
|
if (m_foundHorizontalLatch) {
|
||||||
switch (m_horizontalLatch.m_latchType) {
|
switch (m_horizontalLatch.m_latchType) {
|
||||||
case ILatchable::LEFT:
|
case ILatchable::Left:
|
||||||
case ILatchable::RIGHT:
|
case ILatchable::Right:
|
||||||
case ILatchable::HCENTER:
|
case ILatchable::Hcenter:
|
||||||
foreach (QGraphicsItem *item, m_diagramSceneModel->selectedItems()) {
|
foreach (QGraphicsItem *item, m_diagramSceneModel->selectedItems()) {
|
||||||
DElement *element = m_diagramSceneModel->element(item);
|
DElement *element = m_diagramSceneModel->element(item);
|
||||||
if (DObject *selectedObject = dynamic_cast<DObject *>(element)) {
|
if (DObject *selectedObject = dynamic_cast<DObject *>(element)) {
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(selectedObject, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
m_diagramSceneModel->diagramController()->startUpdateElement(selectedObject, m_diagramSceneModel->diagram(), DiagramController::UpdateGeometry);
|
||||||
QPointF newPos = selectedObject->pos();
|
QPointF newPos = selectedObject->pos();
|
||||||
newPos.setX(newPos.x() + m_horizontalDist);
|
newPos.setX(newPos.x() + m_horizontalDist);
|
||||||
selectedObject->setPos(newPos);
|
selectedObject->setPos(newPos);
|
||||||
@@ -237,10 +237,10 @@ void LatchController::mouseReleaseEventLatching(QGraphicsSceneMouseEvent *event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ILatchable::NONE:
|
case ILatchable::None:
|
||||||
case ILatchable::TOP:
|
case ILatchable::Top:
|
||||||
case ILatchable::BOTTOM:
|
case ILatchable::Bottom:
|
||||||
case ILatchable::VCENTER:
|
case ILatchable::Vcenter:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -248,13 +248,13 @@ void LatchController::mouseReleaseEventLatching(QGraphicsSceneMouseEvent *event)
|
|||||||
|
|
||||||
if (m_foundVerticalLatch) {
|
if (m_foundVerticalLatch) {
|
||||||
switch (m_verticalLatch.m_latchType) {
|
switch (m_verticalLatch.m_latchType) {
|
||||||
case ILatchable::TOP:
|
case ILatchable::Top:
|
||||||
case ILatchable::BOTTOM:
|
case ILatchable::Bottom:
|
||||||
case ILatchable::VCENTER:
|
case ILatchable::Vcenter:
|
||||||
foreach (QGraphicsItem *item, m_diagramSceneModel->selectedItems()) {
|
foreach (QGraphicsItem *item, m_diagramSceneModel->selectedItems()) {
|
||||||
DElement *element = m_diagramSceneModel->element(item);
|
DElement *element = m_diagramSceneModel->element(item);
|
||||||
if (DObject *selectedObject = dynamic_cast<DObject *>(element)) {
|
if (DObject *selectedObject = dynamic_cast<DObject *>(element)) {
|
||||||
m_diagramSceneModel->diagramController()->startUpdateElement(selectedObject, m_diagramSceneModel->diagram(), DiagramController::UPDATE_GEOMETRY);
|
m_diagramSceneModel->diagramController()->startUpdateElement(selectedObject, m_diagramSceneModel->diagram(), DiagramController::UpdateGeometry);
|
||||||
QPointF newPos = selectedObject->pos();
|
QPointF newPos = selectedObject->pos();
|
||||||
newPos.setY(newPos.y() + m_verticalDist);
|
newPos.setY(newPos.y() + m_verticalDist);
|
||||||
selectedObject->setPos(newPos);
|
selectedObject->setPos(newPos);
|
||||||
@@ -262,10 +262,10 @@ void LatchController::mouseReleaseEventLatching(QGraphicsSceneMouseEvent *event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ILatchable::NONE:
|
case ILatchable::None:
|
||||||
case ILatchable::LEFT:
|
case ILatchable::Left:
|
||||||
case ILatchable::RIGHT:
|
case ILatchable::Right:
|
||||||
case ILatchable::HCENTER:
|
case ILatchable::Hcenter:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,8 +91,8 @@ public:
|
|||||||
|
|
||||||
void setPixmap(const QPixmap &pixmap)
|
void setPixmap(const QPixmap &pixmap)
|
||||||
{
|
{
|
||||||
setRect(0.0, 0.0, pixmap.width() + 2 * INNER_BORDER, pixmap.height() + 2 * INNER_BORDER);
|
setRect(0.0, 0.0, pixmap.width() + 2 * InnerBorder, pixmap.height() + 2 * InnerBorder);
|
||||||
m_pixmapItem->setPos(INNER_BORDER, INNER_BORDER);
|
m_pixmapItem->setPos(InnerBorder, InnerBorder);
|
||||||
m_pixmapItem->setPixmap(pixmap);
|
m_pixmapItem->setPixmap(pixmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,51 +142,51 @@ void AlignButtonsItem::addButton(IAlignable::AlignType alignType, const QString
|
|||||||
{
|
{
|
||||||
AlignButtonItem *item = new AlignButtonItem(alignType, identifier, m_alignable, this);
|
AlignButtonItem *item = new AlignButtonItem(alignType, identifier, m_alignable, this);
|
||||||
switch (alignType) {
|
switch (alignType) {
|
||||||
case IAlignable::ALIGN_LEFT:
|
case IAlignable::AlignLeft:
|
||||||
{
|
{
|
||||||
static const QPixmap alignLeftPixmap = QPixmap(QStringLiteral(":/modelinglib/25x25/align-left.png")).scaled(NORMAL_PIXMAP_WIDTH, NORMAL_PIXMAP_HEIGHT, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
static const QPixmap alignLeftPixmap = QPixmap(QStringLiteral(":/modelinglib/25x25/align-left.png")).scaled(NormalPixmapWidth, NormalPixmapHeight, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||||
item->setPixmap(alignLeftPixmap);
|
item->setPixmap(alignLeftPixmap);
|
||||||
item->setPos(pos - INNER_BORDER - 3.0, 0); // subtract additional shift of image within pixmap
|
item->setPos(pos - InnerBorder - 3.0, 0); // subtract additional shift of image within pixmap
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case IAlignable::ALIGN_RIGHT:
|
case IAlignable::AlignRight:
|
||||||
{
|
{
|
||||||
static const QPixmap alignRightPixmap = QPixmap(QStringLiteral(":/modelinglib/25x25/align-right.png")).scaled(NORMAL_PIXMAP_WIDTH, NORMAL_PIXMAP_HEIGHT, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
static const QPixmap alignRightPixmap = QPixmap(QStringLiteral(":/modelinglib/25x25/align-right.png")).scaled(NormalPixmapWidth, NormalPixmapHeight, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||||
item->setPixmap(alignRightPixmap);
|
item->setPixmap(alignRightPixmap);
|
||||||
item->setPos(pos - item->boundingRect().width() + INNER_BORDER + 3.0, 0);
|
item->setPos(pos - item->boundingRect().width() + InnerBorder + 3.0, 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case IAlignable::ALIGN_TOP:
|
case IAlignable::AlignTop:
|
||||||
{
|
{
|
||||||
static const QPixmap alignTopPixmap = QPixmap(QStringLiteral(":/modelinglib/25x25/align-top.png")).scaled(NORMAL_PIXMAP_WIDTH, NORMAL_PIXMAP_HEIGHT, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
static const QPixmap alignTopPixmap = QPixmap(QStringLiteral(":/modelinglib/25x25/align-top.png")).scaled(NormalPixmapWidth, NormalPixmapHeight, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||||
item->setPixmap(alignTopPixmap);
|
item->setPixmap(alignTopPixmap);
|
||||||
item->setPos(0, pos - INNER_BORDER - 3.0);
|
item->setPos(0, pos - InnerBorder - 3.0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case IAlignable::ALIGN_BOTTOM:
|
case IAlignable::AlignBottom:
|
||||||
{
|
{
|
||||||
static const QPixmap alignBottomPixmap = QPixmap(QStringLiteral(":/modelinglib/25x25/align-bottom.png")).scaled(NORMAL_PIXMAP_WIDTH, NORMAL_PIXMAP_HEIGHT, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
static const QPixmap alignBottomPixmap = QPixmap(QStringLiteral(":/modelinglib/25x25/align-bottom.png")).scaled(NormalPixmapWidth, NormalPixmapHeight, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||||
item->setPixmap(alignBottomPixmap);
|
item->setPixmap(alignBottomPixmap);
|
||||||
item->setPos(0, pos - item->boundingRect().height() + INNER_BORDER + 3.0);
|
item->setPos(0, pos - item->boundingRect().height() + InnerBorder + 3.0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case IAlignable::ALIGN_HCENTER:
|
case IAlignable::AlignHcenter:
|
||||||
{
|
{
|
||||||
static const QPixmap alignHorizontalPixmap = QPixmap(QStringLiteral(":/modelinglib/25x25/align-horizontal.png")).scaled(NORMAL_PIXMAP_WIDTH, NORMAL_PIXMAP_HEIGHT, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
static const QPixmap alignHorizontalPixmap = QPixmap(QStringLiteral(":/modelinglib/25x25/align-horizontal.png")).scaled(NormalPixmapWidth, NormalPixmapHeight, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||||
item->setPixmap(alignHorizontalPixmap);
|
item->setPixmap(alignHorizontalPixmap);
|
||||||
item->setPos(pos - item->boundingRect().center().x(), 0);
|
item->setPos(pos - item->boundingRect().center().x(), 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case IAlignable::ALIGN_VCENTER:
|
case IAlignable::AlignVcenter:
|
||||||
{
|
{
|
||||||
static const QPixmap alignVerticalPixmap = QPixmap(QStringLiteral(":/modelinglib/25x25/align-vertical.png")).scaled(NORMAL_PIXMAP_WIDTH, NORMAL_PIXMAP_HEIGHT, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
static const QPixmap alignVerticalPixmap = QPixmap(QStringLiteral(":/modelinglib/25x25/align-vertical.png")).scaled(NormalPixmapWidth, NormalPixmapHeight, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||||
item->setPixmap(alignVerticalPixmap);
|
item->setPixmap(alignVerticalPixmap);
|
||||||
item->setPos(0, pos - item->boundingRect().center().y());
|
item->setPos(0, pos - item->boundingRect().center().y());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case IAlignable::ALIGN_WIDTH:
|
case IAlignable::AlignWidth:
|
||||||
case IAlignable::ALIGN_HEIGHT:
|
case IAlignable::AlignHeight:
|
||||||
case IAlignable::ALIGN_SIZE:
|
case IAlignable::AlignSize:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,13 +49,13 @@ class AlignButtonsItem :
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
NORMAL_PIXMAP_WIDTH = 14,
|
NormalPixmapWidth = 14,
|
||||||
NORMAL_PIXMAP_HEIGHT = NORMAL_PIXMAP_WIDTH,
|
NormalPixmapHeight = NormalPixmapWidth,
|
||||||
INNER_BORDER = 2,
|
InnerBorder = 2,
|
||||||
NORMAL_BUTTON_WIDTH = NORMAL_PIXMAP_WIDTH + 2 * INNER_BORDER,
|
NormalButtonWidth = NormalPixmapWidth + 2 * InnerBorder,
|
||||||
NORMAL_BUTTON_HEIGHT = NORMAL_PIXMAP_HEIGHT + 2 * INNER_BORDER,
|
NormalButtonHeight = NormalPixmapHeight + 2 * InnerBorder,
|
||||||
HORIZONTAL_DISTANCE_TO_OBJECT = 4,
|
HorizontalDistanceToObject = 4,
|
||||||
VERTICAL_DISTANCE_TO_OBEJCT = HORIZONTAL_DISTANCE_TO_OBJECT
|
VerticalDistanceToObejct = HorizontalDistanceToObject
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -60,11 +60,11 @@ void AlignLineItem::setLine(qreal pos, qreal otherPos1, qreal otherPos2)
|
|||||||
{
|
{
|
||||||
QRectF sceneRect = scene()->sceneRect();
|
QRectF sceneRect = scene()->sceneRect();
|
||||||
switch (m_direction) {
|
switch (m_direction) {
|
||||||
case HORIZONTAL:
|
case Horizontal:
|
||||||
m_alignLine->setLine(sceneRect.left() + 1.0, pos, sceneRect.right() - 1.0, pos);
|
m_alignLine->setLine(sceneRect.left() + 1.0, pos, sceneRect.right() - 1.0, pos);
|
||||||
m_highlightLine->setLine(otherPos1, pos, otherPos2, pos);
|
m_highlightLine->setLine(otherPos1, pos, otherPos2, pos);
|
||||||
break;
|
break;
|
||||||
case VERTICAL:
|
case Vertical:
|
||||||
m_alignLine->setLine(pos, sceneRect.top() + 1.0, pos, sceneRect.bottom() - 1.0);
|
m_alignLine->setLine(pos, sceneRect.top() + 1.0, pos, sceneRect.bottom() - 1.0);
|
||||||
m_highlightLine->setLine(pos, otherPos1, pos, otherPos2);
|
m_highlightLine->setLine(pos, otherPos1, pos, otherPos2);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ class AlignLineItem :
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Direction {
|
enum Direction {
|
||||||
HORIZONTAL,
|
Horizontal,
|
||||||
VERTICAL
|
Vertical
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ class ArrowItem::GraphicsHeadItem :
|
|||||||
public:
|
public:
|
||||||
GraphicsHeadItem(QGraphicsItem *parent)
|
GraphicsHeadItem(QGraphicsItem *parent)
|
||||||
: QGraphicsItem(parent),
|
: QGraphicsItem(parent),
|
||||||
m_head(ArrowItem::HEAD_NONE),
|
m_head(ArrowItem::HeadNone),
|
||||||
m_arrowSize(10.0),
|
m_arrowSize(10.0),
|
||||||
m_diamondSize(15.0),
|
m_diamondSize(15.0),
|
||||||
m_arrowItem(0),
|
m_arrowItem(0),
|
||||||
@@ -152,19 +152,19 @@ public:
|
|||||||
{
|
{
|
||||||
double length = 0.0;
|
double length = 0.0;
|
||||||
switch (m_head) {
|
switch (m_head) {
|
||||||
case ArrowItem::HEAD_NONE:
|
case ArrowItem::HeadNone:
|
||||||
break;
|
break;
|
||||||
case ArrowItem::HEAD_OPEN:
|
case ArrowItem::HeadOpen:
|
||||||
case ArrowItem::HEAD_TRIANGLE:
|
case ArrowItem::HeadTriangle:
|
||||||
case ArrowItem::HEAD_FILLED_TRIANGLE:
|
case ArrowItem::HeadFilledTriangle:
|
||||||
length = calcArrowLength();
|
length = calcArrowLength();
|
||||||
break;
|
break;
|
||||||
case ArrowItem::HEAD_DIAMOND:
|
case ArrowItem::HeadDiamond:
|
||||||
case ArrowItem::HEAD_FILLED_DIAMOND:
|
case ArrowItem::HeadFilledDiamond:
|
||||||
length = calcDiamondLength();
|
length = calcDiamondLength();
|
||||||
break;
|
break;
|
||||||
case ArrowItem::HEAD_DIAMOND_FILLED_TRIANGLE:
|
case ArrowItem::HeadDiamondFilledTriangle:
|
||||||
case ArrowItem::HEAD_FILLED_DIAMOND_FILLED_TRIANGLE:
|
case ArrowItem::HeadFilledDiamondFilledTriangle:
|
||||||
length = calcDiamondLength() + calcArrowLength();
|
length = calcDiamondLength() + calcArrowLength();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -190,19 +190,19 @@ public:
|
|||||||
bool hasArrow = false;
|
bool hasArrow = false;
|
||||||
bool hasDiamond = false;
|
bool hasDiamond = false;
|
||||||
switch (m_head) {
|
switch (m_head) {
|
||||||
case ArrowItem::HEAD_NONE:
|
case ArrowItem::HeadNone:
|
||||||
break;
|
break;
|
||||||
case ArrowItem::HEAD_OPEN:
|
case ArrowItem::HeadOpen:
|
||||||
case ArrowItem::HEAD_TRIANGLE:
|
case ArrowItem::HeadTriangle:
|
||||||
case ArrowItem::HEAD_FILLED_TRIANGLE:
|
case ArrowItem::HeadFilledTriangle:
|
||||||
hasArrow = true;
|
hasArrow = true;
|
||||||
break;
|
break;
|
||||||
case ArrowItem::HEAD_DIAMOND:
|
case ArrowItem::HeadDiamond:
|
||||||
case ArrowItem::HEAD_FILLED_DIAMOND:
|
case ArrowItem::HeadFilledDiamond:
|
||||||
hasDiamond = true;
|
hasDiamond = true;
|
||||||
break;
|
break;
|
||||||
case ArrowItem::HEAD_DIAMOND_FILLED_TRIANGLE:
|
case ArrowItem::HeadDiamondFilledTriangle:
|
||||||
case ArrowItem::HEAD_FILLED_DIAMOND_FILLED_TRIANGLE:
|
case ArrowItem::HeadFilledDiamondFilledTriangle:
|
||||||
hasArrow = true;
|
hasArrow = true;
|
||||||
hasDiamond = true;
|
hasDiamond = true;
|
||||||
break;
|
break;
|
||||||
@@ -213,7 +213,7 @@ public:
|
|||||||
m_arrowItem = new ArrowItem::GraphicsPathItem(this);
|
m_arrowItem = new ArrowItem::GraphicsPathItem(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_head == ArrowItem::HEAD_OPEN || m_head == ArrowItem::HEAD_TRIANGLE) {
|
if (m_head == ArrowItem::HeadOpen || m_head == ArrowItem::HeadTriangle) {
|
||||||
m_arrowItem->setPen(style->linePen());
|
m_arrowItem->setPen(style->linePen());
|
||||||
m_arrowItem->setBrush(QBrush());
|
m_arrowItem->setBrush(QBrush());
|
||||||
} else {
|
} else {
|
||||||
@@ -226,7 +226,7 @@ public:
|
|||||||
path.moveTo(-h, -m_arrowSize * 0.5);
|
path.moveTo(-h, -m_arrowSize * 0.5);
|
||||||
path.lineTo(0.0, 0.0);
|
path.lineTo(0.0, 0.0);
|
||||||
path.lineTo(-h, m_arrowSize * 0.5);
|
path.lineTo(-h, m_arrowSize * 0.5);
|
||||||
if (m_head != ArrowItem::HEAD_OPEN) {
|
if (m_head != ArrowItem::HeadOpen) {
|
||||||
path.closeSubpath();
|
path.closeSubpath();
|
||||||
}
|
}
|
||||||
if (hasDiamond) {
|
if (hasDiamond) {
|
||||||
@@ -244,7 +244,7 @@ public:
|
|||||||
m_diamondItem = new ArrowItem::GraphicsPathItem(this);
|
m_diamondItem = new ArrowItem::GraphicsPathItem(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_head == ArrowItem::HEAD_DIAMOND || m_head == ArrowItem::HEAD_DIAMOND_FILLED_TRIANGLE) {
|
if (m_head == ArrowItem::HeadDiamond || m_head == ArrowItem::HeadDiamondFilledTriangle) {
|
||||||
m_diamondItem->setPen(style->linePen());
|
m_diamondItem->setPen(style->linePen());
|
||||||
m_diamondItem->setBrush(QBrush());
|
m_diamondItem->setBrush(QBrush());
|
||||||
} else {
|
} else {
|
||||||
@@ -294,13 +294,13 @@ public:
|
|||||||
|
|
||||||
ArrowItem::ArrowItem(QGraphicsItem *parent)
|
ArrowItem::ArrowItem(QGraphicsItem *parent)
|
||||||
: QGraphicsItem(parent),
|
: QGraphicsItem(parent),
|
||||||
m_shaft(SHAFT_SOLID),
|
m_shaft(ShaftSolid),
|
||||||
m_shaftItem(new GraphicsShaftItem(this)),
|
m_shaftItem(new GraphicsShaftItem(this)),
|
||||||
m_arrowSize(10.0),
|
m_arrowSize(10.0),
|
||||||
m_diamondSize(15.0),
|
m_diamondSize(15.0),
|
||||||
m_startHead(HEAD_NONE),
|
m_startHead(HeadNone),
|
||||||
m_startHeadItem(0),
|
m_startHeadItem(0),
|
||||||
m_endHead(HEAD_NONE),
|
m_endHead(HeadNone),
|
||||||
m_endHeadItem(0)
|
m_endHeadItem(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -458,7 +458,7 @@ void ArrowItem::updateShaft(const Style *style)
|
|||||||
QMT_CHECK(m_shaftItem);
|
QMT_CHECK(m_shaftItem);
|
||||||
|
|
||||||
QPen pen(style->linePen());
|
QPen pen(style->linePen());
|
||||||
if (m_shaft == SHAFT_DASHED) {
|
if (m_shaft == ShaftDashed) {
|
||||||
pen.setDashPattern(QVector<qreal>() << (4.0 / pen.widthF()) << (4.0 / pen.widthF()));
|
pen.setDashPattern(QVector<qreal>() << (4.0 / pen.widthF()) << (4.0 / pen.widthF()));
|
||||||
}
|
}
|
||||||
m_shaftItem->setPen(pen);
|
m_shaftItem->setPen(pen);
|
||||||
@@ -466,7 +466,7 @@ void ArrowItem::updateShaft(const Style *style)
|
|||||||
|
|
||||||
void ArrowItem::updateHead(GraphicsHeadItem **headItem, Head head, const Style *style)
|
void ArrowItem::updateHead(GraphicsHeadItem **headItem, Head head, const Style *style)
|
||||||
{
|
{
|
||||||
if (head == HEAD_NONE) {
|
if (head == HeadNone) {
|
||||||
if (*headItem) {
|
if (*headItem) {
|
||||||
if ((*headItem)->scene()) {
|
if ((*headItem)->scene()) {
|
||||||
(*headItem)->scene()->removeItem(*headItem);
|
(*headItem)->scene()->removeItem(*headItem);
|
||||||
|
|||||||
@@ -52,19 +52,19 @@ class ArrowItem :
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Shaft {
|
enum Shaft {
|
||||||
SHAFT_SOLID,
|
ShaftSolid,
|
||||||
SHAFT_DASHED
|
ShaftDashed
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Head {
|
enum Head {
|
||||||
HEAD_NONE,
|
HeadNone,
|
||||||
HEAD_OPEN,
|
HeadOpen,
|
||||||
HEAD_TRIANGLE,
|
HeadTriangle,
|
||||||
HEAD_FILLED_TRIANGLE,
|
HeadFilledTriangle,
|
||||||
HEAD_DIAMOND,
|
HeadDiamond,
|
||||||
HEAD_FILLED_DIAMOND,
|
HeadFilledDiamond,
|
||||||
HEAD_DIAMOND_FILLED_TRIANGLE,
|
HeadDiamondFilledTriangle,
|
||||||
HEAD_FILLED_DIAMOND_FILLED_TRIANGLE
|
HeadFilledDiamondFilledTriangle
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -54,9 +54,9 @@ class PathSelectionItem::GraphicsHandleItem :
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Selection {
|
enum Selection {
|
||||||
NOT_SELECTED,
|
NotSelected,
|
||||||
SELECTED,
|
Selected,
|
||||||
SECONDARY_SELECTED
|
SecondarySelected
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@@ -65,7 +65,7 @@ public:
|
|||||||
: QGraphicsRectItem(parent),
|
: QGraphicsRectItem(parent),
|
||||||
m_owner(parent),
|
m_owner(parent),
|
||||||
m_pointIndex(pointIndex),
|
m_pointIndex(pointIndex),
|
||||||
m_selection(NOT_SELECTED)
|
m_selection(NotSelected)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,20 +92,20 @@ protected:
|
|||||||
void mousePressEvent(QGraphicsSceneMouseEvent *event)
|
void mousePressEvent(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
m_startPos = mapToScene(event->pos());
|
m_startPos = mapToScene(event->pos());
|
||||||
m_qualifier = event->modifiers() & Qt::ControlModifier ? DELETE_HANDLE : NONE;
|
m_qualifier = event->modifiers() & Qt::ControlModifier ? DeleteHandle : None;
|
||||||
m_owner->moveHandle(m_pointIndex, QPointF(0.0, 0.0), PRESS, m_qualifier);
|
m_owner->moveHandle(m_pointIndex, QPointF(0.0, 0.0), Press, m_qualifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
QPointF delta = mapToScene(event->pos()) - m_startPos;
|
QPointF delta = mapToScene(event->pos()) - m_startPos;
|
||||||
m_owner->moveHandle(m_pointIndex, delta, MOVE, m_qualifier);
|
m_owner->moveHandle(m_pointIndex, delta, Move, m_qualifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
QPointF delta = mapToScene(event->pos()) - m_startPos;
|
QPointF delta = mapToScene(event->pos()) - m_startPos;
|
||||||
m_owner->moveHandle(m_pointIndex, delta, RELEASE, m_qualifier);
|
m_owner->moveHandle(m_pointIndex, delta, Release, m_qualifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -115,15 +115,15 @@ private:
|
|||||||
prepareGeometryChange();
|
prepareGeometryChange();
|
||||||
setRect(-m_pointSize.width() / 2.0, -m_pointSize.height() / 2.0, m_pointSize.width(), m_pointSize.height());
|
setRect(-m_pointSize.width() / 2.0, -m_pointSize.height() / 2.0, m_pointSize.width(), m_pointSize.height());
|
||||||
switch (m_selection) {
|
switch (m_selection) {
|
||||||
case NOT_SELECTED:
|
case NotSelected:
|
||||||
setPen(Qt::NoPen);
|
setPen(Qt::NoPen);
|
||||||
setBrush(Qt::NoBrush);
|
setBrush(Qt::NoBrush);
|
||||||
break;
|
break;
|
||||||
case SELECTED:
|
case Selected:
|
||||||
setPen(QPen(Qt::black));
|
setPen(QPen(Qt::black));
|
||||||
setBrush(QBrush(Qt::black));
|
setBrush(QBrush(Qt::black));
|
||||||
break;
|
break;
|
||||||
case SECONDARY_SELECTED:
|
case SecondarySelected:
|
||||||
setPen(QPen(Qt::lightGray));
|
setPen(QPen(Qt::lightGray));
|
||||||
setBrush(Qt::NoBrush);
|
setBrush(Qt::NoBrush);
|
||||||
break;
|
break;
|
||||||
@@ -274,8 +274,8 @@ void PathSelectionItem::update()
|
|||||||
handle->setPointSize(m_pointSize);
|
handle->setPointSize(m_pointSize);
|
||||||
bool isEndPoint = (i == 0 || i == m_handles.size() - 1);
|
bool isEndPoint = (i == 0 || i == m_handles.size() - 1);
|
||||||
handle->setSelection(m_secondarySelected
|
handle->setSelection(m_secondarySelected
|
||||||
? (isEndPoint ? GraphicsHandleItem::NOT_SELECTED : GraphicsHandleItem::SECONDARY_SELECTED)
|
? (isEndPoint ? GraphicsHandleItem::NotSelected : GraphicsHandleItem::SecondarySelected)
|
||||||
: GraphicsHandleItem::SELECTED);
|
: GraphicsHandleItem::Selected);
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -285,20 +285,20 @@ void PathSelectionItem::moveHandle(int pointIndex, const QPointF &deltaMove, Han
|
|||||||
Q_UNUSED(handleStatus);
|
Q_UNUSED(handleStatus);
|
||||||
|
|
||||||
switch (handleQualifier) {
|
switch (handleQualifier) {
|
||||||
case NONE:
|
case None:
|
||||||
{
|
{
|
||||||
if (handleStatus == PRESS) {
|
if (handleStatus == Press) {
|
||||||
m_originalHandlePos = m_windable->handlePos(pointIndex);
|
m_originalHandlePos = m_windable->handlePos(pointIndex);
|
||||||
}
|
}
|
||||||
QPointF newPos = m_originalHandlePos + deltaMove;
|
QPointF newPos = m_originalHandlePos + deltaMove;
|
||||||
m_windable->setHandlePos(pointIndex, newPos);
|
m_windable->setHandlePos(pointIndex, newPos);
|
||||||
if (handleStatus == RELEASE) {
|
if (handleStatus == Release) {
|
||||||
m_windable->alignHandleToRaster(pointIndex, RASTER_WIDTH, RASTER_HEIGHT);
|
m_windable->alignHandleToRaster(pointIndex, RASTER_WIDTH, RASTER_HEIGHT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DELETE_HANDLE:
|
case DeleteHandle:
|
||||||
if (handleStatus == PRESS) {
|
if (handleStatus == Press) {
|
||||||
m_windable->deleteHandle(pointIndex);
|
m_windable->deleteHandle(pointIndex);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -46,15 +46,15 @@ class PathSelectionItem :
|
|||||||
friend class GraphicsHandleItem;
|
friend class GraphicsHandleItem;
|
||||||
|
|
||||||
enum HandleStatus {
|
enum HandleStatus {
|
||||||
PRESS,
|
Press,
|
||||||
MOVE,
|
Move,
|
||||||
RELEASE,
|
Release,
|
||||||
CANCEL
|
Cancel
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HandleQualifier {
|
enum HandleQualifier {
|
||||||
NONE,
|
None,
|
||||||
DELETE_HANDLE
|
DeleteHandle
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ protected:
|
|||||||
{
|
{
|
||||||
m_startPos = mapToScene(event->pos());
|
m_startPos = mapToScene(event->pos());
|
||||||
if (!m_secondarySelected) {
|
if (!m_secondarySelected) {
|
||||||
m_owner->moveHandle(m_handle, QPointF(0.0, 0.0), PRESS, NONE);
|
m_owner->moveHandle(m_handle, QPointF(0.0, 0.0), Press, None);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ protected:
|
|||||||
{
|
{
|
||||||
QPointF pos = mapToScene(event->pos()) - m_startPos;
|
QPointF pos = mapToScene(event->pos()) - m_startPos;
|
||||||
if (!m_secondarySelected) {
|
if (!m_secondarySelected) {
|
||||||
m_owner->moveHandle(m_handle, pos, MOVE, NONE);
|
m_owner->moveHandle(m_handle, pos, Move, None);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -96,7 +96,7 @@ protected:
|
|||||||
{
|
{
|
||||||
QPointF pos = mapToScene(event->pos()) - m_startPos;
|
QPointF pos = mapToScene(event->pos()) - m_startPos;
|
||||||
if (!m_secondarySelected) {
|
if (!m_secondarySelected) {
|
||||||
m_owner->moveHandle(m_handle, pos, RELEASE, NONE);
|
m_owner->moveHandle(m_handle, pos, Release, None);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,7 +119,7 @@ RectangularSelectionItem::RectangularSelectionItem(IResizable *itemResizer, QGra
|
|||||||
m_points(8),
|
m_points(8),
|
||||||
m_showBorder(false),
|
m_showBorder(false),
|
||||||
m_borderItem(0),
|
m_borderItem(0),
|
||||||
m_freedom(FREEDOM_ANY),
|
m_freedom(FreedomAny),
|
||||||
m_secondarySelected(false)
|
m_secondarySelected(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -181,7 +181,7 @@ void RectangularSelectionItem::setSecondarySelected(bool secondarySelected)
|
|||||||
|
|
||||||
void RectangularSelectionItem::update()
|
void RectangularSelectionItem::update()
|
||||||
{
|
{
|
||||||
QMT_CHECK(HANDLE_FIRST == 0 && HANDLE_LAST == 7);
|
QMT_CHECK(HandleFirst == 0 && HandleLast == 7);
|
||||||
prepareGeometryChange();
|
prepareGeometryChange();
|
||||||
|
|
||||||
for (int i = 0; i <= 7; ++i) {
|
for (int i = 0; i <= 7; ++i) {
|
||||||
@@ -191,29 +191,29 @@ void RectangularSelectionItem::update()
|
|||||||
m_points[i]->setRect(-m_pointSize.width() / 2.0, -m_pointSize.height() / 2.0, m_pointSize.width(), m_pointSize.height());
|
m_points[i]->setRect(-m_pointSize.width() / 2.0, -m_pointSize.height() / 2.0, m_pointSize.width(), m_pointSize.height());
|
||||||
bool visible = false;
|
bool visible = false;
|
||||||
switch ((Handle) i) {
|
switch ((Handle) i) {
|
||||||
case HANDLE_TOP_LEFT:
|
case HandleTopLeft:
|
||||||
visible = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_KEEP_RATIO;
|
visible = m_freedom == FreedomAny || m_freedom == FreedomKeepRatio;
|
||||||
break;
|
break;
|
||||||
case HANDLE_TOP:
|
case HandleTop:
|
||||||
visible = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_VERTICAL_ONLY;
|
visible = m_freedom == FreedomAny || m_freedom == FreedomVerticalOnly;
|
||||||
break;
|
break;
|
||||||
case HANDLE_TOP_RIGHT:
|
case HandleTopRight:
|
||||||
visible = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_KEEP_RATIO;
|
visible = m_freedom == FreedomAny || m_freedom == FreedomKeepRatio;
|
||||||
break;
|
break;
|
||||||
case HANDLE_LEFT:
|
case HandleLeft:
|
||||||
visible = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_HORIZONTAL_ONLY;
|
visible = m_freedom == FreedomAny || m_freedom == FreedomHorizontalOnly;
|
||||||
break;
|
break;
|
||||||
case HANDLE_RIGHT:
|
case HandleRight:
|
||||||
visible = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_HORIZONTAL_ONLY;
|
visible = m_freedom == FreedomAny || m_freedom == FreedomHorizontalOnly;
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM_LEFT:
|
case HandleBottomLeft:
|
||||||
visible = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_KEEP_RATIO;
|
visible = m_freedom == FreedomAny || m_freedom == FreedomKeepRatio;
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM:
|
case HandleBottom:
|
||||||
visible = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_VERTICAL_ONLY;
|
visible = m_freedom == FreedomAny || m_freedom == FreedomVerticalOnly;
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM_RIGHT:
|
case HandleBottomRight:
|
||||||
visible = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_KEEP_RATIO;
|
visible = m_freedom == FreedomAny || m_freedom == FreedomKeepRatio;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
m_points[i]->setSecondarySelected(m_secondarySelected);
|
m_points[i]->setSecondarySelected(m_secondarySelected);
|
||||||
@@ -253,36 +253,36 @@ void RectangularSelectionItem::moveHandle(Handle handle, const QPointF &deltaMov
|
|||||||
{
|
{
|
||||||
Q_UNUSED(handleQualifier);
|
Q_UNUSED(handleQualifier);
|
||||||
|
|
||||||
if (handleStatus == PRESS) {
|
if (handleStatus == Press) {
|
||||||
m_originalResizePos = m_itemResizer->pos();
|
m_originalResizePos = m_itemResizer->pos();
|
||||||
m_originalResizeRect = m_itemResizer->rect();
|
m_originalResizeRect = m_itemResizer->rect();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool moveable = false;
|
bool moveable = false;
|
||||||
switch (handle) {
|
switch (handle) {
|
||||||
case HANDLE_TOP_LEFT:
|
case HandleTopLeft:
|
||||||
moveable = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_KEEP_RATIO;
|
moveable = m_freedom == FreedomAny || m_freedom == FreedomKeepRatio;
|
||||||
break;
|
break;
|
||||||
case HANDLE_TOP:
|
case HandleTop:
|
||||||
moveable = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_VERTICAL_ONLY;
|
moveable = m_freedom == FreedomAny || m_freedom == FreedomVerticalOnly;
|
||||||
break;
|
break;
|
||||||
case HANDLE_TOP_RIGHT:
|
case HandleTopRight:
|
||||||
moveable = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_KEEP_RATIO;
|
moveable = m_freedom == FreedomAny || m_freedom == FreedomKeepRatio;
|
||||||
break;
|
break;
|
||||||
case HANDLE_LEFT:
|
case HandleLeft:
|
||||||
moveable = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_HORIZONTAL_ONLY;
|
moveable = m_freedom == FreedomAny || m_freedom == FreedomHorizontalOnly;
|
||||||
break;
|
break;
|
||||||
case HANDLE_RIGHT:
|
case HandleRight:
|
||||||
moveable = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_HORIZONTAL_ONLY;
|
moveable = m_freedom == FreedomAny || m_freedom == FreedomHorizontalOnly;
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM_LEFT:
|
case HandleBottomLeft:
|
||||||
moveable = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_KEEP_RATIO;
|
moveable = m_freedom == FreedomAny || m_freedom == FreedomKeepRatio;
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM:
|
case HandleBottom:
|
||||||
moveable = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_VERTICAL_ONLY;
|
moveable = m_freedom == FreedomAny || m_freedom == FreedomVerticalOnly;
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM_RIGHT:
|
case HandleBottomRight:
|
||||||
moveable = m_freedom == FREEDOM_ANY || m_freedom == FREEDOM_KEEP_RATIO;
|
moveable = m_freedom == FreedomAny || m_freedom == FreedomKeepRatio;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!moveable) {
|
if (!moveable) {
|
||||||
@@ -295,22 +295,22 @@ void RectangularSelectionItem::moveHandle(Handle handle, const QPointF &deltaMov
|
|||||||
QPointF bottomRightDelta;
|
QPointF bottomRightDelta;
|
||||||
|
|
||||||
// calculate movements of corners
|
// calculate movements of corners
|
||||||
if (m_freedom == FREEDOM_KEEP_RATIO) {
|
if (m_freedom == FreedomKeepRatio) {
|
||||||
qreal minimumLength = qSqrt(minimumSize.width() * minimumSize.width() + minimumSize.height() * minimumSize.height());
|
qreal minimumLength = qSqrt(minimumSize.width() * minimumSize.width() + minimumSize.height() * minimumSize.height());
|
||||||
QPointF v(minimumSize.width() / minimumLength, minimumSize.height() / minimumLength);
|
QPointF v(minimumSize.width() / minimumLength, minimumSize.height() / minimumLength);
|
||||||
qreal deltaLength = qSqrt(deltaMove.x() * deltaMove.x() + deltaMove.y() * deltaMove.y());
|
qreal deltaLength = qSqrt(deltaMove.x() * deltaMove.x() + deltaMove.y() * deltaMove.y());
|
||||||
switch (handle) {
|
switch (handle) {
|
||||||
case HANDLE_TOP_LEFT:
|
case HandleTopLeft:
|
||||||
if (deltaMove.x() > 0 && deltaMove.y() > 0) {
|
if (deltaMove.x() > 0 && deltaMove.y() > 0) {
|
||||||
topLeftDelta = v * deltaLength;
|
topLeftDelta = v * deltaLength;
|
||||||
} else if (deltaMove.x() < 0 && deltaMove.y() < 0) {
|
} else if (deltaMove.x() < 0 && deltaMove.y() < 0) {
|
||||||
topLeftDelta = -(v * deltaLength);
|
topLeftDelta = -(v * deltaLength);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HANDLE_TOP:
|
case HandleTop:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
case HANDLE_TOP_RIGHT:
|
case HandleTopRight:
|
||||||
if (deltaMove.x() > 0 && deltaMove.y() < 0) {
|
if (deltaMove.x() > 0 && deltaMove.y() < 0) {
|
||||||
topLeftDelta = QPointF(0.0, -(v.x() * deltaLength));
|
topLeftDelta = QPointF(0.0, -(v.x() * deltaLength));
|
||||||
bottomRightDelta = QPointF(v.y() * deltaLength, 0.0);
|
bottomRightDelta = QPointF(v.y() * deltaLength, 0.0);
|
||||||
@@ -319,13 +319,13 @@ void RectangularSelectionItem::moveHandle(Handle handle, const QPointF &deltaMov
|
|||||||
bottomRightDelta = QPointF(-(v.y() * deltaLength), 0.0);
|
bottomRightDelta = QPointF(-(v.y() * deltaLength), 0.0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HANDLE_LEFT:
|
case HandleLeft:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
case HANDLE_RIGHT:
|
case HandleRight:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM_LEFT:
|
case HandleBottomLeft:
|
||||||
if (deltaMove.x() < 0 && deltaMove.y() > 0) {
|
if (deltaMove.x() < 0 && deltaMove.y() > 0) {
|
||||||
topLeftDelta = QPointF(-(v.x() * deltaLength), 0.0);
|
topLeftDelta = QPointF(-(v.x() * deltaLength), 0.0);
|
||||||
bottomRightDelta = QPointF(0.0, v.y() * deltaLength);
|
bottomRightDelta = QPointF(0.0, v.y() * deltaLength);
|
||||||
@@ -334,10 +334,10 @@ void RectangularSelectionItem::moveHandle(Handle handle, const QPointF &deltaMov
|
|||||||
bottomRightDelta = QPointF(0.0, -(v.y() * deltaLength));
|
bottomRightDelta = QPointF(0.0, -(v.y() * deltaLength));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM:
|
case HandleBottom:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM_RIGHT:
|
case HandleBottomRight:
|
||||||
if (deltaMove.x() > 0 && deltaMove.y() > 0) {
|
if (deltaMove.x() > 0 && deltaMove.y() > 0) {
|
||||||
bottomRightDelta = v * deltaLength;
|
bottomRightDelta = v * deltaLength;
|
||||||
} else if (deltaMove.x() < 0 && deltaMove.y() < 0) {
|
} else if (deltaMove.x() < 0 && deltaMove.y() < 0) {
|
||||||
@@ -347,30 +347,30 @@ void RectangularSelectionItem::moveHandle(Handle handle, const QPointF &deltaMov
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch (handle) {
|
switch (handle) {
|
||||||
case HANDLE_TOP_LEFT:
|
case HandleTopLeft:
|
||||||
topLeftDelta = deltaMove;
|
topLeftDelta = deltaMove;
|
||||||
break;
|
break;
|
||||||
case HANDLE_TOP:
|
case HandleTop:
|
||||||
topLeftDelta = QPointF(0.0, deltaMove.y());
|
topLeftDelta = QPointF(0.0, deltaMove.y());
|
||||||
break;
|
break;
|
||||||
case HANDLE_TOP_RIGHT:
|
case HandleTopRight:
|
||||||
topLeftDelta = QPointF(0, deltaMove.y());
|
topLeftDelta = QPointF(0, deltaMove.y());
|
||||||
bottomRightDelta = QPointF(deltaMove.x(), 0.0);
|
bottomRightDelta = QPointF(deltaMove.x(), 0.0);
|
||||||
break;
|
break;
|
||||||
case HANDLE_LEFT:
|
case HandleLeft:
|
||||||
topLeftDelta = QPointF(deltaMove.x(), 0.0);
|
topLeftDelta = QPointF(deltaMove.x(), 0.0);
|
||||||
break;
|
break;
|
||||||
case HANDLE_RIGHT:
|
case HandleRight:
|
||||||
bottomRightDelta = QPointF(deltaMove.x(), 0.0);
|
bottomRightDelta = QPointF(deltaMove.x(), 0.0);
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM_LEFT:
|
case HandleBottomLeft:
|
||||||
topLeftDelta = QPointF(deltaMove.x(), 0.0);
|
topLeftDelta = QPointF(deltaMove.x(), 0.0);
|
||||||
bottomRightDelta = QPointF(0.0, deltaMove.y());
|
bottomRightDelta = QPointF(0.0, deltaMove.y());
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM:
|
case HandleBottom:
|
||||||
bottomRightDelta = QPointF(0.0, deltaMove.y());
|
bottomRightDelta = QPointF(0.0, deltaMove.y());
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM_RIGHT:
|
case HandleBottomRight:
|
||||||
bottomRightDelta = deltaMove;
|
bottomRightDelta = deltaMove;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -381,19 +381,19 @@ void RectangularSelectionItem::moveHandle(Handle handle, const QPointF &deltaMov
|
|||||||
|
|
||||||
// correct horizontal resize against minimum width
|
// correct horizontal resize against minimum width
|
||||||
switch (handle) {
|
switch (handle) {
|
||||||
case HANDLE_TOP_LEFT:
|
case HandleTopLeft:
|
||||||
case HANDLE_LEFT:
|
case HandleLeft:
|
||||||
case HANDLE_BOTTOM_LEFT:
|
case HandleBottomLeft:
|
||||||
if (sizeDelta.width() > 0.0) {
|
if (sizeDelta.width() > 0.0) {
|
||||||
topLeftDelta.setX(topLeftDelta.x() - sizeDelta.width());
|
topLeftDelta.setX(topLeftDelta.x() - sizeDelta.width());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HANDLE_TOP:
|
case HandleTop:
|
||||||
case HANDLE_BOTTOM:
|
case HandleBottom:
|
||||||
break;
|
break;
|
||||||
case HANDLE_TOP_RIGHT:
|
case HandleTopRight:
|
||||||
case HANDLE_RIGHT:
|
case HandleRight:
|
||||||
case HANDLE_BOTTOM_RIGHT:
|
case HandleBottomRight:
|
||||||
if (sizeDelta.width() > 0.0) {
|
if (sizeDelta.width() > 0.0) {
|
||||||
bottomRightDelta.setX(bottomRightDelta.x() + sizeDelta.width());
|
bottomRightDelta.setX(bottomRightDelta.x() + sizeDelta.width());
|
||||||
}
|
}
|
||||||
@@ -402,19 +402,19 @@ void RectangularSelectionItem::moveHandle(Handle handle, const QPointF &deltaMov
|
|||||||
|
|
||||||
// correct vertical resize against minimum height
|
// correct vertical resize against minimum height
|
||||||
switch (handle) {
|
switch (handle) {
|
||||||
case HANDLE_TOP_LEFT:
|
case HandleTopLeft:
|
||||||
case HANDLE_TOP:
|
case HandleTop:
|
||||||
case HANDLE_TOP_RIGHT:
|
case HandleTopRight:
|
||||||
if (sizeDelta.height() > 0.0) {
|
if (sizeDelta.height() > 0.0) {
|
||||||
topLeftDelta.setY(topLeftDelta.y() - sizeDelta.height());
|
topLeftDelta.setY(topLeftDelta.y() - sizeDelta.height());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HANDLE_LEFT:
|
case HandleLeft:
|
||||||
case HANDLE_RIGHT:
|
case HandleRight:
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM_LEFT:
|
case HandleBottomLeft:
|
||||||
case HANDLE_BOTTOM:
|
case HandleBottom:
|
||||||
case HANDLE_BOTTOM_RIGHT:
|
case HandleBottomRight:
|
||||||
if (sizeDelta.height() > 0.0) {
|
if (sizeDelta.height() > 0.0) {
|
||||||
bottomRightDelta.setY(bottomRightDelta.y() + sizeDelta.height());
|
bottomRightDelta.setY(bottomRightDelta.y() + sizeDelta.height());
|
||||||
}
|
}
|
||||||
@@ -423,38 +423,38 @@ void RectangularSelectionItem::moveHandle(Handle handle, const QPointF &deltaMov
|
|||||||
|
|
||||||
m_itemResizer->setPosAndRect(m_originalResizePos, m_originalResizeRect, topLeftDelta, bottomRightDelta);
|
m_itemResizer->setPosAndRect(m_originalResizePos, m_originalResizeRect, topLeftDelta, bottomRightDelta);
|
||||||
|
|
||||||
if (handleStatus == RELEASE) {
|
if (handleStatus == Release) {
|
||||||
IResizable::Side horiz = IResizable::SIDE_NONE;
|
IResizable::Side horiz = IResizable::SideNone;
|
||||||
IResizable::Side vert = IResizable::SIDE_NONE;
|
IResizable::Side vert = IResizable::SideNone;
|
||||||
switch (handle) {
|
switch (handle) {
|
||||||
case HANDLE_TOP_LEFT:
|
case HandleTopLeft:
|
||||||
case HANDLE_LEFT:
|
case HandleLeft:
|
||||||
case HANDLE_BOTTOM_LEFT:
|
case HandleBottomLeft:
|
||||||
horiz = IResizable::SIDE_LEFT_OR_TOP;
|
horiz = IResizable::SideLeftOrTop;
|
||||||
break;
|
break;
|
||||||
case HANDLE_TOP_RIGHT:
|
case HandleTopRight:
|
||||||
case HANDLE_RIGHT:
|
case HandleRight:
|
||||||
case HANDLE_BOTTOM_RIGHT:
|
case HandleBottomRight:
|
||||||
horiz = IResizable::SIDE_RIGHT_OR_BOTTOM;
|
horiz = IResizable::SideRightOrBottom;
|
||||||
break;
|
break;
|
||||||
case HANDLE_TOP:
|
case HandleTop:
|
||||||
case HANDLE_BOTTOM:
|
case HandleBottom:
|
||||||
// nothing
|
// nothing
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
switch (handle) {
|
switch (handle) {
|
||||||
case HANDLE_TOP_LEFT:
|
case HandleTopLeft:
|
||||||
case HANDLE_TOP:
|
case HandleTop:
|
||||||
case HANDLE_TOP_RIGHT:
|
case HandleTopRight:
|
||||||
vert = IResizable::SIDE_LEFT_OR_TOP;
|
vert = IResizable::SideLeftOrTop;
|
||||||
break;
|
break;
|
||||||
case HANDLE_BOTTOM_LEFT:
|
case HandleBottomLeft:
|
||||||
case HANDLE_BOTTOM:
|
case HandleBottom:
|
||||||
case HANDLE_BOTTOM_RIGHT:
|
case HandleBottomRight:
|
||||||
vert = IResizable::SIDE_RIGHT_OR_BOTTOM;
|
vert = IResizable::SideRightOrBottom;
|
||||||
break;
|
break;
|
||||||
case HANDLE_LEFT:
|
case HandleLeft:
|
||||||
case HANDLE_RIGHT:
|
case HandleRight:
|
||||||
// nothing
|
// nothing
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,37 +51,37 @@ class RectangularSelectionItem :
|
|||||||
friend class GraphicsHandleItem;
|
friend class GraphicsHandleItem;
|
||||||
|
|
||||||
enum Handle {
|
enum Handle {
|
||||||
HANDLE_FIRST = 0,
|
HandleFirst = 0,
|
||||||
HANDLE_TOP_LEFT = HANDLE_FIRST,
|
HandleTopLeft = HandleFirst,
|
||||||
HANDLE_TOP,
|
HandleTop,
|
||||||
HANDLE_TOP_RIGHT,
|
HandleTopRight,
|
||||||
HANDLE_LEFT,
|
HandleLeft,
|
||||||
HANDLE_RIGHT,
|
HandleRight,
|
||||||
HANDLE_BOTTOM_LEFT,
|
HandleBottomLeft,
|
||||||
HANDLE_BOTTOM,
|
HandleBottom,
|
||||||
HANDLE_BOTTOM_RIGHT,
|
HandleBottomRight,
|
||||||
HANDLE_LAST = HANDLE_BOTTOM_RIGHT
|
HandleLast = HandleBottomRight
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HandleStatus {
|
enum HandleStatus {
|
||||||
PRESS,
|
Press,
|
||||||
MOVE,
|
Move,
|
||||||
RELEASE,
|
Release,
|
||||||
CANCEL
|
Cancel
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HandleQualifier {
|
enum HandleQualifier {
|
||||||
NONE,
|
None,
|
||||||
KEEP_POS
|
KeepPos
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
enum Freedom {
|
enum Freedom {
|
||||||
FREEDOM_ANY,
|
FreedomAny,
|
||||||
FREEDOM_VERTICAL_ONLY,
|
FreedomVerticalOnly,
|
||||||
FREEDOM_HORIZONTAL_ONLY,
|
FreedomHorizontalOnly,
|
||||||
FREEDOM_KEEP_RATIO
|
FreedomKeepRatio
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
void addArrow(const QString &id, ArrowItem::Shaft shaft, ArrowItem::Head endHead, ArrowItem::Head startHead = ArrowItem::HEAD_NONE);
|
void addArrow(const QString &id, ArrowItem::Shaft shaft, ArrowItem::Head endHead, ArrowItem::Head startHead = ArrowItem::HeadNone);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ bool GeometryUtilities::intersect(const QPolygonF &polygon, const QLineF &line,
|
|||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
struct Candidate {
|
struct Candidate {
|
||||||
Candidate() : third(GeometryUtilities::SIDE_UNSPECIFIED) { }
|
Candidate() : third(GeometryUtilities::SideUnspecified) { }
|
||||||
|
|
||||||
Candidate(const QVector2D &f, const QPointF &s, GeometryUtilities::Side t) : first(f), second(s), third(t) { }
|
Candidate(const QVector2D &f, const QPointF &s, GeometryUtilities::Side t) : first(f), second(s), third(t) { }
|
||||||
|
|
||||||
@@ -98,14 +98,14 @@ bool GeometryUtilities::placeRectAtLine(const QRectF &rect, const QLineF &line,
|
|||||||
QMT_CHECK(placement);
|
QMT_CHECK(placement);
|
||||||
|
|
||||||
QList<Candidate> candidates;
|
QList<Candidate> candidates;
|
||||||
candidates << Candidate(QVector2D(rect.topRight() - rect.topLeft()), QPointF(0.0, 0.0), SIDE_TOP)
|
candidates << Candidate(QVector2D(rect.topRight() - rect.topLeft()), QPointF(0.0, 0.0), SideTop)
|
||||||
<< Candidate(QVector2D(rect.topLeft() - rect.topRight()), rect.topRight() - rect.topLeft(), SIDE_TOP)
|
<< Candidate(QVector2D(rect.topLeft() - rect.topRight()), rect.topRight() - rect.topLeft(), SideTop)
|
||||||
<< Candidate(QVector2D(rect.bottomLeft() - rect.topLeft()), QPointF(0.0, 0.0), SIDE_LEFT)
|
<< Candidate(QVector2D(rect.bottomLeft() - rect.topLeft()), QPointF(0.0, 0.0), SideLeft)
|
||||||
<< Candidate(QVector2D(rect.topLeft() - rect.bottomLeft()), rect.bottomLeft() - rect.topLeft(), SIDE_LEFT)
|
<< Candidate(QVector2D(rect.topLeft() - rect.bottomLeft()), rect.bottomLeft() - rect.topLeft(), SideLeft)
|
||||||
<< Candidate(QVector2D(rect.bottomRight() - rect.bottomLeft()), rect.bottomLeft() - rect.topLeft(), SIDE_BOTTOM)
|
<< Candidate(QVector2D(rect.bottomRight() - rect.bottomLeft()), rect.bottomLeft() - rect.topLeft(), SideBottom)
|
||||||
<< Candidate(QVector2D(rect.bottomLeft() - rect.bottomRight()), rect.bottomRight() - rect.topLeft(), SIDE_BOTTOM)
|
<< Candidate(QVector2D(rect.bottomLeft() - rect.bottomRight()), rect.bottomRight() - rect.topLeft(), SideBottom)
|
||||||
<< Candidate(QVector2D(rect.bottomRight() - rect.topRight()), rect.topRight() - rect.topLeft(), SIDE_RIGHT)
|
<< Candidate(QVector2D(rect.bottomRight() - rect.topRight()), rect.topRight() - rect.topLeft(), SideRight)
|
||||||
<< Candidate(QVector2D(rect.topRight() - rect.bottomRight()), rect.bottomRight() - rect.topLeft(), SIDE_RIGHT);
|
<< Candidate(QVector2D(rect.topRight() - rect.bottomRight()), rect.bottomRight() - rect.topLeft(), SideRight);
|
||||||
|
|
||||||
QVector<QVector2D> rectEdgeVectors;
|
QVector<QVector2D> rectEdgeVectors;
|
||||||
rectEdgeVectors << QVector2D(rect.topLeft() - rect.topLeft())
|
rectEdgeVectors << QVector2D(rect.topLeft() - rect.topLeft())
|
||||||
@@ -129,7 +129,7 @@ bool GeometryUtilities::placeRectAtLine(const QRectF &rect, const QLineF &line,
|
|||||||
|
|
||||||
double smallestA = -1.0;
|
double smallestA = -1.0;
|
||||||
QPointF rectTranslation;
|
QPointF rectTranslation;
|
||||||
Side side = SIDE_UNSPECIFIED;
|
Side side = SideUnspecified;
|
||||||
int bestSign = 0;
|
int bestSign = 0;
|
||||||
|
|
||||||
foreach (const Candidate &candidate, candidates) {
|
foreach (const Candidate &candidate, candidates) {
|
||||||
@@ -173,11 +173,11 @@ bool GeometryUtilities::placeRectAtLine(const QRectF &rect, const QLineF &line,
|
|||||||
if (horizontalAlignedSide) {
|
if (horizontalAlignedSide) {
|
||||||
// convert side into a horizontal side depending on placement relative to direction vector
|
// convert side into a horizontal side depending on placement relative to direction vector
|
||||||
switch (side) {
|
switch (side) {
|
||||||
case SIDE_TOP:
|
case SideTop:
|
||||||
side = bestSign == -1 ? SIDE_RIGHT : SIDE_LEFT;
|
side = bestSign == -1 ? SideRight : SideLeft;
|
||||||
break;
|
break;
|
||||||
case SIDE_BOTTOM:
|
case SideBottom:
|
||||||
side = bestSign == -1 ? SIDE_LEFT : SIDE_RIGHT;
|
side = bestSign == -1 ? SideLeft : SideRight;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -52,11 +52,11 @@ private:
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Side {
|
enum Side {
|
||||||
SIDE_UNSPECIFIED,
|
SideUnspecified,
|
||||||
SIDE_TOP,
|
SideTop,
|
||||||
SIDE_BOTTOM,
|
SideBottom,
|
||||||
SIDE_LEFT,
|
SideLeft,
|
||||||
SIDE_RIGHT
|
SideRight
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
namespace qmt {
|
namespace qmt {
|
||||||
|
|
||||||
MAssociationEnd::MAssociationEnd()
|
MAssociationEnd::MAssociationEnd()
|
||||||
: m_kind(ASSOCIATION),
|
: m_kind(Association),
|
||||||
m_navigable(false)
|
m_navigable(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,9 +47,9 @@ class QMT_EXPORT MAssociationEnd
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Kind {
|
enum Kind {
|
||||||
ASSOCIATION,
|
Association,
|
||||||
AGGREGATION,
|
Aggregation,
|
||||||
COMPOSITION
|
Composition
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
namespace qmt {
|
namespace qmt {
|
||||||
|
|
||||||
MClassMember::MClassMember(MemberType memberType)
|
MClassMember::MClassMember(MemberType memberType)
|
||||||
: m_visibility(VISIBILITY_UNDEFINED),
|
: m_visibility(VisibilityUndefined),
|
||||||
m_memberType(memberType)
|
m_memberType(memberType)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,39 +43,39 @@ class QMT_EXPORT MClassMember
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Visibility {
|
enum Visibility {
|
||||||
VISIBILITY_UNDEFINED,
|
VisibilityUndefined,
|
||||||
VISIBILITY_PUBLIC,
|
VisibilityPublic,
|
||||||
VISIBILITY_PROTECTED,
|
VisibilityProtected,
|
||||||
VISIBILITY_PRIVATE,
|
VisibilityPrivate,
|
||||||
VISIBILITY_SIGNALS,
|
VisibilitySignals,
|
||||||
VISIBILITY_PRIVATE_SLOTS,
|
VisibilityPrivateSlots,
|
||||||
VISIBILITY_PROTECTED_SLOTS,
|
VisibilityProtectedSlots,
|
||||||
VISIBILITY_PUBLIC_SLOTS
|
VisibilityPublicSlots
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MemberType {
|
enum MemberType {
|
||||||
MEMBER_UNDEFINED,
|
MemberUndefined,
|
||||||
MEMBER_ATTRIBUTE,
|
MemberAttribute,
|
||||||
MEMBER_METHOD,
|
MemberMethod,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Property {
|
enum Property {
|
||||||
PROPERTY_VIRTUAL = 0x1,
|
PropertyVirtual = 0x1,
|
||||||
PROPERTY_ABSTRACT = 0x2,
|
PropertyAbstract = 0x2,
|
||||||
PROPERTY_CONST = 0x4,
|
PropertyConst = 0x4,
|
||||||
PROPERTY_OVERRIDE = 0x8,
|
PropertyOverride = 0x8,
|
||||||
PROPERTY_FINAL = 0x10,
|
PropertyFinal = 0x10,
|
||||||
PROPERTY_QSIGNAL = 0x100,
|
PropertyQsignal = 0x100,
|
||||||
PROPERTY_QSLOT = 0x200,
|
PropertyQslot = 0x200,
|
||||||
PROPERTY_QINVOKABLE = 0x400,
|
PropertyQinvokable = 0x400,
|
||||||
PROPERTY_QPROPERTY = 0x800
|
PropertyQproperty = 0x800
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_DECLARE_FLAGS(Properties, Property)
|
Q_DECLARE_FLAGS(Properties, Property)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
MClassMember(MemberType memberType = MEMBER_UNDEFINED);
|
MClassMember(MemberType memberType = MemberUndefined);
|
||||||
|
|
||||||
MClassMember(const MClassMember &rhs);
|
MClassMember(const MClassMember &rhs);
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ namespace qmt {
|
|||||||
|
|
||||||
MDependency::MDependency()
|
MDependency::MDependency()
|
||||||
: MRelation(),
|
: MRelation(),
|
||||||
m_direction(A_TO_B)
|
m_direction(AToB)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,12 +68,12 @@ void MDependency::setDirection(MDependency::Direction direction)
|
|||||||
|
|
||||||
Uid MDependency::source() const
|
Uid MDependency::source() const
|
||||||
{
|
{
|
||||||
return m_direction == B_TO_A ? endBUid() : endAUid();
|
return m_direction == BToA ? endBUid() : endAUid();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MDependency::setSource(const Uid &source)
|
void MDependency::setSource(const Uid &source)
|
||||||
{
|
{
|
||||||
if (m_direction == B_TO_A) {
|
if (m_direction == BToA) {
|
||||||
setEndBUid(source);
|
setEndBUid(source);
|
||||||
} else {
|
} else {
|
||||||
setEndAUid(source);
|
setEndAUid(source);
|
||||||
@@ -82,12 +82,12 @@ void MDependency::setSource(const Uid &source)
|
|||||||
|
|
||||||
Uid MDependency::target() const
|
Uid MDependency::target() const
|
||||||
{
|
{
|
||||||
return m_direction == B_TO_A ? endAUid() : endBUid();
|
return m_direction == BToA ? endAUid() : endBUid();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MDependency::setTarget(const Uid &target)
|
void MDependency::setTarget(const Uid &target)
|
||||||
{
|
{
|
||||||
if (m_direction == B_TO_A) {
|
if (m_direction == BToA) {
|
||||||
setEndAUid(target);
|
setEndAUid(target);
|
||||||
} else {
|
} else {
|
||||||
setEndBUid(target);
|
setEndBUid(target);
|
||||||
|
|||||||
@@ -45,9 +45,9 @@ class QMT_EXPORT MDependency :
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Direction {
|
enum Direction {
|
||||||
A_TO_B,
|
AToB,
|
||||||
B_TO_A,
|
BToA,
|
||||||
BIDIRECTIONAL
|
Bidirectional
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ class QMT_EXPORT MElement
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Flag {
|
enum Flag {
|
||||||
REVERSE_ENGINEERED = 0x01
|
ReverseEngineered = 0x01
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_DECLARE_FLAGS(Flags, Flag)
|
Q_DECLARE_FLAGS(Flags, Flag)
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ struct ModelController::Clone {
|
|||||||
};
|
};
|
||||||
|
|
||||||
ModelController::Clone::Clone()
|
ModelController::Clone::Clone()
|
||||||
: m_elementType(TYPE_UNKNOWN),
|
: m_elementType(TypeUnknown),
|
||||||
m_indexOfElement(-1),
|
m_indexOfElement(-1),
|
||||||
m_clonedElement(0)
|
m_clonedElement(0)
|
||||||
{
|
{
|
||||||
@@ -262,7 +262,7 @@ public:
|
|||||||
QMT_CHECK(owner);
|
QMT_CHECK(owner);
|
||||||
QMT_CHECK(clone.m_indexOfElement >= 0);
|
QMT_CHECK(clone.m_indexOfElement >= 0);
|
||||||
switch (clone.m_elementType) {
|
switch (clone.m_elementType) {
|
||||||
case TYPE_OBJECT:
|
case TypeObject:
|
||||||
{
|
{
|
||||||
emit m_modelController->beginInsertObject(clone.m_indexOfElement, owner);
|
emit m_modelController->beginInsertObject(clone.m_indexOfElement, owner);
|
||||||
MObject *object = dynamic_cast<MObject *>(clone.m_clonedElement);
|
MObject *object = dynamic_cast<MObject *>(clone.m_clonedElement);
|
||||||
@@ -274,7 +274,7 @@ public:
|
|||||||
inserted = true;
|
inserted = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TYPE_RELATION:
|
case TypeRelation:
|
||||||
{
|
{
|
||||||
emit m_modelController->beginInsertRelation(clone.m_indexOfElement, owner);
|
emit m_modelController->beginInsertRelation(clone.m_indexOfElement, owner);
|
||||||
MRelation *relation = dynamic_cast<MRelation *>(clone.m_clonedElement);
|
MRelation *relation = dynamic_cast<MRelation *>(clone.m_clonedElement);
|
||||||
@@ -308,7 +308,7 @@ public:
|
|||||||
MObject *owner = m_modelController->findObject<MObject>(clone.m_ownerKey);
|
MObject *owner = m_modelController->findObject<MObject>(clone.m_ownerKey);
|
||||||
QMT_CHECK(owner);
|
QMT_CHECK(owner);
|
||||||
switch (clone.m_elementType) {
|
switch (clone.m_elementType) {
|
||||||
case TYPE_OBJECT:
|
case TypeObject:
|
||||||
{
|
{
|
||||||
MObject *object = m_modelController->findObject<MObject>(clone.m_elementKey);
|
MObject *object = m_modelController->findObject<MObject>(clone.m_elementKey);
|
||||||
QMT_CHECK(object);
|
QMT_CHECK(object);
|
||||||
@@ -324,7 +324,7 @@ public:
|
|||||||
removed = true;
|
removed = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TYPE_RELATION:
|
case TypeRelation:
|
||||||
{
|
{
|
||||||
MRelation *relation = m_modelController->findRelation<MRelation>(clone.m_elementKey);
|
MRelation *relation = m_modelController->findRelation<MRelation>(clone.m_elementKey);
|
||||||
QMT_CHECK(relation);
|
QMT_CHECK(relation);
|
||||||
@@ -384,11 +384,11 @@ public:
|
|||||||
clone.m_elementKey = element->uid();
|
clone.m_elementKey = element->uid();
|
||||||
clone.m_ownerKey = owner->uid();
|
clone.m_ownerKey = owner->uid();
|
||||||
if (MObject *object = dynamic_cast<MObject *>(element)) {
|
if (MObject *object = dynamic_cast<MObject *>(element)) {
|
||||||
clone.m_elementType = TYPE_OBJECT;
|
clone.m_elementType = TypeObject;
|
||||||
clone.m_indexOfElement = owner->children().indexOf(object);
|
clone.m_indexOfElement = owner->children().indexOf(object);
|
||||||
QMT_CHECK(clone.m_indexOfElement >= 0);
|
QMT_CHECK(clone.m_indexOfElement >= 0);
|
||||||
} else if (MRelation *relation = dynamic_cast<MRelation *>(element)) {
|
} else if (MRelation *relation = dynamic_cast<MRelation *>(element)) {
|
||||||
clone.m_elementType = TYPE_RELATION;
|
clone.m_elementType = TypeRelation;
|
||||||
clone.m_indexOfElement = owner->relations().indexOf(relation);
|
clone.m_indexOfElement = owner->relations().indexOf(relation);
|
||||||
QMT_CHECK(clone.m_indexOfElement >= 0);
|
QMT_CHECK(clone.m_indexOfElement >= 0);
|
||||||
} else {
|
} else {
|
||||||
@@ -411,7 +411,7 @@ public:
|
|||||||
MObject *owner = m_modelController->findObject<MObject>(clone.m_ownerKey);
|
MObject *owner = m_modelController->findObject<MObject>(clone.m_ownerKey);
|
||||||
QMT_CHECK(owner);
|
QMT_CHECK(owner);
|
||||||
switch (clone.m_elementType) {
|
switch (clone.m_elementType) {
|
||||||
case TYPE_OBJECT:
|
case TypeObject:
|
||||||
{
|
{
|
||||||
MObject *object = m_modelController->findObject<MObject>(clone.m_elementKey);
|
MObject *object = m_modelController->findObject<MObject>(clone.m_elementKey);
|
||||||
QMT_CHECK(object);
|
QMT_CHECK(object);
|
||||||
@@ -427,7 +427,7 @@ public:
|
|||||||
removed = true;
|
removed = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TYPE_RELATION:
|
case TypeRelation:
|
||||||
{
|
{
|
||||||
MRelation *relation = m_modelController->findRelation<MRelation>(clone.m_elementKey);
|
MRelation *relation = m_modelController->findRelation<MRelation>(clone.m_elementKey);
|
||||||
QMT_CHECK(relation);
|
QMT_CHECK(relation);
|
||||||
@@ -466,7 +466,7 @@ public:
|
|||||||
QMT_CHECK(owner);
|
QMT_CHECK(owner);
|
||||||
QMT_CHECK(clone.m_indexOfElement >= 0);
|
QMT_CHECK(clone.m_indexOfElement >= 0);
|
||||||
switch (clone.m_elementType) {
|
switch (clone.m_elementType) {
|
||||||
case TYPE_OBJECT:
|
case TypeObject:
|
||||||
{
|
{
|
||||||
emit m_modelController->beginInsertObject(clone.m_indexOfElement, owner);
|
emit m_modelController->beginInsertObject(clone.m_indexOfElement, owner);
|
||||||
MObject *object = dynamic_cast<MObject *>(clone.m_clonedElement);
|
MObject *object = dynamic_cast<MObject *>(clone.m_clonedElement);
|
||||||
@@ -478,7 +478,7 @@ public:
|
|||||||
inserted = true;
|
inserted = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TYPE_RELATION:
|
case TypeRelation:
|
||||||
{
|
{
|
||||||
emit m_modelController->beginInsertRelation(clone.m_indexOfElement, owner);
|
emit m_modelController->beginInsertRelation(clone.m_indexOfElement, owner);
|
||||||
MRelation *relation = dynamic_cast<MRelation *>(clone.m_clonedElement);
|
MRelation *relation = dynamic_cast<MRelation *>(clone.m_clonedElement);
|
||||||
@@ -731,7 +731,7 @@ void ModelController::addObject(MPackage *parentPackage, MObject *object)
|
|||||||
if (m_undoController) {
|
if (m_undoController) {
|
||||||
AddElementsCommand *undoCommand = new AddElementsCommand(this, tr("Add Object"));
|
AddElementsCommand *undoCommand = new AddElementsCommand(this, tr("Add Object"));
|
||||||
m_undoController->push(undoCommand);
|
m_undoController->push(undoCommand);
|
||||||
undoCommand->add(TYPE_OBJECT, object->uid(), parentPackage->uid());
|
undoCommand->add(TypeObject, object->uid(), parentPackage->uid());
|
||||||
}
|
}
|
||||||
parentPackage->addChild(object);
|
parentPackage->addChild(object);
|
||||||
if (!m_resettingModel) {
|
if (!m_resettingModel) {
|
||||||
@@ -871,7 +871,7 @@ void ModelController::addRelation(MObject *owner, MRelation *relation)
|
|||||||
if (m_undoController) {
|
if (m_undoController) {
|
||||||
AddElementsCommand *undoCommand = new AddElementsCommand(this, tr("Add Relation"));
|
AddElementsCommand *undoCommand = new AddElementsCommand(this, tr("Add Relation"));
|
||||||
m_undoController->push(undoCommand);
|
m_undoController->push(undoCommand);
|
||||||
undoCommand->add(TYPE_RELATION, relation->uid(), owner->uid());
|
undoCommand->add(TypeRelation, relation->uid(), owner->uid());
|
||||||
}
|
}
|
||||||
owner->addRelation(relation);
|
owner->addRelation(relation);
|
||||||
if (!m_resettingModel) {
|
if (!m_resettingModel) {
|
||||||
@@ -1022,7 +1022,7 @@ void ModelController::pasteElements(MObject *owner, const MContainer &modelConta
|
|||||||
if (m_undoController) {
|
if (m_undoController) {
|
||||||
AddElementsCommand *undoCommand = new AddElementsCommand(this, tr("Paste"));
|
AddElementsCommand *undoCommand = new AddElementsCommand(this, tr("Paste"));
|
||||||
m_undoController->push(undoCommand);
|
m_undoController->push(undoCommand);
|
||||||
undoCommand->add(TYPE_OBJECT, object->uid(), objectOwner->uid());
|
undoCommand->add(TypeObject, object->uid(), objectOwner->uid());
|
||||||
}
|
}
|
||||||
objectOwner->insertChild(row, object);
|
objectOwner->insertChild(row, object);
|
||||||
emit endInsertObject(row, objectOwner);
|
emit endInsertObject(row, objectOwner);
|
||||||
@@ -1034,7 +1034,7 @@ void ModelController::pasteElements(MObject *owner, const MContainer &modelConta
|
|||||||
if (m_undoController) {
|
if (m_undoController) {
|
||||||
AddElementsCommand *undoCommand = new AddElementsCommand(this, tr("Paste"));
|
AddElementsCommand *undoCommand = new AddElementsCommand(this, tr("Paste"));
|
||||||
m_undoController->push(undoCommand);
|
m_undoController->push(undoCommand);
|
||||||
undoCommand->add(TYPE_RELATION, relation->uid(), owner->uid());
|
undoCommand->add(TypeRelation, relation->uid(), owner->uid());
|
||||||
}
|
}
|
||||||
owner->addRelation(relation);
|
owner->addRelation(relation);
|
||||||
emit endInsertRelation(row, owner);
|
emit endInsertRelation(row, owner);
|
||||||
|
|||||||
@@ -60,7 +60,10 @@ class QMT_EXPORT ModelController :
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
enum ElementType { TYPE_UNKNOWN, TYPE_OBJECT, TYPE_RELATION };
|
enum ElementType {
|
||||||
|
TypeUnknown,
|
||||||
|
TypeObject,
|
||||||
|
TypeRelation };
|
||||||
|
|
||||||
struct Clone;
|
struct Clone;
|
||||||
|
|
||||||
|
|||||||
@@ -62,8 +62,8 @@ void SortedTreeModel::setTreeModel(TreeModel *treeModel)
|
|||||||
|
|
||||||
bool SortedTreeModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
|
bool SortedTreeModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
|
||||||
{
|
{
|
||||||
TreeModel::ItemType leftItemType = (TreeModel::ItemType) sourceModel()->data(left, TreeModel::ROLE_ITEM_TYPE).toInt();
|
TreeModel::ItemType leftItemType = (TreeModel::ItemType) sourceModel()->data(left, TreeModel::RoleItemType).toInt();
|
||||||
TreeModel::ItemType rightItemType = (TreeModel::ItemType) sourceModel()->data(right, TreeModel::ROLE_ITEM_TYPE).toInt();
|
TreeModel::ItemType rightItemType = (TreeModel::ItemType) sourceModel()->data(right, TreeModel::RoleItemType).toInt();
|
||||||
if (leftItemType < rightItemType) {
|
if (leftItemType < rightItemType) {
|
||||||
return true;
|
return true;
|
||||||
} else if (leftItemType > rightItemType) {
|
} else if (leftItemType > rightItemType) {
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ public:
|
|||||||
|
|
||||||
static QIcon icon(QStringLiteral(":/modelinglib/48x48/package.png"));
|
static QIcon icon(QStringLiteral(":/modelinglib/48x48/package.png"));
|
||||||
m_item = new ModelItem(icon, m_treeModel->createObjectLabel(package));
|
m_item = new ModelItem(icon, m_treeModel->createObjectLabel(package));
|
||||||
m_item->setData(TreeModel::PACKAGE, TreeModel::ROLE_ITEM_TYPE);
|
m_item->setData(TreeModel::Package, TreeModel::RoleItemType);
|
||||||
visitMObject(package);
|
visitMObject(package);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,9 +121,9 @@ public:
|
|||||||
{
|
{
|
||||||
QMT_CHECK(!m_item);
|
QMT_CHECK(!m_item);
|
||||||
|
|
||||||
QIcon icon = m_treeModel->createIcon(StereotypeIcon::ELEMENT_CLASS, StyleEngine::TYPE_CLASS, klass->stereotypes(), QStringLiteral(":/modelinglib/48x48/class.png"));
|
QIcon icon = m_treeModel->createIcon(StereotypeIcon::ElementClass, StyleEngine::TypeClass, klass->stereotypes(), QStringLiteral(":/modelinglib/48x48/class.png"));
|
||||||
m_item = new ModelItem(icon, m_treeModel->createObjectLabel(klass));
|
m_item = new ModelItem(icon, m_treeModel->createObjectLabel(klass));
|
||||||
m_item->setData(TreeModel::ELEMENT, TreeModel::ROLE_ITEM_TYPE);
|
m_item->setData(TreeModel::Element, TreeModel::RoleItemType);
|
||||||
m_item->setStereotypes(klass->stereotypes());
|
m_item->setStereotypes(klass->stereotypes());
|
||||||
visitMObject(klass);
|
visitMObject(klass);
|
||||||
}
|
}
|
||||||
@@ -132,9 +132,9 @@ public:
|
|||||||
{
|
{
|
||||||
QMT_CHECK(!m_item);
|
QMT_CHECK(!m_item);
|
||||||
|
|
||||||
QIcon icon = m_treeModel->createIcon(StereotypeIcon::ELEMENT_COMPONENT, StyleEngine::TYPE_COMPONENT, component->stereotypes(), QStringLiteral(":/modelinglib/48x48/component.png"));
|
QIcon icon = m_treeModel->createIcon(StereotypeIcon::ElementComponent, StyleEngine::TypeComponent, component->stereotypes(), QStringLiteral(":/modelinglib/48x48/component.png"));
|
||||||
m_item = new ModelItem(icon, m_treeModel->createObjectLabel(component));
|
m_item = new ModelItem(icon, m_treeModel->createObjectLabel(component));
|
||||||
m_item->setData(TreeModel::ELEMENT, TreeModel::ROLE_ITEM_TYPE);
|
m_item->setData(TreeModel::Element, TreeModel::RoleItemType);
|
||||||
m_item->setStereotypes(component->stereotypes());
|
m_item->setStereotypes(component->stereotypes());
|
||||||
visitMObject(component);
|
visitMObject(component);
|
||||||
}
|
}
|
||||||
@@ -142,7 +142,7 @@ public:
|
|||||||
void visitMDiagram(const MDiagram *diagram)
|
void visitMDiagram(const MDiagram *diagram)
|
||||||
{
|
{
|
||||||
visitMObject(diagram);
|
visitMObject(diagram);
|
||||||
m_item->setData(TreeModel::DIAGRAM, TreeModel::ROLE_ITEM_TYPE);
|
m_item->setData(TreeModel::Diagram, TreeModel::RoleItemType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void visitMCanvasDiagram(const MCanvasDiagram *diagram)
|
void visitMCanvasDiagram(const MCanvasDiagram *diagram)
|
||||||
@@ -159,9 +159,9 @@ public:
|
|||||||
QMT_CHECK(!m_item);
|
QMT_CHECK(!m_item);
|
||||||
|
|
||||||
QList<QString> stereotypes = item->stereotypes() << item->variety();
|
QList<QString> stereotypes = item->stereotypes() << item->variety();
|
||||||
QIcon icon = m_treeModel->createIcon(StereotypeIcon::ELEMENT_ITEM, StyleEngine::TYPE_ITEM, stereotypes, QStringLiteral(":/modelinglib/48x48/item.png"));
|
QIcon icon = m_treeModel->createIcon(StereotypeIcon::ElementItem, StyleEngine::TypeItem, stereotypes, QStringLiteral(":/modelinglib/48x48/item.png"));
|
||||||
m_item = new ModelItem(icon, m_treeModel->createObjectLabel(item));
|
m_item = new ModelItem(icon, m_treeModel->createObjectLabel(item));
|
||||||
m_item->setData(TreeModel::ELEMENT, TreeModel::ROLE_ITEM_TYPE);
|
m_item->setData(TreeModel::Element, TreeModel::RoleItemType);
|
||||||
m_item->setStereotypes(stereotypes);
|
m_item->setStereotypes(stereotypes);
|
||||||
visitMObject(item);
|
visitMObject(item);
|
||||||
}
|
}
|
||||||
@@ -171,7 +171,7 @@ public:
|
|||||||
Q_UNUSED(relation);
|
Q_UNUSED(relation);
|
||||||
QMT_CHECK(m_item);
|
QMT_CHECK(m_item);
|
||||||
m_item->setEditable(false);
|
m_item->setEditable(false);
|
||||||
m_item->setData(TreeModel::RELATION, TreeModel::ROLE_ITEM_TYPE);
|
m_item->setData(TreeModel::Relation, TreeModel::RoleItemType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void visitMDependency(const MDependency *dependency)
|
void visitMDependency(const MDependency *dependency)
|
||||||
@@ -243,7 +243,7 @@ public:
|
|||||||
void visitMClass(const MClass *klass)
|
void visitMClass(const MClass *klass)
|
||||||
{
|
{
|
||||||
if (klass->stereotypes() != m_item->stereotypes()) {
|
if (klass->stereotypes() != m_item->stereotypes()) {
|
||||||
QIcon icon = m_treeModel->createIcon(StereotypeIcon::ELEMENT_CLASS, StyleEngine::TYPE_CLASS, klass->stereotypes(), QStringLiteral(":/modelinglib/48x48/class.png"));
|
QIcon icon = m_treeModel->createIcon(StereotypeIcon::ElementClass, StyleEngine::TypeClass, klass->stereotypes(), QStringLiteral(":/modelinglib/48x48/class.png"));
|
||||||
m_item->setIcon(icon);
|
m_item->setIcon(icon);
|
||||||
m_item->setStereotypes(klass->stereotypes());
|
m_item->setStereotypes(klass->stereotypes());
|
||||||
}
|
}
|
||||||
@@ -253,7 +253,7 @@ public:
|
|||||||
void visitMComponent(const MComponent *component)
|
void visitMComponent(const MComponent *component)
|
||||||
{
|
{
|
||||||
if (component->stereotypes() != m_item->stereotypes()) {
|
if (component->stereotypes() != m_item->stereotypes()) {
|
||||||
QIcon icon = m_treeModel->createIcon(StereotypeIcon::ELEMENT_COMPONENT, StyleEngine::TYPE_COMPONENT, component->stereotypes(), QStringLiteral(":/modelinglib/48x48/component.png"));
|
QIcon icon = m_treeModel->createIcon(StereotypeIcon::ElementComponent, StyleEngine::TypeComponent, component->stereotypes(), QStringLiteral(":/modelinglib/48x48/component.png"));
|
||||||
m_item->setIcon(icon);
|
m_item->setIcon(icon);
|
||||||
m_item->setStereotypes(component->stereotypes());
|
m_item->setStereotypes(component->stereotypes());
|
||||||
}
|
}
|
||||||
@@ -274,7 +274,7 @@ public:
|
|||||||
{
|
{
|
||||||
QList<QString> stereotypes = item->stereotypes() << item->variety();
|
QList<QString> stereotypes = item->stereotypes() << item->variety();
|
||||||
if (stereotypes != m_item->stereotypes()) {
|
if (stereotypes != m_item->stereotypes()) {
|
||||||
QIcon icon = m_treeModel->createIcon(StereotypeIcon::ELEMENT_ITEM, StyleEngine::TYPE_ITEM, stereotypes, QStringLiteral(":/modelinglib/48x48/item.png"));
|
QIcon icon = m_treeModel->createIcon(StereotypeIcon::ElementItem, StyleEngine::TypeItem, stereotypes, QStringLiteral(":/modelinglib/48x48/item.png"));
|
||||||
m_item->setIcon(icon);
|
m_item->setIcon(icon);
|
||||||
m_item->setStereotypes(stereotypes);
|
m_item->setStereotypes(stereotypes);
|
||||||
}
|
}
|
||||||
@@ -337,14 +337,14 @@ TreeModel::TreeModel(QObject *parent)
|
|||||||
m_stereotypeController(0),
|
m_stereotypeController(0),
|
||||||
m_styleController(0),
|
m_styleController(0),
|
||||||
m_rootItem(0),
|
m_rootItem(0),
|
||||||
m_busy(NOT_BUSY)
|
m_busy(NotBusy)
|
||||||
{
|
{
|
||||||
connect(this, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(onModelDataChanged(QModelIndex,QModelIndex)));
|
connect(this, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(onModelDataChanged(QModelIndex,QModelIndex)));
|
||||||
}
|
}
|
||||||
|
|
||||||
TreeModel::~TreeModel()
|
TreeModel::~TreeModel()
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
disconnect();
|
disconnect();
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
@@ -478,14 +478,14 @@ QStringList TreeModel::mimeTypes() const
|
|||||||
|
|
||||||
void TreeModel::onBeginResetModel()
|
void TreeModel::onBeginResetModel()
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_busy = RESET_MODEL;
|
m_busy = ResetModel;
|
||||||
QStandardItemModel::beginResetModel();
|
QStandardItemModel::beginResetModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::onEndResetModel()
|
void TreeModel::onEndResetModel()
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == RESET_MODEL);
|
QMT_CHECK(m_busy == ResetModel);
|
||||||
clear();
|
clear();
|
||||||
MPackage *rootPackage = m_modelController->rootPackage();
|
MPackage *rootPackage = m_modelController->rootPackage();
|
||||||
if (m_modelController && rootPackage) {
|
if (m_modelController && rootPackage) {
|
||||||
@@ -494,20 +494,20 @@ void TreeModel::onEndResetModel()
|
|||||||
createChildren(rootPackage, m_rootItem);
|
createChildren(rootPackage, m_rootItem);
|
||||||
QStandardItemModel::endResetModel();
|
QStandardItemModel::endResetModel();
|
||||||
}
|
}
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::onBeginUpdateObject(int row, const MObject *parent)
|
void TreeModel::onBeginUpdateObject(int row, const MObject *parent)
|
||||||
{
|
{
|
||||||
Q_UNUSED(row);
|
Q_UNUSED(row);
|
||||||
Q_UNUSED(parent);
|
Q_UNUSED(parent);
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_busy = UPDATE_ELEMENT;
|
m_busy = UpdateElement;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::onEndUpdateObject(int row, const MObject *parent)
|
void TreeModel::onEndUpdateObject(int row, const MObject *parent)
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == UPDATE_ELEMENT);
|
QMT_CHECK(m_busy == UpdateElement);
|
||||||
QModelIndex parentIndex;
|
QModelIndex parentIndex;
|
||||||
if (parent) {
|
if (parent) {
|
||||||
QMT_CHECK(m_objectToItemMap.contains(parent));
|
QMT_CHECK(m_objectToItemMap.contains(parent));
|
||||||
@@ -527,7 +527,7 @@ void TreeModel::onEndUpdateObject(int row, const MObject *parent)
|
|||||||
element->accept(&visitor);
|
element->accept(&visitor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
emit dataChanged(QStandardItemModel::index(row, 0, parentIndex), QStandardItemModel::index(row, 0, parentIndex));
|
emit dataChanged(QStandardItemModel::index(row, 0, parentIndex), QStandardItemModel::index(row, 0, parentIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -535,26 +535,26 @@ void TreeModel::onBeginInsertObject(int row, const MObject *parent)
|
|||||||
{
|
{
|
||||||
Q_UNUSED(row);
|
Q_UNUSED(row);
|
||||||
Q_UNUSED(parent);
|
Q_UNUSED(parent);
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_busy = INSERT_ELEMENT;
|
m_busy = InsertElement;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::onEndInsertObject(int row, const MObject *parent)
|
void TreeModel::onEndInsertObject(int row, const MObject *parent)
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == INSERT_ELEMENT);
|
QMT_CHECK(m_busy == InsertElement);
|
||||||
ModelItem *parentItem =m_objectToItemMap.value(parent);
|
ModelItem *parentItem =m_objectToItemMap.value(parent);
|
||||||
QMT_CHECK(parentItem);
|
QMT_CHECK(parentItem);
|
||||||
MObject *object = parent->children().at(row);
|
MObject *object = parent->children().at(row);
|
||||||
ModelItem *item = createItem(object);
|
ModelItem *item = createItem(object);
|
||||||
parentItem->insertRow(row, item);
|
parentItem->insertRow(row, item);
|
||||||
createChildren(object, item);
|
createChildren(object, item);
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::onBeginRemoveObject(int row, const MObject *parent)
|
void TreeModel::onBeginRemoveObject(int row, const MObject *parent)
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_busy = REMOVE_ELEMENT;
|
m_busy = RemoveElement;
|
||||||
QMT_CHECK(parent);
|
QMT_CHECK(parent);
|
||||||
MObject *object = parent->children().at(row);
|
MObject *object = parent->children().at(row);
|
||||||
if (object) {
|
if (object) {
|
||||||
@@ -569,14 +569,14 @@ void TreeModel::onEndRemoveObject(int row, const MObject *parent)
|
|||||||
{
|
{
|
||||||
Q_UNUSED(row);
|
Q_UNUSED(row);
|
||||||
Q_UNUSED(parent);
|
Q_UNUSED(parent);
|
||||||
QMT_CHECK(m_busy == REMOVE_ELEMENT);
|
QMT_CHECK(m_busy == RemoveElement);
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::onBeginMoveObject(int formerRow, const MObject *formerOwner)
|
void TreeModel::onBeginMoveObject(int formerRow, const MObject *formerOwner)
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_busy = MOVE_ELEMENT;
|
m_busy = MoveElement;
|
||||||
QMT_CHECK(formerOwner);
|
QMT_CHECK(formerOwner);
|
||||||
MObject *object = formerOwner->children().at(formerRow);
|
MObject *object = formerOwner->children().at(formerRow);
|
||||||
if (object) {
|
if (object) {
|
||||||
@@ -589,28 +589,28 @@ void TreeModel::onBeginMoveObject(int formerRow, const MObject *formerOwner)
|
|||||||
|
|
||||||
void TreeModel::onEndMoveObject(int row, const MObject *owner)
|
void TreeModel::onEndMoveObject(int row, const MObject *owner)
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == MOVE_ELEMENT);
|
QMT_CHECK(m_busy == MoveElement);
|
||||||
ModelItem *parentItem =m_objectToItemMap.value(owner);
|
ModelItem *parentItem =m_objectToItemMap.value(owner);
|
||||||
QMT_CHECK(parentItem);
|
QMT_CHECK(parentItem);
|
||||||
MObject *object = owner->children().at(row);
|
MObject *object = owner->children().at(row);
|
||||||
ModelItem *item = createItem(object);
|
ModelItem *item = createItem(object);
|
||||||
parentItem->insertRow(row, item);
|
parentItem->insertRow(row, item);
|
||||||
createChildren(object, item);
|
createChildren(object, item);
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::onBeginUpdateRelation(int row, const MObject *parent)
|
void TreeModel::onBeginUpdateRelation(int row, const MObject *parent)
|
||||||
{
|
{
|
||||||
Q_UNUSED(row);
|
Q_UNUSED(row);
|
||||||
Q_UNUSED(parent);
|
Q_UNUSED(parent);
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_busy = UPDATE_RELATION;
|
m_busy = UpdateRelation;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::onEndUpdateRelation(int row, const MObject *parent)
|
void TreeModel::onEndUpdateRelation(int row, const MObject *parent)
|
||||||
{
|
{
|
||||||
QMT_CHECK(parent);
|
QMT_CHECK(parent);
|
||||||
QMT_CHECK(m_busy == UPDATE_RELATION);
|
QMT_CHECK(m_busy == UpdateRelation);
|
||||||
|
|
||||||
QMT_CHECK(m_objectToItemMap.contains(parent));
|
QMT_CHECK(m_objectToItemMap.contains(parent));
|
||||||
ModelItem *parentItem = m_objectToItemMap.value(parent);
|
ModelItem *parentItem = m_objectToItemMap.value(parent);
|
||||||
@@ -630,7 +630,7 @@ void TreeModel::onEndUpdateRelation(int row, const MObject *parent)
|
|||||||
element->accept(&visitor);
|
element->accept(&visitor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
emit dataChanged(QStandardItemModel::index(row, 0, parentIndex), QStandardItemModel::index(row, 0, parentIndex));
|
emit dataChanged(QStandardItemModel::index(row, 0, parentIndex), QStandardItemModel::index(row, 0, parentIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -638,27 +638,27 @@ void TreeModel::onBeginInsertRelation(int row, const MObject *parent)
|
|||||||
{
|
{
|
||||||
Q_UNUSED(row);
|
Q_UNUSED(row);
|
||||||
Q_UNUSED(parent);
|
Q_UNUSED(parent);
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_busy = INSERT_RELATION;
|
m_busy = InsertRelation;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::onEndInsertRelation(int row, const MObject *parent)
|
void TreeModel::onEndInsertRelation(int row, const MObject *parent)
|
||||||
{
|
{
|
||||||
QMT_CHECK(parent);
|
QMT_CHECK(parent);
|
||||||
QMT_CHECK(m_busy == INSERT_RELATION);
|
QMT_CHECK(m_busy == InsertRelation);
|
||||||
ModelItem *parentItem =m_objectToItemMap.value(parent);
|
ModelItem *parentItem =m_objectToItemMap.value(parent);
|
||||||
QMT_CHECK(parentItem);
|
QMT_CHECK(parentItem);
|
||||||
MRelation *relation = parent->relations().at(row);
|
MRelation *relation = parent->relations().at(row);
|
||||||
ModelItem *item = createItem(relation);
|
ModelItem *item = createItem(relation);
|
||||||
parentItem->insertRow(parent->children().size() + row, item);
|
parentItem->insertRow(parent->children().size() + row, item);
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::onBeginRemoveRelation(int row, const MObject *parent)
|
void TreeModel::onBeginRemoveRelation(int row, const MObject *parent)
|
||||||
{
|
{
|
||||||
QMT_CHECK(parent);
|
QMT_CHECK(parent);
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_busy = REMOVE_RELATION;
|
m_busy = RemoveRelation;
|
||||||
QMT_CHECK(parent->relations().at(row));
|
QMT_CHECK(parent->relations().at(row));
|
||||||
ModelItem *parentItem = m_objectToItemMap.value(parent);
|
ModelItem *parentItem = m_objectToItemMap.value(parent);
|
||||||
QMT_CHECK(parentItem);
|
QMT_CHECK(parentItem);
|
||||||
@@ -669,14 +669,14 @@ void TreeModel::onEndRemoveRelation(int row, const MObject *parent)
|
|||||||
{
|
{
|
||||||
Q_UNUSED(row);
|
Q_UNUSED(row);
|
||||||
Q_UNUSED(parent);
|
Q_UNUSED(parent);
|
||||||
QMT_CHECK(m_busy == REMOVE_RELATION);
|
QMT_CHECK(m_busy == RemoveRelation);
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::onBeginMoveRelation(int formerRow, const MObject *formerOwner)
|
void TreeModel::onBeginMoveRelation(int formerRow, const MObject *formerOwner)
|
||||||
{
|
{
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
m_busy = MOVE_ELEMENT;
|
m_busy = MoveElement;
|
||||||
QMT_CHECK(formerOwner);
|
QMT_CHECK(formerOwner);
|
||||||
QMT_CHECK(formerOwner->relations().at(formerRow));
|
QMT_CHECK(formerOwner->relations().at(formerRow));
|
||||||
ModelItem *parentItem = m_objectToItemMap.value(formerOwner);
|
ModelItem *parentItem = m_objectToItemMap.value(formerOwner);
|
||||||
@@ -687,19 +687,19 @@ void TreeModel::onBeginMoveRelation(int formerRow, const MObject *formerOwner)
|
|||||||
void TreeModel::onEndMoveRelation(int row, const MObject *owner)
|
void TreeModel::onEndMoveRelation(int row, const MObject *owner)
|
||||||
{
|
{
|
||||||
QMT_CHECK(owner);
|
QMT_CHECK(owner);
|
||||||
QMT_CHECK(m_busy == MOVE_ELEMENT);
|
QMT_CHECK(m_busy == MoveElement);
|
||||||
ModelItem *parentItem =m_objectToItemMap.value(owner);
|
ModelItem *parentItem =m_objectToItemMap.value(owner);
|
||||||
QMT_CHECK(parentItem);
|
QMT_CHECK(parentItem);
|
||||||
MRelation *relation = owner->relations().at(row);
|
MRelation *relation = owner->relations().at(row);
|
||||||
ModelItem *item = createItem(relation);
|
ModelItem *item = createItem(relation);
|
||||||
parentItem->insertRow(owner->children().size() + row, item);
|
parentItem->insertRow(owner->children().size() + row, item);
|
||||||
m_busy = NOT_BUSY;
|
m_busy = NotBusy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::onRelationEndChanged(MRelation *relation, MObject *endObject)
|
void TreeModel::onRelationEndChanged(MRelation *relation, MObject *endObject)
|
||||||
{
|
{
|
||||||
Q_UNUSED(endObject);
|
Q_UNUSED(endObject);
|
||||||
QMT_CHECK(m_busy == NOT_BUSY);
|
QMT_CHECK(m_busy == NotBusy);
|
||||||
|
|
||||||
MObject *parent = relation->owner();
|
MObject *parent = relation->owner();
|
||||||
QMT_CHECK(parent);
|
QMT_CHECK(parent);
|
||||||
|
|||||||
@@ -68,14 +68,14 @@ class QMT_EXPORT TreeModel :
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum ItemType {
|
enum ItemType {
|
||||||
PACKAGE,
|
Package,
|
||||||
DIAGRAM,
|
Diagram,
|
||||||
ELEMENT,
|
Element,
|
||||||
RELATION
|
Relation
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Roles {
|
enum Roles {
|
||||||
ROLE_ITEM_TYPE = Qt::UserRole + 1
|
RoleItemType = Qt::UserRole + 1
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@@ -169,20 +169,20 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
enum Busy {
|
enum Busy {
|
||||||
NOT_BUSY,
|
NotBusy,
|
||||||
RESET_MODEL,
|
ResetModel,
|
||||||
UPDATE_ELEMENT,
|
UpdateElement,
|
||||||
INSERT_ELEMENT,
|
InsertElement,
|
||||||
REMOVE_ELEMENT,
|
RemoveElement,
|
||||||
MOVE_ELEMENT,
|
MoveElement,
|
||||||
UPDATE_DIAGRAM,
|
UpdateDiagram,
|
||||||
INSERT_DIAGRAM,
|
InsertDiagram,
|
||||||
REMOVE_DIAGRAM,
|
RemoveDiagram,
|
||||||
MOVE_DIAGRAM,
|
MoveDiagram,
|
||||||
UPDATE_RELATION,
|
UpdateRelation,
|
||||||
INSERT_RELATION,
|
InsertRelation,
|
||||||
REMOVE_RELATION,
|
RemoveRelation,
|
||||||
MOVE_RELATION
|
MoveRelation
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -371,7 +371,7 @@ void ClassMembersEdit::onTextChanged()
|
|||||||
|
|
||||||
QString ClassMembersEdit::build(const QList<MClassMember> &members)
|
QString ClassMembersEdit::build(const QList<MClassMember> &members)
|
||||||
{
|
{
|
||||||
MClassMember::Visibility currentVisibility = MClassMember::VISIBILITY_UNDEFINED;
|
MClassMember::Visibility currentVisibility = MClassMember::VisibilityUndefined;
|
||||||
QString currentGroup;
|
QString currentGroup;
|
||||||
|
|
||||||
QString text;
|
QString text;
|
||||||
@@ -379,30 +379,30 @@ QString ClassMembersEdit::build(const QList<MClassMember> &members)
|
|||||||
bool addNewline = false;
|
bool addNewline = false;
|
||||||
bool addSpace = false;
|
bool addSpace = false;
|
||||||
if (member.visibility() != currentVisibility) {
|
if (member.visibility() != currentVisibility) {
|
||||||
if (member.visibility() != MClassMember::VISIBILITY_UNDEFINED) {
|
if (member.visibility() != MClassMember::VisibilityUndefined) {
|
||||||
QString vis;
|
QString vis;
|
||||||
switch (member.visibility()) {
|
switch (member.visibility()) {
|
||||||
case MClassMember::VISIBILITY_UNDEFINED:
|
case MClassMember::VisibilityUndefined:
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PUBLIC:
|
case MClassMember::VisibilityPublic:
|
||||||
vis = QStringLiteral("public:");
|
vis = QStringLiteral("public:");
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PROTECTED:
|
case MClassMember::VisibilityProtected:
|
||||||
vis = QStringLiteral("protected:");
|
vis = QStringLiteral("protected:");
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PRIVATE:
|
case MClassMember::VisibilityPrivate:
|
||||||
vis = QStringLiteral("private:");
|
vis = QStringLiteral("private:");
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_SIGNALS:
|
case MClassMember::VisibilitySignals:
|
||||||
vis = QStringLiteral("signals:");
|
vis = QStringLiteral("signals:");
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PRIVATE_SLOTS:
|
case MClassMember::VisibilityPrivateSlots:
|
||||||
vis = QStringLiteral("private slots:");
|
vis = QStringLiteral("private slots:");
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PROTECTED_SLOTS:
|
case MClassMember::VisibilityProtectedSlots:
|
||||||
vis = QStringLiteral("protected slots:");
|
vis = QStringLiteral("protected slots:");
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PUBLIC_SLOTS:
|
case MClassMember::VisibilityPublicSlots:
|
||||||
vis = QStringLiteral("public slots:");
|
vis = QStringLiteral("public slots:");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -433,29 +433,29 @@ QString ClassMembersEdit::build(const QList<MClassMember> &members)
|
|||||||
StereotypesController ctrl;
|
StereotypesController ctrl;
|
||||||
text += QString(QStringLiteral("<<%1>> ")).arg(ctrl.toString(member.stereotypes()));
|
text += QString(QStringLiteral("<<%1>> ")).arg(ctrl.toString(member.stereotypes()));
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_QSIGNAL) {
|
if (member.properties() & MClassMember::PropertyQsignal) {
|
||||||
text += QStringLiteral("signal ");
|
text += QStringLiteral("signal ");
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_QSLOT) {
|
if (member.properties() & MClassMember::PropertyQslot) {
|
||||||
text += QStringLiteral("slot ");
|
text += QStringLiteral("slot ");
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_QINVOKABLE) {
|
if (member.properties() & MClassMember::PropertyQinvokable) {
|
||||||
text += QStringLiteral("invokable ");
|
text += QStringLiteral("invokable ");
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_VIRTUAL) {
|
if (member.properties() & MClassMember::PropertyVirtual) {
|
||||||
text += QStringLiteral("virtual ");
|
text += QStringLiteral("virtual ");
|
||||||
}
|
}
|
||||||
text += member.declaration();
|
text += member.declaration();
|
||||||
if (member.properties() & MClassMember::PROPERTY_CONST) {
|
if (member.properties() & MClassMember::PropertyConst) {
|
||||||
text += QStringLiteral(" const");
|
text += QStringLiteral(" const");
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_OVERRIDE) {
|
if (member.properties() & MClassMember::PropertyOverride) {
|
||||||
text += QStringLiteral(" override");
|
text += QStringLiteral(" override");
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_FINAL) {
|
if (member.properties() & MClassMember::PropertyFinal) {
|
||||||
text += QStringLiteral(" final");
|
text += QStringLiteral(" final");
|
||||||
}
|
}
|
||||||
if (member.properties() & MClassMember::PROPERTY_ABSTRACT) {
|
if (member.properties() & MClassMember::PropertyAbstract) {
|
||||||
text += QStringLiteral(" = 0");
|
text += QStringLiteral(" = 0");
|
||||||
}
|
}
|
||||||
text += QStringLiteral(";\n");
|
text += QStringLiteral(";\n");
|
||||||
@@ -471,7 +471,7 @@ QList<MClassMember> ClassMembersEdit::parse(const QString &text, bool *ok)
|
|||||||
*ok = true;
|
*ok = true;
|
||||||
QList<MClassMember> members;
|
QList<MClassMember> members;
|
||||||
MClassMember member;
|
MClassMember member;
|
||||||
MClassMember::Visibility currentVisibility = MClassMember::VISIBILITY_UNDEFINED;
|
MClassMember::Visibility currentVisibility = MClassMember::VisibilityUndefined;
|
||||||
QString currentGroup;
|
QString currentGroup;
|
||||||
|
|
||||||
Cursor cursor(text);
|
Cursor cursor(text);
|
||||||
@@ -484,30 +484,30 @@ QList<MClassMember> ClassMembersEdit::parse(const QString &text, bool *ok)
|
|||||||
QString word = cursor.readWord().toLower();
|
QString word = cursor.readWord().toLower();
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (word == QStringLiteral("public")) {
|
if (word == QStringLiteral("public")) {
|
||||||
currentVisibility = MClassMember::VISIBILITY_PUBLIC;
|
currentVisibility = MClassMember::VisibilityPublic;
|
||||||
word = cursor.readWord().toLower();
|
word = cursor.readWord().toLower();
|
||||||
} else if (word == QStringLiteral("protected")) {
|
} else if (word == QStringLiteral("protected")) {
|
||||||
currentVisibility = MClassMember::VISIBILITY_PROTECTED;
|
currentVisibility = MClassMember::VisibilityProtected;
|
||||||
word = cursor.readWord().toLower();
|
word = cursor.readWord().toLower();
|
||||||
} else if (word == QStringLiteral("private")) {
|
} else if (word == QStringLiteral("private")) {
|
||||||
currentVisibility = MClassMember::VISIBILITY_PRIVATE;
|
currentVisibility = MClassMember::VisibilityPrivate;
|
||||||
word = cursor.readWord().toLower();
|
word = cursor.readWord().toLower();
|
||||||
} else if (word == QStringLiteral("signals")) {
|
} else if (word == QStringLiteral("signals")) {
|
||||||
currentVisibility = MClassMember::VISIBILITY_SIGNALS;
|
currentVisibility = MClassMember::VisibilitySignals;
|
||||||
word = cursor.readWord().toLower();
|
word = cursor.readWord().toLower();
|
||||||
} else if (word == QStringLiteral("slots")) {
|
} else if (word == QStringLiteral("slots")) {
|
||||||
switch (currentVisibility) {
|
switch (currentVisibility) {
|
||||||
case MClassMember::VISIBILITY_PRIVATE:
|
case MClassMember::VisibilityPrivate:
|
||||||
currentVisibility = MClassMember::VISIBILITY_PRIVATE_SLOTS;
|
currentVisibility = MClassMember::VisibilityPrivateSlots;
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PROTECTED:
|
case MClassMember::VisibilityProtected:
|
||||||
currentVisibility = MClassMember::VISIBILITY_PROTECTED_SLOTS;
|
currentVisibility = MClassMember::VisibilityProtectedSlots;
|
||||||
break;
|
break;
|
||||||
case MClassMember::VISIBILITY_PUBLIC:
|
case MClassMember::VisibilityPublic:
|
||||||
currentVisibility = MClassMember::VISIBILITY_PUBLIC_SLOTS;
|
currentVisibility = MClassMember::VisibilityPublicSlots;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
currentVisibility = MClassMember::VISIBILITY_PRIVATE_SLOTS;
|
currentVisibility = MClassMember::VisibilityPrivateSlots;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
word = cursor.readWord().toLower();
|
word = cursor.readWord().toLower();
|
||||||
@@ -520,16 +520,16 @@ QList<MClassMember> ClassMembersEdit::parse(const QString &text, bool *ok)
|
|||||||
member.setStereotypes(ctrl.fromString(stereotypes));
|
member.setStereotypes(ctrl.fromString(stereotypes));
|
||||||
word = cursor.readWord().toLower();
|
word = cursor.readWord().toLower();
|
||||||
} else if (word == QStringLiteral("virtual")) {
|
} else if (word == QStringLiteral("virtual")) {
|
||||||
member.setProperties(member.properties() | MClassMember::PROPERTY_VIRTUAL);
|
member.setProperties(member.properties() | MClassMember::PropertyVirtual);
|
||||||
word = cursor.readWord().toLower();
|
word = cursor.readWord().toLower();
|
||||||
} else if (word == QStringLiteral("signal") || word == QStringLiteral("qSignal")) {
|
} else if (word == QStringLiteral("signal") || word == QStringLiteral("qSignal")) {
|
||||||
member.setProperties(member.properties() | MClassMember::PROPERTY_QSIGNAL);
|
member.setProperties(member.properties() | MClassMember::PropertyQsignal);
|
||||||
word = cursor.readWord().toLower();
|
word = cursor.readWord().toLower();
|
||||||
} else if (word == QStringLiteral("slot") || word == QStringLiteral("qSlot")) {
|
} else if (word == QStringLiteral("slot") || word == QStringLiteral("qSlot")) {
|
||||||
member.setProperties(member.properties() | MClassMember::PROPERTY_QSLOT);
|
member.setProperties(member.properties() | MClassMember::PropertyQslot);
|
||||||
word = cursor.readWord().toLower();
|
word = cursor.readWord().toLower();
|
||||||
} else if (word == QStringLiteral("invokable") || word == QStringLiteral("qInvokable")) {
|
} else if (word == QStringLiteral("invokable") || word == QStringLiteral("qInvokable")) {
|
||||||
member.setProperties(member.properties() | MClassMember::PROPERTY_QINVOKABLE);
|
member.setProperties(member.properties() | MClassMember::PropertyQinvokable);
|
||||||
} else if (word == QStringLiteral(":")) {
|
} else if (word == QStringLiteral(":")) {
|
||||||
word = cursor.readWord().toLower();
|
word = cursor.readWord().toLower();
|
||||||
} else {
|
} else {
|
||||||
@@ -550,18 +550,18 @@ QList<MClassMember> ClassMembersEdit::parse(const QString &text, bool *ok)
|
|||||||
}
|
}
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (word == QStringLiteral("0")) {
|
if (word == QStringLiteral("0")) {
|
||||||
member.setProperties(member.properties() | MClassMember::PROPERTY_ABSTRACT);
|
member.setProperties(member.properties() | MClassMember::PropertyAbstract);
|
||||||
word = cursor.readWordFromRight().toLower();
|
word = cursor.readWordFromRight().toLower();
|
||||||
} else if (word == QStringLiteral("=")) {
|
} else if (word == QStringLiteral("=")) {
|
||||||
word = cursor.readWordFromRight().toLower();
|
word = cursor.readWordFromRight().toLower();
|
||||||
} else if (word == QStringLiteral("final")) {
|
} else if (word == QStringLiteral("final")) {
|
||||||
member.setProperties(member.properties() | MClassMember::PROPERTY_FINAL);
|
member.setProperties(member.properties() | MClassMember::PropertyFinal);
|
||||||
word = cursor.readWordFromRight().toLower();
|
word = cursor.readWordFromRight().toLower();
|
||||||
} else if (word == QStringLiteral("override")) {
|
} else if (word == QStringLiteral("override")) {
|
||||||
member.setProperties(member.properties() | MClassMember::PROPERTY_OVERRIDE);
|
member.setProperties(member.properties() | MClassMember::PropertyOverride);
|
||||||
word = cursor.readWordFromRight().toLower();
|
word = cursor.readWordFromRight().toLower();
|
||||||
} else if (word == QStringLiteral("const")) {
|
} else if (word == QStringLiteral("const")) {
|
||||||
member.setProperties(member.properties() | MClassMember::PROPERTY_CONST);
|
member.setProperties(member.properties() | MClassMember::PropertyConst);
|
||||||
word = cursor.readWordFromRight().toLower();
|
word = cursor.readWordFromRight().toLower();
|
||||||
} else {
|
} else {
|
||||||
cursor.unreadWord();
|
cursor.unreadWord();
|
||||||
@@ -576,9 +576,9 @@ QList<MClassMember> ClassMembersEdit::parse(const QString &text, bool *ok)
|
|||||||
if (!declaration.isEmpty()) {
|
if (!declaration.isEmpty()) {
|
||||||
member.setDeclaration(declaration);
|
member.setDeclaration(declaration);
|
||||||
if (declaration.endsWith(QStringLiteral(")"))) {
|
if (declaration.endsWith(QStringLiteral(")"))) {
|
||||||
member.setMemberType(MClassMember::MEMBER_METHOD);
|
member.setMemberType(MClassMember::MemberMethod);
|
||||||
} else {
|
} else {
|
||||||
member.setMemberType(MClassMember::MEMBER_ATTRIBUTE);
|
member.setMemberType(MClassMember::MemberAttribute);
|
||||||
}
|
}
|
||||||
members.append(member);
|
members.append(member);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -401,7 +401,7 @@ void PropertiesView::beginUpdate(DElement *diagramElement)
|
|||||||
QMT_CHECK(m_selectedDiagram != 0);
|
QMT_CHECK(m_selectedDiagram != 0);
|
||||||
QMT_CHECK(m_diagramController->findElement(diagramElement->uid(), m_selectedDiagram) == diagramElement);
|
QMT_CHECK(m_diagramController->findElement(diagramElement->uid(), m_selectedDiagram) == diagramElement);
|
||||||
|
|
||||||
m_diagramController->startUpdateElement(diagramElement, m_selectedDiagram, DiagramController::UPDATE_MINOR);
|
m_diagramController->startUpdateElement(diagramElement, m_selectedDiagram, DiagramController::UpdateMinor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::endUpdate(DElement *diagramElement, bool cancelled)
|
void PropertiesView::endUpdate(DElement *diagramElement, bool cancelled)
|
||||||
|
|||||||
@@ -90,11 +90,11 @@ namespace qmt {
|
|||||||
static int translateDirectionToIndex(MDependency::Direction direction)
|
static int translateDirectionToIndex(MDependency::Direction direction)
|
||||||
{
|
{
|
||||||
switch (direction) {
|
switch (direction) {
|
||||||
case MDependency::A_TO_B:
|
case MDependency::AToB:
|
||||||
return 0;
|
return 0;
|
||||||
case MDependency::B_TO_A:
|
case MDependency::BToA:
|
||||||
return 1;
|
return 1;
|
||||||
case MDependency::BIDIRECTIONAL:
|
case MDependency::Bidirectional:
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@@ -108,7 +108,7 @@ static bool isValidDirectionIndex(int index)
|
|||||||
static MDependency::Direction translateIndexToDirection(int index)
|
static MDependency::Direction translateIndexToDirection(int index)
|
||||||
{
|
{
|
||||||
static const MDependency::Direction map[] = {
|
static const MDependency::Direction map[] = {
|
||||||
MDependency::A_TO_B, MDependency::B_TO_A, MDependency::BIDIRECTIONAL
|
MDependency::AToB, MDependency::BToA, MDependency::Bidirectional
|
||||||
};
|
};
|
||||||
QMT_CHECK(isValidDirectionIndex(index));
|
QMT_CHECK(isValidDirectionIndex(index));
|
||||||
return map[index];
|
return map[index];
|
||||||
@@ -117,11 +117,11 @@ static MDependency::Direction translateIndexToDirection(int index)
|
|||||||
static int translateAssociationKindToIndex(MAssociationEnd::Kind kind)
|
static int translateAssociationKindToIndex(MAssociationEnd::Kind kind)
|
||||||
{
|
{
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case MAssociationEnd::ASSOCIATION:
|
case MAssociationEnd::Association:
|
||||||
return 0;
|
return 0;
|
||||||
case MAssociationEnd::AGGREGATION:
|
case MAssociationEnd::Aggregation:
|
||||||
return 1;
|
return 1;
|
||||||
case MAssociationEnd::COMPOSITION:
|
case MAssociationEnd::Composition:
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@@ -135,7 +135,7 @@ static bool isValidAssociationKindIndex(int index)
|
|||||||
static MAssociationEnd::Kind translateIndexToAssociationKind(int index)
|
static MAssociationEnd::Kind translateIndexToAssociationKind(int index)
|
||||||
{
|
{
|
||||||
static const MAssociationEnd::Kind map[] = {
|
static const MAssociationEnd::Kind map[] = {
|
||||||
MAssociationEnd::ASSOCIATION, MAssociationEnd::AGGREGATION, MAssociationEnd::COMPOSITION
|
MAssociationEnd::Association, MAssociationEnd::Aggregation, MAssociationEnd::Composition
|
||||||
};
|
};
|
||||||
QMT_CHECK(isValidAssociationKindIndex(index));
|
QMT_CHECK(isValidAssociationKindIndex(index));
|
||||||
return map[index];
|
return map[index];
|
||||||
@@ -144,22 +144,22 @@ static MAssociationEnd::Kind translateIndexToAssociationKind(int index)
|
|||||||
static int translateVisualPrimaryRoleToIndex(DObject::VisualPrimaryRole visualRole)
|
static int translateVisualPrimaryRoleToIndex(DObject::VisualPrimaryRole visualRole)
|
||||||
{
|
{
|
||||||
switch (visualRole) {
|
switch (visualRole) {
|
||||||
case DObject::PRIMARY_ROLE_NORMAL:
|
case DObject::PrimaryRoleNormal:
|
||||||
return 0;
|
return 0;
|
||||||
case DObject::PRIMARY_ROLE_CUSTOM1:
|
case DObject::PrimaryRoleCustom1:
|
||||||
return 1;
|
return 1;
|
||||||
case DObject::PRIMARY_ROLE_CUSTOM2:
|
case DObject::PrimaryRoleCustom2:
|
||||||
return 2;
|
return 2;
|
||||||
case DObject::PRIMARY_ROLE_CUSTOM3:
|
case DObject::PrimaryRoleCustom3:
|
||||||
return 3;
|
return 3;
|
||||||
case DObject::PRIMARY_ROLE_CUSTOM4:
|
case DObject::PrimaryRoleCustom4:
|
||||||
return 4;
|
return 4;
|
||||||
case DObject::PRIMARY_ROLE_CUSTOM5:
|
case DObject::PrimaryRoleCustom5:
|
||||||
return 5;
|
return 5;
|
||||||
case DObject::DEPRECATED_PRIMARY_ROLE_LIGHTER:
|
case DObject::DeprecatedPrimaryRoleLighter:
|
||||||
case DObject::DEPRECATED_PRIMARY_ROLE_DARKER:
|
case DObject::DeprecatedPrimaryRoleDarker:
|
||||||
case DObject::DEPRECATED_PRIMARY_ROLE_SOFTEN:
|
case DObject::DeprecatedPrimaryRoleSoften:
|
||||||
case DObject::DEPRECATED_PRIMARY_ROLE_OUTLINE:
|
case DObject::DeprecatedPrimaryRoleOutline:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@@ -168,9 +168,9 @@ static int translateVisualPrimaryRoleToIndex(DObject::VisualPrimaryRole visualRo
|
|||||||
static DObject::VisualPrimaryRole translateIndexToVisualPrimaryRole(int index)
|
static DObject::VisualPrimaryRole translateIndexToVisualPrimaryRole(int index)
|
||||||
{
|
{
|
||||||
static const DObject::VisualPrimaryRole map[] = {
|
static const DObject::VisualPrimaryRole map[] = {
|
||||||
DObject::PRIMARY_ROLE_NORMAL,
|
DObject::PrimaryRoleNormal,
|
||||||
DObject::PRIMARY_ROLE_CUSTOM1, DObject::PRIMARY_ROLE_CUSTOM2, DObject::PRIMARY_ROLE_CUSTOM3,
|
DObject::PrimaryRoleCustom1, DObject::PrimaryRoleCustom2, DObject::PrimaryRoleCustom3,
|
||||||
DObject::PRIMARY_ROLE_CUSTOM4, DObject::PRIMARY_ROLE_CUSTOM5
|
DObject::PrimaryRoleCustom4, DObject::PrimaryRoleCustom5
|
||||||
};
|
};
|
||||||
QMT_CHECK(index >= 0 && index <= 5);
|
QMT_CHECK(index >= 0 && index <= 5);
|
||||||
return map[index];
|
return map[index];
|
||||||
@@ -179,15 +179,15 @@ static DObject::VisualPrimaryRole translateIndexToVisualPrimaryRole(int index)
|
|||||||
static int translateVisualSecondaryRoleToIndex(DObject::VisualSecondaryRole visualRole)
|
static int translateVisualSecondaryRoleToIndex(DObject::VisualSecondaryRole visualRole)
|
||||||
{
|
{
|
||||||
switch (visualRole) {
|
switch (visualRole) {
|
||||||
case DObject::SECONDARY_ROLE_NONE:
|
case DObject::SecondaryRoleNone:
|
||||||
return 0;
|
return 0;
|
||||||
case DObject::SECONDARY_ROLE_LIGHTER:
|
case DObject::SecondaryRoleLighter:
|
||||||
return 1;
|
return 1;
|
||||||
case DObject::SECONDARY_ROLE_DARKER:
|
case DObject::SecondaryRoleDarker:
|
||||||
return 2;
|
return 2;
|
||||||
case DObject::SECONDARY_ROLE_SOFTEN:
|
case DObject::SecondaryRoleSoften:
|
||||||
return 3;
|
return 3;
|
||||||
case DObject::SECONDARY_ROLE_OUTLINE:
|
case DObject::SecondaryRoleOutline:
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@@ -196,9 +196,9 @@ static int translateVisualSecondaryRoleToIndex(DObject::VisualSecondaryRole visu
|
|||||||
static DObject::VisualSecondaryRole translateIndexToVisualSecondaryRole(int index)
|
static DObject::VisualSecondaryRole translateIndexToVisualSecondaryRole(int index)
|
||||||
{
|
{
|
||||||
static const DObject::VisualSecondaryRole map[] = {
|
static const DObject::VisualSecondaryRole map[] = {
|
||||||
DObject::SECONDARY_ROLE_NONE,
|
DObject::SecondaryRoleNone,
|
||||||
DObject::SECONDARY_ROLE_LIGHTER, DObject::SECONDARY_ROLE_DARKER,
|
DObject::SecondaryRoleLighter, DObject::SecondaryRoleDarker,
|
||||||
DObject::SECONDARY_ROLE_SOFTEN, DObject::SECONDARY_ROLE_OUTLINE
|
DObject::SecondaryRoleSoften, DObject::SecondaryRoleOutline
|
||||||
};
|
};
|
||||||
QMT_CHECK(index >= 0 && index <= 4);
|
QMT_CHECK(index >= 0 && index <= 4);
|
||||||
return map[index];
|
return map[index];
|
||||||
@@ -207,15 +207,15 @@ static DObject::VisualSecondaryRole translateIndexToVisualSecondaryRole(int inde
|
|||||||
static int translateStereotypeDisplayToIndex(DObject::StereotypeDisplay stereotypeDisplay)
|
static int translateStereotypeDisplayToIndex(DObject::StereotypeDisplay stereotypeDisplay)
|
||||||
{
|
{
|
||||||
switch (stereotypeDisplay) {
|
switch (stereotypeDisplay) {
|
||||||
case DObject::STEREOTYPE_NONE:
|
case DObject::StereotypeNone:
|
||||||
return 1;
|
return 1;
|
||||||
case DObject::STEREOTYPE_LABEL:
|
case DObject::StereotypeLabel:
|
||||||
return 2;
|
return 2;
|
||||||
case DObject::STEREOTYPE_DECORATION:
|
case DObject::StereotypeDecoration:
|
||||||
return 3;
|
return 3;
|
||||||
case DObject::STEREOTYPE_ICON:
|
case DObject::StereotypeIcon:
|
||||||
return 4;
|
return 4;
|
||||||
case DObject::STEREOTYPE_SMART:
|
case DObject::StereotypeSmart:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@@ -224,11 +224,11 @@ static int translateStereotypeDisplayToIndex(DObject::StereotypeDisplay stereoty
|
|||||||
static DObject::StereotypeDisplay translateIndexToStereotypeDisplay(int index)
|
static DObject::StereotypeDisplay translateIndexToStereotypeDisplay(int index)
|
||||||
{
|
{
|
||||||
static const DObject::StereotypeDisplay map[] = {
|
static const DObject::StereotypeDisplay map[] = {
|
||||||
DObject::STEREOTYPE_SMART,
|
DObject::StereotypeSmart,
|
||||||
DObject::STEREOTYPE_NONE,
|
DObject::StereotypeNone,
|
||||||
DObject::STEREOTYPE_LABEL,
|
DObject::StereotypeLabel,
|
||||||
DObject::STEREOTYPE_DECORATION,
|
DObject::StereotypeDecoration,
|
||||||
DObject::STEREOTYPE_ICON
|
DObject::StereotypeIcon
|
||||||
};
|
};
|
||||||
QMT_CHECK(index >= 0 && index <= 4);
|
QMT_CHECK(index >= 0 && index <= 4);
|
||||||
return map[index];
|
return map[index];
|
||||||
@@ -237,11 +237,11 @@ static DObject::StereotypeDisplay translateIndexToStereotypeDisplay(int index)
|
|||||||
static int translateTemplateDisplayToIndex(DClass::TemplateDisplay templateDisplay)
|
static int translateTemplateDisplayToIndex(DClass::TemplateDisplay templateDisplay)
|
||||||
{
|
{
|
||||||
switch (templateDisplay) {
|
switch (templateDisplay) {
|
||||||
case DClass::TEMPLATE_SMART:
|
case DClass::TemplateSmart:
|
||||||
return 0;
|
return 0;
|
||||||
case DClass::TEMPLATE_BOX:
|
case DClass::TemplateBox:
|
||||||
return 1;
|
return 1;
|
||||||
case DClass::TEMPLATE_NAME:
|
case DClass::TemplateName:
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@@ -250,9 +250,9 @@ static int translateTemplateDisplayToIndex(DClass::TemplateDisplay templateDispl
|
|||||||
static DClass::TemplateDisplay translateIndexToTemplateDisplay(int index)
|
static DClass::TemplateDisplay translateIndexToTemplateDisplay(int index)
|
||||||
{
|
{
|
||||||
static const DClass::TemplateDisplay map[] = {
|
static const DClass::TemplateDisplay map[] = {
|
||||||
DClass::TEMPLATE_SMART,
|
DClass::TemplateSmart,
|
||||||
DClass::TEMPLATE_BOX,
|
DClass::TemplateBox,
|
||||||
DClass::TEMPLATE_NAME
|
DClass::TemplateName
|
||||||
};
|
};
|
||||||
QMT_CHECK(index >= 0 && index <= 2);
|
QMT_CHECK(index >= 0 && index <= 2);
|
||||||
return map[index];
|
return map[index];
|
||||||
@@ -261,17 +261,17 @@ static DClass::TemplateDisplay translateIndexToTemplateDisplay(int index)
|
|||||||
static int translateAnnotationVisualRoleToIndex(DAnnotation::VisualRole visualRole)
|
static int translateAnnotationVisualRoleToIndex(DAnnotation::VisualRole visualRole)
|
||||||
{
|
{
|
||||||
switch (visualRole) {
|
switch (visualRole) {
|
||||||
case DAnnotation::ROLE_NORMAL:
|
case DAnnotation::RoleNormal:
|
||||||
return 0;
|
return 0;
|
||||||
case DAnnotation::ROLE_TITLE:
|
case DAnnotation::RoleTitle:
|
||||||
return 1;
|
return 1;
|
||||||
case DAnnotation::ROLE_SUBTITLE:
|
case DAnnotation::RoleSubtitle:
|
||||||
return 2;
|
return 2;
|
||||||
case DAnnotation::ROLE_EMPHASIZED:
|
case DAnnotation::RoleEmphasized:
|
||||||
return 3;
|
return 3;
|
||||||
case DAnnotation::ROLE_SOFTEN:
|
case DAnnotation::RoleSoften:
|
||||||
return 4;
|
return 4;
|
||||||
case DAnnotation::ROLE_FOOTNOTE:
|
case DAnnotation::RoleFootnote:
|
||||||
return 5;
|
return 5;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@@ -280,8 +280,8 @@ static int translateAnnotationVisualRoleToIndex(DAnnotation::VisualRole visualRo
|
|||||||
static DAnnotation::VisualRole translateIndexToAnnotationVisualRole(int index)
|
static DAnnotation::VisualRole translateIndexToAnnotationVisualRole(int index)
|
||||||
{
|
{
|
||||||
static const DAnnotation::VisualRole map[] = {
|
static const DAnnotation::VisualRole map[] = {
|
||||||
DAnnotation::ROLE_NORMAL, DAnnotation::ROLE_TITLE, DAnnotation::ROLE_SUBTITLE,
|
DAnnotation::RoleNormal, DAnnotation::RoleTitle, DAnnotation::RoleSubtitle,
|
||||||
DAnnotation::ROLE_EMPHASIZED, DAnnotation::ROLE_SOFTEN, DAnnotation::ROLE_FOOTNOTE
|
DAnnotation::RoleEmphasized, DAnnotation::RoleSoften, DAnnotation::RoleFootnote
|
||||||
};
|
};
|
||||||
QMT_CHECK(index >= 0 && index <= 5);
|
QMT_CHECK(index >= 0 && index <= 5);
|
||||||
return map[index];
|
return map[index];
|
||||||
@@ -294,7 +294,7 @@ PropertiesView::MView::MView(PropertiesView *propertiesView)
|
|||||||
m_stereotypesController(new StereotypesController(this)),
|
m_stereotypesController(new StereotypesController(this)),
|
||||||
m_topWidget(0),
|
m_topWidget(0),
|
||||||
m_topLayout(0),
|
m_topLayout(0),
|
||||||
m_stereotypeElement(StereotypeIcon::ELEMENT_ANY),
|
m_stereotypeElement(StereotypeIcon::ElementAny),
|
||||||
m_classNameLabel(0),
|
m_classNameLabel(0),
|
||||||
m_stereotypeComboBox(0),
|
m_stereotypeComboBox(0),
|
||||||
m_reverseEngineeredLabel(0),
|
m_reverseEngineeredLabel(0),
|
||||||
@@ -320,7 +320,7 @@ PropertiesView::MView::MView(PropertiesView *propertiesView)
|
|||||||
m_endBNavigable(0),
|
m_endBNavigable(0),
|
||||||
m_endBKind(0),
|
m_endBKind(0),
|
||||||
m_separatorLine(0),
|
m_separatorLine(0),
|
||||||
m_styleElementType(StyleEngine::TYPE_OTHER),
|
m_styleElementType(StyleEngine::TypeOther),
|
||||||
m_posRectLabel(0),
|
m_posRectLabel(0),
|
||||||
m_autoSizedCheckbox(0),
|
m_autoSizedCheckbox(0),
|
||||||
m_visualPrimaryRoleSelector(0),
|
m_visualPrimaryRoleSelector(0),
|
||||||
@@ -416,7 +416,7 @@ void PropertiesView::MView::visitMElement(const MElement *element)
|
|||||||
m_reverseEngineeredLabel = new QLabel(m_topWidget);
|
m_reverseEngineeredLabel = new QLabel(m_topWidget);
|
||||||
m_topLayout->addRow(tr("Reverese engineered:"), m_reverseEngineeredLabel);
|
m_topLayout->addRow(tr("Reverese engineered:"), m_reverseEngineeredLabel);
|
||||||
}
|
}
|
||||||
QString text = element->flags().testFlag(MElement::REVERSE_ENGINEERED) ? tr("Yes") : tr("No");
|
QString text = element->flags().testFlag(MElement::ReverseEngineered) ? tr("Yes") : tr("No");
|
||||||
m_reverseEngineeredLabel->setText(text);
|
m_reverseEngineeredLabel->setText(text);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -848,11 +848,11 @@ void PropertiesView::MView::visitDObject(const DObject *object)
|
|||||||
}
|
}
|
||||||
if (m_visualPrimaryRoleSelector == 0) {
|
if (m_visualPrimaryRoleSelector == 0) {
|
||||||
m_visualPrimaryRoleSelector = new PaletteBox(m_topWidget);
|
m_visualPrimaryRoleSelector = new PaletteBox(m_topWidget);
|
||||||
setPrimaryRolePalette(m_styleElementType, DObject::PRIMARY_ROLE_CUSTOM1, QColor());
|
setPrimaryRolePalette(m_styleElementType, DObject::PrimaryRoleCustom1, QColor());
|
||||||
setPrimaryRolePalette(m_styleElementType, DObject::PRIMARY_ROLE_CUSTOM2, QColor());
|
setPrimaryRolePalette(m_styleElementType, DObject::PrimaryRoleCustom2, QColor());
|
||||||
setPrimaryRolePalette(m_styleElementType, DObject::PRIMARY_ROLE_CUSTOM3, QColor());
|
setPrimaryRolePalette(m_styleElementType, DObject::PrimaryRoleCustom3, QColor());
|
||||||
setPrimaryRolePalette(m_styleElementType, DObject::PRIMARY_ROLE_CUSTOM4, QColor());
|
setPrimaryRolePalette(m_styleElementType, DObject::PrimaryRoleCustom4, QColor());
|
||||||
setPrimaryRolePalette(m_styleElementType, DObject::PRIMARY_ROLE_CUSTOM5, QColor());
|
setPrimaryRolePalette(m_styleElementType, DObject::PrimaryRoleCustom5, QColor());
|
||||||
m_topLayout->addRow(tr("Color:"), m_visualPrimaryRoleSelector);
|
m_topLayout->addRow(tr("Color:"), m_visualPrimaryRoleSelector);
|
||||||
connect(m_visualPrimaryRoleSelector, SIGNAL(activated(int)), this, SLOT(onVisualPrimaryRoleChanged(int)));
|
connect(m_visualPrimaryRoleSelector, SIGNAL(activated(int)), this, SLOT(onVisualPrimaryRoleChanged(int)));
|
||||||
}
|
}
|
||||||
@@ -867,7 +867,7 @@ void PropertiesView::MView::visitDObject(const DObject *object)
|
|||||||
StereotypeIcon stereotypeIcon = m_propertiesView->stereotypeController()->findStereotypeIcon(shapeId);
|
StereotypeIcon stereotypeIcon = m_propertiesView->stereotypeController()->findStereotypeIcon(shapeId);
|
||||||
baseColor = stereotypeIcon.baseColor();
|
baseColor = stereotypeIcon.baseColor();
|
||||||
}
|
}
|
||||||
setPrimaryRolePalette(m_styleElementType, DObject::PRIMARY_ROLE_NORMAL, baseColor);
|
setPrimaryRolePalette(m_styleElementType, DObject::PrimaryRoleNormal, baseColor);
|
||||||
DObject::VisualPrimaryRole visualPrimaryRole;
|
DObject::VisualPrimaryRole visualPrimaryRole;
|
||||||
if (haveSameValue(m_diagramElements, &DObject::visualPrimaryRole, &visualPrimaryRole)) {
|
if (haveSameValue(m_diagramElements, &DObject::visualPrimaryRole, &visualPrimaryRole)) {
|
||||||
m_visualPrimaryRoleSelector->setCurrentIndex(translateVisualPrimaryRoleToIndex(visualPrimaryRole));
|
m_visualPrimaryRoleSelector->setCurrentIndex(translateVisualPrimaryRoleToIndex(visualPrimaryRole));
|
||||||
@@ -931,16 +931,16 @@ void PropertiesView::MView::visitDObject(const DObject *object)
|
|||||||
void PropertiesView::MView::visitDPackage(const DPackage *package)
|
void PropertiesView::MView::visitDPackage(const DPackage *package)
|
||||||
{
|
{
|
||||||
setTitle<DPackage>(m_diagramElements, tr("Package"), tr("Packages"));
|
setTitle<DPackage>(m_diagramElements, tr("Package"), tr("Packages"));
|
||||||
setStereotypeIconElement(StereotypeIcon::ELEMENT_PACKAGE);
|
setStereotypeIconElement(StereotypeIcon::ElementPackage);
|
||||||
setStyleElementType(StyleEngine::TYPE_PACKAGE);
|
setStyleElementType(StyleEngine::TypePackage);
|
||||||
visitDObject(package);
|
visitDObject(package);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::visitDClass(const DClass *klass)
|
void PropertiesView::MView::visitDClass(const DClass *klass)
|
||||||
{
|
{
|
||||||
setTitle<DClass>(m_diagramElements, tr("Class"), tr("Classes"));
|
setTitle<DClass>(m_diagramElements, tr("Class"), tr("Classes"));
|
||||||
setStereotypeIconElement(StereotypeIcon::ELEMENT_CLASS);
|
setStereotypeIconElement(StereotypeIcon::ElementClass);
|
||||||
setStyleElementType(StyleEngine::TYPE_CLASS);
|
setStyleElementType(StyleEngine::TypeClass);
|
||||||
visitDObject(klass);
|
visitDObject(klass);
|
||||||
if (m_templateDisplaySelector == 0) {
|
if (m_templateDisplaySelector == 0) {
|
||||||
m_templateDisplaySelector = new QComboBox(m_topWidget);
|
m_templateDisplaySelector = new QComboBox(m_topWidget);
|
||||||
@@ -974,8 +974,8 @@ void PropertiesView::MView::visitDClass(const DClass *klass)
|
|||||||
void PropertiesView::MView::visitDComponent(const DComponent *component)
|
void PropertiesView::MView::visitDComponent(const DComponent *component)
|
||||||
{
|
{
|
||||||
setTitle<DComponent>(m_diagramElements, tr("Component"), tr("Components"));
|
setTitle<DComponent>(m_diagramElements, tr("Component"), tr("Components"));
|
||||||
setStereotypeIconElement(StereotypeIcon::ELEMENT_COMPONENT);
|
setStereotypeIconElement(StereotypeIcon::ElementComponent);
|
||||||
setStyleElementType(StyleEngine::TYPE_COMPONENT);
|
setStyleElementType(StyleEngine::TypeComponent);
|
||||||
visitDObject(component);
|
visitDObject(component);
|
||||||
if (m_plainShapeCheckbox == 0) {
|
if (m_plainShapeCheckbox == 0) {
|
||||||
m_plainShapeCheckbox = new QCheckBox(tr("Plain shape"), m_topWidget);
|
m_plainShapeCheckbox = new QCheckBox(tr("Plain shape"), m_topWidget);
|
||||||
@@ -995,15 +995,15 @@ void PropertiesView::MView::visitDComponent(const DComponent *component)
|
|||||||
void PropertiesView::MView::visitDDiagram(const DDiagram *diagram)
|
void PropertiesView::MView::visitDDiagram(const DDiagram *diagram)
|
||||||
{
|
{
|
||||||
setTitle<DDiagram>(m_diagramElements, tr("Diagram"), tr("Diagrams"));
|
setTitle<DDiagram>(m_diagramElements, tr("Diagram"), tr("Diagrams"));
|
||||||
setStyleElementType(StyleEngine::TYPE_OTHER);
|
setStyleElementType(StyleEngine::TypeOther);
|
||||||
visitDObject(diagram);
|
visitDObject(diagram);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::visitDItem(const DItem *item)
|
void PropertiesView::MView::visitDItem(const DItem *item)
|
||||||
{
|
{
|
||||||
setTitle<DItem>(m_diagramElements, tr("Item"), tr("Items"));
|
setTitle<DItem>(m_diagramElements, tr("Item"), tr("Items"));
|
||||||
setStereotypeIconElement(StereotypeIcon::ELEMENT_ITEM);
|
setStereotypeIconElement(StereotypeIcon::ElementItem);
|
||||||
setStyleElementType(StyleEngine::TYPE_ITEM);
|
setStyleElementType(StyleEngine::TypeItem);
|
||||||
visitDObject(item);
|
visitDObject(item);
|
||||||
QList<DItem *> selection = filter<DItem>(m_diagramElements);
|
QList<DItem *> selection = filter<DItem>(m_diagramElements);
|
||||||
bool isSingleSelection = selection.size() == 1;
|
bool isSingleSelection = selection.size() == 1;
|
||||||
@@ -1091,23 +1091,23 @@ void PropertiesView::MView::visitDBoundary(const DBoundary *boundary)
|
|||||||
void PropertiesView::MView::onStereotypesChanged(const QString &stereotypes)
|
void PropertiesView::MView::onStereotypesChanged(const QString &stereotypes)
|
||||||
{
|
{
|
||||||
QList<QString> set = m_stereotypesController->fromString(stereotypes);
|
QList<QString> set = m_stereotypesController->fromString(stereotypes);
|
||||||
assignModelElement<MElement, QList<QString> >(m_modelElements, SELECTION_MULTI, set, &MElement::stereotypes, &MElement::setStereotypes);
|
assignModelElement<MElement, QList<QString> >(m_modelElements, SelectionMulti, set, &MElement::stereotypes, &MElement::setStereotypes);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onObjectNameChanged(const QString &name)
|
void PropertiesView::MView::onObjectNameChanged(const QString &name)
|
||||||
{
|
{
|
||||||
assignModelElement<MObject, QString>(m_modelElements, SELECTION_SINGLE, name, &MObject::name, &MObject::setName);
|
assignModelElement<MObject, QString>(m_modelElements, SelectionSingle, name, &MObject::name, &MObject::setName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onNamespaceChanged(const QString &nameSpace)
|
void PropertiesView::MView::onNamespaceChanged(const QString &nameSpace)
|
||||||
{
|
{
|
||||||
assignModelElement<MClass, QString>(m_modelElements, SELECTION_MULTI, nameSpace, &MClass::nameSpace, &MClass::setNameSpace);
|
assignModelElement<MClass, QString>(m_modelElements, SelectionMulti, nameSpace, &MClass::nameSpace, &MClass::setNameSpace);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onTemplateParametersChanged(const QString &templateParameters)
|
void PropertiesView::MView::onTemplateParametersChanged(const QString &templateParameters)
|
||||||
{
|
{
|
||||||
QList<QString> templateParametersList = splitTemplateParameters(templateParameters);
|
QList<QString> templateParametersList = splitTemplateParameters(templateParameters);
|
||||||
assignModelElement<MClass, QList<QString> >(m_modelElements, SELECTION_SINGLE, templateParametersList, &MClass::templateParameters, &MClass::setTemplateParameters);
|
assignModelElement<MClass, QList<QString> >(m_modelElements, SelectionSingle, templateParametersList, &MClass::templateParameters, &MClass::setTemplateParameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onClassMembersStatusChanged(bool valid)
|
void PropertiesView::MView::onClassMembersStatusChanged(bool valid)
|
||||||
@@ -1126,125 +1126,125 @@ void PropertiesView::MView::onParseClassMembers()
|
|||||||
|
|
||||||
void PropertiesView::MView::onClassMembersChanged(QList<MClassMember> &classMembers)
|
void PropertiesView::MView::onClassMembersChanged(QList<MClassMember> &classMembers)
|
||||||
{
|
{
|
||||||
assignModelElement<MClass, QList<MClassMember> >(m_modelElements, SELECTION_SINGLE, classMembers, &MClass::members, &MClass::setMembers);
|
assignModelElement<MClass, QList<MClassMember> >(m_modelElements, SelectionSingle, classMembers, &MClass::members, &MClass::setMembers);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onItemVarietyChanged(const QString &variety)
|
void PropertiesView::MView::onItemVarietyChanged(const QString &variety)
|
||||||
{
|
{
|
||||||
assignModelElement<MItem, QString>(m_modelElements, SELECTION_SINGLE, variety, &MItem::variety, &MItem::setVariety);
|
assignModelElement<MItem, QString>(m_modelElements, SelectionSingle, variety, &MItem::variety, &MItem::setVariety);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onRelationNameChanged(const QString &name)
|
void PropertiesView::MView::onRelationNameChanged(const QString &name)
|
||||||
{
|
{
|
||||||
assignModelElement<MRelation, QString>(m_modelElements, SELECTION_SINGLE, name, &MRelation::name, &MRelation::setName);
|
assignModelElement<MRelation, QString>(m_modelElements, SelectionSingle, name, &MRelation::name, &MRelation::setName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onDependencyDirectionChanged(int directionIndex)
|
void PropertiesView::MView::onDependencyDirectionChanged(int directionIndex)
|
||||||
{
|
{
|
||||||
MDependency::Direction direction = translateIndexToDirection(directionIndex);
|
MDependency::Direction direction = translateIndexToDirection(directionIndex);
|
||||||
assignModelElement<MDependency, MDependency::Direction>(m_modelElements, SELECTION_SINGLE, direction, &MDependency::direction, &MDependency::setDirection);
|
assignModelElement<MDependency, MDependency::Direction>(m_modelElements, SelectionSingle, direction, &MDependency::direction, &MDependency::setDirection);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onAssociationEndANameChanged(const QString &name)
|
void PropertiesView::MView::onAssociationEndANameChanged(const QString &name)
|
||||||
{
|
{
|
||||||
assignEmbeddedModelElement<MAssociation, MAssociationEnd, QString>(m_modelElements, SELECTION_SINGLE, name, &MAssociation::endA, &MAssociation::setEndA, &MAssociationEnd::name, &MAssociationEnd::setName);
|
assignEmbeddedModelElement<MAssociation, MAssociationEnd, QString>(m_modelElements, SelectionSingle, name, &MAssociation::endA, &MAssociation::setEndA, &MAssociationEnd::name, &MAssociationEnd::setName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onAssociationEndACardinalityChanged(const QString &cardinality)
|
void PropertiesView::MView::onAssociationEndACardinalityChanged(const QString &cardinality)
|
||||||
{
|
{
|
||||||
assignEmbeddedModelElement<MAssociation, MAssociationEnd, QString>(m_modelElements, SELECTION_SINGLE, cardinality, &MAssociation::endA, &MAssociation::setEndA, &MAssociationEnd::cardinality, &MAssociationEnd::setCardinality);
|
assignEmbeddedModelElement<MAssociation, MAssociationEnd, QString>(m_modelElements, SelectionSingle, cardinality, &MAssociation::endA, &MAssociation::setEndA, &MAssociationEnd::cardinality, &MAssociationEnd::setCardinality);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onAssociationEndANavigableChanged(bool navigable)
|
void PropertiesView::MView::onAssociationEndANavigableChanged(bool navigable)
|
||||||
{
|
{
|
||||||
assignEmbeddedModelElement<MAssociation, MAssociationEnd, bool>(m_modelElements, SELECTION_SINGLE, navigable, &MAssociation::endA, &MAssociation::setEndA, &MAssociationEnd::isNavigable, &MAssociationEnd::setNavigable);
|
assignEmbeddedModelElement<MAssociation, MAssociationEnd, bool>(m_modelElements, SelectionSingle, navigable, &MAssociation::endA, &MAssociation::setEndA, &MAssociationEnd::isNavigable, &MAssociationEnd::setNavigable);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onAssociationEndAKindChanged(int kindIndex)
|
void PropertiesView::MView::onAssociationEndAKindChanged(int kindIndex)
|
||||||
{
|
{
|
||||||
MAssociationEnd::Kind kind = translateIndexToAssociationKind(kindIndex);
|
MAssociationEnd::Kind kind = translateIndexToAssociationKind(kindIndex);
|
||||||
assignEmbeddedModelElement<MAssociation, MAssociationEnd, MAssociationEnd::Kind>(m_modelElements, SELECTION_SINGLE, kind, &MAssociation::endA, &MAssociation::setEndA, &MAssociationEnd::kind, &MAssociationEnd::setKind);
|
assignEmbeddedModelElement<MAssociation, MAssociationEnd, MAssociationEnd::Kind>(m_modelElements, SelectionSingle, kind, &MAssociation::endA, &MAssociation::setEndA, &MAssociationEnd::kind, &MAssociationEnd::setKind);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onAssociationEndBNameChanged(const QString &name)
|
void PropertiesView::MView::onAssociationEndBNameChanged(const QString &name)
|
||||||
{
|
{
|
||||||
assignEmbeddedModelElement<MAssociation, MAssociationEnd, QString>(m_modelElements, SELECTION_SINGLE, name, &MAssociation::endB, &MAssociation::setEndB, &MAssociationEnd::name, &MAssociationEnd::setName);
|
assignEmbeddedModelElement<MAssociation, MAssociationEnd, QString>(m_modelElements, SelectionSingle, name, &MAssociation::endB, &MAssociation::setEndB, &MAssociationEnd::name, &MAssociationEnd::setName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onAssociationEndBCardinalityChanged(const QString &cardinality)
|
void PropertiesView::MView::onAssociationEndBCardinalityChanged(const QString &cardinality)
|
||||||
{
|
{
|
||||||
assignEmbeddedModelElement<MAssociation, MAssociationEnd, QString>(m_modelElements, SELECTION_SINGLE, cardinality, &MAssociation::endB, &MAssociation::setEndB, &MAssociationEnd::cardinality, &MAssociationEnd::setCardinality);
|
assignEmbeddedModelElement<MAssociation, MAssociationEnd, QString>(m_modelElements, SelectionSingle, cardinality, &MAssociation::endB, &MAssociation::setEndB, &MAssociationEnd::cardinality, &MAssociationEnd::setCardinality);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onAssociationEndBNavigableChanged(bool navigable)
|
void PropertiesView::MView::onAssociationEndBNavigableChanged(bool navigable)
|
||||||
{
|
{
|
||||||
assignEmbeddedModelElement<MAssociation, MAssociationEnd, bool>(m_modelElements, SELECTION_SINGLE, navigable, &MAssociation::endB, &MAssociation::setEndB, &MAssociationEnd::isNavigable, &MAssociationEnd::setNavigable);
|
assignEmbeddedModelElement<MAssociation, MAssociationEnd, bool>(m_modelElements, SelectionSingle, navigable, &MAssociation::endB, &MAssociation::setEndB, &MAssociationEnd::isNavigable, &MAssociationEnd::setNavigable);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onAssociationEndBKindChanged(int kindIndex)
|
void PropertiesView::MView::onAssociationEndBKindChanged(int kindIndex)
|
||||||
{
|
{
|
||||||
MAssociationEnd::Kind kind = translateIndexToAssociationKind(kindIndex);
|
MAssociationEnd::Kind kind = translateIndexToAssociationKind(kindIndex);
|
||||||
assignEmbeddedModelElement<MAssociation, MAssociationEnd, MAssociationEnd::Kind>(m_modelElements, SELECTION_SINGLE, kind, &MAssociation::endB, &MAssociation::setEndB, &MAssociationEnd::kind, &MAssociationEnd::setKind);
|
assignEmbeddedModelElement<MAssociation, MAssociationEnd, MAssociationEnd::Kind>(m_modelElements, SelectionSingle, kind, &MAssociation::endB, &MAssociation::setEndB, &MAssociationEnd::kind, &MAssociationEnd::setKind);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onAutoSizedChanged(bool autoSized)
|
void PropertiesView::MView::onAutoSizedChanged(bool autoSized)
|
||||||
{
|
{
|
||||||
assignModelElement<DObject, bool>(m_diagramElements, SELECTION_MULTI, autoSized, &DObject::hasAutoSize, &DObject::setAutoSize);
|
assignModelElement<DObject, bool>(m_diagramElements, SelectionMulti, autoSized, &DObject::hasAutoSize, &DObject::setAutoSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onVisualPrimaryRoleChanged(int visualRoleIndex)
|
void PropertiesView::MView::onVisualPrimaryRoleChanged(int visualRoleIndex)
|
||||||
{
|
{
|
||||||
DObject::VisualPrimaryRole visualRole = translateIndexToVisualPrimaryRole(visualRoleIndex);
|
DObject::VisualPrimaryRole visualRole = translateIndexToVisualPrimaryRole(visualRoleIndex);
|
||||||
assignModelElement<DObject, DObject::VisualPrimaryRole>(m_diagramElements, SELECTION_MULTI, visualRole, &DObject::visualPrimaryRole, &DObject::setVisualPrimaryRole);
|
assignModelElement<DObject, DObject::VisualPrimaryRole>(m_diagramElements, SelectionMulti, visualRole, &DObject::visualPrimaryRole, &DObject::setVisualPrimaryRole);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onVisualSecondaryRoleChanged(int visualRoleIndex)
|
void PropertiesView::MView::onVisualSecondaryRoleChanged(int visualRoleIndex)
|
||||||
{
|
{
|
||||||
DObject::VisualSecondaryRole visualRole = translateIndexToVisualSecondaryRole(visualRoleIndex);
|
DObject::VisualSecondaryRole visualRole = translateIndexToVisualSecondaryRole(visualRoleIndex);
|
||||||
assignModelElement<DObject, DObject::VisualSecondaryRole>(m_diagramElements, SELECTION_MULTI, visualRole, &DObject::visualSecondaryRole, &DObject::setVisualSecondaryRole);
|
assignModelElement<DObject, DObject::VisualSecondaryRole>(m_diagramElements, SelectionMulti, visualRole, &DObject::visualSecondaryRole, &DObject::setVisualSecondaryRole);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onVisualEmphasizedChanged(bool visualEmphasized)
|
void PropertiesView::MView::onVisualEmphasizedChanged(bool visualEmphasized)
|
||||||
{
|
{
|
||||||
assignModelElement<DObject, bool>(m_diagramElements, SELECTION_MULTI, visualEmphasized, &DObject::isVisualEmphasized, &DObject::setVisualEmphasized);
|
assignModelElement<DObject, bool>(m_diagramElements, SelectionMulti, visualEmphasized, &DObject::isVisualEmphasized, &DObject::setVisualEmphasized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onStereotypeDisplayChanged(int stereotypeDisplayIndex)
|
void PropertiesView::MView::onStereotypeDisplayChanged(int stereotypeDisplayIndex)
|
||||||
{
|
{
|
||||||
DObject::StereotypeDisplay stereotypeDisplay = translateIndexToStereotypeDisplay(stereotypeDisplayIndex);
|
DObject::StereotypeDisplay stereotypeDisplay = translateIndexToStereotypeDisplay(stereotypeDisplayIndex);
|
||||||
assignModelElement<DObject, DObject::StereotypeDisplay>(m_diagramElements, SELECTION_MULTI, stereotypeDisplay, &DObject::stereotypeDisplay, &DObject::setStereotypeDisplay);
|
assignModelElement<DObject, DObject::StereotypeDisplay>(m_diagramElements, SelectionMulti, stereotypeDisplay, &DObject::stereotypeDisplay, &DObject::setStereotypeDisplay);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onTemplateDisplayChanged(int templateDisplayIndex)
|
void PropertiesView::MView::onTemplateDisplayChanged(int templateDisplayIndex)
|
||||||
{
|
{
|
||||||
DClass::TemplateDisplay templateDisplay = translateIndexToTemplateDisplay(templateDisplayIndex);
|
DClass::TemplateDisplay templateDisplay = translateIndexToTemplateDisplay(templateDisplayIndex);
|
||||||
assignModelElement<DClass, DClass::TemplateDisplay>(m_diagramElements, SELECTION_MULTI, templateDisplay, &DClass::templateDisplay, &DClass::setTemplateDisplay);
|
assignModelElement<DClass, DClass::TemplateDisplay>(m_diagramElements, SelectionMulti, templateDisplay, &DClass::templateDisplay, &DClass::setTemplateDisplay);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onShowAllMembersChanged(bool showAllMembers)
|
void PropertiesView::MView::onShowAllMembersChanged(bool showAllMembers)
|
||||||
{
|
{
|
||||||
assignModelElement<DClass, bool>(m_diagramElements, SELECTION_MULTI, showAllMembers, &DClass::showAllMembers, &DClass::setShowAllMembers);
|
assignModelElement<DClass, bool>(m_diagramElements, SelectionMulti, showAllMembers, &DClass::showAllMembers, &DClass::setShowAllMembers);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onPlainShapeChanged(bool plainShape)
|
void PropertiesView::MView::onPlainShapeChanged(bool plainShape)
|
||||||
{
|
{
|
||||||
assignModelElement<DComponent, bool>(m_diagramElements, SELECTION_MULTI, plainShape, &DComponent::plainShape, &DComponent::setPlainShape);
|
assignModelElement<DComponent, bool>(m_diagramElements, SelectionMulti, plainShape, &DComponent::plainShape, &DComponent::setPlainShape);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onItemShapeChanged(const QString &shape)
|
void PropertiesView::MView::onItemShapeChanged(const QString &shape)
|
||||||
{
|
{
|
||||||
assignModelElement<DItem, QString>(m_diagramElements, SELECTION_SINGLE, shape, &DItem::shape, &DItem::setShape);
|
assignModelElement<DItem, QString>(m_diagramElements, SelectionSingle, shape, &DItem::shape, &DItem::setShape);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onAutoWidthChanged(bool autoWidthed)
|
void PropertiesView::MView::onAutoWidthChanged(bool autoWidthed)
|
||||||
{
|
{
|
||||||
assignModelElement<DAnnotation, bool>(m_diagramElements, SELECTION_MULTI, autoWidthed, &DAnnotation::hasAutoSize, &DAnnotation::setAutoSize);
|
assignModelElement<DAnnotation, bool>(m_diagramElements, SelectionMulti, autoWidthed, &DAnnotation::hasAutoSize, &DAnnotation::setAutoSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::onAnnotationVisualRoleChanged(int visualRoleIndex)
|
void PropertiesView::MView::onAnnotationVisualRoleChanged(int visualRoleIndex)
|
||||||
{
|
{
|
||||||
DAnnotation::VisualRole visualRole = translateIndexToAnnotationVisualRole((visualRoleIndex));
|
DAnnotation::VisualRole visualRole = translateIndexToAnnotationVisualRole((visualRoleIndex));
|
||||||
assignModelElement<DAnnotation, DAnnotation::VisualRole>(m_diagramElements, SELECTION_MULTI, visualRole, &DAnnotation::visualRole, &DAnnotation::setVisualRole);
|
assignModelElement<DAnnotation, DAnnotation::VisualRole>(m_diagramElements, SelectionMulti, visualRole, &DAnnotation::visualRole, &DAnnotation::setVisualRole);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::prepare()
|
void PropertiesView::MView::prepare()
|
||||||
@@ -1288,7 +1288,7 @@ void PropertiesView::MView::setTitle(const MItem *item, const QList<V *> &elemen
|
|||||||
if (filtered.size() == elements.size()) {
|
if (filtered.size() == elements.size()) {
|
||||||
if (elements.size() == 1) {
|
if (elements.size() == 1) {
|
||||||
if (item && !item->isVarietyEditable()) {
|
if (item && !item->isVarietyEditable()) {
|
||||||
QString stereotypeIconId = m_propertiesView->stereotypeController()->findStereotypeIconId(StereotypeIcon::ELEMENT_ITEM, QStringList() << item->variety());
|
QString stereotypeIconId = m_propertiesView->stereotypeController()->findStereotypeIconId(StereotypeIcon::ElementItem, QStringList() << item->variety());
|
||||||
if (!stereotypeIconId.isEmpty()) {
|
if (!stereotypeIconId.isEmpty()) {
|
||||||
StereotypeIcon stereotypeIcon = m_propertiesView->stereotypeController()->findStereotypeIcon(stereotypeIconId);
|
StereotypeIcon stereotypeIcon = m_propertiesView->stereotypeController()->findStereotypeIcon(stereotypeIconId);
|
||||||
m_propertiesTitle = stereotypeIcon.title();
|
m_propertiesTitle = stereotypeIcon.title();
|
||||||
@@ -1308,14 +1308,14 @@ void PropertiesView::MView::setTitle(const MItem *item, const QList<V *> &elemen
|
|||||||
|
|
||||||
void PropertiesView::MView::setStereotypeIconElement(StereotypeIcon::Element stereotypeElement)
|
void PropertiesView::MView::setStereotypeIconElement(StereotypeIcon::Element stereotypeElement)
|
||||||
{
|
{
|
||||||
if (m_stereotypeElement == StereotypeIcon::ELEMENT_ANY) {
|
if (m_stereotypeElement == StereotypeIcon::ElementAny) {
|
||||||
m_stereotypeElement = stereotypeElement;
|
m_stereotypeElement = stereotypeElement;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesView::MView::setStyleElementType(StyleEngine::ElementType elementType)
|
void PropertiesView::MView::setStyleElementType(StyleEngine::ElementType elementType)
|
||||||
{
|
{
|
||||||
if (m_styleElementType == StyleEngine::TYPE_OTHER) {
|
if (m_styleElementType == StyleEngine::TypeOther) {
|
||||||
m_styleElementType = elementType;
|
m_styleElementType = elementType;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1323,7 +1323,7 @@ void PropertiesView::MView::setStyleElementType(StyleEngine::ElementType element
|
|||||||
void PropertiesView::MView::setPrimaryRolePalette(StyleEngine::ElementType elementType, DObject::VisualPrimaryRole visualPrimaryRole, const QColor &baseColor)
|
void PropertiesView::MView::setPrimaryRolePalette(StyleEngine::ElementType elementType, DObject::VisualPrimaryRole visualPrimaryRole, const QColor &baseColor)
|
||||||
{
|
{
|
||||||
int index = translateVisualPrimaryRoleToIndex(visualPrimaryRole);
|
int index = translateVisualPrimaryRoleToIndex(visualPrimaryRole);
|
||||||
const Style *style = m_propertiesView->styleController()->adaptObjectStyle(elementType, ObjectVisuals(visualPrimaryRole, DObject::SECONDARY_ROLE_NONE, false, baseColor, 0));
|
const Style *style = m_propertiesView->styleController()->adaptObjectStyle(elementType, ObjectVisuals(visualPrimaryRole, DObject::SecondaryRoleNone, false, baseColor, 0));
|
||||||
m_visualPrimaryRoleSelector->setBrush(index, style->fillBrush());
|
m_visualPrimaryRoleSelector->setBrush(index, style->fillBrush());
|
||||||
m_visualPrimaryRoleSelector->setLinePen(index, style->linePen());
|
m_visualPrimaryRoleSelector->setLinePen(index, style->linePen());
|
||||||
}
|
}
|
||||||
@@ -1412,7 +1412,7 @@ template<class T, class V, class BASE>
|
|||||||
void PropertiesView::MView::assignModelElement(const QList<BASE *> &baseElements, SelectionType selectionType, const V &value, V (T::*getter)() const, void (T::*setter)(const V &))
|
void PropertiesView::MView::assignModelElement(const QList<BASE *> &baseElements, SelectionType selectionType, const V &value, V (T::*getter)() const, void (T::*setter)(const V &))
|
||||||
{
|
{
|
||||||
QList<T *> elements = filter<T>(baseElements);
|
QList<T *> elements = filter<T>(baseElements);
|
||||||
if ((selectionType == SELECTION_SINGLE && elements.size() == 1) || selectionType == SELECTION_MULTI) {
|
if ((selectionType == SelectionSingle && elements.size() == 1) || selectionType == SelectionMulti) {
|
||||||
foreach (T *element, elements) {
|
foreach (T *element, elements) {
|
||||||
if (value != ((*element).*getter)()) {
|
if (value != ((*element).*getter)()) {
|
||||||
m_propertiesView->beginUpdate(element);
|
m_propertiesView->beginUpdate(element);
|
||||||
@@ -1427,7 +1427,7 @@ template<class T, class V, class BASE>
|
|||||||
void PropertiesView::MView::assignModelElement(const QList<BASE *> &baseElements, SelectionType selectionType, const V &value, V (T::*getter)() const, void (T::*setter)(V))
|
void PropertiesView::MView::assignModelElement(const QList<BASE *> &baseElements, SelectionType selectionType, const V &value, V (T::*getter)() const, void (T::*setter)(V))
|
||||||
{
|
{
|
||||||
QList<T *> elements = filter<T>(baseElements);
|
QList<T *> elements = filter<T>(baseElements);
|
||||||
if ((selectionType == SELECTION_SINGLE && elements.size() == 1) || selectionType == SELECTION_MULTI) {
|
if ((selectionType == SelectionSingle && elements.size() == 1) || selectionType == SelectionMulti) {
|
||||||
foreach (T *element, elements) {
|
foreach (T *element, elements) {
|
||||||
if (value != ((*element).*getter)()) {
|
if (value != ((*element).*getter)()) {
|
||||||
m_propertiesView->beginUpdate(element);
|
m_propertiesView->beginUpdate(element);
|
||||||
@@ -1442,7 +1442,7 @@ template<class T, class E, class V, class BASE>
|
|||||||
void PropertiesView::MView::assignEmbeddedModelElement(const QList<BASE *> &baseElements, SelectionType selectionType, const V &value, E (T::*getter)() const, void (T::*setter)(const E &), V (E::*vGetter)() const, void (E::*vSetter)(const V &))
|
void PropertiesView::MView::assignEmbeddedModelElement(const QList<BASE *> &baseElements, SelectionType selectionType, const V &value, E (T::*getter)() const, void (T::*setter)(const E &), V (E::*vGetter)() const, void (E::*vSetter)(const V &))
|
||||||
{
|
{
|
||||||
QList<T *> elements = filter<T>(baseElements);
|
QList<T *> elements = filter<T>(baseElements);
|
||||||
if ((selectionType == SELECTION_SINGLE && elements.size() == 1) || selectionType == SELECTION_MULTI) {
|
if ((selectionType == SelectionSingle && elements.size() == 1) || selectionType == SelectionMulti) {
|
||||||
foreach (T *element, elements) {
|
foreach (T *element, elements) {
|
||||||
E embedded = ((*element).*getter)();
|
E embedded = ((*element).*getter)();
|
||||||
if (value != (embedded.*vGetter)()) {
|
if (value != (embedded.*vGetter)()) {
|
||||||
@@ -1459,7 +1459,7 @@ template<class T, class E, class V, class BASE>
|
|||||||
void PropertiesView::MView::assignEmbeddedModelElement(const QList<BASE *> &baseElements, SelectionType selectionType, const V &value, E (T::*getter)() const, void (T::*setter)(const E &), V (E::*vGetter)() const, void (E::*vSetter)(V))
|
void PropertiesView::MView::assignEmbeddedModelElement(const QList<BASE *> &baseElements, SelectionType selectionType, const V &value, E (T::*getter)() const, void (T::*setter)(const E &), V (E::*vGetter)() const, void (E::*vSetter)(V))
|
||||||
{
|
{
|
||||||
QList<T *> elements = filter<T>(baseElements);
|
QList<T *> elements = filter<T>(baseElements);
|
||||||
if ((selectionType == SELECTION_SINGLE && elements.size() == 1) || selectionType == SELECTION_MULTI) {
|
if ((selectionType == SelectionSingle && elements.size() == 1) || selectionType == SelectionMulti) {
|
||||||
foreach (T *element, elements) {
|
foreach (T *element, elements) {
|
||||||
E embedded = ((*element).*getter)();
|
E embedded = ((*element).*getter)();
|
||||||
if (value != (embedded.*vGetter)()) {
|
if (value != (embedded.*vGetter)()) {
|
||||||
|
|||||||
@@ -227,8 +227,8 @@ private:
|
|||||||
QString formatTemplateParameters(const QList<QString> &templateParametersList);
|
QString formatTemplateParameters(const QList<QString> &templateParametersList);
|
||||||
|
|
||||||
enum SelectionType {
|
enum SelectionType {
|
||||||
SELECTION_SINGLE,
|
SelectionSingle,
|
||||||
SELECTION_MULTI
|
SelectionMulti
|
||||||
};
|
};
|
||||||
|
|
||||||
template<class T, class V>
|
template<class T, class V>
|
||||||
|
|||||||
@@ -82,30 +82,30 @@ QARK_ACCESS_SPECIALIZE(QXmlInArchive, QXmlOutArchive, DElement)
|
|||||||
static DObject::VisualPrimaryRole visualRole(const DObject &object)
|
static DObject::VisualPrimaryRole visualRole(const DObject &object)
|
||||||
{
|
{
|
||||||
DObject::VisualPrimaryRole visualRole = object.visualPrimaryRole();
|
DObject::VisualPrimaryRole visualRole = object.visualPrimaryRole();
|
||||||
if (visualRole == DObject::DEPRECATED_PRIMARY_ROLE_DARKER
|
if (visualRole == DObject::DeprecatedPrimaryRoleDarker
|
||||||
|| visualRole == DObject::DEPRECATED_PRIMARY_ROLE_LIGHTER
|
|| visualRole == DObject::DeprecatedPrimaryRoleLighter
|
||||||
|| visualRole == DObject::DEPRECATED_PRIMARY_ROLE_OUTLINE
|
|| visualRole == DObject::DeprecatedPrimaryRoleOutline
|
||||||
|| visualRole == DObject::DEPRECATED_PRIMARY_ROLE_SOFTEN) {
|
|| visualRole == DObject::DeprecatedPrimaryRoleSoften) {
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
visualRole = DObject::PRIMARY_ROLE_NORMAL;
|
visualRole = DObject::PrimaryRoleNormal;
|
||||||
}
|
}
|
||||||
return visualRole;
|
return visualRole;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setVisualRole(DObject &object, DObject::VisualPrimaryRole visualRole)
|
static void setVisualRole(DObject &object, DObject::VisualPrimaryRole visualRole)
|
||||||
{
|
{
|
||||||
if (visualRole == DObject::DEPRECATED_PRIMARY_ROLE_DARKER) {
|
if (visualRole == DObject::DeprecatedPrimaryRoleDarker) {
|
||||||
object.setVisualPrimaryRole(DObject::PRIMARY_ROLE_NORMAL);
|
object.setVisualPrimaryRole(DObject::PrimaryRoleNormal);
|
||||||
object.setVisualSecondaryRole(DObject::SECONDARY_ROLE_DARKER);
|
object.setVisualSecondaryRole(DObject::SecondaryRoleDarker);
|
||||||
} else if (visualRole == DObject::DEPRECATED_PRIMARY_ROLE_LIGHTER) {
|
} else if (visualRole == DObject::DeprecatedPrimaryRoleLighter) {
|
||||||
object.setVisualPrimaryRole(DObject::PRIMARY_ROLE_NORMAL);
|
object.setVisualPrimaryRole(DObject::PrimaryRoleNormal);
|
||||||
object.setVisualSecondaryRole(DObject::SECONDARY_ROLE_LIGHTER);
|
object.setVisualSecondaryRole(DObject::SecondaryRoleLighter);
|
||||||
} else if (visualRole == DObject::DEPRECATED_PRIMARY_ROLE_OUTLINE) {
|
} else if (visualRole == DObject::DeprecatedPrimaryRoleOutline) {
|
||||||
object.setVisualPrimaryRole(DObject::PRIMARY_ROLE_NORMAL);
|
object.setVisualPrimaryRole(DObject::PrimaryRoleNormal);
|
||||||
object.setVisualSecondaryRole(DObject::SECONDARY_ROLE_OUTLINE);
|
object.setVisualSecondaryRole(DObject::SecondaryRoleOutline);
|
||||||
} else if (visualRole == DObject::DEPRECATED_PRIMARY_ROLE_SOFTEN) {
|
} else if (visualRole == DObject::DeprecatedPrimaryRoleSoften) {
|
||||||
object.setVisualPrimaryRole(DObject::PRIMARY_ROLE_NORMAL);
|
object.setVisualPrimaryRole(DObject::PrimaryRoleNormal);
|
||||||
object.setVisualSecondaryRole(DObject::SECONDARY_ROLE_SOFTEN);
|
object.setVisualSecondaryRole(DObject::SecondaryRoleSoften);
|
||||||
} else {
|
} else {
|
||||||
object.setVisualPrimaryRole(visualRole);
|
object.setVisualPrimaryRole(visualRole);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,16 +111,16 @@ void ShapePaintVisitor::visitPath(const PathShape *shapePath)
|
|||||||
QPainterPath path;
|
QPainterPath path;
|
||||||
foreach (const PathShape::Element &element, shapePath->elements()) {
|
foreach (const PathShape::Element &element, shapePath->elements()) {
|
||||||
switch (element.m_elementType) {
|
switch (element.m_elementType) {
|
||||||
case PathShape::TYPE_NONE:
|
case PathShape::TypeNone:
|
||||||
// nothing to do
|
// nothing to do
|
||||||
break;
|
break;
|
||||||
case PathShape::TYPE_MOVETO:
|
case PathShape::TypeMoveto:
|
||||||
path.moveTo(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size));
|
path.moveTo(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size));
|
||||||
break;
|
break;
|
||||||
case PathShape::TYPE_LINETO:
|
case PathShape::TypeLineto:
|
||||||
path.lineTo(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size));
|
path.lineTo(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size));
|
||||||
break;
|
break;
|
||||||
case PathShape::TYPE_ARCMOVETO:
|
case PathShape::TypeArcmoveto:
|
||||||
{
|
{
|
||||||
QSizeF radius = element.m_size.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size);
|
QSizeF radius = element.m_size.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size);
|
||||||
path.arcMoveTo(QRectF(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size) - QPointF(radius.width(), radius.height()),
|
path.arcMoveTo(QRectF(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size) - QPointF(radius.width(), radius.height()),
|
||||||
@@ -128,7 +128,7 @@ void ShapePaintVisitor::visitPath(const PathShape *shapePath)
|
|||||||
element.m_angle1);
|
element.m_angle1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PathShape::TYPE_ARCTO:
|
case PathShape::TypeArcto:
|
||||||
{
|
{
|
||||||
QSizeF radius = element.m_size.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size);
|
QSizeF radius = element.m_size.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size);
|
||||||
path.arcTo(QRectF(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size) - QPointF(radius.width(), radius.height()),
|
path.arcTo(QRectF(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size) - QPointF(radius.width(), radius.height()),
|
||||||
@@ -136,7 +136,7 @@ void ShapePaintVisitor::visitPath(const PathShape *shapePath)
|
|||||||
element.m_angle1, element.m_angle2);
|
element.m_angle1, element.m_angle2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PathShape::TYPE_CLOSE:
|
case PathShape::TypeClose:
|
||||||
path.closeSubpath();
|
path.closeSubpath();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -197,16 +197,16 @@ void ShapeSizeVisitor::visitPath(const PathShape *shapePath)
|
|||||||
QPainterPath path;
|
QPainterPath path;
|
||||||
foreach (const PathShape::Element &element, shapePath->elements()) {
|
foreach (const PathShape::Element &element, shapePath->elements()) {
|
||||||
switch (element.m_elementType) {
|
switch (element.m_elementType) {
|
||||||
case PathShape::TYPE_NONE:
|
case PathShape::TypeNone:
|
||||||
// nothing to do
|
// nothing to do
|
||||||
break;
|
break;
|
||||||
case PathShape::TYPE_MOVETO:
|
case PathShape::TypeMoveto:
|
||||||
path.moveTo(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size));
|
path.moveTo(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size));
|
||||||
break;
|
break;
|
||||||
case PathShape::TYPE_LINETO:
|
case PathShape::TypeLineto:
|
||||||
path.lineTo(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size));
|
path.lineTo(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size));
|
||||||
break;
|
break;
|
||||||
case PathShape::TYPE_ARCMOVETO:
|
case PathShape::TypeArcmoveto:
|
||||||
{
|
{
|
||||||
QSizeF radius = element.m_size.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size);
|
QSizeF radius = element.m_size.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size);
|
||||||
path.arcMoveTo(QRectF(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size) - QPointF(radius.width(), radius.height()),
|
path.arcMoveTo(QRectF(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size) - QPointF(radius.width(), radius.height()),
|
||||||
@@ -214,7 +214,7 @@ void ShapeSizeVisitor::visitPath(const PathShape *shapePath)
|
|||||||
element.m_angle1);
|
element.m_angle1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PathShape::TYPE_ARCTO:
|
case PathShape::TypeArcto:
|
||||||
{
|
{
|
||||||
QSizeF radius = element.m_size.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size);
|
QSizeF radius = element.m_size.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size);
|
||||||
path.arcTo(QRectF(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size) - QPointF(radius.width(), radius.height()),
|
path.arcTo(QRectF(element.m_position.mapScaledTo(m_scaledOrigin, m_originalSize, m_baseSize, m_size) - QPointF(radius.width(), radius.height()),
|
||||||
@@ -222,7 +222,7 @@ void ShapeSizeVisitor::visitPath(const PathShape *shapePath)
|
|||||||
element.m_angle1, element.m_angle2);
|
element.m_angle1, element.m_angle2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PathShape::TYPE_CLOSE:
|
case PathShape::TypeClose:
|
||||||
path.closeSubpath();
|
path.closeSubpath();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -147,21 +147,21 @@ void PathShape::accept(ShapeConstVisitor *visitor) const
|
|||||||
|
|
||||||
void PathShape::moveTo(const ShapePointF &pos)
|
void PathShape::moveTo(const ShapePointF &pos)
|
||||||
{
|
{
|
||||||
Element element(TYPE_MOVETO);
|
Element element(TypeMoveto);
|
||||||
element.m_position = pos;
|
element.m_position = pos;
|
||||||
m_elements.append(element);
|
m_elements.append(element);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PathShape::lineTo(const ShapePointF &pos)
|
void PathShape::lineTo(const ShapePointF &pos)
|
||||||
{
|
{
|
||||||
Element element(TYPE_LINETO);
|
Element element(TypeLineto);
|
||||||
element.m_position = pos;
|
element.m_position = pos;
|
||||||
m_elements.append(element);
|
m_elements.append(element);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PathShape::arcMoveTo(const ShapePointF ¢er, const ShapeSizeF &radius, qreal angle)
|
void PathShape::arcMoveTo(const ShapePointF ¢er, const ShapeSizeF &radius, qreal angle)
|
||||||
{
|
{
|
||||||
Element element(TYPE_ARCMOVETO);
|
Element element(TypeArcmoveto);
|
||||||
element.m_position = center;
|
element.m_position = center;
|
||||||
element.m_size = radius;
|
element.m_size = radius;
|
||||||
element.m_angle1 = angle;
|
element.m_angle1 = angle;
|
||||||
@@ -170,7 +170,7 @@ void PathShape::arcMoveTo(const ShapePointF ¢er, const ShapeSizeF &radius, q
|
|||||||
|
|
||||||
void PathShape::arcTo(const ShapePointF ¢er, const ShapeSizeF &radius, qreal startAngle, qreal sweepLength)
|
void PathShape::arcTo(const ShapePointF ¢er, const ShapeSizeF &radius, qreal startAngle, qreal sweepLength)
|
||||||
{
|
{
|
||||||
Element element(TYPE_ARCTO);
|
Element element(TypeArcto);
|
||||||
element.m_position = center;
|
element.m_position = center;
|
||||||
element.m_size = radius;
|
element.m_size = radius;
|
||||||
element.m_angle1 = startAngle;
|
element.m_angle1 = startAngle;
|
||||||
@@ -180,7 +180,7 @@ void PathShape::arcTo(const ShapePointF ¢er, const ShapeSizeF &radius, qreal
|
|||||||
|
|
||||||
void PathShape::close()
|
void PathShape::close()
|
||||||
{
|
{
|
||||||
Element element(TYPE_CLOSE);
|
Element element(TypeClose);
|
||||||
m_elements.append(element);
|
m_elements.append(element);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -286,16 +286,16 @@ class QMT_EXPORT PathShape
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum ElementType {
|
enum ElementType {
|
||||||
TYPE_NONE,
|
TypeNone,
|
||||||
TYPE_MOVETO,
|
TypeMoveto,
|
||||||
TYPE_LINETO,
|
TypeLineto,
|
||||||
TYPE_ARCMOVETO,
|
TypeArcmoveto,
|
||||||
TYPE_ARCTO,
|
TypeArcto,
|
||||||
TYPE_CLOSE
|
TypeClose
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Element {
|
struct Element {
|
||||||
explicit Element(ElementType element = TYPE_NONE)
|
explicit Element(ElementType element = TypeNone)
|
||||||
: m_elementType(element),
|
: m_elementType(element),
|
||||||
m_angle1(0.0),
|
m_angle1(0.0),
|
||||||
m_angle2(0.0)
|
m_angle2(0.0)
|
||||||
|
|||||||
@@ -46,30 +46,30 @@ qreal ShapeValueF::mapScaledTo(qreal scaledOrigin, qreal originalSize, qreal bas
|
|||||||
{
|
{
|
||||||
qreal v = 0.0;
|
qreal v = 0.0;
|
||||||
switch (m_unit) {
|
switch (m_unit) {
|
||||||
case UNIT_ABSOLUTE:
|
case UnitAbsolute:
|
||||||
v = m_value;
|
v = m_value;
|
||||||
break;
|
break;
|
||||||
case UNIT_RELATIVE:
|
case UnitRelative:
|
||||||
v = originalSize != 0 ? (m_value * baseSize / originalSize) : m_value;
|
v = originalSize != 0 ? (m_value * baseSize / originalSize) : m_value;
|
||||||
break;
|
break;
|
||||||
case UNIT_SCALED:
|
case UnitScaled:
|
||||||
v = originalSize != 0 ? (m_value * actualSize / originalSize) : m_value;
|
v = originalSize != 0 ? (m_value * actualSize / originalSize) : m_value;
|
||||||
break;
|
break;
|
||||||
case UNIT_PERCENTAGE:
|
case UnitPercentage:
|
||||||
v = m_value * actualSize;
|
v = m_value * actualSize;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
switch (m_origin) {
|
switch (m_origin) {
|
||||||
case ORIGIN_SMART:
|
case OriginSmart:
|
||||||
v = scaledOrigin + v;
|
v = scaledOrigin + v;
|
||||||
break;
|
break;
|
||||||
case ORIGIN_TOP_OR_LEFT:
|
case OriginTopOrLeft:
|
||||||
v = scaledOrigin + v;
|
v = scaledOrigin + v;
|
||||||
break;
|
break;
|
||||||
case ORIGIN_BOTTOM_OR_RIGHT:
|
case OriginBottomOrRight:
|
||||||
v = actualSize - v;
|
v = actualSize - v;
|
||||||
break;
|
break;
|
||||||
case ORIGIN_CENTER:
|
case OriginCenter:
|
||||||
v = actualSize * 0.5 + v;
|
v = actualSize * 0.5 + v;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,33 +44,33 @@ class QMT_EXPORT ShapeValueF {
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Origin {
|
enum Origin {
|
||||||
ORIGIN_SMART,
|
OriginSmart,
|
||||||
ORIGIN_TOP,
|
OriginTop,
|
||||||
ORIGIN_LEFT = ORIGIN_TOP,
|
OriginLeft = OriginTop,
|
||||||
ORIGIN_TOP_OR_LEFT = ORIGIN_TOP,
|
OriginTopOrLeft = OriginTop,
|
||||||
ORIGIN_BOTTOM,
|
OriginBottom,
|
||||||
ORIGIN_RIGHT = ORIGIN_BOTTOM,
|
OriginRight = OriginBottom,
|
||||||
ORIGIN_BOTTOM_OR_RIGHT = ORIGIN_BOTTOM,
|
OriginBottomOrRight = OriginBottom,
|
||||||
ORIGIN_CENTER
|
OriginCenter
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Unit {
|
enum Unit {
|
||||||
UNIT_ABSOLUTE,
|
UnitAbsolute,
|
||||||
UNIT_RELATIVE,
|
UnitRelative,
|
||||||
UNIT_SCALED,
|
UnitScaled,
|
||||||
UNIT_PERCENTAGE
|
UnitPercentage
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
ShapeValueF()
|
ShapeValueF()
|
||||||
: m_value(0.0),
|
: m_value(0.0),
|
||||||
m_unit(UNIT_RELATIVE),
|
m_unit(UnitRelative),
|
||||||
m_origin(ORIGIN_SMART)
|
m_origin(OriginSmart)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ShapeValueF(qreal value, Unit unit = UNIT_RELATIVE, Origin origin = ORIGIN_SMART)
|
ShapeValueF(qreal value, Unit unit = UnitRelative, Origin origin = OriginSmart)
|
||||||
: m_value(value),
|
: m_value(value),
|
||||||
m_unit(unit),
|
m_unit(unit),
|
||||||
m_origin(origin)
|
m_origin(origin)
|
||||||
|
|||||||
@@ -96,8 +96,8 @@ QString StereotypeController::findStereotypeIconId(StereotypeIcon::Element eleme
|
|||||||
foreach (const QString &stereotype, stereotypes) {
|
foreach (const QString &stereotype, stereotypes) {
|
||||||
if (d->m_stereotypeToIconIdMap.contains(qMakePair(element, stereotype))) {
|
if (d->m_stereotypeToIconIdMap.contains(qMakePair(element, stereotype))) {
|
||||||
return d->m_stereotypeToIconIdMap.value(qMakePair(element, stereotype));
|
return d->m_stereotypeToIconIdMap.value(qMakePair(element, stereotype));
|
||||||
} else if (d->m_stereotypeToIconIdMap.contains(qMakePair(StereotypeIcon::ELEMENT_ANY, stereotype))) {
|
} else if (d->m_stereotypeToIconIdMap.contains(qMakePair(StereotypeIcon::ElementAny, stereotype))) {
|
||||||
return d->m_stereotypeToIconIdMap.value(qMakePair(StereotypeIcon::ELEMENT_ANY, stereotype));
|
return d->m_stereotypeToIconIdMap.value(qMakePair(StereotypeIcon::ElementAny, stereotype));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return QString();
|
return QString();
|
||||||
@@ -179,7 +179,7 @@ void StereotypeController::addStereotypeIcon(const StereotypeIcon &stereotypeIco
|
|||||||
{
|
{
|
||||||
if (stereotypeIcon.elements().isEmpty()) {
|
if (stereotypeIcon.elements().isEmpty()) {
|
||||||
foreach (const QString &stereotype, stereotypeIcon.stereotypes()) {
|
foreach (const QString &stereotype, stereotypeIcon.stereotypes()) {
|
||||||
d->m_stereotypeToIconIdMap.insert(qMakePair(StereotypeIcon::ELEMENT_ANY, stereotype), stereotypeIcon.id());
|
d->m_stereotypeToIconIdMap.insert(qMakePair(StereotypeIcon::ElementAny, stereotype), stereotypeIcon.id());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
foreach (StereotypeIcon::Element element, stereotypeIcon.elements()) {
|
foreach (StereotypeIcon::Element element, stereotypeIcon.elements()) {
|
||||||
|
|||||||
@@ -37,9 +37,9 @@ StereotypeIcon::StereotypeIcon()
|
|||||||
m_height(100.0),
|
m_height(100.0),
|
||||||
m_minWidth(-1),
|
m_minWidth(-1),
|
||||||
m_minHeight(-1),
|
m_minHeight(-1),
|
||||||
m_sizeLock(LOCK_NONE),
|
m_sizeLock(LockNone),
|
||||||
m_display(DISPLAY_SMART),
|
m_display(DisplaySmart),
|
||||||
m_textAlignment(TEXTALIGN_BELOW)
|
m_textAlignment(TextalignBelow)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,34 +45,34 @@ class QMT_EXPORT StereotypeIcon
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum Element {
|
enum Element {
|
||||||
ELEMENT_ANY,
|
ElementAny,
|
||||||
ELEMENT_PACKAGE,
|
ElementPackage,
|
||||||
ELEMENT_COMPONENT,
|
ElementComponent,
|
||||||
ELEMENT_CLASS,
|
ElementClass,
|
||||||
ELEMENT_DIAGRAM,
|
ElementDiagram,
|
||||||
ELEMENT_ITEM
|
ElementItem
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Display {
|
enum Display {
|
||||||
DISPLAY_NONE,
|
DisplayNone,
|
||||||
DISPLAY_LABEL,
|
DisplayLabel,
|
||||||
DISPLAY_DECORATION,
|
DisplayDecoration,
|
||||||
DISPLAY_ICON,
|
DisplayIcon,
|
||||||
DISPLAY_SMART
|
DisplaySmart
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SizeLock {
|
enum SizeLock {
|
||||||
LOCK_NONE,
|
LockNone,
|
||||||
LOCK_WIDTH,
|
LockWidth,
|
||||||
LOCK_HEIGHT,
|
LockHeight,
|
||||||
LOCK_SIZE,
|
LockSize,
|
||||||
LOCK_RATIO
|
LockRatio
|
||||||
};
|
};
|
||||||
|
|
||||||
enum TextAlignment {
|
enum TextAlignment {
|
||||||
TEXTALIGN_BELOW,
|
TextalignBelow,
|
||||||
TEXTALIGN_CENTER,
|
TextalignCenter,
|
||||||
TEXTALIGN_NONE
|
TextalignNone
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -44,18 +44,18 @@ class QMT_EXPORT Toolbar
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum ToolType {
|
enum ToolType {
|
||||||
TOOLTYPE_TOOL,
|
TooltypeTool,
|
||||||
TOOLTYPE_SEPARATOR
|
TooltypeSeparator
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Tool {
|
struct Tool {
|
||||||
Tool()
|
Tool()
|
||||||
: m_toolType(TOOLTYPE_SEPARATOR)
|
: m_toolType(TooltypeSeparator)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Tool(const QString &name, const QString &elementType, const QString &stereotype = QString::null)
|
Tool(const QString &name, const QString &elementType, const QString &stereotype = QString::null)
|
||||||
: m_toolType(TOOLTYPE_TOOL),
|
: m_toolType(TooltypeTool),
|
||||||
m_name(name),
|
m_name(name),
|
||||||
m_elementType(elementType),
|
m_elementType(elementType),
|
||||||
m_stereotype(stereotype)
|
m_stereotype(stereotype)
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ namespace qmt {
|
|||||||
|
|
||||||
struct ObjectStyleKey {
|
struct ObjectStyleKey {
|
||||||
ObjectStyleKey()
|
ObjectStyleKey()
|
||||||
: m_elementType(StyleEngine::TYPE_OTHER)
|
: m_elementType(StyleEngine::TypeOther)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,8 +77,8 @@ bool operator==(const ObjectStyleKey &lhs, const ObjectStyleKey &rhs)
|
|||||||
|
|
||||||
|
|
||||||
struct RelationStyleKey {
|
struct RelationStyleKey {
|
||||||
RelationStyleKey(StyleEngine::ElementType elementType = StyleEngine::TYPE_OTHER,
|
RelationStyleKey(StyleEngine::ElementType elementType = StyleEngine::TypeOther,
|
||||||
DObject::VisualPrimaryRole visualPrimaryRole = DObject::PRIMARY_ROLE_NORMAL)
|
DObject::VisualPrimaryRole visualPrimaryRole = DObject::PrimaryRoleNormal)
|
||||||
: m_elementType(elementType),
|
: m_elementType(elementType),
|
||||||
m_visualPrimaryRole(visualPrimaryRole)
|
m_visualPrimaryRole(visualPrimaryRole)
|
||||||
{
|
{
|
||||||
@@ -99,7 +99,7 @@ bool operator==(const RelationStyleKey &lhs, const RelationStyleKey &rhs)
|
|||||||
|
|
||||||
|
|
||||||
struct AnnotationStyleKey {
|
struct AnnotationStyleKey {
|
||||||
AnnotationStyleKey(DAnnotation::VisualRole visualRole = DAnnotation::ROLE_NORMAL)
|
AnnotationStyleKey(DAnnotation::VisualRole visualRole = DAnnotation::RoleNormal)
|
||||||
: m_visualRole(visualRole)
|
: m_visualRole(visualRole)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -153,18 +153,18 @@ DefaultStyleEngine::~DefaultStyleEngine()
|
|||||||
const Style *DefaultStyleEngine::applyStyle(const Style *baseStyle, StyleEngine::ElementType elementType, const StyleEngine::Parameters *parameters)
|
const Style *DefaultStyleEngine::applyStyle(const Style *baseStyle, StyleEngine::ElementType elementType, const StyleEngine::Parameters *parameters)
|
||||||
{
|
{
|
||||||
switch (elementType) {
|
switch (elementType) {
|
||||||
case TYPE_ANNOTATION:
|
case TypeAnnotation:
|
||||||
return applyAnnotationStyle(baseStyle, DAnnotation::ROLE_NORMAL, parameters);
|
return applyAnnotationStyle(baseStyle, DAnnotation::RoleNormal, parameters);
|
||||||
case TYPE_BOUNDARY:
|
case TypeBoundary:
|
||||||
return applyBoundaryStyle(baseStyle, parameters);
|
return applyBoundaryStyle(baseStyle, parameters);
|
||||||
case TYPE_RELATION:
|
case TypeRelation:
|
||||||
break;
|
break;
|
||||||
case TYPE_CLASS:
|
case TypeClass:
|
||||||
case TYPE_COMPONENT:
|
case TypeComponent:
|
||||||
case TYPE_ITEM:
|
case TypeItem:
|
||||||
case TYPE_PACKAGE:
|
case TypePackage:
|
||||||
return applyObjectStyle(baseStyle, elementType, ObjectVisuals(DObject::PRIMARY_ROLE_NORMAL, DObject::SECONDARY_ROLE_NONE, false, QColor(), 0), parameters);
|
return applyObjectStyle(baseStyle, elementType, ObjectVisuals(DObject::PrimaryRoleNormal, DObject::SecondaryRoleNone, false, QColor(), 0), parameters);
|
||||||
case TYPE_OTHER:
|
case TypeOther:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return baseStyle;
|
return baseStyle;
|
||||||
@@ -197,7 +197,7 @@ const Style *DefaultStyleEngine::applyObjectStyle(const Style *baseStyle, StyleE
|
|||||||
style->setOuterLinePen(linePen);
|
style->setOuterLinePen(linePen);
|
||||||
style->setExtraLinePen(linePen);
|
style->setExtraLinePen(linePen);
|
||||||
style->setTextBrush(QBrush(textColor));
|
style->setTextBrush(QBrush(textColor));
|
||||||
if (objectVisuals.visualSecondaryRole() == DObject::SECONDARY_ROLE_OUTLINE) {
|
if (objectVisuals.visualSecondaryRole() == DObject::SecondaryRoleOutline) {
|
||||||
style->setFillBrush(QBrush(Qt::white));
|
style->setFillBrush(QBrush(Qt::white));
|
||||||
} else {
|
} else {
|
||||||
if (!parameters->suppressGradients()) {
|
if (!parameters->suppressGradients()) {
|
||||||
@@ -210,7 +210,7 @@ const Style *DefaultStyleEngine::applyObjectStyle(const Style *baseStyle, StyleE
|
|||||||
style->setFillBrush(QBrush(fillColor));
|
style->setFillBrush(QBrush(fillColor));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (objectVisuals.visualSecondaryRole() == DObject::SECONDARY_ROLE_OUTLINE) {
|
if (objectVisuals.visualSecondaryRole() == DObject::SecondaryRoleOutline) {
|
||||||
style->setExtraFillBrush(QBrush(Qt::white));
|
style->setExtraFillBrush(QBrush(Qt::white));
|
||||||
} else {
|
} else {
|
||||||
style->setExtraFillBrush(QBrush(fillColor.darker(120)));
|
style->setExtraFillBrush(QBrush(fillColor.darker(120)));
|
||||||
@@ -231,9 +231,9 @@ const Style *DefaultStyleEngine::applyObjectStyle(const Style *baseStyle, const
|
|||||||
|
|
||||||
struct DepthProperties {
|
struct DepthProperties {
|
||||||
DepthProperties()
|
DepthProperties()
|
||||||
: m_elementType(TYPE_OTHER),
|
: m_elementType(TypeOther),
|
||||||
m_visualPrimaryRole(DObject::PRIMARY_ROLE_NORMAL),
|
m_visualPrimaryRole(DObject::PrimaryRoleNormal),
|
||||||
m_visualSecondaryRole(DObject::SECONDARY_ROLE_NONE)
|
m_visualSecondaryRole(DObject::SecondaryRoleNone)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -311,14 +311,14 @@ const Style *DefaultStyleEngine::applyRelationStyle(const Style *baseStyle, cons
|
|||||||
Q_UNUSED(parameters);
|
Q_UNUSED(parameters);
|
||||||
|
|
||||||
ElementType elementType = objectType(styledRelation.endA());
|
ElementType elementType = objectType(styledRelation.endA());
|
||||||
RelationStyleKey key(elementType, styledRelation.endA() ? styledRelation.endA()->visualPrimaryRole() : DObject::PRIMARY_ROLE_NORMAL);
|
RelationStyleKey key(elementType, styledRelation.endA() ? styledRelation.endA()->visualPrimaryRole() : DObject::PrimaryRoleNormal);
|
||||||
const Style *derivedStyle = m_relationStyleMap.value(key);
|
const Style *derivedStyle = m_relationStyleMap.value(key);
|
||||||
if (!derivedStyle) {
|
if (!derivedStyle) {
|
||||||
Style *style = new Style(baseStyle->type());
|
Style *style = new Style(baseStyle->type());
|
||||||
|
|
||||||
const DObject *object = styledRelation.endA();
|
const DObject *object = styledRelation.endA();
|
||||||
ObjectVisuals objectVisuals(object ? object->visualPrimaryRole() : DObject::PRIMARY_ROLE_NORMAL,
|
ObjectVisuals objectVisuals(object ? object->visualPrimaryRole() : DObject::PrimaryRoleNormal,
|
||||||
object ? object->visualSecondaryRole() : DObject::SECONDARY_ROLE_NONE,
|
object ? object->visualSecondaryRole() : DObject::SecondaryRoleNone,
|
||||||
object ? object->isVisualEmphasized() : false,
|
object ? object->isVisualEmphasized() : false,
|
||||||
Qt::black, // TODO STyledRelation should get an EndAObjectVisuals
|
Qt::black, // TODO STyledRelation should get an EndAObjectVisuals
|
||||||
object ? object->depth() : 0);
|
object ? object->depth() : 0);
|
||||||
@@ -347,7 +347,7 @@ const Style *DefaultStyleEngine::applyRelationStyle(const Style *baseStyle, cons
|
|||||||
|
|
||||||
const Style *DefaultStyleEngine::applyAnnotationStyle(const Style *baseStyle, const DAnnotation *annotation, const Parameters *parameters)
|
const Style *DefaultStyleEngine::applyAnnotationStyle(const Style *baseStyle, const DAnnotation *annotation, const Parameters *parameters)
|
||||||
{
|
{
|
||||||
DAnnotation::VisualRole visualRole = annotation ? annotation->visualRole() : DAnnotation::ROLE_NORMAL;
|
DAnnotation::VisualRole visualRole = annotation ? annotation->visualRole() : DAnnotation::RoleNormal;
|
||||||
return applyAnnotationStyle(baseStyle, visualRole, parameters);
|
return applyAnnotationStyle(baseStyle, visualRole, parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -369,25 +369,25 @@ const Style *DefaultStyleEngine::applyAnnotationStyle(const Style *baseStyle, DA
|
|||||||
QFont normalFont;
|
QFont normalFont;
|
||||||
QBrush textBrush = baseStyle->textBrush();
|
QBrush textBrush = baseStyle->textBrush();
|
||||||
switch (visualRole) {
|
switch (visualRole) {
|
||||||
case DAnnotation::ROLE_NORMAL:
|
case DAnnotation::RoleNormal:
|
||||||
normalFont = baseStyle->normalFont();
|
normalFont = baseStyle->normalFont();
|
||||||
break;
|
break;
|
||||||
case DAnnotation::ROLE_TITLE:
|
case DAnnotation::RoleTitle:
|
||||||
normalFont = baseStyle->headerFont();
|
normalFont = baseStyle->headerFont();
|
||||||
break;
|
break;
|
||||||
case DAnnotation::ROLE_SUBTITLE:
|
case DAnnotation::RoleSubtitle:
|
||||||
normalFont = baseStyle->normalFont();
|
normalFont = baseStyle->normalFont();
|
||||||
normalFont.setItalic(true);
|
normalFont.setItalic(true);
|
||||||
break;
|
break;
|
||||||
case DAnnotation::ROLE_EMPHASIZED:
|
case DAnnotation::RoleEmphasized:
|
||||||
normalFont = baseStyle->normalFont();
|
normalFont = baseStyle->normalFont();
|
||||||
normalFont.setBold(true);
|
normalFont.setBold(true);
|
||||||
break;
|
break;
|
||||||
case DAnnotation::ROLE_SOFTEN:
|
case DAnnotation::RoleSoften:
|
||||||
normalFont = baseStyle->normalFont();
|
normalFont = baseStyle->normalFont();
|
||||||
textBrush.setColor(Qt::gray);
|
textBrush.setColor(Qt::gray);
|
||||||
break;
|
break;
|
||||||
case DAnnotation::ROLE_FOOTNOTE:
|
case DAnnotation::RoleFootnote:
|
||||||
normalFont = baseStyle->smallFont();
|
normalFont = baseStyle->smallFont();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -419,15 +419,15 @@ DefaultStyleEngine::ElementType DefaultStyleEngine::objectType(const DObject *ob
|
|||||||
{
|
{
|
||||||
ElementType elementType;
|
ElementType elementType;
|
||||||
if (dynamic_cast<const DPackage *>(object)) {
|
if (dynamic_cast<const DPackage *>(object)) {
|
||||||
elementType = TYPE_PACKAGE;
|
elementType = TypePackage;
|
||||||
} else if (dynamic_cast<const DComponent *>(object)) {
|
} else if (dynamic_cast<const DComponent *>(object)) {
|
||||||
elementType = TYPE_COMPONENT;
|
elementType = TypeComponent;
|
||||||
} else if (dynamic_cast<const DClass *>(object)) {
|
} else if (dynamic_cast<const DClass *>(object)) {
|
||||||
elementType = TYPE_CLASS;
|
elementType = TypeClass;
|
||||||
} else if (dynamic_cast<const DItem *>(object)) {
|
} else if (dynamic_cast<const DItem *>(object)) {
|
||||||
elementType = TYPE_ITEM;
|
elementType = TypeItem;
|
||||||
} else {
|
} else {
|
||||||
elementType = TYPE_OTHER;
|
elementType = TypeOther;
|
||||||
}
|
}
|
||||||
return elementType;
|
return elementType;
|
||||||
}
|
}
|
||||||
@@ -436,21 +436,21 @@ bool DefaultStyleEngine::areStackingRoles(DObject::VisualPrimaryRole rhsPrimaryR
|
|||||||
DObject::VisualPrimaryRole lhsPrimaryRole, DObject::VisualSecondaryRole lhsSecondaryRols)
|
DObject::VisualPrimaryRole lhsPrimaryRole, DObject::VisualSecondaryRole lhsSecondaryRols)
|
||||||
{
|
{
|
||||||
switch (rhsSecondaryRole) {
|
switch (rhsSecondaryRole) {
|
||||||
case DObject::SECONDARY_ROLE_NONE:
|
case DObject::SecondaryRoleNone:
|
||||||
case DObject::SECONDARY_ROLE_LIGHTER:
|
case DObject::SecondaryRoleLighter:
|
||||||
case DObject::SECONDARY_ROLE_DARKER:
|
case DObject::SecondaryRoleDarker:
|
||||||
switch (lhsSecondaryRols) {
|
switch (lhsSecondaryRols) {
|
||||||
case DObject::SECONDARY_ROLE_NONE:
|
case DObject::SecondaryRoleNone:
|
||||||
case DObject::SECONDARY_ROLE_LIGHTER:
|
case DObject::SecondaryRoleLighter:
|
||||||
case DObject::SECONDARY_ROLE_DARKER:
|
case DObject::SecondaryRoleDarker:
|
||||||
return lhsPrimaryRole == rhsPrimaryRole;
|
return lhsPrimaryRole == rhsPrimaryRole;
|
||||||
break;
|
break;
|
||||||
case DObject::SECONDARY_ROLE_SOFTEN:
|
case DObject::SecondaryRoleSoften:
|
||||||
case DObject::SECONDARY_ROLE_OUTLINE:
|
case DObject::SecondaryRoleOutline:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
case DObject::SECONDARY_ROLE_SOFTEN:
|
case DObject::SecondaryRoleSoften:
|
||||||
case DObject::SECONDARY_ROLE_OUTLINE:
|
case DObject::SecondaryRoleOutline:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -458,27 +458,27 @@ bool DefaultStyleEngine::areStackingRoles(DObject::VisualPrimaryRole rhsPrimaryR
|
|||||||
|
|
||||||
QColor DefaultStyleEngine::baseColor(ElementType elementType, ObjectVisuals objectVisuals)
|
QColor DefaultStyleEngine::baseColor(ElementType elementType, ObjectVisuals objectVisuals)
|
||||||
{
|
{
|
||||||
if (objectVisuals.visualSecondaryRole() == DObject::SECONDARY_ROLE_OUTLINE) {
|
if (objectVisuals.visualSecondaryRole() == DObject::SecondaryRoleOutline) {
|
||||||
return QColor("#FFFFFF");
|
return QColor("#FFFFFF");
|
||||||
}
|
}
|
||||||
|
|
||||||
QColor baseColor;
|
QColor baseColor;
|
||||||
|
|
||||||
if (objectVisuals.visualPrimaryRole() == DObject::PRIMARY_ROLE_NORMAL) {
|
if (objectVisuals.visualPrimaryRole() == DObject::PrimaryRoleNormal) {
|
||||||
if (objectVisuals.baseColor().isValid()) {
|
if (objectVisuals.baseColor().isValid()) {
|
||||||
baseColor = objectVisuals.baseColor();
|
baseColor = objectVisuals.baseColor();
|
||||||
} else {
|
} else {
|
||||||
switch (elementType) {
|
switch (elementType) {
|
||||||
case TYPE_PACKAGE:
|
case TypePackage:
|
||||||
baseColor = QColor("#7C98AD");
|
baseColor = QColor("#7C98AD");
|
||||||
break;
|
break;
|
||||||
case TYPE_COMPONENT:
|
case TypeComponent:
|
||||||
baseColor = QColor("#A0A891");
|
baseColor = QColor("#A0A891");
|
||||||
break;
|
break;
|
||||||
case TYPE_CLASS:
|
case TypeClass:
|
||||||
baseColor = QColor("#E5A858");
|
baseColor = QColor("#E5A858");
|
||||||
break;
|
break;
|
||||||
case TYPE_ITEM:
|
case TypeItem:
|
||||||
baseColor = QColor("#B995C6");
|
baseColor = QColor("#B995C6");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -495,24 +495,24 @@ QColor DefaultStyleEngine::baseColor(ElementType elementType, ObjectVisuals obje
|
|||||||
QColor("#FFE14B") // ROLE_CUSTOM5,
|
QColor("#FFE14B") // ROLE_CUSTOM5,
|
||||||
};
|
};
|
||||||
|
|
||||||
int index = (int) objectVisuals.visualPrimaryRole() - (int) DObject::PRIMARY_ROLE_CUSTOM1;
|
int index = (int) objectVisuals.visualPrimaryRole() - (int) DObject::PrimaryRoleCustom1;
|
||||||
QMT_CHECK(index >= 0 && index <= 4);
|
QMT_CHECK(index >= 0 && index <= 4);
|
||||||
baseColor = customColors[index];
|
baseColor = customColors[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (objectVisuals.visualSecondaryRole()) {
|
switch (objectVisuals.visualSecondaryRole()) {
|
||||||
case DObject::SECONDARY_ROLE_NONE:
|
case DObject::SecondaryRoleNone:
|
||||||
break;
|
break;
|
||||||
case DObject::SECONDARY_ROLE_LIGHTER:
|
case DObject::SecondaryRoleLighter:
|
||||||
baseColor = baseColor.lighter(110);
|
baseColor = baseColor.lighter(110);
|
||||||
break;
|
break;
|
||||||
case DObject::SECONDARY_ROLE_DARKER:
|
case DObject::SecondaryRoleDarker:
|
||||||
baseColor = baseColor.darker(120);
|
baseColor = baseColor.darker(120);
|
||||||
break;
|
break;
|
||||||
case DObject::SECONDARY_ROLE_SOFTEN:
|
case DObject::SecondaryRoleSoften:
|
||||||
baseColor = baseColor.lighter(300);
|
baseColor = baseColor.lighter(300);
|
||||||
break;
|
break;
|
||||||
case DObject::SECONDARY_ROLE_OUTLINE:
|
case DObject::SecondaryRoleOutline:
|
||||||
QMT_CHECK(false);
|
QMT_CHECK(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -523,9 +523,9 @@ QColor DefaultStyleEngine::baseColor(ElementType elementType, ObjectVisuals obje
|
|||||||
QColor DefaultStyleEngine::lineColor(ElementType elementType, const ObjectVisuals &objectVisuals)
|
QColor DefaultStyleEngine::lineColor(ElementType elementType, const ObjectVisuals &objectVisuals)
|
||||||
{
|
{
|
||||||
QColor lineColor;
|
QColor lineColor;
|
||||||
if (objectVisuals.visualSecondaryRole() == DObject::SECONDARY_ROLE_OUTLINE) {
|
if (objectVisuals.visualSecondaryRole() == DObject::SecondaryRoleOutline) {
|
||||||
lineColor = Qt::black;
|
lineColor = Qt::black;
|
||||||
} else if (objectVisuals.visualSecondaryRole() == DObject::SECONDARY_ROLE_SOFTEN) {
|
} else if (objectVisuals.visualSecondaryRole() == DObject::SecondaryRoleSoften) {
|
||||||
lineColor = Qt::gray;
|
lineColor = Qt::gray;
|
||||||
} else {
|
} else {
|
||||||
lineColor = baseColor(elementType, objectVisuals).darker(200).lighter(150).darker(100 + objectVisuals.depth() * 10);
|
lineColor = baseColor(elementType, objectVisuals).darker(200).lighter(150).darker(100 + objectVisuals.depth() * 10);
|
||||||
@@ -536,7 +536,7 @@ QColor DefaultStyleEngine::lineColor(ElementType elementType, const ObjectVisual
|
|||||||
QColor DefaultStyleEngine::fillColor(ElementType elementType, const ObjectVisuals &objectVisuals)
|
QColor DefaultStyleEngine::fillColor(ElementType elementType, const ObjectVisuals &objectVisuals)
|
||||||
{
|
{
|
||||||
QColor fillColor;
|
QColor fillColor;
|
||||||
if (objectVisuals.visualSecondaryRole() == DObject::SECONDARY_ROLE_OUTLINE) {
|
if (objectVisuals.visualSecondaryRole() == DObject::SecondaryRoleOutline) {
|
||||||
fillColor = Qt::white;
|
fillColor = Qt::white;
|
||||||
} else {
|
} else {
|
||||||
fillColor = baseColor(elementType, objectVisuals).lighter(150).darker(100 + objectVisuals.depth() * 10);
|
fillColor = baseColor(elementType, objectVisuals).lighter(150).darker(100 + objectVisuals.depth() * 10);
|
||||||
@@ -549,8 +549,8 @@ QColor DefaultStyleEngine::textColor(const DObject *object, int depth)
|
|||||||
Q_UNUSED(depth);
|
Q_UNUSED(depth);
|
||||||
|
|
||||||
QColor textColor;
|
QColor textColor;
|
||||||
DObject::VisualPrimaryRole visualRole = object ? object->visualPrimaryRole() : DObject::PRIMARY_ROLE_NORMAL;
|
DObject::VisualPrimaryRole visualRole = object ? object->visualPrimaryRole() : DObject::PrimaryRoleNormal;
|
||||||
if (visualRole == DObject::DEPRECATED_PRIMARY_ROLE_SOFTEN) {
|
if (visualRole == DObject::DeprecatedPrimaryRoleSoften) {
|
||||||
textColor = Qt::gray;
|
textColor = Qt::gray;
|
||||||
} else {
|
} else {
|
||||||
textColor = Qt::black;
|
textColor = Qt::black;
|
||||||
@@ -563,7 +563,7 @@ QColor DefaultStyleEngine::textColor(ElementType elementType, const ObjectVisual
|
|||||||
Q_UNUSED(elementType);
|
Q_UNUSED(elementType);
|
||||||
|
|
||||||
QColor textColor;
|
QColor textColor;
|
||||||
if (objectVisuals.visualSecondaryRole() == DObject::SECONDARY_ROLE_SOFTEN) {
|
if (objectVisuals.visualSecondaryRole() == DObject::SecondaryRoleSoften) {
|
||||||
textColor = Qt::gray;
|
textColor = Qt::gray;
|
||||||
} else {
|
} else {
|
||||||
textColor = Qt::black;
|
textColor = Qt::black;
|
||||||
|
|||||||
@@ -35,8 +35,8 @@
|
|||||||
namespace qmt {
|
namespace qmt {
|
||||||
|
|
||||||
ObjectVisuals::ObjectVisuals()
|
ObjectVisuals::ObjectVisuals()
|
||||||
: m_visualPrimaryRole(DObject::PRIMARY_ROLE_NORMAL),
|
: m_visualPrimaryRole(DObject::PrimaryRoleNormal),
|
||||||
m_visualSecondaryRole(DObject::SECONDARY_ROLE_NONE),
|
m_visualSecondaryRole(DObject::SecondaryRoleNone),
|
||||||
m_emphasized(false),
|
m_emphasized(false),
|
||||||
m_depth(0)
|
m_depth(0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -53,14 +53,14 @@ class QMT_EXPORT StyleEngine
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum ElementType {
|
enum ElementType {
|
||||||
TYPE_OTHER,
|
TypeOther,
|
||||||
TYPE_PACKAGE,
|
TypePackage,
|
||||||
TYPE_COMPONENT,
|
TypeComponent,
|
||||||
TYPE_CLASS,
|
TypeClass,
|
||||||
TYPE_ITEM,
|
TypeItem,
|
||||||
TYPE_RELATION,
|
TypeRelation,
|
||||||
TYPE_ANNOTATION,
|
TypeAnnotation,
|
||||||
TYPE_BOUNDARY
|
TypeBoundary
|
||||||
};
|
};
|
||||||
|
|
||||||
class Parameters
|
class Parameters
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ void AlignOnRasterVisitor::visitDObject(DObject *object)
|
|||||||
{
|
{
|
||||||
IResizable *resizable = m_sceneInspector->resizable(object, m_diagram);
|
IResizable *resizable = m_sceneInspector->resizable(object, m_diagram);
|
||||||
if (resizable) {
|
if (resizable) {
|
||||||
resizable->alignItemSizeToRaster(IResizable::SIDE_RIGHT_OR_BOTTOM, IResizable::SIDE_RIGHT_OR_BOTTOM, 2 * RASTER_WIDTH, 2 * RASTER_HEIGHT);
|
resizable->alignItemSizeToRaster(IResizable::SideRightOrBottom, IResizable::SideRightOrBottom, 2 * RASTER_WIDTH, 2 * RASTER_HEIGHT);
|
||||||
}
|
}
|
||||||
IMoveable *moveable = m_sceneInspector->moveable(object, m_diagram);
|
IMoveable *moveable = m_sceneInspector->moveable(object, m_diagram);
|
||||||
if (moveable) {
|
if (moveable) {
|
||||||
@@ -154,7 +154,7 @@ void AlignOnRasterVisitor::visitDBoundary(DBoundary *boundary)
|
|||||||
{
|
{
|
||||||
IResizable *resizable = m_sceneInspector->resizable(boundary, m_diagram);
|
IResizable *resizable = m_sceneInspector->resizable(boundary, m_diagram);
|
||||||
if (resizable) {
|
if (resizable) {
|
||||||
resizable->alignItemSizeToRaster(IResizable::SIDE_RIGHT_OR_BOTTOM, IResizable::SIDE_RIGHT_OR_BOTTOM, 2 * RASTER_WIDTH, 2 * RASTER_HEIGHT);
|
resizable->alignItemSizeToRaster(IResizable::SideRightOrBottom, IResizable::SideRightOrBottom, 2 * RASTER_WIDTH, 2 * RASTER_HEIGHT);
|
||||||
}
|
}
|
||||||
IMoveable *moveable = m_sceneInspector->moveable(boundary, m_diagram);
|
IMoveable *moveable = m_sceneInspector->moveable(boundary, m_diagram);
|
||||||
if (moveable) {
|
if (moveable) {
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ void DiagramSceneController::createDependency(DObject *endAObject, DObject *endB
|
|||||||
MDependency *modelDependency = new MDependency();
|
MDependency *modelDependency = new MDependency();
|
||||||
modelDependency->setEndAUid(endAModelObject->uid());
|
modelDependency->setEndAUid(endAModelObject->uid());
|
||||||
modelDependency->setEndBUid(endBModelObject->uid());
|
modelDependency->setEndBUid(endBModelObject->uid());
|
||||||
modelDependency->setDirection(MDependency::A_TO_B);
|
modelDependency->setDirection(MDependency::AToB);
|
||||||
m_modelController->addRelation(endAModelObject, modelDependency);
|
m_modelController->addRelation(endAModelObject, modelDependency);
|
||||||
|
|
||||||
DRelation *relation = addRelation(modelDependency, intermediatePoints, diagram);
|
DRelation *relation = addRelation(modelDependency, intermediatePoints, diagram);
|
||||||
@@ -519,7 +519,7 @@ void DiagramSceneController::alignPosition(DObject *object, const DSelection &se
|
|||||||
if (selectedObject != object) {
|
if (selectedObject != object) {
|
||||||
QPointF newPos = aligner(object, selectedObject);
|
QPointF newPos = aligner(object, selectedObject);
|
||||||
if (newPos != selectedObject->pos()) {
|
if (newPos != selectedObject->pos()) {
|
||||||
m_diagramController->startUpdateElement(selectedObject, diagram, DiagramController::UPDATE_GEOMETRY);
|
m_diagramController->startUpdateElement(selectedObject, diagram, DiagramController::UpdateGeometry);
|
||||||
selectedObject->setPos(newPos);
|
selectedObject->setPos(newPos);
|
||||||
m_diagramController->finishUpdateElement(selectedObject, diagram, false);
|
m_diagramController->finishUpdateElement(selectedObject, diagram, false);
|
||||||
}
|
}
|
||||||
@@ -546,7 +546,7 @@ void DiagramSceneController::alignSize(DObject *object, const DSelection &select
|
|||||||
if (DObject *selectedObject = dynamic_cast<DObject *>(element)) {
|
if (DObject *selectedObject = dynamic_cast<DObject *>(element)) {
|
||||||
QRectF newRect = aligner(selectedObject, size);
|
QRectF newRect = aligner(selectedObject, size);
|
||||||
if (newRect != selectedObject->rect()) {
|
if (newRect != selectedObject->rect()) {
|
||||||
m_diagramController->startUpdateElement(selectedObject, diagram, DiagramController::UPDATE_GEOMETRY);
|
m_diagramController->startUpdateElement(selectedObject, diagram, DiagramController::UpdateGeometry);
|
||||||
selectedObject->setAutoSize(false);
|
selectedObject->setAutoSize(false);
|
||||||
selectedObject->setRect(newRect);
|
selectedObject->setRect(newRect);
|
||||||
m_diagramController->finishUpdateElement(selectedObject, diagram, false);
|
m_diagramController->finishUpdateElement(selectedObject, diagram, false);
|
||||||
|
|||||||
@@ -512,13 +512,13 @@ public:
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
enum ReferenceKind {
|
enum ReferenceKind {
|
||||||
NULLPOINTER,
|
Nullpointer,
|
||||||
POINTER,
|
Pointer,
|
||||||
INSTANCE
|
Instance
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ReferenceTag {
|
struct ReferenceTag {
|
||||||
explicit ReferenceTag(ReferenceKind k = NULLPOINTER, const QString &string = QLatin1String("")) : kind(k), typeName(string) { }
|
explicit ReferenceTag(ReferenceKind k = Nullpointer, const QString &string = QLatin1String("")) : kind(k), typeName(string) { }
|
||||||
|
|
||||||
ReferenceKind kind;
|
ReferenceKind kind;
|
||||||
QString typeName;
|
QString typeName;
|
||||||
@@ -528,11 +528,11 @@ public:
|
|||||||
{
|
{
|
||||||
XmlTag tag = readTag();
|
XmlTag tag = readTag();
|
||||||
if (tag.m_tagName == QLatin1String("null")) {
|
if (tag.m_tagName == QLatin1String("null")) {
|
||||||
return ReferenceTag(NULLPOINTER);
|
return ReferenceTag(Nullpointer);
|
||||||
} else if (tag.m_tagName == QLatin1String("reference")) {
|
} else if (tag.m_tagName == QLatin1String("reference")) {
|
||||||
return ReferenceTag(POINTER);
|
return ReferenceTag(Pointer);
|
||||||
} else if (tag.m_tagName == QLatin1String("instance")) {
|
} else if (tag.m_tagName == QLatin1String("instance")) {
|
||||||
return ReferenceTag(INSTANCE, tag.m_attributes.value(QLatin1String("type")));
|
return ReferenceTag(Instance, tag.m_attributes.value(QLatin1String("type")));
|
||||||
} else {
|
} else {
|
||||||
throw FileFormatException();
|
throw FileFormatException();
|
||||||
}
|
}
|
||||||
@@ -543,11 +543,11 @@ public:
|
|||||||
XmlTag tag = readTag();
|
XmlTag tag = readTag();
|
||||||
if (!tag.m_endTag) {
|
if (!tag.m_endTag) {
|
||||||
throw FileFormatException();
|
throw FileFormatException();
|
||||||
} else if (tag.m_tagName == QLatin1String("null") && kind != NULLPOINTER) {
|
} else if (tag.m_tagName == QLatin1String("null") && kind != Nullpointer) {
|
||||||
throw FileFormatException();
|
throw FileFormatException();
|
||||||
} else if (tag.m_tagName == QLatin1String("reference") && kind != POINTER) {
|
} else if (tag.m_tagName == QLatin1String("reference") && kind != Pointer) {
|
||||||
throw FileFormatException();
|
throw FileFormatException();
|
||||||
} else if (tag.m_tagName == QLatin1String("instance") && kind != INSTANCE) {
|
} else if (tag.m_tagName == QLatin1String("instance") && kind != Instance) {
|
||||||
throw FileFormatException();
|
throw FileFormatException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,13 +70,13 @@ void load(Archive &archive, T *&p, const Parameters &)
|
|||||||
{
|
{
|
||||||
typename Archive::ReferenceTag refTag = archive.readReferenceTag();
|
typename Archive::ReferenceTag refTag = archive.readReferenceTag();
|
||||||
switch (refTag.kind) {
|
switch (refTag.kind) {
|
||||||
case Archive::NULLPOINTER:
|
case Archive::Nullpointer:
|
||||||
p = 0;
|
p = 0;
|
||||||
break;
|
break;
|
||||||
case Archive::POINTER:
|
case Archive::Pointer:
|
||||||
archive.read(p);
|
archive.read(p);
|
||||||
break;
|
break;
|
||||||
case Archive::INSTANCE:
|
case Archive::Instance:
|
||||||
if (refTag.typeName.isEmpty()) {
|
if (refTag.typeName.isEmpty()) {
|
||||||
registry::loadNonVirtualPointer<Archive,T>(archive, p);
|
registry::loadNonVirtualPointer<Archive,T>(archive, p);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -158,9 +158,9 @@ void UpdateIncludeDependenciesVisitor::visitMComponent(qmt::MComponent *componen
|
|||||||
// add dependency between components
|
// add dependency between components
|
||||||
if (!haveDependency(component, includeComponent)) {
|
if (!haveDependency(component, includeComponent)) {
|
||||||
auto dependency = new qmt::MDependency;
|
auto dependency = new qmt::MDependency;
|
||||||
dependency->setFlags(qmt::MElement::REVERSE_ENGINEERED);
|
dependency->setFlags(qmt::MElement::ReverseEngineered);
|
||||||
dependency->setStereotypes(QStringList() << QStringLiteral("include"));
|
dependency->setStereotypes(QStringList() << QStringLiteral("include"));
|
||||||
dependency->setDirection(qmt::MDependency::A_TO_B);
|
dependency->setDirection(qmt::MDependency::AToB);
|
||||||
dependency->setSource(component->uid());
|
dependency->setSource(component->uid());
|
||||||
dependency->setTarget(includeComponent->uid());
|
dependency->setTarget(includeComponent->uid());
|
||||||
m_modelController->addRelation(component, dependency);
|
m_modelController->addRelation(component, dependency);
|
||||||
@@ -201,9 +201,9 @@ void UpdateIncludeDependenciesVisitor::visitMComponent(qmt::MComponent *componen
|
|||||||
if (haveMatchingStereotypes(componentAncestors.at(index1), includeComponentAncestors.at(index2))) {
|
if (haveMatchingStereotypes(componentAncestors.at(index1), includeComponentAncestors.at(index2))) {
|
||||||
if (!haveDependency(componentAncestors.at(index1), includeComponentAncestors.at(index2))) {
|
if (!haveDependency(componentAncestors.at(index1), includeComponentAncestors.at(index2))) {
|
||||||
auto dependency = new qmt::MDependency;
|
auto dependency = new qmt::MDependency;
|
||||||
dependency->setFlags(qmt::MElement::REVERSE_ENGINEERED);
|
dependency->setFlags(qmt::MElement::ReverseEngineered);
|
||||||
dependency->setStereotypes(QStringList() << QStringLiteral("same stereotype"));
|
dependency->setStereotypes(QStringList() << QStringLiteral("same stereotype"));
|
||||||
dependency->setDirection(qmt::MDependency::A_TO_B);
|
dependency->setDirection(qmt::MDependency::AToB);
|
||||||
dependency->setSource(componentAncestors.at(index1)->uid());
|
dependency->setSource(componentAncestors.at(index1)->uid());
|
||||||
dependency->setTarget(includeComponentAncestors.at(index2)->uid());
|
dependency->setTarget(includeComponentAncestors.at(index2)->uid());
|
||||||
m_modelController->addRelation(componentAncestors.at(index1), dependency);
|
m_modelController->addRelation(componentAncestors.at(index1), dependency);
|
||||||
@@ -221,9 +221,9 @@ void UpdateIncludeDependenciesVisitor::visitMComponent(qmt::MComponent *componen
|
|||||||
if (componentAncestors.at(componentHighestAncestorIndex) != includeComponentAncestors.at(includeComponentHighestAncestorIndex)) {
|
if (componentAncestors.at(componentHighestAncestorIndex) != includeComponentAncestors.at(includeComponentHighestAncestorIndex)) {
|
||||||
if (!haveDependency(componentAncestors.at(componentHighestAncestorIndex), includeComponentAncestors)) {
|
if (!haveDependency(componentAncestors.at(componentHighestAncestorIndex), includeComponentAncestors)) {
|
||||||
auto dependency = new qmt::MDependency;
|
auto dependency = new qmt::MDependency;
|
||||||
dependency->setFlags(qmt::MElement::REVERSE_ENGINEERED);
|
dependency->setFlags(qmt::MElement::ReverseEngineered);
|
||||||
dependency->setStereotypes(QStringList() << QStringLiteral("ancestor"));
|
dependency->setStereotypes(QStringList() << QStringLiteral("ancestor"));
|
||||||
dependency->setDirection(qmt::MDependency::A_TO_B);
|
dependency->setDirection(qmt::MDependency::AToB);
|
||||||
dependency->setSource(componentAncestors.at(componentHighestAncestorIndex)->uid());
|
dependency->setSource(componentAncestors.at(componentHighestAncestorIndex)->uid());
|
||||||
dependency->setTarget(includeComponentAncestors.at(includeComponentHighestAncestorIndex)->uid());
|
dependency->setTarget(includeComponentAncestors.at(includeComponentHighestAncestorIndex)->uid());
|
||||||
m_modelController->addRelation(componentAncestors.at(componentHighestAncestorIndex), dependency);
|
m_modelController->addRelation(componentAncestors.at(componentHighestAncestorIndex), dependency);
|
||||||
@@ -235,9 +235,9 @@ void UpdateIncludeDependenciesVisitor::visitMComponent(qmt::MComponent *componen
|
|||||||
if (componentAncestors.at(0) != includeComponentAncestors.at(0)) {
|
if (componentAncestors.at(0) != includeComponentAncestors.at(0)) {
|
||||||
if (!haveDependency(componentAncestors.at(0), includeComponentAncestors)) {
|
if (!haveDependency(componentAncestors.at(0), includeComponentAncestors)) {
|
||||||
auto dependency = new qmt::MDependency;
|
auto dependency = new qmt::MDependency;
|
||||||
dependency->setFlags(qmt::MElement::REVERSE_ENGINEERED);
|
dependency->setFlags(qmt::MElement::ReverseEngineered);
|
||||||
dependency->setStereotypes(QStringList() << QStringLiteral("parents"));
|
dependency->setStereotypes(QStringList() << QStringLiteral("parents"));
|
||||||
dependency->setDirection(qmt::MDependency::A_TO_B);
|
dependency->setDirection(qmt::MDependency::AToB);
|
||||||
dependency->setSource(componentAncestors.at(0)->uid());
|
dependency->setSource(componentAncestors.at(0)->uid());
|
||||||
dependency->setTarget(includeComponentAncestors.at(0)->uid());
|
dependency->setTarget(includeComponentAncestors.at(0)->uid());
|
||||||
m_modelController->addRelation(componentAncestors.at(0), dependency);
|
m_modelController->addRelation(componentAncestors.at(0), dependency);
|
||||||
@@ -316,24 +316,24 @@ qmt::MComponent *UpdateIncludeDependenciesVisitor::findComponentFromFilePath(con
|
|||||||
bool UpdateIncludeDependenciesVisitor::haveDependency(const qmt::MObject *source,
|
bool UpdateIncludeDependenciesVisitor::haveDependency(const qmt::MObject *source,
|
||||||
const qmt::MObject *target, bool inverted)
|
const qmt::MObject *target, bool inverted)
|
||||||
{
|
{
|
||||||
qmt::MDependency::Direction aToB = qmt::MDependency::A_TO_B;
|
qmt::MDependency::Direction aToB = qmt::MDependency::AToB;
|
||||||
qmt::MDependency::Direction bToA = qmt::MDependency::B_TO_A;
|
qmt::MDependency::Direction bToA = qmt::MDependency::BToA;
|
||||||
if (inverted) {
|
if (inverted) {
|
||||||
aToB = qmt::MDependency::B_TO_A;
|
aToB = qmt::MDependency::BToA;
|
||||||
bToA = qmt::MDependency::A_TO_B;
|
bToA = qmt::MDependency::AToB;
|
||||||
}
|
}
|
||||||
foreach (const qmt::Handle<qmt::MRelation> &handle, source->relations()) {
|
foreach (const qmt::Handle<qmt::MRelation> &handle, source->relations()) {
|
||||||
if (auto dependency = dynamic_cast<qmt::MDependency *>(handle.target())) {
|
if (auto dependency = dynamic_cast<qmt::MDependency *>(handle.target())) {
|
||||||
if (dependency->source() == source->uid()
|
if (dependency->source() == source->uid()
|
||||||
&& dependency->target() == target->uid()
|
&& dependency->target() == target->uid()
|
||||||
&& (dependency->direction() == aToB
|
&& (dependency->direction() == aToB
|
||||||
|| dependency->direction() == qmt::MDependency::BIDIRECTIONAL)) {
|
|| dependency->direction() == qmt::MDependency::Bidirectional)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (dependency->source() == target->uid()
|
if (dependency->source() == target->uid()
|
||||||
&& dependency->target() == source->uid()
|
&& dependency->target() == source->uid()
|
||||||
&& (dependency->direction() == bToA
|
&& (dependency->direction() == bToA
|
||||||
|| dependency->direction() == qmt::MDependency::BIDIRECTIONAL)) {
|
|| dependency->direction() == qmt::MDependency::Bidirectional)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -408,7 +408,7 @@ void ComponentViewController::createComponentModel(const ProjectExplorer::Folder
|
|||||||
}
|
}
|
||||||
if (isSource) {
|
if (isSource) {
|
||||||
component = new qmt::MComponent;
|
component = new qmt::MComponent;
|
||||||
component->setFlags(qmt::MElement::REVERSE_ENGINEERED);
|
component->setFlags(qmt::MElement::ReverseEngineered);
|
||||||
component->setName(componentName);
|
component->setName(componentName);
|
||||||
}
|
}
|
||||||
if (component) {
|
if (component) {
|
||||||
|
|||||||
@@ -805,7 +805,7 @@ void ModelEditor::onNewElementCreated(qmt::DElement *element, qmt::MDiagram *dia
|
|||||||
|
|
||||||
documentController->diagramsManager()->diagramSceneModel(diagram)->selectElement(element);
|
documentController->diagramsManager()->diagramSceneModel(diagram)->selectElement(element);
|
||||||
qmt::MElement *melement = documentController->modelController()->findElement(element->modelUid());
|
qmt::MElement *melement = documentController->modelController()->findElement(element->modelUid());
|
||||||
if (!(melement && melement->flags().testFlag(qmt::MElement::REVERSE_ENGINEERED)))
|
if (!(melement && melement->flags().testFlag(qmt::MElement::ReverseEngineered)))
|
||||||
QTimer::singleShot(0, this, [this]() { onEditSelectedElement(); });
|
QTimer::singleShot(0, this, [this]() { onEditSelectedElement(); });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -871,36 +871,36 @@ void ModelEditor::initToolbars()
|
|||||||
}
|
}
|
||||||
foreach (const qmt::Toolbar::Tool &tool, toolbar.tools()) {
|
foreach (const qmt::Toolbar::Tool &tool, toolbar.tools()) {
|
||||||
switch (tool.m_toolType) {
|
switch (tool.m_toolType) {
|
||||||
case qmt::Toolbar::TOOLTYPE_TOOL:
|
case qmt::Toolbar::TooltypeTool:
|
||||||
{
|
{
|
||||||
QString iconPath;
|
QString iconPath;
|
||||||
qmt::StereotypeIcon::Element stereotypeIconElement = qmt::StereotypeIcon::ELEMENT_ANY;
|
qmt::StereotypeIcon::Element stereotypeIconElement = qmt::StereotypeIcon::ElementAny;
|
||||||
qmt::StyleEngine::ElementType styleEngineElementType = qmt::StyleEngine::TYPE_OTHER;
|
qmt::StyleEngine::ElementType styleEngineElementType = qmt::StyleEngine::TypeOther;
|
||||||
if (tool.m_elementType == QLatin1String(qmt::ELEMENT_TYPE_PACKAGE)) {
|
if (tool.m_elementType == QLatin1String(qmt::ELEMENT_TYPE_PACKAGE)) {
|
||||||
iconPath = QStringLiteral(":/modelinglib/48x48/package.png");
|
iconPath = QStringLiteral(":/modelinglib/48x48/package.png");
|
||||||
stereotypeIconElement = qmt::StereotypeIcon::ELEMENT_PACKAGE;
|
stereotypeIconElement = qmt::StereotypeIcon::ElementPackage;
|
||||||
styleEngineElementType = qmt::StyleEngine::TYPE_PACKAGE;
|
styleEngineElementType = qmt::StyleEngine::TypePackage;
|
||||||
} else if (tool.m_elementType == QLatin1String(qmt::ELEMENT_TYPE_COMPONENT)) {
|
} else if (tool.m_elementType == QLatin1String(qmt::ELEMENT_TYPE_COMPONENT)) {
|
||||||
iconPath = QStringLiteral(":/modelinglib/48x48/component.png");
|
iconPath = QStringLiteral(":/modelinglib/48x48/component.png");
|
||||||
stereotypeIconElement = qmt::StereotypeIcon::ELEMENT_COMPONENT;
|
stereotypeIconElement = qmt::StereotypeIcon::ElementComponent;
|
||||||
styleEngineElementType = qmt::StyleEngine::TYPE_COMPONENT;
|
styleEngineElementType = qmt::StyleEngine::TypeComponent;
|
||||||
} else if (tool.m_elementType == QLatin1String(qmt::ELEMENT_TYPE_CLASS)) {
|
} else if (tool.m_elementType == QLatin1String(qmt::ELEMENT_TYPE_CLASS)) {
|
||||||
iconPath = QStringLiteral(":/modelinglib/48x48/class.png");
|
iconPath = QStringLiteral(":/modelinglib/48x48/class.png");
|
||||||
stereotypeIconElement = qmt::StereotypeIcon::ELEMENT_CLASS;
|
stereotypeIconElement = qmt::StereotypeIcon::ElementClass;
|
||||||
styleEngineElementType = qmt::StyleEngine::TYPE_CLASS;
|
styleEngineElementType = qmt::StyleEngine::TypeClass;
|
||||||
} else if (tool.m_elementType == QLatin1String(qmt::ELEMENT_TYPE_ITEM)) {
|
} else if (tool.m_elementType == QLatin1String(qmt::ELEMENT_TYPE_ITEM)) {
|
||||||
iconPath = QStringLiteral(":/modelinglib/48x48/item.png");
|
iconPath = QStringLiteral(":/modelinglib/48x48/item.png");
|
||||||
stereotypeIconElement = qmt::StereotypeIcon::ELEMENT_ITEM;
|
stereotypeIconElement = qmt::StereotypeIcon::ElementItem;
|
||||||
styleEngineElementType = qmt::StyleEngine::TYPE_ITEM;
|
styleEngineElementType = qmt::StyleEngine::TypeItem;
|
||||||
} else if (tool.m_elementType == QLatin1String(qmt::ELEMENT_TYPE_ANNOTATION)) {
|
} else if (tool.m_elementType == QLatin1String(qmt::ELEMENT_TYPE_ANNOTATION)) {
|
||||||
iconPath = QStringLiteral(":/modelinglib/48x48/annotation.png");
|
iconPath = QStringLiteral(":/modelinglib/48x48/annotation.png");
|
||||||
styleEngineElementType = qmt::StyleEngine::TYPE_ANNOTATION;
|
styleEngineElementType = qmt::StyleEngine::TypeAnnotation;
|
||||||
} else if (tool.m_elementType == QLatin1String(qmt::ELEMENT_TYPE_BOUNDARY)) {
|
} else if (tool.m_elementType == QLatin1String(qmt::ELEMENT_TYPE_BOUNDARY)) {
|
||||||
iconPath = QStringLiteral(":/modelinglib/48x48/boundary.png");
|
iconPath = QStringLiteral(":/modelinglib/48x48/boundary.png");
|
||||||
styleEngineElementType = qmt::StyleEngine::TYPE_BOUNDARY;
|
styleEngineElementType = qmt::StyleEngine::TypeBoundary;
|
||||||
}
|
}
|
||||||
QIcon icon;
|
QIcon icon;
|
||||||
if (!tool.m_stereotype.isEmpty() && stereotypeIconElement != qmt::StereotypeIcon::ELEMENT_ANY) {
|
if (!tool.m_stereotype.isEmpty() && stereotypeIconElement != qmt::StereotypeIcon::ElementAny) {
|
||||||
const qmt::Style *style = documentController->styleController()->adaptStyle(styleEngineElementType);
|
const qmt::Style *style = documentController->styleController()->adaptStyle(styleEngineElementType);
|
||||||
icon = stereotypeController->createIcon(
|
icon = stereotypeController->createIcon(
|
||||||
stereotypeIconElement, QStringList() << tool.m_stereotype,
|
stereotypeIconElement, QStringList() << tool.m_stereotype,
|
||||||
@@ -914,7 +914,7 @@ void ModelEditor::initToolbars()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case qmt::Toolbar::TOOLTYPE_SEPARATOR:
|
case qmt::Toolbar::TooltypeSeparator:
|
||||||
{
|
{
|
||||||
auto horizLine1 = new QFrame(d->leftToolBox);
|
auto horizLine1 = new QFrame(d->leftToolBox);
|
||||||
horizLine1->setFrameShape(QFrame::HLine);
|
horizLine1->setFrameShape(QFrame::HLine);
|
||||||
|
|||||||
@@ -286,7 +286,7 @@ void PxNodeController::onMenuActionTriggered(PxNodeController::MenuAction *actio
|
|||||||
case MenuAction::TYPE_ADD_COMPONENT:
|
case MenuAction::TYPE_ADD_COMPONENT:
|
||||||
{
|
{
|
||||||
auto component = new qmt::MComponent();
|
auto component = new qmt::MComponent();
|
||||||
component->setFlags(qmt::MElement::REVERSE_ENGINEERED);
|
component->setFlags(qmt::MElement::ReverseEngineered);
|
||||||
component->setName(action->elementName);
|
component->setName(action->elementName);
|
||||||
newObject = component;
|
newObject = component;
|
||||||
break;
|
break;
|
||||||
@@ -295,7 +295,7 @@ void PxNodeController::onMenuActionTriggered(PxNodeController::MenuAction *actio
|
|||||||
{
|
{
|
||||||
// TODO handle template classes
|
// TODO handle template classes
|
||||||
auto klass = new qmt::MClass();
|
auto klass = new qmt::MClass();
|
||||||
klass->setFlags(qmt::MElement::REVERSE_ENGINEERED);
|
klass->setFlags(qmt::MElement::ReverseEngineered);
|
||||||
QString qualifiedName = action->className;
|
QString qualifiedName = action->className;
|
||||||
int i = qualifiedName.lastIndexOf(QStringLiteral("::"));
|
int i = qualifiedName.lastIndexOf(QStringLiteral("::"));
|
||||||
if (i >= 0) {
|
if (i >= 0) {
|
||||||
@@ -311,7 +311,7 @@ void PxNodeController::onMenuActionTriggered(PxNodeController::MenuAction *actio
|
|||||||
case MenuAction::TYPE_ADD_PACKAGE_AND_DIAGRAM:
|
case MenuAction::TYPE_ADD_PACKAGE_AND_DIAGRAM:
|
||||||
{
|
{
|
||||||
auto package = new qmt::MPackage();
|
auto package = new qmt::MPackage();
|
||||||
package->setFlags(qmt::MElement::REVERSE_ENGINEERED);
|
package->setFlags(qmt::MElement::ReverseEngineered);
|
||||||
package->setName(action->elementName);
|
package->setName(action->elementName);
|
||||||
if (!action->packageStereotype.isEmpty())
|
if (!action->packageStereotype.isEmpty())
|
||||||
package->setStereotypes(QStringList() << action->packageStereotype);
|
package->setStereotypes(QStringList() << action->packageStereotype);
|
||||||
@@ -326,7 +326,7 @@ void PxNodeController::onMenuActionTriggered(PxNodeController::MenuAction *actio
|
|||||||
case MenuAction::TYPE_ADD_COMPONENT_MODEL:
|
case MenuAction::TYPE_ADD_COMPONENT_MODEL:
|
||||||
{
|
{
|
||||||
auto package = new qmt::MPackage();
|
auto package = new qmt::MPackage();
|
||||||
package->setFlags(qmt::MElement::REVERSE_ENGINEERED);
|
package->setFlags(qmt::MElement::ReverseEngineered);
|
||||||
package->setName(action->elementName);
|
package->setName(action->elementName);
|
||||||
if (!action->packageStereotype.isEmpty())
|
if (!action->packageStereotype.isEmpty())
|
||||||
package->setStereotypes(QStringList() << action->packageStereotype);
|
package->setStereotypes(QStringList() << action->packageStereotype);
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ qmt::MPackage *PxNodeUtilities::createBestMatchingPackagePath(
|
|||||||
int i = maxChainLength;
|
int i = maxChainLength;
|
||||||
while (i < relativeElements.size()) {
|
while (i < relativeElements.size()) {
|
||||||
auto newPackage = new qmt::MPackage();
|
auto newPackage = new qmt::MPackage();
|
||||||
newPackage->setFlags(qmt::MElement::REVERSE_ENGINEERED);
|
newPackage->setFlags(qmt::MElement::ReverseEngineered);
|
||||||
newPackage->setName(relativeElements.at(i));
|
newPackage->setName(relativeElements.at(i));
|
||||||
d->diagramSceneController->modelController()->addObject(bestParentPackage, newPackage);
|
d->diagramSceneController->modelController()->addObject(bestParentPackage, newPackage);
|
||||||
bestParentPackage = newPackage;
|
bestParentPackage = newPackage;
|
||||||
|
|||||||
Reference in New Issue
Block a user