Hello community,

here is the log from the commit of package umbrello for openSUSE:Factory 
checked in at 2017-03-16 09:41:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/umbrello (Old)
 and      /work/SRC/openSUSE:Factory/.umbrello.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "umbrello"

Thu Mar 16 09:41:21 2017 rev:49 rq:478310 version:16.12.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/umbrello/umbrello.changes        2017-01-23 
11:38:58.528385310 +0100
+++ /work/SRC/openSUSE:Factory/.umbrello.new/umbrello.changes   2017-03-16 
09:41:25.155737704 +0100
@@ -1,0 +2,19 @@
+Thu Mar  9 12:46:13 CET 2017 - [email protected]
+
+- Update to 16.12.3
+  * New bugfix release
+  * For more details please see:
+  * https://www.kde.org/announcements/announce-applications-16.12.3.php
+- Changes since 16.12.2:
+  * Fix crash by disconnecting slots in UMLApp::~UMLApp().
+
+
+-------------------------------------------------------------------
+Thu Feb  9 07:28:52 UTC 2017 - [email protected]
+
+- Update to KDE Applications 16.12.2
+   * KDE Applications 16.12.2
+   * https://www.kde.org/announcements/announce-applications-16.12.2.php
+
+
+-------------------------------------------------------------------

Old:
----
  umbrello-16.12.1.tar.xz

New:
----
  umbrello-16.12.3.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ umbrello.spec ++++++
--- /var/tmp/diff_new_pack.fNnY4m/_old  2017-03-16 09:41:25.763651626 +0100
+++ /var/tmp/diff_new_pack.fNnY4m/_new  2017-03-16 09:41:25.767651060 +0100
@@ -24,7 +24,7 @@
 License:        GPL-2.0 and GFDL-1.2
 Group:          Development/Tools/Other
 Url:            http://www.kde.org/
-Version:        16.12.1
+Version:        16.12.3
 Release:        0
 Source0:        %{name}-%{version}.tar.xz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ umbrello-16.12.1.tar.xz -> umbrello-16.12.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-16.12.1/CMakeLists.txt 
new/umbrello-16.12.3/CMakeLists.txt
--- old/umbrello-16.12.1/CMakeLists.txt 2017-01-09 20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/CMakeLists.txt 2017-03-04 11:32:12.000000000 +0100
@@ -3,7 +3,7 @@
 # KDE Application Version, managed by release script
 set (KDE_APPLICATIONS_VERSION_MAJOR "16")
 set (KDE_APPLICATIONS_VERSION_MINOR "12")
-set (KDE_APPLICATIONS_VERSION_MICRO "1")
+set (KDE_APPLICATIONS_VERSION_MICRO "3")
 
 set(UMBRELLO_VERSION_MAJOR "2")
 MATH(EXPR UMBRELLO_VERSION_MINOR "9+${KDE_APPLICATIONS_VERSION_MINOR}")
@@ -23,6 +23,10 @@
 
 set(CMAKE_AUTORCC ON)
 
+if(CMAKE_COMPILER_IS_GNUCXX)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -fno-delete-null-pointer-checks")
+endif()
+
 if(NOT BUILD_KF5)
     cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-16.12.1/lib/cppparser/driver.h 
new/umbrello-16.12.3/lib/cppparser/driver.h
--- old/umbrello-16.12.1/lib/cppparser/driver.h 2017-01-09 20:11:13.000000000 
+0100
+++ new/umbrello-16.12.3/lib/cppparser/driver.h 2017-03-04 11:32:12.000000000 
+0100
@@ -21,7 +21,6 @@
 
 #include "ast.h"
 
-#include "debug_utils.h"
 #include "macro.h"
 #include <qpair.h>
 #include <QStringList>
