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); }
