umbrello  2.31.3
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
multipagedialogbase.h
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) 2012-2020 *
8  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
9  ***************************************************************************/
10 
11 #ifndef MULTIPAGEDIALOGBASE_H
12 #define MULTIPAGEDIALOGBASE_H
13 
14 #include "icon_utils.h"
15 
16 #include <kpagewidget.h>
17 
18 // qt class includes
19 #include <QDialog>
20 #include <QWidget>
21 
22 //forward declarations
23 class AssociationWidget;
26 class KFontChooser;
27 class KPageDialog;
28 class QAbstractButton;
29 class QFrame;
30 class NotePage;
31 class NoteWidget;
32 class MessageWidget;
33 class UMLWidget;
35 class UMLWidgetStylePage;
36 class WidgetBase;
37 class UMLScene;
38 namespace Settings { class OptionState; }
39 
51 class MultiPageDialogBase : public QWidget
52 {
53  Q_OBJECT
54 
55 public:
57  typedef enum {
66  } PageType;
67 
68  explicit MultiPageDialogBase(QWidget *parent, bool withDefaultButton=false);
69  virtual ~MultiPageDialogBase();
70 
71  void apply();
72 
73  void setCaption(const QString &caption);
74  void accept();
75  void reject();
76  KPageWidgetItem *currentPage();
77  void addPage(KPageWidgetItem *page);
78  void setCurrentPage(KPageWidgetItem *page);
79  static int spacingHint();
80  int exec();
81 
82  virtual bool isModified();
83 
84 signals:
85  void okClicked();
86  void applyClicked();
87  void defaultClicked();
88 
89 protected slots:
90  void slotEnableButtonOk(bool state);
91 
92 private slots:
93  void slotOkClicked();
94  void slotApplyClicked();
95  void slotDefaultClicked();
96 #if QT_VERSION >= 0x050000
97  void slotHelpClicked();
98  void slotButtonClicked(QAbstractButton *button);
99 #endif
100 protected:
105  KFontChooser *m_fontChooser;
107  KPageWidgetItem *m_pageItem;
108  KPageDialog *m_pageDialog;
109  KPageWidget *m_pageWidget;
112  virtual void keyPressEvent(QKeyEvent *event);
113 
114  QFrame* createPage(const QString& name, const QString& header, Icon_Utils::IconType icon);
115  KPageWidgetItem *createPage(const QString &name, const QString &header, Icon_Utils::IconType icon, QWidget *widget);
116 
117  void setupGeneralPage(AssociationWidget *widget);
118  void applyGeneralPage(AssociationWidget *widget);
119 
120  void setupGeneralPage(NoteWidget *widget);
121  KPageWidgetItem *setupGeneralPage(MessageWidget *widget);
122  void applyGeneralPage(MessageWidget *widget);
123 
124  KPageWidgetItem *setupFontPage(const QFont &font);
125  KPageWidgetItem *setupFontPage(UMLWidget *widget);
126  KPageWidgetItem *setupFontPage(AssociationWidget *widget);
127  void resetFontPage(QWidget *widget);
128  void applyFontPage(AssociationWidget *widget);
129  void applyFontPage(Settings::OptionState *state);
130  void applyFontPage(UMLScene *scene);
131  void applyFontPage(UMLWidget *widget);
132 
133  KPageWidgetItem *setupStylePage(WidgetBase *widget);
134  KPageWidgetItem *setupStylePage(AssociationWidget *widget);
135  void applyStylePage();
136 
137  KPageWidgetItem *setupAssociationRolePage(AssociationWidget *widget);
138  void applyAssociationRolePage();
139 };
140 
141 #endif
KPageWidgetItem * m_pageItem
Definition: multipagedialogbase.h:107
Display properties on a UMLObject.
Definition: associationrolepage.h:34
Displays a note box.
Definition: notewidget.h:30
Definition: multipagedialogbase.h:63
Common base class for UMLWidget and AssociationWidget.
Definition: widgetbase.h:104
PageType
Available page types.
Definition: multipagedialogbase.h:57
Definition: multipagedialogbase.h:65
Definition: optionstate.h:314
AssociationGeneralPage * m_pAssocGeneralPage
Definition: multipagedialogbase.h:101
bool m_isModified
Definition: multipagedialogbase.h:111
Definition: multipagedialogbase.h:64
A dialog page to select an operation.
Definition: selectoperationpage.h:35
This class represents an association inside a diagram. Bugs and comments to umbrello-devel@kde.org or https://bugs.kde.org.
Definition: associationwidget.h:51
bool m_useDialog
Definition: multipagedialogbase.h:110
KPageWidget * m_pageWidget
Definition: multipagedialogbase.h:109
Definition: multipagedialogbase.h:58
Definition: multipagedialogbase.h:51
Displays a message.
Definition: messagewidget.h:40
AssociationRolePage * m_pRolePage
Definition: multipagedialogbase.h:104
Definition: multipagedialogbase.h:60
Definition: multipagedialogbase.h:62
Definition: multipagedialogbase.h:59
KFontChooser * m_fontChooser
Definition: multipagedialogbase.h:105
SelectOperationPage * m_operationGeneralPage
Definition: multipagedialogbase.h:103
KPageDialog * m_pageDialog
Definition: multipagedialogbase.h:108
Definition: umlwidgetstylepage.h:37
Definition: codeviewerstate.cpp:15
NotePage * m_notePage
Definition: multipagedialogbase.h:102
Definition: notepage.h:23
Display properties on a UMLObject.
Definition: associationgeneralpage.h:39
IconType
Definition: icon_utils.h:46
Definition: multipagedialogbase.h:61
Definition: umlscene.h:68
UMLWidgetStylePage * m_pStylePage
Definition: multipagedialogbase.h:106
The base class for graphical UML objects.
Definition: umlwidget.h:40