//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 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 General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.


class KServiceGroup : KSycocaEntry
{
%TypeHeaderCode
#include <kservicegroup.h>
%End


public:
    typedef KSharedPtr<KServiceGroup> Ptr;

//ig     typedef KSharedPtr<KSycocaEntry> SPtr;

//ig     typedef QList<KServiceGroup::SPtr> List;

                            KServiceGroup (const QString& name);
                            KServiceGroup (const QString& _fullpath, const QString& _relpath);
                            KServiceGroup (QDataStream& _str, int offset, bool deep);
    QString                 relPath () const;
    QString                 caption () const;
    QString                 icon () const;
    QString                 comment () const;
    int                     childCount () const;
    bool                    noDisplay () const;
    bool                    showEmptyMenu () const;
    void                    setShowEmptyMenu (bool b);
    bool                    showInlineHeader () const;
    void                    setShowInlineHeader (bool _b);
    bool                    inlineAlias () const;
    void                    setInlineAlias (bool _b);
    bool                    allowInline () const;
    void                    setAllowInline (bool _b);
    int                     inlineValue () const;
    void                    setInlineValue (int _val);
    QStringList             suppressGenericNames () const;
    void                    setLayoutInfo (const QStringList& layout);
    QStringList             layoutInfo () const;
    KSycocaEntry::List      entries (bool sorted, bool excludeNoDisplay, bool allowSeparators, bool sortByGenericName = 0);
    KSycocaEntry::List      entries (bool sorted, bool excludeNoDisplay);
    KSycocaEntry::List      entries (bool sorted = 0);

    enum EntriesOption
    {
        NoOptions,
        SortEntries,
        ExcludeNoDisplay,
        AllowSeparators,
        SortByGenericName
    };

    typedef QFlags<KServiceGroup::EntriesOption> EntriesOptions;

//ig     QList<KServiceGroup::Ptr>  groupEntries (KServiceGroup::EntriesOptions options = KServiceGroup::ExcludeNoDisplay);
    KService::List          serviceEntries (KServiceGroup::EntriesOptions options = KServiceGroup::ExcludeNoDisplay);
    QString                 baseGroupName () const;
    QString                 directoryEntryPath () const;
    static KServiceGroup::Ptr  baseGroup (const QString& baseGroupName);
    static KServiceGroup::Ptr  root ();
    static KServiceGroup::Ptr  group (const QString& relPath);
    static KServiceGroup::Ptr  childGroup (const QString& parent /Transfer/);

protected:
    void                    addEntry (const KSycocaEntry::Ptr& entry);
};   // KServiceGroup


