summaryrefslogtreecommitdiffstats
path: root/kio/kfile/kcombiview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kio/kfile/kcombiview.cpp')
-rw-r--r--kio/kfile/kcombiview.cpp371
1 files changed, 0 insertions, 371 deletions
diff --git a/kio/kfile/kcombiview.cpp b/kio/kfile/kcombiview.cpp
deleted file mode 100644
index 3f199fb92..000000000
--- a/kio/kfile/kcombiview.cpp
+++ /dev/null
@@ -1,371 +0,0 @@
-/* This file is part of the KDE libraries
- Copyright (C) 1998 Stephan Kulow <coolo@kde.org>
- 1998 Daniel Grana <grana@ie.iwi.unibe.ch>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- 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 <assert.h>
-
-#include "kfileitem.h"
-#include "kcombiview.h"
-#include "kfileiconview.h"
-#include "kfiledetailview.h"
-#include "config-kfile.h"
-
-#include <tqevent.h>
-
-#include <tqdir.h>
-
-#include <kapplication.h>
-#include <kconfig.h>
-#include <kdebug.h>
-#include <kglobal.h>
-
-#include <tqvaluelist.h>
-
-KCombiView::KCombiView( TQWidget *parent, const char *name)
- : TQSplitter( parent, name),
- KFileView(),
- right(0),
- m_lastViewForNextItem(0),
- m_lastViewForPrevItem(0)
-{
- left = new KFileIconView( this, "left" );
- left->setAcceptDrops(false);
- left->viewport()->setAcceptDrops(false);
- left->setGridX( 160 );
- left->KFileView::setViewMode( Directories );
- left->setArrangement( TQIconView::LeftToRight );
- left->setParentView( this );
- left->setAcceptDrops(false);
- left->installEventFilter( this );
-
- connect( sig, TQT_SIGNAL( sortingChanged( TQDir::SortSpec ) ),
- TQT_SLOT( slotSortingChanged( TQDir::SortSpec ) ));
-}
-
-KCombiView::~KCombiView()
-{
- delete right;
-}
-
-void KCombiView::setRight(KFileView *view)
-{
- delete right;
- right = view;
- right->KFileView::setViewMode( Files );
- setViewName( right->viewName() );
-
- TQValueList<int> lst;
- lst << left->gridX() + 2 * left->spacing();
- setSizes( lst );
- setResizeMode( left, TQSplitter::KeepSize );
-
- right->setParentView( this );
- right->widget()->setAcceptDrops(acceptDrops());
- right->setDropOptions(dropOptions());
- right->widget()->installEventFilter( this );
-}
-
-
-void KCombiView::insertItem( KFileItem *item )
-{
- KFileView::insertItem( item );
-
- if ( item->isDir() ) {
- left->updateNumbers( item );
- left->insertItem( item );
- }
- else {
- right->updateNumbers( item );
- right->insertItem( item );
- }
-}
-
-void KCombiView::setSorting( TQDir::SortSpec sort )
-{
- if ( !right )
- kdFatal() << "You need to call setRight( someview ) before!" << endl;
- right->setSorting( sort );
- left->setSorting( sort );
-
- KFileView::setSorting( right->sorting() );
-}
-
-void KCombiView::clearView()
-{
- left->clearView();
- if ( right )
- right->clearView();
-}
-
-void KCombiView::updateView( bool b )
-{
- left->updateView( b );
- if ( right )
- right->updateView( b );
-}
-
-void KCombiView::updateView( const KFileItem *i )
-{
- left->updateView( i );
- if ( right )
- right->updateView( i );
-}
-
-void KCombiView::removeItem( const KFileItem *i )
-{
- left->removeItem( i );
- if ( right )
- right->removeItem( i );
- KFileView::removeItem( i );
-}
-
-void KCombiView::listingCompleted()
-{
- left->listingCompleted();
- if ( right )
- right->listingCompleted();
-}
-
-void KCombiView::clear()
-{
- KFileView::clear();
- left->KFileView::clear();
- if ( right )
- right->clear();
-}
-
-void KCombiView::clearSelection()
-{
- left->clearSelection();
- if ( right )
- right->clearSelection();
-}
-
-void KCombiView::selectAll()
-{
- left->selectAll();
- if ( right )
- right->selectAll();
-}
-
-void KCombiView::invertSelection()
-{
- left->invertSelection();
- if ( right )
- right->invertSelection();
-}
-
-bool KCombiView::isSelected( const KFileItem *item ) const
-{
- assert( right ); // for performance reasons no if ( right ) check.
- return (right->isSelected( item ) || left->isSelected( item ));
-}
-
-void KCombiView::setSelectionMode( KFile::SelectionMode sm )
-{
- // I think the left view (directories should always be in
- // Single-Mode, right?
- // left->setSelectionMode( sm );
- if ( !right )
- kdFatal() << "You need to call setRight( someview ) before!" << endl;
- right->setSelectionMode( sm );
-}
-
-void KCombiView::setSelected( const KFileItem *item, bool enable )
-{
- left->setSelected( item, enable );
- if ( right )
- right->setSelected( item, enable );
-}
-
-void KCombiView::setCurrentItem( const KFileItem *item )
-{
- left->setCurrentItem( item );
- if ( right )
- right->setCurrentItem( item );
-}
-
-KFileItem * KCombiView::currentFileItem() const
-{
- // we can actually have two current items, one in each view. So we simply
- // prefer the fileview's item over the directory's.
- // Smarter: if the right view has focus, prefer that over the left.
- if ( !right )
- return left->currentFileItem();
-
- KFileView *preferredView = focusView( right );
- KFileItem *item = preferredView->currentFileItem();
- if ( !item && preferredView != left )
- item = left->currentFileItem();
-
- return item;
-}
-
-void KCombiView::ensureItemVisible(const KFileItem *item)
-{
- left->ensureItemVisible( item );
- if ( right )
- right->ensureItemVisible( item );
-}
-
-KFileItem * KCombiView::firstFileItem() const
-{
- if ( !right )
- return left->firstFileItem();
-
- KFileView *preferredView = focusView( left );
- KFileView *otherView = (preferredView == left) ? right : left;
- KFileItem *item = preferredView->firstFileItem();
- if ( !item )
- item = otherView->firstFileItem();
-
- return item;
-}
-
-KFileItem * KCombiView::nextItem( const KFileItem *fileItem ) const
-{
- if ( !right )
- return left->nextItem( fileItem );
-
- KFileView *preferredView = focusView( left );
- KFileView *otherView = (preferredView == left) ? right : left;
- KFileItem *item = preferredView->nextItem( fileItem );
-
- if ( item )
- m_lastViewForNextItem = preferredView;
- else { // no item, check other view
- // when changing from one to another view, we need to continue
- // with the next view's first item!
- if ( m_lastViewForNextItem != otherView ) {
- m_lastViewForNextItem = otherView;
- return otherView->firstFileItem();
- }
-
- item = otherView->nextItem( fileItem );
- m_lastViewForNextItem = otherView;
- }
-
- return item;
-}
-
-KFileItem * KCombiView::prevItem( const KFileItem *fileItem ) const
-{
- if ( !right )
- return left->nextItem( fileItem );
-
- KFileView *preferredView = focusView( left );
- KFileView *otherView = (preferredView == left) ? right : left;
- KFileItem *item = preferredView->prevItem( fileItem );
- if ( item )
- m_lastViewForPrevItem = preferredView;
-
- else { // no item, check other view
- // when changing from one to another view, we need to continue
- // with the next view's last item!
- if ( m_lastViewForPrevItem != otherView ) {
- fileItem = otherView->firstFileItem();
- while ( otherView->nextItem( fileItem ) ) // find the last item
- fileItem = otherView->nextItem( fileItem );
- }
-
- item = otherView->prevItem( fileItem );
- m_lastViewForPrevItem = otherView;
- }
-
- return item;
-}
-
-void KCombiView::slotSortingChanged( TQDir::SortSpec sorting )
-{
- KFileView::setSorting( sorting );
-}
-
-KFileView *KCombiView::focusView( KFileView *preferred ) const
-{
- TQWidget *w = focusWidget();
- KFileView *other = (right == preferred) ? left : right;
- return (preferred && w == preferred->widget()) ? preferred : other;
-}
-
-void KCombiView::readConfig( TDEConfig *config, const TQString& group )
-{
- left->readConfig( config, group );
- if ( right )
- right->readConfig( config, group );
-}
-
-void KCombiView::writeConfig( TDEConfig *config, const TQString& group )
-{
- left->writeConfig( config, group );
- if ( right )
- right->writeConfig( config, group );
-}
-
-KActionCollection * KCombiView::actionCollection() const
-{
- return focusView( right )->actionCollection();
-}
-
-void KCombiView::setAcceptDrops(bool b)
-{
- left->setAcceptDrops(b);
- if (right)
- right->widget()->setAcceptDrops(b);
- TQSplitter::setAcceptDrops(b);
-}
-
-void KCombiView::setDropOptions_impl(int options)
-{
- KFileView::setDropOptions_impl(options);
- left->setDropOptions(options);
- if (right)
- right->setDropOptions(options);
-}
-
-void KCombiView::virtual_hook( int id, void* data )
-{
- switch(id) {
- case VIRTUAL_SET_DROP_OPTIONS:
- setDropOptions_impl(*(int *)data);
- break;
- default:
- KFileView::virtual_hook( id, data );
- }
-}
-
-bool KCombiView::eventFilter( TQObject *o, TQEvent *e )
-{
- int type = e->type();
-
- // only the focused view may have a selection
- if ( type == TQEvent::FocusIn )
- {
- if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(left) )
- right->clearSelection();
- else if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(right->widget()) )
- left->clearSelection();
- }
-
- return TQSplitter::eventFilter( o, e );
-}
-
-#include "kcombiview.moc"
-