13
13
#include "umltemplatedialog.h"
17
#include <qgroupbox.h>
18
#include <qcombobox.h>
20
#include <qlineedit.h>
16
#include <QtGui/QLayout>
17
#include <q3groupbox.h>
18
#include <QtGui/QComboBox>
19
#include <QtGui/QLabel>
20
#include <QtGui/QVBoxLayout>
21
#include <QtGui/QGridLayout>
24
#include <klineedit.h>
23
25
#include <kcombobox.h>
24
26
#include <klocale.h>
25
27
#include <kmessagebox.h>
26
28
#include <kdebug.h>
29
#include "../template.h"
30
#include "../classifier.h"
31
#include "../umldoc.h"
33
#include "../dialog_utils.h"
32
#include "classifier.h"
35
#include "dialog_utils.h"
35
37
UMLTemplateDialog::UMLTemplateDialog(QWidget* pParent, UMLTemplate* pTemplate)
36
: KDialogBase( Plain, i18n("Template Properties"), Help | Ok | Cancel , Ok, pParent, "_UMLTemplateDLG_", true, true) {
37
40
m_pTemplate = pTemplate;
41
setCaption( i18n("Template Properties") );
42
setButtons( Help | Ok | Cancel );
43
setDefaultButton( Ok );
45
showButtonSeparator( true );
41
UMLTemplateDialog::~UMLTemplateDialog() {}
43
void UMLTemplateDialog::setupDialog() {
47
connect(this,SIGNAL(okClicked()),this,SLOT(slotOk()));
48
connect(this,SIGNAL(applyClicked()),this,SLOT(slotApply()));
51
UMLTemplateDialog::~UMLTemplateDialog()
55
void UMLTemplateDialog::setupDialog()
44
57
int margin = fontMetrics().height();
46
QVBoxLayout* mainLayout = new QVBoxLayout( plainPage() );
59
QFrame *frame = new QFrame( this );
60
setMainWidget( frame );
61
QVBoxLayout* mainLayout = new QVBoxLayout( frame );
48
m_pValuesGB = new QGroupBox(i18n("General Properties"), plainPage() );
49
QGridLayout* valuesLayout = new QGridLayout(m_pValuesGB, 3, 2);
63
m_pValuesGB = new Q3GroupBox(i18n("General Properties"), frame );
64
QGridLayout* valuesLayout = new QGridLayout(m_pValuesGB);
50
65
valuesLayout->setMargin(margin);
51
66
valuesLayout->setSpacing(10);
58
73
m_pTypeL->setBuddy(m_pTypeCB);
60
75
Dialog_Utils::makeLabeledEditField( m_pValuesGB, valuesLayout, 1,
61
m_pNameL, i18n("&Name:"),
76
m_pNameL, i18nc("template name", "&Name:"),
62
77
m_pNameLE, m_pTemplate->getName() );
64
79
Dialog_Utils::makeLabeledEditField( m_pValuesGB, valuesLayout, 2,
72
87
// Add the active data types to combo box
73
88
UMLDoc *pDoc = UMLApp::app()->getDocument();
74
89
UMLClassifierList namesList( pDoc->getConcepts() );
75
UMLClassifier* obj = 0;
76
for (obj = namesList.first(); obj; obj = namesList.next()) {
90
foreach (UMLClassifier* obj, namesList ) {
77
91
insertType( obj->getName() );
86
100
int typeBoxCount = 0;
87
101
bool foundType = false;
88
102
while (typeBoxCount < m_pTypeCB->count() && foundType == false) {
89
QString typeBoxString = m_pTypeCB->text(typeBoxCount);
103
QString typeBoxString = m_pTypeCB->itemText(typeBoxCount);
90
104
if ( typeBoxString == m_pTemplate->getTypeName() ) {
92
m_pTypeCB->setCurrentItem(typeBoxCount);
106
m_pTypeCB->setCurrentIndex(typeBoxCount);
106
120
void UMLTemplateDialog::insertType( const QString& type, int index )
108
m_pTypeCB->insertItem( type, index );
122
m_pTypeCB->insertItem( index, type );
109
123
m_pTypeCB->completionObject()->addItem( type );
112
bool UMLTemplateDialog::apply() {
126
bool UMLTemplateDialog::apply()
113
128
QString typeName = m_pTypeCB->currentText();
114
129
UMLDoc *pDoc = UMLApp::app()->getDocument();
115
130
UMLClassifierList namesList( pDoc->getConcepts() );
116
131
UMLClassifier* obj = 0;
117
for (obj = namesList.first(); obj; obj = namesList.next()) {
132
foreach ( obj, namesList ) {
118
133
if (typeName == obj->getName()) {
119
134
m_pTemplate->setType( obj );