Hello community,

here is the log from the commit of package umbrello for openSUSE:Factory 
checked in at 2013-12-11 14:36:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/umbrello (Old)
 and      /work/SRC/openSUSE:Factory/.umbrello.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "umbrello"

Changes:
--------
--- /work/SRC/openSUSE:Factory/umbrello/umbrello.changes        2013-12-02 
12:36:16.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.umbrello.new/umbrello.changes   2013-12-11 
14:37:09.000000000 +0100
@@ -1,0 +2,14 @@
+Fri Nov 29 08:47:51 UTC 2013 - [email protected]
+
+- Update to 4.11.97
+   * KDE 4.12 RC 1 release
+   * See http://www.kde.org/announcements/announce-4.12-rc.php
+
+-------------------------------------------------------------------
+Sat Nov 23 23:01:56 UTC 2013 - [email protected]
+
+- Update to 4.11.95
+   * KDE 4.12 Beta 3 release
+   * See http://www.kde.org/announcements/announce-4.12-beta3.php
+
+-------------------------------------------------------------------

Old:
----
  umbrello-4.11.90.tar.xz

New:
----
  umbrello-4.11.97.tar.xz

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

Other differences:
------------------
++++++ umbrello.spec ++++++
--- /var/tmp/diff_new_pack.sp9hg8/_old  2013-12-11 14:37:09.000000000 +0100
+++ /var/tmp/diff_new_pack.sp9hg8/_new  2013-12-11 14:37:09.000000000 +0100
@@ -24,7 +24,7 @@
 License:        GPL-2.0 and GFDL-1.2
 Group:          Development/Tools/Other
 Url:            http://www.kde.org/
-Version:        4.11.90
+Version:        4.11.97
 Release:        0
 Source0:        %{name}-%{version}.tar.xz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ umbrello-4.11.90.tar.xz -> umbrello-4.11.97.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-4.11.90/CMakeLists.txt 
new/umbrello-4.11.97/CMakeLists.txt
--- old/umbrello-4.11.90/CMakeLists.txt 2013-11-13 13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/CMakeLists.txt 2013-11-26 11:15:06.000000000 +0100
@@ -8,7 +8,7 @@
 
 set(VERSION_MAJOR "2")
 set(VERSION_MINOR "11")
-set(VERSION_PATCH "90")
+set(VERSION_PATCH "97")
 
 # set default umbrello version
 # umbrello version could be overriden by cmake command line using 
-DUMBRELLO_VERSION_STRING=major.minor.patch
@@ -17,6 +17,7 @@
     if(EXISTS ${CMAKE_SOURCE_DIR}/.git)
         execute_process(
             COMMAND git rev-parse --short HEAD
+            WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
             OUTPUT_VARIABLE _hash
         )
         string(REPLACE "\n" "" hash ${_hash})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-4.11.90/umbrello/clipboard/umlclipboard.cpp 
new/umbrello-4.11.97/umbrello/clipboard/umlclipboard.cpp
--- old/umbrello-4.11.90/umbrello/clipboard/umlclipboard.cpp    2013-11-13 
13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/clipboard/umlclipboard.cpp    2013-11-26 
11:15:06.000000000 +0100
@@ -93,7 +93,15 @@
         // example when using cut-paste or pasting to another Umbrello
         // instance.
         foreach (WidgetBase* widget, m_WidgetList) {
-            m_ObjectList.append(widget->umlObject());
+            if (widget->umlObject() != 0) {
+                m_ObjectList.append(widget->umlObject());
+            }
+        }
+
+        foreach (WidgetBase* widget, m_AssociationList) {
+            if (widget->umlObject() != 0) {
+                m_ObjectList.append(widget->umlObject());
+            }
         }
     } else { //if the copy action is being performed from the ListView
         UMLListViewItemList itemsSelected = listView->selectedItems();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-4.11.90/umbrello/clipboard/umldragdata.cpp 
new/umbrello-4.11.97/umbrello/clipboard/umldragdata.cpp
--- old/umbrello-4.11.90/umbrello/clipboard/umldragdata.cpp     2013-11-13 
13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/clipboard/umldragdata.cpp     2013-11-26 
11:15:06.000000000 +0100
@@ -640,9 +640,6 @@
     while (!element.isNull()) {
         UMLObject* pObject = 0;
         QString type = element.tagName();
-        //FIXME associations don't load
-        if (type == "UML:Association")
-            continue;
 
         UMLDoc* doc = UMLApp::app()->document();
         Uml::ID::Type elmId = Uml::ID::fromString(element.attribute("xmi.id"));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-4.11.90/umbrello/codeimport/adaimport.cpp 
new/umbrello-4.11.97/umbrello/codeimport/adaimport.cpp
--- old/umbrello-4.11.90/umbrello/codeimport/adaimport.cpp      2013-11-13 
13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/codeimport/adaimport.cpp      2013-11-26 
11:15:06.000000000 +0100
@@ -257,7 +257,8 @@
                 umldoc->addAssociation(assoc);
                 skipStmt();
             } else {
-                m_scope[++m_scopeIndex] = static_cast<UMLPackage*>(ns);
+                m_scope.append(static_cast<UMLPackage*>(ns));
+                m_scopeIndex = m_scope.size() - 1;
             }
         } else if (m_source[m_srcIndex] == "renames") {
             m_renaming[name] = advance();
@@ -441,7 +442,8 @@
                     uError() << "end: expecting " << scopeName << ", found "
                               << m_source[m_srcIndex];
             }
