#include <qhbox.h>
#include <qframe.h>
#include <qgroupbox.h>
+#include <qvalidator.h>
class QLabel;
class QListBox;
class QtxIntSpinBox;
class QtxDblSpinBox;
+class QtxDirListEditor;
+
/*
Class: QtxListResourceEdit
Descr: GUI implementation of QtxResourceEdit - manager of resources
class PrefItem;
class Spacer;
- class ListItem;
class ColorItem;
class StateItem;
+ class SelectItem;
class StringItem;
class DoubleSpinItem;
class DoubleEditItem;
class IntegerSpinItem;
class IntegerEditItem;
+ class FontItem;
+ class FileItem;
+ class DirListItem;
- enum { Space, Bool, Color, String, Selector, DblSpin, IntSpin, Double, Integer };
+ enum { Space, Bool, Color, String, Selector, DblSpin, IntSpin, Double, Integer, GroupBox, Font, DirList, File, User };
public:
QtxListResourceEdit( QtxResourceMgr*, QWidget* = 0 );
virtual ~QtxListResourceEdit();
+ virtual void setItemProperty( const int, const QString&, const QVariant& );
+
signals:
void resourceChanged( int );
void resourceChanged( QString&, QString& );
void onSelectionChanged();
protected:
+ virtual void itemAdded( Item* );
virtual Item* createItem( const QString&, const int );
virtual void changedResources( const QMap<Item*, QString>& );
private:
void updateState();
+ void updateVisible();
private:
QListBox* myList;
Category( QtxListResourceEdit*, QWidget* = 0 );
virtual ~Category();
+ virtual bool isEmpty() const;
+
virtual int type() const;
virtual void store();
virtual void retrieve();
};
/*
- Class: QtxListResourceEdit::ListItem
- Descr: GUI implementation of resources list item.
+ Class: QtxListResourceEdit::SelectItem
+ Descr: GUI implementation of resources selector item.
*/
-class QtxListResourceEdit::ListItem : public PrefItem
+class QtxListResourceEdit::SelectItem : public PrefItem
{
public:
- ListItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
- virtual ~ListItem();
+ SelectItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
+ virtual ~SelectItem();
virtual void store();
virtual void retrieve();
QWidget* myColor;
};
+/*
+ Class: QtxListResourceEdit::FontItem
+ Descr: GUI implementation of resources font item.
+*/
+
+class QtxComboBox;
+class QToolButton;
+
+class QtxListResourceEdit::FontItem : public PrefItem
+{
+ Q_OBJECT
+
+public:
+ typedef enum
+ {
+ Family = 0x01,
+ Size = 0x02,
+ UserSize = 0x04,
+ Bold = 0x08,
+ Italic = 0x10,
+ Underline = 0x20,
+ Preview = 0x40,
+
+ All = Family | Size | UserSize | Bold | Italic | Underline | Preview
+
+ } WidgetFlags;
+
+public:
+ FontItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
+ virtual ~FontItem();
+
+ virtual void store();
+ virtual void retrieve();
+
+ virtual QVariant property( const QString& ) const;
+ virtual void setProperty( const QString&, const QVariant& );
+
+private slots:
+ void onActivateFamily( int );
+ void onPreview();
+
+private:
+ void setFamily( const QString& );
+ QString family() const;
+ void setSize( const int );
+ int size() const;
+ void setParams( const bool, const bool, const bool );
+ void params( bool&, bool&, bool& );
+ void internalUpdate();
+
+private:
+ int myFlags;
+ bool myIsSystem;
+ QtxComboBox *myFamilies, *mySizes;
+ QCheckBox *myBold, *myItalic, *myUnderline;
+ QToolButton *myPreview;
+ QMap<QString, QVariant> myProperties;
+};
+
+
+/*!
+ * \brief GUI implementation of resources directory list item.
+ *
+ *
+ */
+class QtxListResourceEdit::DirListItem : public PrefItem
+{
+ Q_OBJECT
+
+public:
+
+ /*!
+ * \brief Constructor
+ */
+ DirListItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
+ /*!
+ * \brief Destructor
+ */
+ virtual ~DirListItem();
+
+ /*!
+ * \brief Stores the data
+ */
+ virtual void store();
+
+ /*!
+ * \brief Retrieves the data
+ */
+ virtual void retrieve();
+
+private:
+ QtxDirListEditor* myDirListEditor; //!< The widget wich implements in GUI the list of directories
+};
+
+/*
+ Class: QtxListResourceEdit::FontItem
+ Descr: GUI implementation of resources font item.
+*/
+
+class QtxComboBox;
+class QToolButton;
+class QFileDialog;
+
+class QtxListResourceEdit::FileItem : public PrefItem
+{
+ Q_OBJECT
+
+private:
+ class FileValidator : public QValidator
+ {
+ public:
+ FileValidator( FileItem*, QObject* );
+ ~FileValidator();
+
+ virtual QValidator::State validate( QString&, int& ) const;
+
+ private:
+ FileItem* myItem;
+ };
+
+public:
+ FileItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
+ virtual ~FileItem();
+
+ virtual void store();
+ virtual void retrieve();
+
+ virtual QVariant property( const QString& ) const;
+ virtual void setProperty( const QString&, const QVariant& );
+
+ virtual bool isFileCorrect( const QString& ) const;
+
+private slots:
+ void onOpenFile();
+ void onFileSelected( const QString& );
+
+private:
+ uint myFlags;
+ QStringList myFilter;
+ bool myIsExisting;
+ QLineEdit* myFile;
+ QToolButton* myOpenFile;
+ QFileDialog* myFileDlg;
+};
+
+
#endif