[Uml-devel] KDE/kdesdk/umbrello/umbrello

Ralf Habacker ralf.habacker at gmail.com
Thu Mar 15 19:17:10 UTC 2012


SVN commit 1285790 by habacker:

Only use full node label on dot export.

 M  +32 -9     dotgenerator.cpp  
 M  +5 -1      dotgenerator.h  
 M  +1 -0      layoutgenerator.h  


--- trunk/KDE/kdesdk/umbrello/umbrello/dotgenerator.cpp #1285789:1285790
@@ -124,11 +124,22 @@
  */
 DotGenerator::DotGenerator()
   : m_scale(72),
-    m_usePosition(false)
+    m_usePosition(false),
+    m_useFullNodeLabels(true)
 {
 }
 
 /**
+ * return usage of position attribute
+ *
+ * @return true if position are used
+ */
+bool DotGenerator::usePosition()
+{
+    return m_usePosition;
+}
+
+/**
  * set usage of position attribute in dot file
  *
  * @param state The new state
@@ -139,16 +150,28 @@
 }
 
 /**
- * return usage of position attribute
+ * return usage of full node labels
  *
  * @return true if position are used
  */
-bool DotGenerator::usePosition()
+bool DotGenerator::useFullNodeLabels()
 {
-    return m_usePosition;
+    return m_useFullNodeLabels;
 }
 
 /**
+ * Set usage of full node labels.
+ * When set to true labels are extracted from the
+ * text output generated by the widget's paint method.
+ *
+ * @param state The new state
+ */
+void DotGenerator::setUseFullNodeLabels(bool state)
+{
+    m_useFullNodeLabels = state;
+}
+
+/**
  * Return a list of available templates for a given scene type
  *
  * @param scene The diagram
@@ -296,15 +319,15 @@
         key = "type::" + type;
 
         QString label;
-        if (type == "class") {
-            ClassifierWidget *c = static_cast<ClassifierWidget *>(widget);
+
+        if (!useFullNodeLabels())
+            label = widget->name();
+        else {
             DotPaintDevice d;
             QPainter p(&d);
-            c->paint(p, 0, 0);
+            widget->paint(p, 0, 0);
             label = d.data().join("\\n");
         }
-        else
-            label = widget->name();
     
         if (m_nodeParameters.contains(key))
             params << m_nodeParameters[key].split(',');
--- trunk/KDE/kdesdk/umbrello/umbrello/dotgenerator.h #1285789:1285790
@@ -25,9 +25,12 @@
 public:
     DotGenerator();
 
+    bool usePosition();
     void setUsePosition(bool state);
-    bool usePosition();
 
+    bool useFullNodeLabels();
+    void setUseFullNodeLabels(bool state);
+
     static bool availableConfigFiles(UMLScene *scene, QHash<QString,QString> &configFiles);
     bool readConfigFile(QString diagramType, const QString &variant = "default");
 
@@ -46,6 +49,7 @@
     QPointF m_origin;
     QString m_generator; ///< name of graphviz generator
     bool m_usePosition; ///< use position tag from dot (not used yet)
+    bool m_useFullNodeLabels; ///< use full node labels
 
     friend QDebug operator<<(QDebug out, DotGenerator &c);
 };
--- trunk/KDE/kdesdk/umbrello/umbrello/layoutgenerator.h #1285789:1285790
@@ -96,6 +96,7 @@
     */
     LayoutGenerator()
     {
+        setUseFullNodeLabels(false);
     }
 
     /**




More information about the umbrello-devel mailing list