void OktetaPart::onDocumentLoaded( Kasten2::AbstractDocument* document ) { if( document ) { delete mByteArrayView; delete mDocument; mDocument = static_cast<Kasten2::ByteArrayDocument*>( document ); mDocument->setReadOnly( mModus != ReadWriteModus ); connect( mDocument->synchronizer(), SIGNAL(localSyncStateChanged(Kasten2::LocalSyncState)), SLOT(onModified(Kasten2::LocalSyncState)) ); mByteArrayView = new Kasten2::ByteArrayView( mDocument ); // mByteArrayView->setNoOfBytesPerLine( 16 ); mByteArrayView->setShowsNonprinting( false ); connect( mByteArrayView, SIGNAL(hasSelectedDataChanged(bool)), SIGNAL(hasSelectedDataChanged(bool)) ); QWidget* displayWidget = mByteArrayView->widget(); mLayout->addWidget( displayWidget ); mLayout->parentWidget()->setFocusProxy( displayWidget ); foreach( Kasten2::AbstractXmlGuiController* controller, mControllers ) controller->setTargetModel( mByteArrayView ); setModified( false ); } }
void ByteArrayViewProfileSynchronizer::setDirtyFlag( int dirtyFlag ) { if( mUpdatingView ) return; const bool isCleanBefore = ( mDirtyFlags == 0 ); mDirtyFlags |= dirtyFlag; if( isCleanBefore ) emit localSyncStateChanged( LocalHasChanges ); }
void ByteArrayViewProfileSynchronizer::syncFromRemote() { if( (mView == 0) || (mViewProfileId.isEmpty()) ) return; const ByteArrayViewProfile viewProfile = mViewProfileManager->viewProfile( mViewProfileId ); // TODO: this is a lazy hack, simply sets all of the profile, even if not needed. Improve that. mDirtyFlags = 0; updateView( viewProfile ); if( mView ) emit localSyncStateChanged( LocalInSync ); }
void ByteArrayViewProfileSynchronizer::setViewProfileId( const ByteArrayViewProfile::Id& viewProfileId ) { if( mViewProfileId == viewProfileId ) return; const bool isListeningBefore = ( ! mViewProfileId.isEmpty() ); mViewProfileId = viewProfileId; // TODO: drop all changes and set view to profile if set mDirtyFlags = 0; if( ! viewProfileId.isEmpty() ) { const ByteArrayViewProfile viewProfile = mViewProfileManager->viewProfile( viewProfileId ); updateView( viewProfile ); } const bool isListeningAfter = ( ! mViewProfileId.isEmpty() ); if( isListeningAfter) { if( ! isListeningBefore ) { connect( mViewProfileManager, SIGNAL(viewProfilesChanged(QList<Kasten2::ByteArrayViewProfile>)), SLOT(onViewProfilesChanged(QList<Kasten2::ByteArrayViewProfile>)) ); connect( mViewProfileManager, SIGNAL(viewProfilesRemoved(QList<Kasten2::ByteArrayViewProfile::Id>)), SLOT(onViewProfilesRemoved(QList<Kasten2::ByteArrayViewProfile::Id>)) ); if( mView ) { connect( mView, SIGNAL(valueCodingChanged(int)), SIGNAL(valueCodingChanged(int)) ); connect( mView, SIGNAL(charCodecChanged(QString)), SIGNAL(charCodecChanged(QString)) ); } } } else { if ( isListeningBefore ) { mViewProfileManager->disconnect( this ); if( mView ) mView->disconnect( this ); } } if( mView ) emit localSyncStateChanged( LocalInSync ); }
void ByteArrayRawFileSynchronizer::onModelModified( bool isModified ) { emit localSyncStateChanged( (isModified ? LocalHasChanges : LocalInSync) ); }