|
|
|
/***************************************************************************
|
|
|
|
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 TQRadioButton;
|
|
|
|
class TQCheckBox;
|
|
|
|
class TQPainter;
|
|
|
|
|
|
|
|
#include "datavectors.h"
|
|
|
|
#include "gui/listboxtext.h"
|
|
|
|
|
|
|
|
#include <kdialogbase.h>
|
|
|
|
|
|
|
|
#include <tqmap.h>
|
|
|
|
|
|
|
|
namespace Tellico {
|
|
|
|
namespace Data {
|
|
|
|
class Collection;
|
|
|
|
}
|
|
|
|
|
|
|
|
class FieldListBox : public GUI::ListBoxText {
|
|
|
|
public:
|
|
|
|
FieldListBox(TQListBox* listbox, Data::FieldPtr field);
|
|
|
|
FieldListBox(TQListBox* listbox, Data::FieldPtr field, TQListBoxItem* 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, TQWidget* 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 TQString& type);
|
|
|
|
void slotHighlightedChanged(int index);
|
|
|
|
void slotModified();
|
|
|
|
bool slotShowExtendedProperties();
|
|
|
|
void slotSelectInitial();
|
|
|
|
|
|
|
|
private:
|
|
|
|
void applyChanges();
|
|
|
|
void updateField();
|
|
|
|
void updateTitle(const TQString& title);
|
|
|
|
bool checkValues();
|
|
|
|
FieldListBox* findItem(const TQListBox* box, Data::FieldPtr field);
|
|
|
|
TQStringList 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;
|
|
|
|
|
|
|
|
TQListBox* 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;
|
|
|
|
|
|
|
|
TQRadioButton* m_formatNone;
|
|
|
|
TQRadioButton* m_formatPlain;
|
|
|
|
TQRadioButton* m_formatTitle;
|
|
|
|
TQRadioButton* m_formatName;
|
|
|
|
TQCheckBox* m_complete;
|
|
|
|
TQCheckBox* m_multiple;
|
|
|
|
TQCheckBox* m_grouped;
|
|
|
|
};
|
|
|
|
|
|
|
|
} // end namespace
|
|
|
|
#endif
|