-            m_scopeIndex--;
+            m_scope.takeLast();
+            m_scopeIndex = m_scope.size() - 1;
             m_currentAccess = Uml::Visibility::Public;   // @todo make a stack 
for this
         } else {
             uError() << "importAda: too many \"end\"";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-4.11.90/umbrello/codeimport/nativeimportbase.cpp 
new/umbrello-4.11.97/umbrello/codeimport/nativeimportbase.cpp
--- old/umbrello-4.11.90/umbrello/codeimport/nativeimportbase.cpp       
2013-11-13 13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/codeimport/nativeimportbase.cpp       
2013-11-26 11:15:06.000000000 +0100
@@ -145,7 +145,7 @@
     while (m_srcIndex < m_source.count() - 1) {
         m_srcIndex++;
         if (m_source[m_srcIndex].startsWith(m_singleLineCommentIntro))
-            m_comment += m_source[m_srcIndex];
+            m_comment += 
m_source[m_srcIndex].mid(m_singleLineCommentIntro.length());
         else
             break;
     }
@@ -213,11 +213,11 @@
             delimIntroLen = m_multiLineAltCommentIntro.length();
     }
     if (pos != -1) {
-        int endpos = line.indexOf(m_multiLineCommentEnd);
+        int endpos = line.indexOf(m_multiLineCommentEnd, pos + delimIntroLen);
         if (endpos != -1) {
             delimEndLen = m_multiLineCommentEnd.length();
         } else if (!m_multiLineAltCommentEnd.isEmpty()) {
-            endpos = line.indexOf(m_multiLineAltCommentEnd);
+            endpos = line.indexOf(m_multiLineAltCommentEnd, pos + 
delimIntroLen);
             if (endpos != -1)
                 delimEndLen = m_multiLineAltCommentEnd.length();
         }
@@ -413,7 +413,7 @@
     m_klass = NULL;
     m_currentAccess = Uml::Visibility::Public;
     m_scopeIndex = 0;
-    m_scope[0] = NULL;  // index 0 is reserved for global scope
+    m_scope.append(NULL);  // index 0 is reserved for global scope
     const int srcLength = m_source.count();
     for (m_srcIndex = 0; m_srcIndex < srcLength; ++m_srcIndex) {
         const QString& firstToken = m_source[m_srcIndex];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-4.11.90/umbrello/codeimport/nativeimportbase.h 
new/umbrello-4.11.97/umbrello/codeimport/nativeimportbase.h
--- old/umbrello-4.11.90/umbrello/codeimport/nativeimportbase.h 2013-11-13 
13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/codeimport/nativeimportbase.h 2013-11-26 
11:15:06.000000000 +0100
@@ -88,7 +88,7 @@
     QString                m_singleLineCommentIntro;  ///< start token of a 
single line comment
     QStringList            m_source;         ///< the scanned lexemes
     int                    m_srcIndex;       ///< used for indexing m_source
-    UMLPackage            *m_scope[32];      ///< stack of scopes for use by 
the specific importer
+    QList<UMLPackage *>    m_scope;          ///< stack of scopes for use by 
the specific importer
     uint                   m_scopeIndex;     ///< indexes m_scope, index 0 is 
reserved for global scope
     UMLClassifier         *m_klass;          ///< class currently being 
processed
     Uml::Visibility::Enum  m_currentAccess;  ///< current access 
(public/protected/private)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-4.11.90/umbrello/codeimport/pythonimport.cpp 
new/umbrello-4.11.97/umbrello/codeimport/pythonimport.cpp
--- old/umbrello-4.11.90/umbrello/codeimport/pythonimport.cpp   2013-11-13 
13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/codeimport/pythonimport.cpp   2013-11-26 
11:15:06.000000000 +0100
@@ -103,6 +103,12 @@
             m_srcIndex++;
         }
     }
