From kde-core-devel Tue Oct 29 12:03:47 2002 From: Neil Stevens Date: Tue, 29 Oct 2002 12:03:47 +0000 To: kde-core-devel Subject: Re: PATCH to make minicli use all KURIFilterPlugins X-MARC-Message: https://marc.info/?l=kde-core-devel&m=103589309027712 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--------------Boundary-00=_B6SQU42L0BJSY8M70I1B" --------------Boundary-00=_B6SQU42L0BJSY8M70I1B Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tuesday October 29, 2002 03:20, David Faure wrote: > I don't see the need for this redundant storing. Why not implement > plugins() (which should be called pluginNames() instead) in terms of > "iterate over m_lstPlugins and collect names"? > pluginNames() won't be called by all apps using the class, so the > additional memory storage isn't worth it. > > OTOH I would still store the two lists as member variables in minicli, > so that it doesn't have to remove() in each call to parseLine() - which > is called for _every_ keypress! I don't see this as really being a problem as I doubt there will exist that many filters, and the idea of having every user of KURIFilter doing its own cache bothers me, but ultimately it's not important to me which end the cache is on. I just want my apidocs. So here it is your way. - -- Neil Stevens - neil@qualityassistant.com "The nearest I can make it out, 'Love your Enemies' means, 'Hate your Friends'." - Benjamin Franklin -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE9vnkpf7mnligQOmERAiAhAJ4ynZton6xQwN1tfeqYZqIE6G8cHwCfU1hZ UKwNMpIGElh99uLFuU7Ur60= =7E3E -----END PGP SIGNATURE----- --------------Boundary-00=_B6SQU42L0BJSY8M70I1B Content-Type: text/x-diff; charset="iso-8859-1"; name="kdesktop-minicli-again" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="kdesktop-minicli-again" Index: minicli.cpp =================================================================== RCS file: /home/kde/kdebase/kdesktop/minicli.cpp,v retrieving revision 1.134 diff -u -r1.134 minicli.cpp --- minicli.cpp 2002/08/21 00:24:12 1.134 +++ minicli.cpp 2002/10/29 12:01:35 @@ -124,6 +124,11 @@ loadConfig(); KWin::setState( winId(), NET::StaysOnTop ); + + finalFilters = KURIFilter::self()->pluginNames(); + finalFilters.remove("kuriikwsfilter"); + middleFilters = finalFilters; + middleFilters.remove("localdomainurifilter"); } Minicli::~Minicli() @@ -537,11 +542,10 @@ else { m_filterData->setData( cmd ); - QStringList filters; - filters << "kurisearchfilter" << "kshorturifilter"; - if( final ) - filters << "localdomainurifilter"; - KURIFilter::self()->filterURI( *(m_filterData), filters ); + if( final ) + KURIFilter::self()->filterURI( *(m_filterData), finalFilters ); + else + KURIFilter::self()->filterURI( *(m_filterData), middleFilters ); m_IconName = m_filterData->iconName(); if( m_IconName.isEmpty() || m_IconName == "unknown" ) m_IconName = QString::fromLatin1("go"); Index: minicli.h =================================================================== RCS file: /home/kde/kdebase/kdesktop/minicli.h,v retrieving revision 1.37 diff -u -r1.37 minicli.h --- minicli.h 2002/08/20 19:28:37 1.37 +++ minicli.h 2002/10/29 12:01:35 @@ -79,6 +79,9 @@ QPushButton* btnRun; QGridLayout *m_vbox; QStringList terminalAppList; + + QStringList middleFilters; + QStringList finalFilters; }; class MinicliAdvanced : public QGroupBox --------------Boundary-00=_B6SQU42L0BJSY8M70I1B Content-Type: text/x-diff; charset="iso-8859-1"; name="kurifilter-again" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="kurifilter-again" Index: kurifilter.cpp =================================================================== RCS file: /home/kde/kdelibs/kio/kio/kurifilter.cpp,v retrieving revision 1.30 diff -u -r1.30 kurifilter.cpp --- kurifilter.cpp 2002/06/19 17:46:01 1.30 +++ kurifilter.cpp 2002/10/29 11:53:11 @@ -265,6 +265,14 @@ return QPtrListIterator(m_lstPlugins); }; +QStringList KURIFilter::pluginNames() const +{ + QStringList list; + for(QPtrListIterator i = pluginsIterator(); *i; ++i) + list.append((*i)->name()); + return list; +} + void KURIFilter::loadPlugins() { KTrader::OfferList offers = KTrader::self()->query( "KURIFilter/Plugin" ); Index: kurifilter.h =================================================================== RCS file: /home/kde/kdelibs/kio/kio/kurifilter.h,v retrieving revision 1.26 diff -u -r1.26 kurifilter.h --- kurifilter.h 2002/10/20 22:38:27 1.26 +++ kurifilter.h 2002/10/29 11:53:11 @@ -562,6 +562,15 @@ */ QPtrListIterator pluginsIterator() const; + /** + * Return a list of the names of all loaded plugins + * + * @since 3.1 + * + * @return a QStringList of plugin names + */ + QStringList pluginNames() const; + protected: /** --------------Boundary-00=_B6SQU42L0BJSY8M70I1B--