Example #1
0
	void execute( aosl::Canvas& canvas, const aosl::Move& move, bool reverse )
	{
		const auto& change_list = move.change();
		
		aosl::Object_ref object_ref("");
		aosl::Object* object = nullptr;

		for( const auto& change : change_list )
		{
			UTILCPP_ASSERT( !change.object().empty() , "Change with empty object reference list!" );

			const auto& object_ref_list = change.object();
			for( const auto& change_object_ref : object_ref_list )
			{
				if( object_ref != change_object_ref ) // minor optimization to avoid having to research the same object each time it is referenced.
				{
					object_ref = change_object_ref;
					object = find_object( canvas, object_ref );
				}

				UTILCPP_ASSERT_NOT_NULL( object );
			
				execute( change, *object, reverse );
			}

		}
	}
Example #2
0
	void Project::add_edition( std::unique_ptr<EditionSession> edition )
	{
		UTILCPP_ASSERT_NOT_NULL( edition );
		
		const bool is_edition_begin = m_edit_sessions.empty();

		m_edit_sessions.push_back( std::move( edition ) );

		emit edition_session_begin( *m_edit_sessions.back() );

		if( is_edition_begin )
			emit edition_begin();

	}
Example #3
0
	void Editor::focusInEvent( QFocusEvent* event )
	{
		UTILCPP_ASSERT_NOT_NULL( event );
		
		auto selected_edittion_session = core::Context::instance().selected_edition_session();
		if( selected_edittion_session
		&&	selected_edittion_session->id() != this->session_id()
		)
		{
			core::Context::instance().select_edition_session( this->session_id() );
		}
		

		QSplitter::focusInEvent( event );
	}
Example #4
0
	void Editor::closeEvent( QCloseEvent* closeEvent )
	{
		UTILCPP_ASSERT_NOT_NULL( closeEvent );
		
		m_is_closing = true;

		// the user did close the window : delete the associated session id
		if( core::Context::instance().delete_edition( m_session_id ) )
		{
			QSplitter::closeEvent( closeEvent );
		}
		else
		{
			closeEvent->ignore();
		}

		m_is_closing = false;

	}
Example #5
0
	void Project::add_sequence( std::unique_ptr<Sequence> sequence )
	{
		UTILCPP_ASSERT_NOT_NULL( sequence );
		m_sequences.push_back( std::move( sequence ) );
	}
Example #6
0
 static inline void destroy()
 {
     UTILCPP_ASSERT_NOT_NULL( ms_singleton );
     delete ms_singleton;
     ms_singleton = nullptr;
 }
Example #7
0
 static inline T& instance()
 {
     UTILCPP_ASSERT_NOT_NULL( ms_singleton );
     return *ms_singleton;
 }
Example #8
0
 ~Singleton()
 {
     UTILCPP_ASSERT_NOT_NULL( ms_singleton );
     ms_singleton = nullptr;
 }