25 #include "tdefileitem.h"
26 #include "kcombiview.h"
27 #include "tdefileiconview.h"
28 #include "tdefiledetailview.h"
29 #include "config-tdefile.h"
35 #include <tdeapplication.h>
36 #include <tdeconfig.h>
38 #include <tdeglobal.h>
40 #include <tqvaluelist.h>
42 KCombiView::KCombiView( TQWidget *parent,
const char *name)
43 : TQSplitter( parent, name),
46 m_lastViewForNextItem(0),
47 m_lastViewForPrevItem(0)
50 left->setAcceptDrops(
false);
51 left->viewport()->setAcceptDrops(
false);
52 left->setGridX( 160 );
53 left->KFileView::setViewMode( Directories );
54 left->setArrangement( TQIconView::LeftToRight );
55 left->setParentView(
this );
56 left->setAcceptDrops(
false);
57 left->installEventFilter(
this );
59 connect( sig, TQT_SIGNAL( sortingChanged( TQDir::SortSpec ) ),
60 TQT_SLOT( slotSortingChanged( TQDir::SortSpec ) ));
63 KCombiView::~KCombiView()
72 right->KFileView::setViewMode( Files );
76 lst << left->gridX() + 2 * left->spacing();
78 setResizeMode( left, TQSplitter::KeepSize );
80 right->setParentView(
this );
81 right->
widget()->setAcceptDrops(acceptDrops());
83 right->
widget()->installEventFilter(
this );
91 if ( item->isDir() ) {
104 kdFatal() <<
"You need to call setRight( someview ) before!" << endl;
150 left->KFileView::clear();
182 void KCombiView::setSelectionMode( KFile::SelectionMode sm )
188 kdFatal() <<
"You need to call setRight( someview ) before!" << endl;
189 right->setSelectionMode( sm );
214 KFileView *preferredView = focusView( right );
216 if ( !item && preferredView != left )
229 KFileItem * KCombiView::firstFileItem()
const
232 return left->firstFileItem();
234 KFileView *preferredView = focusView( left );
235 KFileView *otherView = (preferredView == left) ? right : left;
236 KFileItem *item = preferredView->firstFileItem();
238 item = otherView->firstFileItem();
243 KFileItem * KCombiView::nextItem(
const KFileItem *fileItem )
const
246 return left->nextItem( fileItem );
248 KFileView *preferredView = focusView( left );
249 KFileView *otherView = (preferredView == left) ? right : left;
250 KFileItem *item = preferredView->nextItem( fileItem );
253 m_lastViewForNextItem = preferredView;
257 if ( m_lastViewForNextItem != otherView ) {
258 m_lastViewForNextItem = otherView;
259 return otherView->firstFileItem();
262 item = otherView->nextItem( fileItem );
263 m_lastViewForNextItem = otherView;
269 KFileItem * KCombiView::prevItem(
const KFileItem *fileItem )
const
272 return left->nextItem( fileItem );
274 KFileView *preferredView = focusView( left );
275 KFileView *otherView = (preferredView == left) ? right : left;
276 KFileItem *item = preferredView->prevItem( fileItem );
278 m_lastViewForPrevItem = preferredView;
283 if ( m_lastViewForPrevItem != otherView ) {
284 fileItem = otherView->firstFileItem();
285 while ( otherView->nextItem( fileItem ) )
286 fileItem = otherView->nextItem( fileItem );
289 item = otherView->prevItem( fileItem );
290 m_lastViewForPrevItem = otherView;
296 void KCombiView::slotSortingChanged( TQDir::SortSpec sorting )
303 TQWidget *w = focusWidget();
304 KFileView *other = (right == preferred) ? left : right;
305 return (preferred && w == preferred->
widget()) ? preferred : other;
308 void KCombiView::readConfig( TDEConfig *config,
const TQString& group )
310 left->readConfig( config, group );
312 right->readConfig( config, group );
315 void KCombiView::writeConfig( TDEConfig *config,
const TQString& group )
317 left->writeConfig( config, group );
319 right->writeConfig( config, group );
327 void KCombiView::setAcceptDrops(
bool b)
329 left->setAcceptDrops(b);
331 right->
widget()->setAcceptDrops(b);
332 TQSplitter::setAcceptDrops(b);
335 void KCombiView::setDropOptions_impl(
int options)
337 KFileView::setDropOptions_impl(options);
343 void KCombiView::virtual_hook(
int id,
void* data )
346 case VIRTUAL_SET_DROP_OPTIONS:
347 setDropOptions_impl(*(
int *)data);
350 KFileView::virtual_hook(
id, data );
354 bool KCombiView::eventFilter( TQObject *o, TQEvent *e )
356 int type = e->type();
359 if ( type == TQEvent::FocusIn )
361 if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(left) )
363 else if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(right->
widget()) )
367 return TQSplitter::eventFilter( o, e );
370 #include "kcombiview.moc"