+
+    if (m_braceWasOpened && m_srcIndentIndex == 0) {
+        m_source.append("}");
+        m_srcIndex++;
+    }
+
     if (line.endsWith(':')) {
         line.replace(QRegExp(":$"), "{");
         m_braceWasOpened = true;
@@ -211,7 +217,8 @@
         const QString& name = advance();
         UMLObject *ns = Import_Utils::createUMLObject(UMLObject::ot_Class, 
name,
                                                       m_scope[m_scopeIndex], 
m_comment);
-        m_scope[++m_scopeIndex] = m_klass = static_cast<UMLClassifier*>(ns);
+        m_scope.append(m_klass = static_cast<UMLClassifier*>(ns));
+        m_scopeIndex = m_scope.size() - 1;
         m_comment.clear();
         if (advance() == "(") {
             while (m_srcIndex < srcLength - 1 && advance() != ")") {
@@ -233,6 +240,12 @@
             skipBody();
             return true;
         }
+
+        if (!m_klass->hasDoc() && !m_comment.isEmpty()) {
+            m_klass->setDoc(m_comment);
+            m_comment = "";
+        }
+
         const QString& name = advance();
         // operation
         UMLOperation *op = Import_Utils::makeOperation(m_klass, name);
@@ -251,13 +264,20 @@
                                    false /*isStatic*/, false /*isAbstract*/, 
false /*isFriend*/,
                                    false /*isConstructor*/, m_comment);
         op->setSourceCode(skipBody());
+
+        if (!op->hasDoc() && !m_comment.isEmpty()) {
+            op->setDoc(m_comment);
+            m_comment = "";
+        }
         log("def " + name);
 
         return true;
     }
     if (keyword == "}") {
-        if (m_scopeIndex)
-            m_klass = dynamic_cast<UMLClassifier*>(m_scope[--m_scopeIndex]);
+        if (m_scopeIndex) {
+            m_klass = dynamic_cast<UMLClassifier*>(m_scope.takeLast());
+            m_scopeIndex = m_scope.size() - 1;
+        }
         else
             uError() << "parsing: too many }";
         return true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-4.11.90/umbrello/layouts/activity-export.desktop 
new/umbrello-4.11.97/umbrello/layouts/activity-export.desktop
--- old/umbrello-4.11.90/umbrello/layouts/activity-export.desktop       
2013-11-13 13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/layouts/activity-export.desktop       
2013-11-26 11:15:06.000000000 +0100
@@ -26,6 +26,7 @@
 Name[pt_BR]=Exportar leiaute
 Name[ru]=Шаблон экспорта
 Name[sk]=Exportovať rozloženie
+Name[sl]=Izvozi postavitev
 Name[sr]=Извези распоред
 Name[sr@ijekavian]=Извези распоред
 Name[sr@ijekavianlatin]=Izvezi raspored
@@ -59,6 +60,7 @@
 Comment[pt_BR]=Exportar leiaute para diagramas de atividades
 Comment[ru]=Шаблон экспорта для диаграмм деятельности
 Comment[sk]=Exportovať rozloženie pre diagramy aktivít
+Comment[sl]=Izvozi postavitev za diagrame dejavnosti
 Comment[sr]=Извези распоред за дијаграме активности
 Comment[sr@ijekavian]=Извези распоред за дијаграме активности
 Comment[sr@ijekavianlatin]=Izvezi raspored za dijagrame aktivnosti
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-4.11.90/umbrello/layouts/class-export.desktop 
new/umbrello-4.11.97/umbrello/layouts/class-export.desktop
--- old/umbrello-4.11.90/umbrello/layouts/class-export.desktop  2013-11-13 
13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/layouts/class-export.desktop  2013-11-26 
11:15:06.000000000 +0100
@@ -26,6 +26,7 @@
 Name[pt_BR]=Exportar leiaute
 Name[ru]=Шаблон экспорта
 Name[sk]=Exportovať rozloženie
+Name[sl]=Izvozi postavitev
 Name[sr]=Извези распоред
 Name[sr@ijekavian]=Извези распоред
 Name[sr@ijekavianlatin]=Izvezi raspored
@@ -59,6 +60,7 @@
 Comment[pt_BR]=Exportar leiaute para diagramas de classe
 Comment[ru]=Шаблон экспорта для диаграмм классов
 Comment[sk]=Exportovať rozloženie pre diagramy tried
+Comment[sl]=Izvozi postavitev za diagrame razredov
 Comment[sr]=Извези распоред за дијаграме класа
 Comment[sr@ijekavian]=Извези распоред за дијаграме класа
 Comment[sr@ijekavianlatin]=Izvezi raspored za dijagrame klasa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-4.11.90/umbrello/layouts/class-horizontal.desktop 
new/umbrello-4.11.97/umbrello/layouts/class-horizontal.desktop
--- old/umbrello-4.11.90/umbrello/layouts/class-horizontal.desktop      
2013-11-13 13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/layouts/class-horizontal.desktop      
2013-11-26 11:15:06.000000000 +0100
@@ -25,6 +25,7 @@
 Name[pt_BR]=Leiaute horizontal
 Name[ru]=Горизонтальный шаблон
 Name[sk]=Vodorovné rozloženie
+Name[sl]=Vodoravna postavitev
 Name[sr]=Водоравни распоред
 Name[sr@ijekavian]=Водоравни распоред
 Name[sr@ijekavianlatin]=Vodoravni raspored
@@ -57,6 +58,7 @@
 Comment[pt_BR]=Leiaute que representa os itens na horizontal
 Comment[ru]=Шаблон с расположением по горизонтали
 Comment[sk]=Rozloženie, ktoré renderuje vodorovne
+Comment[sl]=Postavitev, ki se izriše vodoravno
 Comment[sr]=Распоред који исцртава водоравно
 Comment[sr@ijekavian]=Распоред који исцртава водоравно
 Comment[sr@ijekavianlatin]=Raspored koji iscrtava vodoravno
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-4.11.90/umbrello/layouts/class-vertical.desktop 
new/umbrello-4.11.97/umbrello/layouts/class-vertical.desktop
--- old/umbrello-4.11.90/umbrello/layouts/class-vertical.desktop        
2013-11-13 13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/layouts/class-vertical.desktop        
2013-11-26 11:15:06.000000000 +0100
@@ -26,6 +26,7 @@
 Name[pt_BR]=Leiaute vertical
 Name[ru]=Вертикальный шаблон
 Name[sk]=Zvislé rozloženie
+Name[sl]=Navpična postavitev
 Name[sr]=Усправни распоред
 Name[sr@ijekavian]=Усправни распоред
 Name[sr@ijekavianlatin]=Uspravni raspored
@@ -58,6 +59,7 @@
 Comment[pt_BR]=Leiaute que representa os itens na vertical
 Comment[ru]=Шаблон с расположением по вертикали
 Comment[sk]=Rozloženie, ktoré renderuje zvislo
+Comment[sl]=Postavitev, ki se izriše navpično
 Comment[sr]=Распоред који исцртава усправно
 Comment[sr@ijekavian]=Распоред који исцртава усправно
 Comment[sr@ijekavianlatin]=Raspored koji iscrtava uspravno
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-4.11.90/umbrello/layouts/state-export.desktop 
new/umbrello-4.11.97/umbrello/layouts/state-export.desktop
--- old/umbrello-4.11.90/umbrello/layouts/state-export.desktop  2013-11-13 
13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/layouts/state-export.desktop  2013-11-26 
11:15:06.000000000 +0100
@@ -26,6 +26,7 @@
 Name[pt_BR]=Exportar leiaute
 Name[ru]=Шаблон экспорта
 Name[sk]=Exportovať rozloženie
+Name[sl]=Izvozi postavitev
 Name[sr]=Извези распоред
 Name[sr@ijekavian]=Извези распоред
 Name[sr@ijekavianlatin]=Izvezi raspored
@@ -58,6 +59,7 @@
 Comment[pt_BR]=Exportar leiaute para diagramas de estado
 Comment[ru]=Шаблон экспорта для диаграмм состояний
 Comment[sk]=Exportovať rozloženie pre stavové diagramy
+Comment[sl]=Izvozi postavitev za diagrame stanja
 Comment[sr]=Извези распоред за дијаграме стања
 Comment[sr@ijekavian]=Извези распоред за дијаграме стања
 Comment[sr@ijekavianlatin]=Izvezi raspored za dijagrame stanja
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-4.11.90/umbrello/layouts/state-vertical.desktop 
new/umbrello-4.11.97/umbrello/layouts/state-vertical.desktop
--- old/umbrello-4.11.90/umbrello/layouts/state-vertical.desktop        
2013-11-13 13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/layouts/state-vertical.desktop        
2013-11-26 11:15:06.000000000 +0100
@@ -26,6 +26,7 @@
 Name[pt_BR]=Leiaute vertical
 Name[ru]=Вертикальный шаблон
 Name[sk]=Zvislé rozloženie
+Name[sl]=Navpična postavitev
 Name[sr]=Усправни распоред
 Name[sr@ijekavian]=Усправни распоред
 Name[sr@ijekavianlatin]=Uspravni raspored
@@ -58,6 +59,7 @@
 Comment[pt_BR]=Leiaute que representa os itens na vertical
 Comment[ru]=Шаблон с расположением по вертикали
 Comment[sk]=Rozloženie, ktoré renderuje zvislo
+Comment[sl]=Postavitev, ki se izriše navpično
 Comment[sr]=Распоред који исцртава усправно
 Comment[sr@ijekavian]=Распоред који исцртава усправно
 Comment[sr@ijekavianlatin]=Raspored koji iscrtava uspravno
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-4.11.90/umbrello/layouts/usecase-default.desktop 
new/umbrello-4.11.97/umbrello/layouts/usecase-default.desktop
--- old/umbrello-4.11.90/umbrello/layouts/usecase-default.desktop       
2013-11-13 13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/layouts/usecase-default.desktop       
2013-11-26 11:15:06.000000000 +0100
@@ -22,6 +22,7 @@
 Name[pt_BR]=Leiaute padrão de casos de uso
 Name[ru]=Стандартный шаблон диаграммы прецедентов
 Name[sk]=Predvolené rozloženie Usecase
+Name[sl]=Privzeta postavitev primera uporabe
 Name[sr]=Подразумевани распоред за случај употребе
 Name[sr@ijekavian]=Подразумевани распоред за случај употребе
 Name[sr@ijekavianlatin]=Podrazumevani raspored za slučaj upotrebe
@@ -55,6 +56,7 @@
 Comment[pt_BR]=Leiaute padrão de casos de uso
 Comment[ru]=Стандартный шаблон диаграммы прецедентов
 Comment[sk]=Predvolené rozloženie Usecase
+Comment[sl]=Privzeta postavitev primera uporabe
 Comment[sr]=Подразумевани распоред за случај употребе
 Comment[sr@ijekavian]=Подразумевани распоред за случај употребе
 Comment[sr@ijekavianlatin]=Podrazumevani raspored za slučaj upotrebe
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-4.11.90/umbrello/model_utils.cpp 
new/umbrello-4.11.97/umbrello/model_utils.cpp
--- old/umbrello-4.11.90/umbrello/model_utils.cpp       2013-11-13 
13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/model_utils.cpp       2013-11-26 
11:15:06.000000000 +0100
@@ -972,7 +972,9 @@
         return true;
     return (type == UMLListViewItem::lvt_Package ||
             type == UMLListViewItem::lvt_Subsystem ||
-            type == UMLListViewItem::lvt_Component);
+            type == UMLListViewItem::lvt_Component ||
+            type == UMLListViewItem::lvt_Class ||
+            type == UMLListViewItem::lvt_Interface);
 }
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-4.11.90/umbrello/refactoring/refactoringassistant.cpp 
new/umbrello-4.11.97/umbrello/refactoring/refactoringassistant.cpp
--- old/umbrello-4.11.90/umbrello/refactoring/refactoringassistant.cpp  
2013-11-13 13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/refactoring/refactoringassistant.cpp  
2013-11-26 11:15:06.000000000 +0100
@@ -85,6 +85,7 @@
     }
     DEBUG(DBG_SRC) << "called for " << m_umlObject->name();
 
