30 #include <QtCore/QFile>
31 #include <QStringList>
33 class KAutostart::Private
38 copyIfNeededChecked(false)
51 bool copyIfNeededChecked;
54 void KAutostart::Private::copyIfNeeded()
56 if (copyIfNeededChecked) {
62 if (!QFile::exists(local)) {
64 if (!global.isEmpty()) {
72 copyIfNeededChecked = true;
79 if (entryName.isEmpty()) {
85 if (!d->name.endsWith(QLatin1String(
".desktop"))) {
86 d->name.append(QString::fromLatin1(
".desktop"));
93 d->copyIfNeededChecked =
true;
106 bool currentAutostartState = !d->df->desktopGroup().readEntry(
"Hidden",
false);
107 if (currentAutostartState == autostart) {
112 d->df->desktopGroup().writeEntry(
"Hidden", !autostart);
118 bool starts = d->df->desktopGroup().exists();
121 starts = starts && !d->df->desktopGroup().readEntry(
"Hidden",
false);
123 if (!environment.isEmpty()) {
128 starts = starts && d->df->tryExec();
132 starts = starts && checkStartCondition();
138 bool KAutostart::checkStartCondition()
const
140 QString condition = d->df->desktopGroup().readEntry(
"X-KDE-autostart-condition");
141 if (condition.isEmpty())
144 const QStringList list = condition.split(QLatin1Char(
':'));
145 if (list.count() < 4) {
149 if (list[0].isEmpty() || list[2].isEmpty()) {
156 const bool defaultValue = (list[3].toLower() == QLatin1String(
"true"));
157 return cg.readEntry(list[2], defaultValue);
163 if (!allowed.isEmpty()) {
164 return allowed.contains(environment);
168 if (!excluded.isEmpty()) {
169 return !excluded.contains( environment );
177 return d->df->desktopGroup().readEntry(
"Exec",
QString());
182 if (d->df->desktopGroup().readEntry(
"Exec",
QString()) ==
command) {
187 d->df->desktopGroup().writeEntry(
"Exec", command);
192 return d->df->readName();
197 if (d->df->desktopGroup().readEntry(
"Name",
QString()) == name) {
202 d->df->desktopGroup().writeEntry(
"Name", name);
207 return QFile::exists(
KStandardDirs::locate(
"autostart", entryName + QString::fromLatin1(
".desktop")));
212 return d->df->desktopGroup().readPathEntry(
"TryExec",
QString());
217 if (d->df->desktopGroup().readEntry(
"TryExec",
QString()) == exec) {
222 d->df->desktopGroup().writePathEntry(
"TryExec", exec);
229 const QByteArray data = group.
readEntry(key, QByteArray());
235 if (data ==
"0" || data ==
"BaseDesktop") {
237 }
else if (data ==
"1" || data ==
"DesktopServices") {
239 }
else if (data ==
"2" || data ==
"Applications") {
253 QString data = QString::fromLatin1(
"Applications");
257 data = QString::fromLatin1(
"BaseDesktop");
260 data = QString::fromLatin1(
"DesktopServices");
266 if (d->df->desktopGroup().readEntry(
"X-KDE-autostart-phase",
QString()) == data) {
271 d->df->desktopGroup().writeEntry(
"X-KDE-autostart-phase", data);
276 return d->df->desktopGroup().readXdgListEntry(
"OnlyShowIn");
281 if (d->df->desktopGroup().readEntry(
"OnlyShowIn",
QStringList()) == environments) {
286 d->df->desktopGroup().writeXdgListEntry(
"OnlyShowIn", environments);
293 if (envs.contains(environment)) {
297 envs.append(environment);
304 int index = envs.indexOf(environment);
310 envs.removeAt(index);
316 return d->df->desktopGroup().readXdgListEntry(
"NotShowIn");
321 if (d->df->desktopGroup().readEntry(
"NotShowIn",
QStringList()) == environments) {
326 d->df->desktopGroup().writeXdgListEntry(
"NotShowIn", environments);
333 if (envs.contains(environment)) {
337 envs.append(environment);
344 int index = envs.indexOf(environment);
350 envs.removeAt(index);
356 return d->df->desktopGroup().readEntry(
"X-KDE-autostart-after");
359 #include "kautostart.moc"