mirror of
				https://github.com/slint-ui/slint.git
				synced 2025-10-31 12:04:33 +00:00 
			
		
		
		
	 2aaefa8e0d
			
		
	
	
		2aaefa8e0d
		
	
	
	
	
		
			
			... even if the old value holds the same value as the new value This fixes test_cpp_bindings_two_way_priority_default Also add a C++ unit test that tests the Property type specificaly
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			873 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			873 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright © SixtyFPS GmbH <info@slint-ui.com>
 | |
| // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-commercial
 | |
| 
 | |
| #include <chrono>
 | |
| #define CATCH_CONFIG_MAIN
 | |
| #include "catch2/catch.hpp"
 | |
| 
 | |
| #include <slint.h>
 | |
| #include <slint_image.h>
 | |
| 
 | |
| using slint::private_api::Property;
 | |
| 
 | |
| SCENARIO("Basic usage")
 | |
| {
 | |
|     Property<int> prop;
 | |
|     REQUIRE(prop.get() == 0);
 | |
| 
 | |
|     prop.set(42);
 | |
|     REQUIRE(prop.get() == 42);
 | |
| 
 | |
|     {
 | |
|         Property<int> prop2;
 | |
|         prop2.set_binding([&] { return prop.get() + 4; });
 | |
|         REQUIRE(prop2.get() == 42 + 4);
 | |
|         prop.set(55);
 | |
|         REQUIRE(prop2.get() == 55 + 4);
 | |
| 
 | |
|     }
 | |
| 
 | |
|     REQUIRE(prop.get() == 55);
 | |
|     prop.set(33);
 | |
|     REQUIRE(prop.get() == 33);
 | |
| }
 | |
| 
 | |
| 
 | |
| SCENARIO("Set after binding")
 | |
| {
 | |
|     Property<int> prop;
 | |
|     REQUIRE(prop.get() == 0);
 | |
|     prop.set_binding([] { return 55; });
 | |
|     prop.set(0);
 | |
|     REQUIRE(prop.get() == 0);
 | |
| }
 |