+    m_alreadySeen.clear();
     addClassifier(obj, 0, true, true, true);
     QTreeWidgetItem *item = topLevelItem(0);
     item->setExpanded(true);
@@ -646,6 +647,7 @@
         classifierItem = new QTreeWidgetItem(this, 
QStringList(classifier->name()));
         m_umlObjectMap[classifierItem] = classifier;
     }
+    m_alreadySeen << classifier;
 
     connect(classifier, SIGNAL(modified()),
             this, SLOT(objectModified()));
@@ -692,6 +694,10 @@
             item->setExpanded(true);
             m_umlObjectMap[item] = cl;
             if (recurse) {
+                if (m_alreadySeen.contains(cl)) {
+                    DEBUG(DBG_SRC) << "super class already seen" << cl;
+                    continue;
+                }
                 addClassifier(cl, item, true, false, true);
             }
         }
@@ -707,6 +713,10 @@
             item->setExpanded(true);
             m_umlObjectMap[item] = d;
             if (recurse) {
+                if (m_alreadySeen.contains(d)) {
+                    DEBUG(DBG_SRC) << "derived class already seen" << d;
+                    continue;
+                }
                 addClassifier(d, item, false, true, true);
             }
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/umbrello-4.11.90/umbrello/refactoring/refactoringassistant.h 
new/umbrello-4.11.97/umbrello/refactoring/refactoringassistant.h
--- old/umbrello-4.11.90/umbrello/refactoring/refactoringassistant.h    
2013-11-13 13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/refactoring/refactoringassistant.h    
2013-11-26 11:15:06.000000000 +0100
@@ -79,6 +79,7 @@
     UMLDoc *                            m_doc;
     QMenu *                             m_menu;
     QMap<QTreeWidgetItem*, UMLObject*>  m_umlObjectMap;
