mirror of
https://github.com/martinrotter/rssguard.git
synced 2025-02-03 18:57:37 +01:00
Made enhancements to desktop file locations, added extra desktop file for autostart. This could totally fix #15.
This commit is contained in:
parent
c21b428af8
commit
4a6a43884e
@ -207,7 +207,8 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(Q_OS_LINUX)
|
#if defined(Q_OS_LINUX)
|
||||||
#define APP_DESKTOP_ENTRY_PATH APP_PREFIX + QString("/share/applications")
|
#define APP_DESKTOP_ENTRY_PATH APP_PREFIX + QString("/share/autostart")
|
||||||
|
#define APP_DESKTOP_SOURCE_ENTRY_FILE "rssguard.desktop.autostart"
|
||||||
#define APP_DESKTOP_ENTRY_FILE "rssguard.desktop"
|
#define APP_DESKTOP_ENTRY_FILE "rssguard.desktop"
|
||||||
#define APP_LANG_PATH APP_PREFIX + QString("/share/rssguard/l10n")
|
#define APP_LANG_PATH APP_PREFIX + QString("/share/rssguard/l10n")
|
||||||
#define APP_SKIN_PATH APP_PREFIX + QString("/share/rssguard/skins")
|
#define APP_SKIN_PATH APP_PREFIX + QString("/share/rssguard/skins")
|
||||||
|
@ -76,7 +76,11 @@ SystemFactory::AutoStartStatus SystemFactory::getAutoStartStatus() const {
|
|||||||
|
|
||||||
// We found correct path, now check if file exists and return correct status.
|
// We found correct path, now check if file exists and return correct status.
|
||||||
if (QFile::exists(desktop_file_location)) {
|
if (QFile::exists(desktop_file_location)) {
|
||||||
return SystemFactory::Enabled;
|
// File exists, we must read it and check if "Hidden" attribute is defined and what is its value.
|
||||||
|
QSettings desktop_settings(desktop_file_location, QSettings::IniFormat);
|
||||||
|
bool hidden_value = desktop_settings.value(QSL("Desktop Entry/Hidden"), false).toBool();
|
||||||
|
|
||||||
|
return hidden_value ? SystemFactory::Disabled : SystemFactory::Enabled;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return SystemFactory::Disabled;
|
return SystemFactory::Disabled;
|
||||||
@ -109,7 +113,6 @@ QString SystemFactory::getAutostartDesktopFileLocation() const {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// No location found, return empty string.
|
|
||||||
return desktop_file_location;
|
return desktop_file_location;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -141,15 +144,21 @@ bool SystemFactory::setAutoStartStatus(const AutoStartStatus &new_status) {
|
|||||||
#elif defined(Q_OS_LINUX)
|
#elif defined(Q_OS_LINUX)
|
||||||
// Note that we expect here that no other program uses
|
// Note that we expect here that no other program uses
|
||||||
// "rssguard.desktop" desktop file.
|
// "rssguard.desktop" desktop file.
|
||||||
|
const QString destination_file = getAutostartDesktopFileLocation();
|
||||||
|
|
||||||
switch (new_status) {
|
switch (new_status) {
|
||||||
case SystemFactory::Enabled:
|
case SystemFactory::Enabled:
|
||||||
QFile::link(QString(APP_DESKTOP_ENTRY_PATH) + QDir::separator() + APP_DESKTOP_ENTRY_FILE,
|
if (QFile::exists(destination_file)) {
|
||||||
getAutostartDesktopFileLocation());
|
if (!QFile::remove(destination_file)) {
|
||||||
return true;
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return QFile::copy(QString(APP_DESKTOP_ENTRY_PATH) + QDir::separator() + APP_DESKTOP_SOURCE_ENTRY_FILE,
|
||||||
|
getAutostartDesktopFileLocation());
|
||||||
|
|
||||||
case SystemFactory::Disabled:
|
case SystemFactory::Disabled:
|
||||||
QFile::remove(getAutostartDesktopFileLocation());
|
return QFile::remove(getAutostartDesktopFileLocation());
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user