umbrello API Documentation

classoptionspage.cpp

00001 /***************************************************************************
00002  *                                                                         *
00003  *   This program is free software; you can redistribute it and/or modify  *
00004  *   it under the terms of the GNU General Public License as published by  *
00005  *   the Free Software Foundation; either version 2 of the License, or     *
00006  *   (at your option) any later version.                                   *
00007  *                                                                         *
00008  *   copyright (C) 2002-2007                                               *
00009  *   Umbrello UML Modeller Authors <uml-devel@uml.sf.net>                  *
00010  ***************************************************************************/
00011 
00012 // own header
00013 #include "classoptionspage.h"
00014 
00015 // qt/kde includes
00016 #include <qlayout.h>
00017 #include <klocale.h>
00018 #include <kdebug.h>
00019 
00020 // local includes
00021 #include "../umlview.h"
00022 #include "../classifierwidget.h"
00023 
00024 
00025 ClassOptionsPage::ClassOptionsPage(QWidget* pParent, ClassifierWidget* pWidget)
00026         : QWidget( pParent ) {
00027     init();
00028     //Uml::Widget_Type type = pWidget->getBaseType();
00029     m_pWidget = pWidget;
00030     setupPage();
00031 }
00032 
00033 ClassOptionsPage::ClassOptionsPage(QWidget* pParent, Settings::OptionState *options) : QWidget( pParent )
00034 {
00035     init();
00036     m_options = options;
00037     setupClassPageOption();
00038 }
00039 
00040 void ClassOptionsPage::init() {
00041     m_options = NULL;
00042     m_pWidget = NULL;
00043     m_pShowStereotypeCB = NULL;
00044     m_pShowAttsCB = NULL;
00045     m_pShowAttSigCB = NULL;
00046     m_pDrawAsCircleCB = NULL;
00047 }
00048 
00049 ClassOptionsPage::~ClassOptionsPage() {}
00050 
00051 void ClassOptionsPage::setupPage() {
00052     int margin = fontMetrics().height();
00053 
00054     bool sig = false;
00055     Uml::Signature_Type sigtype;
00056 
00057     QVBoxLayout * topLayout = new QVBoxLayout(this);
00058     topLayout -> setSpacing(6);
00059     m_pVisibilityGB = new QGroupBox(i18n("Show"), this);
00060     topLayout -> addWidget(m_pVisibilityGB);
00061     QGridLayout * visibilityLayout = new QGridLayout(m_pVisibilityGB);
00062     visibilityLayout -> setSpacing(10);
00063     visibilityLayout -> setMargin(margin);
00064     visibilityLayout -> setRowStretch(3, 1);
00065 
00066     m_pShowOpsCB = new QCheckBox(i18n("Operatio&ns"), m_pVisibilityGB);
00067     m_pShowOpsCB -> setChecked(m_pWidget -> getShowOps());
00068     visibilityLayout -> addWidget(m_pShowOpsCB, 0, 0);
00069 
00070     m_pShowVisibilityCB = new QCheckBox(i18n("&Visibility"), m_pVisibilityGB);
00071     m_pShowVisibilityCB -> setChecked(m_pWidget -> getShowVisibility());
00072     visibilityLayout -> addWidget(m_pShowVisibilityCB, 0, 1);
00073 
00074     sigtype = m_pWidget -> getShowOpSigs();
00075     if(sigtype == Uml::st_NoSig || sigtype == Uml::st_NoSigNoVis)
00076         sig = false;
00077     else
00078         sig = true;
00079     m_pShowOpSigCB = new QCheckBox(i18n("O&peration signature"), m_pVisibilityGB);
00080     m_pShowOpSigCB -> setChecked(sig);
00081     visibilityLayout -> addWidget(m_pShowOpSigCB, 1, 0);
00082 
00083     m_pShowPackageCB = new QCheckBox(i18n("Pac&kage"), m_pVisibilityGB);
00084     m_pShowPackageCB -> setChecked(m_pWidget -> getShowPackage());
00085     visibilityLayout -> addWidget(m_pShowPackageCB, 1, 1);
00086 
00087     Uml::Widget_Type type = m_pWidget->getBaseType();
00088 
00089     if (type == Uml::wt_Class) {
00090         m_pShowAttsCB = new QCheckBox(i18n("Att&ributes"), m_pVisibilityGB);
00091         m_pShowAttsCB->setChecked(m_pWidget->getShowAtts());
00092         visibilityLayout->addWidget(m_pShowAttsCB, 2, 0);
00093 
00094         m_pShowStereotypeCB = new QCheckBox(i18n("Stereot&ype"), m_pVisibilityGB);
00095         m_pShowStereotypeCB->setChecked(m_pWidget->getShowStereotype());
00096         visibilityLayout->addWidget(m_pShowStereotypeCB, 2, 1);
00097 
00098         m_pShowAttSigCB = new QCheckBox(i18n("Attr&ibute signature"), m_pVisibilityGB);
00099         sigtype = m_pWidget->getShowAttSigs();
00100         if(sigtype == Uml::st_NoSig || sigtype == Uml::st_NoSigNoVis)
00101             sig = false;
00102         else
00103             sig = true;
00104         m_pShowAttSigCB->setChecked(sig);
00105         visibilityLayout->addWidget(m_pShowAttSigCB, 3, 0);
00106 
00107     } else if (type == Uml::wt_Interface) {
00108         m_pDrawAsCircleCB = new QCheckBox(i18n("Draw as circle"), m_pVisibilityGB);
00109         m_pDrawAsCircleCB->setChecked( m_pWidget->getDrawAsCircle() );
00110         visibilityLayout->addWidget(m_pDrawAsCircleCB, 2, 0);
00111     }
00112 }
00113 
00114 void ClassOptionsPage::setupClassPageOption() {
00115 
00116     int margin = fontMetrics().height();
00117 
00118     QVBoxLayout * topLayout = new QVBoxLayout(this);
00119     topLayout -> setSpacing(6);
00120     m_pVisibilityGB = new QGroupBox(i18n("Show"), this);
00121     topLayout -> addWidget(m_pVisibilityGB);
00122     QGridLayout * visibilityLayout = new QGridLayout(m_pVisibilityGB);
00123     visibilityLayout -> setSpacing(10);
00124     visibilityLayout -> setMargin(margin);
00125 
00126     m_pShowOpsCB = new QCheckBox(i18n("Operatio&ns"), m_pVisibilityGB);
00127     m_pShowOpsCB -> setChecked( m_options->classState.showOps );
00128     visibilityLayout -> addWidget(m_pShowOpsCB, 0, 0);
00129 
00130     m_pShowOpSigCB = new QCheckBox(i18n("O&peration signature"), m_pVisibilityGB);
00131     m_pShowOpSigCB -> setChecked(m_options->classState.showOpSig);
00132     visibilityLayout -> addWidget(m_pShowOpSigCB, 1, 0);
00133     visibilityLayout -> setRowStretch(3, 1);
00134 
00135     m_pShowAttsCB = new QCheckBox(i18n("Att&ributes"), m_pVisibilityGB);
00136     m_pShowAttsCB -> setChecked(m_options->classState.showAtts );
00137     visibilityLayout -> addWidget(m_pShowAttsCB, 2, 0);
00138 
00139     m_pShowAttSigCB = new QCheckBox(i18n("Attr&ibute signature"), m_pVisibilityGB);
00140     m_pShowAttSigCB -> setChecked(m_options->classState.showAttSig);
00141     visibilityLayout -> addWidget(m_pShowAttSigCB, 3, 0);
00142 
00143     m_pShowVisibilityCB = new QCheckBox(i18n("&Visibility"), m_pVisibilityGB);
00144     m_pShowVisibilityCB -> setChecked(m_options->classState.showVisibility);
00145     visibilityLayout -> addWidget(m_pShowVisibilityCB, 0, 1);
00146 
00147     m_pShowPackageCB = new QCheckBox(i18n("Pac&kage"), m_pVisibilityGB);
00148     m_pShowPackageCB -> setChecked(m_options->classState.showPackage);
00149     visibilityLayout -> addWidget(m_pShowPackageCB, 1, 1);
00150 
00151     m_pShowStereotypeCB = new QCheckBox(i18n("Stereot&ype"), m_pVisibilityGB);
00152     m_pShowStereotypeCB -> setChecked(m_options->classState.showStereoType);
00153     visibilityLayout -> addWidget(m_pShowStereotypeCB, 2, 1);
00154 
00155 }
00156 
00157 void ClassOptionsPage::updateUMLWidget() {
00158     if (m_pWidget) {
00159         updateWidget();
00160     } else if (m_options) {
00161         updateOptionState();
00162     }
00163 }
00164 
00165 void ClassOptionsPage::updateWidget() {
00166     m_pWidget->setShowPackage( m_pShowPackageCB->isChecked() );
00167     m_pWidget->setShowVisibility( m_pShowVisibilityCB->isChecked() );
00168     m_pWidget->setShowOps( m_pShowOpsCB->isChecked() );
00169     m_pWidget->setShowOpSigs( m_pShowOpSigCB->isChecked() );
00170     Uml::Widget_Type type = m_pWidget->getBaseType();
00171     if (type == Uml::wt_Class) {
00172         m_pWidget->setShowStereotype( m_pShowStereotypeCB->isChecked() );
00173         m_pWidget->setShowAtts( m_pShowAttsCB->isChecked() );
00174         m_pWidget->setShowAttSigs( m_pShowAttSigCB->isChecked() );
00175     } else if (type == Uml::wt_Interface) {
00176         if (m_pDrawAsCircleCB)
00177             m_pWidget->setDrawAsCircle( m_pDrawAsCircleCB->isChecked() );
00178     }
00179 }
00180 
00181 void ClassOptionsPage::updateOptionState() {
00182     m_options->classState.showVisibility = m_pShowVisibilityCB->isChecked();
00183     if (m_pShowAttsCB)
00184         m_options->classState.showAtts = m_pShowAttsCB->isChecked();
00185     m_options->classState.showOps = m_pShowOpsCB->isChecked();
00186     if (m_pShowStereotypeCB)
00187         m_options->classState.showStereoType = m_pShowStereotypeCB->isChecked();
00188     m_options->classState.showPackage = m_pShowPackageCB->isChecked();
00189     if (m_pShowAttSigCB)
00190         m_options->classState.showAttSig = m_pShowAttSigCB->isChecked();
00191     m_options->classState.showOpSig = m_pShowOpSigCB->isChecked();
00192 }
00193 
00194 
00195 //#include "classoptionspage.moc"
KDE Logo
This file is part of the documentation for umbrello Version 3.1.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Jun 26 08:07:55 2007 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003