forked from quickshell/quickshell
		
	core/icon: allow changing the icon theme
This commit is contained in:
		
							parent
							
								
									7a283089b1
								
							
						
					
					
						commit
						bd8978375b
					
				
					 2 changed files with 13 additions and 0 deletions
				
			
		| 
						 | 
					@ -822,6 +822,7 @@ int launch(const LaunchArgs& args, char** argv, QCoreApplication* coreApplicatio
 | 
				
			||||||
		bool useQApplication = false;
 | 
							bool useQApplication = false;
 | 
				
			||||||
		bool nativeTextRendering = false;
 | 
							bool nativeTextRendering = false;
 | 
				
			||||||
		bool desktopSettingsAware = true;
 | 
							bool desktopSettingsAware = true;
 | 
				
			||||||
 | 
							QString iconTheme = qEnvironmentVariable("QS_ICON_THEME");
 | 
				
			||||||
		QHash<QString, QString> envOverrides;
 | 
							QHash<QString, QString> envOverrides;
 | 
				
			||||||
	} pragmas;
 | 
						} pragmas;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -834,6 +835,7 @@ int launch(const LaunchArgs& args, char** argv, QCoreApplication* coreApplicatio
 | 
				
			||||||
			if (pragma == "UseQApplication") pragmas.useQApplication = true;
 | 
								if (pragma == "UseQApplication") pragmas.useQApplication = true;
 | 
				
			||||||
			else if (pragma == "NativeTextRendering") pragmas.nativeTextRendering = true;
 | 
								else if (pragma == "NativeTextRendering") pragmas.nativeTextRendering = true;
 | 
				
			||||||
			else if (pragma == "IgnoreSystemSettings") pragmas.desktopSettingsAware = false;
 | 
								else if (pragma == "IgnoreSystemSettings") pragmas.desktopSettingsAware = false;
 | 
				
			||||||
 | 
								else if (pragma.startsWith("IconTheme ")) pragmas.iconTheme = pragma.sliced(10);
 | 
				
			||||||
			else if (pragma.startsWith("Env ")) {
 | 
								else if (pragma.startsWith("Env ")) {
 | 
				
			||||||
				auto envPragma = pragma.sliced(4);
 | 
									auto envPragma = pragma.sliced(4);
 | 
				
			||||||
				auto splitIdx = envPragma.indexOf('=');
 | 
									auto splitIdx = envPragma.indexOf('=');
 | 
				
			||||||
| 
						 | 
					@ -857,6 +859,10 @@ int launch(const LaunchArgs& args, char** argv, QCoreApplication* coreApplicatio
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	file.close();
 | 
						file.close();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!pragmas.iconTheme.isEmpty()) {
 | 
				
			||||||
 | 
							QIcon::setThemeName(pragmas.iconTheme);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	qInfo() << "Shell ID:" << shellId << "Path ID" << pathId;
 | 
						qInfo() << "Shell ID:" << shellId << "Path ID" << pathId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	auto launchTime = qs::Common::LAUNCH_TIME.toSecsSinceEpoch();
 | 
						auto launchTime = qs::Common::LAUNCH_TIME.toSecsSinceEpoch();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -124,6 +124,13 @@ public:
 | 
				
			||||||
	Q_INVOKABLE QVariant env(const QString& variable);
 | 
						Q_INVOKABLE QVariant env(const QString& variable);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/// Returns a string usable for a @@QtQuick.Image.source for a given system icon.
 | 
						/// Returns a string usable for a @@QtQuick.Image.source for a given system icon.
 | 
				
			||||||
 | 
						///
 | 
				
			||||||
 | 
						/// > [!INFO] By default, icons are loaded from the theme selected by the qt platform theme,
 | 
				
			||||||
 | 
						/// > which means they should match with all other qt applications on your system.
 | 
				
			||||||
 | 
						/// >
 | 
				
			||||||
 | 
						/// > If you want to use a different icon theme, you can put `//@ pragma IconTheme <name>`
 | 
				
			||||||
 | 
						/// > at the top of your root config file or set the `QS_ICON_THEME` variable to the name
 | 
				
			||||||
 | 
						/// > of your icon theme.
 | 
				
			||||||
	Q_INVOKABLE static QString iconPath(const QString& icon);
 | 
						Q_INVOKABLE static QString iconPath(const QString& icon);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	[[nodiscard]] QString workingDirectory() const;
 | 
						[[nodiscard]] QString workingDirectory() const;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue