blob: cad0492dfd7b0080e450592d2a996d8bceccf70f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
/***************************************************************************
copyright : (C) 2003-2006 by Robby Stephenson
email : robby@periapsis.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of version 2 of the GNU General Public License as *
* published by the Free Software Foundation; *
* *
***************************************************************************/
#ifndef COLLECTIONFIELDSDIALOG_H
#define COLLECTIONFIELDSDIALOG_H
class KComboBox;
class KLineEdit;
class KPushButton;
class QRadioButton;
class QCheckBox;
class QPainter;
#include "datavectors.h"
#include "gui/listboxtext.h"
#include <kdialogbase.h>
#include <qmap.h>
namespace Tellico {
namespace Data {
class Collection;
}
class FieldListBox : public GUI::ListBoxText {
public:
FieldListBox(QListBox* listbox, Data::FieldPtr field);
FieldListBox(QListBox* listbox, Data::FieldPtr field, QListBoxItem* after);
Data::FieldPtr field() const { return m_field; }
void setField(Data::FieldPtr field) { m_field = field; }
private:
Data::FieldPtr m_field;
};
/**
* @author Robby Stephenson
*/
class CollectionFieldsDialog : public KDialogBase {
Q_OBJECT
public:
/**
* The constructor sets up the dialog.
*
* @param coll A pointer to the collection parent of all the attributes
* @param parent A pointer to the parent widget
* @param name The widget name
*/
CollectionFieldsDialog(Data::CollPtr coll, QWidget* parent, const char* name=0);
~CollectionFieldsDialog();
signals:
void signalCollectionModified();
protected slots:
virtual void slotOk();
virtual void slotApply();
virtual void slotDefault();
private slots:
void slotNew();
void slotDelete();
void slotMoveUp();
void slotMoveDown();
void slotTypeChanged(const QString& type);
void slotHighlightedChanged(int index);
void slotModified();
bool slotShowExtendedProperties();
void slotSelectInitial();
private:
void applyChanges();
void updateField();
void updateTitle(const QString& title);
bool checkValues();
FieldListBox* findItem(const QListBox* box, Data::FieldPtr field);
QStringList newTypesAllowed(int type);
Data::CollPtr m_coll;
Data::CollPtr m_defaultCollection;
Data::FieldVec m_copiedFields;
Data::FieldVec m_newFields;
Data::FieldPtr m_currentField;
bool m_modified;
bool m_updatingValues;
bool m_reordered;
int m_oldIndex;
QListBox* m_fieldsBox;
KPushButton* m_btnNew;
KPushButton* m_btnDelete;
KPushButton* m_btnUp;
KPushButton* m_btnDown;
KLineEdit* m_titleEdit;
KComboBox* m_typeCombo;
KLineEdit* m_allowEdit;
KLineEdit* m_defaultEdit;
KComboBox* m_catCombo;
KLineEdit* m_descEdit;
KPushButton* m_btnExtended;
QRadioButton* m_formatNone;
QRadioButton* m_formatPlain;
QRadioButton* m_formatTitle;
QRadioButton* m_formatName;
QCheckBox* m_complete;
QCheckBox* m_multiple;
QCheckBox* m_grouped;
};
} // end namespace
#endif
|