@@ -110,7 +109,6 @@
 
     TranslationUnitAST* operator -> () const
     {
-        uCheckPointerAndReturnIfZero(this);
         return (TranslationUnitAST*)m_translationUnit.data();
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-16.12.1/umbrello/assocrules.cpp 
new/umbrello-16.12.3/umbrello/assocrules.cpp
--- old/umbrello-16.12.1/umbrello/assocrules.cpp        2017-01-09 
20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/umbrello/assocrules.cpp        2017-03-04 
11:32:12.000000000 +0100
@@ -204,8 +204,11 @@
         return true;  // doesn't matter what's already connected to widget
         break;
 
-    case Uml::AssociationType::Composition:   // can't have mutual composition
-    case Uml::AssociationType::Containment:   // can't have mutual containment
+    case Uml::AssociationType::Composition:
+    case Uml::AssociationType::Containment:
+        return true;
+        break;
+
     case Uml::AssociationType::Generalization://can have many sub/super types 
but can't sup/sub each
         foreach (AssociationWidget * assoc, list) {
             if((widgetA == assoc->widgetForRole(Uml::RoleType::A) ||
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-16.12.1/umbrello/codeimport/adaimport.cpp 
new/umbrello-16.12.3/umbrello/codeimport/adaimport.cpp
--- old/umbrello-16.12.1/umbrello/codeimport/adaimport.cpp      2017-01-09 
20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/umbrello/codeimport/adaimport.cpp      2017-03-04 
11:32:12.000000000 +0100
@@ -329,8 +329,11 @@
             UMLObject *ns = Import_Utils::createUMLObject(UMLObject::ot_Enum,
                             name, currentScope(), m_comment);
             UMLEnum *enumType = ns->asUMLEnum();
+            if (enumType == 0)
+                enumType = Import_Utils::remapUMLEnum(ns, enumType);
             while ((next = advance()) != QLatin1String(")")) {
-                Import_Utils::addEnumLiteral(enumType, next, m_comment);
+                if (enumType != 0)
+                    Import_Utils::addEnumLiteral(enumType, next, m_comment);
                 m_comment.clear();
                 if (advance() != QLatin1String(","))
                     break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-16.12.1/umbrello/codeimport/csharp/csharpimport.cpp 
new/umbrello-16.12.3/umbrello/codeimport/csharp/csharpimport.cpp
--- old/umbrello-16.12.1/umbrello/codeimport/csharp/csharpimport.cpp    
2017-01-09 20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/umbrello/codeimport/csharp/csharpimport.cpp    
2017-03-04 11:32:12.000000000 +0100
@@ -626,12 +626,15 @@
     UMLObject *ns = Import_Utils::createUMLObject(UMLObject::ot_Enum,
                         name, currentScope(), m_comment);
     UMLEnum *enumType = ns->asUMLEnum();
+    if (enumType == 0)
+        enumType = Import_Utils::remapUMLEnum(ns, currentScope());
     skipStmt(QLatin1String("{"));
     while (m_srcIndex < m_source.count() - 1 && advance() != 
QLatin1String("}")) {
         QString next = advance();
         if (next == QLatin1String("=")) {
             next = advance();
-            Import_Utils::addEnumLiteral(enumType, m_source[m_srcIndex - 2], 
QString(), m_source[m_srcIndex]);
+            if (enumType != 0)
+                Import_Utils::addEnumLiteral(enumType, m_source[m_srcIndex - 
2], QString(), m_source[m_srcIndex]);
             next = advance();
         } else {
             Import_Utils::addEnumLiteral(enumType, m_source[m_srcIndex - 1]);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-16.12.1/umbrello/codeimport/idlimport.cpp 
new/umbrello-16.12.3/umbrello/codeimport/idlimport.cpp
--- old/umbrello-16.12.1/umbrello/codeimport/idlimport.cpp      2017-01-09 
20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/umbrello/codeimport/idlimport.cpp      2017-03-04 
11:32:12.000000000 +0100
@@ -306,9 +306,12 @@
         UMLObject *ns = Import_Utils::createUMLObject(UMLObject::ot_Enum,
                         name, currentScope(), m_comment);
         UMLEnum *enumType = ns->asUMLEnum();
+        if (enumType == 0)
+            enumType = Import_Utils::remapUMLEnum(ns, enumType);
         m_srcIndex++;  // skip name
         while (++m_srcIndex < srcLength && m_source[m_srcIndex] != 
QLatin1String("}")) {
-            Import_Utils::addEnumLiteral(enumType, m_source[m_srcIndex]);
+            if (enumType != 0)
+                Import_Utils::addEnumLiteral(enumType, m_source[m_srcIndex]);
             if (advance() != QLatin1String(","))
                 break;
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-16.12.1/umbrello/codeimport/import_utils.cpp 
new/umbrello-16.12.3/umbrello/codeimport/import_utils.cpp
--- old/umbrello-16.12.1/umbrello/codeimport/import_utils.cpp   2017-01-09 
20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/umbrello/codeimport/import_utils.cpp   2017-03-04 
11:32:12.000000000 +0100
@@ -599,6 +599,34 @@
 }
 
 /**
+ * Remap UMLObject instance in case it does not have the correct type.
+ *
+ * @param ns uml object instance with incorrect class
+ * @param currentScope parent uml object
+ * @return newly created UMLEnum instance
+ */
+UMLEnum *remapUMLEnum(UMLObject *ns, UMLPackage *currentScope)
+{
+    if (ns) {
+        QString comment = ns->doc();
+        QString stereotype = ns->stereotype();
+        Uml::Visibility::Enum visibility = ns->visibility();
+        UMLApp::app()->document()->removeUMLObject(ns, true);
+        if (currentScope == 0)
+            currentScope = 
UMLApp::app()->document()->rootFolder(Uml::ModelType::Logical);
+        ns = Object_Factory::createNewUMLObject(UMLObject::ot_Enum, 
ns->name(), currentScope, false);
+        ns->setDoc(comment);
+        ns->setStereotypeCmd(stereotype.isEmpty() ? QLatin1String("enum") : 
stereotype);
+        ns->setVisibilityCmd(visibility);
+        // add to parents child list
+        if (!currentScope->containedObjects().contains(ns))
+            currentScope->containedObjects().append(ns);
+        return ns->asUMLEnum();
+    }
+    return 0;
+}
+
+/**
  * Return the list of paths set by previous calls to addIncludePath()
  * and the environment variable UMBRELLO_INCPATH.
  * This list can be used for finding included (or Ada with'ed or...)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-16.12.1/umbrello/codeimport/import_utils.h 
new/umbrello-16.12.3/umbrello/codeimport/import_utils.h
--- old/umbrello-16.12.1/umbrello/codeimport/import_utils.h     2017-01-09 
20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/umbrello/codeimport/import_utils.h     2017-03-04 
11:32:12.000000000 +0100
@@ -77,6 +77,8 @@
     void createGeneralization(UMLClassifier *child, UMLClassifier *parent);
     void createGeneralization(UMLClassifier *child, const QString &parentName);
 
+    UMLEnum *remapUMLEnum(UMLObject *ns, UMLPackage *currentScope);
+
     QString formatComment(const QString &comment);
 
     QStringList includePathList();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-16.12.1/umbrello/codeimport/javaimport.cpp 
new/umbrello-16.12.3/umbrello/codeimport/javaimport.cpp
--- old/umbrello-16.12.1/umbrello/codeimport/javaimport.cpp     2017-01-09 
20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/umbrello/codeimport/javaimport.cpp     2017-03-04 
11:32:12.000000000 +0100
@@ -307,6 +307,14 @@
         log(keyword + QLatin1Char(' ') + name);
         UMLObject *ns = Import_Utils::createUMLObject(ot, name, 
currentScope(), m_comment);
         m_klass = ns->asUMLClassifier();
+        // The name is already used but is package
+        if (ns && ns->isUMLPackage() && !m_klass) {
+            ns = Object_Factory::createNewUMLObject(ot, name, 
ns->asUMLPackage());
+            ns->setDoc(m_comment);
+            m_klass = ns->asUMLClassifier();
+            m_klass->setUMLPackage(currentScope());
+            currentScope()->containedObjects().append(m_klass);
+        }
         pushScope(m_klass);
         m_klass->setStatic(m_isStatic);
         m_klass->setVisibilityCmd(m_currentAccess);
@@ -394,25 +402,12 @@
         UMLObject *ns = Import_Utils::createUMLObject(UMLObject::ot_Enum,
                         name, currentScope(), m_comment);
         UMLEnum *enumType = ns->asUMLEnum();
-        // handle type mismatch
-        if (ns && enumType == 0) {
-            QString comment = ns->doc();
-            QString stereotype = ns->stereotype();
-            Uml::Visibility::Enum visibility = ns->visibility();
-            UMLApp::app()->document()->removeUMLObject(ns, true);
-            ns = Object_Factory::createNewUMLObject(UMLObject::ot_Enum, name, 
currentScope(), false);
-            ns->setDoc(comment);
-            ns->setStereotypeCmd(stereotype.isEmpty() ? QLatin1String("enum") 
: stereotype);
-            ns->setVisibilityCmd(visibility);
-            // add to parents child list
-            if (!currentScope()->containedObjects().contains(ns))
-                currentScope()->containedObjects().append(ns);
-            enumType = ns->asUMLEnum();
-        }
-
+        if (enumType == 0)
+            enumType = Import_Utils::remapUMLEnum(ns, currentScope());
         skipStmt(QLatin1String("{"));
         while (m_srcIndex < srcLength - 1 && advance() != QLatin1String("}")) {
-            Import_Utils::addEnumLiteral(enumType, m_source[m_srcIndex]);
+            if (enumType != 0)
+                Import_Utils::addEnumLiteral(enumType, m_source[m_srcIndex]);
             QString next = advance();
             if (next == QLatin1String("{") || next == QLatin1String("(")) {
                 if (! skipToClosing(next[0]))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-16.12.1/umbrello/codeimport/pascalimport.cpp 
new/umbrello-16.12.3/umbrello/codeimport/pascalimport.cpp
--- old/umbrello-16.12.1/umbrello/codeimport/pascalimport.cpp   2017-01-09 
20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/umbrello/codeimport/pascalimport.cpp   2017-03-04 
11:32:12.000000000 +0100
@@ -324,8 +324,11 @@
             UMLObject *ns = Import_Utils::createUMLObject(UMLObject::ot_Enum,
                             name, currentScope(), m_comment);
             UMLEnum *enumType = ns->asUMLEnum();
+            if (enumType == 0)
+                enumType = Import_Utils::remapUMLEnum(ns, enumType);
             while (++m_srcIndex < srcLength && m_source[m_srcIndex] != 
QLatin1String(")")) {
-                Import_Utils::addEnumLiteral(enumType, m_source[m_srcIndex]);
+                if (enumType != 0)
+                    Import_Utils::addEnumLiteral(enumType, 
m_source[m_srcIndex]);
                 if (advance() != QLatin1String(","))
                     break;
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-16.12.1/umbrello/codeimport/sqlimport.cpp 
new/umbrello-16.12.3/umbrello/codeimport/sqlimport.cpp
--- old/umbrello-16.12.1/umbrello/codeimport/sqlimport.cpp      2017-01-09 
20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/umbrello/codeimport/sqlimport.cpp      2017-03-04 
11:32:12.000000000 +0100
@@ -853,6 +853,8 @@
         QString name = Model_Utils::uniqObjectName(UMLObject::ot_Enum, parent, 
type.at(0));
         datatype = Import_Utils::createUMLObject(UMLObject::ot_Enum, name, 
parent);
         UMLEnum *enumType = datatype->asUMLEnum();
+        if (enumType == 0)
+            enumType = Import_Utils::remapUMLEnum(datatype, enumType);
         if (enumType) {
             for (int i = 2; i < type.size(); i++) {
                 Import_Utils::addEnumLiteral(enumType, type.at(i));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-16.12.1/umbrello/debug/debug_utils.h 
new/umbrello-16.12.3/umbrello/debug/debug_utils.h
--- old/umbrello-16.12.1/umbrello/debug/debug_utils.h   2017-01-09 
20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/umbrello/debug/debug_utils.h   2017-03-04 
11:32:12.000000000 +0100
@@ -131,25 +131,6 @@
 
 #define uIgnoreZeroPointer(a) if (!a) { uDebug() << "zero pointer detected" << 
__FILE__ << __LINE__; continue; }
 
-/**
-  Check a pointer and return 0 if it is zero.
-
-  This macros is implemented as asm code to prevent
-  removing by gcc optimizer for example in class methods
-  where 'this' pointer is attributed as "nonnull".
-
-  @param p pointer to check
-  @return returns 0 is pointer is zero
-*/
-#define uCheckPointerAndReturnIfZero(p) \
-    asm goto ("test %0,%0; jne %l[next]" \
-              : /* No outputs. */ \
-              : "r"(p) \
-              : \
-              : next); \
-         return 0; \
-       next:
-
 
 /**
  * In a Q_OBJECT class define any enum as Q_ENUMS.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-16.12.1/umbrello/org.kde.umbrello.appdata.xml 
new/umbrello-16.12.3/umbrello/org.kde.umbrello.appdata.xml
--- old/umbrello-16.12.1/umbrello/org.kde.umbrello.appdata.xml  2017-01-09 
20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/umbrello/org.kde.umbrello.appdata.xml  2017-03-04 
11:32:12.000000000 +0100
@@ -14,6 +14,7 @@
   <name xml:lang="fi">Umbrello</name>
   <name xml:lang="gl">Umbrello</name>
   <name xml:lang="it">Umbrello</name>
+  <name xml:lang="ko">Umbrello</name>
   <name xml:lang="nl">Umbrello</name>
   <name xml:lang="pl">Umbrello</name>
   <name xml:lang="pt">Umbrello</name>
@@ -34,6 +35,7 @@
   <summary xml:lang="fi">UML-mallinnusohjelma</summary>
   <summary xml:lang="gl">Modelador de UML</summary>
   <summary xml:lang="it">Modellatore UML</summary>
+  <summary xml:lang="ko">UML 모델러</summary>
   <summary xml:lang="nl">UML-modeller</summary>
   <summary xml:lang="pl">Program do modelowania UML</summary>
   <summary xml:lang="pt">Modelador de UML</summary>
@@ -58,6 +60,7 @@
     <p xml:lang="fi">Umbrello on UML-mallinnusohjelma. Umbrellolla voi luoda 
kaavioita ohjelmistoista ja muista järjestelmistä käyttäen standardia 
UML-muotoa. Sillä voi myös luoda koodin UML-kaavioiden perusteella useille 
ohjelmointikielille.</p>
     <p xml:lang="gl">Umbrello é unha ferramenta de modelaxe e xerador de 
código baseado na linguaxe de modelaxe UML. Pode crear diagramas de software e 
doutros sistemas usando o formato estándar da industria, UML, e pode tamén 
xerar código a partir de diagramas UML en varios linguaxes de programación.</p>
     <p xml:lang="it">Umbrello è uno strumento per diagrammi UML e un 
generatore di codice. Può creare diagrammi di software e altri sistemi nello 
standard industriale UML, e può anche generare codice partendo dai diagrammi 
UML in diversi linguaggi di programmazione.</p>
+    <p xml:lang="ko">Umbrello는 통합 모델링 언어(UML) 모델링 도구 및 코드 생성기입니다. 산업 표준 UML 
포맷으로 소프트웨어 및 기타 시스템 다이어그램을 생성할 수 있으며, UML 다이어그램에서 여러 프로그래밍 언어로 코드를 생성할 수 
있습니다.</p>
     <p xml:lang="nl">Umbrello is een Unified Modelling Language (UML) 
hulpmiddel voor modellering en generator van code. Het kan diagrammen van 
software en andere systemen maken  in het industrie-standaard UML-formaat en 
kan ook code genereren uit UML diagrammen in een verscheidenheid van 
programmeertalen.</p>
     <p xml:lang="pl">Umbrello jest Unified Modelling Language (UML) (z ang. 
Językiem do Jednolitego Modelowania)  i generatorem kodu. Może tworzyć diagramy 
oprogramowania i innych systemów w formacie standardu przemysłowego UML, a 
także generować kod z diagramów UML w wielu językach programowania.</p>
     <p xml:lang="pt">O Umbrello é uma ferramenta de modelação em UML (Unified 
Modelling Language) e gerador de código. Poderá criar diagramas de aplicações e 
outros sistemas, usando o formato-padrão da indústria UML, podendo também gerar 
código a partir de diagramas UML, numa grande variedade de linguagens de 
programação.</p>
@@ -78,6 +81,7 @@
     <p xml:lang="fi">Ominaisuuksia:</p>
     <p xml:lang="gl">Funcionalidades:</p>
     <p xml:lang="it">Funzionalità:</p>
+    <p xml:lang="ko">기능:</p>
     <p xml:lang="nl">Kenmerken:</p>
     <p xml:lang="pl">Możliwości:</p>
     <p xml:lang="pt">Funcionalidades:</p>
@@ -99,6 +103,7 @@
       <li xml:lang="fi">Tukee XMI-tiedostomuotoa</li>
       <li xml:lang="gl">Formatos compatíbeis: XMI.</li>
       <li xml:lang="it">Formati supportati: XMI</li>
+      <li xml:lang="ko">지원하는 형식: XMI</li>
       <li xml:lang="nl">Ondersteunde formaten: XMI</li>
       <li xml:lang="pl">Obsługiwane formaty: XMI</li>
       <li xml:lang="pt">Formatos suportados: XMI</li>
@@ -117,6 +122,7 @@
       <li xml:lang="fi">Tukee monenlaisia kaavioita: käyttötapauskaavio, 
luokkakaavio, sekvenssikaavio, kommunikointikaavio, tilakaavio, 
aktiviteettikaavio, komponenttikaavio, sijoittelukaavio, käsitekaavio</li>
       <li xml:lang="gl">Permite traballar con varios tipos de diagramas: caso 
de uso, clase, secuencia, comunicación, estado, actividade, compoñente, 
distribución, e entidade-relación.</li>
       <li xml:lang="it">Diversi tipi di diagrammi supportati: casi d'uso, 
classe, sequenza, comunicazione, stato, attività, componente, dispiegamento, 
relazione tra entità</li>
+      <li xml:lang="ko">지원하는 다이어그램 종류: 사용 예시, 클래스, 시퀀스, 통신, 상태, 활동, 구성 요소, 배포, 
엔티티 관계</li>
       <li xml:lang="nl">Verschillende typen diagrammen worden ondersteund: use 
case, klassen, volgorde, communicatie, status, activiteit, component, 
toepassing, relaties tussen eenheden</li>
       <li xml:lang="pl">Kilka obsługiwanych rodzajów diagramów: przypadki 
użycia, klasy, sekwencje, komunikacja, stany, aktywności, składniki, 
zastosowanie, współzależności obiektów</li>
       <li xml:lang="pt">Diversos tipos de diagramas suportados: casos de uso, 
classe, sequência, comunicação, estado, actividade, componente, entrada em 
produção, entidade-associação</li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-16.12.1/umbrello/uml.cpp 
new/umbrello-16.12.3/umbrello/uml.cpp
--- old/umbrello-16.12.1/umbrello/uml.cpp       2017-01-09 20:11:13.000000000 
+0100
+++ new/umbrello-16.12.3/umbrello/uml.cpp       2017-03-04 11:32:12.000000000 
+0100
@@ -235,6 +235,15 @@
 {
     disconnect(m_pZoomInPB, SIGNAL(clicked()), this, SLOT(slotZoomIn()));
     disconnect(m_pZoomSlider, SIGNAL(valueChanged(int)), this, 
SLOT(slotZoomSliderMoved(int)));
+#if QT_VERSION >= 0x050000
+    disconnect(m_tabWidget, SIGNAL(tabCloseRequested(int)), this, 
SLOT(slotCloseDiagram(int)));
+    disconnect(m_tabWidget, SIGNAL(currentChanged(int)), this, 
SLOT(slotTabChanged(int)));
+    disconnect(m_tabWidget, SIGNAL(customContextMenuRequested(QPoint)), this, 
SLOT(slotDiagramPopupMenu(QPoint)));
+#else
+    disconnect(m_tabWidget, SIGNAL(closeRequest(QWidget*)), this, 
SLOT(slotCloseDiagram(QWidget*)));
+    disconnect(m_tabWidget, SIGNAL(currentChanged(QWidget*)), this, 
SLOT(slotTabChanged(QWidget*)));
+    disconnect(m_tabWidget, SIGNAL(contextMenu(QWidget*,QPoint)), m_doc, 
SLOT(slotDiagramPopupMenu(QWidget*,QPoint)));
+#endif
 
     delete m_birdView;
     delete m_clipTimer;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-16.12.1/umbrello/umlmodel/umlobject.cpp 
new/umbrello-16.12.3/umbrello/umlmodel/umlobject.cpp
--- old/umbrello-16.12.1/umbrello/umlmodel/umlobject.cpp        2017-01-09 
20:11:13.000000000 +0100
+++ new/umbrello-16.12.3/umbrello/umlmodel/umlobject.cpp        2017-03-04 
11:32:12.000000000 +0100
@@ -669,7 +669,6 @@
  */
 UMLObject *UMLObject::umlParent() const
 {
-    uCheckPointerAndReturnIfZero(this);
     return dynamic_cast<UMLObject *>(parent());
 }
 
@@ -1228,32 +1227,32 @@
 #include "usecase.h"
 
 
-UMLActor* UMLObject::asUMLActor() { uCheckPointerAndReturnIfZero(this); return 
dynamic_cast<UMLActor*>(this); }
-UMLArtifact* UMLObject::asUMLArtifact() { uCheckPointerAndReturnIfZero(this); 
return dynamic_cast<UMLArtifact*>(this); }
-UMLAssociation* UMLObject::asUMLAssociation() { 
uCheckPointerAndReturnIfZero(this); return dynamic_cast<UMLAssociation*>(this); 
}
-UMLAttribute* UMLObject::asUMLAttribute() { 
uCheckPointerAndReturnIfZero(this); return dynamic_cast<UMLAttribute*>(this); }
-UMLCanvasObject* UMLObject::asUMLCanvasObject() { 
uCheckPointerAndReturnIfZero(this); return 
dynamic_cast<UMLCanvasObject*>(this); }
-UMLCategory* UMLObject::asUMLCategory() { uCheckPointerAndReturnIfZero(this); 
return dynamic_cast<UMLCategory*>(this); }
-UMLCheckConstraint* UMLObject::asUMLCheckConstraint() { 
uCheckPointerAndReturnIfZero(this); return 
dynamic_cast<UMLCheckConstraint*>(this); }
-UMLClassifier* UMLObject::asUMLClassifier() { 
uCheckPointerAndReturnIfZero(this); return dynamic_cast<UMLClassifier*>(this); }
-UMLClassifierListItem *UMLObject::asUMLClassifierListItem() { 
uCheckPointerAndReturnIfZero(this); return 
dynamic_cast<UMLClassifierListItem*>(this); }
-UMLComponent* UMLObject::asUMLComponent() { 
uCheckPointerAndReturnIfZero(this); return dynamic_cast<UMLComponent*>(this); }
-UMLDatatype *UMLObject::asUMLDatatype() { uCheckPointerAndReturnIfZero(this); 
return dynamic_cast<UMLDatatype*>(this); }
-UMLEntity* UMLObject::asUMLEntity() { uCheckPointerAndReturnIfZero(this); 
return dynamic_cast<UMLEntity*>(this); }
-UMLEntityAttribute* UMLObject::asUMLEntityAttribute() { 
uCheckPointerAndReturnIfZero(this); return 
dynamic_cast<UMLEntityAttribute*>(this); }
-UMLEntityConstraint* UMLObject::asUMLEntityConstraint() { 
uCheckPointerAndReturnIfZero(this); return 
dynamic_cast<UMLEntityConstraint*>(this); }
-UMLEnum* UMLObject::asUMLEnum() { uCheckPointerAndReturnIfZero(this); return 
dynamic_cast<UMLEnum*>(this); }
-UMLEnumLiteral* UMLObject::asUMLEnumLiteral() { 
uCheckPointerAndReturnIfZero(this); return dynamic_cast<UMLEnumLiteral*>(this); 
}
-UMLFolder* UMLObject::asUMLFolder() { uCheckPointerAndReturnIfZero(this); 
return dynamic_cast<UMLFolder*>(this); }
-UMLForeignKeyConstraint* UMLObject::asUMLForeignKeyConstraint() { 
uCheckPointerAndReturnIfZero(this); return 
dynamic_cast<UMLForeignKeyConstraint*>(this); }
-UMLNode* UMLObject::asUMLNode() { uCheckPointerAndReturnIfZero(this); return 
dynamic_cast<UMLNode*>(this); }
-UMLObject* UMLObject::asUMLObject() { uCheckPointerAndReturnIfZero(this); 
return dynamic_cast<UMLObject*>(this); }
-UMLOperation* UMLObject::asUMLOperation() { 
uCheckPointerAndReturnIfZero(this); return dynamic_cast<UMLOperation*>(this); }
-UMLPackage* UMLObject::asUMLPackage() { uCheckPointerAndReturnIfZero(this); 
return dynamic_cast<UMLPackage*>(this); }
-UMLPort* UMLObject::asUMLPort() { uCheckPointerAndReturnIfZero(this); return 
dynamic_cast<UMLPort*>(this); }
-UMLRole* UMLObject::asUMLRole() { uCheckPointerAndReturnIfZero(this); return 
dynamic_cast<UMLRole*>(this); }
-UMLStereotype* UMLObject::asUMLStereotype() { 
uCheckPointerAndReturnIfZero(this); return dynamic_cast<UMLStereotype*>(this); }
-UMLTemplate* UMLObject::asUMLTemplate() { uCheckPointerAndReturnIfZero(this); 
return dynamic_cast<UMLTemplate*>(this); }
-UMLUniqueConstraint* UMLObject::asUMLUniqueConstraint() { 
uCheckPointerAndReturnIfZero(this); return 
dynamic_cast<UMLUniqueConstraint*>(this); }
-UMLUseCase* UMLObject::asUMLUseCase() { uCheckPointerAndReturnIfZero(this); 
return dynamic_cast<UMLUseCase*>(this); }
+UMLActor* UMLObject::asUMLActor() { return dynamic_cast<UMLActor*>(this); }
+UMLArtifact* UMLObject::asUMLArtifact() { return 
dynamic_cast<UMLArtifact*>(this); }
+UMLAssociation* UMLObject::asUMLAssociation() { return 
dynamic_cast<UMLAssociation*>(this); }
+UMLAttribute* UMLObject::asUMLAttribute() { return 
dynamic_cast<UMLAttribute*>(this); }
+UMLCanvasObject* UMLObject::asUMLCanvasObject() { return 
dynamic_cast<UMLCanvasObject*>(this); }
+UMLCategory* UMLObject::asUMLCategory() { return 
dynamic_cast<UMLCategory*>(this); }
+UMLCheckConstraint* UMLObject::asUMLCheckConstraint() { return 
dynamic_cast<UMLCheckConstraint*>(this); }
+UMLClassifier* UMLObject::asUMLClassifier() { return 
dynamic_cast<UMLClassifier*>(this); }
+UMLClassifierListItem *UMLObject::asUMLClassifierListItem() { return 
dynamic_cast<UMLClassifierListItem*>(this); }
+UMLComponent* UMLObject::asUMLComponent() { return 
dynamic_cast<UMLComponent*>(this); }
+UMLDatatype *UMLObject::asUMLDatatype() { return 
dynamic_cast<UMLDatatype*>(this); }
+UMLEntity* UMLObject::asUMLEntity() { return dynamic_cast<UMLEntity*>(this); }
+UMLEntityAttribute* UMLObject::asUMLEntityAttribute() { return 
dynamic_cast<UMLEntityAttribute*>(this); }
+UMLEntityConstraint* UMLObject::asUMLEntityConstraint() { return 
dynamic_cast<UMLEntityConstraint*>(this); }
+UMLEnum* UMLObject::asUMLEnum() { return dynamic_cast<UMLEnum*>(this); }
+UMLEnumLiteral* UMLObject::asUMLEnumLiteral() { return 
dynamic_cast<UMLEnumLiteral*>(this); }
+UMLFolder* UMLObject::asUMLFolder() { return dynamic_cast<UMLFolder*>(this); }
+UMLForeignKeyConstraint* UMLObject::asUMLForeignKeyConstraint() { return 
dynamic_cast<UMLForeignKeyConstraint*>(this); }
+UMLNode* UMLObject::asUMLNode() { return dynamic_cast<UMLNode*>(this); }
+UMLObject* UMLObject::asUMLObject() { return dynamic_cast<UMLObject*>(this); }
+UMLOperation* UMLObject::asUMLOperation() { return 
dynamic_cast<UMLOperation*>(this); }
+UMLPackage* UMLObject::asUMLPackage() { return 
dynamic_cast<UMLPackage*>(this); }
+UMLPort* UMLObject::asUMLPort() { return dynamic_cast<UMLPort*>(this); }
+UMLRole* UMLObject::asUMLRole() { return dynamic_cast<UMLRole*>(this); }
+UMLStereotype* UMLObject::asUMLStereotype() { return 
dynamic_cast<UMLStereotype*>(this); }
+UMLTemplate* UMLObject::asUMLTemplate() { return 
dynamic_cast<UMLTemplate*>(this); }
+UMLUniqueConstraint* UMLObject::asUMLUniqueConstraint() { return 
dynamic_cast<UMLUniqueConstraint*>(this); }
+UMLUseCase* UMLObject::asUMLUseCase() { return 
dynamic_cast<UMLUseCase*>(this); }
 


Reply via email to