+    QSet<UMLClassifier *>               m_alreadySeen; ///< recursive guard
 
 private slots:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-4.11.90/umbrello/uml.cpp 
new/umbrello-4.11.97/umbrello/uml.cpp
--- old/umbrello-4.11.90/umbrello/uml.cpp       2013-11-13 13:06:45.000000000 
+0100
+++ new/umbrello-4.11.97/umbrello/uml.cpp       2013-11-26 11:15:06.000000000 
+0100
@@ -149,6 +149,7 @@
     s_instance = this;
     m_doc->init();
     m_printer->setFullPage(true);
+    layout()->setSizeConstraint(QLayout::SetNoConstraint);
 
     readOptionState();
     initActions();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-4.11.90/umbrello/umlscene.cpp 
new/umbrello-4.11.97/umbrello/umlscene.cpp
--- old/umbrello-4.11.90/umbrello/umlscene.cpp  2013-11-13 13:06:45.000000000 
+0100
+++ new/umbrello-4.11.97/umbrello/umlscene.cpp  2013-11-26 11:15:06.000000000 
+0100
@@ -1479,11 +1479,24 @@
 }
 
 /**
+ * resize selected widgets
+ */
+void UMLScene::resizeSelection()
+{
+    if (selectedCount() == 0)
+        return;
+    foreach(UMLWidget *w, selectedWidgets()) {
+        w->resize();
+    }
+    m_doc->setModified();
+}
+
+/**
  * Selects all widgets
  */
 void UMLScene::selectAll()
 {
-    selectWidgets(0, 0, width(), height());
+    selectWidgets(sceneRect().left(), sceneRect().top(), sceneRect().right(), 
sceneRect().bottom());
 }
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-4.11.90/umbrello/umlscene.h 
new/umbrello-4.11.97/umbrello/umlscene.h
--- old/umbrello-4.11.90/umbrello/umlscene.h    2013-11-13 13:06:45.000000000 
+0100
+++ new/umbrello-4.11.97/umbrello/umlscene.h    2013-11-26 11:15:06.000000000 
+0100
@@ -193,6 +193,7 @@
     void selectionToggleShow(int sel);
 
     void deleteSelection();
