kio
kfilemetainfowidget.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __KFILEMETAINFOWIDGET_H__
00021 #define __KFILEMETAINFOWIDGET_H__
00022
00023 #include <qwidget.h>
00024 #include <qvariant.h>
00025 #include <kfilemetainfo.h>
00026
00030 class KIO_EXPORT KFileMetaInfoWidget: public QWidget
00031 {
00032 Q_OBJECT
00033 public:
00034 enum Mode
00035 {
00036 ReadOnly = 1,
00037 ReadWrite = 0,
00038 Reserve = 0xff
00039 };
00040
00041 KFileMetaInfoWidget(KFileMetaInfoItem item, QValidator* val = 0,
00042 QWidget* parent = 0, const char* name = 0);
00043
00044 KFileMetaInfoWidget(KFileMetaInfoItem item, Mode mode, QValidator* val = 0,
00045 QWidget* parent = 0, const char* name = 0);
00046
00047 virtual ~KFileMetaInfoWidget();
00048
00049 bool apply()
00050 {
00051 return m_item.isEditable() && m_item.setValue(m_value);
00052 }
00053
00054 void setValue(const QVariant& value) { m_value = value; }
00055 QVariant value()const { return m_value; }
00056 QValidator* validator() const { return m_validator; }
00057 KFileMetaInfoItem item()const { return m_item; }
00058
00059 signals:
00060 void valueChanged(const QVariant& value);
00061
00062 protected:
00063 void reparentValidator(QWidget *widget, QValidator *validator);
00064 virtual QWidget* makeWidget();
00065
00066 QWidget* makeBoolWidget();
00067 QWidget* makeIntWidget();
00068 QWidget* makeDoubleWidget();
00069 QWidget* makeStringWidget();
00070 QWidget* makeDateWidget();
00071 QWidget* makeTimeWidget();
00072 QWidget* makeDateTimeWidget();
00073
00074 private slots:
00075 void slotChanged(bool value);
00076 void slotChanged(int value);
00077 void slotChanged(double value);
00078 void slotComboChanged(const QString &value);
00079 void slotLineEditChanged(const QString& value);
00080 void slotMultiLineEditChanged();
00081 void slotDateChanged(const QDate& value);
00082 void slotTimeChanged(const QTime& value);
00083 void slotDateTimeChanged(const QDateTime& value);
00084
00085 private:
00086 void init(KFileMetaInfoItem item, Mode mode);
00087
00088 QVariant m_value;
00089 KFileMetaInfoItem m_item;
00090 QWidget* m_widget;
00091 QValidator* m_validator;
00092 bool m_dirty : 1;
00093 };
00094
00095 #endif