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; } }