diff options
Diffstat (limited to 'krusader/GUI/dirhistoryqueue.cpp')
-rw-r--r-- | krusader/GUI/dirhistoryqueue.cpp | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/krusader/GUI/dirhistoryqueue.cpp b/krusader/GUI/dirhistoryqueue.cpp new file mode 100644 index 0000000..a66d47f --- /dev/null +++ b/krusader/GUI/dirhistoryqueue.cpp @@ -0,0 +1,87 @@ +/*************************************************************************** + dirhistoryqueue.cpp - description + ------------------- + begin : Thu Jan 1 2004 + copyright : (C) 2004 by Shie Erlich & Rafi Yanai + email : +***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include "dirhistoryqueue.h" +#include "../Panel/listpanel.h" + +#include <kdebug.h> + +DirHistoryQueue::DirHistoryQueue( ListPanel* p ) { + panel = p; + + connect( panel, SIGNAL( pathChanged( ListPanel* ) ), this, SLOT( slotPathChanged( ListPanel* ) ) ); +} +DirHistoryQueue::~DirHistoryQueue() {} + +/** No descriptions */ +void DirHistoryQueue::slotPathChanged( ListPanel* p ) { + KURL url = p->virtualPath(); + // already in the queue ? + if( urlQueue.findIndex( url ) >= 0 ){ + // remove it ! + urlQueue.remove( url ); + } + // do we have room for another ? + if ( urlQueue.size() > 12 ) { + // no room - remove the oldest entry + urlQueue.pop_back(); + } + + urlQueue.push_front( url ); +} + +#if 0 +void DirHistoryQueue::addUrl(const KURL& url){ + if ( pathQueue.findIndex( path ) == -1 ) { + if ( pathQueue.size() > 12 ) { + // remove the oldest entry + pathQueue.pop_back(); + } + } else { + pathQueue.remove( path ); + } + + pathQueue.push_front( path ); +} + +void DirHistoryQueue::RemovePath( const QString& path ) { + QStringList::iterator it; + it = pathQueue.find( path ); + if ( it != pathQueue.end() ) { + pathQueue.remove( it ); + } +} + +bool DirHistoryQueue::checkPath( const QString& path ) { + KURL url( path ); + + QString p = url.path(); + // kdDebug() << "url:" << p << ", file: " << url.fileName() << ", dir: " << url.directory() << endl; + if ( url.protocol() == "file" ) { + QDir dir( path ); + if ( !dir.exists() ) { + RemovePath( path ); + return false; + } + } + + return true; + +} +#endif + +#include "dirhistoryqueue.moc" |