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

Emmanuel Lepage Vallee elv1313 at gmail.com
Sun Jun 26 22:18:32 UTC 2011


SVN commit 1238442 by lepagevalleeemmanuel:

Add some previously hardcoded configuration options to the config dialog


 M  +97 -34    dialogs/settingsdlg.cpp  
 M  +11 -9     dialogs/settingsdlg.h  
 M  +0 -1      uml.cpp  
 M  +1 -1      umlview.cpp  
 M  +6 -3      umlviewcanvas.cpp  
 M  +2 -1      umlviewcanvas.h  


--- trunk/KDE/kdesdk/umbrello/umbrello/dialogs/settingsdlg.cpp #1238441:1238442
@@ -18,15 +18,10 @@
 #include "debug_utils.h"
 #include "icon_utils.h"
 
-// kde includes
-#include <kvbox.h>
-#include <klocale.h>
-#include <kfiledialog.h>
+//TODO don't do that, but it's better than hardcoded in the functions body
+#define FILL_COLOR QColor(255, 255, 192) 
+#define LINK_COLOR Qt::red
 
-// qt includes
-#include <QtGui/QLayout>
-#include <QtGui/QLabel>
-#include <QtGui/QGridLayout>
 
 SettingsDlg::SettingsDlg( QWidget * parent, Settings::OptionState *state )
         : KPageDialog( parent)