+    void resizeSelection();
 
     void selectAll();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-4.11.90/umbrello/widgets/umlwidget.cpp 
new/umbrello-4.11.97/umbrello/widgets/umlwidget.cpp
--- old/umbrello-4.11.90/umbrello/widgets/umlwidget.cpp 2013-11-13 
13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/widgets/umlwidget.cpp 2013-11-26 
11:15:06.000000000 +0100
@@ -104,7 +104,6 @@
     m_usesDiagramUseFillColor = other.m_usesDiagramUseFillColor;
     m_fillColor = other.m_fillColor;
     m_Assocs = other.m_Assocs;
-    m_Font = other.m_Font;
     m_isInstance = other.m_isInstance;
     m_instanceName = other.m_instanceName;
     m_instanceName = other.m_instanceName;
@@ -171,8 +170,6 @@
         return false;
     if(m_nId != other.m_nId)
         return false;
-    if(m_Font != other.m_Font)
-        return false;
     if(m_nX  != other.m_nX)
         return false;
     if(m_nY != other.m_nY)
@@ -657,8 +654,6 @@
         m_usesDiagramUseFillColor = true;
         const Settings::OptionState& optionState = m_scene->optionState();
         m_fillColor = optionState.uiState.fillColor;
-        // FIXME: using setFont() here let umbrello hang probably because of 
doc->loading() not set. 
-        m_Font = optionState.uiState.font;
         m_showStereotype = optionState.classState.showStereoType;
     } else {
         uError() << "SERIOUS PROBLEM - m_scene is NULL";
@@ -722,8 +717,7 @@
         break;
 
     case ListPopupMenu::mt_Resize:
-        resize();
-        m_doc->setModified();
+        umlScene()->resizeSelection();
         break;
 
     default:
@@ -902,7 +896,7 @@
             return false;
         }
     }
