00001 #include "metafactory.h"
00002
00003 MetaFactory::MetaFactory() {
00004 }
00005 MetaFactory::~MetaFactory() {
00006
00007 }
00008 void MetaFactory::addConnectionWidgetFactory( const QCString& name,
00009 const QString& str,
00010 configWidget wid) {
00011 m_strings.insert( str, name );
00012 m_conFact.insert( str, wid );
00013 }
00014 void MetaFactory::addTerminalWidgetFactory( const QCString& name,
00015 const QString& str,
00016 configWidget wid ) {
00017 m_strings.insert( str, name );
00018 m_termFact.insert( str, wid );
00019 }
00020 void MetaFactory::addKeyboardWidgetFactory( const QCString& name,
00021 const QString & str,
00022 configWidget wid) {
00023 m_strings.insert( str, name );
00024 m_keyFact.insert( str, wid );
00025
00026 }
00027 void MetaFactory::addIOLayerFactory( const QCString& name,
00028 const QString& str,
00029 iolayer lay) {
00030 m_strings.insert( str, name );
00031 m_layerFact.insert( str, lay );
00032 }
00033 void MetaFactory::addFileTransferLayer( const QCString& name,
00034 const QString& str,
00035 filelayer lay) {
00036 m_strings.insert(str, name );
00037 m_fileFact.insert( str, lay );
00038 }
00039 void MetaFactory::addReceiveLayer( const QCString& name,
00040 const QString& str,
00041 receivelayer lay) {
00042 m_strings.insert(str, name );
00043 m_receiveFact.insert( str, lay );
00044 }
00045 QStringList MetaFactory::ioLayers()const {
00046 QStringList list;
00047 QMap<QString, iolayer>::ConstIterator it;
00048 for (it = m_layerFact.begin(); it != m_layerFact.end(); ++it ) {
00049 list << it.key();
00050 }
00051 return list;
00052 }
00053 QStringList MetaFactory::connectionWidgets()const {
00054 QStringList list;
00055 QMap<QString, configWidget>::ConstIterator it;
00056 for ( it = m_conFact.begin(); it != m_conFact.end(); ++it ) {
00057 list << it.key();
00058 }
00059 return list;
00060 }
00061 QStringList MetaFactory::terminalWidgets()const {
00062 QStringList list;
00063 QMap<QString, configWidget>::ConstIterator it;
00064 for ( it = m_termFact.begin(); it != m_termFact.end(); ++it ) {
00065 list << it.key();
00066 }
00067 return list;
00068 }
00069 QStringList MetaFactory::fileTransferLayers()const {
00070 QStringList list;
00071 QMap<QString, filelayer>::ConstIterator it;
00072 for ( it = m_fileFact.begin(); it != m_fileFact.end(); ++it ) {
00073 list << it.key();
00074 }
00075 return list;
00076 }
00077 QStringList MetaFactory::receiveLayers()const {
00078 QStringList list;
00079 QMap<QString, receivelayer>::ConstIterator it;
00080 for ( it = m_receiveFact.begin(); it != m_receiveFact.end(); ++it ) {
00081 list << it.key();
00082 }
00083 return list;
00084 }
00085
00086 IOLayer* MetaFactory::newIOLayer( const QString& str,const Profile& prof ) {
00087 IOLayer* lay = 0l;
00088
00089 QMap<QString, iolayer>::Iterator it;
00090 it = m_layerFact.find( str );
00091 if ( it != m_layerFact.end() ) {
00092 lay = (*(it.data()))(prof);
00093
00094
00095
00096 }
00097
00098 return lay;
00099 }
00100
00101 ProfileDialogWidget *MetaFactory::newConnectionPlugin ( const QString& str, QWidget *parent) {
00102 ProfileDialogWidget* wid = 0l;
00103
00104 QMap<QString, configWidget>::Iterator it;
00105 it = m_conFact.find( str );
00106 if ( it != m_conFact.end() ) {
00107 wid = (*(it.data() ) )(str,parent);
00108 }
00109 return wid;
00110 }
00111 ProfileDialogWidget *MetaFactory::newTerminalPlugin( const QString& str, QWidget *parent) {
00112 if (str.isEmpty() )
00113 return 0l;
00114 ProfileDialogWidget* wid = 0l;
00115
00116 QMap<QString, configWidget>::Iterator it;
00117 it = m_termFact.find( str );
00118 if ( it != m_termFact.end() ) {
00119 wid = (*(it.data() ) )(str,parent);
00120 }
00121 return wid;
00122 }
00123 ProfileDialogWidget *MetaFactory::newKeyboardPlugin( const QString& str, QWidget *parent) {
00124
00125 if (str.isEmpty() )
00126 return 0l;
00127 ProfileDialogWidget* wid = 0l;
00128
00129 QMap<QString, configWidget>::Iterator it;
00130 it = m_keyFact.find( str );
00131 if ( it != m_keyFact.end() ) {
00132 wid = (*(it.data() ) )(str,parent);
00133 }
00134 return wid;
00135 }
00136 FileTransferLayer* MetaFactory::newFileTransfer(const QString& str, IOLayer* lay ) {
00137 FileTransferLayer* file = 0l;
00138 QMap<QString, filelayer>::Iterator it;
00139 it = m_fileFact.find( str );
00140 if ( it != m_fileFact.end() ) {
00141 file = (*(it.data() ) )(lay);
00142 }
00143 return file;
00144 }
00145 ReceiveLayer* MetaFactory::newReceive(const QString& str, IOLayer* lay ) {
00146 ReceiveLayer* file = 0l;
00147 QMap<QString, receivelayer>::Iterator it;
00148 it = m_receiveFact.find( str );
00149 if ( it != m_receiveFact.end() ) {
00150 file = (*(it.data() ) )(lay);
00151 }
00152 return file;
00153 }
00154 QCString MetaFactory::internal( const QString& str )const {
00155 return m_strings[str];
00156 }
00157 QString MetaFactory::external( const QCString& str )const {
00158 QMap<QString, QCString>::ConstIterator it;
00159 for ( it = m_strings.begin(); it != m_strings.end(); ++it ) {
00160 if ( it.data() == str )
00161 return it.key();
00162 }
00163 return QString::null;
00164 }