@@ -58,7 +53,9 @@
 void SettingsDlg::setupUIPage()
 {
     //setup UI page
-    KVBox * page = new KVBox();
+    QWidget * page = new QWidget();
+    QVBoxLayout* uiPageLayout = new QVBoxLayout(page);
+    
     pageUserInterface = new KPageWidgetItem( page,i18n("User Interface"));
     pageUserInterface->setHeader( i18n("User Interface Settings") );
     pageUserInterface->setIcon( Icon_Utils::DesktopIcon(Icon_Utils::it_Properties_UserInterface) );
@@ -68,48 +65,76 @@
     QGridLayout * colorLayout = new QGridLayout( m_UiWidgets.colorGB );
     colorLayout->setSpacing( spacingHint() );
     colorLayout->setMargin( fontMetrics().height() );
+    uiPageLayout->addWidget(m_UiWidgets.colorGB);
 
-    m_UiWidgets.lineColorL = new QLabel( i18n("Line color:"), m_UiWidgets.colorGB );
-    colorLayout->addWidget( m_UiWidgets.lineColorL, 0, 0 );
+    uiPageLayout->addItem(new QSpacerItem(0, 20, QSizePolicy::Minimum, QSizePolicy::Expanding));
 
+    m_UiWidgets.lineColorCB = new QCheckBox( i18n("Custom line color:"), m_UiWidgets.colorGB );
+    colorLayout->addWidget( m_UiWidgets.lineColorCB, 0, 0 );
+
     m_UiWidgets.lineColorB = new KColorButton( m_pOptionState->uiState.lineColor ,m_UiWidgets.colorGB);
     //m_UiWidgets.lineColorB->setObjectName( m_UiWidgets.colorGB );
     colorLayout->addWidget( m_UiWidgets.lineColorB, 0, 1 );
 
-    m_UiWidgets.lineDefaultB = new QPushButton( i18n("D&efault Color"), m_UiWidgets.colorGB );
-    colorLayout->addWidget( m_UiWidgets.lineDefaultB, 0, 2 );
 
-    m_UiWidgets.fillColorL = new QLabel( i18n("Fill color:"), m_UiWidgets.colorGB );
-    colorLayout->addWidget( m_UiWidgets.fillColorL, 1, 0 );
+//     m_UiWidgets.lineDefaultB = new QPushButton( i18n("D&efault Color"), m_UiWidgets.colorGB );
+//     colorLayout->addWidget( m_UiWidgets.lineDefaultB, 0, 2 );
 
+    m_UiWidgets.fillColorCB = new QCheckBox( i18n("Custom fill color:"), m_UiWidgets.colorGB );
+    colorLayout->addWidget( m_UiWidgets.fillColorCB, 1, 0 );
+    
+
     m_UiWidgets.fillColorB = new KColorButton( m_pOptionState->uiState.fillColor,m_UiWidgets.colorGB  );
-    //m_UiWidgets.fillColorB->setObjectName( m_UiWidgets.colorGB );
     colorLayout->addWidget( m_UiWidgets.fillColorB, 1, 1 );
 
-    m_UiWidgets.fillDefaultB = new QPushButton( i18n("De&fault Color"), m_UiWidgets.colorGB );
-    colorLayout->addWidget( m_UiWidgets.fillDefaultB, 1, 2 );
+    m_UiWidgets.gridColorB = new KColorButton( m_pOptionState->uiState.gridDotColor,m_UiWidgets.colorGB  );
+    colorLayout->addWidget(m_UiWidgets.gridColorB , 0, 3 );
 
-    m_UiWidgets.lineWidthL = new QLabel( i18n("Line width:"), m_UiWidgets.colorGB );
-    colorLayout->addWidget( m_UiWidgets.lineWidthL, 2, 0 );
+    m_UiWidgets.gridColorCB = new QCheckBox( i18n("Custom grid color:"), m_UiWidgets.colorGB );
+    colorLayout->addWidget(m_UiWidgets.gridColorCB , 0, 2 );
 
-    // Low-Limit: 0, High-Limit: 10, Step: 1, Initial-Val: m_pOptionState->uiState.lineWidth
-    // Number-Base: 10 ( decimal ), Parent: m_UiWidgets.colorGB
+    m_UiWidgets.bgColorCB = new QCheckBox( i18n("Custom background color:"), m_UiWidgets.colorGB );
+    colorLayout->addWidget(m_UiWidgets.bgColorCB , 1, 2 );
+    
+    
+    m_UiWidgets.bgColorB = new KColorButton( m_pOptionState->uiState.backgroundColor,m_UiWidgets.colorGB  );
+    colorLayout->addWidget(m_UiWidgets.bgColorB , 1, 3 );
+
+    m_UiWidgets.lineWidthCB = new QCheckBox( i18n("Custom line width:"), m_UiWidgets.colorGB );
+    colorLayout->addWidget( m_UiWidgets.lineWidthCB, 2, 0 );
+
     m_UiWidgets.lineWidthB = new KIntSpinBox( 0, 10, 1, m_pOptionState->uiState.lineWidth, m_UiWidgets.colorGB );
     colorLayout->addWidget( m_UiWidgets.lineWidthB, 2, 1 );
 
-    m_UiWidgets.lineWidthDefaultB = new QPushButton( i18n("D&efault Width"), m_UiWidgets.colorGB );
-    colorLayout->addWidget( m_UiWidgets.lineWidthDefaultB, 2, 2 );
-
     m_UiWidgets.useFillColorCB = new QCheckBox( i18n("&Use fill color"), m_UiWidgets.colorGB );
-    colorLayout->setRowStretch( 3, 2 );
+    //colorLayout->setRowStretch( 3, 2 );
     colorLayout->addWidget( m_UiWidgets.useFillColorCB, 3, 0 );
     m_UiWidgets.useFillColorCB->setChecked( m_pOptionState->uiState.useFillColor );
 
     //connect button signals up
-    connect( m_UiWidgets.lineDefaultB, SIGNAL(clicked()), this, SLOT(slotLineBClicked()) );
-    connect( m_UiWidgets.fillDefaultB, SIGNAL(clicked()), this, SLOT(slotFillBClicked()) );
+    connect( m_UiWidgets.lineColorCB, SIGNAL(toggled(bool)), this, SLOT(slotLineCBChecked(bool)) );
+    connect( m_UiWidgets.fillColorCB, SIGNAL(toggled(bool)), this, SLOT(slotFillCBChecked(bool)) );
+    connect( m_UiWidgets.gridColorCB, SIGNAL(toggled(bool)), this, SLOT(slotGridCBChecked(bool)) );
+    connect( m_UiWidgets.bgColorCB, SIGNAL(toggled(bool)), this, SLOT(slotBgCBChecked(bool)) );
+    
+    //TODO Once the new canvas is complete, so something better, it does not worth it for now
+    if (m_UiWidgets.fillColorB->color() == FILL_COLOR) {
+        m_UiWidgets.fillColorCB->setChecked(false);
+        m_UiWidgets.fillColorB->setDisabled(true);
 }
+    else {
+        m_UiWidgets.fillColorCB->setChecked(true);
+    }
 
+    if (m_UiWidgets.lineColorB->color() == LINK_COLOR) {
+        m_UiWidgets.lineColorCB->setChecked(false);
+        m_UiWidgets.lineColorB->setDisabled(true);
+    }
+    else {
+        m_UiWidgets.lineColorCB->setChecked(true);
+    }
+}
+
 void SettingsDlg::setupGeneralPage()
 {
     //setup General page
@@ -398,8 +423,8 @@
     else if ( current == pageUserInterface )
     {
         m_UiWidgets.useFillColorCB->setChecked( true );
-        m_UiWidgets.fillColorB->setColor( QColor( 255, 255, 192 ) );
-        m_UiWidgets.lineColorB->setColor( Qt::red );
+        m_UiWidgets.fillColorB->setColor( FILL_COLOR );
+        m_UiWidgets.lineColorB->setColor( LINK_COLOR );
         m_UiWidgets.lineWidthB->setValue( 0 );
     }
     else if ( current == pageClass )
@@ -447,6 +472,8 @@
         m_pOptionState->uiState.fillColor = m_UiWidgets.fillColorB->color();
         m_pOptionState->uiState.lineColor = m_UiWidgets.lineColorB->color();
         m_pOptionState->uiState.lineWidth = m_UiWidgets.lineWidthB->value();
+        m_pOptionState->uiState.backgroundColor = m_UiWidgets.bgColorB->color();
+        m_pOptionState->uiState.gridDotColor = m_UiWidgets.gridColorB->color();
     }
     else if ( item == pageClass )
     {
@@ -471,16 +498,52 @@
     }
 }
 
