<config>
    <moduleName>kdecore</moduleName>
    <parentModules>
        <module>qtcore</module>
        <module>qtnetwork</module>
        <module>qtdbus</module>
    </parentModules>
    <scalarTypes>
        <!-- QString is a class, but represented as a scalar (#) in munged names -->
        <typeName>QString</typeName>
    </scalarTypes>
    <voidpTypes>
        <!-- both are classes, but they are represented as Smoke::t_voidp -->
        <typeName>QStringList</typeName>
        <typeName>QString</typeName>
        <typeName>KUrl::List</typeName>
    </voidpTypes>
    <exclude>
        <!-- private stuff -->
        <signature>.*::d</signature>
        <signature>.*::d_ptr</signature>
        <signature>.*::q_ptr</signature>
        <signature>.*::q</signature>
        <signature>.*::virtual_hook\(int, void\*\).*</signature>
        <signature>.*QDebug.*</signature>
        <signature>.*Q3.*</signature>

        <signature>.*stat\*.*</signature>
        <signature>.*utimbuf\*.*</signature>
        
        <signature>.*KAuth::ActionReply::setType\(KAuth::ActionReply::Type\)</signature>
        
        <!-- For some reason kconfiggroup.h includes conversion_check.h which in turn includes QtGui -->
        <signature>.*QColor*.*</signature>
        <signature>.*QFont*.*</signature>

        <!-- operator(<<|>>)(QDataStream&, KDateTime*) - why are these operators not implemented/exported? -->
        <signature>.*operator(&lt;&lt;|&gt;&gt;)\(QDataStream&amp;, (const\s)?KDateTime.*</signature>
    </exclude>
    <functions>
        <!-- include functions starting with 'k' -->
        <name>^k.*</name>
        <name>.*::k.*</name>

        <name>K.*::.*</name>
        <!-- and operators -->
        <name>.*operator.*</name>
        <!-- and i18n functions -->
        <name>.*i18n.*</name>
    </functions>
    <classList>
        <class>KAboutData</class>
        <class>KAboutLicense</class>
        <class>KAboutPerson</class>
        <class>KAuth</class>
        <class>KAuth::Action</class>
        <class>KAuth::ActionReply</class>
        <class>KAuth::ActionWatcher</class>
        <class>KAuth::AuthBackend</class>
        <class>KAuth::AuthServicesBackend</class>
        <class>KAuth::BackendsManager</class>
        <class>KAuth::DBusHelperProxy</class>
        <class>KAuth::FakeBackend</class>
        <class>KAuth::FakeHelperProxy</class>
        <class>KAuth::HelperProxy</class>
        <class>KAuth::PolicyKitBackend</class>
        <class>KAuth::Polkit1Backend</class>
        <class>KAuthorized</class>
        <class>KAutoSaveFile</class>
        <class>KAutostart</class>
        <class>KCalendarSystem</class>
        <class>KCharMacroExpander</class>
        <class>KCharsets</class>
        <class>KCmdLineArgs</class>
        <class>KCmdLineOptions</class>
        <class>KCodecs</class>
        <class>KComponentData</class>
        <class>KCompositeJob</class>
        <class>KCompositeJobPrivate</class>
        <class>KConfigBackend</class>
        <class>KConfigBase</class>
        <class>KConfig</class>
        <class>KConfigGroup</class>
        <class>KConfigSkeletonItem</class>
        <class>KCoreConfigSkeleton</class>
        <class>KCoreConfigSkeleton::ItemBool</class>
        <class>KCoreConfigSkeleton::ItemDateTime</class>
        <class>KCoreConfigSkeleton::ItemDouble</class>
        <class>KCoreConfigSkeleton::ItemEnum::Choice2</class>
        <class>KCoreConfigSkeleton::ItemEnum::Choice</class>
        <class>KCoreConfigSkeleton::ItemEnum</class>
        <class>KCoreConfigSkeleton::ItemInt</class>
        <class>KCoreConfigSkeleton::ItemIntList</class>
        <class>KCoreConfigSkeleton::ItemLongLong</class>
        <class>KCoreConfigSkeleton::ItemPassword</class>
        <class>KCoreConfigSkeleton::ItemPath</class>
        <class>KCoreConfigSkeleton::ItemPathList</class>
        <class>KCoreConfigSkeleton::ItemPoint</class>
        <class>KCoreConfigSkeleton::ItemProperty</class>
        <class>KCoreConfigSkeleton::ItemRect</class>
        <class>KCoreConfigSkeleton::ItemSize</class>
        <class>KCoreConfigSkeleton::ItemString</class>
        <class>KCoreConfigSkeleton::ItemStringList</class>
        <class>KCoreConfigSkeleton::ItemUInt</class>
        <class>KCoreConfigSkeleton::ItemULongLong</class>
        <class>KCoreConfigSkeleton::ItemUrl</class>
        <class>KCoreConfigSkeleton::ItemUrlList</class>
        <class>KCurrencyCode</class>
        <class>KDateTime</class>
        <class>KDateTime::Spec</class>
        <class>KDebug</class>
        <class>KDebugTag</class>
        <class>KDEDModule</class>
        <class>KDEPluginVerificationData</class>
        <class>KDesktopFile</class>
        <class>KEncodingDetector</class>
        <class>KEncodingProber</class>
        <class>KFilterBase</class>
        <class>KFilterDev</class>
        <class>KFolderMimeType</class>
        <class>KGzipFilter</class>
        <class>KIDNA</class>
        <class>KJob</class>
        <class>KJobPrivate</class>
        <class>KJobTrackerInterface</class>
        <class>KJobUiDelegate</class>
        <class>KLibLoader</class>
        <class>KLibrary</class>
        <class>KLocale</class>
        <class>KLocalizedString</class>
        <class>KLocalSocket</class>
        <class>KLocalSocketServer</class>
        <class>KLockFile</class>
        <class>KMacroExpanderBase</class>
        <class>KMacroExpander</class>
        <class>KMD5</class>
        <class>KMemFile</class>
        <class>KMessage</class>
        <class>KMessageHandler</class>
        <class>KMimeType</class>
        <class>KMimeTypeFactory</class>
        <class>KMimeTypeTrader</class>
        <class>kndbgstream</class>
        <class>KNetwork</class>
        <class>KNetwork::KActiveSocketBase</class>
        <class>KNetwork::KBufferedSocket</class>
        <class>KNetwork::KClientSocketBase</class>
        <class>KNetwork::KDatagramPacket</class>
        <class>KNetwork::KDatagramSocket</class>
        <class>KNetwork::KHttpProxySocketDevice</class>
        <class>KNetwork::KInetSocketAddress</class>
        <class>KNetwork::KPassiveSocketBase</class>
        <class>KNetwork::KResolver</class>
        <class>KNetwork::KResolverEntry</class>
        <class>KNetwork::KResolverResults</class>
        <class>KNetwork::KReverseResolver</class>
        <class>KNetwork::KServerSocket</class>
        <class>KNetwork::KSocketAddress</class>
        <class>KNetwork::KSocketBase</class>
        <class>KNetwork::KSocketDevice</class>
        <class>KNetwork::KSocketDeviceFactoryBase</class>
        <class>KNetwork::KSocksSocketDevice</class>
        <class>KNetwork::KStreamSocket</class>
        <class>KNetwork::KUnixSocketAddress</class>
        <class>KPluginFactory</class>
        <class>KPluginInfo</class>
        <class>KPluginLoader</class>
        <class>KProcess</class>
        <class>KProtocolInfo</class>
        <class>KProtocolInfo::ExtraField</class>
        <class>KProtocolInfoFactory</class>
        <class>KRandom</class>
        <class>KRandomSequence</class>
        <class>KSaveFile</class>
        <class>KServiceAction</class>
        <class>KService</class>
        <class>KServiceFactory</class>
        <class>KServiceGroup</class>
        <class>KServiceGroupFactory</class>
        <class>KServiceType</class>
        <class>KServiceTypeFactory</class>
        <class>KServiceTypeTrader</class>
        <class>KSharedConfig</class>
        <class>KShell</class>
        <class>KSocketFactory</class>
        <class>KSslCipher</class>
        <class>KSslError</class>
        <class>KSslErrorUiData</class>
        <class>KSslKey</class>
        <class>KStandardDirs</class>
        <class>KStringHandler</class>
        <class>KSycoca</class>
        <class>KSycocaEntry</class>
        <class>KSycocaFactory</class>
        <class>KSystemTimeZoneBackend</class>
        <class>KSystemTimeZone</class>
        <class>KSystemTimeZones</class>
        <class>KSystemTimeZoneSource</class>
        <class>KTcpSocket</class>
        <class>KTempDir</class>
        <class>KTemporaryFile</class>
        <class>KTimeZoneBackend</class>
        <class>KTimeZone</class>
        <class>KTimeZoneData</class>
        <class>KTimeZone::LeapSeconds</class>
        <class>KTimeZone::Phase</class>
        <class>KTimeZones</class>
        <class>KTimeZoneSource</class>
        <class>KTimeZone::Transition</class>
        <class>KToolInvocation</class>
        <class>KTraderParse</class>
        <class>KTzfileTimeZoneBackend</class>
        <class>KTzfileTimeZone</class>
        <class>KTzfileTimeZoneSource</class>
        <class>KuitFormats</class>
        <class>KUrl</class>
        <class>KUser</class>
        <class>KUserGroup</class>
        <class>KWordMacroExpander</class>
        <class>OrgKdeKLauncherInterface</class>
        <class>Sonnet::BackgroundChecker</class>
        <class>Sonnet</class>
        <class>Sonnet::Client</class>
        <class>Sonnet::Filter</class>
        <class>Sonnet::Loader</class>
        <class>Sonnet::Speller</class>
        <class>Sonnet::SpellerPlugin</class>

        <!-- namespaces -->
        <class>KDE</class>
        <class>KGlobal</class>
    </classList>
</config>
