/* * Copyright (C) 2002, 2003 David Faure <faure@kde.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License version 2 as published by the Free Software Foundation; * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include <kdebug.h> #include <kuserprofile.h> #include <ktrader.h> #include <kservice.h> #include <kmimetype.h> #include <assert.h> #include <kstandarddirs.h> #include <kservicegroup.h> #include <kimageio.h> #include <kprotocolinfo.h> #include <kiconloader.h> #include <kapplication.h> #include <stdio.h> #include <stdlib.h> bool check(TQString txt, TQString a, TQString b) { if (a.isEmpty()) a = TQString::null; if (b.isEmpty()) b = TQString::null; if (a == b) { kdDebug() << txt << " : checking '" << a << "' against expected value '" << b << "'... " << "ok" << endl; } else { kdDebug() << txt << " : checking '" << a << "' against expected value '" << b << "'... " << "KO !" << endl ; exit(1); } return true; } void debug(TQString txt) { fprintf(stderr, "%s\n", txt.ascii()); } void debug(const char *txt) { fprintf(stderr, "%s\n", txt); } void debug(const char *format, const char *txt) { fprintf(stderr, format, txt); fprintf(stderr, "\n"); } int main(int argc, char *argv[]) { KApplication k(argc,argv,"whatever",false/*noGUI*/); // KMessageBox needs KApp for makeStdCaption TQCString instname = "kword"; TQString desktopPath = TQString::tqfromLatin1( "Office/%1.desktop" ).arg( instname ); qDebug( "Looking for %s", desktopPath.latin1() ); KService::Ptr service = KService::serviceByDesktopPath( desktopPath ); if ( service ) qDebug( "found: %s", service->desktopEntryPath().latin1() ); else qDebug( "not found" ); qDebug( "Looking for desktop name = %s", instname.data() ); service = KService::serviceByDesktopName( instname ); if ( service ) qDebug( "found: %s", service->desktopEntryPath().latin1() ); else qDebug( "not found" ); debug("Trying to look for text/plain"); KMimeType::Ptr s1 = KMimeType::mimeType("text/plain"); if ( s1 ) { debug("Found it !"); debug(TQString("Comment is %1").arg(s1->comment(KURL(),false))); } else { debug("Not found !"); exit(1); } debug("Trying to look for application/x-zerosize"); KMimeType::Ptr s0 = KMimeType::mimeType("application/x-zerosize"); if ( s0 ) { debug("Found it !"); debug(TQString("Comment is %1").arg(s0->comment(KURL(),false))); } else { debug("Not found !"); exit(1); } debug("Trying to look for Desktop Pager"); KService::Ptr se = KService::serviceByName("Desktop Pager"); if ( se ) { debug("Found it !"); debug(TQString("Comment is %1").arg(se->comment())); } else { debug("Not found !"); } debug("Trying to look for kpager"); se = KService::serviceByDesktopName("kpager"); if ( se ) { debug("Found it !"); debug(TQString("Comment is %1").arg(se->comment())); TQVariant qv = se->property("DocPath"); debug(TQString("Property type is %1").arg(qv.typeName())); debug(TQString("Property value is %1").arg(qv.toString())); } else { debug("Not found !"); } debug("Trying to look for System/kpager.desktop"); se = KService::serviceByDesktopPath("System/kpager.desktop"); if ( se ) { debug("Found it !"); debug(TQString("Comment is %1").arg(se->comment())); } else { debug("Not found !"); } debug("Trying to look for System/fake-entry.desktop"); se = KService::serviceByDesktopPath("System/fake-entry.desktop"); if ( se ) { debug("Found it !"); debug(TQString("Comment is %1").arg(se->comment())); } else { debug("Not found !"); } #if 1 debug("Querying userprofile for services associated with text/plain"); KServiceTypeProfile::OfferList offers = KServiceTypeProfile::offers("text/plain"); debug(TQString("got %1 offers").arg(offers.count())); KServiceTypeProfile::OfferList::Iterator it = offers.begin(); for ( ; it != offers.end() ; it++ ) { debug((*it).service()->name()); } debug("Querying userprofile for services associated with KOfficeFilter"); offers = KServiceTypeProfile::offers("KOfficeFilter"); debug(TQString("got %1 offers").arg(offers.count())); it = offers.begin(); for ( ; it != offers.end() ; it++ ) { debug((*it).service()->name()); } debug("Querying trader for Konqueror/Plugin"); KTrader::OfferList traderoffers = KTrader::self()->query("Konqueror/Plugin"); debug(TQString("got %1 offers").arg(traderoffers.count())); KTrader::OfferList::Iterator trit = traderoffers.begin(); for ( ; trit != traderoffers.end() ; trit++ ) { debug((*trit)->name()); } #endif // debug("\nTrying findByURL for $KDEDIR/bin/kdesktop"); KMimeType::Ptr mf = KMimeType::findByURL( KStandardDirs::findExe( "kdesktop" ), 0, true, false ); assert( mf ); check( "A binary's mimetype", mf->name(), "application/x-executable" ); // debug("\nTrying findByURL for folder_home.png"); TQString fh; (void)k.iconLoader()->loadIcon("folder_home.png",KIcon::Desktop,0,KIcon::DefaultState,&fh); mf = KMimeType::findByURL( fh, 0, true, false ); assert( mf ); check( "A PNG's mimetype", mf->name(), "image/png" ); // //debug("\nTrying findByURL for Makefile.am"); //mf = KMimeType::findByURL( KURL("/tmp/Makefile.am"), 0, true, false ); //assert( mf ); //debug(TQString("Name is %1").arg(mf->name())); //debug(TQString("Comment is %1").arg(mf->comment(KURL(),false))); debug("\nTrying findByURL for man:/ls"); mf = KMimeType::findByURL( KURL("man:/ls") ); assert( mf ); check( "man:/ls", mf->name(), "text/html" ); check( "man:/ls/", mf->name(), "text/html" ); mf = KMimeType::findByURL( KURL("http://foo/bar.png") ); check( "HTTP URL", mf->name(), "application/octet-stream" ); // HTTP can't know before downloading #if 1 KMimeType::List mtl; mtl = KMimeType::allMimeTypes( ); assert( mtl.count() ); debug(TQString("Found %1 mime types.").arg(mtl.count())); for(int i = 0; i < (int)mtl.count(); i++) { debug(TQString("Mime type %1: %2.").arg(i).arg(mtl[i]->name())); } KService::List sl; sl = KService::allServices( ); assert( sl.count() ); debug(TQString("Found %1 services.").arg(sl.count())); KServiceGroup::Ptr root = KServiceGroup::root(); KServiceGroup::List list = root->entries(); //KServiceGroup::Ptr topGroup = KServiceGroup::childGroup( "kview" ); //Q_ASSERT( topGroup ); //KServiceGroup::List list = topGroup->entries(); KServiceGroup::Ptr first; debug(TQString("Found %1 entries").arg(list.count())); for( KServiceGroup::List::ConstIterator it = list.begin(); it != list.end(); it++) { KSycocaEntry *p = (*it); if (p->isType(KST_KService)) { KService *service = static_cast<KService *>(p); debug(service->name()); debug(service->desktopEntryPath()); } else if (p->isType(KST_KServiceGroup)) { KServiceGroup *serviceGroup = static_cast<KServiceGroup *>(p); debug(TQString(" %1 -->").arg(serviceGroup->caption())); if (!first) first = serviceGroup; } else { debug("KServiceGroup: Unexpected object in list!"); } } if (first) { list = first->entries(); debug(TQString("Found %1 entries").arg(list.count())); for( KServiceGroup::List::ConstIterator it = list.begin(); it != list.end(); it++) { KSycocaEntry *p = (*it); if (p->isType(KST_KService)) { KService *service = static_cast<KService *>(p); debug(TQString(" %1").arg(service->name())); } else if (p->isType(KST_KServiceGroup)) { KServiceGroup *serviceGroup = static_cast<KServiceGroup *>(p); debug(TQString(" %1 -->").arg(serviceGroup->caption())); } else { debug("KServiceGroup: Unexpected object in list!"); } } } debug("--services that require initialisation--"); sl = KService::allInitServices(); for( KService::List::ConstIterator it = sl.begin(); it != sl.end(); it++) { KService *service = static_cast<KService *>(*it); debug(service->name()); } debug("--End of list--"); debug("--protocols--"); TQStringList stringL = KProtocolInfo::protocols(); for( TQStringList::ConstIterator it = stringL.begin(); it != stringL.end(); it++) { debug((*it).ascii()); } debug("--End of list--"); #endif #if 0 KImageIO::registerFormats(); TQStringList types; types = KImageIO::types(KImageIO::Reading); debug("Can read:"); for(TQStringList::ConstIterator it = types.begin(); it != types.end(); ++it) debug(TQString(" %1").arg((*it))); types = KImageIO::types(KImageIO::Writing); debug("Can write:"); for(TQStringList::ConstIterator it = types.begin(); it != types.end(); ++it) debug(TQString(" %1").arg((*it))); TQString rPattern = KImageIO::pattern( KImageIO::Reading ); debug("Read pattern:\n%s", rPattern.ascii()); TQString wPattern = KImageIO::pattern( KImageIO::Writing ); debug("Write pattern:\n%s", wPattern.ascii()); TQString suffix = KImageIO::suffix("JPEG"); debug("Standard suffix for JPEG: %s", suffix.ascii()); types = KImageIO::mimeTypes(KImageIO::Reading); debug("Can read (mimetypes):"); for(TQStringList::ConstIterator it = types.begin(); it != types.end(); ++it) debug(" %s", (*it).ascii()); types = KImageIO::mimeTypes(KImageIO::Writing); debug("Can write (mimetypes):"); for(TQStringList::ConstIterator it = types.begin(); it != types.end(); ++it) debug(" %s", (*it).ascii()); debug("done"); #endif return 0; }