-    setFont(m_Font);
+    setFont(m_font);
     setSize(width(), height());
     m_activated = true;
     updateGeometry();
@@ -1519,8 +1513,8 @@
  */
 void UMLWidget::setDefaultFontMetrics(UMLWidget::FontType fontType)
 {
-    setupFontType(m_Font, fontType);
-    setFontMetrics(fontType, QFontMetrics(m_Font));
+    setupFontType(m_font, fontType);
+    setFontMetrics(fontType, QFontMetrics(m_font));
 }
 
 void UMLWidget::setupFontType(QFont &font, UMLWidget::FontType fontType)
@@ -1615,8 +1609,8 @@
  */
 void UMLWidget::setDefaultFontMetrics(UMLWidget::FontType fontType, QPainter 
&painter)
 {
-    setupFontType(m_Font, fontType);
-    painter.setFont(m_Font);
+    setupFontType(m_font, fontType);
+    painter.setFont(m_font);
     setFontMetrics(fontType, painter.fontMetrics());
 }
 
@@ -1642,21 +1636,13 @@
 }
 
 /**
- *  Returns the font the widget is to use.
- */
-QFont UMLWidget::font() const
-{
-    return m_Font;
-}
-
-/**
  * Sets the font the widget is to use.
  *
  * @param font Font to be set.
  */
