Source Code (Use browser search to find items of interest.)
Class Index
kcontrol'KBackgroundPattern (./kdebase/kcontrol/display/bgsettings.h:31)
class KBackgroundPattern
{
public:
KBackgroundPattern(QString name=QString::null);
~KBackgroundPattern();
QString name() const { return m_Name; }
void load(QString name);
void setComment(QString comment);
QString comment() const {return m_Comment; }
void setPattern(QString file);
QString pattern() const { return m_Pattern; }
void readSettings();
void writeSettings();
bool isAvailable();
bool isGlobal() { return m_bReadOnly; }
bool remove();
int hash();
static QStringList list();
private:
void init(bool force_rw=false);
QString fingerprint();
bool dirty, hashdirty;
bool m_bReadOnly;
int m_Hash;
QString m_Name, m_Comment;
QString m_Pattern, m_File;
KStandardDirs *m_pDirs;
KSimpleConfig *m_pConfig;
};
/**
* A class to manipulate/read/write/list KDE desktop programs (a la xearth).
*
* A program is described by a string like:
*
* a_program -xres %x -yres %y -outfile %f
*
* Possible escape sequences:
*
* %x Horizontal resolution in pixels.
* %y Vertical resulution in pixels.
* %f Filename to dump to.
*
* An entry for each program is stored as a .desktop file in
* $(datadir)/kdesktop/programs.
*/
kcontrol'KBackgroundPattern::KBackgroundPattern() (./kdebase/kcontrol/display/bgsettings.cc:57)
KBackgroundPattern::KBackgroundPattern(QString name)
{
dirty = false;
hashdirty = true;
m_pDirs = KGlobal::dirs();
m_pDirs->addResourceType("dtop_pattern", m_pDirs->kde_default("data") +
"kdesktop/patterns");
m_pConfig = 0L;
m_Name = name;
if (m_Name.isEmpty())
return;
init();
readSettings();
}
kcontrol'KBackgroundPattern::~KBackgroundPattern() (./kdebase/kcontrol/display/bgsettings.cc:76)
KBackgroundPattern::~KBackgroundPattern()
{
delete m_pConfig;
}
kcontrol'KBackgroundPattern::load() (./kdebase/kcontrol/display/bgsettings.cc:82)
void KBackgroundPattern::load(QString name)
{
m_Name = name;
init();
readSettings();
}
kcontrol'KBackgroundPattern::init() (./kdebase/kcontrol/display/bgsettings.cc:90)
void KBackgroundPattern::init(bool force_rw)
{
delete m_pConfig;
m_File = m_pDirs->findResource("dtop_pattern", m_Name + ".desktop");
if (force_rw || m_File.isEmpty()) {
m_File = m_pDirs->saveLocation("dtop_pattern") + m_Name + ".desktop";
m_pConfig = new KSimpleConfig(m_File);
} else
m_pConfig = new KSimpleConfig(m_File);
m_pConfig->setGroup("KDE Desktop Pattern");
QFileInfo fi(m_File);
m_bReadOnly = !fi.isWritable();
}
kcontrol'KBackgroundPattern::setComment() (./kdebase/kcontrol/display/bgsettings.cc:108)
void KBackgroundPattern::setComment(QString comment)
{
if (m_Comment == comment)
return;
dirty = true;
m_Comment = comment;
}
kcontrol'KBackgroundPattern::setPattern() (./kdebase/kcontrol/display/bgsettings.cc:117)
void KBackgroundPattern::setPattern(QString pattern)
{
if (m_Pattern == pattern)
return;
dirty = hashdirty = true;
m_Pattern = pattern;
}
kcontrol'KBackgroundPattern::readSettings() (./kdebase/kcontrol/display/bgsettings.cc:126)
void KBackgroundPattern::readSettings()
{
dirty = false;
hashdirty = true;
m_Pattern = m_pConfig->readEntry("File");
m_Comment = m_pConfig->readEntry("Comment");
}
kcontrol'KBackgroundPattern::writeSettings() (./kdebase/kcontrol/display/bgsettings.cc:136)
void KBackgroundPattern::writeSettings()
{
if (!dirty)
return;
if (m_bReadOnly)
init(true);
m_pConfig->writeEntry("File", m_Pattern);
m_pConfig->writeEntry("Comment", m_Comment);
m_pConfig->sync();
dirty = false;
}
kcontrol'KBackgroundPattern::isAvailable() (./kdebase/kcontrol/display/bgsettings.cc:150)
bool KBackgroundPattern::isAvailable()
{
QString file = m_Pattern;
if (file.at(0) != '/')
file = m_pDirs->findResource("dtop_pattern", file);
QFileInfo fi(file);
return (fi.exists());
}
kcontrol'KBackgroundPattern::remove() (./kdebase/kcontrol/display/bgsettings.cc:160)
bool KBackgroundPattern::remove()
{
if (m_bReadOnly)
return false;
return !unlink(m_File.latin1());
}
kcontrol'KBackgroundPattern::fingerprint() (./kdebase/kcontrol/display/bgsettings.cc:168)
QString KBackgroundPattern::fingerprint()
{
return m_File;
}
kcontrol'KBackgroundPattern::hash() (./kdebase/kcontrol/display/bgsettings.cc:174)
int KBackgroundPattern::hash()
{
if (hashdirty) {
m_Hash = QHash(fingerprint());
hashdirty = false;
}
return m_Hash;
}
/* static */
kcontrol'KBackgroundPattern::list() (./kdebase/kcontrol/display/bgsettings.cc:185)
QStringList KBackgroundPattern::list()
{
KStandardDirs *dirs = KGlobal::dirs();
dirs->addResourceType("dtop_pattern", dirs->kde_default("data") +
"kdesktop/patterns");
QStringList lst = dirs->findAllResources("dtop_pattern", "*.desktop",
false, true);
QStringList::Iterator it;
for (it=lst.begin(); it!=lst.end(); it++) {
// Strip path and suffix
int pos = (*it).findRev('/');
if (pos != -1)
(*it) = (*it).mid(pos+1);
pos = (*it).findRev('.');
if (pos != -1)
(*it) = (*it).left(pos);
}
return lst;
}
/**** KBackgroundProgram ****/