summaryrefslogtreecommitdiffstats
path: root/kio/kfile/kfilemetainfowidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kio/kfile/kfilemetainfowidget.cpp')
-rw-r--r--kio/kfile/kfilemetainfowidget.cpp375
1 files changed, 0 insertions, 375 deletions
diff --git a/kio/kfile/kfilemetainfowidget.cpp b/kio/kfile/kfilemetainfowidget.cpp
deleted file mode 100644
index c4df4a15d..000000000
--- a/kio/kfile/kfilemetainfowidget.cpp
+++ /dev/null
@@ -1,375 +0,0 @@
-/* This file is part of the KDE libraries
- Copyright (C) 2001,2002 Rolf Magnus <ramagnus@kde.org>
-
- library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License version 2 as published by the Free Software Foundation.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-
- $Id$
- */
-
-#include "kfilemetainfowidget.h"
-
-#include <keditcl.h>
-#include <klocale.h>
-#include <knuminput.h>
-#include <kcombobox.h>
-#include <klineedit.h>
-#include <kstringvalidator.h>
-#include <kdebug.h>
-
-#include <tqlabel.h>
-#include <tqcheckbox.h>
-#include <tqspinbox.h>
-#include <tqdatetimeedit.h>
-#include <tqpixmap.h>
-#include <tqimage.h>
-#include <tqlayout.h>
-#include <tqvalidator.h>
-
-/*
- Widgets used for different types:
-
- bool : QCheckBox
- int : QSpinBox
- TQString : KComboBox if the validator is a KStringListValidator, else lineedit
- TQDateTime : QDateTimeEdit
-
-*/
-
-KFileMetaInfoWidget::KFileMetaInfoWidget(KFileMetaInfoItem item,
- TQValidator* val,
- TQWidget* parent, const char* name)
- : TQWidget(parent, name),
- m_value(item.value()),
- m_item(item),
- m_validator(val)
-{
- init(item, ReadWrite);
-}
-
-KFileMetaInfoWidget::KFileMetaInfoWidget(KFileMetaInfoItem item,
- Mode mode,
- TQValidator* val,
- TQWidget* parent, const char* name)
- : TQWidget(parent, name),
- m_value(item.value()),
- m_item(item),
- m_validator(val)
-{
- init(item, mode);
-}
-
-void KFileMetaInfoWidget::init(KFileMetaInfoItem item, Mode mode)
-{
- kdDebug(7033) << "*** item " << m_item.key()
- << " is a " << value().typeName() << endl;
-
- if (m_item.isEditable() && !(mode & ReadOnly))
- m_widget = makeWidget();
- else
- switch (m_value.type())
- {
- case TQVariant::Image :
- m_widget = new TQLabel(this, "info image");
- static_cast<TQLabel*>(m_widget)->setPixmap(TQPixmap(m_value.toImage()));
- break;
- case TQVariant::Pixmap :
- m_widget = new TQLabel(this, "info pixmap");
- static_cast<TQLabel*>(m_widget)->setPixmap(m_value.toPixmap());
- break;
- default:
- m_widget = new TQLabel(item.string(true), this, "info label");
- }
-
- (new TQHBoxLayout(this))->addWidget(m_widget);
-}
-
-KFileMetaInfoWidget::~KFileMetaInfoWidget()
-{
-}
-
-TQWidget* KFileMetaInfoWidget::makeWidget()
-{
- TQString valClass;
- TQWidget* w;
-
- switch (m_value.type())
- {
- case TQVariant::Invalid: // no type
- // just make a label
- w = new TQLabel(i18n("<Error>"), this, "label");
- break;
-
- case TQVariant::Int: // an int
- case TQVariant::UInt: // an unsigned int
- w = makeIntWidget();
- break;
-
- case TQVariant::Bool: // a bool
- w = makeBoolWidget();
- break;
-
- case TQVariant::Double: // a double
- w = makeDoubleWidget();
- break;
-
-
- case TQVariant::Date: // a QDate
- w = makeDateWidget();
- break;
-
- case TQVariant::Time: // a QTime
- w = makeTimeWidget();
- break;
-
- case TQVariant::DateTime: // a QDateTime
- w = makeDateTimeWidget();
- break;
-
-#if 0
- case TQVariant::Size: // a QSize
- case TQVariant::String: // a QString
- case TQVariant::List: // a QValueList
- case TQVariant::Map: // a QMap
- case TQVariant::StringList: // a QStringList
- case TQVariant::Font: // a QFont
- case TQVariant::Pixmap: // a QPixmap
- case TQVariant::Brush: // a QBrush
- case TQVariant::Rect: // a QRect
- case TQVariant::Color: // a QColor
- case TQVariant::Palette: // a QPalette
- case TQVariant::ColorGroup: // a QColorGroup
- case TQVariant::IconSet: // a QIconSet
- case TQVariant::Point: // a QPoint
- case TQVariant::Image: // a QImage
- case TQVariant::CString: // a QCString
- case TQVariant::PointArray: // a QPointArray
- case TQVariant::Region: // a QRegion
- case TQVariant::Bitmap: // a QBitmap
- case TQVariant::Cursor: // a QCursor
- case TQVariant::ByteArray: // a QByteArray
- case TQVariant::BitArray: // a QBitArray
- case TQVariant::SizePolicy: // a QSizePolicy
- case TQVariant::KeySequence: // a QKeySequence
-#endif
- default:
- w = makeStringWidget();
- }
-
- kdDebug(7033) << "*** item " << m_item.key()
- << "is a " << m_item.value().typeName() << endl;
- if (m_validator)
- kdDebug(7033) << " and validator is a " << m_validator->className() << endl;
-
- kdDebug(7033) << "*** created a " << w->className() << " for it\n";
-
- return w;
-}
-
-// ****************************************************************
-// now the different methods to make the widgets for specific types
-// ****************************************************************
-
-TQWidget* KFileMetaInfoWidget::makeBoolWidget()
-{
- TQCheckBox* cb = new TQCheckBox(this, "metainfo bool widget");
- cb->setChecked(m_item.value().toBool());
- connect(cb, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotChanged(bool)));
- return cb;
-}
-
-TQWidget* KFileMetaInfoWidget::makeIntWidget()
-{
- TQSpinBox* sb = new TQSpinBox(this, "metainfo integer widget");
- sb->setValue(m_item.value().toInt());
-
- if (m_validator)
- {
- if (m_validator->inherits(TQINTVALIDATOR_OBJECT_NAME_STRING))
- {
- sb->setMinValue(static_cast<TQIntValidator*>(m_validator)->bottom());
- sb->setMaxValue(static_cast<TQIntValidator*>(m_validator)->top());
- }
- reparentValidator(sb, m_validator);
- sb->setValidator(m_validator);
- }
-
- // make sure that an uint cannot be set to a value < 0
- if (m_item.type() == TQVariant::UInt)
- sb->setMinValue(QMAX(sb->minValue(), 0));
-
- connect(sb, TQT_SIGNAL(valueChanged(int)), this, TQT_SLOT(slotChanged(int)));
- return sb;
-}
-
-TQWidget* KFileMetaInfoWidget::makeDoubleWidget()
-{
- KDoubleNumInput* dni = new KDoubleNumInput(m_item.value().toDouble(),
- this, "metainfo double widget");
-
-
- if (m_validator)
- {
- if (m_validator->inherits("QDoubleValidator"))
- {
- dni->setMinValue(static_cast<TQDoubleValidator*>(m_validator)->bottom());
- dni->setMaxValue(static_cast<TQDoubleValidator*>(m_validator)->top());
- }
- reparentValidator(dni, m_validator);
- }
-
- connect(dni, TQT_SIGNAL(valueChanged(double)), this, TQT_SLOT(slotChanged(double)));
- return dni;
-}
-
-TQWidget* KFileMetaInfoWidget::makeStringWidget()
-{
- if (m_validator && m_validator->inherits("KStringListValidator"))
- {
- KComboBox* b = new KComboBox(true, this, "metainfo combobox");
- KStringListValidator* val = static_cast<KStringListValidator*>
- (m_validator);
- b->insertStringList(val->stringList());
- b->setCurrentText(m_item.value().toString());
- connect(b, TQT_SIGNAL(activated(const TQString &)), this, TQT_SLOT(slotComboChanged(const TQString &)));
- b->setValidator(val);
- reparentValidator(b, val);
- return b;
- }
-
- if ( m_item.attributes() & KFileMimeTypeInfo::MultiLine ) {
- KEdit *edit = new KEdit( this );
- edit->setText( m_item.value().toString() );
- connect( edit, TQT_SIGNAL( textChanged() ),
- this, TQT_SLOT( slotMultiLineEditChanged() ));
- // can't use a validator with a TQTextEdit, but we may need to delete it
- if ( m_validator )
- reparentValidator( edit, m_validator );
- return edit;
- }
-
- KLineEdit* e = new KLineEdit(m_item.value().toString(), this);
- if (m_validator)
- {
- e->setValidator(m_validator);
- reparentValidator(e, m_validator);
- }
- connect(e, TQT_SIGNAL(textChanged(const TQString&)),
- this, TQT_SLOT(slotLineEditChanged(const TQString&)));
- return e;
-}
-
-TQWidget* KFileMetaInfoWidget::makeDateWidget()
-{
- TQWidget *e = new TQDateEdit(m_item.value().toDate(), this);
- connect(e, TQT_SIGNAL(valueChanged(const TQDate&)),
- this, TQT_SLOT(slotDateChanged(const TQDate&)));
- return e;
-}
-
-TQWidget* KFileMetaInfoWidget::makeTimeWidget()
-{
- return new TQTimeEdit(m_item.value().toTime(), this);
-}
-
-TQWidget* KFileMetaInfoWidget::makeDateTimeWidget()
-{
- return new TQDateTimeEdit(m_item.value().toDateTime(), this);
-}
-
-void KFileMetaInfoWidget::reparentValidator( TQWidget *widget,
- TQValidator *validator )
-{
- if ( !validator->parent() )
- widget->insertChild( validator );
-}
-
-// ****************************************************************
-// now the slots that let us get notified if the value changed in the child
-// ****************************************************************
-
-void KFileMetaInfoWidget::slotChanged(bool value)
-{
- Q_ASSERT(m_widget->inherits(TQCOMBOBOX_OBJECT_NAME_STRING));
- m_value = TQVariant(value);
- emit valueChanged(m_value);
- m_dirty = true;
-}
-
-void KFileMetaInfoWidget::slotChanged(int value)
-{
- Q_ASSERT(m_widget->inherits(TQSPINBOX_OBJECT_NAME_STRING));
- m_value = TQVariant(value);
- emit valueChanged(m_value);
- m_dirty = true;
-}
-
-void KFileMetaInfoWidget::slotChanged(double value)
-{
- Q_ASSERT(m_widget->inherits("KDoubleNumInput"));
- m_value = TQVariant(value);
- emit valueChanged(m_value);
- m_dirty = true;
-}
-
-void KFileMetaInfoWidget::slotComboChanged(const TQString &value)
-{
- Q_ASSERT(m_widget->inherits("KComboBox"));
- m_value = TQVariant(value);
- emit valueChanged(m_value);
- m_dirty = true;
-}
-
-void KFileMetaInfoWidget::slotLineEditChanged(const TQString& value)
-{
- Q_ASSERT(m_widget->inherits("KLineEdit"));
- m_value = TQVariant(value);
- emit valueChanged(m_value);
- m_dirty = true;
-}
-
-// that may be a little expensive for long texts, but what can we do?
-void KFileMetaInfoWidget::slotMultiLineEditChanged()
-{
- Q_ASSERT(m_widget->inherits(TQTEXTEDIT_OBJECT_NAME_STRING));
- m_value = TQVariant( static_cast<const TQTextEdit*>( sender() )->text() );
- emit valueChanged(m_value);
- m_dirty = true;
-}
-
-void KFileMetaInfoWidget::slotDateChanged(const TQDate& value)
-{
- Q_ASSERT(m_widget->inherits(TQDATEEDIT_OBJECT_NAME_STRING));
- m_value = TQVariant(value);
- emit valueChanged(m_value);
- m_dirty = true;
-}
-
-void KFileMetaInfoWidget::slotTimeChanged(const TQTime& value)
-{
- Q_ASSERT(m_widget->inherits(TQTIMEEDIT_OBJECT_NAME_STRING));
- m_value = TQVariant(value);
- emit valueChanged(m_value);
- m_dirty = true;
-}
-
-void KFileMetaInfoWidget::slotDateTimeChanged(const TQDateTime& value)
-{
- Q_ASSERT(m_widget->inherits(TQDATETIMEEDIT_OBJECT_NAME_STRING));
- m_value = TQVariant(value);
- emit valueChanged(m_value);
- m_dirty = true;
-}
-
-#include "kfilemetainfowidget.moc"