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