summaryrefslogtreecommitdiffstats
path: root/kio/kfile/kmetaprops.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kio/kfile/kmetaprops.cpp')
-rw-r--r--kio/kfile/kmetaprops.cpp268
1 files changed, 0 insertions, 268 deletions
diff --git a/kio/kfile/kmetaprops.cpp b/kio/kfile/kmetaprops.cpp
deleted file mode 100644
index d82c4523b..000000000
--- a/kio/kfile/kmetaprops.cpp
+++ /dev/null
@@ -1,268 +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 "kmetaprops.h"
-
-#include <kdebug.h>
-#include <kfilemetainfowidget.h>
-#include <kfilemetainfo.h>
-#include <kglobal.h>
-#include <kglobalsettings.h>
-#include <klocale.h>
-#include <kprotocolinfo.h>
-
-#include <tqvalidator.h>
-#include <tqlayout.h>
-#include <tqlabel.h>
-#include <tqfileinfo.h>
-#include <tqdatetime.h>
-#include <tqstylesheet.h>
-#include <tqvgroupbox.h>
-
-#undef Bool
-
-class MetaPropsScrollView : public TQScrollView
-{
-public:
- MetaPropsScrollView(TQWidget* parent = 0, const char* name = 0)
- : TQScrollView(parent, name)
- {
- setFrameStyle(TQFrame::NoFrame);
- m_frame = new TQFrame(viewport(), "MetaPropsScrollView::m_frame");
- m_frame->setFrameStyle(TQFrame::NoFrame);
- addChild(m_frame, 0, 0);
- };
-
- TQFrame* frame() {return m_frame;};
-
-protected:
- virtual void viewportResizeEvent(TQResizeEvent* ev)
- {
- TQScrollView::viewportResizeEvent(ev);
- m_frame->resize( kMax(m_frame->sizeHint().width(), ev->size().width()),
- kMax(m_frame->sizeHint().height(), ev->size().height()));
- };
-
-private:
- TQFrame* m_frame;
-};
-
-class KFileMetaPropsPlugin::KFileMetaPropsPluginPrivate
-{
-public:
- KFileMetaPropsPluginPrivate() {}
- ~KFileMetaPropsPluginPrivate() {}
-
- TQFrame* m_frame;
- TQGridLayout* m_framelayout;
- KFileMetaInfo m_info;
-// TQPushButton* m_add;
- TQPtrList<KFileMetaInfoWidget> m_editWidgets;
-};
-
-KFileMetaPropsPlugin::KFileMetaPropsPlugin(KPropertiesDialog* props)
- : KPropsDlgPlugin(props)
-{
- d = new KFileMetaPropsPluginPrivate;
-
- KFileItem * fileitem = properties->item();
- kdDebug(250) << "KFileMetaPropsPlugin constructor" << endl;
-
- d->m_info = fileitem->metaInfo();
- if (!d->m_info.isValid())
- {
- d->m_info = KFileMetaInfo(properties->kurl().path(-1));
- fileitem->setMetaInfo(d->m_info);
- }
-
- if ( properties->items().count() > 1 )
- {
- // not yet supported
- // we should allow setting values for a list of files. Itt makes sense
- // in some cases, like the album of a list of mp3s
- return;
- }
-
- createLayout();
-
- setDirty(true);
-}
-
-void KFileMetaPropsPlugin::createLayout()
-{
- TQFileInfo file_info(properties->item()->url().path());
-
- kdDebug(250) << "KFileMetaPropsPlugin::createLayout" << endl;
-
- // is there any valid and non-empty info at all?
- if ( !d->m_info.isValid() || (d->m_info.preferredKeys()).isEmpty() )
- return;
-
- // now get a list of groups
- KFileMetaInfoProvider* prov = KFileMetaInfoProvider::self();
- TQStringList groupList = d->m_info.preferredGroups();
-
- const KFileMimeTypeInfo* mtinfo = prov->mimeTypeInfo(d->m_info.mimeType());
- if (!mtinfo)
- {
- kdDebug(7034) << "no mimetype info there\n";
- return;
- }
-
- // let the dialog create the page frame
- TQFrame* topframe = properties->addPage(i18n("&Meta Info"));
- topframe->setFrameStyle(TQFrame::NoFrame);
- TQVBoxLayout* tmp = new TQVBoxLayout(topframe);
-
- // create a scroll view in the page
- MetaPropsScrollView* view = new MetaPropsScrollView(topframe);
-
- tmp->addWidget(view);
-
- d->m_frame = view->frame();
-
- TQVBoxLayout *toplayout = new TQVBoxLayout(d->m_frame);
- toplayout->setSpacing(KDialog::spacingHint());
-
- for (TQStringList::Iterator git=groupList.begin();
- git!=groupList.end(); ++git)
- {
- kdDebug(7033) << *git << endl;
-
- TQStringList itemList = d->m_info.group(*git).preferredKeys();
- if (itemList.isEmpty())
- continue;
-
- TQGroupBox *groupBox = new TQGroupBox(2, Qt::Horizontal,
- TQStyleSheet::escape(mtinfo->groupInfo(*git)->translatedName()),
- d->m_frame);
-
- toplayout->addWidget(groupBox);
-
- TQValueList<KFileMetaInfoItem> readItems;
- TQValueList<KFileMetaInfoItem> editItems;
-
- for (TQStringList::Iterator iit = itemList.begin();
- iit!=itemList.end(); ++iit)
- {
- KFileMetaInfoItem item = d->m_info[*git][*iit];
- if ( !item.isValid() ) continue;
-
- bool editable = file_info.isWritable() && item.isEditable();
-
- if (editable)
- editItems.append( item );
- else
- readItems.append( item );
- }
-
- KFileMetaInfoWidget* w = 0L;
- // then first add the editable items to the layout
- for (TQValueList<KFileMetaInfoItem>::Iterator iit= editItems.begin();
- iit!=editItems.end(); ++iit)
- {
- TQLabel* l = new TQLabel((*iit).translatedKey() + ":", groupBox);
- l->setAlignment( AlignAuto | AlignTop | ExpandTabs );
- TQValidator* val = mtinfo->createValidator(*git, (*iit).key());
- if (!val) kdDebug(7033) << "didn't get a validator for " << *git << "/" << (*iit).key() << endl;
- w = new KFileMetaInfoWidget(*iit, val, groupBox);
- d->m_editWidgets.append( w );
- connect(w, TQT_SIGNAL(valueChanged(const TQVariant&)), this, TQT_SIGNAL(changed()));
- }
-
- // and then the read only items
- for (TQValueList<KFileMetaInfoItem>::Iterator iit= readItems.begin();
- iit!=readItems.end(); ++iit)
- {
- TQLabel* l = new TQLabel((*iit).translatedKey() + ":", groupBox);
- l->setAlignment( AlignAuto | AlignTop | ExpandTabs );
- (new KFileMetaInfoWidget(*iit, KFileMetaInfoWidget::ReadOnly, 0L, groupBox));
- }
- }
-
- toplayout->addStretch(1);
-
- // the add key (disabled until fully implemented)
-/* d->m_add = new TQPushButton(i18n("&Add"), topframe);
- d->m_add->setSizePolicy(TQSizePolicy(TQSizePolicy::Fixed,
- TQSizePolicy::Fixed));
- connect(d->m_add, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotAdd()));
- tmp->addWidget(d->m_add);
-
- // if nothing can be added, deactivate it
- if ( !d->m_info.supportsVariableKeys() )
- {
- // if supportedKeys() does contain anything not in preferredKeys,
- // we have something addable
-
- TQStringList sk = d->m_info.supportedKeys();
- d->m_add->setEnabled(false);
- for (TQStringList::Iterator it = sk.begin(); it!=sk.end(); ++it)
- {
- if ( l.find(*it)==l.end() )
- {
- d->m_add->setEnabled(true);
- kdDebug(250) << "**first addable key is " << (*it).latin1() << "**" <<endl;
- break;
- }
- kdDebug(250) << "**already existing key is " << (*it).latin1() << "**" <<endl;
- }
- } */
-}
-
-/*void KFileMetaPropsPlugin::slotAdd()
-{
- // add a lineedit for the name
-
-
-
- // insert the item in the list
-
-}*/
-
-KFileMetaPropsPlugin::~KFileMetaPropsPlugin()
-{
- delete d;
-}
-
-bool KFileMetaPropsPlugin::supports( KFileItemList _items )
-{
-#ifdef _GNUC
-#warning TODO: Add support for more than one item
-#endif
- if (KExecPropsPlugin::supports(_items) || KURLPropsPlugin::supports(_items))
- return false; // Having both is redundant.
-
- bool metaDataEnabled = KGlobalSettings::showFilePreview(_items.first()->url());
- return _items.count() == 1 && metaDataEnabled;
-}
-
-void KFileMetaPropsPlugin::applyChanges()
-{
- kdDebug(250) << "applying changes" << endl;
- // insert the fields that changed into the info object
-
- TQPtrListIterator<KFileMetaInfoWidget> it( d->m_editWidgets );
- KFileMetaInfoWidget* w;
- for (; (w = it.current()); ++it) w->apply();
- d->m_info.applyChanges(properties->kurl().path());
-}
-
-#include "kmetaprops.moc"