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
					
				
					 2 changed files with 18 additions and 8 deletions
				
			
		|  | @ -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…
	
	Add table
		
		Reference in a new issue