Fix CutterSeekable isSynchronized() and signal on de-syncing (#1121)

Also fixes incorrect "(unsynced)" in the graph widget's title.
This commit is contained in:
Florian Märkl 2019-01-20 12:19:51 +01:00 committed by GitHub
parent 5a97fd496e
commit d74d30e10f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 6 deletions

View File

@ -16,17 +16,15 @@ CutterSeekable::~CutterSeekable() {}
void CutterSeekable::onCoreSeekChanged(RVA addr)
{
if (synchronized && widgetOffset != addr) {
synchronized = false;
seek(addr);
synchronized = true;
updateSeek(addr, true);
}
}
void CutterSeekable::seek(RVA addr)
void CutterSeekable::updateSeek(RVA addr, bool localOnly)
{
previousOffset = widgetOffset;
widgetOffset = addr;
if (synchronized) {
if (synchronized && !localOnly) {
Core()->seek(addr);
}
@ -51,6 +49,7 @@ RVA CutterSeekable::getOffset()
void CutterSeekable::toggleSynchronization()
{
synchronized = !synchronized;
onCoreSeekChanged(Core()->getOffset());
}
bool CutterSeekable::isSynchronized()

View File

@ -20,7 +20,7 @@ public:
* In any case, CutterSeekable::seekableSeekChanged is emitted.
* @param addr the location to seek at.
*/
void seek(RVA addr);
void seek(RVA addr) { updateSeek(addr, false); }
/**
* @brief toggleSyncWithCore toggles
@ -74,6 +74,12 @@ private:
*/
bool synchronized = true;
/**
* @brief internal method for changing the seek
* @param localOnly whether the seek should be updated globally if synchronized
*/
void updateSeek(RVA addr, bool localOnly);
signals:
void seekableSeekChanged(RVA addr);