• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

umbrello/umbrello

  • sources
  • kde-4.12
  • kdesdk
  • umbrello
  • umbrello
  • dialogs
umlviewdialog.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2002-2013 *
8  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
9  ***************************************************************************/
10 
11 // own header
12 #include "umlviewdialog.h"
13 
14 // local includes
15 #include "classoptionspage.h"
16 #include "debug_utils.h"
17 #include "icon_utils.h"
18 #include "uml.h"
19 #include "umldoc.h"
20 #include "umlscene.h"
21 #include "umlview.h"
22 #include "umlwidgetstylepage.h"
23 
24 // kde includes
25 #include <klocale.h>
26 #include <kmessagebox.h>
27 #include <kfontdialog.h>
28 #include <kvbox.h>
29 
30 // qt includes
31 #include <QFrame>
32 #include <QHBoxLayout>
33 
37 UMLViewDialog::UMLViewDialog(QWidget * pParent, UMLScene * pScene)
38  : KPageDialog(pParent)
39 {
40  setCaption(i18n("Properties"));
41  setButtons(Ok | Apply | Cancel | Help);
42  setDefaultButton(Ok);
43  setModal(true);
44  setFaceType(KPageDialog::List);
45  showButtonSeparator(true);
46  m_pScene = pScene;
47  m_options = m_pScene->optionState();
48  setupPages();
49  connect(this, SIGNAL(okClicked()), this, SLOT(slotOk()));
50  connect(this, SIGNAL(applyClicked()), this, SLOT(slotApply()));
51 }
52 
56 UMLViewDialog::~UMLViewDialog()
57 {
58 }
59 
60 void UMLViewDialog::slotOk()
61 {
62  applyPage(m_pageGeneralItem);
63  applyPage(m_pageDisplayItem);
64  applyPage(m_pageFontItem);
65  applyPage(m_pageStyleItem);
66  accept();
67 }
68 
69 void UMLViewDialog::slotApply()
70 {
71  applyPage(currentPage());
72 }
73 
77 void UMLViewDialog::setupPages()
78 {
79  setupDiagramPropertiesPage();
80  setupStylePage();
81  setupFontPage();
82  setupClassPage();
83 }
84 
88 void UMLViewDialog::setupDiagramPropertiesPage()
89 {
90  KVBox *page = new KVBox();
91  m_pageGeneralItem = new KPageWidgetItem(page, i18nc("general settings page", "General"));
92  m_pageGeneralItem->setHeader(i18n("General Settings"));
93  m_pageGeneralItem->setIcon(Icon_Utils::DesktopIcon(Icon_Utils::it_Properties_General));
94  addPage(m_pageGeneralItem);
95 
96  m_diagramProperties = new DiagramPropertiesPage(page);
97 
98  m_diagramProperties->ui_diagramName->setText(m_pScene->name());
99  m_diagramProperties->ui_zoom->setValue(m_pScene->activeView()->currentZoom());
100  m_diagramProperties->ui_showOpSigs->setChecked(m_pScene->showOpSig());
101 
102  m_diagramProperties->ui_checkBoxShowGrid->setChecked(m_pScene->isSnapGridVisible());
103  m_diagramProperties->ui_snapToGrid->setChecked(m_pScene->snapToGrid());
104  m_diagramProperties->ui_snapComponentSizeToGrid->setChecked(m_pScene->snapComponentSizeToGrid());
105 
106  m_diagramProperties->ui_gridSpaceX->setValue(m_pScene->snapX());
107  m_diagramProperties->ui_gridSpaceY->setValue(m_pScene->snapY());
108  m_diagramProperties->ui_lineWidth->setValue(m_pScene->lineWidth());
109  m_diagramProperties->ui_documentation->setText(m_pScene->documentation());
110  if (m_pScene->type() == Uml::DiagramType::Sequence) {
111  m_diagramProperties->ui_autoIncrementSequence->setVisible(true);
112  m_diagramProperties->ui_autoIncrementSequence->setChecked(m_pScene->autoIncrementSequence());
113  } else {
114  m_diagramProperties->ui_autoIncrementSequence->setVisible(false);
115  }
116 }
117 
121 void UMLViewDialog::setupClassPage()
122 {
123  if (m_pScene->type() != Uml::DiagramType::Class) {
124  return;
125  }
126  QFrame * newPage = new QFrame();
127  m_pageDisplayItem = new KPageWidgetItem(newPage, i18nc("classes display options page", "Display"));
128  m_pageDisplayItem->setHeader(i18n("Classes Display Options"));
129  m_pageDisplayItem->setIcon(Icon_Utils::DesktopIcon(Icon_Utils::it_Properties_Display));
130  addPage(m_pageDisplayItem);
131 
132  QHBoxLayout * pOptionsLayout = new QHBoxLayout(newPage);
133  m_pOptionsPage = new ClassOptionsPage(newPage, &m_options);
134  pOptionsLayout->addWidget(m_pOptionsPage);
135 }
136 
140 void UMLViewDialog::setupStylePage()
141 {
142  QFrame * stylePage = new QFrame();
143  m_pageStyleItem = new KPageWidgetItem(stylePage, i18nc("diagram style page", "Style"));
144  m_pageStyleItem->setHeader(i18n("Diagram Style"));
145  m_pageStyleItem->setIcon(Icon_Utils::DesktopIcon(Icon_Utils::it_Properties_Color));
146  addPage(m_pageStyleItem);
147 
148  QHBoxLayout * m_pStyleLayout = new QHBoxLayout(stylePage);
149  m_pStylePage = new UMLWidgetStylePage(stylePage, &m_options);
150  m_pStyleLayout->addWidget(m_pStylePage);
151 }
152 
156 void UMLViewDialog::setupFontPage()
157 {
158  KVBox *page = new KVBox();
159  m_pageFontItem = new KPageWidgetItem(page, i18n("Font"));
160  m_pageFontItem->setHeader(i18n("Font Settings"));
161  m_pageFontItem->setIcon(Icon_Utils::DesktopIcon(Icon_Utils::it_Properties_Font));
162  addPage(m_pageFontItem);
163 
164  m_pChooser = new KFontChooser((QWidget*)page, KFontChooser::NoDisplayFlags, QStringList(), 0);
165  m_pChooser->setFont(m_pScene->optionState().uiState.font);
166 }
167 
171 void UMLViewDialog::applyPage(KPageWidgetItem *item)
172 {
173  if (item == m_pageGeneralItem)
174  {
175  checkName();
176 //:TODO: m_pScene->setZoom(m_diagramProperties->ui_zoom->value());
177  m_pScene->setDocumentation(m_diagramProperties->ui_documentation->toPlainText());
178  m_pScene->setSnapSpacing(m_diagramProperties->ui_gridSpaceX->value(),
179  m_diagramProperties->ui_gridSpaceY->value());
180  m_pScene->setLineWidth(m_diagramProperties->ui_lineWidth->value());
181  m_pScene->setSnapToGrid(m_diagramProperties->ui_snapToGrid->isChecked());
182  m_pScene->setSnapComponentSizeToGrid(m_diagramProperties->ui_snapComponentSizeToGrid->isChecked());
183  m_pScene->setSnapGridVisible(m_diagramProperties->ui_checkBoxShowGrid->isChecked());
184  m_pScene->setShowOpSig(m_diagramProperties->ui_showOpSigs->isChecked());
185  if (m_pScene->type() == Uml::DiagramType::Sequence) {
186  m_pScene->setAutoIncrementSequence(m_diagramProperties->ui_autoIncrementSequence->isChecked());
187  }
188  }
189  else if (item == m_pageStyleItem)
190  {
191  uDebug() << "setting colors ";
192  m_pStylePage->updateUMLWidget();
193  m_pScene->setLineWidth(m_options.uiState.lineWidth);
194  m_pScene->setUseFillColor(m_options.uiState.useFillColor);
195  m_pScene->setTextColor(m_options.uiState.textColor);
196  m_pScene->setLineColor(m_options.uiState.lineColor);
197  m_pScene->setFillColor(m_options.uiState.fillColor);
198  m_pScene->setBackgroundBrush(m_options.uiState.backgroundColor);
199  m_pScene->setGridDotColor(m_options.uiState.gridDotColor);
200  //:TODO: gridCrossColor, gridTextColor, gridTextFont, gridTextIsVisible
201  }
202  else if (item == m_pageFontItem)
203  {
204  uDebug() << "setting font " << m_pChooser->font().toString();
205  m_pScene->setFont(m_pChooser->font(), true);
206  }
207  else if (item == m_pageDisplayItem)
208  {
209  if (m_pScene->type() != Uml::DiagramType::Class) {
210  return;
211  }
212  m_pOptionsPage->apply();
213  m_pScene->setClassWidgetOptions(m_pOptionsPage);
214  // sig = m_pTempWidget->getShowOpSigs();
215  // showSig = !(sig == Uml::st_NoSig || sig == Uml::st_NoSigNoVis);
216  // options.classState.showOpSig = showSig;
217  // sig = m_pTempWidget->getShowAttSigs();
218  // showSig = !(sig == Uml::st_NoSig || sig == Uml::st_NoSigNoVis);
219  // options.classState.showAttSig = showSig;
220  m_pScene->setOptionState(m_options);
221  }
222 }
223 
227 void UMLViewDialog::checkName()
228 {
229  QString newName = m_diagramProperties->ui_diagramName->text();
230  if (newName.length() == 0) {
231  KMessageBox::sorry(this, i18n("The name you have entered is invalid."),
232  i18n("Invalid Name"), 0);
233  m_diagramProperties->ui_diagramName->setText(m_pScene->name());
234  return;
235  }
236 
237  if (newName != m_pScene->name()) {
238  UMLDoc* doc = UMLApp::app()->document();
239  UMLView* view = doc->findView(m_pScene->type(), newName);
240  if (view) {
241  KMessageBox::sorry(this, i18n("The name you have entered is not unique."),
242  i18n("Name Not Unique"), 0);
243  m_diagramProperties->ui_diagramName->setText(m_pScene->name());
244  }
245  else {
246  // uDebug() << "Cannot find view with name " << newName;
247  m_pScene->setName(newName);
248  doc->signalDiagramRenamed(m_pScene->activeView());
249  }
250  }
251 }
252 
253 #include "umlviewdialog.moc"
Settings::UIState::lineWidth
uint lineWidth
Definition: optionstate.h:54
Settings::UIState::lineColor
QColor lineColor
Definition: optionstate.h:53
KPageDialog
ClassOptionsPage
A dialog page to display options for class related options.
Definition: classoptionspage.h:37
UMLScene::lineWidth
uint lineWidth() const
Returns the line width to use.
Definition: umlscene.cpp:342
Icon_Utils::it_Properties_Color
Definition: icon_utils.h:56
UMLScene::name
QString name() const
Return the name of the diagram.
Definition: umlscene.cpp:240
umlview.h
UMLScene::setLineColor
void setLineColor(const QColor &color)
Sets the line color.
Definition: umlscene.cpp:333
Icon_Utils::DesktopIcon
KIcon DesktopIcon(IconType type)
Returns the pixmap for the given type as desktop icon.
Definition: icon_utils.cpp:76
UMLViewDialog::m_pOptionsPage
ClassOptionsPage * m_pOptionsPage
Definition: umlviewdialog.h:62
umlscene.h
UMLView
UMLView instances represent diagrams.
Definition: umlview.h:32
QWidget
UMLApp::app
static UMLApp * app()
Get the last created instance of this class.
Definition: uml.cpp:206
UMLScene::documentation
QString documentation() const
Return the documentation of the diagram.
Definition: umlscene.cpp:201
UMLScene::setSnapSpacing
void setSnapSpacing(int x, int y)
Sets the grid size in x and y.
Definition: umlscene.cpp:3597
UMLScene::optionState
const Settings::OptionState & optionState() const
Returns the options being used.
Definition: umlscene.cpp:400
UMLViewDialog::setupStylePage
void setupStylePage()
Sets up the style page.
Definition: umlviewdialog.cpp:140
umlviewdialog.h
UMLViewDialog::m_pageDisplayItem
KPageWidgetItem * m_pageDisplayItem
Definition: umlviewdialog.h:66
UMLScene::setOptionState
void setOptionState(const Settings::OptionState &options)
Sets the options to be used.
Definition: umlscene.cpp:408
UMLScene::setAutoIncrementSequence
void setAutoIncrementSequence(bool state)
Definition: umlscene.cpp:222
UMLApp::document
UMLDoc * document() const
Returns a pointer to the current document connected to the KMainWindow instance.
Definition: uml.cpp:872
UMLScene::setFillColor
void setFillColor(const QColor &color)
Set the background color.
Definition: umlscene.cpp:314
debug_utils.h
UMLDoc::signalDiagramRenamed
void signalDiagramRenamed(UMLView *view)
Signal a view/diagram has been renamed.
Definition: umldoc.cpp:2903
ClassOptionsPage::apply
void apply()
apply changes
Definition: classoptionspage.cpp:81
Settings::UIState::fillColor
QColor fillColor
Definition: optionstate.h:52
UMLScene::snapX
int snapX() const
Returns the x grid size.
Definition: umlscene.cpp:3581
UMLViewDialog::setupPages
void setupPages()
Sets up the dialog pages.
Definition: umlviewdialog.cpp:77
UMLDoc::findView
UMLView * findView(Uml::ID::Type id)
Finds a view (diagram) by the ID given to method.
Definition: umldoc.cpp:733
DiagramPropertiesPage
Definition: umlviewdialog.h:33
UMLScene::type
Uml::DiagramType::Enum type() const
Returns the type of the diagram.
Definition: umlscene.cpp:256
Uml::DiagramType::Sequence
Definition: basictypes.h:79
UMLScene::setShowOpSig
void setShowOpSig(bool bShowOpSig)
Sets whether to show operation signatures.
Definition: umlscene.cpp:3682
UMLScene::snapComponentSizeToGrid
bool snapComponentSizeToGrid() const
Return whether to use snap to grid for component size.
Definition: umlscene.cpp:3563
UMLViewDialog::~UMLViewDialog
~UMLViewDialog()
Destructor.
Definition: umlviewdialog.cpp:56
UMLViewDialog::UMLViewDialog
UMLViewDialog(QWidget *pParent, UMLScene *pScene)
Constructor.
Definition: umlviewdialog.cpp:37
UMLScene::showOpSig
bool showOpSig() const
Returns whether to show operation signatures.
Definition: umlscene.cpp:3674
Settings::UIState::gridDotColor
QColor gridDotColor
Definition: optionstate.h:58
UMLScene::setDocumentation
void setDocumentation(const QString &doc)
Set the documentation of the diagram.
Definition: umlscene.cpp:209
UMLViewDialog::applyPage
void applyPage(KPageWidgetItem *)
Applies the properties of the given page.
Definition: umlviewdialog.cpp:171
UMLScene::setLineWidth
void setLineWidth(uint width)
Sets the line width.
Definition: umlscene.cpp:352
UMLViewDialog::m_diagramProperties
DiagramPropertiesPage * m_diagramProperties
Definition: umlviewdialog.h:61
UMLScene::autoIncrementSequence
bool autoIncrementSequence() const
Return the state of the auto increment sequence.
Definition: umlscene.cpp:217
uDebug
#define uDebug()
Definition: debug_utils.h:95
UMLScene::setSnapToGrid
void setSnapToGrid(bool bSnap)
Sets whether to snap to grid.
Definition: umlscene.cpp:3554
Settings::OptionState::uiState
UIState uiState
Definition: optionstate.h:143
UMLViewDialog::slotOk
void slotOk()
Definition: umlviewdialog.cpp:60
UMLScene::snapToGrid
bool snapToGrid() const
Return whether to use snap to grid.
Definition: umlscene.cpp:3546
UMLScene::setUseFillColor
void setUseFillColor(bool ufc)
Sets whether to use the fill/background color.
Definition: umlscene.cpp:1211
UMLViewDialog::checkName
void checkName()
Checks whether the name is unique and sets it if it is.
Definition: umlviewdialog.cpp:227
Settings::UIState::textColor
QColor textColor
Definition: optionstate.h:55
UMLViewDialog::m_pChooser
KFontChooser * m_pChooser
Definition: umlviewdialog.h:60
UMLViewDialog::slotApply
void slotApply()
Definition: umlviewdialog.cpp:69
UMLViewDialog::setupClassPage
void setupClassPage()
Sets up the Class page.
Definition: umlviewdialog.cpp:121
UMLWidgetStylePage
Definition: umlwidgetstylepage.h:30
UMLViewDialog::setupFontPage
void setupFontPage()
Sets up font page.
Definition: umlviewdialog.cpp:156
Icon_Utils::it_Properties_Display
Definition: icon_utils.h:57
UMLViewDialog::m_pStylePage
UMLWidgetStylePage * m_pStylePage
Definition: umlviewdialog.h:63
UMLViewDialog::m_pageStyleItem
KPageWidgetItem * m_pageStyleItem
Definition: umlviewdialog.h:64
umldoc.h
UMLScene::snapY
int snapY() const
Returns the y grid size.
Definition: umlscene.cpp:3589
UMLViewDialog::setupDiagramPropertiesPage
void setupDiagramPropertiesPage()
Sets up the general Diagram Properties Page.
Definition: umlviewdialog.cpp:88
Uml::DiagramType::Class
Definition: basictypes.h:77
UMLScene::activeView
UMLView * activeView() const
Returns the active view associated with this scene.
Definition: umlscene.cpp:193
UMLScene::setGridDotColor
void setGridDotColor(const QColor &color)
set grid dot color
Definition: umlscene.cpp:392
icon_utils.h
classoptionspage.h
UMLViewDialog::m_pageFontItem
KPageWidgetItem * m_pageFontItem
Definition: umlviewdialog.h:65
UMLViewDialog::m_options
Settings::OptionState m_options
Definition: umlviewdialog.h:59
UMLScene::setSnapComponentSizeToGrid
void setSnapComponentSizeToGrid(bool bSnap)
Sets whether to snap to grid for component size.
Definition: umlscene.cpp:3571
UMLScene::setTextColor
void setTextColor(const QColor &color)
Sets the text color.
Definition: umlscene.cpp:371
UMLScene::isSnapGridVisible
bool isSnapGridVisible() const
Returns whether to show snap grid or not.
Definition: umlscene.cpp:3641
Settings::UIState::useFillColor
bool useFillColor
Definition: optionstate.h:51
Settings::UIState::backgroundColor
QColor backgroundColor
Definition: optionstate.h:57
UMLScene::setFont
void setFont(QFont font, bool changeAllWidgets=false)
Sets the font for the view and optionally all the widgets on the view.
Definition: umlscene.cpp:3398
Settings::UIState::font
QFont font
Definition: optionstate.h:56
umlwidgetstylepage.h
UMLWidgetStylePage::updateUMLWidget
void updateUMLWidget()
Updates the UMLWidget with the dialog properties.
Definition: umlwidgetstylepage.cpp:238
Icon_Utils::it_Properties_General
Definition: icon_utils.h:55
UMLScene::setClassWidgetOptions
void setClassWidgetOptions(ClassOptionsPage *page)
Sets some options for all the ClassifierWidget on the view.
Definition: umlscene.cpp:3411
UMLView::currentZoom
int currentZoom()
Return the current zoom factor.
Definition: umlview.cpp:93
Icon_Utils::it_Properties_Font
Definition: icon_utils.h:66
UMLViewDialog::m_pageGeneralItem
KPageWidgetItem * m_pageGeneralItem
Definition: umlviewdialog.h:67
UMLViewDialog::m_pScene
UMLScene * m_pScene
the scene to represent
Definition: umlviewdialog.h:58
UMLScene::setSnapGridVisible
void setSnapGridVisible(bool bShow)
Sets whether to show snap grid.
Definition: umlscene.cpp:3649
UMLScene::setName
void setName(const QString &name)
Set the name of the diagram.
Definition: umlscene.cpp:248
UMLScene
UMLScene instances represent diagrams.
Definition: umlscene.h:70
uml.h
UMLDoc
UMLDoc provides a document object for a document-view model.
Definition: umldoc.h:63
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:06:01 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

umbrello/umbrello

Skip menu "umbrello/umbrello"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • okteta
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal