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 ); } } }
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(); }
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 ); }
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; }
void Project::add_sequence( std::unique_ptr<Sequence> sequence ) { UTILCPP_ASSERT_NOT_NULL( sequence ); m_sequences.push_back( std::move( sequence ) ); }
static inline void destroy() { UTILCPP_ASSERT_NOT_NULL( ms_singleton ); delete ms_singleton; ms_singleton = nullptr; }
static inline T& instance() { UTILCPP_ASSERT_NOT_NULL( ms_singleton ); return *ms_singleton; }
~Singleton() { UTILCPP_ASSERT_NOT_NULL( ms_singleton ); ms_singleton = nullptr; }