Beispiel #1
0
AppletInfo::AppletInfo(const QString &deskFile, const QString &configFile, const AppletInfo::AppletType type)
    : m_type(type), m_unique(true), m_hidden(false)
{
    QFileInfo fi(deskFile);
    m_desktopFile = fi.fileName();

    const char *resource = "applets";
    switch(type)
    {
        case Extension:
            resource = "extensions";
            break;
        case BuiltinButton:
            resource = "builtinbuttons";
            break;
        case SpecialButton:
            resource = "specialbuttons";
            break;
        case Undefined:
        case Applet:
        default:
            break;
    }

    KDesktopFile df(m_desktopFile, true, resource);

    // set the appletssimple attributes
    setName(df.readName());
    setComment(df.readComment());
    setIcon(df.readIcon());

    // library
    setLibrary(df.readEntry("X-KDE-Library"));

    // is it a unique applet?
    setIsUnique(df.readBoolEntry("X-KDE-UniqueApplet", false));

    // should it be shown in the gui?
    m_hidden = df.readBoolEntry("Hidden", false);

    if(configFile.isEmpty())
    {
        // generate a config file base name from the library name
        m_configFile = m_lib.lower();

        if(m_unique)
        {
            m_configFile.append("rc");
        }
        else
        {
            m_configFile.append("_").append(kapp->randomString(20).lower()).append("_rc");
        }
    }
    else
    {
        m_configFile = configFile;
    }
}
ExtensionInfo::ExtensionInfo( const QString& deskFile, const QString& configFile, const ExtensionInfo::ExtensionType type)
{
    d = new Private;
    d->type = type;
    QFileInfo fi(deskFile);
    d->desktopFilePath = fi.absoluteFilePath();
    d->desktopFile = fi.fileName();

    KDesktopFile df(deskFile);

    // set the appletssimple attributes
    setName(df.readName());
    setComment(df.readComment());
    setIcon(df.readIcon());

    // library
    setLibrary(df.desktopGroup().readEntry("X-KDE-Library"));

    // is it a unique applet?
    setIsUnique(df.desktopGroup().readEntry("X-KDE-UniqueExtension", false));

    // should it be shown in the gui?
    d->hidden = df.desktopGroup().readEntry("Hidden", false);

    if (configFile.isEmpty())
    {
        // generate a config file base name from the library name
        d->configFile = d->lib.toLower();

        if (d->unique)
        {
            d->configFile.append("rc");
        }
        else
        {
            d->configFile.append("_")
                        .append(KRandom::randomString(20).toLower())
                        .append("_rc");
        }
    }
    else
    {
        d->configFile = configFile;
    }
}