mirror of
https://github.com/rizinorg/cutter.git
synced 2025-02-23 06:54:49 +00:00
Fix CutterSeekable isSynchronized() and signal on de-syncing (#1121)
Also fixes incorrect "(unsynced)" in the graph widget's title.
This commit is contained in:
parent
5a97fd496e
commit
d74d30e10f
@ -16,17 +16,15 @@ CutterSeekable::~CutterSeekable() {}
|
|||||||
void CutterSeekable::onCoreSeekChanged(RVA addr)
|
void CutterSeekable::onCoreSeekChanged(RVA addr)
|
||||||
{
|
{
|
||||||
if (synchronized && widgetOffset != addr) {
|
if (synchronized && widgetOffset != addr) {
|
||||||
synchronized = false;
|
updateSeek(addr, true);
|
||||||
seek(addr);
|
|
||||||
synchronized = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CutterSeekable::seek(RVA addr)
|
void CutterSeekable::updateSeek(RVA addr, bool localOnly)
|
||||||
{
|
{
|
||||||
previousOffset = widgetOffset;
|
previousOffset = widgetOffset;
|
||||||
widgetOffset = addr;
|
widgetOffset = addr;
|
||||||
if (synchronized) {
|
if (synchronized && !localOnly) {
|
||||||
Core()->seek(addr);
|
Core()->seek(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,6 +49,7 @@ RVA CutterSeekable::getOffset()
|
|||||||
void CutterSeekable::toggleSynchronization()
|
void CutterSeekable::toggleSynchronization()
|
||||||
{
|
{
|
||||||
synchronized = !synchronized;
|
synchronized = !synchronized;
|
||||||
|
onCoreSeekChanged(Core()->getOffset());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CutterSeekable::isSynchronized()
|
bool CutterSeekable::isSynchronized()
|
||||||
|
@ -20,7 +20,7 @@ public:
|
|||||||
* In any case, CutterSeekable::seekableSeekChanged is emitted.
|
* In any case, CutterSeekable::seekableSeekChanged is emitted.
|
||||||
* @param addr the location to seek at.
|
* @param addr the location to seek at.
|
||||||
*/
|
*/
|
||||||
void seek(RVA addr);
|
void seek(RVA addr) { updateSeek(addr, false); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief toggleSyncWithCore toggles
|
* @brief toggleSyncWithCore toggles
|
||||||
@ -74,6 +74,12 @@ private:
|
|||||||
*/
|
*/
|
||||||
bool synchronized = true;
|
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:
|
signals:
|
||||||
void seekableSeekChanged(RVA addr);
|
void seekableSeekChanged(RVA addr);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user