forked from quickshell/quickshell
		
	widgets: add IconImage widget
Docs currently cannot be generated due to lack of qml parsing support in typegen.
This commit is contained in:
		
							parent
							
								
									accdc59a1c
								
							
						
					
					
						commit
						abe0327e67
					
				
					 3 changed files with 81 additions and 0 deletions
				
			
		| 
						 | 
					@ -4,6 +4,7 @@ install(TARGETS quickshell RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_subdirectory(core)
 | 
					add_subdirectory(core)
 | 
				
			||||||
add_subdirectory(io)
 | 
					add_subdirectory(io)
 | 
				
			||||||
 | 
					add_subdirectory(widgets)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (CRASH_REPORTER)
 | 
					if (CRASH_REPORTER)
 | 
				
			||||||
	add_subdirectory(crash)
 | 
						add_subdirectory(crash)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										13
									
								
								src/widgets/CMakeLists.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/widgets/CMakeLists.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					qt_add_library(quickshell-widgets STATIC)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					qt_add_qml_module(quickshell-widgets
 | 
				
			||||||
 | 
						URI Quickshell.Widgets
 | 
				
			||||||
 | 
						VERSION 0.1
 | 
				
			||||||
 | 
						QML_FILES
 | 
				
			||||||
 | 
							IconImage.qml
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					qs_pch(quickshell-widgets)
 | 
				
			||||||
 | 
					qs_pch(quickshell-widgetsplugin)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					target_link_libraries(quickshell PRIVATE quickshell-widgetsplugin)
 | 
				
			||||||
							
								
								
									
										67
									
								
								src/widgets/IconImage.qml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								src/widgets/IconImage.qml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					import QtQuick
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///! Image component for displaying widget/icon style images.
 | 
				
			||||||
 | 
					/// This is a specialization of @@QtQuick.Image configured for icon-style images,
 | 
				
			||||||
 | 
					/// designed to make it easier to use correctly. If you need more control, use
 | 
				
			||||||
 | 
					/// @@QtQuick.Image directly.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// The image's aspect raito is assumed to be 1:1. If it is not 1:1, padding
 | 
				
			||||||
 | 
					/// will be added to make it 1:1. This is currently applied before the actual
 | 
				
			||||||
 | 
					/// aspect ratio of the image is taken into account, and may change in a future
 | 
				
			||||||
 | 
					/// release.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// You should use it for:
 | 
				
			||||||
 | 
					/// - Icons for custom buttons
 | 
				
			||||||
 | 
					/// - Status indicator icons
 | 
				
			||||||
 | 
					/// - System tray icons
 | 
				
			||||||
 | 
					/// - Things similar to the above.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// Do not use it for:
 | 
				
			||||||
 | 
					/// - Big images
 | 
				
			||||||
 | 
					/// - Images that change size frequently
 | 
				
			||||||
 | 
					/// - Anything that doesn't feel like an icon.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// > [!INFO] More information about many of these properties can be found in
 | 
				
			||||||
 | 
					/// > the documentation for @@QtQuick.Image.
 | 
				
			||||||
 | 
					Item {
 | 
				
			||||||
 | 
						id: root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/// URL of the image. Defaults to an empty string.
 | 
				
			||||||
 | 
						/// See @@QtQuick.Image.source.
 | 
				
			||||||
 | 
						property alias source: image.source
 | 
				
			||||||
 | 
						/// If the image should be loaded asynchronously. Defaults to false.
 | 
				
			||||||
 | 
						/// See @@QtQuick.Image.asynchronous.
 | 
				
			||||||
 | 
						property alias asynchronous: image.asynchronous
 | 
				
			||||||
 | 
						/// The load status of the image. See @@QtQuick.Image.status.
 | 
				
			||||||
 | 
						property alias status: image.status
 | 
				
			||||||
 | 
						/// If the image should be mipmap filtered. Defaults to false.
 | 
				
			||||||
 | 
						/// See @@QtQuick.Image.mipmap.
 | 
				
			||||||
 | 
						///
 | 
				
			||||||
 | 
						/// Try enabling this if your image is significantly scaled down
 | 
				
			||||||
 | 
						/// and looks bad because of it.
 | 
				
			||||||
 | 
						property alias mipmap: image.mipmap
 | 
				
			||||||
 | 
						/// The @@QtQuick.Image backing this object.
 | 
				
			||||||
 | 
						///
 | 
				
			||||||
 | 
						/// This is useful if you need to access more functionality than
 | 
				
			||||||
 | 
						/// exposed by IconImage.
 | 
				
			||||||
 | 
						property alias backer: image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/// The suggested size of the image. This is used as a defualt
 | 
				
			||||||
 | 
						/// for @@QtQuick.Item.implicitWidth and @@QtQuick.Item.implicitHeight.
 | 
				
			||||||
 | 
						property real implicitSize: 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/// The actual size the image will be displayed at.
 | 
				
			||||||
 | 
						readonly property real actualSize: Math.min(root.width, root.height)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						implicitWidth: root.implicitSize
 | 
				
			||||||
 | 
						implicitHeight: root.implicitSize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Image {
 | 
				
			||||||
 | 
							id: image
 | 
				
			||||||
 | 
							anchors.fill: parent
 | 
				
			||||||
 | 
							fillMode: Image.PreserveAspectFit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							sourceSize.width: root.actualSize
 | 
				
			||||||
 | 
							sourceSize.height: root.actualSize
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue