From d0c61661d694574dfaf18162e015c493cd1d571c Mon Sep 17 00:00:00 2001 From: zecke Date: Sat, 05 Oct 2002 21:20:45 +0000 Subject: Implemented the factory now I can finally do switching --- (limited to 'libopie/ofileselector/ofilefactory.cpp') diff --git a/libopie/ofileselector/ofilefactory.cpp b/libopie/ofileselector/ofilefactory.cpp index f752149..aa143b4 100644 --- a/libopie/ofileselector/ofilefactory.cpp +++ b/libopie/ofileselector/ofilefactory.cpp @@ -8,33 +8,51 @@ QStringList OFileFactory::lister()const { QStringList list; QMap::ConstIterator it; for ( it = m_lister.begin(); it != m_lister.end(); ++it ) { - list << (*it); + list << it.key(); } return list; } QStringList OFileFactory::views()const { QStringList list; - + QMap::ConstIterator it; + for (it = m_view.begin(); it != m_view.end(); ++it ) { + list << it.key(); + } return list; } OFileView* OFileFactory::view( const QString& name, - OFileSelector*, QWidget* ) { - -} -OLister* OFileFactory::lister(const QString&, OFileSelector*) { + OFileSelector* sel, QWidget* par) { + OFileView* vie= 0l; -} -void OFileFactory::addLister( const QString&, listerFact fact ) { + QMap::Iterator it; + it = m_view.find( name ); + if ( it != m_view.end() ) { + vie = (*(it.data() ) )(sel, par); + } + return vie; } -void OFileFactory::addView( const QString&, viewFact fact ) { +OLister* OFileFactory::lister(const QString& name, OFileSelector* sel) { + OLister* lis = 0l; + QMap::Iterator it; + it = m_lister.find( name ); + if ( it != m_lister.end() ) { + lis = (*(it.data() ) )(sel); + } + return lis; } -void OFileFactory::removeLister( const QString& ) { - +void OFileFactory::addLister( const QString& name, listerFact fact ) { + m_lister.insert( name, fact ); } -void OFileFactory::removeView( const QString& ) { - +void OFileFactory::addView( const QString& name, viewFact fact ) { + m_view.insert( name, fact ); +} +void OFileFactory::removeLister( const QString& name) { + m_lister.remove( name ); +} +void OFileFactory::removeView( const QString& name) { + m_view.remove( name ); } -- cgit v0.9.0.2