-void UMLWidget::setFont(QFont font)
+void UMLWidget::setFont(const QFont &font)
 {
-    m_Font = font;
+    WidgetBase::setFont(font);
     forceUpdateFontMetrics(0);
     if (m_doc->loading())
         return;
@@ -1728,7 +1714,6 @@
     */
     WidgetBase::saveToXMI(qDoc, qElement);
     qElement.setAttribute("xmi.id", Uml::ID::toString(id()));
-    qElement.setAttribute("font", m_Font.toString());
     qElement.setAttribute("x", x());
     qElement.setAttribute("y", y());
     qElement.setAttribute("width", width());
@@ -1742,25 +1727,15 @@
 
 bool UMLWidget::loadFromXMI(QDomElement & qElement)
 {
-    WidgetBase::loadFromXMI(qElement);
     QString id = qElement.attribute("xmi.id", "-1");
-    QString font = qElement.attribute("font", "");
+    m_nId = Uml::ID::fromString(id);
+
+    WidgetBase::loadFromXMI(qElement);
     QString x = qElement.attribute("x", "0");
     QString y = qElement.attribute("y", "0");
     QString h = qElement.attribute("height", "0");
     QString w = qElement.attribute("width", "0");
 
-    m_nId = Uml::ID::fromString(id);
-
-    if (!font.isEmpty()) {
-        QFont newFont;
-        newFont.fromString(font);
-        setFont(newFont);
-    } else {
-        uWarning() << "Using default font " << m_Font.toString()
-                   << " for widget with xmi.id " << Uml::ID::toString(m_nId);
-    }
-
     setSize(w.toFloat(), h.toFloat());
     setX(x.toFloat());
     setY(y.toFloat());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-4.11.90/umbrello/widgets/umlwidget.h 
new/umbrello-4.11.97/umbrello/widgets/umlwidget.h
--- old/umbrello-4.11.90/umbrello/widgets/umlwidget.h   2013-11-13 
13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/widgets/umlwidget.h   2013-11-26 
11:15:06.000000000 +0100
@@ -101,8 +101,7 @@
     void setPenFromSettings(QPainter &p);
     void setPenFromSettings(QPainter *p);
 
-    virtual QFont font() const;
-    virtual void setFont(QFont font);
+    virtual void setFont(const QFont &font);
 
     /**
      * Returns whether we triggered the update of position movement.
@@ -289,8 +288,6 @@
     /// A list of AssociationWidgets between the UMLWidget and other 
UMLWidgets in the diagram
     AssociationWidgetList m_Assocs;
 
-    QFont m_Font;   ///< the font the widget will use
-
     QString m_instanceName;  ///< instance name (used if on a deployment 
diagram)
     bool m_isInstance;       ///< holds whether this widget is a component 
instance (i.e. on a deployment diagram)
     bool m_showStereotype;   ///< should the stereotype be displayed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-4.11.90/umbrello/widgets/widgetbase.cpp 
new/umbrello-4.11.97/umbrello/widgets/widgetbase.cpp
--- old/umbrello-4.11.90/umbrello/widgets/widgetbase.cpp        2013-11-13 
13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/widgets/widgetbase.cpp        2013-11-26 
11:15:06.000000000 +0100
@@ -57,6 +57,7 @@
         m_textColor = optionState.uiState.textColor;
         m_lineColor = optionState.uiState.lineColor;
         m_lineWidth  = optionState.uiState.lineWidth;
+        m_font = optionState.uiState.font;
     } else {
         uError() << "WidgetBase constructor: SERIOUS PROBLEM - m_scene is 
NULL";
     }
@@ -488,6 +489,7 @@
     } else {
         qElement.setAttribute("fillcolor", m_fillColor.name());
     }
+    qElement.setAttribute("font", m_font.toString());
 }
 
 /**
@@ -553,6 +555,16 @@
     usesDiagramUseFillColor = qElement.attribute("usesdiagramusefillcolor", 
usesDiagramUseFillColor);
     m_usesDiagramUseFillColor = (bool)usesDiagramUseFillColor.toInt();
 
+    QString font = qElement.attribute("font", "");
+    if (!font.isEmpty()) {
+        QFont newFont;
+        newFont.fromString(font);
+        setFont(newFont);
+    } else {
+        uWarning() << "Using default font " << m_font.toString()
+                   << " for widget with xmi.id " << Uml::ID::toString(m_nId);
+    }
+
     return true;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umbrello-4.11.90/umbrello/widgets/widgetbase.h 
new/umbrello-4.11.97/umbrello/widgets/widgetbase.h
--- old/umbrello-4.11.90/umbrello/widgets/widgetbase.h  2013-11-13 
13:06:45.000000000 +0100
+++ new/umbrello-4.11.97/umbrello/widgets/widgetbase.h  2013-11-26 
11:15:06.000000000 +0100
@@ -125,8 +125,8 @@
     bool usesDiagramUseFillColor() const;
     void setUsesDiagramUseFillColor(bool state);
 
-    QFont font() const;
-    void setFont(const QFont& font);
+    virtual QFont font() const;
+    virtual void setFont(const QFont& font);
 
     virtual void showPropertiesDialog();
 

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to