-void SettingsDlg::slotLineBClicked()
+void SettingsDlg::slotLineCBChecked(bool value)
 {
-    m_UiWidgets.lineColorB->setColor( Qt::red );
+    if (value == false) {
+        m_UiWidgets.lineColorB->setColor( LINK_COLOR );
+        m_UiWidgets.lineColorB->setDisabled(true);
 }
+    else {
+        m_UiWidgets.lineColorB->setDisabled(false);
+    }
+}
 
-void SettingsDlg::slotFillBClicked()
+void SettingsDlg::slotFillCBChecked(bool value)
 {
-    m_UiWidgets.fillColorB->setColor( QColor(255, 255, 192) );
+    if (value == false) {
+        m_UiWidgets.fillColorB->setColor( FILL_COLOR );
+        m_UiWidgets.fillColorB->setDisabled(true);
 }
+    else {
+        m_UiWidgets.fillColorB->setDisabled(false);
+    }
+}
 
+void SettingsDlg::slotGridCBChecked(bool value)
+{
+    if (value == false) {
+        QPalette palette;
+        m_UiWidgets.gridColorB->setColor( palette.alternateBase() );
+        m_UiWidgets.gridColorB->setDisabled(true);
+    }
+    else {
+        m_UiWidgets.gridColorB->setDisabled(false);
+    }
+}
+
+void SettingsDlg::slotBgCBChecked(bool value)
+{
+    if (value == false) {
+        QPalette palette;
+        m_UiWidgets.bgColorB->setColor( palette.base() );
+        m_UiWidgets.bgColorB->setDisabled(true);
+    }
+    else {
+        m_UiWidgets.bgColorB->setDisabled(false);
+    }
+}
+
 void SettingsDlg::slotAutosaveCBClicked()
 {
     m_GeneralWidgets.timeISB->setEnabled( m_GeneralWidgets.autosaveCB->isChecked() );
--- trunk/KDE/kdesdk/umbrello/umbrello/dialogs/settingsdlg.h #1238441:1238442
@@ -61,16 +61,16 @@
     struct UIWidgets {
         QGroupBox * colorGB;
 
-        QLabel * lineColorL;
-        QLabel * fillColorL;
-        QLabel * lineWidthL;
+        QCheckBox * lineColorCB;
+        QCheckBox * fillColorCB;
+        QCheckBox * lineWidthCB;
+        QCheckBox * gridColorCB;
+        QCheckBox * bgColorCB;
 
-        QPushButton * lineDefaultB;
-        QPushButton * fillDefaultB;
-        QPushButton * lineWidthDefaultB;
-
         KColorButton * lineColorB;
         KColorButton * fillColorB;
+        KColorButton * gridColorB;
+        KColorButton * bgColorB;
         KIntSpinBox  * lineWidthB;
 
         QCheckBox * useFillColorCB;
@@ -158,8 +158,10 @@
     void slotApply();
     void slotOk();
     void slotDefault();
-    void slotLineBClicked();
-    void slotFillBClicked();
+    void slotLineCBChecked(bool value);
+    void slotFillCBChecked(bool value);
+    void slotGridCBChecked(bool value);
+    void slotBgCBChecked(bool value);
     void slotAutosaveCBClicked();
 };
 
--- trunk/KDE/kdesdk/umbrello/umbrello/uml.cpp #1238441:1238442
@@ -572,7 +572,6 @@
 void UMLApp::setZoom(int zoom)
 {
     currentView()->setZoom(zoom);
-    qDebug() << "Set zoom value:" << " " << zoom;
     m_pZoomSlider->setValue(zoom);
 }
 
--- trunk/KDE/kdesdk/umbrello/umbrello/umlview.cpp #1238441:1238442
@@ -153,7 +153,7 @@
     m_pImageExporter = new UMLViewImageExporter(this);
 
     //setup graphical items
-    setCanvas(new UMLViewCanvas(this));
+    setCanvas(new UMLViewCanvas(this,m_Options));
     // don't set the quite frequent update rate for each
     // diagram, as that causes also an update of invisible
     // diagrams, which can cost high CPU load for many
--- trunk/KDE/kdesdk/umbrello/umbrello/umlviewcanvas.cpp #1238441:1238442
@@ -16,15 +16,18 @@
 
 // app includes
 #include "umlview.h"
+#include <QPalette>
 
-
 /**
  * Constructor
  */
-UMLViewCanvas::UMLViewCanvas(UMLView * pView) : Q3Canvas(pView)
+UMLViewCanvas::UMLViewCanvas(UMLView * pView,const Settings::OptionState& option) : Q3Canvas(pView)
 {
     m_pView = pView;
-    setColors(QColor(195, 195, 195), Qt::gray);
+    
+    QPalette palette;
+    setColors(palette.base(), option.uiState.gridDotColor);
+    //setColors(option.uiState.backgroundColor, option.uiState.gridDotColor); //TODO Somehow, it does not work, it should
 }
 
 /**
--- trunk/KDE/kdesdk/umbrello/umbrello/umlviewcanvas.h #1238441:1238442
@@ -12,6 +12,7 @@
 #define UMLVIEWCANVAS_H
 
 #include <q3canvas.h>
+#include "optionstate.h"
 
 /**
  *@author Paul Hensgen
@@ -22,7 +23,7 @@
 class UMLViewCanvas : public Q3Canvas
 {
 public:
-    UMLViewCanvas(UMLView * pView);
+    UMLViewCanvas(UMLView * pView,const Settings::OptionState& option);
     virtual ~UMLViewCanvas();
 
     void setColors(const QColor& backColor, const QColor& gridColor);




More information about the umbrello-devel mailing list